about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2014-08-30 10:04:02 +0200
committerVladimír Čunát <vcunat@gmail.com>2014-08-30 10:04:02 +0200
commite51f73652d38d5c53b331b7bcae2e2483e1b8afe (patch)
tree9126d3fd0737db3a0d57cda866d96c377fc0e452
parenta283bec71cec60c2b9c84ea9af320fc8df0dfd5f (diff)
parent4e0d2706f174bb893378a8241df7bd2055901b9e (diff)
downloadnixlib-e51f73652d38d5c53b331b7bcae2e2483e1b8afe.tar
nixlib-e51f73652d38d5c53b331b7bcae2e2483e1b8afe.tar.gz
nixlib-e51f73652d38d5c53b331b7bcae2e2483e1b8afe.tar.bz2
nixlib-e51f73652d38d5c53b331b7bcae2e2483e1b8afe.tar.lz
nixlib-e51f73652d38d5c53b331b7bcae2e2483e1b8afe.tar.xz
nixlib-e51f73652d38d5c53b331b7bcae2e2483e1b8afe.tar.zst
nixlib-e51f73652d38d5c53b331b7bcae2e2483e1b8afe.zip
Merge recent master into staging
Hydra: ?compare=1149952

Conflicts:
	nixos/doc/manual/configuration.xml (changed split file)
	nixos/modules/config/users-groups.nix (choosing filterNull instead of inline definition)
	pkgs/development/libraries/readline/readline6.3.nix (auto-solved)
-rw-r--r--doc/Makefile41
-rw-r--r--doc/default.nix42
-rw-r--r--doc/manual.xml23
-rw-r--r--doc/meta.xml14
-rw-r--r--lib/licenses.nix10
-rw-r--r--lib/maintainers.nix8
-rw-r--r--lib/sources.nix6
-rw-r--r--lib/strings.nix3
-rw-r--r--nixos/doc/config-examples/basic.nix21
-rw-r--r--nixos/doc/config-examples/closed-install-configuration.nix32
-rw-r--r--nixos/doc/config-examples/root-on-lvm.nix27
-rw-r--r--nixos/doc/config-examples/svn-server.nix36
-rw-r--r--nixos/doc/config-examples/x86_64-usbstick.nix20
-rw-r--r--nixos/doc/manual/administration/boot-problems.xml65
-rw-r--r--nixos/doc/manual/administration/cleaning-store.xml62
-rw-r--r--nixos/doc/manual/administration/container-networking.xml50
-rw-r--r--nixos/doc/manual/administration/containers.xml34
-rw-r--r--nixos/doc/manual/administration/control-groups.xml75
-rw-r--r--nixos/doc/manual/administration/declarative-containers.xml52
-rw-r--r--nixos/doc/manual/administration/imperative-containers.xml124
-rw-r--r--nixos/doc/manual/administration/logging.xml52
-rw-r--r--nixos/doc/manual/administration/maintenance-mode.xml18
-rw-r--r--nixos/doc/manual/administration/network-problems.xml33
-rw-r--r--nixos/doc/manual/administration/rebooting.xml44
-rw-r--r--nixos/doc/manual/administration/rollback.xml48
-rw-r--r--nixos/doc/manual/administration/running.xml24
-rw-r--r--nixos/doc/manual/administration/service-mgmt.xml83
-rw-r--r--nixos/doc/manual/administration/store-corruption.xml37
-rw-r--r--nixos/doc/manual/administration/troubleshooting.xml18
-rw-r--r--nixos/doc/manual/administration/user-sessions.xml53
-rw-r--r--nixos/doc/manual/configuration.xml1550
-rw-r--r--nixos/doc/manual/configuration/abstractions.xml166
-rw-r--r--nixos/doc/manual/configuration/ad-hoc-network-config.xml24
-rw-r--r--nixos/doc/manual/configuration/ad-hoc-packages.xml63
-rw-r--r--nixos/doc/manual/configuration/adding-custom-packages.xml84
-rw-r--r--nixos/doc/manual/configuration/config-file.xml213
-rw-r--r--nixos/doc/manual/configuration/config-syntax.xml27
-rw-r--r--nixos/doc/manual/configuration/configuration.xml32
-rw-r--r--nixos/doc/manual/configuration/customizing-packages.xml92
-rw-r--r--nixos/doc/manual/configuration/declarative-packages.xml43
-rw-r--r--nixos/doc/manual/configuration/file-systems.xml40
-rw-r--r--nixos/doc/manual/configuration/firewall.xml38
-rw-r--r--nixos/doc/manual/configuration/ipv4-config.xml47
-rw-r--r--nixos/doc/manual/configuration/ipv6-config.xml19
-rw-r--r--nixos/doc/manual/configuration/linux-kernel.xml69
-rw-r--r--nixos/doc/manual/configuration/luks-file-systems.xml42
-rw-r--r--nixos/doc/manual/configuration/modularity.xml143
-rw-r--r--nixos/doc/manual/configuration/network-manager.xml27
-rw-r--r--nixos/doc/manual/configuration/networking.xml22
-rw-r--r--nixos/doc/manual/configuration/package-mgmt.xml34
-rw-r--r--nixos/doc/manual/configuration/ssh.xml32
-rw-r--r--nixos/doc/manual/configuration/summary.xml191
-rw-r--r--nixos/doc/manual/configuration/user-mgmt.xml89
-rw-r--r--nixos/doc/manual/configuration/wireless.xml41
-rw-r--r--nixos/doc/manual/configuration/x-windows.xml94
-rw-r--r--nixos/doc/manual/containers.xml242
-rw-r--r--nixos/doc/manual/default.nix56
-rw-r--r--nixos/doc/manual/development.xml1119
-rw-r--r--nixos/doc/manual/development/building-nixos.xml32
-rw-r--r--nixos/doc/manual/development/building-parts.xml113
-rw-r--r--nixos/doc/manual/development/development.xml20
-rw-r--r--nixos/doc/manual/development/nixos-tests.xml19
-rw-r--r--nixos/doc/manual/development/option-declarations.xml141
-rw-r--r--nixos/doc/manual/development/option-def.xml112
-rw-r--r--nixos/doc/manual/development/running-nixos-tests.xml77
-rw-r--r--nixos/doc/manual/development/sources.xml95
-rw-r--r--nixos/doc/manual/development/testing-installer.xml27
-rw-r--r--nixos/doc/manual/development/writing-modules.xml175
-rw-r--r--nixos/doc/manual/development/writing-nixos-tests.xml251
-rw-r--r--nixos/doc/manual/installation.xml570
-rw-r--r--nixos/doc/manual/installation/changing-config.xml90
-rw-r--r--nixos/doc/manual/installation/installation.xml21
-rw-r--r--nixos/doc/manual/installation/installing-uefi.xml51
-rw-r--r--nixos/doc/manual/installation/installing-usb.xml30
-rw-r--r--nixos/doc/manual/installation/installing.xml264
-rw-r--r--nixos/doc/manual/installation/obtaining.xml44
-rw-r--r--nixos/doc/manual/installation/upgrading.xml90
-rw-r--r--nixos/doc/manual/manual.xml24
-rw-r--r--nixos/doc/manual/release-notes/release-notes.xml17
-rw-r--r--nixos/doc/manual/release-notes/rl-1310.xml11
-rw-r--r--nixos/doc/manual/release-notes/rl-1404.xml (renamed from nixos/doc/manual/release-notes.xml)50
-rw-r--r--nixos/doc/manual/release-notes/rl-1410.xml22
-rw-r--r--nixos/doc/manual/running.xml369
-rw-r--r--nixos/doc/manual/style.css7
-rw-r--r--nixos/doc/manual/troubleshooting.xml199
-rw-r--r--nixos/modules/config/fonts/fonts.nix2
-rw-r--r--nixos/modules/config/gtk-exe-env.nix41
-rw-r--r--nixos/modules/config/networking.nix8
-rw-r--r--nixos/modules/config/power-management.nix8
-rw-r--r--nixos/modules/config/pulseaudio.nix2
-rw-r--r--nixos/modules/config/qt-plugin-env.nix37
-rw-r--r--nixos/modules/config/shells-environment.nix4
-rw-r--r--nixos/modules/config/system-path.nix2
-rw-r--r--nixos/modules/config/users-groups.nix87
-rw-r--r--nixos/modules/installer/cd-dvd/iso-image.nix7
-rw-r--r--nixos/modules/installer/cd-dvd/system-tarball.nix7
-rw-r--r--nixos/modules/installer/tools/nixos-generate-config.pl21
-rw-r--r--nixos/modules/installer/tools/nixos-install.sh3
-rw-r--r--nixos/modules/installer/tools/tools.nix1
-rw-r--r--nixos/modules/installer/virtualbox-demo.nix3
-rw-r--r--nixos/modules/misc/crashdump.nix2
-rw-r--r--nixos/modules/misc/ids.nix12
-rw-r--r--nixos/modules/module-list.nix12
-rw-r--r--nixos/modules/profiles/all-hardware.nix4
-rw-r--r--nixos/modules/programs/environment.nix2
-rw-r--r--nixos/modules/programs/freetds.nix61
-rw-r--r--nixos/modules/programs/shadow.nix4
-rw-r--r--nixos/modules/programs/uim.nix29
-rw-r--r--nixos/modules/services/audio/mopidy.nix2
-rw-r--r--nixos/modules/services/backup/rsnapshot.nix2
-rw-r--r--nixos/modules/services/databases/neo4j.nix143
-rw-r--r--nixos/modules/services/databases/postgresql.xml77
-rw-r--r--nixos/modules/services/hardware/tcsd.nix4
-rw-r--r--nixos/modules/services/hardware/thermald.nix28
-rw-r--r--nixos/modules/services/logging/syslog-ng.nix4
-rw-r--r--nixos/modules/services/mail/mlmmj.nix128
-rw-r--r--nixos/modules/services/misc/nixos-manual.nix2
-rw-r--r--nixos/modules/services/misc/siproxd.nix180
-rwxr-xr-xnixos/modules/services/misc/zookeeper.nix145
-rw-r--r--nixos/modules/services/monitoring/riemann-dash.nix79
-rw-r--r--nixos/modules/services/monitoring/riemann.nix77
-rw-r--r--nixos/modules/services/monitoring/smartd.nix2
-rw-r--r--nixos/modules/services/networking/dhcpcd.nix23
-rw-r--r--nixos/modules/services/networking/dnsmasq.nix45
-rw-r--r--nixos/modules/services/networking/ircd-hybrid/default.nix4
-rw-r--r--nixos/modules/services/networking/radvd.nix32
-rw-r--r--nixos/modules/services/networking/znc.nix2
-rw-r--r--nixos/modules/services/web-servers/apache-httpd/default.nix8
-rw-r--r--nixos/modules/services/web-servers/apache-httpd/mediawiki.nix1
-rw-r--r--nixos/modules/services/x11/desktop-managers/gnome3.nix4
-rw-r--r--nixos/modules/services/x11/desktop-managers/kde4.nix2
-rw-r--r--nixos/modules/services/x11/display-managers/default.nix6
-rw-r--r--nixos/modules/services/x11/window-managers/fluxbox.nix28
-rw-r--r--nixos/modules/services/x11/xserver.nix4
-rw-r--r--nixos/modules/system/boot/kernel.nix1
-rw-r--r--nixos/modules/system/boot/loader/grub/grub.nix37
-rw-r--r--nixos/modules/system/boot/loader/grub/install-grub.pl134
-rw-r--r--nixos/modules/system/boot/luksroot.nix2
-rw-r--r--nixos/modules/system/boot/stage-1.nix12
-rw-r--r--nixos/modules/tasks/filesystems/zfs.nix6
-rw-r--r--nixos/modules/tasks/network-interfaces.nix89
-rw-r--r--nixos/modules/tasks/trackpoint.nix44
-rw-r--r--nixos/modules/virtualisation/container-config.nix71
-rw-r--r--nixos/modules/virtualisation/containers.nix7
-rw-r--r--nixos/modules/virtualisation/nixos-container.pl41
-rw-r--r--nixos/release-combined.nix4
-rw-r--r--nixos/release.nix63
-rw-r--r--nixos/tests/installer.nix89
-rw-r--r--pkgs/applications/audio/beast/default.nix2
-rw-r--r--pkgs/applications/audio/cantata/default.nix8
-rw-r--r--pkgs/applications/audio/cmus/default.nix2
-rw-r--r--pkgs/applications/audio/moc/default.nix2
-rw-r--r--pkgs/applications/audio/mp3info/default.nix2
-rw-r--r--pkgs/applications/audio/mpc123/default.nix2
-rw-r--r--pkgs/applications/audio/mpg321/default.nix2
-rw-r--r--pkgs/applications/audio/pamixer/default.nix2
-rw-r--r--pkgs/applications/audio/picard/default.nix18
-rw-r--r--pkgs/applications/audio/spotify/default.nix2
-rw-r--r--pkgs/applications/audio/yoshimi/default.nix4
-rw-r--r--pkgs/applications/editors/ed/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-24/default.nix4
-rw-r--r--pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix32
-rw-r--r--pkgs/applications/editors/emacs-modes/idris/default.nix4
-rw-r--r--pkgs/applications/editors/emacs-modes/js2/default.nix3
-rw-r--r--pkgs/applications/editors/idea/default.nix37
-rw-r--r--pkgs/applications/editors/mg/default.nix2
-rw-r--r--pkgs/applications/editors/texmacs/default.nix2
-rw-r--r--pkgs/applications/editors/yi/yi-contrib.nix2
-rw-r--r--pkgs/applications/editors/yi/yi.nix2
-rw-r--r--pkgs/applications/graphics/geeqie/default.nix2
-rw-r--r--pkgs/applications/graphics/gimp/2.8.nix4
-rw-r--r--pkgs/applications/graphics/grafx2/default.nix2
-rw-r--r--pkgs/applications/graphics/jbrout/default.nix2
-rw-r--r--pkgs/applications/graphics/k3d/debian-patches.nix14
-rw-r--r--pkgs/applications/graphics/k3d/debian-patches.txt3
-rw-r--r--pkgs/applications/graphics/k3d/default.nix12
-rw-r--r--pkgs/applications/graphics/k3d/disable_mutable_in_boost_gil.patch20
-rw-r--r--pkgs/applications/graphics/k3d/k3d-0.7.11.0-libpng14.patch54
-rw-r--r--pkgs/applications/graphics/k3d/k3d_gtkmm224.patch40
-rw-r--r--pkgs/applications/graphics/ocrad/default.nix2
-rw-r--r--pkgs/applications/graphics/qiv/default.nix2
-rw-r--r--pkgs/applications/graphics/synfigstudio/default.nix8
-rw-r--r--pkgs/applications/graphics/ufraw/default.nix2
-rw-r--r--pkgs/applications/graphics/viewnior/default.nix2
-rw-r--r--pkgs/applications/graphics/xaos/default.nix2
-rw-r--r--pkgs/applications/ike/default.nix2
-rw-r--r--pkgs/applications/misc/arbtt/default.nix4
-rw-r--r--pkgs/applications/misc/bitcoin/altcoins.nix100
-rw-r--r--pkgs/applications/misc/bitcoin/default.nix20
-rw-r--r--pkgs/applications/misc/bitcoin/namecoin_dynamic.patch11
-rw-r--r--pkgs/applications/misc/calibre/default.nix36
-rw-r--r--pkgs/applications/misc/camlistore/default.nix2
-rw-r--r--pkgs/applications/misc/clipit/default.nix20
-rw-r--r--pkgs/applications/misc/cool-old-term/default.nix53
-rw-r--r--pkgs/applications/misc/eaglemode/default.nix8
-rw-r--r--pkgs/applications/misc/evilvte/default.nix35
-rw-r--r--pkgs/applications/misc/gpsbabel/default.nix2
-rw-r--r--pkgs/applications/misc/gv/default.nix2
-rw-r--r--pkgs/applications/misc/jigdo/default.nix4
-rw-r--r--pkgs/applications/misc/lilyterm/default.nix35
-rw-r--r--pkgs/applications/misc/posterazor/default.nix8
-rw-r--r--pkgs/applications/misc/qgis/default.nix10
-rw-r--r--pkgs/applications/misc/robomongo/default.nix9
-rw-r--r--pkgs/applications/misc/robomongo/robomongo.patch13
-rw-r--r--pkgs/applications/misc/stardict/stardict.nix3
-rw-r--r--pkgs/applications/misc/taffybar/default.nix4
-rw-r--r--pkgs/applications/misc/tangogps/default.nix2
-rw-r--r--pkgs/applications/misc/viking/default.nix2
-rw-r--r--pkgs/applications/misc/vym/default.nix35
-rw-r--r--pkgs/applications/misc/wordnet/default.nix2
-rw-r--r--pkgs/applications/misc/xca/default.nix1
-rw-r--r--pkgs/applications/misc/xfe/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix27
-rw-r--r--pkgs/applications/networking/browsers/chromium/source/sources.nix24
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/firefox/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/icecat-3/default.nix119
-rw-r--r--pkgs/applications/networking/browsers/icecat-3/rpath-link.patch14
-rw-r--r--pkgs/applications/networking/browsers/icecat-3/skip-gre-registration.patch12
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix3
-rw-r--r--pkgs/applications/networking/browsers/opera/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/vimb/default.nix4
-rw-r--r--pkgs/applications/networking/ids/snort/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/carrier/2.5.0.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/ekiga/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/fuze/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/hipchat/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/linphone/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/teamspeak/client.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/toxic/default.nix13
-rw-r--r--pkgs/applications/networking/instant-messengers/utox/default.nix4
-rw-r--r--pkgs/applications/networking/jmeter/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/notmuch/default.nix3
-rw-r--r--pkgs/applications/networking/mailreaders/sup/default.nix2
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix2
-rw-r--r--pkgs/applications/networking/newsreaders/slrn/default.nix2
-rw-r--r--pkgs/applications/networking/p2p/gnunet/default.nix2
-rw-r--r--pkgs/applications/networking/remote/rdesktop/default.nix2
-rw-r--r--pkgs/applications/networking/remote/remmina/default.nix2
-rw-r--r--pkgs/applications/networking/syncthing/default.nix2
-rw-r--r--pkgs/applications/office/gnucash/default.nix2
-rw-r--r--pkgs/applications/office/libreoffice/default.nix2
-rw-r--r--pkgs/applications/science/astronomy/gravit/default.nix2
-rw-r--r--pkgs/applications/science/biology/emboss/default.nix2
-rw-r--r--pkgs/applications/science/logic/alt-ergo/default.nix2
-rw-r--r--pkgs/applications/science/logic/coq/HEAD.nix9
-rw-r--r--pkgs/applications/science/logic/coq/default.nix2
-rw-r--r--pkgs/applications/science/logic/coq/no-codesign.patch19
-rw-r--r--pkgs/applications/science/logic/matita/default.nix2
-rw-r--r--pkgs/applications/science/logic/prooftree/default.nix2
-rw-r--r--pkgs/applications/science/logic/twelf/default.nix2
-rw-r--r--pkgs/applications/science/logic/verifast/default.nix2
-rw-r--r--pkgs/applications/science/logic/yices/default.nix2
-rw-r--r--pkgs/applications/science/math/fricas/default.nix2
-rw-r--r--pkgs/applications/science/math/glsurf/default.nix2
-rw-r--r--pkgs/applications/science/math/jags/default.nix2
-rw-r--r--pkgs/applications/science/math/maxima/default.nix2
-rw-r--r--pkgs/applications/science/misc/fityk/default.nix2
-rw-r--r--pkgs/applications/science/misc/simgrid/default.nix2
-rw-r--r--pkgs/applications/science/molecular-dynamics/gromacs/default.nix2
-rw-r--r--pkgs/applications/science/spyder/default.nix2
-rw-r--r--pkgs/applications/version-management/darcs/default.nix16
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix2
-rw-r--r--pkgs/applications/version-management/rcs/default.nix2
-rw-r--r--pkgs/applications/video/gnash/default.nix2
-rw-r--r--pkgs/applications/video/key-mon/default.nix4
-rw-r--r--pkgs/applications/video/kino/default.nix2
-rw-r--r--pkgs/applications/video/linuxstopmotion/default.nix36
-rw-r--r--pkgs/applications/video/linuxstopmotion/linuxstopmotion-fix-wrong-isProcess-logic.patch33
-rw-r--r--pkgs/applications/video/mpv/default.nix18
-rw-r--r--pkgs/applications/video/smplayer/default.nix4
-rw-r--r--pkgs/applications/video/uvccapture/default.nix51
-rw-r--r--pkgs/applications/video/xbmc/default.nix8
-rw-r--r--pkgs/applications/virtualization/bochs/default.nix17
-rw-r--r--pkgs/applications/virtualization/docker/default.nix12
-rw-r--r--pkgs/applications/virtualization/nova/default.nix2
-rw-r--r--pkgs/applications/virtualization/virt-manager/default.nix2
-rw-r--r--pkgs/applications/virtualization/virtinst/default.nix4
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix8
-rw-r--r--pkgs/applications/window-managers/fluxbox/default.nix33
-rw-r--r--pkgs/applications/window-managers/ratpoison/default.nix2
-rwxr-xr-xpkgs/build-support/fetchbzr/nix-prefetch-bzr7
-rwxr-xr-xpkgs/build-support/fetchcvs/nix-prefetch-cvs2
-rwxr-xr-xpkgs/build-support/fetchgit/nix-prefetch-git10
-rwxr-xr-xpkgs/build-support/fetchhg/nix-prefetch-hg7
-rwxr-xr-xpkgs/build-support/fetchsvn/nix-prefetch-svn7
-rw-r--r--pkgs/data/documentation/man-pages/default.nix4
-rw-r--r--pkgs/data/fonts/comic-neue/default.nix33
-rw-r--r--pkgs/data/fonts/fira/default.nix36
-rw-r--r--pkgs/data/fonts/terminus-font/default.nix4
-rw-r--r--pkgs/desktops/e17/enlightenment/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/gtkglext/default.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.10/core/yelp/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/3.10/misc/gitg/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/3.10/misc/libgit2-glib/default.nix10
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/gitg/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/3.12/misc/libgit2-glib/default.nix8
-rw-r--r--pkgs/development/arduino/ino/default.nix2
-rw-r--r--pkgs/development/compilers/ats2/default.nix4
-rw-r--r--pkgs/development/compilers/bigloo/default.nix2
-rw-r--r--pkgs/development/compilers/cryptol/1.8.x.nix2
-rw-r--r--pkgs/development/compilers/cudatoolkit/5.5.nix3
-rw-r--r--pkgs/development/compilers/cudatoolkit/6.0.nix3
-rw-r--r--pkgs/development/compilers/cudatoolkit/setup-hook.sh8
-rw-r--r--pkgs/development/compilers/emscripten-fastcomp/default.nix42
-rw-r--r--pkgs/development/compilers/emscripten/default.nix40
-rw-r--r--pkgs/development/compilers/gambit/default.nix2
-rw-r--r--pkgs/development/compilers/go/1.3.nix8
-rw-r--r--pkgs/development/compilers/hugs/default.nix2
-rw-r--r--pkgs/development/compilers/ikarus/default.nix2
-rw-r--r--pkgs/development/compilers/julia/0.3.0.nix157
-rw-r--r--pkgs/development/compilers/mercury/default.nix2
-rw-r--r--pkgs/development/compilers/mit-scheme/default.nix18
-rw-r--r--pkgs/development/compilers/ocaml/3.10.0.nix2
-rw-r--r--pkgs/development/compilers/ocaml/3.11.2.nix2
-rw-r--r--pkgs/development/compilers/ocaml/3.12.1.nix2
-rw-r--r--pkgs/development/compilers/ocaml/4.00.1.nix2
-rw-r--r--pkgs/development/compilers/ocaml/4.01.0.nix2
-rw-r--r--pkgs/development/compilers/ocaml/ber-metaocaml-003.nix2
-rw-r--r--pkgs/development/compilers/qi/default.nix2
-rw-r--r--pkgs/development/compilers/rdmd/default.nix2
-rw-r--r--pkgs/development/compilers/rustc/0.11.nix2
-rw-r--r--pkgs/development/compilers/rustc/head.nix2
-rw-r--r--pkgs/development/compilers/scala/default.nix2
-rw-r--r--pkgs/development/compilers/tinycc/default.nix2
-rw-r--r--pkgs/development/interpreters/guile/default.nix2
-rw-r--r--pkgs/development/interpreters/maude/default.nix2
-rw-r--r--pkgs/development/interpreters/perl/5.10/default.nix62
-rw-r--r--pkgs/development/interpreters/perl/5.10/no-sys-dirs.patch201
-rw-r--r--pkgs/development/interpreters/perl/5.10/setup-hook.sh5
-rw-r--r--pkgs/development/interpreters/perl/5.8/default.nix67
-rw-r--r--pkgs/development/interpreters/perl/5.8/gcc-4.2.patch10
-rw-r--r--pkgs/development/interpreters/perl/5.8/no-sys-dirs.patch164
-rw-r--r--pkgs/development/interpreters/perl/5.8/setup-hook.sh5
-rw-r--r--pkgs/development/interpreters/php/5.3.nix2
-rw-r--r--pkgs/development/interpreters/php/5.4.nix8
-rw-r--r--pkgs/development/interpreters/pypy/2.3/default.nix22
-rw-r--r--pkgs/development/interpreters/ruby/generated.nix1952
-rw-r--r--pkgs/development/interpreters/ruby/patches.nix5
-rw-r--r--pkgs/development/interpreters/self/default.nix44
-rwxr-xr-xpkgs/development/interpreters/self/self18
-rw-r--r--pkgs/development/libraries/SDL2_net/default.nix22
-rw-r--r--pkgs/development/libraries/boehm-gc/default.nix6
-rw-r--r--pkgs/development/libraries/boost/1.44.nix2
-rw-r--r--pkgs/development/libraries/boost/1.49.nix2
-rw-r--r--pkgs/development/libraries/boost/1.55.nix2
-rw-r--r--pkgs/development/libraries/ccrtp/default.nix2
-rw-r--r--pkgs/development/libraries/celt/default.nix2
-rw-r--r--pkgs/development/libraries/cfitsio/default.nix2
-rw-r--r--pkgs/development/libraries/check/default.nix2
-rw-r--r--pkgs/development/libraries/chipmunk/default.nix2
-rw-r--r--pkgs/development/libraries/chromaprint/default.nix14
-rw-r--r--pkgs/development/libraries/cloog/default.nix2
-rw-r--r--pkgs/development/libraries/clutter-gst/default.nix2
-rw-r--r--pkgs/development/libraries/clutter/default.nix2
-rw-r--r--pkgs/development/libraries/coprthr/default.nix3
-rw-r--r--pkgs/development/libraries/fox/default.nix2
-rw-r--r--pkgs/development/libraries/gettext/default.nix2
-rw-r--r--pkgs/development/libraries/git2/default.nix4
-rw-r--r--pkgs/development/libraries/glib/default.nix6
-rw-r--r--pkgs/development/libraries/glib/skip-timer-test.patch17
-rw-r--r--pkgs/development/libraries/glibc/2.19/multi.nix31
-rw-r--r--pkgs/development/libraries/glog/default.nix2
-rw-r--r--pkgs/development/libraries/gmp/4.3.2.nix2
-rw-r--r--pkgs/development/libraries/gmp/5.0.5.nix2
-rw-r--r--pkgs/development/libraries/gmp/5.1.x.nix2
-rw-r--r--pkgs/development/libraries/gss/default.nix2
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix2
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix2
-rw-r--r--pkgs/development/libraries/gtk+/2.x.nix7
-rw-r--r--pkgs/development/libraries/gtk+/3.x.nix7
-rw-r--r--pkgs/development/libraries/gtkimageview/default.nix2
-rw-r--r--pkgs/development/libraries/gtkmathview/default.nix2
-rw-r--r--pkgs/development/libraries/gupnp/default.nix2
-rw-r--r--pkgs/development/libraries/haskell/GLUtil/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/HTTP/4000.2.18.nix (renamed from pkgs/development/libraries/haskell/HTTP/4000.2.17.nix)14
-rw-r--r--pkgs/development/libraries/haskell/MonadRandom/0.1.13.nix (renamed from pkgs/development/libraries/haskell/MonadRandom/default.nix)1
-rw-r--r--pkgs/development/libraries/haskell/MonadRandom/0.2.0.1.nix15
-rw-r--r--pkgs/development/libraries/haskell/auto-update/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/aws/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cabal-cargs/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cabal-lenses/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/compdata/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/diagrams/cairo.nix6
-rw-r--r--pkgs/development/libraries/haskell/diagrams/contrib.nix6
-rw-r--r--pkgs/development/libraries/haskell/diagrams/core.nix6
-rw-r--r--pkgs/development/libraries/haskell/diagrams/lib.nix6
-rw-r--r--pkgs/development/libraries/haskell/diagrams/postscript.nix7
-rw-r--r--pkgs/development/libraries/haskell/diagrams/svg.nix6
-rw-r--r--pkgs/development/libraries/haskell/digestive-functors-aeson/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/dns/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/engine-io/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/equational-reasoning/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/force-layout/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/free-game/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/ghc-mod/5.0.1.1.nix (renamed from pkgs/development/libraries/haskell/ghc-mod/5.0.1.nix)28
-rw-r--r--pkgs/development/libraries/haskell/ghc-syb-utils/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/github/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/gitit/default.nix27
-rw-r--r--pkgs/development/libraries/haskell/hakyll/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/hcltest/default.nix2
-rw-r--r--pkgs/development/libraries/haskell/hdaemonize/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/hi/default.nix10
-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.nix1
-rw-r--r--pkgs/development/libraries/haskell/hspec2/default.nix2
-rw-r--r--pkgs/development/libraries/haskell/hsyslog/default.nix1
-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/hweblib/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/ivory/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/json-assertions/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/json-schema/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/language-c/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/lens-aeson/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/lens/default.nix29
-rw-r--r--pkgs/development/libraries/haskell/lifted-async/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/markdown/default.nix27
-rw-r--r--pkgs/development/libraries/haskell/monad-logger/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/monomorphic/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/network-fancy/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/network/2.5.0.0.nix1
-rw-r--r--pkgs/development/libraries/haskell/network/2.6.0.1.nix16
-rw-r--r--pkgs/development/libraries/haskell/parsers/0.10.3.nix22
-rw-r--r--pkgs/development/libraries/haskell/parsers/default.nix (renamed from pkgs/development/libraries/haskell/parsers/0.12.1.nix)0
-rw-r--r--pkgs/development/libraries/haskell/poppler/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/postgresql-simple/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/random/1.0.1.1.nix1
-rw-r--r--pkgs/development/libraries/haskell/random/1.0.1.3.nix15
-rw-r--r--pkgs/development/libraries/haskell/reserve/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/rest-core/default.nix4
-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/rest-snap/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/rest-types/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/rest-wai/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/servant-pool/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/servant-postgresql/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/servant-response/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/servant-scotty/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/servant/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/shelly/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/sized/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/socket-io/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/statvfs/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/stylish-haskell/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/tasty-hunit/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/twitter-conduit/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/twitter-types/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/type-natural/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/vty/5.2.1.nix (renamed from pkgs/development/libraries/haskell/vty/5.1.4.nix)4
-rw-r--r--pkgs/development/libraries/haskell/wai-extra/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/websockets/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/wl-pprint-terminfo/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/wreq/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/xml-lens/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/yaml/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-auth-hashdb/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/yesod-core/default.nix4
-rw-r--r--pkgs/development/libraries/hwloc/default.nix2
-rw-r--r--pkgs/development/libraries/jasper/default.nix2
-rw-r--r--pkgs/development/libraries/java/classpath/default.nix2
-rw-r--r--pkgs/development/libraries/java/rhino/default.nix2
-rw-r--r--pkgs/development/libraries/kerberos/krb5.nix2
-rw-r--r--pkgs/development/libraries/libassuan/default.nix2
-rw-r--r--pkgs/development/libraries/libcddb/default.nix2
-rw-r--r--pkgs/development/libraries/libchamplain/default.nix2
-rw-r--r--pkgs/development/libraries/libchop/default.nix2
-rw-r--r--pkgs/development/libraries/libdaemon/default.nix2
-rw-r--r--pkgs/development/libraries/libdiscid/default.nix19
-rw-r--r--pkgs/development/libraries/libdnet/default.nix2
-rw-r--r--pkgs/development/libraries/libelf/default.nix2
-rw-r--r--pkgs/development/libraries/libevent/default.nix2
-rw-r--r--pkgs/development/libraries/libextractor/default.nix2
-rw-r--r--pkgs/development/libraries/libgcrypt/default.nix2
-rw-r--r--pkgs/development/libraries/libiconv/default.nix2
-rw-r--r--pkgs/development/libraries/libidn/default.nix2
-rw-r--r--pkgs/development/libraries/libksba/default.nix2
-rw-r--r--pkgs/development/libraries/libmicrohttpd/default.nix2
-rw-r--r--pkgs/development/libraries/libnfc/default.nix21
-rw-r--r--pkgs/development/libraries/libnftnl/default.nix20
-rw-r--r--pkgs/development/libraries/libofa/default.nix2
-rw-r--r--pkgs/development/libraries/libsigsegv/default.nix2
-rw-r--r--pkgs/development/libraries/libspectre/default.nix2
-rw-r--r--pkgs/development/libraries/libtar/default.nix36
-rw-r--r--pkgs/development/libraries/libtasn1/default.nix2
-rw-r--r--pkgs/development/libraries/libtoxcore/default.nix6
-rw-r--r--pkgs/development/libraries/libunistring/default.nix2
-rw-r--r--pkgs/development/libraries/libuv/default.nix1
-rw-r--r--pkgs/development/libraries/libvirt/default.nix4
-rw-r--r--pkgs/development/libraries/libxmi/default.nix2
-rw-r--r--pkgs/development/libraries/lightning/default.nix8
-rw-r--r--pkgs/development/libraries/ming/default.nix2
-rw-r--r--pkgs/development/libraries/movit/default.nix4
-rw-r--r--pkgs/development/libraries/mpc/default.nix2
-rw-r--r--pkgs/development/libraries/mpfr/default.nix2
-rw-r--r--pkgs/development/libraries/mpich2/default.nix2
-rw-r--r--pkgs/development/libraries/ncurses/default.nix2
-rw-r--r--pkgs/development/libraries/nettle/default.nix2
-rw-r--r--pkgs/development/libraries/nix-plugins/default.nix1
-rw-r--r--pkgs/development/libraries/oniguruma/default.nix2
-rw-r--r--pkgs/development/libraries/opal/default.nix2
-rw-r--r--pkgs/development/libraries/openal/default.nix2
-rw-r--r--pkgs/development/libraries/opencascade/oce.nix6
-rw-r--r--pkgs/development/libraries/openldap/default.nix1
-rw-r--r--pkgs/development/libraries/openmpi/default.nix15
-rw-r--r--pkgs/development/libraries/pdf2htmlex/default.nix27
-rw-r--r--pkgs/development/libraries/plib/default.nix2
-rw-r--r--pkgs/development/libraries/ppl/default.nix2
-rw-r--r--pkgs/development/libraries/protobuf/default.nix6
-rw-r--r--pkgs/development/libraries/qt-5/qt-5.3.nix4
-rw-r--r--pkgs/development/libraries/readline/readline6.3.nix2
-rw-r--r--pkgs/development/libraries/readline/readline6.nix2
-rw-r--r--pkgs/development/libraries/science/biology/biolib/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/liblapack/3.5.0.nix49
-rw-r--r--pkgs/development/libraries/science/math/liblapack/default.nix8
-rw-r--r--pkgs/development/libraries/science/math/openblas/0.2.10.nix32
-rw-r--r--pkgs/development/libraries/science/math/openblas/default.nix9
-rw-r--r--pkgs/development/libraries/skalibs/default.nix58
-rw-r--r--pkgs/development/libraries/skalibs/getpeereid.patch28
-rw-r--r--pkgs/development/libraries/szip/default.nix4
-rw-r--r--pkgs/development/libraries/talloc/default.nix2
-rw-r--r--pkgs/development/libraries/tdb/default.nix2
-rw-r--r--pkgs/development/libraries/tecla/default.nix2
-rw-r--r--pkgs/development/libraries/ucommon/default.nix2
-rw-r--r--pkgs/development/libraries/v8/default.nix2
-rw-r--r--pkgs/development/libraries/xapian/default.nix2
-rw-r--r--pkgs/development/libraries/xbase/default.nix2
-rw-r--r--pkgs/development/libraries/xylib/default.nix2
-rw-r--r--pkgs/development/libraries/zeitgeist/default.nix5
-rw-r--r--pkgs/development/mobile/androidenv/default.nix12
-rw-r--r--pkgs/development/ocaml-modules/csv/default.nix27
-rw-r--r--pkgs/development/ocaml-modules/extlib/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/javalib/Makefile.config.example.patch9
-rw-r--r--pkgs/development/ocaml-modules/javalib/configure.sh.patch11
-rw-r--r--pkgs/development/ocaml-modules/javalib/default.nix40
-rw-r--r--pkgs/development/ocaml-modules/sawja/Makefile.config.example.patch9
-rw-r--r--pkgs/development/ocaml-modules/sawja/configure.sh.patch11
-rw-r--r--pkgs/development/ocaml-modules/sawja/default.nix33
-rw-r--r--pkgs/development/ocaml-modules/uucd/default.nix39
-rw-r--r--pkgs/development/ocaml-modules/uunf/default.nix37
-rw-r--r--pkgs/development/ocaml-modules/uutf/default.nix37
-rw-r--r--pkgs/development/ocaml-modules/xmlm/default.nix37
-rw-r--r--pkgs/development/python-modules/btrees_interger_overflow.patch146
-rw-r--r--pkgs/development/python-modules/ecdsa/default.nix4
-rw-r--r--pkgs/development/python-modules/generic/default.nix8
-rw-r--r--pkgs/development/python-modules/h5py/default.nix43
-rw-r--r--pkgs/development/python-modules/mpi4py/default.nix45
-rw-r--r--pkgs/development/python-modules/numeric/default.nix4
-rw-r--r--pkgs/development/python-modules/pil/default.nix45
-rw-r--r--pkgs/development/python-modules/pycrypto/default.nix5
-rw-r--r--pkgs/development/python-modules/pygtk/default.nix4
-rw-r--r--pkgs/development/python-modules/pyuv-external-libuv.patch27
-rw-r--r--pkgs/development/tools/analysis/lcov/default.nix2
-rw-r--r--pkgs/development/tools/analysis/sparse/default.nix2
-rw-r--r--pkgs/development/tools/analysis/valgrind/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/gradle/default.nix2
-rw-r--r--pkgs/development/tools/documentation/doxygen/default.nix2
-rw-r--r--pkgs/development/tools/documentation/haddock/2.14.3.nix2
-rw-r--r--pkgs/development/tools/haskell/cabal-bounds/default.nix4
-rw-r--r--pkgs/development/tools/haskell/cabal2nix/default.nix11
-rw-r--r--pkgs/development/tools/java/fastjar/default.nix2
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix2
-rw-r--r--pkgs/development/tools/misc/bossa/bin2c.c122
-rw-r--r--pkgs/development/tools/misc/bossa/default.nix49
-rw-r--r--pkgs/development/tools/misc/cflow/default.nix2
-rw-r--r--pkgs/development/tools/misc/coccinelle/default.nix2
-rw-r--r--pkgs/development/tools/misc/complexity/default.nix2
-rw-r--r--pkgs/development/tools/misc/cppi/default.nix2
-rw-r--r--pkgs/development/tools/misc/cscope/default.nix2
-rw-r--r--pkgs/development/tools/misc/ctags/default.nix2
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix2
-rw-r--r--pkgs/development/tools/misc/gengetopt/default.nix2
-rw-r--r--pkgs/development/tools/misc/global/default.nix2
-rw-r--r--pkgs/development/tools/misc/gperf/default.nix2
-rw-r--r--pkgs/development/tools/misc/help2man/default.nix2
-rw-r--r--pkgs/development/tools/misc/libtool/default.nix2
-rw-r--r--pkgs/development/tools/misc/nixbang/default.nix20
-rw-r--r--pkgs/development/tools/misc/sloccount/default.nix2
-rw-r--r--pkgs/development/tools/misc/swig/default.nix2
-rw-r--r--pkgs/development/tools/misc/texinfo/4.13a.nix2
-rw-r--r--pkgs/development/tools/misc/texinfo/5.2.nix2
-rw-r--r--pkgs/development/tools/ocaml/omake/default.nix2
-rw-r--r--pkgs/development/tools/parsing/bison/2.x.nix2
-rw-r--r--pkgs/development/tools/parsing/bison/3.x.nix2
-rw-r--r--pkgs/development/tools/profiling/oprofile/default.nix2
-rw-r--r--pkgs/development/tools/profiling/sysprof/default.nix2
-rw-r--r--pkgs/development/tools/sqsh/default.nix2
-rw-r--r--pkgs/development/web/nodejs/build-node-package.nix2
-rw-r--r--pkgs/games/adom/default.nix2
-rw-r--r--pkgs/games/banner/default.nix2
-rw-r--r--pkgs/games/chessdb/default.nix2
-rw-r--r--pkgs/games/construo/default.nix2
-rw-r--r--pkgs/games/crafty/default.nix2
-rw-r--r--pkgs/games/eboard/default.nix2
-rw-r--r--pkgs/games/gemrb/default.nix20
-rw-r--r--pkgs/games/openspades/default.nix14
-rw-r--r--pkgs/games/openttd/default.nix2
-rw-r--r--pkgs/games/opentyrian/default.nix2
-rw-r--r--pkgs/games/quake3/game/default.nix2
-rw-r--r--pkgs/games/teeworlds/default.nix2
-rw-r--r--pkgs/games/the-butterfly-effect/default.nix9
-rw-r--r--pkgs/games/xskat/default.nix38
-rw-r--r--pkgs/misc/emulators/emulationstation/default.nix31
-rw-r--r--pkgs/misc/emulators/ppsspp/default.nix8
-rw-r--r--pkgs/misc/ghostscript/default.nix4
-rw-r--r--pkgs/misc/xosd/default.nix2
-rw-r--r--pkgs/os-specific/linux/conky/default.nix2
-rw-r--r--pkgs/os-specific/linux/ffado/default.nix15
-rw-r--r--pkgs/os-specific/linux/kernel/3.17-buildfix.patch62
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix1
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.12.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix11
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix12
-rw-r--r--pkgs/os-specific/linux/nftables/default.nix28
-rw-r--r--pkgs/os-specific/linux/policycoreutils/default.nix6
-rw-r--r--pkgs/os-specific/linux/policycoreutils/size_format.patch11
-rw-r--r--pkgs/os-specific/linux/shadow/default.nix6
-rw-r--r--pkgs/os-specific/linux/xf86-input-wacom/default.nix4
-rw-r--r--pkgs/servers/amqp/rabbitmq-server/default.nix4
-rw-r--r--pkgs/servers/dico/default.nix2
-rw-r--r--pkgs/servers/dns/bind/default.nix2
-rw-r--r--pkgs/servers/felix/default.nix2
-rw-r--r--pkgs/servers/firebird/default.nix2
-rw-r--r--pkgs/servers/http/couchdb/default.nix2
-rw-r--r--pkgs/servers/http/jboss/default.nix2
-rw-r--r--pkgs/servers/http/openresty/default.nix5
-rw-r--r--pkgs/servers/mail/mlmmj/default.nix21
-rw-r--r--pkgs/servers/monitoring/riemann/default.nix28
-rw-r--r--pkgs/servers/news/leafnode/default.nix1
-rw-r--r--pkgs/servers/nosql/influxdb/default.nix2
-rw-r--r--pkgs/servers/nosql/mongodb/default.nix4
-rw-r--r--pkgs/servers/nosql/neo4j/default.nix39
-rw-r--r--pkgs/servers/pies/default.nix2
-rw-r--r--pkgs/servers/pulseaudio/default.nix2
-rw-r--r--pkgs/servers/s6/default.nix57
-rw-r--r--pkgs/servers/shishi/default.nix2
-rw-r--r--pkgs/servers/x11/xorg/default.nix10
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix4
-rw-r--r--pkgs/servers/x11/xorg/tarballs-7.7.list1
-rwxr-xr-xpkgs/servers/zookeeper/default.nix36
-rw-r--r--pkgs/shells/ipython/default.nix4
-rw-r--r--pkgs/shells/rush/default.nix2
-rw-r--r--pkgs/tools/X11/hsetroot/default.nix2
-rw-r--r--pkgs/tools/X11/obconf/default.nix27
-rw-r--r--pkgs/tools/X11/wmctrl/default.nix2
-rw-r--r--pkgs/tools/X11/xinput_calibrator/default.nix21
-rw-r--r--pkgs/tools/X11/xnee/default.nix2
-rw-r--r--pkgs/tools/X11/xtrace/default.nix2
-rw-r--r--pkgs/tools/admin/tigervnc/default.nix7
-rw-r--r--pkgs/tools/admin/tightvnc/default.nix2
-rw-r--r--pkgs/tools/archivers/sharutils/default.nix2
-rw-r--r--pkgs/tools/audio/pnmixer/default.nix29
-rw-r--r--pkgs/tools/backup/partclone/default.nix8
-rw-r--r--pkgs/tools/cd-dvd/xorriso/default.nix2
-rw-r--r--pkgs/tools/compression/gzip/default.nix2
-rw-r--r--pkgs/tools/compression/rzip/default.nix2
-rw-r--r--pkgs/tools/filesystems/chunkfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/encfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/mtools/default.nix2
-rw-r--r--pkgs/tools/filesystems/svnfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/wdfs/default.nix2
-rw-r--r--pkgs/tools/filesystems/yandex-disk/default.nix3
-rw-r--r--pkgs/tools/graphics/cuneiform/default.nix2
-rw-r--r--pkgs/tools/graphics/plotutils/default.nix2
-rw-r--r--pkgs/tools/inputmethods/anthy/default.nix18
-rw-r--r--pkgs/tools/inputmethods/uim/default.nix44
-rw-r--r--pkgs/tools/inputmethods/uim/immodules_cache.patch231
-rw-r--r--pkgs/tools/misc/abduco/default.nix28
-rw-r--r--pkgs/tools/misc/cpuminer-multi/default.nix31
-rw-r--r--pkgs/tools/misc/execline/default.nix54
-rw-r--r--pkgs/tools/misc/flashrom/default.nix23
-rw-r--r--pkgs/tools/misc/goaccess/default.nix2
-rw-r--r--pkgs/tools/misc/grub/2.0x.nix62
-rw-r--r--pkgs/tools/misc/hdf5/default.nix16
-rw-r--r--pkgs/tools/misc/idutils/default.nix2
-rw-r--r--pkgs/tools/misc/lbdb/default.nix2
-rw-r--r--pkgs/tools/misc/ldapvi/default.nix6
-rw-r--r--pkgs/tools/misc/logstash-forwarder/default.nix5
-rw-r--r--pkgs/tools/misc/minicom/default.nix2
-rw-r--r--pkgs/tools/misc/most/default.nix3
-rw-r--r--pkgs/tools/misc/parallel/default.nix6
-rw-r--r--pkgs/tools/misc/parted/default.nix2
-rw-r--r--pkgs/tools/misc/pg_top/default.nix2
-rw-r--r--pkgs/tools/misc/recutils/default.nix2
-rw-r--r--pkgs/tools/misc/time/default.nix2
-rw-r--r--pkgs/tools/misc/tmpwatch/default.nix2
-rw-r--r--pkgs/tools/misc/tmux/default.nix2
-rw-r--r--pkgs/tools/misc/yad/default.nix2
-rw-r--r--pkgs/tools/networking/atftp/default.nix72
-rw-r--r--pkgs/tools/networking/cntlm/default.nix2
-rw-r--r--pkgs/tools/networking/connman/default.nix2
-rw-r--r--pkgs/tools/networking/dnsmasq/default.nix32
-rw-r--r--pkgs/tools/networking/flvstreamer/default.nix2
-rw-r--r--pkgs/tools/networking/host/default.nix2
-rw-r--r--pkgs/tools/networking/inetutils/default.nix2
-rw-r--r--pkgs/tools/networking/jnettop/default.nix2
-rw-r--r--pkgs/tools/networking/lsh/default.nix2
-rwxr-xr-xpkgs/tools/networking/mailutils/default.nix2
-rw-r--r--pkgs/tools/networking/minidlna/default.nix2
-rw-r--r--pkgs/tools/networking/netboot/default.nix53
-rw-r--r--pkgs/tools/networking/ntopng/default.nix47
-rw-r--r--pkgs/tools/networking/radvd/default.nix20
-rw-r--r--pkgs/tools/networking/spiped/default.nix4
-rw-r--r--pkgs/tools/networking/tcpdump/default.nix2
-rw-r--r--pkgs/tools/networking/wget/default.nix2
-rw-r--r--pkgs/tools/package-management/nix/default.nix9
-rw-r--r--pkgs/tools/package-management/nix/unstable.nix6
-rw-r--r--pkgs/tools/security/chntpw/00-chntpw-build-arch-autodetect.patch25
-rw-r--r--pkgs/tools/security/chntpw/01-chntpw-install-target.patch26
-rw-r--r--pkgs/tools/security/chntpw/default.nix29
-rw-r--r--pkgs/tools/security/gnupg/default.nix4
-rw-r--r--pkgs/tools/security/hashcat/default.nix2
-rw-r--r--pkgs/tools/security/mfcuk/default.nix21
-rw-r--r--pkgs/tools/security/scrypt/default.nix2
-rw-r--r--pkgs/tools/security/steghide/default.nix2
-rw-r--r--pkgs/tools/security/stricat/default.nix24
-rw-r--r--pkgs/tools/security/tboot/default.nix4
-rw-r--r--pkgs/tools/security/tor/default.nix2
-rw-r--r--pkgs/tools/security/tpm-tools/default.nix9
-rw-r--r--pkgs/tools/security/trousers/default.nix2
-rw-r--r--pkgs/tools/system/cron/default.nix2
-rw-r--r--pkgs/tools/system/di/default.nix20
-rw-r--r--pkgs/tools/system/freeipmi/default.nix2
-rw-r--r--pkgs/tools/system/hardlink/default.nix2
-rw-r--r--pkgs/tools/system/mcron/default.nix2
-rw-r--r--pkgs/tools/system/thermald/default.nix36
-rw-r--r--pkgs/tools/text/enscript/default.nix2
-rw-r--r--pkgs/tools/text/mpage/default.nix2
-rw-r--r--pkgs/tools/text/namazu/default.nix2
-rw-r--r--pkgs/tools/text/sgml/openjade/default.nix2
-rw-r--r--pkgs/tools/text/sgml/openjade/msggen.patch34
-rw-r--r--pkgs/tools/text/wdiff/default.nix2
-rw-r--r--pkgs/tools/text/wgetpaste/default.nix51
-rw-r--r--pkgs/tools/typesetting/docbook2x/default.nix5
-rw-r--r--pkgs/tools/typesetting/lout/default.nix2
-rw-r--r--pkgs/tools/typesetting/rubber/default.nix2
-rw-r--r--pkgs/tools/typesetting/xmlto/default.nix2
-rw-r--r--pkgs/tools/video/dvgrab/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix269
-rw-r--r--pkgs/top-level/haskell-defaults.nix8
-rw-r--r--pkgs/top-level/haskell-packages.nix62
-rw-r--r--pkgs/top-level/make-tarball.nix31
-rw-r--r--pkgs/top-level/node-packages-generated.nix11505
-rw-r--r--pkgs/top-level/node-packages.json8
-rw-r--r--pkgs/top-level/perl-packages.nix15
-rw-r--r--pkgs/top-level/php-packages.nix6
-rw-r--r--pkgs/top-level/python-packages-generated.nix3
-rw-r--r--pkgs/top-level/python-packages.nix983
-rw-r--r--pkgs/top-level/release-small.nix1
-rw-r--r--pkgs/top-level/release.nix4
756 files changed, 18630 insertions, 13436 deletions
diff --git a/doc/Makefile b/doc/Makefile
deleted file mode 100644
index 39988cdd414e..000000000000
--- a/doc/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# You may need to override this.
-docbookxsl = $(HOME)/.nix-profile/xml/xsl/docbook
-dblatex = dblatex
-
-XMLLINT = xmllint --catalogs
-XSLTPROC = xsltproc --catalogs \
- --param section.autolabel 1 \
- --param section.label.includes.component.label 1 \
- --param html.stylesheet \'style.css\' \
- --param xref.with.number.and.title 1 \
- --param toc.section.depth 3 \
- --param admon.style \'\' \
- --param callout.graphics.extension \'.gif\'
-
-NEWS_OPTS = \
- --stringparam generate.toc "article nop" \
- --stringparam section.autolabel.max.depth 0 \
- --stringparam header.rule 0
-
-all: NEWS.html NEWS.txt manual.html manual.pdf
-
-NEWS.html: release-notes.xml
-	$(XSLTPROC) --nonet --xinclude --output $@ $(NEWS_OPTS) \
-	  $(docbookxsl)/xhtml/docbook.xsl release-notes.xml
-
-NEWS.txt: release-notes.xml
-	$(XSLTPROC) --nonet --xinclude quote-literals.xsl release-notes.xml | \
-	  $(XSLTPROC) --nonet --output $@.tmp.html $(NEWS_OPTS) \
-	  $(docbookxsl)/xhtml/docbook.xsl -
-	LANG=en_US w3m -dump $@.tmp.html > $@
-	rm $@.tmp.html
-
-manual.html: *.xml
-	$(XSLTPROC) --nonet --xinclude --output manual.html \
-	  $(docbookxsl)/xhtml/docbook.xsl manual.xml
-
-manual.pdf: *.xml
-	$(dblatex) \
-	  -P doc.collab.show=0 \
-	  -P latex.output.revhistory=0 \
-	  manual.xml
diff --git a/doc/default.nix b/doc/default.nix
new file mode 100644
index 000000000000..1e8974d60266
--- /dev/null
+++ b/doc/default.nix
@@ -0,0 +1,42 @@
+with import ./.. { };
+with lib;
+
+stdenv.mkDerivation {
+  name = "nixpkgs-manual";
+
+  sources = sourceFilesBySuffices ./. [".xml"];
+
+  buildInputs = [ libxml2 libxslt ];
+
+  xsltFlags = ''
+    --param section.autolabel 1
+    --param section.label.includes.component.label 1
+    --param html.stylesheet 'style.css'
+    --param xref.with.number.and.title 1
+    --param toc.section.depth 3
+    --param admon.style '''
+    --param callout.graphics.extension '.gif'
+  '';
+
+  buildCommand = ''
+    ln -s $sources/*.xml . # */
+
+    echo ${nixpkgsVersion} > .version
+
+    xmllint --noout --nonet --xinclude --noxincludenode \
+      --relaxng ${docbook5}/xml/rng/docbook/docbook.rng \
+      manual.xml
+
+    dst=$out/share/doc/nixpkgs
+    mkdir -p $dst
+    xsltproc $xsltFlags --nonet --xinclude \
+      --output $dst/manual.html \
+      ${docbook5_xsl}/xml/xsl/docbook/xhtml/docbook.xsl \
+      ./manual.xml
+
+    cp ${./style.css} $dst/style.css
+
+    mkdir -p $out/nix-support
+    echo "doc manual $dst manual.html" >> $out/nix-support/hydra-build-products
+  '';
+}
diff --git a/doc/manual.xml b/doc/manual.xml
index 145e3e12dd92..01373b4f5b1d 100644
--- a/doc/manual.xml
+++ b/doc/manual.xml
@@ -3,25 +3,9 @@
 
   <info>
 
-    <title>Nixpkgs Manual</title>
+    <title>Nixpkgs Contributors Guide</title>
 
-    <subtitle>Draft (Version <xi:include href="../.version"
-    parse="text" />)</subtitle>
-
-    <author>
-      <personname>
-        <firstname>Eelco</firstname>
-        <surname>Dolstra</surname>
-      </personname>
-      <affiliation>
-        <orgname>LogicBlox</orgname>
-      </affiliation>
-    </author>
-
-    <copyright>
-      <year>2008-2012</year>
-      <holder>Eelco Dolstra</holder>
-    </copyright>
+    <subtitle>Version <xi:include href=".version" parse="text" /></subtitle>
 
   </info>
 
@@ -33,6 +17,5 @@
   <xi:include href="package-notes.xml" />
   <xi:include href="coding-conventions.xml" />
   <xi:include href="contributing.xml" />
-  
-        
+
 </book>
diff --git a/doc/meta.xml b/doc/meta.xml
index eb644b3b0ee2..e91f94d15c24 100644
--- a/doc/meta.xml
+++ b/doc/meta.xml
@@ -27,7 +27,7 @@ meta = {
 
 <para>Meta-attributes are not passed to the builder of the package.
 Thus, a change to a meta-attribute doesn’t trigger a recompilation of
-the package.  The value of a meta-attribute must a string.</para>
+the package.  The value of a meta-attribute must be a string.</para>
 
 <para>The meta-attributes of a package can be queried from the
 command-line using <command>nix-env</command>:
@@ -120,12 +120,12 @@ interpretation:</para>
 
   <varlistentry>
     <term><varname>license</varname></term>
-    <listitem><para>The license for the package. One from attribute set defined in
-      <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/lib/licenses.nix">
-      <filename>nixpkgs/lib/licenses.nix</filename></link>.
-      Example:
-      <literal>stdenv.lib.licenses.gpl3</literal>.</para></listitem>
-      See details in <xref linkend='sec-meta-license'/>,
+    <listitem><para>The license for the package. One from the
+    attribute set defined in <link
+    xlink:href="https://github.com/NixOS/nixpkgs/blob/master/lib/licenses.nix">
+    <filename>nixpkgs/lib/licenses.nix</filename></link>.  Example:
+    <literal>stdenv.lib.licenses.gpl3</literal>. For details, see
+    <xref linkend='sec-meta-license'/>.</para></listitem>
   </varlistentry>
 
   <varlistentry>
diff --git a/lib/licenses.nix b/lib/licenses.nix
index 02618f1c6ca7..812592c74f27 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -62,6 +62,11 @@ rec {
     fullName = ''BSD 4-clause "Original" or "Old" License'';
   };
 
+  cc0 = spdx {
+    shortName = "CC0-1.0";
+    fullName = ''Creative Commons Zero v1.0 Universal'';
+  };
+
   cc-by-30 = spdx {
     shortName = "CC-BY-3.0";
     fullName = "Creative Commons Attribution 3.0";
@@ -210,6 +215,11 @@ rec {
     url       = "http://research.microsoft.com/en-us/projects/pex/msr-la.txt";
   };
 
+  ncsa = spdx {
+    shortName = "NCSA";
+    fullName  = "University of Illinois/NCSA Open Source License";
+  };
+
   ofl = spdx {
     shortName = "OFL-1.1";
     fullName = "SIL Open Font License 1.1";
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 184fd7036a0f..3de82db1cd98 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -19,21 +19,25 @@
   astsmtl = "Alexander Tsamutali <astsmtl@yandex.ru>";
   aszlig = "aszlig <aszlig@redmoonstudios.org>";
   auntie = "Jonathan Glines <auntieNeo@gmail.com>";
+  aycanirican = "Aycan iRiCAN <iricanaycan@gmail.com>";
   bbenoist = "Baptist BENOIST <return_0@live.com>";
   bennofs = "Benno Fünfstück <benno.fuenfstueck@gmail.com>";
   berdario = "Dario Bertini <berdario@gmail.com>";
+  bergey = "Daniel Bergey <bergey@teallabs.org>";
   bjg = "Brian Gough <bjg@gnu.org>";
   bjornfor = "Bjørn Forsman <bjorn.forsman@gmail.com>";
   bluescreen303 = "Mathijs Kwik <mathijs@bluescreen303.nl>";
   bodil = "Bodil Stokke <nix@bodil.org>";
   bosu = "Boris Sukholitko <boriss@gmail.com>";
   calrama = "Moritz Maxeiner <moritz@ucworks.org>";
+  campadrenalin = "Philip Horger <campadrenalin@gmail.com>";
   cfouche = "Chaddaï Fouché <chaddai.fouche@gmail.com>";
   chaoflow = "Florian Friesdorf <flo@chaoflow.net>";
   coconnor = "Corey O'Connor <coreyoconnor@gmail.com>";
   coroa = "Jonas Hörsch <jonas@chaoflow.net>";
   cstrahan = "Charles Strahan <charles.c.strahan@gmail.com>";
   DamienCassou = "Damien Cassou <damien.cassou@gmail.com>";
+  doublec = "Chris Double <chris.double@double.co.nz>";
   ederoyd46 = "Matthew Brown <matt@ederoyd.co.uk>";
   edwtjo = "Edward Tjörnhammar <ed@cflags.cc>";
   eelco = "Eelco Dolstra <eelco.dolstra@logicblox.com>";
@@ -41,6 +45,7 @@
   ertes = "Ertugrul Söylemez <ertesx@gmx.de>";
   falsifian = "James Cook <james.cook@utoronto.ca>";
   flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
+  funfunctor = "Edward O'Callaghan <eocallaghan@alterapraxis.com>";
   fuuzetsu = "Mateusz Kowalczyk <fuuzetsu@fuuzetsu.co.uk>";
   garbas = "Rok Garbas <rok@garbas.si>";
   goibhniu = "Cillian de Róiste <cillian.deroiste@gmail.com>";
@@ -58,15 +63,18 @@
   kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
   ktosiek = "Tomasz Kontusz <tomasz.kontusz@gmail.com>";
   lethalman = "Luca Bruno <lucabru@src.gnome.org>";
+  lhvwb = "Nathaniel Baxter <nathaniel.baxter@gmail.com>";
   linquize = "Linquize <linquize@yahoo.com.hk>";
   lovek323 = "Jason O'Conal <jason@oconal.id.au>";
   ludo = "Ludovic Courtès <ludo@gnu.org>";
   madjar = "Georges Dubus <georges.dubus@compiletoi.net>";
+  manveru = "Michael Fellinger <m.fellinger@gmail.com>";
   marcweber = "Marc Weber <marco-oweber@gmx.de>";
   matejc = "Matej Cotman <cotman.matej@gmail.com>";
   meisternu = "Matt Miemiec <meister@krutt.org>";
   modulistic = "Pablo Costa <modulistic@gmail.com>";
   mornfall = "Petr Ročkai <me@mornfall.net>";
+  MP2E = "Cray Elliott <MP2E@archlinux.us>";
   msackman = "Matthew Sackman <matthew@wellquite.org>";
   nathan-gs = "Nathan Bijnens <nathan@nathan.gs>";
   notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
diff --git a/lib/sources.nix b/lib/sources.nix
index a80e4397d6a4..4ed16d65d2b7 100644
--- a/lib/sources.nix
+++ b/lib/sources.nix
@@ -21,12 +21,12 @@ rec {
 
 
   # Get all files ending with the specified suffices from the given
-  # directory.  E.g. `sourceFilesBySuffices ./dir [".xml" ".c"]'.
+  # directory or its descendants.  E.g. `sourceFilesBySuffices ./dir
+  # [".xml" ".c"]'.
   sourceFilesBySuffices = path: exts:
     let filter = name: type:
       let base = baseNameOf (toString name);
-      in type != "directory" && lib.any (ext: lib.hasSuffix ext base) exts;
+      in type == "directory" || lib.any (ext: lib.hasSuffix ext base) exts;
     in builtins.filterSource filter path;
 
-
 }
diff --git a/lib/strings.nix b/lib/strings.nix
index efdc265465f3..31b0f56e09b0 100644
--- a/lib/strings.nix
+++ b/lib/strings.nix
@@ -34,6 +34,9 @@ rec {
   concatStringsSep = separator: list:
     concatStrings (intersperse separator list);
 
+  concatMapStringsSep = sep: f: list: concatStringsSep sep (map f list);
+  concatImapStringsSep = sep: f: list: concatStringsSep sep (lib.imap f list);
+
 
   # Construct a Unix-style search path consisting of each `subDir"
   # directory of the given list of packages.  For example,
diff --git a/nixos/doc/config-examples/basic.nix b/nixos/doc/config-examples/basic.nix
deleted file mode 100644
index da37cfb8c286..000000000000
--- a/nixos/doc/config-examples/basic.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  boot = {
-    loader.grub.device = "/dev/sda";
-  };
-
-  fileSystems = [
-    { mountPoint = "/";
-      device = "/dev/sda1";
-    }
-  ];
-
-  swapDevices = [
-    { device = "/dev/sdb1"; }
-  ];
-
-  services = {
-    openssh = {
-      enable = true;
-    };
-  };
-}
diff --git a/nixos/doc/config-examples/closed-install-configuration.nix b/nixos/doc/config-examples/closed-install-configuration.nix
deleted file mode 100644
index 0cebacdb0ccd..000000000000
--- a/nixos/doc/config-examples/closed-install-configuration.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{
-  boot = {
-    loader.grub.device = "/dev/sda";
-    copyKernels = true;
-    bootMount = "(hd0,0)";
-  };
-
-  fileSystems = [
-    { mountPoint = "/";
-      device = "/dev/sda3";
-    }
-    { mountPoint = "/boot";
-      device = "/dev/sda1";
-      neededForBoot = true;
-    }
-  ];
-
-  swapDevices = [
-    { device = "/dev/sda2"; }
-  ];
-
-  services = {
-    sshd = {
-      enable = true;
-    };
-  };
-
-  fonts = {
-    enableFontConfig = false;
-  };
-
-}
diff --git a/nixos/doc/config-examples/root-on-lvm.nix b/nixos/doc/config-examples/root-on-lvm.nix
deleted file mode 100644
index 2ea1e547921f..000000000000
--- a/nixos/doc/config-examples/root-on-lvm.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-# This configuration has / on a LVM volume.  Since Grub
-# doesn't know about LVM, a separate /boot is therefore
-# needed.
-#
-# In this example, labels are used for file systems and
-# swap devices: "boot" might be /dev/sda1, "root" might be
-# /dev/my-volume-group/root, and "swap" might be /dev/sda2.
-# In particular there is no specific reference to the fact
-# that / is on LVM; that's figured out automatically.
-
-{
-  boot.loader.grub.device = "/dev/sda";
-  boot.initrd.kernelModules = ["ata_piix"];
-
-  fileSystems = [
-    { mountPoint = "/";
-      label = "root";
-    }
-    { mountPoint = "/boot";
-      label = "boot";
-    }
-  ];
-
-  swapDevices = [
-    { label = "swap"; }
-  ];
-}
diff --git a/nixos/doc/config-examples/svn-server.nix b/nixos/doc/config-examples/svn-server.nix
deleted file mode 100644
index e727007117b1..000000000000
--- a/nixos/doc/config-examples/svn-server.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-  boot = {
-    loader.grub.device = "/dev/sda";
-  };
-
-  fileSystems = [
-    { mountPoint = "/";
-      device = "/dev/sda1";
-    }
-  ];
-
-  services = {
-
-    sshd = {
-      enable = true;
-    };
-
-    httpd = {
-      enable = true;
-      adminAddr = "admin@example.org";
-
-      subservices = {
-
-        subversion = {
-          enable = true;
-          dataDir = "/data/subversion";
-          notificationSender = "svn@example.org";
-        };
-
-      };
-
-    };
-
-  };
-
-}
diff --git a/nixos/doc/config-examples/x86_64-usbstick.nix b/nixos/doc/config-examples/x86_64-usbstick.nix
deleted file mode 100644
index 374d3ba3bc74..000000000000
--- a/nixos/doc/config-examples/x86_64-usbstick.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-# Configuration file used to install NixOS-x86_64 on a USB stick.
-
-{
-  boot = {
-    loader.grub.device = "/dev/sda";
-    initrd = {
-      kernelModules = ["usb_storage" "ehci_hcd" "ohci_hcd"];
-    };
-  };
-
-  fileSystems = [
-    { mountPoint = "/";
-      label = "nixos-usb";
-    }
-  ];
-
-  fonts = {
-    enableFontConfig = false;
-  };
-}
diff --git a/nixos/doc/manual/administration/boot-problems.xml b/nixos/doc/manual/administration/boot-problems.xml
new file mode 100644
index 000000000000..be6ff3aac0fe
--- /dev/null
+++ b/nixos/doc/manual/administration/boot-problems.xml
@@ -0,0 +1,65 @@
+<section xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-boot-problems">
+
+<title>Boot Problems</title>
+
+<para>If NixOS fails to boot, there are a number of kernel command
+line parameters that may help you to identify or fix the issue.  You
+can add these parameters in the GRUB boot menu by pressing “e” to
+modify the selected boot entry and editing the line starting with
+<literal>linux</literal>.  The following are some useful kernel command
+line parameters that are recognised by the NixOS boot scripts or by
+systemd:
+
+<variablelist>
+
+  <varlistentry><term><literal>boot.shell_on_fail</literal></term>
+    <listitem><para>Start a root shell if something goes wrong in
+    stage 1 of the boot process (the initial ramdisk).  This is
+    disabled by default because there is no authentication for the
+    root shell.</para></listitem>
+  </varlistentry>
+
+  <varlistentry><term><literal>boot.debug1</literal></term>
+    <listitem><para>Start an interactive shell in stage 1 before
+    anything useful has been done.  That is, no modules have been
+    loaded and no file systems have been mounted, except for
+    <filename>/proc</filename> and
+    <filename>/sys</filename>.</para></listitem>
+  </varlistentry>
+
+  <varlistentry><term><literal>boot.trace</literal></term>
+    <listitem><para>Print every shell command executed by the stage 1
+    and 2 boot scripts.</para></listitem>
+  </varlistentry>
+
+  <varlistentry><term><literal>single</literal></term>
+    <listitem><para>Boot into rescue mode (a.k.a. single user mode).
+    This will cause systemd to start nothing but the unit
+    <literal>rescue.target</literal>, which runs
+    <command>sulogin</command> to prompt for the root password and
+    start a root login shell.  Exiting the shell causes the system to
+    continue with the normal boot process.</para></listitem>
+  </varlistentry>
+
+  <varlistentry><term><literal>systemd.log_level=debug systemd.log_target=console</literal></term>
+    <listitem><para>Make systemd very verbose and send log messages to
+    the console instead of the journal.</para></listitem>
+  </varlistentry>
+
+</variablelist>
+
+For more parameters recognised by systemd, see
+<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
+
+<para>If no login prompts or X11 login screens appear (e.g. due to
+hanging dependencies), you can press Alt+ArrowUp.  If you’re lucky,
+this will start rescue mode (described above).  (Also note that since
+most units have a 90-second timeout before systemd gives up on them,
+the <command>agetty</command> login prompts should appear eventually
+unless something is very wrong.)</para>
+
+</section>
\ No newline at end of file
diff --git a/nixos/doc/manual/administration/cleaning-store.xml b/nixos/doc/manual/administration/cleaning-store.xml
new file mode 100644
index 000000000000..41dc65795b68
--- /dev/null
+++ b/nixos/doc/manual/administration/cleaning-store.xml
@@ -0,0 +1,62 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-nix-gc">
+
+<title>Cleaning the Nix Store</title>
+
+<para>Nix has a purely functional model, meaning that packages are
+never upgraded in place.  Instead new versions of packages end up in a
+different location in the Nix store (<filename>/nix/store</filename>).
+You should periodically run Nix’s <emphasis>garbage
+collector</emphasis> to remove old, unreferenced packages.  This is
+easy:
+
+<screen>
+$ nix-collect-garbage
+</screen>
+
+Alternatively, you can use a systemd unit that does the same in the
+background:
+
+<screen>
+$ systemctl start nix-gc.service
+</screen>
+
+You can tell NixOS in <filename>configuration.nix</filename> to run
+this unit automatically at certain points in time, for instance, every
+night at 03:15:
+
+<programlisting>
+nix.gc.automatic = true;
+nix.gc.dates = "03:15";
+</programlisting>
+
+</para>
+
+<para>The commands above do not remove garbage collector roots, such
+as old system configurations.  Thus they do not remove the ability to
+roll back to previous configurations.  The following command deletes
+old roots, removing the ability to roll back to them:
+<screen>
+$ nix-collect-garbage -d
+</screen>
+You can also do this for specific profiles, e.g.
+<screen>
+$ nix-env -p /nix/var/nix/profiles/per-user/eelco/profile --delete-generations old
+</screen>
+Note that NixOS system configurations are stored in the profile
+<filename>/nix/var/nix/profiles/system</filename>.</para>
+
+<para>Another way to reclaim disk space (often as much as 40% of the
+size of the Nix store) is to run Nix’s store optimiser, which seeks
+out identical files in the store and replaces them with hard links to
+a single copy.
+<screen>
+$ nix-store --optimise
+</screen>
+Since this command needs to read the entire Nix store, it can take
+quite a while to finish.</para>
+
+</chapter>
\ No newline at end of file
diff --git a/nixos/doc/manual/administration/container-networking.xml b/nixos/doc/manual/administration/container-networking.xml
new file mode 100644
index 000000000000..adea3e69840d
--- /dev/null
+++ b/nixos/doc/manual/administration/container-networking.xml
@@ -0,0 +1,50 @@
+<section  xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          version="5.0"
+          xml:id="sec-container-networking">
+
+
+<title>Container Networking</title>
+
+<para>When you create a container using <literal>nixos-container
+create</literal>, it gets it own private IPv4 address in the range
+<literal>10.233.0.0/16</literal>. You can get the container’s IPv4
+address as follows:
+
+<screen>
+$ nixos-container show-ip foo
+10.233.4.2
+
+$ ping -c1 10.233.4.2
+64 bytes from 10.233.4.2: icmp_seq=1 ttl=64 time=0.106 ms
+</screen>
+
+</para>
+
+<para>Networking is implemented using a pair of virtual Ethernet
+devices. The network interface in the container is called
+<literal>eth0</literal>, while the matching interface in the host is
+called <literal>ve-<replaceable>container-name</replaceable></literal>
+(e.g., <literal>ve-foo</literal>).  The container has its own network
+namespace and the <literal>CAP_NET_ADMIN</literal> capability, so it
+can perform arbitrary network configuration such as setting up
+firewall rules, without affecting or having access to the host’s
+network.</para>
+
+<para>By default, containers cannot talk to the outside network. If
+you want that, you should set up Network Address Translation (NAT)
+rules on the host to rewrite container traffic to use your external
+IP address. This can be accomplished using the following configuration
+on the host:
+
+<programlisting>
+networking.nat.enable = true;
+networking.nat.internalInterfaces = ["ve-+"];
+networking.nat.externalInterface = "eth0";
+</programlisting>
+where <literal>eth0</literal> should be replaced with the desired
+external interface. Note that <literal>ve-+</literal> is a wildcard
+that matches all container interfaces.</para>
+
+</section>
\ No newline at end of file
diff --git a/nixos/doc/manual/administration/containers.xml b/nixos/doc/manual/administration/containers.xml
new file mode 100644
index 000000000000..4cd2c8ae5563
--- /dev/null
+++ b/nixos/doc/manual/administration/containers.xml
@@ -0,0 +1,34 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="ch-containers">
+
+<title>Container Management</title>
+
+<para>NixOS allows you to easily run other NixOS instances as
+<emphasis>containers</emphasis>. Containers are a light-weight
+approach to virtualisation that runs software in the container at the
+same speed as in the host system. NixOS containers share the Nix store
+of the host, making container creation very efficient.</para>
+
+<warning><para>Currently, NixOS containers are not perfectly isolated
+from the host system. This means that a user with root access to the
+container can do things that affect the host. So you should not give
+container root access to untrusted users.</para></warning>
+
+<para>NixOS containers can be created in two ways: imperatively, using
+the command <command>nixos-container</command>, and declaratively, by
+specifying them in your <filename>configuration.nix</filename>. The
+declarative approach implies that containers get upgraded along with
+your host system when you run <command>nixos-rebuild</command>, which
+is often not what you want. By contrast, in the imperative approach,
+containers are configured and updated independently from the host
+system.</para>
+
+<xi:include href="imperative-containers.xml" />
+<xi:include href="declarative-containers.xml" />
+<xi:include href="container-networking.xml" />
+
+</chapter>
+
diff --git a/nixos/doc/manual/administration/control-groups.xml b/nixos/doc/manual/administration/control-groups.xml
new file mode 100644
index 000000000000..86c684cdfe5d
--- /dev/null
+++ b/nixos/doc/manual/administration/control-groups.xml
@@ -0,0 +1,75 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-cgroups">
+
+<title>Control Groups</title>
+
+<para>To keep track of the processes in a running system, systemd uses
+<emphasis>control groups</emphasis> (cgroups).  A control group is a
+set of processes used to allocate resources such as CPU, memory or I/O
+bandwidth.  There can be multiple control group hierarchies, allowing
+each kind of resource to be managed independently.</para>
+
+<para>The command <command>systemd-cgls</command> lists all control
+groups in the <literal>systemd</literal> hierarchy, which is what
+systemd uses to keep track of the processes belonging to each service
+or user session:
+
+<screen>
+$ systemd-cgls
+├─user
+│ └─eelco
+│   └─c1
+│     ├─ 2567 -:0
+│     ├─ 2682 kdeinit4: kdeinit4 Running...
+│     ├─ <replaceable>...</replaceable>
+│     └─10851 sh -c less -R
+└─system
+  ├─httpd.service
+  │ ├─2444 httpd -f /nix/store/3pyacby5cpr55a03qwbnndizpciwq161-httpd.conf -DNO_DETACH
+  │ └─<replaceable>...</replaceable>
+  ├─dhcpcd.service
+  │ └─2376 dhcpcd --config /nix/store/f8dif8dsi2yaa70n03xir8r653776ka6-dhcpcd.conf
+  └─ <replaceable>...</replaceable>
+</screen>
+
+Similarly, <command>systemd-cgls cpu</command> shows the cgroups in
+the CPU hierarchy, which allows per-cgroup CPU scheduling priorities.
+By default, every systemd service gets its own CPU cgroup, while all
+user sessions are in the top-level CPU cgroup.  This ensures, for
+instance, that a thousand run-away processes in the
+<literal>httpd.service</literal> cgroup cannot starve the CPU for one
+process in the <literal>postgresql.service</literal> cgroup.  (By
+contrast, it they were in the same cgroup, then the PostgreSQL process
+would get 1/1001 of the cgroup’s CPU time.)  You can limit a service’s
+CPU share in <filename>configuration.nix</filename>:
+
+<programlisting>
+systemd.services.httpd.serviceConfig.CPUShares = 512;
+</programlisting>
+
+By default, every cgroup has 1024 CPU shares, so this will halve the
+CPU allocation of the <literal>httpd.service</literal> cgroup.</para>
+
+<para>There also is a <literal>memory</literal> hierarchy that
+controls memory allocation limits; by default, all processes are in
+the top-level cgroup, so any service or session can exhaust all
+available memory.  Per-cgroup memory limits can be specified in
+<filename>configuration.nix</filename>; for instance, to limit
+<literal>httpd.service</literal> to 512 MiB of RAM (excluding swap)
+and 640 MiB of RAM (including swap):
+
+<programlisting>
+systemd.services.httpd.serviceConfig.MemoryLimit = "512M";
+systemd.services.httpd.serviceConfig.ControlGroupAttribute = [ "memory.memsw.limit_in_bytes 640M" ];
+</programlisting>
+
+</para>
+
+<para>The command <command>systemd-cgtop</command> shows a
+continuously updated list of all cgroups with their CPU and memory
+usage.</para>
+
+</chapter>
\ No newline at end of file
diff --git a/nixos/doc/manual/administration/declarative-containers.xml b/nixos/doc/manual/administration/declarative-containers.xml
new file mode 100644
index 000000000000..177ebdd8db17
--- /dev/null
+++ b/nixos/doc/manual/administration/declarative-containers.xml
@@ -0,0 +1,52 @@
+<section  xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          version="5.0"
+          xml:id="sec-declarative-containers">
+
+<title>Declarative Container Specification</title>
+
+<para>You can also specify containers and their configuration in the
+host’s <filename>configuration.nix</filename>.  For example, the
+following specifies that there shall be a container named
+<literal>database</literal> running PostgreSQL:
+
+<programlisting>
+containers.database =
+  { config =
+      { config, pkgs, ... }:
+      { services.postgresql.enable = true;
+        services.postgresql.package = pkgs.postgresql92;
+      };
+  };
+</programlisting>
+
+If you run <literal>nixos-rebuild switch</literal>, the container will
+be built and started. If the container was already running, it will be
+updated in place, without rebooting.</para>
+
+<para>By default, declarative containers share the network namespace
+of the host, meaning that they can listen on (privileged)
+ports. However, they cannot change the network configuration. You can
+give a container its own network as follows:
+
+<programlisting>
+containers.database =
+  { privateNetwork = true;
+    hostAddress = "192.168.100.10";
+    localAddress = "192.168.100.11";
+  };
+</programlisting>
+
+This gives the container a private virtual Ethernet interface with IP
+address <literal>192.168.100.11</literal>, which is hooked up to a
+virtual Ethernet interface on the host with IP address
+<literal>192.168.100.10</literal>.  (See the next section for details
+on container networking.)</para>
+
+<para>To disable the container, just remove it from
+<filename>configuration.nix</filename> and run <literal>nixos-rebuild
+switch</literal>. Note that this will not delete the root directory of
+the container in <literal>/var/lib/containers</literal>.</para>
+
+</section>
\ No newline at end of file
diff --git a/nixos/doc/manual/administration/imperative-containers.xml b/nixos/doc/manual/administration/imperative-containers.xml
new file mode 100644
index 000000000000..6131d4e04ea8
--- /dev/null
+++ b/nixos/doc/manual/administration/imperative-containers.xml
@@ -0,0 +1,124 @@
+<section  xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:xi="http://www.w3.org/2001/XInclude"
+          version="5.0"
+          xml:id="sec-imperative-containers">
+
+<title>Imperative Container Management</title>
+
+<para>We’ll cover imperative container management using
+<command>nixos-container</command> first. You create a container with
+identifier <literal>foo</literal> as follows:
+
+<screen>
+$ nixos-container create foo
+</screen>
+
+This creates the container’s root directory in
+<filename>/var/lib/containers/foo</filename> and a small configuration
+file in <filename>/etc/containers/foo.conf</filename>. It also builds
+the container’s initial system configuration and stores it in
+<filename>/nix/var/nix/profiles/per-container/foo/system</filename>. You
+can modify the initial configuration of the container on the command
+line. For instance, to create a container that has
+<command>sshd</command> running, with the given public key for
+<literal>root</literal>:
+
+<screen>
+$ nixos-container create foo --config 'services.openssh.enable = true; \
+  users.extraUsers.root.openssh.authorizedKeys.keys = ["ssh-dss AAAAB3N…"];'
+</screen>
+
+</para>
+
+<para>Creating a container does not start it. To start the container,
+run:
+
+<screen>
+$ nixos-container start foo
+</screen>
+
+This command will return as soon as the container has booted and has
+reached <literal>multi-user.target</literal>. On the host, the
+container runs within a systemd unit called
+<literal>container@<replaceable>container-name</replaceable>.service</literal>.
+Thus, if something went wrong, you can get status info using
+<command>systemctl</command>:
+
+<screen>
+$ systemctl status container@foo
+</screen>
+
+</para>
+
+<para>If the container has started succesfully, you can log in as
+root using the <command>root-login</command> operation:
+
+<screen>
+$ nixos-container root-login foo
+[root@foo:~]#
+</screen>
+
+Note that only root on the host can do this (since there is no
+authentication).  You can also get a regular login prompt using the
+<command>login</command> operation, which is available to all users on
+the host:
+
+<screen>
+$ nixos-container login foo
+foo login: alice
+Password: ***
+</screen>
+
+With <command>nixos-container run</command>, you can execute arbitrary
+commands in the container:
+
+<screen>
+$ nixos-container run foo -- uname -a
+Linux foo 3.4.82 #1-NixOS SMP Thu Mar 20 14:44:05 UTC 2014 x86_64 GNU/Linux
+</screen>
+
+</para>
+
+<para>There are several ways to change the configuration of the
+container. First, on the host, you can edit
+<literal>/var/lib/container/<replaceable>name</replaceable>/etc/nixos/configuration.nix</literal>,
+and run
+
+<screen>
+$ nixos-container update foo
+</screen>
+
+This will build and activate the new configuration. You can also
+specify a new configuration on the command line:
+
+<screen>
+$ nixos-container update foo --config 'services.httpd.enable = true; \
+  services.httpd.adminAddr = "foo@example.org";'
+
+$ curl http://$(nixos-container show-ip foo)/
+&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">…
+</screen>
+
+However, note that this will overwrite the container’s
+<filename>/etc/nixos/configuration.nix</filename>.</para>
+
+<para>Alternatively, you can change the configuration from within the
+container itself by running <command>nixos-rebuild switch</command>
+inside the container. Note that the container by default does not have
+a copy of the NixOS channel, so you should run <command>nix-channel
+--update</command> first.</para>
+
+<para>Containers can be stopped and started using
+<literal>nixos-container stop</literal> and <literal>nixos-container
+start</literal>, respectively, or by using
+<command>systemctl</command> on the container’s service unit. To
+destroy a container, including its file system, do
+
+<screen>
+$ nixos-container destroy foo
+</screen>
+
+</para>
+
+</section>
\ No newline at end of file
diff --git a/nixos/doc/manual/administration/logging.xml b/nixos/doc/manual/administration/logging.xml
new file mode 100644
index 000000000000..1d5df7770e29
--- /dev/null
+++ b/nixos/doc/manual/administration/logging.xml
@@ -0,0 +1,52 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-logging">
+
+<title>Logging</title>
+
+<para>System-wide logging is provided by systemd’s
+<emphasis>journal</emphasis>, which subsumes traditional logging
+daemons such as syslogd and klogd.  Log entries are kept in binary
+files in <filename>/var/log/journal/</filename>.  The command
+<literal>journalctl</literal> allows you to see the contents of the
+journal.  For example,
+
+<screen>
+$ journalctl -b
+</screen>
+
+shows all journal entries since the last reboot.  (The output of
+<command>journalctl</command> is piped into <command>less</command> by
+default.)  You can use various options and match operators to restrict
+output to messages of interest.  For instance, to get all messages
+from PostgreSQL:
+
+<screen>
+$ journalctl -u postgresql.service
+-- Logs begin at Mon, 2013-01-07 13:28:01 CET, end at Tue, 2013-01-08 01:09:57 CET. --
+...
+Jan 07 15:44:14 hagbard postgres[2681]: [2-1] LOG:  database system is shut down
+-- Reboot --
+Jan 07 15:45:10 hagbard postgres[2532]: [1-1] LOG:  database system was shut down at 2013-01-07 15:44:14 CET
+Jan 07 15:45:13 hagbard postgres[2500]: [1-1] LOG:  database system is ready to accept connections
+</screen>
+
+Or to get all messages since the last reboot that have at least a
+“critical” severity level:
+
+<screen>
+$ journalctl -b -p crit
+Dec 17 21:08:06 mandark sudo[3673]: pam_unix(sudo:auth): auth could not identify password for [alice]
+Dec 29 01:30:22 mandark kernel[6131]: [1053513.909444] CPU6: Core temperature above threshold, cpu clock throttled (total events = 1)
+</screen>
+
+</para>
+
+<para>The system journal is readable by root and by users in the
+<literal>wheel</literal> and <literal>systemd-journal</literal>
+groups.  All users have a private journal that can be read using
+<command>journalctl</command>.</para>
+
+</chapter>
\ No newline at end of file
diff --git a/nixos/doc/manual/administration/maintenance-mode.xml b/nixos/doc/manual/administration/maintenance-mode.xml
new file mode 100644
index 000000000000..15c1f902da79
--- /dev/null
+++ b/nixos/doc/manual/administration/maintenance-mode.xml
@@ -0,0 +1,18 @@
+<section xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-maintenance-mode">
+
+<title>Maintenance Mode</title>
+
+<para>You can enter rescue mode by running:
+
+<screen>
+$ systemctl rescue</screen>
+
+This will eventually give you a single-user root shell.  Systemd will
+stop (almost) all system services.  To get out of maintenance mode,
+just exit from the rescue shell.</para>
+
+</section>
\ No newline at end of file
diff --git a/nixos/doc/manual/administration/network-problems.xml b/nixos/doc/manual/administration/network-problems.xml
new file mode 100644
index 000000000000..5ba1bfd5ac9a
--- /dev/null
+++ b/nixos/doc/manual/administration/network-problems.xml
@@ -0,0 +1,33 @@
+<section xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-nix-network-issues">
+
+<title>Network Problems</title>
+
+<para>Nix uses a so-called <emphasis>binary cache</emphasis> to
+optimise building a package from source into downloading it as a
+pre-built binary.  That is, whenever a command like
+<command>nixos-rebuild</command> needs a path in the Nix store, Nix
+will try to download that path from the Internet rather than build it
+from source.  The default binary cache is
+<uri>http://cache.nixos.org/</uri>.  If this cache is unreachable, Nix
+operations may take a long time due to HTTP connection timeouts.  You
+can disable the use of the binary cache by adding <option>--option
+use-binary-caches false</option>, e.g.
+
+<screen>
+$ nixos-rebuild switch --option use-binary-caches false
+</screen>
+
+If you have an alternative binary cache at your disposal, you can use
+it instead:
+
+<screen>
+$ nixos-rebuild switch --option binary-caches http://my-cache.example.org/
+</screen>
+
+</para>
+
+</section>
\ No newline at end of file
diff --git a/nixos/doc/manual/administration/rebooting.xml b/nixos/doc/manual/administration/rebooting.xml
new file mode 100644
index 000000000000..d1db7b141cf2
--- /dev/null
+++ b/nixos/doc/manual/administration/rebooting.xml
@@ -0,0 +1,44 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-rebooting">
+
+<title>Rebooting and Shutting Down</title>
+
+<para>The system can be shut down (and automatically powered off) by
+doing:
+
+<screen>
+$ shutdown
+</screen>
+
+This is equivalent to running <command>systemctl
+poweroff</command>.</para>
+
+<para>To reboot the system, run
+
+<screen>
+$ reboot
+</screen>
+
+which is equivalent to <command>systemctl reboot</command>.
+Alternatively, you can quickly reboot the system using
+<literal>kexec</literal>, which bypasses the BIOS by directly loading
+the new kernel into memory:
+
+<screen>
+$ systemctl kexec
+</screen>
+
+</para>
+
+<para>The machine can be suspended to RAM (if supported) using
+<command>systemctl suspend</command>, and suspended to disk using
+<command>systemctl hibernate</command>.</para>
+
+<para>These commands can be run by any user who is logged in locally,
+i.e. on a virtual console or in X11; otherwise, the user is asked for
+authentication.</para>
+
+</chapter>
\ No newline at end of file
diff --git a/nixos/doc/manual/administration/rollback.xml b/nixos/doc/manual/administration/rollback.xml
new file mode 100644
index 000000000000..23a3ece7c070
--- /dev/null
+++ b/nixos/doc/manual/administration/rollback.xml
@@ -0,0 +1,48 @@
+<section xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-rollback">
+
+<title>Rolling Back Configuration Changes</title>
+
+<para>After running <command>nixos-rebuild</command> to switch to a
+new configuration, you may find that the new configuration doesn’t
+work very well.  In that case, there are several ways to return to a
+previous configuration.</para>
+
+<para>First, the GRUB boot manager allows you to boot into any
+previous configuration that hasn’t been garbage-collected.  These
+configurations can be found under the GRUB submenu “NixOS - All
+configurations”.  This is especially useful if the new configuration
+fails to boot.  After the system has booted, you can make the selected
+configuration the default for subsequent boots:
+
+<screen>
+$ /run/current-system/bin/switch-to-configuration boot</screen>
+
+</para>
+
+<para>Second, you can switch to the previous configuration in a running
+system:
+
+<screen>
+$ nixos-rebuild switch --rollback</screen>
+
+This is equivalent to running:
+
+<screen>
+$ /nix/var/nix/profiles/system-<replaceable>N</replaceable>-link/bin/switch-to-configuration switch</screen>
+
+where <replaceable>N</replaceable> is the number of the NixOS system
+configuration.  To get a list of the available configurations, do:
+
+<screen>
+$ ls -l /nix/var/nix/profiles/system-*-link
+<replaceable>...</replaceable>
+lrwxrwxrwx 1 root root 78 Aug 12 13:54 /nix/var/nix/profiles/system-268-link -> /nix/store/202b...-nixos-13.07pre4932_5a676e4-4be1055
+</screen>
+
+</para>
+
+</section>
\ No newline at end of file
diff --git a/nixos/doc/manual/administration/running.xml b/nixos/doc/manual/administration/running.xml
new file mode 100644
index 000000000000..9091511ed527
--- /dev/null
+++ b/nixos/doc/manual/administration/running.xml
@@ -0,0 +1,24 @@
+<part xmlns="http://docbook.org/ns/docbook"
+      xmlns:xlink="http://www.w3.org/1999/xlink"
+      xmlns:xi="http://www.w3.org/2001/XInclude"
+      version="5.0"
+      xml:id="ch-running">
+
+<title>Administration</title>
+
+<partintro>
+<para>This chapter describes various aspects of managing a running
+NixOS system, such as how to use the <command>systemd</command>
+service manager.</para>
+</partintro>
+
+<xi:include href="service-mgmt.xml" />
+<xi:include href="rebooting.xml" />
+<xi:include href="user-sessions.xml" />
+<xi:include href="control-groups.xml" />
+<xi:include href="logging.xml" />
+<xi:include href="cleaning-store.xml" />
+<xi:include href="containers.xml" />
+<xi:include href="troubleshooting.xml" />
+
+</part>
diff --git a/nixos/doc/manual/administration/service-mgmt.xml b/nixos/doc/manual/administration/service-mgmt.xml
new file mode 100644
index 000000000000..c0940a42f307
--- /dev/null
+++ b/nixos/doc/manual/administration/service-mgmt.xml
@@ -0,0 +1,83 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-systemctl">
+
+<title>Service Management</title>
+
+<para>In NixOS, all system services are started and monitored using
+the systemd program.  Systemd is the “init” process of the system
+(i.e. PID 1), the parent of all other processes.  It manages a set of
+so-called “units”, which can be things like system services
+(programs), but also mount points, swap files, devices, targets
+(groups of units) and more.  Units can have complex dependencies; for
+instance, one unit can require that another unit must be successfully
+started before the first unit can be started.  When the system boots,
+it starts a unit named <literal>default.target</literal>; the
+dependencies of this unit cause all system services to be started,
+file systems to be mounted, swap files to be activated, and so
+on.</para>
+
+<para>The command <command>systemctl</command> is the main way to
+interact with <command>systemd</command>.  Without any arguments, it
+shows the status of active units:
+
+<screen>
+$ systemctl
+-.mount          loaded active mounted   /
+swapfile.swap    loaded active active    /swapfile
+sshd.service     loaded active running   SSH Daemon
+graphical.target loaded active active    Graphical Interface
+<replaceable>...</replaceable>
+</screen>
+
+</para>
+
+<para>You can ask for detailed status information about a unit, for
+instance, the PostgreSQL database service:
+
+<screen>
+$ systemctl status postgresql.service
+postgresql.service - PostgreSQL Server
+          Loaded: loaded (/nix/store/pn3q73mvh75gsrl8w7fdlfk3fq5qm5mw-unit/postgresql.service)
+          Active: active (running) since Mon, 2013-01-07 15:55:57 CET; 9h ago
+        Main PID: 2390 (postgres)
+          CGroup: name=systemd:/system/postgresql.service
+                  ├─2390 postgres
+                  ├─2418 postgres: writer process
+                  ├─2419 postgres: wal writer process
+                  ├─2420 postgres: autovacuum launcher process
+                  ├─2421 postgres: stats collector process
+                  └─2498 postgres: zabbix zabbix [local] idle
+
+Jan 07 15:55:55 hagbard postgres[2394]: [1-1] LOG:  database system was shut down at 2013-01-07 15:55:05 CET
+Jan 07 15:55:57 hagbard postgres[2390]: [1-1] LOG:  database system is ready to accept connections
+Jan 07 15:55:57 hagbard postgres[2420]: [1-1] LOG:  autovacuum launcher started
+Jan 07 15:55:57 hagbard systemd[1]: Started PostgreSQL Server.
+</screen>
+
+Note that this shows the status of the unit (active and running), all
+the processes belonging to the service, as well as the most recent log
+messages from the service.
+
+</para>
+
+<para>Units can be stopped, started or restarted:
+
+<screen>
+$ systemctl stop postgresql.service
+$ systemctl start postgresql.service
+$ systemctl restart postgresql.service
+</screen>
+
+These operations are synchronous: they wait until the service has
+finished starting or stopping (or has failed).  Starting a unit will
+cause the dependencies of that unit to be started as well (if
+necessary).</para>
+
+<!-- - cgroups: each service and user session is a cgroup
+
+- cgroup resource management -->
+
+</chapter>
diff --git a/nixos/doc/manual/administration/store-corruption.xml b/nixos/doc/manual/administration/store-corruption.xml
new file mode 100644
index 000000000000..0160cb45358b
--- /dev/null
+++ b/nixos/doc/manual/administration/store-corruption.xml
@@ -0,0 +1,37 @@
+<section xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-nix-store-corruption">
+
+<title>Nix Store Corruption</title>
+
+<para>After a system crash, it’s possible for files in the Nix store
+to become corrupted.  (For instance, the Ext4 file system has the
+tendency to replace un-synced files with zero bytes.)  NixOS tries
+hard to prevent this from happening: it performs a
+<command>sync</command> before switching to a new configuration, and
+Nix’s database is fully transactional.  If corruption still occurs,
+you may be able to fix it automatically.</para>
+
+<para>If the corruption is in a path in the closure of the NixOS
+system configuration, you can fix it by doing
+
+<screen>
+$ nixos-rebuild switch --repair
+</screen>
+
+This will cause Nix to check every path in the closure, and if its
+cryptographic hash differs from the hash recorded in Nix’s database,
+the path is rebuilt or redownloaded.</para>
+
+<para>You can also scan the entire Nix store for corrupt paths:
+
+<screen>
+$ nix-store --verify --check-contents --repair
+</screen>
+
+Any corrupt paths will be redownloaded if they’re available in a
+binary cache; otherwise, they cannot be repaired.</para>
+
+</section>
\ No newline at end of file
diff --git a/nixos/doc/manual/administration/troubleshooting.xml b/nixos/doc/manual/administration/troubleshooting.xml
new file mode 100644
index 000000000000..351fb1883310
--- /dev/null
+++ b/nixos/doc/manual/administration/troubleshooting.xml
@@ -0,0 +1,18 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="ch-troubleshooting">
+
+<title>Troubleshooting</title>
+
+<para>This chapter describes solutions to common problems you might
+encounter when you manage your NixOS system.</para>
+
+<xi:include href="boot-problems.xml" />
+<xi:include href="maintenance-mode.xml" />
+<xi:include href="rollback.xml" />
+<xi:include href="store-corruption.xml" />
+<xi:include href="network-problems.xml" />
+
+</chapter>
diff --git a/nixos/doc/manual/administration/user-sessions.xml b/nixos/doc/manual/administration/user-sessions.xml
new file mode 100644
index 000000000000..05e2c1a9b29f
--- /dev/null
+++ b/nixos/doc/manual/administration/user-sessions.xml
@@ -0,0 +1,53 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-user-sessions">
+
+<title>User Sessions</title>
+
+<para>Systemd keeps track of all users who are logged into the system
+(e.g. on a virtual console or remotely via SSH).  The command
+<command>loginctl</command> allows querying and manipulating user
+sessions.  For instance, to list all user sessions:
+
+<screen>
+$ loginctl
+   SESSION        UID USER             SEAT
+        c1        500 eelco            seat0
+        c3          0 root             seat0
+        c4        500 alice
+</screen>
+
+This shows that two users are logged in locally, while another is
+logged in remotely.  (“Seats” are essentially the combinations of
+displays and input devices attached to the system; usually, there is
+only one seat.)  To get information about a session:
+
+<screen>
+$ loginctl session-status c3
+c3 - root (0)
+           Since: Tue, 2013-01-08 01:17:56 CET; 4min 42s ago
+          Leader: 2536 (login)
+            Seat: seat0; vc3
+             TTY: /dev/tty3
+         Service: login; type tty; class user
+           State: online
+          CGroup: name=systemd:/user/root/c3
+                  ├─ 2536 /nix/store/10mn4xip9n7y9bxqwnsx7xwx2v2g34xn-shadow-4.1.5.1/bin/login --
+                  ├─10339 -bash
+                  └─10355 w3m nixos.org
+</screen>
+
+This shows that the user is logged in on virtual console 3.  It also
+lists the processes belonging to this session.  Since systemd keeps
+track of this, you can terminate a session in a way that ensures that
+all the session’s processes are gone:
+
+<screen>
+$ loginctl terminate-session c3
+</screen>
+
+</para>
+
+</chapter>
\ No newline at end of file
diff --git a/nixos/doc/manual/configuration.xml b/nixos/doc/manual/configuration.xml
deleted file mode 100644
index 6db2f117e750..000000000000
--- a/nixos/doc/manual/configuration.xml
+++ /dev/null
@@ -1,1550 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="ch-configuration">
-
-<title>Configuring NixOS</title>
-
-<para>This chapter describes how to configure various aspects of a
-NixOS machine through the configuration file
-<filename>/etc/nixos/configuration.nix</filename>.  As described in
-<xref linkend="sec-changing-config" />, changes to this file only take
-effect after you run <command>nixos-rebuild</command>.</para>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-configuration-syntax"><title>Configuration syntax</title>
-
-<section><title>The basics</title>
-
-<para>The NixOS configuration file
-<filename>/etc/nixos/configuration.nix</filename> is actually a
-<emphasis>Nix expression</emphasis>, which is the Nix package
-manager’s purely functional language for describing how to build
-packages and configurations.  This means you have all the expressive
-power of that language at your disposal, including the ability to
-abstract over common patterns, which is very useful when managing
-complex systems.  The syntax and semantics of the Nix language are
-fully described in the <link
-xlink:href="http://nixos.org/nix/manual/#chap-writing-nix-expressions">Nix
-manual</link>, but here we give a short overview of the most important
-constructs useful in NixOS configuration files.</para>
-
-<para>The NixOS configuration file generally looks like this:
-
-<programlisting>
-{ config, pkgs, ... }:
-
-{ <replaceable>option definitions</replaceable>
-}
-</programlisting>
-
-The first line (<literal>{ config, pkgs, ... }:</literal>) denotes
-that this is actually a function that takes at least the two arguments
- <varname>config</varname> and <varname>pkgs</varname>.  (These are
-explained later.)  The function returns a <emphasis>set</emphasis> of
-option definitions (<literal>{ <replaceable>...</replaceable> }</literal>).  These definitions have the
-form <literal><replaceable>name</replaceable> =
-<replaceable>value</replaceable></literal>, where
-<replaceable>name</replaceable> is the name of an option and
-<replaceable>value</replaceable> is its value.  For example,
-
-<programlisting>
-{ config, pkgs, ... }:
-
-{ services.httpd.enable = true;
-  services.httpd.adminAddr = "alice@example.org";
-  services.httpd.documentRoot = "/webroot";
-}
-</programlisting>
-
-defines a configuration with three option definitions that together
-enable the Apache HTTP Server with <filename>/webroot</filename> as
-the document root.</para>
-
-<para>Sets can be nested, and in fact dots in option names are
-shorthand for defining a set containing another set.  For instance,
-<option>services.httpd.enable</option> defines a set named
-<varname>services</varname> that contains a set named
-<varname>httpd</varname>, which in turn contains an option definition
-named <varname>enable</varname> with value <literal>true</literal>.
-This means that the example above can also be written as:
-
-<programlisting>
-{ config, pkgs, ... }:
-
-{ services = {
-    httpd = {
-      enable = true;
-      adminAddr = "alice@example.org";
-      documentRoot = "/webroot";
-    };
-  };
-}
-</programlisting>
-
-which may be more convenient if you have lots of option definitions
-that share the same prefix (such as
-<literal>services.httpd</literal>).</para>
-
-<para>NixOS checks your option definitions for correctness.  For
-instance, if you try to define an option that doesn’t exist (that is,
-doesn’t have a corresponding <emphasis>option declaration</emphasis>),
-<command>nixos-rebuild</command> will give an error like:
-<screen>
-The option `services.httpd.enabl' defined in `/etc/nixos/configuration.nix' does not exist.
-</screen>
-Likewise, values in option definitions must have a correct type.  For
-instance, <option>services.httpd.enable</option> must be a Boolean
-(<literal>true</literal> or <literal>false</literal>).  Trying to give
-it a value of another type, such as a string, will cause an error:
-<screen>
-The option value `services.httpd.enable' in `/etc/nixos/configuration.nix' is not a boolean.
-</screen>
-
-</para>
-
-<para>Options have various types of values.  The most important are:
-
-<variablelist>
-  <varlistentry>
-    <term>Strings</term>
-    <listitem>
-      <para>Strings are enclosed in double quotes, e.g.
-
-<programlisting>
-networking.hostName = "dexter";
-</programlisting>
-
-      Special characters can be escaped by prefixing them with a
-      backslash (e.g. <literal>\"</literal>).</para>
-
-      <para>Multi-line strings can be enclosed in <emphasis>double
-      single quotes</emphasis>, e.g.
-
-<programlisting>
-networking.extraHosts =
-  ''
-    127.0.0.2 other-localhost
-    10.0.0.1 server
-  '';
-</programlisting>
-
-      The main difference is that preceding whitespace is
-      automatically stripped from each line, and that characters like
-      <literal>"</literal> and <literal>\</literal> are not special
-      (making it more convenient for including things like shell
-      code).</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term>Booleans</term>
-    <listitem>
-      <para>These can be <literal>true</literal> or
-      <literal>false</literal>, e.g.
-
-<programlisting>
-networking.firewall.enable = true;
-networking.firewall.allowPing = false;
-</programlisting>
-      </para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term>Integers</term>
-    <listitem>
-      <para>For example,
-
-<programlisting>
-boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 60;
-</programlisting>
-
-      (Note that here the attribute name
-      <literal>net.ipv4.tcp_keepalive_time</literal> is enclosed in
-      quotes to prevent it from being interpreted as a set named
-      <literal>net</literal> containing a set named
-      <literal>ipv4</literal>, and so on.  This is because it’s not a
-      NixOS option but the literal name of a Linux kernel
-      setting.)</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term>Sets</term>
-    <listitem>
-      <para>Sets were introduced above.  They are name/value pairs
-      enclosed in braces, as in the option definition
-
-<programlisting>
-fileSystems."/boot" =
-  { device = "/dev/sda1";
-    fsType = "ext4";
-    options = "rw,data=ordered,relatime";
-  };
-</programlisting>
-      </para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term>Lists</term>
-    <listitem>
-      <para>The important thing to note about lists is that list
-      elements are separated by whitespace, like this:
-
-<programlisting>
-boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];
-</programlisting>
-
-      List elements can be any other type, e.g. sets:
-
-<programlisting>
-swapDevices = [ { device = "/dev/disk/by-label/swap"; } ];
-</programlisting>
-      </para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term>Packages</term>
-    <listitem>
-      <para>Usually, the packages you need are already part of the Nix
-      Packages collection, which is a set that can be accessed through
-      the function argument <varname>pkgs</varname>.  Typical uses:
-
-<programlisting>
-environment.systemPackages =
-  [ pkgs.thunderbird
-    pkgs.emacs
-  ];
-
-postgresql.package = pkgs.postgresql90;
-</programlisting>
-
-      The latter option definition changes the default PostgreSQL
-      package used by NixOS’s PostgreSQL service to 9.0.  For more
-      information on packages, including how to add new ones, see
-      <xref linkend="sec-custom-packages"/>.</para>
-    </listitem>
-  </varlistentry>
-
-</variablelist>
-
-</para>
-
-</section>
-
-
-<section xml:id="sec-module-abstractions"><title>Abstractions</title>
-
-<para>If you find yourself repeating yourself over and over, it’s time
-to abstract.  Take, for instance, this Apache HTTP Server configuration:
-
-<programlisting>
-{
-  services.httpd.virtualHosts =
-    [ { hostName = "example.org";
-        documentRoot = "/webroot";
-        adminAddr = "alice@example.org";
-        enableUserDir = true;
-      }
-      { hostName = "example.org";
-        documentRoot = "/webroot";
-        adminAddr = "alice@example.org";
-        enableUserDir = true;
-        enableSSL = true;
-        sslServerCert = "/root/ssl-example-org.crt";
-        sslServerKey = "/root/ssl-example-org.key";
-      }
-    ];
-}
-</programlisting>
-
-It defines two virtual hosts with nearly identical configuration; the
-only difference is that the second one has SSL enabled.  To prevent
-this duplication, we can use a <literal>let</literal>:
-
-<programlisting>
-let
-  exampleOrgCommon =
-    { hostName = "example.org";
-      documentRoot = "/webroot";
-      adminAddr = "alice@example.org";
-      enableUserDir = true;
-    };
-in
-{
-  services.httpd.virtualHosts =
-    [ exampleOrgCommon
-      (exampleOrgCommon // {
-        enableSSL = true;
-        sslServerCert = "/root/ssl-example-org.crt";
-        sslServerKey = "/root/ssl-example-org.key";
-      })
-    ];
-}
-</programlisting>
-
-The <literal>let exampleOrgCommon =
-<replaceable>...</replaceable></literal> defines a variable named
-<literal>exampleOrgCommon</literal>.  The <literal>//</literal>
-operator merges two attribute sets, so the configuration of the second
-virtual host is the set <literal>exampleOrgCommon</literal> extended
-with the SSL options.</para>
-
-<para>You can write a <literal>let</literal> wherever an expression is
-allowed.  Thus, you also could have written:
-
-<programlisting>
-{
-  services.httpd.virtualHosts =
-    let exampleOrgCommon = <replaceable>...</replaceable>; in
-    [ exampleOrgCommon
-      (exampleOrgCommon // { <replaceable>...</replaceable> })
-    ];
-}
-</programlisting>
-
-but not <literal>{ let exampleOrgCommon =
-<replaceable>...</replaceable>; in <replaceable>...</replaceable>;
-}</literal> since attributes (as opposed to attribute values) are not
-expressions.</para>
-
-<para><emphasis>Functions</emphasis> provide another method of
-abstraction.  For instance, suppose that we want to generate lots of
-different virtual hosts, all with identical configuration except for
-the host name.  This can be done as follows:
-
-<programlisting>
-{
-  services.httpd.virtualHosts =
-    let
-      makeVirtualHost = name:
-        { hostName = name;
-          documentRoot = "/webroot";
-          adminAddr = "alice@example.org";
-        };
-    in
-      [ (makeVirtualHost "example.org")
-        (makeVirtualHost "example.com")
-        (makeVirtualHost "example.gov")
-        (makeVirtualHost "example.nl")
-      ];
-}
-</programlisting>
-
-Here, <varname>makeVirtualHost</varname> is a function that takes a
-single argument <literal>name</literal> and returns the configuration
-for a virtual host.  That function is then called for several names to
-produce the list of virtual host configurations.</para>
-
-<para>We can further improve on this by using the function
-<varname>map</varname>, which applies another function to every
-element in a list:
-
-<programlisting>
-{
-  services.httpd.virtualHosts =
-    let
-      makeVirtualHost = <replaceable>...</replaceable>;
-    in map makeVirtualHost
-      [ "example.org" "example.com" "example.gov" "example.nl" ];
-}
-</programlisting>
-
-(The function <literal>map</literal> is called a
-<emphasis>higher-order function</emphasis> because it takes another
-function as an argument.)</para>
-
-<para>What if you need more than one argument, for instance, if we
-want to use a different <literal>documentRoot</literal> for each
-virtual host?  Then we can make <varname>makeVirtualHost</varname> a
-function that takes a <emphasis>set</emphasis> as its argument, like this:
-
-<programlisting>
-{
-  services.httpd.virtualHosts =
-    let
-      makeVirtualHost = { name, root }:
-        { hostName = name;
-          documentRoot = root;
-          adminAddr = "alice@example.org";
-        };
-    in map makeVirtualHost
-      [ { name = "example.org"; root = "/sites/example.org"; }
-        { name = "example.com"; root = "/sites/example.com"; }
-        { name = "example.gov"; root = "/sites/example.gov"; }
-        { name = "example.nl"; root = "/sites/example.nl"; }
-      ];
-}
-</programlisting>
-
-But in this case (where every root is a subdirectory of
-<filename>/sites</filename> named after the virtual host), it would
-have been shorter to define <varname>makeVirtualHost</varname> as
-<programlisting>
-makeVirtualHost = name:
-  { hostName = name;
-    documentRoot = "/sites/${name}";
-    adminAddr = "alice@example.org";
-  };
-</programlisting>
-
-Here, the construct
-<literal>${<replaceable>...</replaceable>}</literal> allows the result
-of an expression to be spliced into a string.</para>
-
-</section>
-
-
-<section xml:id="sec-modularity"><title>Modularity</title>
-
-<para>The NixOS configuration mechanism is modular.  If your
-<filename>configuration.nix</filename> becomes too big, you can split
-it into multiple files.  Likewise, if you have multiple NixOS
-configurations (e.g. for different computers) with some commonality,
-you can move the common configuration into a shared file.</para>
-
-<para>Modules have exactly the same syntax as
-<filename>configuration.nix</filename>.  In fact,
-<filename>configuration.nix</filename> is itself a module.  You can
-use other modules by including them from
-<filename>configuration.nix</filename>, e.g.:
-
-<programlisting>
-{ config, pkgs, ... }:
-
-{ imports = [ ./vpn.nix ./kde.nix ];
-  services.httpd.enable = true;
-  environment.systemPackages = [ pkgs.emacs ];
-  <replaceable>...</replaceable>
-}
-</programlisting>
-
-Here, we include two modules from the same directory,
-<filename>vpn.nix</filename> and <filename>kde.nix</filename>.  The
-latter might look like this:
-
-<programlisting>
-{ config, pkgs, ... }:
-
-{ services.xserver.enable = true;
-  services.xserver.displayManager.kdm.enable = true;
-  services.xserver.desktopManager.kde4.enable = true;
-  environment.systemPackages = [ pkgs.kde4.kscreensaver ];
-}
-</programlisting>
-
-Note that both <filename>configuration.nix</filename> and
-<filename>kde.nix</filename> define the option
-<option>environment.systemPackages</option>.  When multiple modules
-define an option, NixOS will try to <emphasis>merge</emphasis> the
-definitions.  In the case of
-<option>environment.systemPackages</option>, that’s easy: the lists of
-packages can simply be concatenated.  The value in
-<filename>configuration.nix</filename> is merged last, so for
-list-type options, it will appear at the end of the merged list. If
-you want it to appear first, you can use <varname>mkBefore</varname>:
-
-<programlisting>
-boot.kernelModules = mkBefore [ "kvm-intel" ];
-</programlisting>
-
-This causes the <literal>kvm-intel</literal> kernel module to be
-loaded before any other kernel modules.</para>
-
-<para>For other types of options, a merge may not be possible. For
-instance, if two modules define
-<option>services.httpd.adminAddr</option>,
-<command>nixos-rebuild</command> will give an error:
-
-<screen>
-The unique option `services.httpd.adminAddr' is defined multiple times, in `/etc/nixos/httpd.nix' and `/etc/nixos/configuration.nix'.
-</screen>
-
-When that happens, it’s possible to force one definition take
-precedence over the others:
-
-<programlisting>
-services.httpd.adminAddr = pkgs.lib.mkForce "bob@example.org";
-</programlisting>
-
-</para>
-
-<para>When using multiple modules, you may need to access
-configuration values defined in other modules.  This is what the
-<varname>config</varname> function argument is for: it contains the
-complete, merged system configuration.  That is,
-<varname>config</varname> is the result of combining the
-configurations returned by every module<footnote><para>If you’re
-wondering how it’s possible that the (indirect)
-<emphasis>result</emphasis> of a function is passed as an
-<emphasis>input</emphasis> to that same function: that’s because Nix
-is a “lazy” language — it only computes values when they are needed.
-This works as long as no individual configuration value depends on
-itself.</para></footnote>.  For example, here is a module that adds
-some packages to <option>environment.systemPackages</option> only if
-<option>services.xserver.enable</option> is set to
-<literal>true</literal> somewhere else:
-
-<programlisting>
-{ config, pkgs, ... }:
-
-{ environment.systemPackages =
-    if config.services.xserver.enable then
-      [ pkgs.firefox
-        pkgs.thunderbird
-      ]
-    else
-      [ ];
-}
-</programlisting>
-
-</para>
-
-<para>With multiple modules, it may not be obvious what the final
-value of a configuration option is.  The command
-<option>nixos-option</option> allows you to find out:
-
-<screen>
-$ nixos-option services.xserver.enable
-true
-
-$ nixos-option boot.kernelModules
-[ "tun" "ipv6" "loop" <replaceable>...</replaceable> ]
-</screen>
-
-Interactive exploration of the configuration is possible using
-<command
-xlink:href="https://github.com/edolstra/nix-repl">nix-repl</command>,
-a read-eval-print loop for Nix expressions.  It’s not installed by
-default; run <literal>nix-env -i nix-repl</literal> to get it.  A
-typical use:
-
-<screen>
-$ nix-repl '&lt;nixos>'
-
-nix-repl> config.networking.hostName
-"mandark"
-
-nix-repl> map (x: x.hostName) config.services.httpd.virtualHosts
-[ "example.org" "example.gov" ]
-</screen>
-
-</para>
-
-</section>
-
-
-<section xml:id="sec-nix-syntax-summary"><title>Syntax summary</title>
-
-<para>Below is a summary of the most important syntactic constructs in
-the Nix expression language.  It’s not complete.  In particular, there
-are many other built-in functions.  See the <link
-xlink:href="http://nixos.org/nix/manual/#chap-writing-nix-expressions">Nix
-manual</link> for the rest.</para>
-
-<informaltable frame='none'>
-  <tgroup cols='2'>
-    <colspec colname='c1' rowsep='1' colsep='1' />
-    <colspec colname='c2' rowsep='1' />
-    <thead>
-      <row>
-        <entry>Example</entry>
-        <entry>Description</entry>
-      </row>
-    </thead>
-    <tbody>
-
-      <row>
-        <entry namest="c1" nameend="c2"><emphasis>Basic values</emphasis></entry>
-      </row>
-      <row>
-        <entry><literal>"Hello world"</literal></entry>
-        <entry>A string</entry>
-      </row>
-      <row>
-        <entry><literal>"${pkgs.bash}/bin/sh"</literal></entry>
-        <entry>A string containing an expression (expands to <literal>"/nix/store/<replaceable>hash</replaceable>-bash-<replaceable>version</replaceable>/bin/sh"</literal>)</entry>
-      </row>
-      <row>
-        <entry><literal>true</literal>, <literal>false</literal></entry>
-        <entry>Booleans</entry>
-      </row>
-      <row>
-        <entry><literal>123</literal></entry>
-        <entry>An integer</entry>
-      </row>
-      <row>
-        <entry><literal>./foo.png</literal></entry>
-        <entry>A path (relative to the containing Nix expression)</entry>
-      </row>
-
-      <row>
-        <entry namest="c1" nameend="c2"><emphasis>Compound values</emphasis></entry>
-      </row>
-      <row>
-        <entry><literal>{ x = 1; y = 2; }</literal></entry>
-        <entry>An set with attributes names <literal>x</literal> and <literal>y</literal></entry>
-      </row>
-      <row>
-        <entry><literal>{ foo.bar = 1; }</literal></entry>
-        <entry>A nested set, equivalent to <literal>{ foo = { bar = 1; }; }</literal></entry>
-      </row>
-      <row>
-        <entry><literal>rec { x = "bla"; y = x + "bar"; }</literal></entry>
-        <entry>A recursive set, equivalent to <literal>{ x = "foo"; y = "foobar"; }</literal></entry>
-      </row>
-      <row>
-        <entry><literal>[ "foo" "bar" ]</literal></entry>
-        <entry>A list with two elements</entry>
-      </row>
-
-      <row>
-        <entry namest="c1" nameend="c2"><emphasis>Operators</emphasis></entry>
-      </row>
-      <row>
-        <entry><literal>"foo" + "bar"</literal></entry>
-        <entry>String concatenation</entry>
-      </row>
-      <row>
-        <entry><literal>1 + 2</literal></entry>
-        <entry>Integer addition</entry>
-      </row>
-      <row>
-        <entry><literal>"foo" == "f" + "oo"</literal></entry>
-        <entry>Equality test (evaluates to <literal>true</literal>)</entry>
-      </row>
-      <row>
-        <entry><literal>"foo" != "bar"</literal></entry>
-        <entry>Inequality test (evaluates to <literal>true</literal>)</entry>
-      </row>
-      <row>
-        <entry><literal>!true</literal></entry>
-        <entry>Boolean negation</entry>
-      </row>
-      <row>
-        <entry><literal>{ x = 1; y = 2; }.x</literal></entry>
-        <entry>Attribute selection (evaluates to <literal>1</literal>)</entry>
-      </row>
-      <row>
-        <entry><literal>{ x = 1; y = 2; }.z or 3</literal></entry>
-        <entry>Attribute selection with default (evaluates to <literal>3</literal>)</entry>
-      </row>
-      <row>
-        <entry><literal>{ x = 1; y = 2; } // { z = 3; }</literal></entry>
-        <entry>Merge two sets (attributes in the right-hand set taking precedence)</entry>
-      </row>
-
-      <row>
-        <entry namest="c1" nameend="c2"><emphasis>Control structures</emphasis></entry>
-      </row>
-      <row>
-        <entry><literal>if 1 + 1 == 2 then "yes!" else "no!"</literal></entry>
-        <entry>Conditional expression</entry>
-      </row>
-      <row>
-        <entry><literal>assert 1 + 1 == 2; "yes!"</literal></entry>
-        <entry>Assertion check (evaluates to <literal>"yes!"</literal>)</entry>
-      </row>
-      <row>
-        <entry><literal>let x = "foo"; y = "bar"; in x + y</literal></entry>
-        <entry>Variable definition</entry>
-      </row>
-      <row>
-        <entry><literal>with pkgs.lib; head [ 1 2 3 ]</literal></entry>
-        <entry>Add all attributes from the given set to the scope
-        (evaluates to <literal>1</literal>)</entry>
-      </row>
-
-      <row>
-        <entry namest="c1" nameend="c2"><emphasis>Functions (lambdas)</emphasis></entry>
-      </row>
-      <row>
-        <entry><literal>x: x + 1</literal></entry>
-        <entry>A function that expects an integer and returns it increased by 1</entry>
-      </row>
-      <row>
-        <entry><literal>(x: x + 1) 100</literal></entry>
-        <entry>A function call (evaluates to 101)</entry>
-      </row>
-      <row>
-        <entry><literal>let inc = x: x + 1; in inc (inc (inc 100))</literal></entry>
-        <entry>A function bound to a variable and subsequently called by name (evaluates to 103)</entry>
-      </row>
-      <row>
-        <entry><literal>{ x, y }: x + y</literal></entry>
-        <entry>A function that expects a set with required attributes
-        <literal>x</literal> and <literal>y</literal> and concatenates
-        them</entry>
-      </row>
-      <row>
-        <entry><literal>{ x, y ? "bar" }: x + y</literal></entry>
-        <entry>A function that expects a set with required attribute
-        <literal>x</literal> and optional <literal>y</literal>, using
-        <literal>"bar"</literal> as default value for
-        <literal>y</literal></entry>
-      </row>
-      <row>
-        <entry><literal>{ x, y, ... }: x + y</literal></entry>
-        <entry>A function that expects a set with required attributes
-        <literal>x</literal> and <literal>y</literal> and ignores any
-        other attributes</entry>
-      </row>
-      <row>
-        <entry><literal>{ x, y } @ args: x + y</literal></entry>
-        <entry>A function that expects a set with required attributes
-        <literal>x</literal> and <literal>y</literal>, and binds the
-        whole set to <literal>args</literal></entry>
-      </row>
-
-      <row>
-        <entry namest="c1" nameend="c2"><emphasis>Built-in functions</emphasis></entry>
-      </row>
-      <row>
-        <entry><literal>import ./foo.nix</literal></entry>
-        <entry>Load and return Nix expression in given file</entry>
-      </row>
-      <row>
-        <entry><literal>map (x: x + x) [ 1 2 3 ]</literal></entry>
-        <entry>Apply a function to every element of a list (evaluates to <literal>[ 2 4 6 ]</literal>)</entry>
-      </row>
-      <!--
-      <row>
-        <entry><literal>throw "Urgh"</literal></entry>
-        <entry>Raise an error condition</entry>
-      </row>
-      -->
-
-    </tbody>
-  </tgroup>
-</informaltable>
-
-</section>
-
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-package-management"><title>Package management</title>
-
-<para>This section describes how to add additional packages to your
-system.  NixOS has two distinct styles of package management:
-
-<itemizedlist>
-
-  <listitem><para><emphasis>Declarative</emphasis>, where you declare
-  what packages you want in your
-  <filename>configuration.nix</filename>.  Every time you run
-  <command>nixos-rebuild</command>, NixOS will ensure that you get a
-  consistent set of binaries corresponding to your
-  specification.</para></listitem>
-
-  <listitem><para><emphasis>Ad hoc</emphasis>, where you install,
-  upgrade and uninstall packages via the <command>nix-env</command>
-  command.  This style allows mixing packages from different Nixpkgs
-  versions.  It’s the only choice for non-root
-  users.</para></listitem>
-
-</itemizedlist>
-
-</para>
-
-<para>The next two sections describe these two styles.</para>
-
-
-<section><title>Declarative package management</title>
-
-<para>With declarative package management, you specify which packages
-you want on your system by setting the option
-<option>environment.systemPackages</option>.  For instance, adding the
-following line to <filename>configuration.nix</filename> enables the
-Mozilla Thunderbird email application:
-
-<programlisting>
-environment.systemPackages = [ pkgs.thunderbird ];
-</programlisting>
-
-The effect of this specification is that the Thunderbird package from
-Nixpkgs will be built or downloaded as part of the system when you run
-<command>nixos-rebuild switch</command>.</para>
-
-<para>You can get a list of the available packages as follows:
-<screen>
-$ nix-env -qaP '*' --description
-nixos.pkgs.firefox   firefox-23.0   Mozilla Firefox - the browser, reloaded
-<replaceable>...</replaceable>
-</screen>
-
-The first column in the output is the <emphasis>attribute
-name</emphasis>, such as
-<literal>nixos.pkgs.thunderbird</literal>. (The
-<literal>nixos</literal> prefix allows distinguishing between
-different channels that you might have.)</para>
-
-<para>To “uninstall” a package, simply remove it from
-<option>environment.systemPackages</option> and run
-<command>nixos-rebuild switch</command>.</para>
-
-
-<section xml:id="sec-customising-packages"><title>Customising packages</title>
-
-<para>Some packages in Nixpkgs have options to enable or disable
-optional functionality or change other aspects of the package.  For
-instance, the Firefox wrapper package (which provides Firefox with a
-set of plugins such as the Adobe Flash player) has an option to enable
-the Google Talk plugin.  It can be set in
-<filename>configuration.nix</filename> as follows:
-
-<filename>
-nixpkgs.config.firefox.enableGoogleTalkPlugin = true;
-</filename>
-</para>
-
-<warning><para>Unfortunately, Nixpkgs currently lacks a way to query
-available configuration options.</para></warning>
-
-<para>Apart from high-level options, it’s possible to tweak a package
-in almost arbitrary ways, such as changing or disabling dependencies
-of a package.  For instance, the Emacs package in Nixpkgs by default
-has a dependency on GTK+ 2.  If you want to build it against GTK+ 3,
-you can specify that as follows:
-
-<programlisting>
-environment.systemPackages = [ (pkgs.emacs.override { gtk = pkgs.gtk3; }) ];
-</programlisting>
-
-The function <varname>override</varname> performs the call to the Nix
-function that produces Emacs, with the original arguments amended by
-the set of arguments specified by you.  So here the function argument
-<varname>gtk</varname> gets the value <literal>pkgs.gtk3</literal>,
-causing Emacs to depend on GTK+ 3.  (The parentheses are necessary
-because in Nix, function application binds more weakly than list
-construction, so without them,
-<literal>environment.systemPackages</literal> would be a list with two
-elements.)</para>
-
-<para>Even greater customisation is possible using the function
-<varname>overrideDerivation</varname>.  While the
-<varname>override</varname> mechanism above overrides the arguments of
-a package function, <varname>overrideDerivation</varname> allows
-changing the <emphasis>result</emphasis> of the function.  This
-permits changing any aspect of the package, such as the source code.
-For instance, if you want to override the source code of Emacs, you
-can say:
-
-<programlisting>
-environment.systemPackages =
-  [ (pkgs.lib.overrideDerivation pkgs.emacs (attrs: {
-      name = "emacs-25.0-pre";
-      src = /path/to/my/emacs/tree;
-    }))
-  ];
-</programlisting>
-
-Here, <varname>overrideDerivation</varname> takes the Nix derivation
-specified by <varname>pkgs.emacs</varname> and produces a new
-derivation in which the original’s <literal>name</literal> and
-<literal>src</literal> attribute have been replaced by the given
-values.  The original attributes are accessible via
-<varname>attrs</varname>.</para>
-
-<para>The overrides shown above are not global.  They do not affect
-the original package; other packages in Nixpkgs continue to depend on
-the original rather than the customised package.  This means that if
-another package in your system depends on the original package, you
-end up with two instances of the package.  If you want to have
-everything depend on your customised instance, you can apply a
-<emphasis>global</emphasis> override as follows:
-
-<screen>
-nixpkgs.config.packageOverrides = pkgs:
-  { emacs = pkgs.emacs.override { gtk = pkgs.gtk3; };
-  };
-</screen>
-
-The effect of this definition is essentially equivalent to modifying
-the <literal>emacs</literal> attribute in the Nixpkgs source tree.
-Any package in Nixpkgs that depends on <literal>emacs</literal> will
-be passed your customised instance.  (However, the value
-<literal>pkgs.emacs</literal> in
-<varname>nixpkgs.config.packageOverrides</varname> refers to the
-original rather than overridden instance, to prevent an infinite
-recursion.)</para>
-
-</section>
-
-<section xml:id="sec-custom-packages"><title>Adding custom packages</title>
-
-<para>It’s possible that a package you need is not available in NixOS.
-In that case, you can do two things.  First, you can clone the Nixpkgs
-repository, add the package to your clone, and (optionally) submit a
-patch or pull request to have it accepted into the main Nixpkgs
-repository.  This is described in detail in the <link
-xlink:href="http://nixos.org/nixpkgs/manual">Nixpkgs manual</link>.
-In short, you clone Nixpkgs:
-
-<screen>
-$ git clone git://github.com/NixOS/nixpkgs.git
-$ cd nixpkgs
-</screen>
-
-Then you write and test the package as described in the Nixpkgs
-manual.  Finally, you add it to
-<literal>environment.systemPackages</literal>, e.g.
-
-<programlisting>
-environment.systemPackages = [ pkgs.my-package ];
-</programlisting>
-
-and you run <command>nixos-rebuild</command>, specifying your own
-Nixpkgs tree:
-
-<screen>
-$ nixos-rebuild switch -I nixpkgs=/path/to/my/nixpkgs</screen>
-
-</para>
-
-<para>The second possibility is to add the package outside of the
-Nixpkgs tree.  For instance, here is how you specify a build of the
-<link xlink:href="http://www.gnu.org/software/hello/">GNU Hello</link>
-package directly in <filename>configuration.nix</filename>:
-
-<programlisting>
-environment.systemPackages =
-  let
-    my-hello = with pkgs; stdenv.mkDerivation rec {
-      name = "hello-2.8";
-      src = fetchurl {
-        url = "mirror://gnu/hello/${name}.tar.gz";
-        sha256 = "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6";
-      };
-    };
-  in
-  [ my-hello ];
-</programlisting>
-
-Of course, you can also move the definition of
-<literal>my-hello</literal> into a separate Nix expression, e.g.
-<programlisting>
-environment.systemPackages = [ (import ./my-hello.nix) ];
-</programlisting>
-where <filename>my-hello.nix</filename> contains:
-<programlisting>
-with import &lt;nixpkgs> {}; # bring all of Nixpkgs into scope
-
-stdenv.mkDerivation rec {
-  name = "hello-2.8";
-  src = fetchurl {
-    url = "mirror://gnu/hello/${name}.tar.gz";
-    sha256 = "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6";
-  };
-}
-</programlisting>
-
-This allows testing the package easily:
-<screen>
-$ nix-build my-hello.nix
-$ ./result/bin/hello
-Hello, world!
-</screen>
-
-</para>
-
-</section>
-
-</section>
-
-
-<section><title>Ad hoc package management</title>
-
-<para>With the command <command>nix-env</command>, you can install and
-uninstall packages from the command line.  For instance, to install
-Mozilla Thunderbird:
-
-<screen>
-$ nix-env -iA nixos.pkgs.thunderbird</screen>
-
-If you invoke this as root, the package is installed in the Nix
-profile <filename>/nix/var/nix/profiles/default</filename> and visible
-to all users of the system; otherwise, the package ends up in
-<filename>/nix/var/nix/profiles/per-user/<replaceable>username</replaceable>/profile</filename>
-and is not visible to other users.  The <option>-A</option> flag
-specifies the package by its attribute name; without it, the package
-is installed by matching against its package name
-(e.g. <literal>thunderbird</literal>).  The latter is slower because
-it requires matching against all available Nix packages, and is
-ambiguous if there are multiple matching packages.</para>
-
-<para>Packages come from the NixOS channel.  You typically upgrade a
-package by updating to the latest version of the NixOS channel:
-<screen>
-$ nix-channel --update nixos
-</screen>
-and then running <literal>nix-env -i</literal> again.  Other packages
-in the profile are <emphasis>not</emphasis> affected; this is the
-crucial difference with the declarative style of package management,
-where running <command>nixos-rebuild switch</command> causes all
-packages to be updated to their current versions in the NixOS channel.
-You can however upgrade all packages for which there is a newer
-version by doing:
-<screen>
-$ nix-env -u '*'
-</screen>
-</para>
-
-<para>A package can be uninstalled using the <option>-e</option>
-flag:
-<screen>
-$ nix-env -e thunderbird
-</screen>
-</para>
-
-<para>Finally, you can roll back an undesirable
-<command>nix-env</command> action:
-<screen>
-$ nix-env --rollback
-</screen>
-</para>
-
-<para><command>nix-env</command> has many more flags.  For details,
-see the
-<citerefentry><refentrytitle>nix-env</refentrytitle><manvolnum>1</manvolnum></citerefentry>
-manpage or the Nix manual.</para>
-
-</section>
-
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-user-management"><title>User management</title>
-
-<para>NixOS supports both declarative and imperative styles of user
-management.  In the declarative style, users are specified in
-<filename>configuration.nix</filename>.  For instance, the following
-states that a user account named <literal>alice</literal> shall exist:
-
-<programlisting>
-users.extraUsers.alice =
-  { isNormalUser = true;
-    description = "Alice Foobar";
-    extraGroups = [ "wheel" "networkmanager" ];
-    openssh.authorizedKeys.keys = [ "ssh-dss AAAAB3Nza... alice@foobar" ];
-  };
-</programlisting>
-
-Note that <literal>alice</literal> is a member of the
-<literal>wheel</literal> and <literal>networkmanager</literal> groups,
-which allows her to use <command>sudo</command> to execute commands as
-<literal>root</literal> and to configure the network, respectively.
-Also note the SSH public key that allows remote logins with the
-corresponding private key. Users created in this way do not have a
-password by default, so they cannot log in via mechanisms that require
-a password. However, you can use the <command>passwd</command> program
-to set a password, which is retained across invocations of
-<command>nixos-rebuild</command>.</para>
-
-<para>A user ID (uid) is assigned automatically.  You can also specify
-a uid manually by adding
-
-<programlisting>
-    uid = 1000;
-</programlisting>
-
-to the user specification.</para>
-
-<para>Groups can be specified similarly.  The following states that a
-group named <literal>students</literal> shall exist:
-
-<programlisting>
-users.extraGroups.students.gid = 1000;
-</programlisting>
-
-As with users, the group ID (gid) is optional and will be assigned
-automatically if it’s missing.</para>
-
-<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
-account named <literal>alice</literal>:
-
-<screen>
-$ useradd -m alice</screen>
-
-The flag <option>-m</option> causes the creation of a home directory
-for the new user, which is generally what you want.  The user does not
-have an initial password and therefore cannot log in.  A password can
-be set using the <command>passwd</command> utility:
-
-<screen>
-$ passwd alice
-Enter new UNIX password: ***
-Retype new UNIX password: ***
-</screen>
-
-A user can be deleted using <command>userdel</command>:
-
-<screen>
-$ userdel -r alice</screen>
-
-The flag <option>-r</option> deletes the user’s home directory.
-Accounts can be modified using <command>usermod</command>.  Unix
-groups can be managed using <command>groupadd</command>,
-<command>groupmod</command> and <command>groupdel</command>.</para>
-
-</section>
-
-
-<!--===============================================================-->
-
-<section><title>File systems</title>
-
-<para>You can define file systems using the
-<option>fileSystems</option> configuration option.  For instance, the
-following definition causes NixOS to mount the Ext4 file system on
-device <filename>/dev/disk/by-label/data</filename> onto the mount
-point <filename>/data</filename>:
-
-<programlisting>
-fileSystems."/data" =
-  { device = "/dev/disk/by-label/data";
-    fsType = "ext4";
-  };
-</programlisting>
-
-Mount points are created automatically if they don’t already exist.
-For <option>device</option>, it’s best to use the topology-independent
-device aliases in <filename>/dev/disk/by-label</filename> and
-<filename>/dev/disk/by-uuid</filename>, as these don’t change if the
-topology changes (e.g. if a disk is moved to another IDE
-controller).</para>
-
-<para>You can usually omit the file system type
-(<option>fsType</option>), since <command>mount</command> can usually
-detect the type and load the necessary kernel module automatically.
-However, if the file system is needed at early boot (in the initial
-ramdisk) and is not <literal>ext2</literal>, <literal>ext3</literal>
-or <literal>ext4</literal>, then it’s best to specify
-<option>fsType</option> to ensure that the kernel module is
-available.</para>
-
-<section><title>LUKS-encrypted file systems</title>
-
-<para>NixOS supports file systems that are encrypted using
-<emphasis>LUKS</emphasis> (Linux Unified Key Setup).  For example,
-here is how you create an encrypted Ext4 file system on the device
-<filename>/dev/sda2</filename>:
-
-<screen>
-$ cryptsetup luksFormat /dev/sda2
-
-WARNING!
-========
-This will overwrite data on /dev/sda2 irrevocably.
-
-Are you sure? (Type uppercase yes): YES
-Enter LUKS passphrase: ***
-Verify passphrase: ***
-
-$ cryptsetup luksOpen /dev/sda2 crypted
-Enter passphrase for /dev/sda2: ***
-
-$ mkfs.ext4 /dev/mapper/crypted
-</screen>
-
-To ensure that this file system is automatically mounted at boot time
-as <filename>/</filename>, add the following to
-<filename>configuration.nix</filename>:
-
-<programlisting>
-boot.initrd.luks.devices = [ { device = "/dev/sda2"; name = "crypted"; } ];
-fileSystems."/".device = "/dev/mapper/crypted";
-</programlisting>
-
-</para>
-
-</section>
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-x11"><title>X Window System</title>
-
-<para>The X Window System (X11) provides the basis of NixOS’ graphical
-user interface.  It can be enabled as follows:
-<programlisting>
-services.xserver.enable = true;
-</programlisting>
-The X server will automatically detect and use the appropriate video
-driver from a set of X.org drivers (such as <literal>vesa</literal>
-and <literal>intel</literal>).  You can also specify a driver
-manually, e.g.
-<programlisting>
-services.xserver.videoDrivers = [ "r128" ];
-</programlisting>
-to enable X.org’s <literal>xf86-video-r128</literal> driver.</para>
-
-<para>You also need to enable at least one desktop or window manager.
-Otherwise, you can only log into a plain undecorated
-<command>xterm</command> window.  Thus you should pick one or more of
-the following lines:
-<programlisting>
-services.xserver.desktopManager.kde4.enable = true;
-services.xserver.desktopManager.xfce.enable = true;
-services.xserver.windowManager.xmonad.enable = true;
-services.xserver.windowManager.twm.enable = true;
-services.xserver.windowManager.icewm.enable = true;
-</programlisting>
-</para>
-
-<para>NixOS’s default <emphasis>display manager</emphasis> (the
-program that provides a graphical login prompt and manages the X
-server) is SLiM.  You can select KDE’s <command>kdm</command> instead:
-<programlisting>
-services.xserver.displayManager.kdm.enable = true;
-</programlisting>
-</para>
-
-<para>The X server is started automatically at boot time.  If you
-don’t want this to happen, you can set:
-<programlisting>
-services.xserver.autorun = false;
-</programlisting>
-The X server can then be started manually:
-<screen>
-$ systemctl start display-manager.service
-</screen>
-</para>
-
-
-<section><title>NVIDIA graphics cards</title>
-
-<para>NVIDIA provides a proprietary driver for its graphics cards that
-has better 3D performance than the X.org drivers.  It is not enabled
-by default because it’s not free software.  You can enable it as follows:
-<programlisting>
-services.xserver.videoDrivers = [ "nvidia" ];
-</programlisting>
-You may need to reboot after enabling this driver to prevent a clash
-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;
-</programlisting>
-</para>
-
-</section>
-
-
-<section><title>Touchpads</title>
-
-<para>Support for Synaptics touchpads (found in many laptops such as
-the Dell Latitude series) can be enabled as follows:
-<programlisting>
-services.xserver.synaptics.enable = true;
-</programlisting>
-The driver has many options (see <xref linkend="ch-options"/>).  For
-instance, the following enables two-finger scrolling:
-<programlisting>
-services.xserver.synaptics.twoFingerScroll = true;
-</programlisting>
-</para>
-
-</section>
-
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-networking"><title>Networking</title>
-
-<section xml:id="sec-networkmanager"><title>NetworkManager</title>
-
-<para>To facilitate network configuration, some desktop environments
-use NetworkManager. You can enable NetworkManager by setting:
-
-<programlisting>
-services.networkmanager.enable = true;
-</programlisting>
-
-Some desktop managers (e.g., GNOME) enable NetworkManager
-automatically for you.</para>
-
-<para>All users that should have permission to change network settings
-must belong to the <code>networkmanager</code> group.</para>
-
-<note><para><code>services.networkmanager</code> and
-<code>services.wireless</code> can not be enabled at the same time:
-you can still connect to the wireless networks using
-NetworkManager.</para></note>
-
-</section>
-
-<section xml:id="sec-ssh"><title>Secure shell access</title>
-
-<para>Secure shell (SSH) access to your machine can be enabled by
-setting:
-
-<programlisting>
-services.openssh.enable = true;
-</programlisting>
-
-By default, root logins using a password are disallowed.  They can be
-disabled entirely by setting
-<literal>services.openssh.permitRootLogin</literal> to
-<literal>"no"</literal>.</para>
-
-<para>You can declaratively specify authorised RSA/DSA public keys for
-a user as follows:
-
-<!-- FIXME: this might not work if the user is unmanaged. -->
-<programlisting>
-users.extraUsers.alice.openssh.authorizedKeys.keys =
-  [ "ssh-dss AAAAB3NzaC1kc3MAAACBAPIkGWVEt4..." ];
-</programlisting>
-
-</para>
-
-</section>
-
-
-<section xml:id="sec-ipv4"><title>IPv4 configuration</title>
-
-<para>By default, NixOS uses DHCP (specifically,
-<command>dhcpcd</command>) to automatically configure network
-interfaces.  However, you can configure an interface manually as
-follows:
-
-<programlisting>
-networking.interfaces.eth0 = { ipAddress = "192.168.1.2"; prefixLength = 24; };
-</programlisting>
-
-(The network prefix can also be specified using the option
-<literal>subnetMask</literal>,
-e.g. <literal>"255.255.255.0"</literal>, but this is deprecated.)
-Typically you’ll also want to set a default gateway and set of name
-servers:
-
-<programlisting>
-networking.defaultGateway = "192.168.1.1";
-networking.nameservers = [ "8.8.8.8" ];
-</programlisting>
-
-</para>
-
-<note><para>Statically configured interfaces are set up by the systemd
-service
-<replaceable>interface-name</replaceable><literal>-cfg.service</literal>.
-The default gateway and name server configuration is performed by
-<literal>network-setup.service</literal>.</para></note>
-
-<para>The host name is set using <option>networking.hostName</option>:
-
-<programlisting>
-networking.hostName = "cartman";
-</programlisting>
-
-The default host name is <literal>nixos</literal>.  Set it to the
-empty string (<literal>""</literal>) to allow the DHCP server to
-provide the host name.</para>
-
-</section>
-
-
-<section xml:id="sec-ipv6"><title>IPv6 configuration</title>
-
-<para>IPv6 is enabled by default.  Stateless address autoconfiguration
-is used to automatically assign IPv6 addresses to all interfaces.  You
-can disable IPv6 support globally by setting:
-
-<programlisting>
-networking.enableIPv6 = false;
-</programlisting>
-
-</para>
-
-</section>
-
-
-<section xml:id="sec-firewall"><title>Firewall</title>
-
-<para>NixOS has a simple stateful firewall that blocks incoming
-connections and other unexpected packets.  The firewall applies to
-both IPv4 and IPv6 traffic. It is enabled by default. It can be
-disabled as follows:
-
-<programlisting>
-networking.firewall.enable = false;
-</programlisting>
-
-If the firewall is enabled, you can open specific TCP ports to the
-outside world:
-
-<programlisting>
-networking.firewall.allowedTCPPorts = [ 80 443 ];
-</programlisting>
-
-Note that TCP port 22 (ssh) is opened automatically if the SSH daemon
-is enabled (<option>services.openssh.enable = true</option>).  UDP
-ports can be opened through
-<option>networking.firewall.allowedUDPPorts</option>.  Also of
-interest is
-
-<programlisting>
-networking.firewall.allowPing = true;
-</programlisting>
-
-to allow the machine to respond to ping requests.  (ICMPv6 pings are
-always allowed.)</para>
-
-</section>
-
-
-<section xml:id="sec-wireless"><title>Wireless networks</title>
-
-<para>For a desktop installation using NetworkManager (e.g., GNOME),
-you just have to make sure the user is in the
-<code>networkmanager</code> group and you can skip the rest of this
-section on wireless networks.</para>
-
-<para>
-NixOS will start wpa_supplicant for you if you enable this setting:
-
-<programlisting>
-networking.wireless.enable = true;
-</programlisting>
-
-NixOS currently does not generate wpa_supplicant's
-configuration file, <literal>/etc/wpa_supplicant.conf</literal>. You should edit this file
-yourself to define wireless networks, WPA keys and so on (see
-wpa_supplicant.conf(5)).
-</para>
-
-<para>
-If you are using WPA2 the <command>wpa_passphrase</command> tool might be useful
-to generate the <literal>wpa_supplicant.conf</literal>.
-
-<screen>
-$ wpa_passphrase ESSID PSK > /etc/wpa_supplicant.conf</screen>
-
-After you have edited the <literal>wpa_supplicant.conf</literal>,
-you need to restart the wpa_supplicant service.
-
-<screen>
-$ systemctl restart wpa_supplicant.service</screen>
-</para>
-
-
-</section>
-
-
-<section><title>Ad-hoc configuration</title>
-
-<para>You can use <option>networking.localCommands</option> to specify
-shell commands to be run at the end of
-<literal>network-setup.service</literal>.  This is useful for doing
-network configuration not covered by the existing NixOS modules.  For
-instance, to statically configure an IPv6 address:
-
-<programlisting>
-networking.localCommands =
-  ''
-    ip -6 addr add 2001:610:685:1::1/64 dev eth0
-  '';
-</programlisting>
-
-</para>
-
-</section>
-
-
-<!-- TODO: OpenVPN, NAT -->
-
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-kernel-config"><title>Linux kernel</title>
-
-<para>You can override the Linux kernel and associated packages using
-the option <option>boot.kernelPackages</option>.  For instance, this
-selects the Linux 3.10 kernel:
-<programlisting>
-boot.kernelPackages = pkgs.linuxPackages_3_10;
-</programlisting>
-Note that this not only replaces the kernel, but also packages that
-are specific to the kernel version, such as the NVIDIA video drivers.
-This ensures that driver packages are consistent with the
-kernel.</para>
-
-<para>The default Linux kernel configuration should be fine for most users. You can see the configuration of your current kernel with the following command:
-<programlisting>
-cat /proc/config.gz | gunzip
-</programlisting>
-If you want to change the kernel configuration, you can use the
-<option>packageOverrides</option> feature (see <xref
-linkend="sec-customising-packages" />).  For instance, to enable
-support for the kernel debugger KGDB:
-
-<programlisting>
-nixpkgs.config.packageOverrides = pkgs:
-  { linux_3_4 = pkgs.linux_3_4.override {
-      extraConfig =
-        ''
-          KGDB y
-        '';
-    };
-  };
-</programlisting>
-
-<varname>extraConfig</varname> takes a list of Linux kernel
-configuration options, one per line.  The name of the option should
-not include the prefix <literal>CONFIG_</literal>.  The option value
-is typically <literal>y</literal>, <literal>n</literal> or
-<literal>m</literal> (to build something as a kernel module).</para>
-
-<para>Kernel modules for hardware devices are generally loaded
-automatically by <command>udev</command>.  You can force a module to
-be loaded via <option>boot.kernelModules</option>, e.g.
-<programlisting>
-boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];
-</programlisting>
-If the module is required early during the boot (e.g. to mount the
-root file system), you can use
-<option>boot.initrd.extraKernelModules</option>:
-<programlisting>
-boot.initrd.extraKernelModules = [ "cifs" ];
-</programlisting>
-This causes the specified modules and their dependencies to be added
-to the initial ramdark.</para>
-
-<para>Kernel runtime parameters can be set through
-<option>boot.kernel.sysctl</option>, e.g.
-<programlisting>
-boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 120;
-</programlisting>
-sets the kernel’s TCP keepalive time to 120 seconds.  To see the
-available parameters, run <command>sysctl -a</command>.</para>
-
-</section>
-
-
-<!-- Apache; libvirtd virtualisation -->
-
-
-</chapter>
diff --git a/nixos/doc/manual/configuration/abstractions.xml b/nixos/doc/manual/configuration/abstractions.xml
new file mode 100644
index 000000000000..cbd54bca62f9
--- /dev/null
+++ b/nixos/doc/manual/configuration/abstractions.xml
@@ -0,0 +1,166 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-module-abstractions">
+
+<title>Abstractions</title>
+
+<para>If you find yourself repeating yourself over and over, it’s time
+to abstract.  Take, for instance, this Apache HTTP Server configuration:
+
+<programlisting>
+{
+  services.httpd.virtualHosts =
+    [ { hostName = "example.org";
+        documentRoot = "/webroot";
+        adminAddr = "alice@example.org";
+        enableUserDir = true;
+      }
+      { hostName = "example.org";
+        documentRoot = "/webroot";
+        adminAddr = "alice@example.org";
+        enableUserDir = true;
+        enableSSL = true;
+        sslServerCert = "/root/ssl-example-org.crt";
+        sslServerKey = "/root/ssl-example-org.key";
+      }
+    ];
+}
+</programlisting>
+
+It defines two virtual hosts with nearly identical configuration; the
+only difference is that the second one has SSL enabled.  To prevent
+this duplication, we can use a <literal>let</literal>:
+
+<programlisting>
+let
+  exampleOrgCommon =
+    { hostName = "example.org";
+      documentRoot = "/webroot";
+      adminAddr = "alice@example.org";
+      enableUserDir = true;
+    };
+in
+{
+  services.httpd.virtualHosts =
+    [ exampleOrgCommon
+      (exampleOrgCommon // {
+        enableSSL = true;
+        sslServerCert = "/root/ssl-example-org.crt";
+        sslServerKey = "/root/ssl-example-org.key";
+      })
+    ];
+}
+</programlisting>
+
+The <literal>let exampleOrgCommon =
+<replaceable>...</replaceable></literal> defines a variable named
+<literal>exampleOrgCommon</literal>.  The <literal>//</literal>
+operator merges two attribute sets, so the configuration of the second
+virtual host is the set <literal>exampleOrgCommon</literal> extended
+with the SSL options.</para>
+
+<para>You can write a <literal>let</literal> wherever an expression is
+allowed.  Thus, you also could have written:
+
+<programlisting>
+{
+  services.httpd.virtualHosts =
+    let exampleOrgCommon = <replaceable>...</replaceable>; in
+    [ exampleOrgCommon
+      (exampleOrgCommon // { <replaceable>...</replaceable> })
+    ];
+}
+</programlisting>
+
+but not <literal>{ let exampleOrgCommon =
+<replaceable>...</replaceable>; in <replaceable>...</replaceable>;
+}</literal> since attributes (as opposed to attribute values) are not
+expressions.</para>
+
+<para><emphasis>Functions</emphasis> provide another method of
+abstraction.  For instance, suppose that we want to generate lots of
+different virtual hosts, all with identical configuration except for
+the host name.  This can be done as follows:
+
+<programlisting>
+{
+  services.httpd.virtualHosts =
+    let
+      makeVirtualHost = name:
+        { hostName = name;
+          documentRoot = "/webroot";
+          adminAddr = "alice@example.org";
+        };
+    in
+      [ (makeVirtualHost "example.org")
+        (makeVirtualHost "example.com")
+        (makeVirtualHost "example.gov")
+        (makeVirtualHost "example.nl")
+      ];
+}
+</programlisting>
+
+Here, <varname>makeVirtualHost</varname> is a function that takes a
+single argument <literal>name</literal> and returns the configuration
+for a virtual host.  That function is then called for several names to
+produce the list of virtual host configurations.</para>
+
+<para>We can further improve on this by using the function
+<varname>map</varname>, which applies another function to every
+element in a list:
+
+<programlisting>
+{
+  services.httpd.virtualHosts =
+    let
+      makeVirtualHost = <replaceable>...</replaceable>;
+    in map makeVirtualHost
+      [ "example.org" "example.com" "example.gov" "example.nl" ];
+}
+</programlisting>
+
+(The function <literal>map</literal> is called a
+<emphasis>higher-order function</emphasis> because it takes another
+function as an argument.)</para>
+
+<para>What if you need more than one argument, for instance, if we
+want to use a different <literal>documentRoot</literal> for each
+virtual host?  Then we can make <varname>makeVirtualHost</varname> a
+function that takes a <emphasis>set</emphasis> as its argument, like this:
+
+<programlisting>
+{
+  services.httpd.virtualHosts =
+    let
+      makeVirtualHost = { name, root }:
+        { hostName = name;
+          documentRoot = root;
+          adminAddr = "alice@example.org";
+        };
+    in map makeVirtualHost
+      [ { name = "example.org"; root = "/sites/example.org"; }
+        { name = "example.com"; root = "/sites/example.com"; }
+        { name = "example.gov"; root = "/sites/example.gov"; }
+        { name = "example.nl"; root = "/sites/example.nl"; }
+      ];
+}
+</programlisting>
+
+But in this case (where every root is a subdirectory of
+<filename>/sites</filename> named after the virtual host), it would
+have been shorter to define <varname>makeVirtualHost</varname> as
+<programlisting>
+makeVirtualHost = name:
+  { hostName = name;
+    documentRoot = "/sites/${name}";
+    adminAddr = "alice@example.org";
+  };
+</programlisting>
+
+Here, the construct
+<literal>${<replaceable>...</replaceable>}</literal> allows the result
+of an expression to be spliced into a string.</para>
+
+</section>
diff --git a/nixos/doc/manual/configuration/ad-hoc-network-config.xml b/nixos/doc/manual/configuration/ad-hoc-network-config.xml
new file mode 100644
index 000000000000..26a572ba1fb5
--- /dev/null
+++ b/nixos/doc/manual/configuration/ad-hoc-network-config.xml
@@ -0,0 +1,24 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="ad-hoc-network-config">
+
+<title>Ad-Hoc Configuration</title>
+
+<para>You can use <option>networking.localCommands</option> to specify
+shell commands to be run at the end of
+<literal>network-setup.service</literal>.  This is useful for doing
+network configuration not covered by the existing NixOS modules.  For
+instance, to statically configure an IPv6 address:
+
+<programlisting>
+networking.localCommands =
+  ''
+    ip -6 addr add 2001:610:685:1::1/64 dev eth0
+  '';
+</programlisting>
+
+</para>
+
+</section>
diff --git a/nixos/doc/manual/configuration/ad-hoc-packages.xml b/nixos/doc/manual/configuration/ad-hoc-packages.xml
new file mode 100644
index 000000000000..e237e20c4fff
--- /dev/null
+++ b/nixos/doc/manual/configuration/ad-hoc-packages.xml
@@ -0,0 +1,63 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-ad-hoc-packages">
+
+<title>Ad-Hoc Package Management</title>
+
+<para>With the command <command>nix-env</command>, you can install and
+uninstall packages from the command line.  For instance, to install
+Mozilla Thunderbird:
+
+<screen>
+$ nix-env -iA nixos.pkgs.thunderbird</screen>
+
+If you invoke this as root, the package is installed in the Nix
+profile <filename>/nix/var/nix/profiles/default</filename> and visible
+to all users of the system; otherwise, the package ends up in
+<filename>/nix/var/nix/profiles/per-user/<replaceable>username</replaceable>/profile</filename>
+and is not visible to other users.  The <option>-A</option> flag
+specifies the package by its attribute name; without it, the package
+is installed by matching against its package name
+(e.g. <literal>thunderbird</literal>).  The latter is slower because
+it requires matching against all available Nix packages, and is
+ambiguous if there are multiple matching packages.</para>
+
+<para>Packages come from the NixOS channel.  You typically upgrade a
+package by updating to the latest version of the NixOS channel:
+<screen>
+$ nix-channel --update nixos
+</screen>
+and then running <literal>nix-env -i</literal> again.  Other packages
+in the profile are <emphasis>not</emphasis> affected; this is the
+crucial difference with the declarative style of package management,
+where running <command>nixos-rebuild switch</command> causes all
+packages to be updated to their current versions in the NixOS channel.
+You can however upgrade all packages for which there is a newer
+version by doing:
+<screen>
+$ nix-env -u '*'
+</screen>
+</para>
+
+<para>A package can be uninstalled using the <option>-e</option>
+flag:
+<screen>
+$ nix-env -e thunderbird
+</screen>
+</para>
+
+<para>Finally, you can roll back an undesirable
+<command>nix-env</command> action:
+<screen>
+$ nix-env --rollback
+</screen>
+</para>
+
+<para><command>nix-env</command> has many more flags.  For details,
+see the
+<citerefentry><refentrytitle>nix-env</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+manpage or the Nix manual.</para>
+
+</section>
diff --git a/nixos/doc/manual/configuration/adding-custom-packages.xml b/nixos/doc/manual/configuration/adding-custom-packages.xml
new file mode 100644
index 000000000000..c1789fcbc041
--- /dev/null
+++ b/nixos/doc/manual/configuration/adding-custom-packages.xml
@@ -0,0 +1,84 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-custom-packages">
+
+<title>Adding Custom Packages</title>
+
+<para>It’s possible that a package you need is not available in NixOS.
+In that case, you can do two things.  First, you can clone the Nixpkgs
+repository, add the package to your clone, and (optionally) submit a
+patch or pull request to have it accepted into the main Nixpkgs
+repository.  This is described in detail in the <link
+xlink:href="http://nixos.org/nixpkgs/manual">Nixpkgs manual</link>.
+In short, you clone Nixpkgs:
+
+<screen>
+$ git clone git://github.com/NixOS/nixpkgs.git
+$ cd nixpkgs
+</screen>
+
+Then you write and test the package as described in the Nixpkgs
+manual.  Finally, you add it to
+<literal>environment.systemPackages</literal>, e.g.
+
+<programlisting>
+environment.systemPackages = [ pkgs.my-package ];
+</programlisting>
+
+and you run <command>nixos-rebuild</command>, specifying your own
+Nixpkgs tree:
+
+<screen>
+$ nixos-rebuild switch -I nixpkgs=/path/to/my/nixpkgs</screen>
+
+</para>
+
+<para>The second possibility is to add the package outside of the
+Nixpkgs tree.  For instance, here is how you specify a build of the
+<link xlink:href="http://www.gnu.org/software/hello/">GNU Hello</link>
+package directly in <filename>configuration.nix</filename>:
+
+<programlisting>
+environment.systemPackages =
+  let
+    my-hello = with pkgs; stdenv.mkDerivation rec {
+      name = "hello-2.8";
+      src = fetchurl {
+        url = "mirror://gnu/hello/${name}.tar.gz";
+        sha256 = "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6";
+      };
+    };
+  in
+  [ my-hello ];
+</programlisting>
+
+Of course, you can also move the definition of
+<literal>my-hello</literal> into a separate Nix expression, e.g.
+<programlisting>
+environment.systemPackages = [ (import ./my-hello.nix) ];
+</programlisting>
+where <filename>my-hello.nix</filename> contains:
+<programlisting>
+with import &lt;nixpkgs> {}; # bring all of Nixpkgs into scope
+
+stdenv.mkDerivation rec {
+  name = "hello-2.8";
+  src = fetchurl {
+    url = "mirror://gnu/hello/${name}.tar.gz";
+    sha256 = "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6";
+  };
+}
+</programlisting>
+
+This allows testing the package easily:
+<screen>
+$ nix-build my-hello.nix
+$ ./result/bin/hello
+Hello, world!
+</screen>
+
+</para>
+
+</section>
diff --git a/nixos/doc/manual/configuration/config-file.xml b/nixos/doc/manual/configuration/config-file.xml
new file mode 100644
index 000000000000..2a58ff25941c
--- /dev/null
+++ b/nixos/doc/manual/configuration/config-file.xml
@@ -0,0 +1,213 @@
+<section xmlns="http://docbook.org/ns/docbook"
+    xmlns:xlink="http://www.w3.org/1999/xlink"
+    xmlns:xi="http://www.w3.org/2001/XInclude"
+    version="5.0"
+    xml:id="sec-configuration-file">
+
+<title>NixOS Configuration File</title>
+
+<para>The NixOS configuration file generally looks like this:
+
+<programlisting>
+{ config, pkgs, ... }:
+
+{ <replaceable>option definitions</replaceable>
+}
+</programlisting>
+
+The first line (<literal>{ config, pkgs, ... }:</literal>) denotes
+that this is actually a function that takes at least the two arguments
+ <varname>config</varname> and <varname>pkgs</varname>.  (These are
+explained later.)  The function returns a <emphasis>set</emphasis> of
+option definitions (<literal>{ <replaceable>...</replaceable> }</literal>).  These definitions have the
+form <literal><replaceable>name</replaceable> =
+<replaceable>value</replaceable></literal>, where
+<replaceable>name</replaceable> is the name of an option and
+<replaceable>value</replaceable> is its value.  For example,
+
+<programlisting>
+{ config, pkgs, ... }:
+
+{ services.httpd.enable = true;
+  services.httpd.adminAddr = "alice@example.org";
+  services.httpd.documentRoot = "/webroot";
+}
+</programlisting>
+
+defines a configuration with three option definitions that together
+enable the Apache HTTP Server with <filename>/webroot</filename> as
+the document root.</para>
+
+<para>Sets can be nested, and in fact dots in option names are
+shorthand for defining a set containing another set.  For instance,
+<option>services.httpd.enable</option> defines a set named
+<varname>services</varname> that contains a set named
+<varname>httpd</varname>, which in turn contains an option definition
+named <varname>enable</varname> with value <literal>true</literal>.
+This means that the example above can also be written as:
+
+<programlisting>
+{ config, pkgs, ... }:
+
+{ services = {
+    httpd = {
+      enable = true;
+      adminAddr = "alice@example.org";
+      documentRoot = "/webroot";
+    };
+  };
+}
+</programlisting>
+
+which may be more convenient if you have lots of option definitions
+that share the same prefix (such as
+<literal>services.httpd</literal>).</para>
+
+<para>NixOS checks your option definitions for correctness.  For
+instance, if you try to define an option that doesn’t exist (that is,
+doesn’t have a corresponding <emphasis>option declaration</emphasis>),
+<command>nixos-rebuild</command> will give an error like:
+<screen>
+The option `services.httpd.enabl' defined in `/etc/nixos/configuration.nix' does not exist.
+</screen>
+Likewise, values in option definitions must have a correct type.  For
+instance, <option>services.httpd.enable</option> must be a Boolean
+(<literal>true</literal> or <literal>false</literal>).  Trying to give
+it a value of another type, such as a string, will cause an error:
+<screen>
+The option value `services.httpd.enable' in `/etc/nixos/configuration.nix' is not a boolean.
+</screen>
+
+</para>
+
+<para>Options have various types of values.  The most important are:
+
+<variablelist>
+  <varlistentry>
+    <term>Strings</term>
+    <listitem>
+      <para>Strings are enclosed in double quotes, e.g.
+
+<programlisting>
+networking.hostName = "dexter";
+</programlisting>
+
+      Special characters can be escaped by prefixing them with a
+      backslash (e.g. <literal>\"</literal>).</para>
+
+      <para>Multi-line strings can be enclosed in <emphasis>double
+      single quotes</emphasis>, e.g.
+
+<programlisting>
+networking.extraHosts =
+  ''
+    127.0.0.2 other-localhost
+    10.0.0.1 server
+  '';
+</programlisting>
+
+      The main difference is that preceding whitespace is
+      automatically stripped from each line, and that characters like
+      <literal>"</literal> and <literal>\</literal> are not special
+      (making it more convenient for including things like shell
+      code).</para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term>Booleans</term>
+    <listitem>
+      <para>These can be <literal>true</literal> or
+      <literal>false</literal>, e.g.
+
+<programlisting>
+networking.firewall.enable = true;
+networking.firewall.allowPing = false;
+</programlisting>
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term>Integers</term>
+    <listitem>
+      <para>For example,
+
+<programlisting>
+boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 60;
+</programlisting>
+
+      (Note that here the attribute name
+      <literal>net.ipv4.tcp_keepalive_time</literal> is enclosed in
+      quotes to prevent it from being interpreted as a set named
+      <literal>net</literal> containing a set named
+      <literal>ipv4</literal>, and so on.  This is because it’s not a
+      NixOS option but the literal name of a Linux kernel
+      setting.)</para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term>Sets</term>
+    <listitem>
+      <para>Sets were introduced above.  They are name/value pairs
+      enclosed in braces, as in the option definition
+
+<programlisting>
+fileSystems."/boot" =
+  { device = "/dev/sda1";
+    fsType = "ext4";
+    options = "rw,data=ordered,relatime";
+  };
+</programlisting>
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term>Lists</term>
+    <listitem>
+      <para>The important thing to note about lists is that list
+      elements are separated by whitespace, like this:
+
+<programlisting>
+boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];
+</programlisting>
+
+      List elements can be any other type, e.g. sets:
+
+<programlisting>
+swapDevices = [ { device = "/dev/disk/by-label/swap"; } ];
+</programlisting>
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term>Packages</term>
+    <listitem>
+      <para>Usually, the packages you need are already part of the Nix
+      Packages collection, which is a set that can be accessed through
+      the function argument <varname>pkgs</varname>.  Typical uses:
+
+<programlisting>
+environment.systemPackages =
+  [ pkgs.thunderbird
+    pkgs.emacs
+  ];
+
+postgresql.package = pkgs.postgresql90;
+</programlisting>
+
+      The latter option definition changes the default PostgreSQL
+      package used by NixOS’s PostgreSQL service to 9.0.  For more
+      information on packages, including how to add new ones, see
+      <xref linkend="sec-custom-packages"/>.</para>
+    </listitem>
+  </varlistentry>
+
+</variablelist>
+
+</para>
+
+</section>
diff --git a/nixos/doc/manual/configuration/config-syntax.xml b/nixos/doc/manual/configuration/config-syntax.xml
new file mode 100644
index 000000000000..87847f8451ec
--- /dev/null
+++ b/nixos/doc/manual/configuration/config-syntax.xml
@@ -0,0 +1,27 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-configuration-syntax">
+
+<title>Configuration Syntax</title>
+
+<para>The NixOS configuration file
+<filename>/etc/nixos/configuration.nix</filename> is actually a
+<emphasis>Nix expression</emphasis>, which is the Nix package
+manager’s purely functional language for describing how to build
+packages and configurations.  This means you have all the expressive
+power of that language at your disposal, including the ability to
+abstract over common patterns, which is very useful when managing
+complex systems.  The syntax and semantics of the Nix language are
+fully described in the <link
+xlink:href="http://nixos.org/nix/manual/#chap-writing-nix-expressions">Nix
+manual</link>, but here we give a short overview of the most important
+constructs useful in NixOS configuration files.</para>
+
+<xi:include href="config-file.xml" />
+<xi:include href="abstractions.xml" />
+<xi:include href="modularity.xml" />
+<xi:include href="summary.xml" />
+
+</chapter>
diff --git a/nixos/doc/manual/configuration/configuration.xml b/nixos/doc/manual/configuration/configuration.xml
new file mode 100644
index 000000000000..8fde0dc7e611
--- /dev/null
+++ b/nixos/doc/manual/configuration/configuration.xml
@@ -0,0 +1,32 @@
+<part xmlns="http://docbook.org/ns/docbook"
+      xmlns:xlink="http://www.w3.org/1999/xlink"
+      xmlns:xi="http://www.w3.org/2001/XInclude"
+      version="5.0"
+      xml:id="ch-configuration">
+
+<title>Configuration</title>
+
+<partintro>
+
+<para>This chapter describes how to configure various aspects of a
+NixOS machine through the configuration file
+<filename>/etc/nixos/configuration.nix</filename>.  As described in
+<xref linkend="sec-changing-config" />, changes to this file only take
+effect after you run <command>nixos-rebuild</command>.</para>
+
+</partintro>
+
+<xi:include href="config-syntax.xml" />
+<xi:include href="package-mgmt.xml" />
+<xi:include href="user-mgmt.xml" />
+<xi:include href="file-systems.xml" />
+<xi:include href="x-windows.xml" />
+<xi:include href="networking.xml" />
+<xi:include href="linux-kernel.xml" />
+
+<!-- FIXME: auto-include NixOS module docs -->
+<xi:include href="postgresql.xml" />
+
+<!-- Apache; libvirtd virtualisation -->
+
+</part>
diff --git a/nixos/doc/manual/configuration/customizing-packages.xml b/nixos/doc/manual/configuration/customizing-packages.xml
new file mode 100644
index 000000000000..6ee7a95dc6fa
--- /dev/null
+++ b/nixos/doc/manual/configuration/customizing-packages.xml
@@ -0,0 +1,92 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-customising-packages">
+
+<title>Customising Packages</title>
+
+<para>Some packages in Nixpkgs have options to enable or disable
+optional functionality or change other aspects of the package.  For
+instance, the Firefox wrapper package (which provides Firefox with a
+set of plugins such as the Adobe Flash player) has an option to enable
+the Google Talk plugin.  It can be set in
+<filename>configuration.nix</filename> as follows:
+
+<filename>
+nixpkgs.config.firefox.enableGoogleTalkPlugin = true;
+</filename>
+</para>
+
+<warning><para>Unfortunately, Nixpkgs currently lacks a way to query
+available configuration options.</para></warning>
+
+<para>Apart from high-level options, it’s possible to tweak a package
+in almost arbitrary ways, such as changing or disabling dependencies
+of a package.  For instance, the Emacs package in Nixpkgs by default
+has a dependency on GTK+ 2.  If you want to build it against GTK+ 3,
+you can specify that as follows:
+
+<programlisting>
+environment.systemPackages = [ (pkgs.emacs.override { gtk = pkgs.gtk3; }) ];
+</programlisting>
+
+The function <varname>override</varname> performs the call to the Nix
+function that produces Emacs, with the original arguments amended by
+the set of arguments specified by you.  So here the function argument
+<varname>gtk</varname> gets the value <literal>pkgs.gtk3</literal>,
+causing Emacs to depend on GTK+ 3.  (The parentheses are necessary
+because in Nix, function application binds more weakly than list
+construction, so without them,
+<literal>environment.systemPackages</literal> would be a list with two
+elements.)</para>
+
+<para>Even greater customisation is possible using the function
+<varname>overrideDerivation</varname>.  While the
+<varname>override</varname> mechanism above overrides the arguments of
+a package function, <varname>overrideDerivation</varname> allows
+changing the <emphasis>result</emphasis> of the function.  This
+permits changing any aspect of the package, such as the source code.
+For instance, if you want to override the source code of Emacs, you
+can say:
+
+<programlisting>
+environment.systemPackages =
+  [ (pkgs.lib.overrideDerivation pkgs.emacs (attrs: {
+      name = "emacs-25.0-pre";
+      src = /path/to/my/emacs/tree;
+    }))
+  ];
+</programlisting>
+
+Here, <varname>overrideDerivation</varname> takes the Nix derivation
+specified by <varname>pkgs.emacs</varname> and produces a new
+derivation in which the original’s <literal>name</literal> and
+<literal>src</literal> attribute have been replaced by the given
+values.  The original attributes are accessible via
+<varname>attrs</varname>.</para>
+
+<para>The overrides shown above are not global.  They do not affect
+the original package; other packages in Nixpkgs continue to depend on
+the original rather than the customised package.  This means that if
+another package in your system depends on the original package, you
+end up with two instances of the package.  If you want to have
+everything depend on your customised instance, you can apply a
+<emphasis>global</emphasis> override as follows:
+
+<screen>
+nixpkgs.config.packageOverrides = pkgs:
+  { emacs = pkgs.emacs.override { gtk = pkgs.gtk3; };
+  };
+</screen>
+
+The effect of this definition is essentially equivalent to modifying
+the <literal>emacs</literal> attribute in the Nixpkgs source tree.
+Any package in Nixpkgs that depends on <literal>emacs</literal> will
+be passed your customised instance.  (However, the value
+<literal>pkgs.emacs</literal> in
+<varname>nixpkgs.config.packageOverrides</varname> refers to the
+original rather than overridden instance, to prevent an infinite
+recursion.)</para>
+
+</section>
diff --git a/nixos/doc/manual/configuration/declarative-packages.xml b/nixos/doc/manual/configuration/declarative-packages.xml
new file mode 100644
index 000000000000..6de38b452e24
--- /dev/null
+++ b/nixos/doc/manual/configuration/declarative-packages.xml
@@ -0,0 +1,43 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-declarative-package-mgmt">
+
+<title>Declarative Package Management</title>
+
+<para>With declarative package management, you specify which packages
+you want on your system by setting the option
+<option>environment.systemPackages</option>.  For instance, adding the
+following line to <filename>configuration.nix</filename> enables the
+Mozilla Thunderbird email application:
+
+<programlisting>
+environment.systemPackages = [ pkgs.thunderbird ];
+</programlisting>
+
+The effect of this specification is that the Thunderbird package from
+Nixpkgs will be built or downloaded as part of the system when you run
+<command>nixos-rebuild switch</command>.</para>
+
+<para>You can get a list of the available packages as follows:
+<screen>
+$ nix-env -qaP '*' --description
+nixos.pkgs.firefox   firefox-23.0   Mozilla Firefox - the browser, reloaded
+<replaceable>...</replaceable>
+</screen>
+
+The first column in the output is the <emphasis>attribute
+name</emphasis>, such as
+<literal>nixos.pkgs.thunderbird</literal>. (The
+<literal>nixos</literal> prefix allows distinguishing between
+different channels that you might have.)</para>
+
+<para>To “uninstall” a package, simply remove it from
+<option>environment.systemPackages</option> and run
+<command>nixos-rebuild switch</command>.</para>
+
+<xi:include href="customizing-packages.xml" />
+<xi:include href="adding-custom-packages.xml" />
+
+</section>
diff --git a/nixos/doc/manual/configuration/file-systems.xml b/nixos/doc/manual/configuration/file-systems.xml
new file mode 100644
index 000000000000..d1b324af3f12
--- /dev/null
+++ b/nixos/doc/manual/configuration/file-systems.xml
@@ -0,0 +1,40 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="ch-file-systems">
+
+<title>File Systems</title>
+
+<para>You can define file systems using the
+<option>fileSystems</option> configuration option.  For instance, the
+following definition causes NixOS to mount the Ext4 file system on
+device <filename>/dev/disk/by-label/data</filename> onto the mount
+point <filename>/data</filename>:
+
+<programlisting>
+fileSystems."/data" =
+  { device = "/dev/disk/by-label/data";
+    fsType = "ext4";
+  };
+</programlisting>
+
+Mount points are created automatically if they don’t already exist.
+For <option>device</option>, it’s best to use the topology-independent
+device aliases in <filename>/dev/disk/by-label</filename> and
+<filename>/dev/disk/by-uuid</filename>, as these don’t change if the
+topology changes (e.g. if a disk is moved to another IDE
+controller).</para>
+
+<para>You can usually omit the file system type
+(<option>fsType</option>), since <command>mount</command> can usually
+detect the type and load the necessary kernel module automatically.
+However, if the file system is needed at early boot (in the initial
+ramdisk) and is not <literal>ext2</literal>, <literal>ext3</literal>
+or <literal>ext4</literal>, then it’s best to specify
+<option>fsType</option> to ensure that the kernel module is
+available.</para>
+
+<xi:include href="luks-file-systems.xml" />
+
+</chapter>
diff --git a/nixos/doc/manual/configuration/firewall.xml b/nixos/doc/manual/configuration/firewall.xml
new file mode 100644
index 000000000000..87406c28c2f7
--- /dev/null
+++ b/nixos/doc/manual/configuration/firewall.xml
@@ -0,0 +1,38 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-firewall">
+
+<title>Firewall</title>
+
+<para>NixOS has a simple stateful firewall that blocks incoming
+connections and other unexpected packets.  The firewall applies to
+both IPv4 and IPv6 traffic. It is enabled by default. It can be
+disabled as follows:
+
+<programlisting>
+networking.firewall.enable = false;
+</programlisting>
+
+If the firewall is enabled, you can open specific TCP ports to the
+outside world:
+
+<programlisting>
+networking.firewall.allowedTCPPorts = [ 80 443 ];
+</programlisting>
+
+Note that TCP port 22 (ssh) is opened automatically if the SSH daemon
+is enabled (<option>services.openssh.enable = true</option>).  UDP
+ports can be opened through
+<option>networking.firewall.allowedUDPPorts</option>.  Also of
+interest is
+
+<programlisting>
+networking.firewall.allowPing = true;
+</programlisting>
+
+to allow the machine to respond to ping requests.  (ICMPv6 pings are
+always allowed.)</para>
+
+</section>
diff --git a/nixos/doc/manual/configuration/ipv4-config.xml b/nixos/doc/manual/configuration/ipv4-config.xml
new file mode 100644
index 000000000000..e2c51518349d
--- /dev/null
+++ b/nixos/doc/manual/configuration/ipv4-config.xml
@@ -0,0 +1,47 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-ipv4">
+
+<title>IPv4 Configuration</title>
+
+<para>By default, NixOS uses DHCP (specifically,
+<command>dhcpcd</command>) to automatically configure network
+interfaces.  However, you can configure an interface manually as
+follows:
+
+<programlisting>
+networking.interfaces.eth0 = { ipAddress = "192.168.1.2"; prefixLength = 24; };
+</programlisting>
+
+(The network prefix can also be specified using the option
+<literal>subnetMask</literal>,
+e.g. <literal>"255.255.255.0"</literal>, but this is deprecated.)
+Typically you’ll also want to set a default gateway and set of name
+servers:
+
+<programlisting>
+networking.defaultGateway = "192.168.1.1";
+networking.nameservers = [ "8.8.8.8" ];
+</programlisting>
+
+</para>
+
+<note><para>Statically configured interfaces are set up by the systemd
+service
+<replaceable>interface-name</replaceable><literal>-cfg.service</literal>.
+The default gateway and name server configuration is performed by
+<literal>network-setup.service</literal>.</para></note>
+
+<para>The host name is set using <option>networking.hostName</option>:
+
+<programlisting>
+networking.hostName = "cartman";
+</programlisting>
+
+The default host name is <literal>nixos</literal>.  Set it to the
+empty string (<literal>""</literal>) to allow the DHCP server to
+provide the host name.</para>
+
+</section>
diff --git a/nixos/doc/manual/configuration/ipv6-config.xml b/nixos/doc/manual/configuration/ipv6-config.xml
new file mode 100644
index 000000000000..592bf20e545d
--- /dev/null
+++ b/nixos/doc/manual/configuration/ipv6-config.xml
@@ -0,0 +1,19 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-ipv6">
+
+<title>IPv6 Configuration</title>
+
+<para>IPv6 is enabled by default.  Stateless address autoconfiguration
+is used to automatically assign IPv6 addresses to all interfaces.  You
+can disable IPv6 support globally by setting:
+
+<programlisting>
+networking.enableIPv6 = false;
+</programlisting>
+
+</para>
+
+</section>
diff --git a/nixos/doc/manual/configuration/linux-kernel.xml b/nixos/doc/manual/configuration/linux-kernel.xml
new file mode 100644
index 000000000000..8fe2f5255df3
--- /dev/null
+++ b/nixos/doc/manual/configuration/linux-kernel.xml
@@ -0,0 +1,69 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-kernel-config">
+
+<title>Linux Kernel</title>
+
+<para>You can override the Linux kernel and associated packages using
+the option <option>boot.kernelPackages</option>.  For instance, this
+selects the Linux 3.10 kernel:
+<programlisting>
+boot.kernelPackages = pkgs.linuxPackages_3_10;
+</programlisting>
+Note that this not only replaces the kernel, but also packages that
+are specific to the kernel version, such as the NVIDIA video drivers.
+This ensures that driver packages are consistent with the
+kernel.</para>
+
+<para>The default Linux kernel configuration should be fine for most users. You can see the configuration of your current kernel with the following command:
+<programlisting>
+cat /proc/config.gz | gunzip
+</programlisting>
+If you want to change the kernel configuration, you can use the
+<option>packageOverrides</option> feature (see <xref
+linkend="sec-customising-packages" />).  For instance, to enable
+support for the kernel debugger KGDB:
+
+<programlisting>
+nixpkgs.config.packageOverrides = pkgs:
+  { linux_3_4 = pkgs.linux_3_4.override {
+      extraConfig =
+        ''
+          KGDB y
+        '';
+    };
+  };
+</programlisting>
+
+<varname>extraConfig</varname> takes a list of Linux kernel
+configuration options, one per line.  The name of the option should
+not include the prefix <literal>CONFIG_</literal>.  The option value
+is typically <literal>y</literal>, <literal>n</literal> or
+<literal>m</literal> (to build something as a kernel module).</para>
+
+<para>Kernel modules for hardware devices are generally loaded
+automatically by <command>udev</command>.  You can force a module to
+be loaded via <option>boot.kernelModules</option>, e.g.
+<programlisting>
+boot.kernelModules = [ "fuse" "kvm-intel" "coretemp" ];
+</programlisting>
+If the module is required early during the boot (e.g. to mount the
+root file system), you can use
+<option>boot.initrd.extraKernelModules</option>:
+<programlisting>
+boot.initrd.extraKernelModules = [ "cifs" ];
+</programlisting>
+This causes the specified modules and their dependencies to be added
+to the initial ramdark.</para>
+
+<para>Kernel runtime parameters can be set through
+<option>boot.kernel.sysctl</option>, e.g.
+<programlisting>
+boot.kernel.sysctl."net.ipv4.tcp_keepalive_time" = 120;
+</programlisting>
+sets the kernel’s TCP keepalive time to 120 seconds.  To see the
+available parameters, run <command>sysctl -a</command>.</para>
+
+</chapter>
diff --git a/nixos/doc/manual/configuration/luks-file-systems.xml b/nixos/doc/manual/configuration/luks-file-systems.xml
new file mode 100644
index 000000000000..45475dbcd446
--- /dev/null
+++ b/nixos/doc/manual/configuration/luks-file-systems.xml
@@ -0,0 +1,42 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-luks-file-systems">
+
+<title>LUKS-Encrypted File Systems</title>
+
+<para>NixOS supports file systems that are encrypted using
+<emphasis>LUKS</emphasis> (Linux Unified Key Setup).  For example,
+here is how you create an encrypted Ext4 file system on the device
+<filename>/dev/sda2</filename>:
+
+<screen>
+$ cryptsetup luksFormat /dev/sda2
+
+WARNING!
+========
+This will overwrite data on /dev/sda2 irrevocably.
+
+Are you sure? (Type uppercase yes): YES
+Enter LUKS passphrase: ***
+Verify passphrase: ***
+
+$ cryptsetup luksOpen /dev/sda2 crypted
+Enter passphrase for /dev/sda2: ***
+
+$ mkfs.ext4 /dev/mapper/crypted
+</screen>
+
+To ensure that this file system is automatically mounted at boot time
+as <filename>/</filename>, add the following to
+<filename>configuration.nix</filename>:
+
+<programlisting>
+boot.initrd.luks.devices = [ { device = "/dev/sda2"; name = "crypted"; } ];
+fileSystems."/".device = "/dev/mapper/crypted";
+</programlisting>
+
+</para>
+
+</section>
diff --git a/nixos/doc/manual/configuration/modularity.xml b/nixos/doc/manual/configuration/modularity.xml
new file mode 100644
index 000000000000..d95091bd1628
--- /dev/null
+++ b/nixos/doc/manual/configuration/modularity.xml
@@ -0,0 +1,143 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-modularity">
+
+<title>Modularity</title>
+
+<para>The NixOS configuration mechanism is modular.  If your
+<filename>configuration.nix</filename> becomes too big, you can split
+it into multiple files.  Likewise, if you have multiple NixOS
+configurations (e.g. for different computers) with some commonality,
+you can move the common configuration into a shared file.</para>
+
+<para>Modules have exactly the same syntax as
+<filename>configuration.nix</filename>.  In fact,
+<filename>configuration.nix</filename> is itself a module.  You can
+use other modules by including them from
+<filename>configuration.nix</filename>, e.g.:
+
+<programlisting>
+{ config, pkgs, ... }:
+
+{ imports = [ ./vpn.nix ./kde.nix ];
+  services.httpd.enable = true;
+  environment.systemPackages = [ pkgs.emacs ];
+  <replaceable>...</replaceable>
+}
+</programlisting>
+
+Here, we include two modules from the same directory,
+<filename>vpn.nix</filename> and <filename>kde.nix</filename>.  The
+latter might look like this:
+
+<programlisting>
+{ config, pkgs, ... }:
+
+{ services.xserver.enable = true;
+  services.xserver.displayManager.kdm.enable = true;
+  services.xserver.desktopManager.kde4.enable = true;
+  environment.systemPackages = [ pkgs.kde4.kscreensaver ];
+}
+</programlisting>
+
+Note that both <filename>configuration.nix</filename> and
+<filename>kde.nix</filename> define the option
+<option>environment.systemPackages</option>.  When multiple modules
+define an option, NixOS will try to <emphasis>merge</emphasis> the
+definitions.  In the case of
+<option>environment.systemPackages</option>, that’s easy: the lists of
+packages can simply be concatenated.  The value in
+<filename>configuration.nix</filename> is merged last, so for
+list-type options, it will appear at the end of the merged list. If
+you want it to appear first, you can use <varname>mkBefore</varname>:
+
+<programlisting>
+boot.kernelModules = mkBefore [ "kvm-intel" ];
+</programlisting>
+
+This causes the <literal>kvm-intel</literal> kernel module to be
+loaded before any other kernel modules.</para>
+
+<para>For other types of options, a merge may not be possible. For
+instance, if two modules define
+<option>services.httpd.adminAddr</option>,
+<command>nixos-rebuild</command> will give an error:
+
+<screen>
+The unique option `services.httpd.adminAddr' is defined multiple times, in `/etc/nixos/httpd.nix' and `/etc/nixos/configuration.nix'.
+</screen>
+
+When that happens, it’s possible to force one definition take
+precedence over the others:
+
+<programlisting>
+services.httpd.adminAddr = pkgs.lib.mkForce "bob@example.org";
+</programlisting>
+
+</para>
+
+<para>When using multiple modules, you may need to access
+configuration values defined in other modules.  This is what the
+<varname>config</varname> function argument is for: it contains the
+complete, merged system configuration.  That is,
+<varname>config</varname> is the result of combining the
+configurations returned by every module<footnote><para>If you’re
+wondering how it’s possible that the (indirect)
+<emphasis>result</emphasis> of a function is passed as an
+<emphasis>input</emphasis> to that same function: that’s because Nix
+is a “lazy” language — it only computes values when they are needed.
+This works as long as no individual configuration value depends on
+itself.</para></footnote>.  For example, here is a module that adds
+some packages to <option>environment.systemPackages</option> only if
+<option>services.xserver.enable</option> is set to
+<literal>true</literal> somewhere else:
+
+<programlisting>
+{ config, pkgs, ... }:
+
+{ environment.systemPackages =
+    if config.services.xserver.enable then
+      [ pkgs.firefox
+        pkgs.thunderbird
+      ]
+    else
+      [ ];
+}
+</programlisting>
+
+</para>
+
+<para>With multiple modules, it may not be obvious what the final
+value of a configuration option is.  The command
+<option>nixos-option</option> allows you to find out:
+
+<screen>
+$ nixos-option services.xserver.enable
+true
+
+$ nixos-option boot.kernelModules
+[ "tun" "ipv6" "loop" <replaceable>...</replaceable> ]
+</screen>
+
+Interactive exploration of the configuration is possible using
+<command
+xlink:href="https://github.com/edolstra/nix-repl">nix-repl</command>,
+a read-eval-print loop for Nix expressions.  It’s not installed by
+default; run <literal>nix-env -i nix-repl</literal> to get it.  A
+typical use:
+
+<screen>
+$ nix-repl '&lt;nixos>'
+
+nix-repl> config.networking.hostName
+"mandark"
+
+nix-repl> map (x: x.hostName) config.services.httpd.virtualHosts
+[ "example.org" "example.gov" ]
+</screen>
+
+</para>
+
+</section>
diff --git a/nixos/doc/manual/configuration/network-manager.xml b/nixos/doc/manual/configuration/network-manager.xml
new file mode 100644
index 000000000000..e65060021b40
--- /dev/null
+++ b/nixos/doc/manual/configuration/network-manager.xml
@@ -0,0 +1,27 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-networkmanager">
+
+<title>NetworkManager</title>
+
+<para>To facilitate network configuration, some desktop environments
+use NetworkManager. You can enable NetworkManager by setting:
+
+<programlisting>
+services.networkmanager.enable = true;
+</programlisting>
+
+Some desktop managers (e.g., GNOME) enable NetworkManager
+automatically for you.</para>
+
+<para>All users that should have permission to change network settings
+must belong to the <code>networkmanager</code> group.</para>
+
+<note><para><code>services.networkmanager</code> and
+<code>services.wireless</code> can not be enabled at the same time:
+you can still connect to the wireless networks using
+NetworkManager.</para></note>
+
+</section>
diff --git a/nixos/doc/manual/configuration/networking.xml b/nixos/doc/manual/configuration/networking.xml
new file mode 100644
index 000000000000..5f08bc1f1275
--- /dev/null
+++ b/nixos/doc/manual/configuration/networking.xml
@@ -0,0 +1,22 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-networking">
+
+<title>Networking</title>
+
+<para>This section describes how to configure networking components on
+your NixOS machine.</para>
+
+<xi:include href="network-manager.xml" />
+<xi:include href="ssh.xml" />
+<xi:include href="ipv4-config.xml" />
+<xi:include href="ipv6-config.xml" />
+<xi:include href="firewall.xml" />
+<xi:include href="wireless.xml" />
+<xi:include href="ad-hoc-network-config.xml" />
+
+<!-- TODO: OpenVPN, NAT -->
+
+</chapter>
diff --git a/nixos/doc/manual/configuration/package-mgmt.xml b/nixos/doc/manual/configuration/package-mgmt.xml
new file mode 100644
index 000000000000..73c1722da02c
--- /dev/null
+++ b/nixos/doc/manual/configuration/package-mgmt.xml
@@ -0,0 +1,34 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-package-management">
+
+<title>Package Management</title>
+
+<para>This section describes how to add additional packages to your
+system.  NixOS has two distinct styles of package management:
+
+<itemizedlist>
+
+  <listitem><para><emphasis>Declarative</emphasis>, where you declare
+  what packages you want in your
+  <filename>configuration.nix</filename>.  Every time you run
+  <command>nixos-rebuild</command>, NixOS will ensure that you get a
+  consistent set of binaries corresponding to your
+  specification.</para></listitem>
+
+  <listitem><para><emphasis>Ad hoc</emphasis>, where you install,
+  upgrade and uninstall packages via the <command>nix-env</command>
+  command.  This style allows mixing packages from different Nixpkgs
+  versions.  It’s the only choice for non-root
+  users.</para></listitem>
+
+</itemizedlist>
+
+</para>
+
+<xi:include href="declarative-packages.xml" />
+<xi:include href="ad-hoc-packages.xml" />
+
+</chapter>
diff --git a/nixos/doc/manual/configuration/ssh.xml b/nixos/doc/manual/configuration/ssh.xml
new file mode 100644
index 000000000000..7c928baaf896
--- /dev/null
+++ b/nixos/doc/manual/configuration/ssh.xml
@@ -0,0 +1,32 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-ssh">
+
+<title>Secure Shell Access</title>
+
+<para>Secure shell (SSH) access to your machine can be enabled by
+setting:
+
+<programlisting>
+services.openssh.enable = true;
+</programlisting>
+
+By default, root logins using a password are disallowed.  They can be
+disabled entirely by setting
+<literal>services.openssh.permitRootLogin</literal> to
+<literal>"no"</literal>.</para>
+
+<para>You can declaratively specify authorised RSA/DSA public keys for
+a user as follows:
+
+<!-- FIXME: this might not work if the user is unmanaged. -->
+<programlisting>
+users.extraUsers.alice.openssh.authorizedKeys.keys =
+  [ "ssh-dss AAAAB3NzaC1kc3MAAACBAPIkGWVEt4..." ];
+</programlisting>
+
+</para>
+
+</section>
diff --git a/nixos/doc/manual/configuration/summary.xml b/nixos/doc/manual/configuration/summary.xml
new file mode 100644
index 000000000000..9bb5e35e16bc
--- /dev/null
+++ b/nixos/doc/manual/configuration/summary.xml
@@ -0,0 +1,191 @@
+<section xmlns="http://docbook.org/ns/docbook"
+    xmlns:xlink="http://www.w3.org/1999/xlink"
+    xmlns:xi="http://www.w3.org/2001/XInclude"
+    version="5.0"
+    xml:id="sec-nix-syntax-summary">
+
+<title>Syntax Summary</title>
+
+<para>Below is a summary of the most important syntactic constructs in
+the Nix expression language.  It’s not complete.  In particular, there
+are many other built-in functions.  See the <link
+xlink:href="http://nixos.org/nix/manual/#chap-writing-nix-expressions">Nix
+manual</link> for the rest.</para>
+
+<informaltable frame='none'>
+  <tgroup cols='2'>
+    <colspec colname='c1' rowsep='1' colsep='1' />
+    <colspec colname='c2' rowsep='1' />
+    <thead>
+      <row>
+        <entry>Example</entry>
+        <entry>Description</entry>
+      </row>
+    </thead>
+    <tbody>
+
+      <row>
+        <entry namest="c1" nameend="c2"><emphasis>Basic values</emphasis></entry>
+      </row>
+      <row>
+        <entry><literal>"Hello world"</literal></entry>
+        <entry>A string</entry>
+      </row>
+      <row>
+        <entry><literal>"${pkgs.bash}/bin/sh"</literal></entry>
+        <entry>A string containing an expression (expands to <literal>"/nix/store/<replaceable>hash</replaceable>-bash-<replaceable>version</replaceable>/bin/sh"</literal>)</entry>
+      </row>
+      <row>
+        <entry><literal>true</literal>, <literal>false</literal></entry>
+        <entry>Booleans</entry>
+      </row>
+      <row>
+        <entry><literal>123</literal></entry>
+        <entry>An integer</entry>
+      </row>
+      <row>
+        <entry><literal>./foo.png</literal></entry>
+        <entry>A path (relative to the containing Nix expression)</entry>
+      </row>
+
+      <row>
+        <entry namest="c1" nameend="c2"><emphasis>Compound values</emphasis></entry>
+      </row>
+      <row>
+        <entry><literal>{ x = 1; y = 2; }</literal></entry>
+        <entry>An set with attributes names <literal>x</literal> and <literal>y</literal></entry>
+      </row>
+      <row>
+        <entry><literal>{ foo.bar = 1; }</literal></entry>
+        <entry>A nested set, equivalent to <literal>{ foo = { bar = 1; }; }</literal></entry>
+      </row>
+      <row>
+        <entry><literal>rec { x = "bla"; y = x + "bar"; }</literal></entry>
+        <entry>A recursive set, equivalent to <literal>{ x = "foo"; y = "foobar"; }</literal></entry>
+      </row>
+      <row>
+        <entry><literal>[ "foo" "bar" ]</literal></entry>
+        <entry>A list with two elements</entry>
+      </row>
+
+      <row>
+        <entry namest="c1" nameend="c2"><emphasis>Operators</emphasis></entry>
+      </row>
+      <row>
+        <entry><literal>"foo" + "bar"</literal></entry>
+        <entry>String concatenation</entry>
+      </row>
+      <row>
+        <entry><literal>1 + 2</literal></entry>
+        <entry>Integer addition</entry>
+      </row>
+      <row>
+        <entry><literal>"foo" == "f" + "oo"</literal></entry>
+        <entry>Equality test (evaluates to <literal>true</literal>)</entry>
+      </row>
+      <row>
+        <entry><literal>"foo" != "bar"</literal></entry>
+        <entry>Inequality test (evaluates to <literal>true</literal>)</entry>
+      </row>
+      <row>
+        <entry><literal>!true</literal></entry>
+        <entry>Boolean negation</entry>
+      </row>
+      <row>
+        <entry><literal>{ x = 1; y = 2; }.x</literal></entry>
+        <entry>Attribute selection (evaluates to <literal>1</literal>)</entry>
+      </row>
+      <row>
+        <entry><literal>{ x = 1; y = 2; }.z or 3</literal></entry>
+        <entry>Attribute selection with default (evaluates to <literal>3</literal>)</entry>
+      </row>
+      <row>
+        <entry><literal>{ x = 1; y = 2; } // { z = 3; }</literal></entry>
+        <entry>Merge two sets (attributes in the right-hand set taking precedence)</entry>
+      </row>
+
+      <row>
+        <entry namest="c1" nameend="c2"><emphasis>Control structures</emphasis></entry>
+      </row>
+      <row>
+        <entry><literal>if 1 + 1 == 2 then "yes!" else "no!"</literal></entry>
+        <entry>Conditional expression</entry>
+      </row>
+      <row>
+        <entry><literal>assert 1 + 1 == 2; "yes!"</literal></entry>
+        <entry>Assertion check (evaluates to <literal>"yes!"</literal>)</entry>
+      </row>
+      <row>
+        <entry><literal>let x = "foo"; y = "bar"; in x + y</literal></entry>
+        <entry>Variable definition</entry>
+      </row>
+      <row>
+        <entry><literal>with pkgs.lib; head [ 1 2 3 ]</literal></entry>
+        <entry>Add all attributes from the given set to the scope
+        (evaluates to <literal>1</literal>)</entry>
+      </row>
+
+      <row>
+        <entry namest="c1" nameend="c2"><emphasis>Functions (lambdas)</emphasis></entry>
+      </row>
+      <row>
+        <entry><literal>x: x + 1</literal></entry>
+        <entry>A function that expects an integer and returns it increased by 1</entry>
+      </row>
+      <row>
+        <entry><literal>(x: x + 1) 100</literal></entry>
+        <entry>A function call (evaluates to 101)</entry>
+      </row>
+      <row>
+        <entry><literal>let inc = x: x + 1; in inc (inc (inc 100))</literal></entry>
+        <entry>A function bound to a variable and subsequently called by name (evaluates to 103)</entry>
+      </row>
+      <row>
+        <entry><literal>{ x, y }: x + y</literal></entry>
+        <entry>A function that expects a set with required attributes
+        <literal>x</literal> and <literal>y</literal> and concatenates
+        them</entry>
+      </row>
+      <row>
+        <entry><literal>{ x, y ? "bar" }: x + y</literal></entry>
+        <entry>A function that expects a set with required attribute
+        <literal>x</literal> and optional <literal>y</literal>, using
+        <literal>"bar"</literal> as default value for
+        <literal>y</literal></entry>
+      </row>
+      <row>
+        <entry><literal>{ x, y, ... }: x + y</literal></entry>
+        <entry>A function that expects a set with required attributes
+        <literal>x</literal> and <literal>y</literal> and ignores any
+        other attributes</entry>
+      </row>
+      <row>
+        <entry><literal>{ x, y } @ args: x + y</literal></entry>
+        <entry>A function that expects a set with required attributes
+        <literal>x</literal> and <literal>y</literal>, and binds the
+        whole set to <literal>args</literal></entry>
+      </row>
+
+      <row>
+        <entry namest="c1" nameend="c2"><emphasis>Built-in functions</emphasis></entry>
+      </row>
+      <row>
+        <entry><literal>import ./foo.nix</literal></entry>
+        <entry>Load and return Nix expression in given file</entry>
+      </row>
+      <row>
+        <entry><literal>map (x: x + x) [ 1 2 3 ]</literal></entry>
+        <entry>Apply a function to every element of a list (evaluates to <literal>[ 2 4 6 ]</literal>)</entry>
+      </row>
+      <!--
+      <row>
+        <entry><literal>throw "Urgh"</literal></entry>
+        <entry>Raise an error condition</entry>
+      </row>
+      -->
+
+    </tbody>
+  </tgroup>
+</informaltable>
+
+</section>
diff --git a/nixos/doc/manual/configuration/user-mgmt.xml b/nixos/doc/manual/configuration/user-mgmt.xml
new file mode 100644
index 000000000000..40362fbbb23f
--- /dev/null
+++ b/nixos/doc/manual/configuration/user-mgmt.xml
@@ -0,0 +1,89 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-user-management">
+
+<title>User Management</title>
+
+<para>NixOS supports both declarative and imperative styles of user
+management.  In the declarative style, users are specified in
+<filename>configuration.nix</filename>.  For instance, the following
+states that a user account named <literal>alice</literal> shall exist:
+
+<programlisting>
+users.extraUsers.alice =
+  { isNormalUser = true;
+    home = "/home/alice";
+    description = "Alice Foobar";
+    extraGroups = [ "wheel" "networkmanager" ];
+    openssh.authorizedKeys.keys = [ "ssh-dss AAAAB3Nza... alice@foobar" ];
+  };
+</programlisting>
+
+Note that <literal>alice</literal> is a member of the
+<literal>wheel</literal> and <literal>networkmanager</literal> groups,
+which allows her to use <command>sudo</command> to execute commands as
+<literal>root</literal> and to configure the network, respectively.
+Also note the SSH public key that allows remote logins with the
+corresponding private key. Users created in this way do not have a
+password by default, so they cannot log in via mechanisms that require
+a password. However, you can use the <command>passwd</command> program
+to set a password, which is retained across invocations of
+<command>nixos-rebuild</command>.</para>
+
+<para>If you set users.mutableUsers to false, then the contents of /etc/passwd
+and /etc/group will be congruent to your NixOS configuration. For instance,
+if you remove a user from users.extraUsers and run nixos-rebuild, the user
+account will cease to exist. Also, imperative commands for managing users
+and groups, such as useradd, are no longer available.</para>
+
+<para>A user ID (uid) is assigned automatically.  You can also specify
+a uid manually by adding
+
+<programlisting>
+    uid = 1000;
+</programlisting>
+
+to the user specification.</para>
+
+<para>Groups can be specified similarly.  The following states that a
+group named <literal>students</literal> shall exist:
+
+<programlisting>
+users.extraGroups.students.gid = 1000;
+</programlisting>
+
+As with users, the group ID (gid) is optional and will be assigned
+automatically if it’s missing.</para>
+
+<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
+account named <literal>alice</literal>:
+
+<screen>
+$ useradd -m alice</screen>
+
+The flag <option>-m</option> causes the creation of a home directory
+for the new user, which is generally what you want.  The user does not
+have an initial password and therefore cannot log in.  A password can
+be set using the <command>passwd</command> utility:
+
+<screen>
+$ passwd alice
+Enter new UNIX password: ***
+Retype new UNIX password: ***
+</screen>
+
+A user can be deleted using <command>userdel</command>:
+
+<screen>
+$ userdel -r alice</screen>
+
+The flag <option>-r</option> deletes the user’s home directory.
+Accounts can be modified using <command>usermod</command>.  Unix
+groups can be managed using <command>groupadd</command>,
+<command>groupmod</command> and <command>groupdel</command>.</para>
+
+</chapter>
diff --git a/nixos/doc/manual/configuration/wireless.xml b/nixos/doc/manual/configuration/wireless.xml
new file mode 100644
index 000000000000..373a9168cc87
--- /dev/null
+++ b/nixos/doc/manual/configuration/wireless.xml
@@ -0,0 +1,41 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-wireless">
+
+<title>Wireless Networks</title>
+
+<para>For a desktop installation using NetworkManager (e.g., GNOME),
+you just have to make sure the user is in the
+<code>networkmanager</code> group and you can skip the rest of this
+section on wireless networks.</para>
+
+<para>
+NixOS will start wpa_supplicant for you if you enable this setting:
+
+<programlisting>
+networking.wireless.enable = true;
+</programlisting>
+
+NixOS currently does not generate wpa_supplicant's
+configuration file, <literal>/etc/wpa_supplicant.conf</literal>. You should edit this file
+yourself to define wireless networks, WPA keys and so on (see
+wpa_supplicant.conf(5)).
+</para>
+
+<para>
+If you are using WPA2 the <command>wpa_passphrase</command> tool might be useful
+to generate the <literal>wpa_supplicant.conf</literal>.
+
+<screen>
+$ wpa_passphrase ESSID PSK > /etc/wpa_supplicant.conf</screen>
+
+After you have edited the <literal>wpa_supplicant.conf</literal>,
+you need to restart the wpa_supplicant service.
+
+<screen>
+$ systemctl restart wpa_supplicant.service</screen>
+</para>
+
+</section>
diff --git a/nixos/doc/manual/configuration/x-windows.xml b/nixos/doc/manual/configuration/x-windows.xml
new file mode 100644
index 000000000000..bc58bb1f0669
--- /dev/null
+++ b/nixos/doc/manual/configuration/x-windows.xml
@@ -0,0 +1,94 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-x11">
+
+<title>X Window System</title>
+    
+<para>The X Window System (X11) provides the basis of NixOS’ graphical
+user interface.  It can be enabled as follows:
+<programlisting>
+services.xserver.enable = true;
+</programlisting>
+The X server will automatically detect and use the appropriate video
+driver from a set of X.org drivers (such as <literal>vesa</literal>
+and <literal>intel</literal>).  You can also specify a driver
+manually, e.g.
+<programlisting>
+services.xserver.videoDrivers = [ "r128" ];
+</programlisting>
+to enable X.org’s <literal>xf86-video-r128</literal> driver.</para>
+
+<para>You also need to enable at least one desktop or window manager.
+Otherwise, you can only log into a plain undecorated
+<command>xterm</command> window.  Thus you should pick one or more of
+the following lines:
+<programlisting>
+services.xserver.desktopManager.kde4.enable = true;
+services.xserver.desktopManager.xfce.enable = true;
+services.xserver.windowManager.xmonad.enable = true;
+services.xserver.windowManager.twm.enable = true;
+services.xserver.windowManager.icewm.enable = true;
+</programlisting>
+</para>
+
+<para>NixOS’s default <emphasis>display manager</emphasis> (the
+program that provides a graphical login prompt and manages the X
+server) is SLiM.  You can select KDE’s <command>kdm</command> instead:
+<programlisting>
+services.xserver.displayManager.kdm.enable = true;
+</programlisting>
+</para>
+
+<para>The X server is started automatically at boot time.  If you
+don’t want this to happen, you can set:
+<programlisting>
+services.xserver.autorun = false;
+</programlisting>
+The X server can then be started manually:
+<screen>
+$ systemctl start display-manager.service
+</screen>
+</para>
+
+
+<simplesect><title>NVIDIA Graphics Cards</title>
+
+<para>NVIDIA provides a proprietary driver for its graphics cards that
+has better 3D performance than the X.org drivers.  It is not enabled
+by default because it’s not free software.  You can enable it as follows:
+<programlisting>
+services.xserver.videoDrivers = [ "nvidia" ];
+</programlisting>
+You may need to reboot after enabling this driver to prevent a clash
+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;
+</programlisting>
+</para>
+
+</simplesect>
+
+
+<simplesect><title>Touchpads</title>
+
+<para>Support for Synaptics touchpads (found in many laptops such as
+the Dell Latitude series) can be enabled as follows:
+<programlisting>
+services.xserver.synaptics.enable = true;
+</programlisting>
+The driver has many options (see <xref linkend="ch-options"/>).  For
+instance, the following enables two-finger scrolling:
+<programlisting>
+services.xserver.synaptics.twoFingerScroll = true;
+</programlisting>
+</para>
+
+</simplesect>
+
+
+</chapter>
diff --git a/nixos/doc/manual/containers.xml b/nixos/doc/manual/containers.xml
deleted file mode 100644
index 2530d5195212..000000000000
--- a/nixos/doc/manual/containers.xml
+++ /dev/null
@@ -1,242 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="ch-containers">
-
-<title>Containers</title>
-
-<para>NixOS allows you to easily run other NixOS instances as
-<emphasis>containers</emphasis>. Containers are a light-weight
-approach to virtualisation that runs software in the container at the
-same speed as in the host system. NixOS containers share the Nix store
-of the host, making container creation very efficient.</para>
-
-<warning><para>Currently, NixOS containers are not perfectly isolated
-from the host system. This means that a user with root access to the
-container can do things that affect the host. So you should not give
-container root access to untrusted users.</para></warning>
-
-<para>NixOS containers can be created in two ways: imperatively, using
-the command <command>nixos-container</command>, and declaratively, by
-specifying them in your <filename>configuration.nix</filename>. The
-declarative approach implies that containers get upgraded along with
-your host system when you run <command>nixos-rebuild</command>, which
-is often not what you want. By contrast, in the imperative approach,
-containers are configured and updated independently from the host
-system.</para>
-
-
-<section><title>Imperative container management</title>
-
-<para>We’ll cover imperative container management using
-<command>nixos-container</command> first. You create a container with
-identifier <literal>foo</literal> as follows:
-
-<screen>
-$ nixos-container create foo
-</screen>
-
-This creates the container’s root directory in
-<filename>/var/lib/containers/foo</filename> and a small configuration
-file in <filename>/etc/containers/foo.conf</filename>. It also builds
-the container’s initial system configuration and stores it in
-<filename>/nix/var/nix/profiles/per-container/foo/system</filename>. You
-can modify the initial configuration of the container on the command
-line. For instance, to create a container that has
-<command>sshd</command> running, with the given public key for
-<literal>root</literal>:
-
-<screen>
-$ nixos-container create foo --config 'services.openssh.enable = true; \
-  users.extraUsers.root.openssh.authorizedKeys.keys = ["ssh-dss AAAAB3N…"];'
-</screen>
-
-</para>
-
-<para>Creating a container does not start it. To start the container,
-run:
-
-<screen>
-$ nixos-container start foo
-</screen>
-
-This command will return as soon as the container has booted and has
-reached <literal>multi-user.target</literal>. On the host, the
-container runs within a systemd unit called
-<literal>container@<replaceable>container-name</replaceable>.service</literal>.
-Thus, if something went wrong, you can get status info using
-<command>systemctl</command>:
-
-<screen>
-$ systemctl status container@foo
-</screen>
-
-</para>
-
-<para>If the container has started succesfully, you can log in as
-root using the <command>root-login</command> operation:
-
-<screen>
-$ nixos-container root-login foo
-[root@foo:~]#
-</screen>
-
-Note that only root on the host can do this (since there is no
-authentication).  You can also get a regular login prompt using the
-<command>login</command> operation, which is available to all users on
-the host:
-
-<screen>
-$ nixos-container login foo
-foo login: alice
-Password: ***
-</screen>
-
-With <command>nixos-container run</command>, you can execute arbitrary
-commands in the container:
-
-<screen>
-$ nixos-container run foo -- uname -a
-Linux foo 3.4.82 #1-NixOS SMP Thu Mar 20 14:44:05 UTC 2014 x86_64 GNU/Linux
-</screen>
-
-</para>
-
-<para>There are several ways to change the configuration of the
-container. First, on the host, you can edit
-<literal>/var/lib/container/<replaceable>name</replaceable>/etc/nixos/configuration.nix</literal>,
-and run
-
-<screen>
-$ nixos-container update foo
-</screen>
-
-This will build and activate the new configuration. You can also
-specify a new configuration on the command line:
-
-<screen>
-$ nixos-container update foo --config 'services.httpd.enable = true; \
-  services.httpd.adminAddr = "foo@example.org";'
-
-$ curl http://$(nixos-container show-ip foo)/
-&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">…
-</screen>
-
-However, note that this will overwrite the container’s
-<filename>/etc/nixos/configuration.nix</filename>.</para>
-
-<para>Alternatively, you can change the configuration from within the
-container itself by running <command>nixos-rebuild switch</command>
-inside the container. Note that the container by default does not have
-a copy of the NixOS channel, so you should run <command>nix-channel
---update</command> first.</para>
-
-<para>Containers can be stopped and started using
-<literal>nixos-container stop</literal> and <literal>nixos-container
-start</literal>, respectively, or by using
-<command>systemctl</command> on the container’s service unit. To
-destroy a container, including its file system, do
-
-<screen>
-$ nixos-container destroy foo
-</screen>
-
-</para>
-
-</section>
-
-
-<section><title>Declarative container specification</title>
-
-<para>You can also specify containers and their configuration in the
-host’s <filename>configuration.nix</filename>.  For example, the
-following specifies that there shall be a container named
-<literal>database</literal> running PostgreSQL:
-
-<programlisting>
-containers.database =
-  { config =
-      { config, pkgs, ... }:
-      { services.postgresql.enable = true;
-        services.postgresql.package = pkgs.postgresql92;
-      };
-  };
-</programlisting>
-
-If you run <literal>nixos-rebuild switch</literal>, the container will
-be built and started. If the container was already running, it will be
-updated in place, without rebooting.</para>
-
-<para>By default, declarative containers share the network namespace
-of the host, meaning that they can listen on (privileged)
-ports. However, they cannot change the network configuration. You can
-give a container its own network as follows:
-
-<programlisting>
-containers.database =
-  { privateNetwork = true;
-    hostAddress = "192.168.100.10";
-    localAddress = "192.168.100.11";
-  };
-</programlisting>
-
-This gives the container a private virtual Ethernet interface with IP
-address <literal>192.168.100.11</literal>, which is hooked up to a
-virtual Ethernet interface on the host with IP address
-<literal>192.168.100.10</literal>.  (See the next section for details
-on container networking.)</para>
-
-<para>To disable the container, just remove it from
-<filename>configuration.nix</filename> and run <literal>nixos-rebuild
-switch</literal>. Note that this will not delete the root directory of
-the container in <literal>/var/lib/containers</literal>.</para>
-
-</section>
-
-
-<section><title>Networking</title>
-
-<para>When you create a container using <literal>nixos-container
-create</literal>, it gets it own private IPv4 address in the range
-<literal>10.233.0.0/16</literal>. You can get the container’s IPv4
-address as follows:
-
-<screen>
-$ nixos-container show-ip foo
-10.233.4.2
-
-$ ping -c1 10.233.4.2
-64 bytes from 10.233.4.2: icmp_seq=1 ttl=64 time=0.106 ms
-</screen>
-
-</para>
-
-<para>Networking is implemented using a pair of virtual Ethernet
-devices. The network interface in the container is called
-<literal>eth0</literal>, while the matching interface in the host is
-called <literal>ve-<replaceable>container-name</replaceable></literal>
-(e.g., <literal>ve-foo</literal>).  The container has its own network
-namespace and the <literal>CAP_NET_ADMIN</literal> capability, so it
-can perform arbitrary network configuration such as setting up
-firewall rules, without affecting or having access to the host’s
-network.</para>
-
-<para>By default, containers cannot talk to the outside network. If
-you want that, you should set up Network Address Translation (NAT)
-rules on the host to rewrite container traffic to use your external
-IP address. This can be accomplished using the following configuration
-on the host:
-
-<programlisting>
-networking.nat.enable = true;
-networking.nat.internalInterfaces = ["ve-+"];
-networking.nat.externalInterface = "eth0";
-</programlisting>
-where <literal>eth0</literal> should be replaced with the desired
-external interface. Note that <literal>ve-+</literal> is a wildcard
-that matches all container interfaces.</para>
-
-</section>
-
-
-</chapter>
-
diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix
index 55533a05b066..47e01437ccc4 100644
--- a/nixos/doc/manual/default.nix
+++ b/nixos/doc/manual/default.nix
@@ -36,30 +36,29 @@ let
       -o $out ${./options-to-docbook.xsl} ${optionsXML}
   '';
 
+  sources = sourceFilesBySuffices ./. [".xml"];
+
+  copySources =
+    ''
+      cp -prd $sources/* . # */
+      chmod -R u+w .
+      cp ${../../modules/services/databases/postgresql.xml} configuration/postgresql.xml
+      ln -s ${optionsDocBook} options-db.xml
+      echo "${version}" > version
+    '';
+
 in rec {
 
   # Generate the NixOS manual.
   manual = stdenv.mkDerivation {
     name = "nixos-manual";
 
-    sources = sourceFilesBySuffices ./. [".xml"];
+    inherit sources;
 
     buildInputs = [ libxml2 libxslt ];
 
-    xsltFlags = ''
-      --param section.autolabel 1
-      --param section.label.includes.component.label 1
-      --param html.stylesheet 'style.css'
-      --param xref.with.number.and.title 1
-      --param toc.section.depth 3
-      --param admon.style '''
-      --param callout.graphics.extension '.gif'
-    '';
-
     buildCommand = ''
-      ln -s $sources/*.xml . # */
-      ln -s ${optionsDocBook} options-db.xml
-      echo "${version}" > version
+      ${copySources}
 
       # Check the validity of the manual sources.
       xmllint --noout --nonet --xinclude --noxincludenode \
@@ -69,10 +68,20 @@ in rec {
       # Generate the HTML manual.
       dst=$out/share/doc/nixos
       mkdir -p $dst
-      xsltproc $xsltFlags --nonet --xinclude \
-        --output $dst/manual.html \
-        ${docbook5_xsl}/xml/xsl/docbook/xhtml/docbook.xsl \
-        ./manual.xml
+      xsltproc \
+        --param section.autolabel 1 \
+        --param section.label.includes.component.label 1 \
+        --stringparam html.stylesheet style.css \
+        --param xref.with.number.and.title 1 \
+        --param toc.section.depth 3 \
+        --stringparam admon.style "" \
+        --stringparam callout.graphics.extension .gif \
+        --param chunk.section.depth 0 \
+        --param chunk.first.sections 1 \
+        --param use.id.as.filename 1 \
+        --stringparam generate.toc "book toc chapter toc appendix toc" \
+        --nonet --xinclude --output $dst/ \
+        ${docbook5_xsl}/xml/xsl/docbook/xhtml/chunkfast.xsl ./manual.xml
 
       mkdir -p $dst/images/callouts
       cp ${docbook5_xsl}/xml/xsl/docbook/images/callouts/*.gif $dst/images/callouts/
@@ -90,7 +99,7 @@ in rec {
   manualPDF = stdenv.mkDerivation {
     name = "nixos-manual-pdf";
 
-    sources = sourceFilesBySuffices ./. [".xml"];
+    inherit sources;
 
     buildInputs = [ libxml2 libxslt dblatex tetex ];
 
@@ -98,9 +107,7 @@ in rec {
       # TeX needs a writable font cache.
       export VARTEXFONTS=$TMPDIR/texfonts
 
-      ln -s $sources/*.xml . # */
-      ln -s ${optionsDocBook} options-db.xml
-      echo "${version}" > version
+      ${copySources}
 
       dst=$out/share/doc/nixos
       mkdir -p $dst
@@ -117,13 +124,12 @@ in rec {
   manpages = stdenv.mkDerivation {
     name = "nixos-manpages";
 
-    sources = sourceFilesBySuffices ./. [".xml"];
+    inherit sources;
 
     buildInputs = [ libxml2 libxslt ];
 
     buildCommand = ''
-      ln -s $sources/*.xml . # */
-      ln -s ${optionsDocBook} options-db.xml
+      ${copySources}
 
       # Check the validity of the manual sources.
       xmllint --noout --nonet --xinclude --noxincludenode \
diff --git a/nixos/doc/manual/development.xml b/nixos/doc/manual/development.xml
deleted file mode 100644
index 2f0c2a7aa8da..000000000000
--- a/nixos/doc/manual/development.xml
+++ /dev/null
@@ -1,1119 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="ch-development">
-
-<title>Development</title>
-
-<para>This chapter describes how you can modify and extend
-NixOS.</para>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-getting-sources">
-
-<title>Getting the sources</title>
-
-<para>By default, NixOS’s <command>nixos-rebuild</command> command
-uses the NixOS and Nixpkgs sources provided by the
-<literal>nixos-unstable</literal> channel (kept in
-<filename>/nix/var/nix/profiles/per-user/root/channels/nixos</filename>).
-To modify NixOS, however, you should check out the latest sources from
-Git.  This is done using the following command:
-
-<screen>
-$ nixos-checkout <replaceable>/my/sources</replaceable>
-</screen>
-
-or
-
-<screen>
-$ mkdir -p <replaceable>/my/sources</replaceable>
-$ cd <replaceable>/my/sources</replaceable>
-$ nix-env -i git
-$ git clone git://github.com/NixOS/nixpkgs.git
-</screen>
-
-This will check out the latest NixOS sources to
-<filename><replaceable>/my/sources</replaceable>/nixpkgs/nixos</filename>
-and the Nixpkgs sources to
-<filename><replaceable>/my/sources</replaceable>/nixpkgs</filename>.
-(The NixOS source tree lives in a subdirectory of the Nixpkgs
-repository.)</para>
-
-<para>It’s often inconvenient to develop directly on the master
-branch, since if somebody has just committed (say) a change to GCC,
-then the binary cache may not have caught up yet and you’ll have to
-rebuild everything from source. So you may want to create a local
-branch based on your current NixOS version:
-
-<screen>
-$ nixos-version
-14.04.273.ea1952b (Baboon)
-
-$ git checkout -b local ea1952b
-</screen>
-
-Or, to base your local branch on the latest version available in the
-NixOS channel:
-
-<screen>
-$ curl -sI http://nixos.org/channels/nixos-unstable/ | grep Location
-Location: http://releases.nixos.org/nixos/unstable/nixos-14.10pre43986.acaf4a6/
-
-$ git checkout -b local acaf4a6
-</screen>
-
-You can then use <command>git rebase</command> to sync your local
-branch with the upstream branch, and use <command>git
-cherry-pick</command> to copy commits from your local branch to the
-upstream branch.</para>
-
-<para>If you want to rebuild your system using your (modified)
-sources, you need to tell <command>nixos-rebuild</command> about them
-using the <option>-I</option> flag:
-
-<screen>
-$ nixos-rebuild switch -I nixpkgs=<replaceable>/my/sources</replaceable>/nixpkgs
-</screen>
-
-</para>
-
-<para>If you want <command>nix-env</command> to use the expressions in
-<replaceable>/my/sources</replaceable>, use <command>nix-env -f
-<replaceable>/my/sources</replaceable>/nixpkgs</command>, or change
-the default by adding a symlink in
-<filename>~/.nix-defexpr</filename>:
-
-<screen>
-$ ln -s <replaceable>/my/sources</replaceable>/nixpkgs ~/.nix-defexpr/nixpkgs
-</screen>
-
-You may want to delete the symlink
-<filename>~/.nix-defexpr/channels_root</filename> to prevent root’s
-NixOS channel from clashing with your own tree.</para>
-
-<!-- FIXME: not sure what this means.
-<para>You should not pass the base directory
-<filename><replaceable>/my/sources</replaceable></filename>
-to <command>nix-env</command>, as it will break after interpreting expressions
-in <filename>nixos/</filename> as packages.</para>
--->
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-writing-modules">
-
-<title>Writing NixOS modules</title>
-
-<para>NixOS has a modular system for declarative configuration.  This
-system combines multiple <emphasis>modules</emphasis> to produce the
-full system configuration.  One of the modules that constitute the
-configuration is <filename>/etc/nixos/configuration.nix</filename>.
-Most of the others live in the <link
-xlink:href="https://github.com/NixOS/nixpkgs/tree/master/nixos/modules"><filename>nixos/modules</filename></link>
-subdirectory of the Nixpkgs tree.</para>
-
-<para>Each NixOS module is a file that handles one logical aspect of
-the configuration, such as a specific kind of hardware, a service, or
-network settings.  A module configuration does not have to handle
-everything from scratch; it can use the functionality provided by
-other modules for its implementation.  Thus a module can
-<emphasis>declare</emphasis> options that can be used by other
-modules, and conversely can <emphasis>define</emphasis> options
-provided by other modules in its own implementation.  For example, the
-module <link
-xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/security/pam.nix"><filename>pam.nix</filename></link>
-declares the option <option>security.pam.services</option> that allows
-other modules (e.g. <link
-xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/networking/ssh/sshd.nix"><filename>sshd.nix</filename></link>)
-to define PAM services; and it defines the option
-<option>environment.etc</option> (declared by <link
-xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/system/etc/etc.nix"><filename>etc.nix</filename></link>)
-to cause files to be created in
-<filename>/etc/pam.d</filename>.</para>
-
-<para xml:id="para-module-syn">In <xref
-linkend="sec-configuration-syntax"/>, we saw the following structure
-of NixOS modules:
-
-<programlisting>
-{ config, pkgs, ... }:
-
-{ <replaceable>option definitions</replaceable>
-}
-</programlisting>
-
-This is actually an <emphasis>abbreviated</emphasis> form of module
-that only defines options, but does not declare any.  The structure of
-full NixOS modules is shown in <xref linkend='ex-module-syntax' />.</para>
-
-<example xml:id='ex-module-syntax'><title>Structure of NixOS modules</title>
-<programlisting>
-{ config, pkgs, ... }: <co xml:id='module-syntax-1' />
-
-{
-  imports =
-    [ <replaceable>paths of other modules</replaceable> <co xml:id='module-syntax-2' />
-    ];
-
-  options = {
-    <replaceable>option declarations</replaceable> <co xml:id='module-syntax-3' />
-  };
-
-  config = {
-    <replaceable>option definitions</replaceable> <co xml:id='module-syntax-4' />
-  };
-}</programlisting>
-</example>
-
-<para>The meaning of each part is as follows.
-
-<calloutlist>
-  <callout arearefs='module-syntax-1'>
-    <para>This line makes the current Nix expression a function.  The
-    variable <varname>pkgs</varname> contains Nixpkgs, while
-    <varname>config</varname> contains the full system configuration.
-    This line can be omitted if there is no reference to
-    <varname>pkgs</varname> and <varname>config</varname> inside the
-    module.</para>
-  </callout>
-
-  <callout arearefs='module-syntax-2'>
-    <para>This list enumerates the paths to other NixOS modules that
-    should be included in the evaluation of the system configuration.
-    A default set of modules is defined in the file
-    <filename>modules/module-list.nix</filename>.  These don't need to
-    be added in the import list.</para>
-  </callout>
-
-  <callout arearefs='module-syntax-3'>
-    <para>The attribute <varname>options</varname> is a nested set of
-    <emphasis>option declarations</emphasis> (described below).</para>
-  </callout>
-
-  <callout arearefs='module-syntax-4'>
-    <para>The attribute <varname>config</varname> is a nested set of
-    <emphasis>option definitions</emphasis> (also described
-    below).</para>
-  </callout>
-</calloutlist>
-
-</para>
-
-<para><xref linkend='locate-example' /> shows a module that handles
-the regular update of the “locate” database, an index of all files in
-the file system.  This module declares two options that can be defined
-by other modules (typically the user’s
-<filename>configuration.nix</filename>):
-<option>services.locate.enable</option> (whether the database should
-be updated) and <option>services.locate.period</option> (when the
-update should be done).  It implements its functionality by defining
-two options declared by other modules:
-<option>systemd.services</option> (the set of all systemd services)
-and <option>services.cron.systemCronJobs</option> (the list of
-commands to be executed periodically by <command>cron</command>).</para>
-
-<example xml:id='locate-example'><title>NixOS module for the “locate” service</title>
-<programlisting>
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let locatedb = "/var/cache/locatedb"; in
-
-{
-  options = {
-
-    services.locate = {
-
-      enable = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          If enabled, NixOS will periodically update the database of
-          files used by the <command>locate</command> command.
-        '';
-      };
-
-      period = mkOption {
-        type = types.str;
-        default = "15 02 * * *";
-        description = ''
-          This option defines (in the format used by cron) when the
-          locate database is updated.  The default is to update at
-          02:15 at night every day.
-        '';
-      };
-
-    };
-
-  };
-
-  config = {
-
-    systemd.services.update-locatedb =
-      { description = "Update Locate Database";
-        path  = [ pkgs.su ];
-        script =
-          ''
-            mkdir -m 0755 -p $(dirname ${locatedb})
-            exec updatedb --localuser=nobody --output=${locatedb} --prunepaths='/tmp /var/tmp /media /run'
-          '';
-      };
-
-    services.cron.systemCronJobs = optional config.services.locate.enable
-      "${config.services.locate.period} root ${config.systemd.package}/bin/systemctl start update-locatedb.service";
-
-  };
-}</programlisting>
-</example>
-
-<section><title>Option declarations</title>
-
-<para>An option declaration specifies the name, type and description
-of a NixOS configuration option.  It is illegal to define an option
-that hasn’t been declared in any module.  A option declaration
-generally looks like this:
-
-<programlisting>
-options = {
-  <replaceable>name</replaceable> = mkOption {
-    type = <replaceable>type specification</replaceable>;
-    default = <replaceable>default value</replaceable>;
-    example = <replaceable>example value</replaceable>;
-    description = "<replaceable>Description for use in the NixOS manual.</replaceable>";
-  };
-};
-</programlisting>
-
-</para>
-
-<para>The function <varname>mkOption</varname> accepts the following arguments.
-
-<variablelist>
-
-  <varlistentry>
-    <term><varname>type</varname></term>
-    <listitem>
-      <para>The type of the option (see below).  It may be omitted,
-      but that’s not advisable since it may lead to errors that are
-      hard to diagnose.</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><varname>default</varname></term>
-    <listitem>
-      <para>The default value used if no value is defined by any
-      module.  A default is not required; in that case, if the option
-      value is ever used, an error will be thrown.</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><varname>example</varname></term>
-    <listitem>
-      <para>An example value that will be shown in the NixOS manual.</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><varname>description</varname></term>
-    <listitem>
-      <para>A textual description of the option, in DocBook format,
-      that will be included in the NixOS manual.</para>
-    </listitem>
-  </varlistentry>
-
-</variablelist>
-
-</para>
-
-<para>Here is a non-exhaustive list of option types:
-
-<variablelist>
-
-  <varlistentry>
-    <term><varname>types.bool</varname></term>
-    <listitem>
-      <para>A Boolean.</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><varname>types.int</varname></term>
-    <listitem>
-      <para>An integer.</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><varname>types.str</varname></term>
-    <listitem>
-      <para>A string.</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><varname>types.lines</varname></term>
-    <listitem>
-      <para>A string.  If there are multiple definitions, they are
-      concatenated, with newline characters in between.</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><varname>types.path</varname></term>
-    <listitem>
-      <para>A path, defined as anything that, when coerced to a
-      string, starts with a slash.  This includes derivations.</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><varname>types.listOf</varname> <replaceable>t</replaceable></term>
-    <listitem>
-      <para>A list of elements of type <replaceable>t</replaceable>
-      (e.g., <literal>types.listOf types.str</literal> is a list of
-      strings).  Multiple definitions are concatenated together.</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><varname>types.attrsOf</varname> <replaceable>t</replaceable></term>
-    <listitem>
-      <para>A set of elements of type <replaceable>t</replaceable>
-      (e.g., <literal>types.attrsOf types.int</literal> is a set of
-      name/value pairs, the values being integers).</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><varname>types.nullOr</varname> <replaceable>t</replaceable></term>
-    <listitem>
-      <para>Either the value <literal>null</literal> or something of
-      type <replaceable>t</replaceable>.</para>
-    </listitem>
-  </varlistentry>
-
-</variablelist>
-
-You can also create new types using the function
-<varname>mkOptionType</varname>.  See
-<filename>lib/types.nix</filename> in Nixpkgs for details.</para>
-
-</section>
-
-
-<section><title>Option definitions</title>
-
-<para>Option definitions are generally straight-forward bindings of values to option names, like
-
-<programlisting>
-config = {
-  services.httpd.enable = true;
-};
-</programlisting>
-
-However, sometimes you need to wrap an option definition or set of
-option definitions in a <emphasis>property</emphasis> to achieve
-certain effects:</para>
-
-<simplesect><title>Delaying conditionals</title>
-
-<para>If a set of option definitions is conditional on the value of
-another option, you may need to use <varname>mkIf</varname>.
-Consider, for instance:
-
-<programlisting>
-config = if config.services.httpd.enable then {
-  environment.systemPackages = [ <replaceable>...</replaceable> ];
-  <replaceable>...</replaceable>
-} else {};
-</programlisting>
-
-This definition will cause Nix to fail with an “infinite recursion”
-error.  Why?  Because the value of
-<option>config.services.httpd.enable</option> depends on the value
-being constructed here.  After all, you could also write the clearly
-circular and contradictory:
-<programlisting>
-config = if config.services.httpd.enable then {
-  services.httpd.enable = false;
-} else {
-  services.httpd.enable = true;
-};
-</programlisting>
-
-The solution is to write:
-
-<programlisting>
-config = mkIf config.services.httpd.enable {
-  environment.systemPackages = [ <replaceable>...</replaceable> ];
-  <replaceable>...</replaceable>
-};
-</programlisting>
-
-The special function <varname>mkIf</varname> causes the evaluation of
-the conditional to be “pushed down” into the individual definitions,
-as if you had written:
-
-<programlisting>
-config = {
-  environment.systemPackages = if config.services.httpd.enable then [ <replaceable>...</replaceable> ] else [];
-  <replaceable>...</replaceable>
-};
-</programlisting>
-
-</para>
-
-</simplesect>
-
-<simplesect><title>Setting priorities</title>
-
-<para>A module can override the definitions of an option in other
-modules by setting a <emphasis>priority</emphasis>.  All option
-definitions that do not have the lowest priority value are discarded.
-By default, option definitions have priority 1000.  You can specify an
-explicit priority by using <varname>mkOverride</varname>, e.g.
-
-<programlisting>
-services.openssh.enable = mkOverride 10 false;
-</programlisting>
-
-This definition causes all other definitions with priorities above 10
-to be discarded.  The function <varname>mkForce</varname> is
-equal to <varname>mkOverride 50</varname>.</para>
-
-</simplesect>
-
-<simplesect><title>Merging configurations</title>
-
-<para>In conjunction with <literal>mkIf</literal>, it is sometimes
-useful for a module to return multiple sets of option definitions, to
-be merged together as if they were declared in separate modules.  This
-can be done using <varname>mkMerge</varname>:
-
-<programlisting>
-config = mkMerge
-  [ # Unconditional stuff.
-    { environment.systemPackages = [ <replaceable>...</replaceable> ];
-    }
-    # Conditional stuff.
-    (mkIf config.services.bla.enable {
-      environment.systemPackages = [ <replaceable>...</replaceable> ];
-    })
-  ];
-</programlisting>
-
-</para>
-
-</simplesect>
-
-</section>
-
-
-<section><title>Important options</title>
-
-<para>NixOS has many options, but some are of particular importance to
-module writers.</para>
-
-<variablelist>
-
-  <varlistentry>
-    <term><option>environment.etc</option></term>
-    <listitem>
-      <para>This set defines files in <filename>/etc</filename>.  A
-      typical use is:
-<programlisting>
-environment.etc."os-release".text =
-  ''
-    NAME=NixOS
-    <replaceable>...</replaceable>
-  '';
-</programlisting>
-      which causes a file named <filename>/etc/os-release</filename>
-      to be created with the given contents.</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><option>system.activationScripts</option></term>
-    <listitem>
-      <para>A set of shell script fragments that must be executed
-      whenever the configuration is activated (i.e., at boot time, or
-      after running <command>nixos-rebuild switch</command>).  For instance,
-<programlisting>
-system.activationScripts.media =
-  ''
-    mkdir -m 0755 -p /media
-  '';
-</programlisting>
-      causes the directory <filename>/media</filename> to be created.
-      Activation scripts must be idempotent.  They should not start
-      background processes such as daemons; use
-      <option>systemd.services</option> for that.</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><option>systemd.services</option></term>
-    <listitem>
-      <para>This is the set of systemd services.  Example:
-<programlisting>
-systemd.services.dhcpcd =
-  { description = "DHCP Client";
-    wantedBy = [ "multi-user.target" ];
-    after = [ "systemd-udev-settle.service" ];
-    path = [ dhcpcd pkgs.nettools pkgs.openresolv ];
-    serviceConfig =
-      { Type = "forking";
-        PIDFile = "/run/dhcpcd.pid";
-        ExecStart = "${dhcpcd}/sbin/dhcpcd --config ${dhcpcdConf}";
-        Restart = "always";
-      };
-  };
-</programlisting>
-      which creates the systemd unit
-      <literal>dhcpcd.service</literal>.  The option
-      <option>wantedBy</option> determined which other units pull this
-      one in; <literal>multi-user.target</literal> is the default
-      target of the system, so <literal>dhcpcd.service</literal> will
-      always be started.  The option
-      <option>serviceConfig.ExecStart</option> provides the main
-      command for the service; it’s also possible to provide pre-start
-      actions, stop scripts, and so on.</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><option>users.extraUsers</option></term>
-    <term><option>users.extraGroups</option></term>
-    <listitem>
-      <para>If your service requires special UIDs or GIDs, you can
-      define them with these options.  See <xref
-      linkend="sec-user-management"/> for details.</para>
-    </listitem>
-  </varlistentry>
-
-</variablelist>
-
-</section>
-
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-building-parts">
-
-<title>Building specific parts of NixOS</title>
-
-<para>With the command <command>nix-build</command>, you can build
-specific parts of your NixOS configuration.  This is done as follows:
-
-<screen>
-$ cd <replaceable>/path/to/nixpkgs/nixos</replaceable>
-$ nix-build -A config.<replaceable>option</replaceable></screen>
-
-where <replaceable>option</replaceable> is a NixOS option with type
-“derivation” (i.e. something that can be built).  Attributes of
-interest include:
-
-<variablelist>
-
-  <varlistentry>
-    <term><varname>system.build.toplevel</varname></term>
-    <listitem>
-      <para>The top-level option that builds the entire NixOS system.
-      Everything else in your configuration is indirectly pulled in by
-      this option.  This is what <command>nixos-rebuild</command>
-      builds and what <filename>/run/current-system</filename> points
-      to afterwards.</para>
-
-      <para>A shortcut to build this is:
-
-<screen>
-$ nix-build -A system</screen>
-      </para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><varname>system.build.manual.manual</varname></term>
-    <listitem><para>The NixOS manual.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><varname>system.build.etc</varname></term>
-    <listitem><para>A tree of symlinks that form the static parts of
-    <filename>/etc</filename>.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><varname>system.build.initialRamdisk</varname></term>
-    <term><varname>system.build.kernel</varname></term>
-    <listitem>
-      <para>The initial ramdisk and kernel of the system.  This allows
-      a quick way to test whether the kernel and the initial ramdisk
-      boot correctly, by using QEMU’s <option>-kernel</option> and
-      <option>-initrd</option> options:
-
-<screen>
-$ nix-build -A config.system.build.initialRamdisk -o initrd
-$ nix-build -A config.system.build.kernel -o kernel
-$ qemu-system-x86_64 -kernel ./kernel/bzImage -initrd ./initrd/initrd -hda /dev/null
-</screen>
-
-      </para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><varname>system.build.nixos-rebuild</varname></term>
-    <term><varname>system.build.nixos-install</varname></term>
-    <term><varname>system.build.nixos-generate-config</varname></term>
-    <listitem>
-      <para>These build the corresponding NixOS commands.</para>
-    </listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><varname>systemd.units.<replaceable>unit-name</replaceable>.unit</varname></term>
-    <listitem>
-      <para>This builds the unit with the specified name.  Note that
-      since unit names contain dots
-      (e.g. <literal>httpd.service</literal>), you need to put them
-      between quotes, like this:
-
-<screen>
-$ nix-build -A 'config.systemd.units."httpd.service".unit'
-</screen>
-
-      You can also test individual units, without rebuilding the whole
-      system, by putting them in
-      <filename>/run/systemd/system</filename>:
-
-<screen>
-$ cp $(nix-build -A 'config.systemd.units."httpd.service".unit')/httpd.service \
-    /run/systemd/system/tmp-httpd.service
-$ systemctl daemon-reload
-$ systemctl start tmp-httpd.service
-</screen>
-
-      Note that the unit must not have the same name as any unit in
-      <filename>/etc/systemd/system</filename> since those take
-      precedence over <filename>/run/systemd/system</filename>.
-      That’s why the unit is installed as
-      <filename>tmp-httpd.service</filename> here.</para>
-    </listitem>
-  </varlistentry>
-
-</variablelist>
-
-</para>
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-building-cd">
-
-<title>Building your own NixOS CD</title>
-
-<para>Building a NixOS CD is as easy as configuring your own computer. The
-idea is to use another module which will replace
-your <filename>configuration.nix</filename> to configure the system that
-would be installed on the CD.</para>
-
-<para>Default CD/DVD configurations are available
-inside <filename>nixos/modules/installer/cd-dvd</filename>.  To build them
-you have to set <envar>NIXOS_CONFIG</envar> before
-running <command>nix-build</command> to build the ISO.
-
-<screen>
-$ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd-dvd/installation-cd-minimal.nix</screen>
-
-</para>
-
-<para>Before burning your CD/DVD, you can check the content of the image by mounting anywhere like
-suggested by the following command:
-
-<screen>
-$ mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso</screen>
-
-</para>
-
-</section>
-
-
-<!--===============================================================-->
-
-<section>
-
-<title>Testing the installer</title>
-
-<para>Building, burning, and booting from an installation CD is rather
-tedious, so here is a quick way to see if the installer works
-properly:
-
-<screen>
-$ nix-build -A config.system.build.nixos-install
-$ mount -t tmpfs none /mnt
-$ ./result/bin/nixos-install</screen>
-
-To start a login shell in the new NixOS installation in
-<filename>/mnt</filename>:
-
-<screen>
-$ ./result/bin/nixos-install --chroot
-</screen>
-
-</para>
-
-</section>
-
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-nixos-tests">
-
-<title>NixOS tests</title>
-
-<para>When you add some feature to NixOS, you should write a test for
-it. NixOS tests are kept in the directory <filename
-xlink:href="https://github.com/NixOS/nixpkgs/tree/master/nixos/tests">nixos/tests</filename>,
-and are executed (using Nix) by a testing framework that automatically
-starts one or more virtual machines containing the NixOS system(s)
-required for the test.</para>
-
-<simplesect><title>Writing tests</title>
-
-<para>A NixOS test is a Nix expression that has the following structure:
-
-<programlisting>
-import ./make-test.nix {
-
-  # Either the configuration of a single machine:
-  machine =
-    { config, pkgs, ... }:
-    { <replaceable>configuration…</replaceable>
-    };
-
-  # Or a set of machines:
-  nodes =
-    { <replaceable>machine1</replaceable> =
-        { config, pkgs, ... }: { <replaceable>…</replaceable> };
-      <replaceable>machine2</replaceable> =
-        { config, pkgs, ... }: { <replaceable>…</replaceable> };
-      …
-    };
-
-  testScript =
-    ''
-      <replaceable>Perl code…</replaceable>
-    '';
-}
-</programlisting>
-
-The attribute <literal>testScript</literal> is a bit of Perl code that
-executes the test (described below). During the test, it will start
-one or more virtual machines, the configuration of which is described
-by the attribute <literal>machine</literal> (if you need only one
-machine in your test) or by the attribute <literal>nodes</literal> (if
-you need multiple machines). For instance, <filename
-xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/login.nix">login.nix</filename>
-only needs a single machine to test whether users can log in on the
-virtual console, whether device ownership is correctly maintained when
-switching between consoles, and so on. On the other hand, <filename
-xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/nfs.nix">nfs.nix</filename>,
-which tests NFS client and server functionality in the Linux kernel
-(including whether locks are maintained across server crashes),
-requires three machines: a server and two clients.</para>
-
-<para>There are a few special NixOS configuration options for test
-VMs:
-
-<!-- FIXME: would be nice to generate this automatically. -->
-
-<variablelist>
-
-  <varlistentry>
-    <term><option>virtualisation.memorySize</option></term>
-    <listitem><para>The memory of the VM in
-    megabytes.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><option>virtualisation.vlans</option></term>
-    <listitem><para>The virtual networks to which the VM is
-    connected. See <filename
-    xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/nat.nix">nat.nix</filename>
-    for an example.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><option>virtualisation.writableStore</option></term>
-    <listitem><para>By default, the Nix store in the VM is not
-    writable. If you enable this option, a writable union file system
-    is mounted on top of the Nix store to make it appear
-    writable. This is necessary for tests that run Nix operations that
-    modify the store.</para></listitem>
-  </varlistentry>
-
-</variablelist>
-
-For more options, see the module <filename
-xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/virtualisation/qemu-vm.nix">qemu-vm.nix</filename>.</para>
-
-<para>The test script is a sequence of Perl statements that perform
-various actions, such as starting VMs, executing commands in the VMs,
-and so on. Each virtual machine is represented as an object stored in
-the variable <literal>$<replaceable>name</replaceable></literal>,
-where <replaceable>name</replaceable> is the identifier of the machine
-(which is just <literal>machine</literal> if you didn’t specify
-multiple machines using the <literal>nodes</literal> attribute). For
-instance, the following starts the machine, waits until it has
-finished booting, then executes a command and checks that the output
-is more-or-less correct:
-
-<programlisting>
-$machine->start;
-$machine->waitForUnit("default.target");
-$machine->succeed("uname") =~ /Linux/;
-</programlisting>
-
-The first line is actually unnecessary; machines are implicitly
-started when you first execute an action on them (such as
-<literal>waitForUnit</literal> or <literal>succeed</literal>). If you
-have multiple machines, you can speed up the test by starting them in
-parallel:
-
-<programlisting>
-startAll;
-</programlisting>
-
-</para>
-
-<para>The following methods are available on machine objects:
-
-<variablelist>
-
-  <varlistentry>
-    <term><methodname>start</methodname></term>
-    <listitem><para>Start the virtual machine. This method is
-    asynchronous — it does not wait for the machine to finish
-    booting.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>shutdown</methodname></term>
-    <listitem><para>Shut down the machine, waiting for the VM to
-    exit.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>crash</methodname></term>
-    <listitem><para>Simulate a sudden power failure, by telling the VM
-    to exit immediately.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>block</methodname></term>
-    <listitem><para>Simulate unplugging the Ethernet cable that
-    connects the machine to the other machines.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>unblock</methodname></term>
-    <listitem><para>Undo the effect of
-    <methodname>block</methodname>.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>screenshot</methodname></term>
-    <listitem><para>Take a picture of the display of the virtual
-    machine, in PNG format. The screenshot is linked from the HTML
-    log.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>sendMonitorCommand</methodname></term>
-    <listitem><para>Send a command to the QEMU monitor. This is rarely
-    used, but allows doing stuff such as attaching virtual USB disks
-    to a running machine.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>sendKeys</methodname></term>
-    <listitem><para>Simulate pressing keys on the virtual keyboard,
-    e.g., <literal>sendKeys("ctrl-alt-delete")</literal>.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>sendChars</methodname></term>
-    <listitem><para>Simulate typing a sequence of characters on the
-    virtual keyboard, e.g., <literal>sendKeys("foobar\n")</literal>
-    will type the string <literal>foobar</literal> followed by the
-    Enter key.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>execute</methodname></term>
-    <listitem><para>Execute a shell command, returning a list
-    <literal>(<replaceable>status</replaceable>,
-    <replaceable>stdout</replaceable>)</literal>.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>succeed</methodname></term>
-    <listitem><para>Execute a shell command, raising an exception if
-    the exit status is not zero, otherwise returning the standard
-    output.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>fail</methodname></term>
-    <listitem><para>Like <methodname>succeed</methodname>, but raising
-    an exception if the command returns a zero status.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>waitUntilSucceeds</methodname></term>
-    <listitem><para>Repeat a shell command with 1-second intervals
-    until it succeeds.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>waitUntilFails</methodname></term>
-    <listitem><para>Repeat a shell command with 1-second intervals
-    until it fails.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>waitForUnit</methodname></term>
-    <listitem><para>Wait until the specified systemd unit has reached
-    the “active” state.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>waitForFile</methodname></term>
-    <listitem><para>Wait until the specified file
-    exists.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>waitForOpenPort</methodname></term>
-    <listitem><para>Wait until a process is listening on the given TCP
-    port (on <literal>localhost</literal>, at least).</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>waitForClosedPort</methodname></term>
-    <listitem><para>Wait until nobody is listening on the given TCP
-    port.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>waitForX</methodname></term>
-    <listitem><para>Wait until the X11 server is accepting
-    connections.</para></listitem>
-  </varlistentry>
-
-  <varlistentry>
-    <term><methodname>waitForWindow</methodname></term>
-    <listitem><para>Wait until an X11 window has appeared whose name
-    matches the given regular expression, e.g.,
-    <literal>waitForWindow(qr/Terminal/)</literal>.</para></listitem>
-  </varlistentry>
-
-</variablelist>
-
-</para>
-
-</simplesect>
-
-
-<simplesect><title>Running tests</title>
-
-<para>You can run tests using <command>nix-build</command>. For
-example, to run the test <filename
-xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/login.nix">login.nix</filename>,
-you just do:
-
-<screen>
-$ nix-build '&lt;nixpkgs/nixos/tests/login.nix>'
-</screen>
-
-or, if you don’t want to rely on <envar>NIX_PATH</envar>:
-
-<screen>
-$ cd /my/nixpkgs/nixos/tests
-$ nix-build login.nix
-…
-running the VM test script
-machine: QEMU running (pid 8841)
-…
-6 out of 6 tests succeeded
-</screen>
-
-After building/downloading all required dependencies, this will
-perform a build that starts a QEMU/KVM virtual machine containing a
-NixOS system. The virtual machine mounts the Nix store of the host;
-this makes VM creation very fast, as no disk image needs to be
-created. Afterwards, you can view a pretty-printed log of the test:
-
-<screen>
-$ firefox result/log.html
-</screen>
-
-</para>
-
-<para>It is also possible to run the test environment interactively,
-allowing you to experiment with the VMs.  For example:
-
-<screen>
-$ nix-build login.nix -A driver
-$ ./result/bin/nixos-run-vms
-</screen>
-
-The script <command>nixos-run-vms</command> starts the virtual
-machines defined by test.  The root file system of the VMs is created
-on the fly and kept across VM restarts in
-<filename>./</filename><varname>hostname</varname><filename>.qcow2</filename>.</para>
-
-<para>Finally, the test itself can be run interactively.  This is
-particularly useful when developing or debugging a test:
-
-<screen>
-$ nix-build tests/ -A nfs.driver
-$ ./result/bin/nixos-test-driver
-starting VDE switch for network 1
-&gt;
-</screen>
-
-You can then take any Perl statement, e.g.
-
-<screen>
-&gt; startAll
-&gt; $machine->succeed("touch /tmp/foo")
-</screen>
-
-The function <command>testScript</command> executes the entire test
-script and drops you back into the test driver command line upon its
-completion.  This allows you to inspect the state of the VMs after the
-test (e.g. to debug the test script).</para>
-
-</simplesect>
-
-</section>
-
-
-</chapter>
diff --git a/nixos/doc/manual/development/building-nixos.xml b/nixos/doc/manual/development/building-nixos.xml
new file mode 100644
index 000000000000..21c5bfe6a5b1
--- /dev/null
+++ b/nixos/doc/manual/development/building-nixos.xml
@@ -0,0 +1,32 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-building-cd">
+
+<title>Building Your Own NixOS CD</title>
+
+<para>Building a NixOS CD is as easy as configuring your own computer. The
+idea is to use another module which will replace
+your <filename>configuration.nix</filename> to configure the system that
+would be installed on the CD.</para>
+
+<para>Default CD/DVD configurations are available
+inside <filename>nixos/modules/installer/cd-dvd</filename>.  To build them
+you have to set <envar>NIXOS_CONFIG</envar> before
+running <command>nix-build</command> to build the ISO.
+
+<screen>
+$ nix-build -A config.system.build.isoImage -I nixos-config=modules/installer/cd-dvd/installation-cd-minimal.nix</screen>
+
+</para>
+
+<para>Before burning your CD/DVD, you can check the content of the image by mounting anywhere like
+suggested by the following command:
+
+<screen>
+$ mount -o loop -t iso9660 ./result/iso/cd.iso /mnt/iso</screen>
+
+</para>
+
+</chapter>
\ No newline at end of file
diff --git a/nixos/doc/manual/development/building-parts.xml b/nixos/doc/manual/development/building-parts.xml
new file mode 100644
index 000000000000..cb8dee039c8e
--- /dev/null
+++ b/nixos/doc/manual/development/building-parts.xml
@@ -0,0 +1,113 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-building-parts">
+
+<title>Building Specific Parts of NixOS</title>
+
+<para>With the command <command>nix-build</command>, you can build
+specific parts of your NixOS configuration.  This is done as follows:
+
+<screen>
+$ cd <replaceable>/path/to/nixpkgs/nixos</replaceable>
+$ nix-build -A config.<replaceable>option</replaceable></screen>
+
+where <replaceable>option</replaceable> is a NixOS option with type
+“derivation” (i.e. something that can be built).  Attributes of
+interest include:
+
+<variablelist>
+
+  <varlistentry>
+    <term><varname>system.build.toplevel</varname></term>
+    <listitem>
+      <para>The top-level option that builds the entire NixOS system.
+      Everything else in your configuration is indirectly pulled in by
+      this option.  This is what <command>nixos-rebuild</command>
+      builds and what <filename>/run/current-system</filename> points
+      to afterwards.</para>
+
+      <para>A shortcut to build this is:
+
+<screen>
+$ nix-build -A system</screen>
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><varname>system.build.manual.manual</varname></term>
+    <listitem><para>The NixOS manual.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><varname>system.build.etc</varname></term>
+    <listitem><para>A tree of symlinks that form the static parts of
+    <filename>/etc</filename>.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><varname>system.build.initialRamdisk</varname></term>
+    <term><varname>system.build.kernel</varname></term>
+    <listitem>
+      <para>The initial ramdisk and kernel of the system.  This allows
+      a quick way to test whether the kernel and the initial ramdisk
+      boot correctly, by using QEMU’s <option>-kernel</option> and
+      <option>-initrd</option> options:
+
+<screen>
+$ nix-build -A config.system.build.initialRamdisk -o initrd
+$ nix-build -A config.system.build.kernel -o kernel
+$ qemu-system-x86_64 -kernel ./kernel/bzImage -initrd ./initrd/initrd -hda /dev/null
+</screen>
+
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><varname>system.build.nixos-rebuild</varname></term>
+    <term><varname>system.build.nixos-install</varname></term>
+    <term><varname>system.build.nixos-generate-config</varname></term>
+    <listitem>
+      <para>These build the corresponding NixOS commands.</para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><varname>systemd.units.<replaceable>unit-name</replaceable>.unit</varname></term>
+    <listitem>
+      <para>This builds the unit with the specified name.  Note that
+      since unit names contain dots
+      (e.g. <literal>httpd.service</literal>), you need to put them
+      between quotes, like this:
+
+<screen>
+$ nix-build -A 'config.systemd.units."httpd.service".unit'
+</screen>
+
+      You can also test individual units, without rebuilding the whole
+      system, by putting them in
+      <filename>/run/systemd/system</filename>:
+
+<screen>
+$ cp $(nix-build -A 'config.systemd.units."httpd.service".unit')/httpd.service \
+    /run/systemd/system/tmp-httpd.service
+$ systemctl daemon-reload
+$ systemctl start tmp-httpd.service
+</screen>
+
+      Note that the unit must not have the same name as any unit in
+      <filename>/etc/systemd/system</filename> since those take
+      precedence over <filename>/run/systemd/system</filename>.
+      That’s why the unit is installed as
+      <filename>tmp-httpd.service</filename> here.</para>
+    </listitem>
+  </varlistentry>
+
+</variablelist>
+
+</para>
+
+</chapter>
\ No newline at end of file
diff --git a/nixos/doc/manual/development/development.xml b/nixos/doc/manual/development/development.xml
new file mode 100644
index 000000000000..747159c44270
--- /dev/null
+++ b/nixos/doc/manual/development/development.xml
@@ -0,0 +1,20 @@
+<part   xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="ch-development">
+
+<title>Development</title>
+
+<partintro>
+<para>This chapter describes how you can modify and extend
+NixOS.</para>
+</partintro>
+
+<xi:include href="sources.xml" />
+<xi:include href="writing-modules.xml" />
+<xi:include href="building-parts.xml" />
+<xi:include href="building-nixos.xml" />
+<xi:include href="testing-installer.xml" />
+
+</part>
diff --git a/nixos/doc/manual/development/nixos-tests.xml b/nixos/doc/manual/development/nixos-tests.xml
new file mode 100644
index 000000000000..a98da9933309
--- /dev/null
+++ b/nixos/doc/manual/development/nixos-tests.xml
@@ -0,0 +1,19 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-nixos-tests">
+
+<title>NixOS Tests</title>
+
+<para>When you add some feature to NixOS, you should write a test for
+it. NixOS tests are kept in the directory <filename
+xlink:href="https://github.com/NixOS/nixpkgs/tree/master/nixos/tests">nixos/tests</filename>,
+and are executed (using Nix) by a testing framework that automatically
+starts one or more virtual machines containing the NixOS system(s)
+required for the test.</para>
+
+<xi:include href="writing-nixos-tests.xml" />
+<xi:include href="running-nixos-tests.xml" />
+
+</chapter>
\ No newline at end of file
diff --git a/nixos/doc/manual/development/option-declarations.xml b/nixos/doc/manual/development/option-declarations.xml
new file mode 100644
index 000000000000..6d93dc5c0094
--- /dev/null
+++ b/nixos/doc/manual/development/option-declarations.xml
@@ -0,0 +1,141 @@
+<section xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-option-declarations">
+
+<title>Option Declarations</title>
+
+<para>An option declaration specifies the name, type and description
+of a NixOS configuration option.  It is illegal to define an option
+that hasn’t been declared in any module.  A option declaration
+generally looks like this:
+
+<programlisting>
+options = {
+  <replaceable>name</replaceable> = mkOption {
+    type = <replaceable>type specification</replaceable>;
+    default = <replaceable>default value</replaceable>;
+    example = <replaceable>example value</replaceable>;
+    description = "<replaceable>Description for use in the NixOS manual.</replaceable>";
+  };
+};
+</programlisting>
+
+</para>
+
+<para>The function <varname>mkOption</varname> accepts the following arguments.
+
+<variablelist>
+
+  <varlistentry>
+    <term><varname>type</varname></term>
+    <listitem>
+      <para>The type of the option (see below).  It may be omitted,
+      but that’s not advisable since it may lead to errors that are
+      hard to diagnose.</para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><varname>default</varname></term>
+    <listitem>
+      <para>The default value used if no value is defined by any
+      module.  A default is not required; in that case, if the option
+      value is ever used, an error will be thrown.</para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><varname>example</varname></term>
+    <listitem>
+      <para>An example value that will be shown in the NixOS manual.</para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><varname>description</varname></term>
+    <listitem>
+      <para>A textual description of the option, in DocBook format,
+      that will be included in the NixOS manual.</para>
+    </listitem>
+  </varlistentry>
+
+</variablelist>
+
+</para>
+
+<para>Here is a non-exhaustive list of option types:
+
+<variablelist>
+
+  <varlistentry>
+    <term><varname>types.bool</varname></term>
+    <listitem>
+      <para>A Boolean.</para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><varname>types.int</varname></term>
+    <listitem>
+      <para>An integer.</para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><varname>types.str</varname></term>
+    <listitem>
+      <para>A string.</para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><varname>types.lines</varname></term>
+    <listitem>
+      <para>A string.  If there are multiple definitions, they are
+      concatenated, with newline characters in between.</para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><varname>types.path</varname></term>
+    <listitem>
+      <para>A path, defined as anything that, when coerced to a
+      string, starts with a slash.  This includes derivations.</para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><varname>types.listOf</varname> <replaceable>t</replaceable></term>
+    <listitem>
+      <para>A list of elements of type <replaceable>t</replaceable>
+      (e.g., <literal>types.listOf types.str</literal> is a list of
+      strings).  Multiple definitions are concatenated together.</para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><varname>types.attrsOf</varname> <replaceable>t</replaceable></term>
+    <listitem>
+      <para>A set of elements of type <replaceable>t</replaceable>
+      (e.g., <literal>types.attrsOf types.int</literal> is a set of
+      name/value pairs, the values being integers).</para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><varname>types.nullOr</varname> <replaceable>t</replaceable></term>
+    <listitem>
+      <para>Either the value <literal>null</literal> or something of
+      type <replaceable>t</replaceable>.</para>
+    </listitem>
+  </varlistentry>
+
+</variablelist>
+
+You can also create new types using the function
+<varname>mkOptionType</varname>.  See
+<filename>lib/types.nix</filename> in Nixpkgs for details.</para>
+
+</section>
\ No newline at end of file
diff --git a/nixos/doc/manual/development/option-def.xml b/nixos/doc/manual/development/option-def.xml
new file mode 100644
index 000000000000..4e267ecfd1e3
--- /dev/null
+++ b/nixos/doc/manual/development/option-def.xml
@@ -0,0 +1,112 @@
+<section xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-option-definitions">
+
+<title>Option Definitions</title>
+
+<para>Option definitions are generally straight-forward bindings of values to option names, like
+
+<programlisting>
+config = {
+  services.httpd.enable = true;
+};
+</programlisting>
+
+However, sometimes you need to wrap an option definition or set of
+option definitions in a <emphasis>property</emphasis> to achieve
+certain effects:</para>
+
+<simplesect><title>Delaying Conditionals</title>
+
+<para>If a set of option definitions is conditional on the value of
+another option, you may need to use <varname>mkIf</varname>.
+Consider, for instance:
+
+<programlisting>
+config = if config.services.httpd.enable then {
+  environment.systemPackages = [ <replaceable>...</replaceable> ];
+  <replaceable>...</replaceable>
+} else {};
+</programlisting>
+
+This definition will cause Nix to fail with an “infinite recursion”
+error.  Why?  Because the value of
+<option>config.services.httpd.enable</option> depends on the value
+being constructed here.  After all, you could also write the clearly
+circular and contradictory:
+<programlisting>
+config = if config.services.httpd.enable then {
+  services.httpd.enable = false;
+} else {
+  services.httpd.enable = true;
+};
+</programlisting>
+
+The solution is to write:
+
+<programlisting>
+config = mkIf config.services.httpd.enable {
+  environment.systemPackages = [ <replaceable>...</replaceable> ];
+  <replaceable>...</replaceable>
+};
+</programlisting>
+
+The special function <varname>mkIf</varname> causes the evaluation of
+the conditional to be “pushed down” into the individual definitions,
+as if you had written:
+
+<programlisting>
+config = {
+  environment.systemPackages = if config.services.httpd.enable then [ <replaceable>...</replaceable> ] else [];
+  <replaceable>...</replaceable>
+};
+</programlisting>
+
+</para>
+
+</simplesect>
+
+<simplesect><title>Setting Priorities</title>
+
+<para>A module can override the definitions of an option in other
+modules by setting a <emphasis>priority</emphasis>.  All option
+definitions that do not have the lowest priority value are discarded.
+By default, option definitions have priority 1000.  You can specify an
+explicit priority by using <varname>mkOverride</varname>, e.g.
+
+<programlisting>
+services.openssh.enable = mkOverride 10 false;
+</programlisting>
+
+This definition causes all other definitions with priorities above 10
+to be discarded.  The function <varname>mkForce</varname> is
+equal to <varname>mkOverride 50</varname>.</para>
+
+</simplesect>
+
+<simplesect><title>Merging Configurations</title>
+
+<para>In conjunction with <literal>mkIf</literal>, it is sometimes
+useful for a module to return multiple sets of option definitions, to
+be merged together as if they were declared in separate modules.  This
+can be done using <varname>mkMerge</varname>:
+
+<programlisting>
+config = mkMerge
+  [ # Unconditional stuff.
+    { environment.systemPackages = [ <replaceable>...</replaceable> ];
+    }
+    # Conditional stuff.
+    (mkIf config.services.bla.enable {
+      environment.systemPackages = [ <replaceable>...</replaceable> ];
+    })
+  ];
+</programlisting>
+
+</para>
+
+</simplesect>
+
+</section>
\ No newline at end of file
diff --git a/nixos/doc/manual/development/running-nixos-tests.xml b/nixos/doc/manual/development/running-nixos-tests.xml
new file mode 100644
index 000000000000..d9be761eb01d
--- /dev/null
+++ b/nixos/doc/manual/development/running-nixos-tests.xml
@@ -0,0 +1,77 @@
+<section xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-running-nixos-tests">
+
+<title>Running Tests</title>
+
+<para>You can run tests using <command>nix-build</command>. For
+example, to run the test <filename
+xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/login.nix">login.nix</filename>,
+you just do:
+
+<screen>
+$ nix-build '&lt;nixpkgs/nixos/tests/login.nix>'
+</screen>
+
+or, if you don’t want to rely on <envar>NIX_PATH</envar>:
+
+<screen>
+$ cd /my/nixpkgs/nixos/tests
+$ nix-build login.nix
+…
+running the VM test script
+machine: QEMU running (pid 8841)
+…
+6 out of 6 tests succeeded
+</screen>
+
+After building/downloading all required dependencies, this will
+perform a build that starts a QEMU/KVM virtual machine containing a
+NixOS system. The virtual machine mounts the Nix store of the host;
+this makes VM creation very fast, as no disk image needs to be
+created. Afterwards, you can view a pretty-printed log of the test:
+
+<screen>
+$ firefox result/log.html
+</screen>
+
+</para>
+
+<para>It is also possible to run the test environment interactively,
+allowing you to experiment with the VMs.  For example:
+
+<screen>
+$ nix-build login.nix -A driver
+$ ./result/bin/nixos-run-vms
+</screen>
+
+The script <command>nixos-run-vms</command> starts the virtual
+machines defined by test.  The root file system of the VMs is created
+on the fly and kept across VM restarts in
+<filename>./</filename><varname>hostname</varname><filename>.qcow2</filename>.</para>
+
+<para>Finally, the test itself can be run interactively.  This is
+particularly useful when developing or debugging a test:
+
+<screen>
+$ nix-build tests/ -A nfs.driver
+$ ./result/bin/nixos-test-driver
+starting VDE switch for network 1
+&gt;
+</screen>
+
+You can then take any Perl statement, e.g.
+
+<screen>
+&gt; startAll
+&gt; $machine->succeed("touch /tmp/foo")
+</screen>
+
+The function <command>testScript</command> executes the entire test
+script and drops you back into the test driver command line upon its
+completion.  This allows you to inspect the state of the VMs after the
+test (e.g. to debug the test script).</para>
+
+</section>
\ No newline at end of file
diff --git a/nixos/doc/manual/development/sources.xml b/nixos/doc/manual/development/sources.xml
new file mode 100644
index 000000000000..992a07af9813
--- /dev/null
+++ b/nixos/doc/manual/development/sources.xml
@@ -0,0 +1,95 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-getting-sources">
+
+<title>Getting the Sources</title>
+
+<para>By default, NixOS’s <command>nixos-rebuild</command> command
+uses the NixOS and Nixpkgs sources provided by the
+<literal>nixos-unstable</literal> channel (kept in
+<filename>/nix/var/nix/profiles/per-user/root/channels/nixos</filename>).
+To modify NixOS, however, you should check out the latest sources from
+Git.  This is done using the following command:
+
+<screen>
+$ nixos-checkout <replaceable>/my/sources</replaceable>
+</screen>
+
+or
+
+<screen>
+$ mkdir -p <replaceable>/my/sources</replaceable>
+$ cd <replaceable>/my/sources</replaceable>
+$ nix-env -i git
+$ git clone git://github.com/NixOS/nixpkgs.git
+</screen>
+
+This will check out the latest NixOS sources to
+<filename><replaceable>/my/sources</replaceable>/nixpkgs/nixos</filename>
+and the Nixpkgs sources to
+<filename><replaceable>/my/sources</replaceable>/nixpkgs</filename>.
+(The NixOS source tree lives in a subdirectory of the Nixpkgs
+repository.)</para>
+
+<para>It’s often inconvenient to develop directly on the master
+branch, since if somebody has just committed (say) a change to GCC,
+then the binary cache may not have caught up yet and you’ll have to
+rebuild everything from source. So you may want to create a local
+branch based on your current NixOS version:
+
+<screen>
+$ nixos-version
+14.04.273.ea1952b (Baboon)
+
+$ git checkout -b local ea1952b
+</screen>
+
+Or, to base your local branch on the latest version available in the
+NixOS channel:
+
+<screen>
+$ curl -sI http://nixos.org/channels/nixos-unstable/ | grep Location
+Location: http://releases.nixos.org/nixos/unstable/nixos-14.10pre43986.acaf4a6/
+
+$ git checkout -b local acaf4a6
+</screen>
+
+You can then use <command>git rebase</command> to sync your local
+branch with the upstream branch, and use <command>git
+cherry-pick</command> to copy commits from your local branch to the
+upstream branch.</para>
+
+<para>If you want to rebuild your system using your (modified)
+sources, you need to tell <command>nixos-rebuild</command> about them
+using the <option>-I</option> flag:
+
+<screen>
+$ nixos-rebuild switch -I nixpkgs=<replaceable>/my/sources</replaceable>/nixpkgs
+</screen>
+
+</para>
+
+<para>If you want <command>nix-env</command> to use the expressions in
+<replaceable>/my/sources</replaceable>, use <command>nix-env -f
+<replaceable>/my/sources</replaceable>/nixpkgs</command>, or change
+the default by adding a symlink in
+<filename>~/.nix-defexpr</filename>:
+
+<screen>
+$ ln -s <replaceable>/my/sources</replaceable>/nixpkgs ~/.nix-defexpr/nixpkgs
+</screen>
+
+You may want to delete the symlink
+<filename>~/.nix-defexpr/channels_root</filename> to prevent root’s
+NixOS channel from clashing with your own tree.</para>
+
+<!-- FIXME: not sure what this means.
+<para>You should not pass the base directory
+<filename><replaceable>/my/sources</replaceable></filename>
+to <command>nix-env</command>, as it will break after interpreting expressions
+in <filename>nixos/</filename> as packages.</para>
+-->
+
+</chapter>
\ No newline at end of file
diff --git a/nixos/doc/manual/development/testing-installer.xml b/nixos/doc/manual/development/testing-installer.xml
new file mode 100644
index 000000000000..87e40e326171
--- /dev/null
+++ b/nixos/doc/manual/development/testing-installer.xml
@@ -0,0 +1,27 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="ch-testing-installer">
+
+<title>Testing the Installer</title>
+
+<para>Building, burning, and booting from an installation CD is rather
+tedious, so here is a quick way to see if the installer works
+properly:
+
+<screen>
+$ nix-build -A config.system.build.nixos-install
+$ mount -t tmpfs none /mnt
+$ ./result/bin/nixos-install</screen>
+
+To start a login shell in the new NixOS installation in
+<filename>/mnt</filename>:
+
+<screen>
+$ ./result/bin/nixos-install --chroot
+</screen>
+
+</para>
+
+</chapter>
\ No newline at end of file
diff --git a/nixos/doc/manual/development/writing-modules.xml b/nixos/doc/manual/development/writing-modules.xml
new file mode 100644
index 000000000000..9cf29e5dc57d
--- /dev/null
+++ b/nixos/doc/manual/development/writing-modules.xml
@@ -0,0 +1,175 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-writing-modules">
+
+<title>Writing NixOS Modules</title>
+
+<para>NixOS has a modular system for declarative configuration.  This
+system combines multiple <emphasis>modules</emphasis> to produce the
+full system configuration.  One of the modules that constitute the
+configuration is <filename>/etc/nixos/configuration.nix</filename>.
+Most of the others live in the <link
+xlink:href="https://github.com/NixOS/nixpkgs/tree/master/nixos/modules"><filename>nixos/modules</filename></link>
+subdirectory of the Nixpkgs tree.</para>
+
+<para>Each NixOS module is a file that handles one logical aspect of
+the configuration, such as a specific kind of hardware, a service, or
+network settings.  A module configuration does not have to handle
+everything from scratch; it can use the functionality provided by
+other modules for its implementation.  Thus a module can
+<emphasis>declare</emphasis> options that can be used by other
+modules, and conversely can <emphasis>define</emphasis> options
+provided by other modules in its own implementation.  For example, the
+module <link
+xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/security/pam.nix"><filename>pam.nix</filename></link>
+declares the option <option>security.pam.services</option> that allows
+other modules (e.g. <link
+xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/networking/ssh/sshd.nix"><filename>sshd.nix</filename></link>)
+to define PAM services; and it defines the option
+<option>environment.etc</option> (declared by <link
+xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/system/etc/etc.nix"><filename>etc.nix</filename></link>)
+to cause files to be created in
+<filename>/etc/pam.d</filename>.</para>
+
+<para xml:id="para-module-syn">In <xref
+linkend="sec-configuration-syntax"/>, we saw the following structure
+of NixOS modules:
+
+<programlisting>
+{ config, pkgs, ... }:
+
+{ <replaceable>option definitions</replaceable>
+}
+</programlisting>
+
+This is actually an <emphasis>abbreviated</emphasis> form of module
+that only defines options, but does not declare any.  The structure of
+full NixOS modules is shown in <xref linkend='ex-module-syntax' />.</para>
+
+<example xml:id='ex-module-syntax'><title>Structure of NixOS Modules</title>
+<programlisting>
+{ config, pkgs, ... }: <co xml:id='module-syntax-1' />
+
+{
+  imports =
+    [ <replaceable>paths of other modules</replaceable> <co xml:id='module-syntax-2' />
+    ];
+
+  options = {
+    <replaceable>option declarations</replaceable> <co xml:id='module-syntax-3' />
+  };
+
+  config = {
+    <replaceable>option definitions</replaceable> <co xml:id='module-syntax-4' />
+  };
+}</programlisting>
+</example>
+
+<para>The meaning of each part is as follows.
+
+<calloutlist>
+  <callout arearefs='module-syntax-1'>
+    <para>This line makes the current Nix expression a function.  The
+    variable <varname>pkgs</varname> contains Nixpkgs, while
+    <varname>config</varname> contains the full system configuration.
+    This line can be omitted if there is no reference to
+    <varname>pkgs</varname> and <varname>config</varname> inside the
+    module.</para>
+  </callout>
+
+  <callout arearefs='module-syntax-2'>
+    <para>This list enumerates the paths to other NixOS modules that
+    should be included in the evaluation of the system configuration.
+    A default set of modules is defined in the file
+    <filename>modules/module-list.nix</filename>.  These don't need to
+    be added in the import list.</para>
+  </callout>
+
+  <callout arearefs='module-syntax-3'>
+    <para>The attribute <varname>options</varname> is a nested set of
+    <emphasis>option declarations</emphasis> (described below).</para>
+  </callout>
+
+  <callout arearefs='module-syntax-4'>
+    <para>The attribute <varname>config</varname> is a nested set of
+    <emphasis>option definitions</emphasis> (also described
+    below).</para>
+  </callout>
+</calloutlist>
+
+</para>
+
+<para><xref linkend='locate-example' /> shows a module that handles
+the regular update of the “locate” database, an index of all files in
+the file system.  This module declares two options that can be defined
+by other modules (typically the user’s
+<filename>configuration.nix</filename>):
+<option>services.locate.enable</option> (whether the database should
+be updated) and <option>services.locate.period</option> (when the
+update should be done).  It implements its functionality by defining
+two options declared by other modules:
+<option>systemd.services</option> (the set of all systemd services)
+and <option>services.cron.systemCronJobs</option> (the list of
+commands to be executed periodically by <command>cron</command>).</para>
+
+<example xml:id='locate-example'><title>NixOS Module for the “locate” Service</title>
+<programlisting>
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let locatedb = "/var/cache/locatedb"; in
+
+{
+  options = {
+
+    services.locate = {
+
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          If enabled, NixOS will periodically update the database of
+          files used by the <command>locate</command> command.
+        '';
+      };
+
+      period = mkOption {
+        type = types.str;
+        default = "15 02 * * *";
+        description = ''
+          This option defines (in the format used by cron) when the
+          locate database is updated.  The default is to update at
+          02:15 at night every day.
+        '';
+      };
+
+    };
+
+  };
+
+  config = {
+
+    systemd.services.update-locatedb =
+      { description = "Update Locate Database";
+        path  = [ pkgs.su ];
+        script =
+          ''
+            mkdir -m 0755 -p $(dirname ${locatedb})
+            exec updatedb --localuser=nobody --output=${locatedb} --prunepaths='/tmp /var/tmp /media /run'
+          '';
+      };
+
+    services.cron.systemCronJobs = optional config.services.locate.enable
+      "${config.services.locate.period} root ${config.systemd.package}/bin/systemctl start update-locatedb.service";
+
+  };
+}</programlisting>
+</example>
+
+<xi:include href="option-declarations.xml" />
+<xi:include href="option-def.xml" />
+
+</chapter>
\ No newline at end of file
diff --git a/nixos/doc/manual/development/writing-nixos-tests.xml b/nixos/doc/manual/development/writing-nixos-tests.xml
new file mode 100644
index 000000000000..bbb655eed2a6
--- /dev/null
+++ b/nixos/doc/manual/development/writing-nixos-tests.xml
@@ -0,0 +1,251 @@
+<section xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-writing-nixos-tests">
+
+<title>Writing Tests</title>
+
+<para>A NixOS test is a Nix expression that has the following structure:
+
+<programlisting>
+import ./make-test.nix {
+
+  # Either the configuration of a single machine:
+  machine =
+    { config, pkgs, ... }:
+    { <replaceable>configuration…</replaceable>
+    };
+
+  # Or a set of machines:
+  nodes =
+    { <replaceable>machine1</replaceable> =
+        { config, pkgs, ... }: { <replaceable>…</replaceable> };
+      <replaceable>machine2</replaceable> =
+        { config, pkgs, ... }: { <replaceable>…</replaceable> };
+      …
+    };
+
+  testScript =
+    ''
+      <replaceable>Perl code…</replaceable>
+    '';
+}
+</programlisting>
+
+The attribute <literal>testScript</literal> is a bit of Perl code that
+executes the test (described below). During the test, it will start
+one or more virtual machines, the configuration of which is described
+by the attribute <literal>machine</literal> (if you need only one
+machine in your test) or by the attribute <literal>nodes</literal> (if
+you need multiple machines). For instance, <filename
+xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/login.nix">login.nix</filename>
+only needs a single machine to test whether users can log in on the
+virtual console, whether device ownership is correctly maintained when
+switching between consoles, and so on. On the other hand, <filename
+xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/nfs.nix">nfs.nix</filename>,
+which tests NFS client and server functionality in the Linux kernel
+(including whether locks are maintained across server crashes),
+requires three machines: a server and two clients.</para>
+
+<para>There are a few special NixOS configuration options for test
+VMs:
+
+<!-- FIXME: would be nice to generate this automatically. -->
+
+<variablelist>
+
+  <varlistentry>
+    <term><option>virtualisation.memorySize</option></term>
+    <listitem><para>The memory of the VM in
+    megabytes.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><option>virtualisation.vlans</option></term>
+    <listitem><para>The virtual networks to which the VM is
+    connected. See <filename
+    xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/nat.nix">nat.nix</filename>
+    for an example.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><option>virtualisation.writableStore</option></term>
+    <listitem><para>By default, the Nix store in the VM is not
+    writable. If you enable this option, a writable union file system
+    is mounted on top of the Nix store to make it appear
+    writable. This is necessary for tests that run Nix operations that
+    modify the store.</para></listitem>
+  </varlistentry>
+
+</variablelist>
+
+For more options, see the module <filename
+xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/virtualisation/qemu-vm.nix">qemu-vm.nix</filename>.</para>
+
+<para>The test script is a sequence of Perl statements that perform
+various actions, such as starting VMs, executing commands in the VMs,
+and so on. Each virtual machine is represented as an object stored in
+the variable <literal>$<replaceable>name</replaceable></literal>,
+where <replaceable>name</replaceable> is the identifier of the machine
+(which is just <literal>machine</literal> if you didn’t specify
+multiple machines using the <literal>nodes</literal> attribute). For
+instance, the following starts the machine, waits until it has
+finished booting, then executes a command and checks that the output
+is more-or-less correct:
+
+<programlisting>
+$machine->start;
+$machine->waitForUnit("default.target");
+$machine->succeed("uname") =~ /Linux/;
+</programlisting>
+
+The first line is actually unnecessary; machines are implicitly
+started when you first execute an action on them (such as
+<literal>waitForUnit</literal> or <literal>succeed</literal>). If you
+have multiple machines, you can speed up the test by starting them in
+parallel:
+
+<programlisting>
+startAll;
+</programlisting>
+
+</para>
+
+<para>The following methods are available on machine objects:
+
+<variablelist>
+
+  <varlistentry>
+    <term><methodname>start</methodname></term>
+    <listitem><para>Start the virtual machine. This method is
+    asynchronous — it does not wait for the machine to finish
+    booting.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>shutdown</methodname></term>
+    <listitem><para>Shut down the machine, waiting for the VM to
+    exit.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>crash</methodname></term>
+    <listitem><para>Simulate a sudden power failure, by telling the VM
+    to exit immediately.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>block</methodname></term>
+    <listitem><para>Simulate unplugging the Ethernet cable that
+    connects the machine to the other machines.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>unblock</methodname></term>
+    <listitem><para>Undo the effect of
+    <methodname>block</methodname>.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>screenshot</methodname></term>
+    <listitem><para>Take a picture of the display of the virtual
+    machine, in PNG format. The screenshot is linked from the HTML
+    log.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>sendMonitorCommand</methodname></term>
+    <listitem><para>Send a command to the QEMU monitor. This is rarely
+    used, but allows doing stuff such as attaching virtual USB disks
+    to a running machine.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>sendKeys</methodname></term>
+    <listitem><para>Simulate pressing keys on the virtual keyboard,
+    e.g., <literal>sendKeys("ctrl-alt-delete")</literal>.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>sendChars</methodname></term>
+    <listitem><para>Simulate typing a sequence of characters on the
+    virtual keyboard, e.g., <literal>sendKeys("foobar\n")</literal>
+    will type the string <literal>foobar</literal> followed by the
+    Enter key.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>execute</methodname></term>
+    <listitem><para>Execute a shell command, returning a list
+    <literal>(<replaceable>status</replaceable>,
+    <replaceable>stdout</replaceable>)</literal>.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>succeed</methodname></term>
+    <listitem><para>Execute a shell command, raising an exception if
+    the exit status is not zero, otherwise returning the standard
+    output.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>fail</methodname></term>
+    <listitem><para>Like <methodname>succeed</methodname>, but raising
+    an exception if the command returns a zero status.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>waitUntilSucceeds</methodname></term>
+    <listitem><para>Repeat a shell command with 1-second intervals
+    until it succeeds.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>waitUntilFails</methodname></term>
+    <listitem><para>Repeat a shell command with 1-second intervals
+    until it fails.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>waitForUnit</methodname></term>
+    <listitem><para>Wait until the specified systemd unit has reached
+    the “active” state.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>waitForFile</methodname></term>
+    <listitem><para>Wait until the specified file
+    exists.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>waitForOpenPort</methodname></term>
+    <listitem><para>Wait until a process is listening on the given TCP
+    port (on <literal>localhost</literal>, at least).</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>waitForClosedPort</methodname></term>
+    <listitem><para>Wait until nobody is listening on the given TCP
+    port.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>waitForX</methodname></term>
+    <listitem><para>Wait until the X11 server is accepting
+    connections.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term><methodname>waitForWindow</methodname></term>
+    <listitem><para>Wait until an X11 window has appeared whose name
+    matches the given regular expression, e.g.,
+    <literal>waitForWindow(qr/Terminal/)</literal>.</para></listitem>
+  </varlistentry>
+
+</variablelist>
+
+</para>
+
+</section>
\ No newline at end of file
diff --git a/nixos/doc/manual/installation.xml b/nixos/doc/manual/installation.xml
deleted file mode 100644
index 4cbfcc229fa4..000000000000
--- a/nixos/doc/manual/installation.xml
+++ /dev/null
@@ -1,570 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="ch-installation">
-
-<title>Installing NixOS</title>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-obtaining">
-
-<title>Obtaining NixOS</title>
-
-<para>NixOS ISO images can be downloaded from the <link
-xlink:href="http://nixos.org/nixos/download.html">NixOS
-homepage</link>.  These can be burned onto a CD.  It is also possible
-to copy them onto a USB stick and install NixOS from there.  For
-details, see the <link
-xlink:href="https://nixos.org/wiki/Installing_NixOS_from_a_USB_stick">NixOS
-Wiki</link>.</para>
-
-<para>As an alternative to installing NixOS yourself, you can get a
-running NixOS system through several other means:
-
-<itemizedlist>
-  <listitem>
-    <para>Using virtual appliances in Open Virtualization Format (OVF)
-    that can be imported into VirtualBox.  These are available from
-    the <link xlink:href="http://nixos.org/nixos/download.html">NixOS
-    homepage</link>.</para>
-  </listitem>
-  <listitem>
-    <para>Using AMIs for Amazon’s EC2.  To find one for your region
-    and instance type, please refer to the <link
-    xlink:href="https://github.com/NixOS/nixops/blob/master/nix/ec2-amis.nix">list
-    of most recent AMIs</link>.</para>
-  </listitem>
-  <listitem>
-    <para>Using NixOps, the NixOS-based cloud deployment tool, which
-    allows you to provision VirtualBox and EC2 NixOS instances from
-    declarative specifications.  Check out the <link
-    xlink:href="https://github.com/NixOS/nixops">NixOps
-    homepage</link> for details.</para>
-  </listitem>
-</itemizedlist>
-
-</para>
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-installation">
-
-<title>Installation</title>
-
-<orderedlist>
-
-  <listitem><para>Boot from the CD.</para></listitem>
-
-  <listitem><para>The CD contains a basic NixOS installation.  (It
-  also contains Memtest86+, useful if you want to test new hardware.)
-  When it’s finished booting, it should have detected most of your
-  hardware and brought up networking (check
-  <command>ifconfig</command>).  Networking is necessary for the
-  installer, since it will download lots of stuff (such as source
-  tarballs or Nixpkgs channel binaries).  It’s best if you have a DHCP
-  server on your network.  Otherwise configure networking manually
-  using <command>ifconfig</command>.</para></listitem>
-
-  <listitem><para>The NixOS manual is available on virtual console 8
-  (press Alt+F8 to access).</para></listitem>
-
-  <listitem><para>Login as <literal>root</literal> and the empty
-  password.</para></listitem>
-
-  <listitem><para>If you downloaded the graphical ISO image, you can
-  run <command>start display-manager</command> to start KDE.</para></listitem>
-
-  <listitem><para>The NixOS installer doesn’t do any partitioning or
-  formatting yet, so you need to that yourself.  Use the following
-  commands:
-
-  <itemizedlist>
-
-    <listitem><para>For partitioning:
-    <command>fdisk</command>.</para></listitem>
-
-    <listitem><para>For initialising Ext4 partitions:
-    <command>mkfs.ext4</command>.  It is recommended that you assign a
-    unique symbolic label to the file system using the option
-    <option>-L <replaceable>label</replaceable></option>, since this
-    makes the file system configuration independent from device
-    changes.  For example:
-
-<screen>
-$ mkfs.ext4 -L nixos /dev/sda1</screen>
-
-    </para></listitem>
-
-    <listitem><para>For creating swap partitions:
-    <command>mkswap</command>.  Again it’s recommended to assign a
-    label to the swap partition: <option>-L
-    <replaceable>label</replaceable></option>.</para></listitem>
-
-    <listitem><para>For creating LVM volumes, the LVM commands, e.g.,
-
-<screen>
-$ pvcreate /dev/sda1 /dev/sdb1
-$ vgcreate MyVolGroup /dev/sda1 /dev/sdb1
-$ lvcreate --size 2G --name bigdisk MyVolGroup
-$ lvcreate --size 1G --name smalldisk MyVolGroup</screen>
-
-    </para></listitem>
-
-    <listitem><para>For creating software RAID devices, use
-    <command>mdadm</command>.</para></listitem>
-
-  </itemizedlist>
-
-  </para></listitem>
-
-  <listitem><para>Mount the target file system on which NixOS should
-  be installed on <filename>/mnt</filename>, e.g.
-
-<screen>
-$ mount /dev/disk/by-label/nixos /mnt
-</screen>
-
-  </para></listitem>
-
-  <listitem><para>If your machine has a limited amount of memory, you
-  may want to activate swap devices now (<command>swapon
-  <replaceable>device</replaceable></command>).  The installer (or
-  rather, the build actions that it may spawn) may need quite a bit of
-  RAM, depending on your configuration.</para></listitem>
-
-  <listitem>
-
-    <para>You now need to create a file
-    <filename>/mnt/etc/nixos/configuration.nix</filename> that
-    specifies the intended configuration of the system.  This is
-    because NixOS has a <emphasis>declarative</emphasis> configuration
-    model: you create or edit a description of the desired
-    configuration of your system, and then NixOS takes care of making
-    it happen.  The syntax of the NixOS configuration file is
-    described in <xref linkend="sec-configuration-syntax"/>, while a
-    list of available configuration options appears in <xref
-    linkend="ch-options"/>.  A minimal example is shown in <xref
-    linkend="ex-config"/>.</para>
-
-    <para>The command <command>nixos-generate-config</command> can
-    generate an initial configuration file for you:
-
-<screen>
-$ nixos-generate-config --root /mnt</screen>
-
-    You should then edit
-    <filename>/mnt/etc/nixos/configuration.nix</filename> to suit your
-    needs:
-
-<screen>
-$ nano /mnt/etc/nixos/configuration.nix
-</screen>
-
-    The <command>vim</command> text editor is also available.</para>
-
-    <para>You <emphasis>must</emphasis> set the option
-    <option>boot.loader.grub.device</option> to specify on which disk
-    the GRUB boot loader is to be installed.  Without it, NixOS cannot
-    boot.</para>
-
-    <para>Another critical option is <option>fileSystems</option>,
-    specifying the file systems that need to be mounted by NixOS.
-    However, you typically don’t need to set it yourself, because
-    <command>nixos-generate-config</command> sets it automatically in
-    <filename>/mnt/etc/nixos/hardware-configuration.nix</filename>
-    from your currently mounted file systems.  (The configuration file
-    <filename>hardware-configuration.nix</filename> is included from
-    <filename>configuration.nix</filename> and will be overwritten by
-    future invocations of <command>nixos-generate-config</command>;
-    thus, you generally should not modify it.)</para>
-
-    <note><para>Depending on your hardware configuration or type of
-    file system, you may need to set the option
-    <option>boot.initrd.kernelModules</option> to include the kernel
-    modules that are necessary for mounting the root file system,
-    otherwise the installed system will not be able to boot.  (If this
-    happens, boot from the CD again, mount the target file system on
-    <filename>/mnt</filename>, fix
-    <filename>/mnt/etc/nixos/configuration.nix</filename> and rerun
-    <filename>nixos-install</filename>.)  In most cases,
-    <command>nixos-generate-config</command> will figure out the
-    required modules.</para></note>
-
-    <para>Examples of real-world NixOS configuration files can be
-    found at <link
-    xlink:href="https://nixos.org/repos/nix/configurations/trunk/"/>.</para>
-
-  </listitem>
-
-  <listitem><para>Do the installation:
-
-<screen>
-$ nixos-install</screen>
-
-    Cross fingers.  If this fails due to a temporary problem (such as
-    a network issue while downloading binaries from the NixOS binary
-    cache), you can just re-run <command>nixos-install</command>.
-    Otherwise, fix your <filename>configuration.nix</filename> and
-    then re-run <command>nixos-install</command>.</para>
-
-    <para>As the last step, <command>nixos-install</command> will ask
-    you to set the password for the <literal>root</literal> user, e.g.
-
-<screen>
-setting root password...
-Enter new UNIX password: ***
-Retype new UNIX password: ***
-</screen>
-
-    </para>
-
-  </listitem>
-
-  <listitem><para>If everything went well:
-
-<screen>
-$ reboot</screen>
-
-  </para></listitem>
-
-  <listitem>
-
-    <para>You should now be able to boot into the installed NixOS.
-    The GRUB boot menu shows a list of <emphasis>available
-    configurations</emphasis> (initially just one).  Every time you
-    change the NixOS configuration (see <xref
-    linkend="sec-changing-config" />), a new item appears in the menu.
-    This allows you to easily roll back to another configuration if
-    something goes wrong.</para>
-
-    <para>You should log in and change the <literal>root</literal>
-    password with <command>passwd</command>.</para>
-
-    <para>You’ll probably want to create some user accounts as well,
-    which can be done with <command>useradd</command>:
-
-<screen>
-$ useradd -c 'Eelco Dolstra' -m eelco
-$ passwd eelco</screen>
-
-    </para>
-
-    <para>You may also want to install some software.  For instance,
-
-<screen>
-$ nix-env -qa \*</screen>
-
-    shows what packages are available, and
-
-<screen>
-$ nix-env -i w3m</screen>
-
-    install the <literal>w3m</literal> browser.</para>
-
-  </listitem>
-
-</orderedlist>
-
-<para>To summarise, <xref linkend="ex-install-sequence" /> shows a
-typical sequence of commands for installing NixOS on an empty hard
-drive (here <filename>/dev/sda</filename>).  <xref linkend="ex-config"
-/> shows a corresponding configuration Nix expression.</para>
-
-<example xml:id='ex-install-sequence'><title>Commands for installing NixOS on <filename>/dev/sda</filename></title>
-<screen>
-$ fdisk /dev/sda # <lineannotation>(or whatever device you want to install on)</lineannotation>
-$ mkfs.ext4 -L nixos /dev/sda1
-$ mkswap -L swap /dev/sda2
-$ swapon /dev/sda2
-$ mount /dev/disk/by-label/nixos /mnt
-$ nixos-generate-config --root /mnt
-$ nano /mnt/etc/nixos/configuration.nix
-$ nixos-install
-$ reboot</screen>
-</example>
-
-<example xml:id='ex-config'><title>NixOS configuration</title>
-<screen>
-{ config, pkgs, ... }:
-
-{
-  imports =
-    [ # Include the results of the hardware scan.
-      ./hardware-configuration.nix
-    ];
-
-  boot.loader.grub.device = "/dev/sda";
-
-  # Note: setting fileSystems is generally not
-  # necessary, since nixos-generate-config figures them out
-  # automatically in hardware-configuration.nix.
-  #fileSystems."/".device = "/dev/disk/by-label/nixos";
-
-  # Enable the OpenSSH server.
-  services.sshd.enable = true;
-}</screen>
-</example>
-
-<section xml:id="sec-uefi-installation">
-
-<title>UEFI Installation</title>
-
-<para>NixOS can also be installed on UEFI systems.  The procedure
-is by and large the same as a BIOS installation, with the following
-changes:
-
-<itemizedlist>
-  <listitem>
-    <para>You should boot the live CD in UEFI mode (consult your
-    specific hardware's documentation for instructions). You may find
-    the <link
-    xlink:href="http://www.rodsbooks.com/refind">rEFInd
-    boot manager</link> useful.</para>
-  </listitem>
-  <listitem>
-    <para>Instead of <command>fdisk</command>, you should use
-    <command>gdisk</command> to partition your disks. You will need to
-    have a separate partition for <filename>/boot</filename> with
-    partition code EF00, and it should be formatted as a
-    <literal>vfat</literal> filesystem.</para>
-  </listitem>
-  <listitem>
-    <para>You must set <option>boot.loader.gummiboot.enable</option> to
-    <literal>true</literal>. <command>nixos-generate-config</command>
-    should do this automatically for new configurations when booted in
-    UEFI mode.</para>
-  </listitem>
-  <listitem>
-    <para>After having mounted your installation partition to
-    <code>/mnt</code>, you must mount the <code>boot</code> partition
-    to <code>/mnt/boot</code>.</para>
-  </listitem>
-  <listitem>
-    <para>You may want to look at the options starting with
-    <option>boot.loader.efi</option> and <option>boot.loader.gummiboot</option>
-    as well.</para>
-  </listitem>
-  <listitem>
-    <para>To see console messages during early boot, add <literal>"fbcon"</literal>
-    to your <option>boot.initrd.kernelModules</option>.</para>
-  </listitem>
-</itemizedlist>
-</para>
-
-</section>
-
-<section>
-
-<title xml:id="sec-booting-from-usb">Booting from a USB stick</title>
-
-<para>For systems without CD drive, the NixOS livecd can be booted from
-a usb stick. For non-UEFI installations,
-<link xlink:href="http://unetbootin.sourceforge.net/">unetbootin</link>
-will work. For UEFI installations, you should mount the ISO, copy its contents
-verbatim to your drive, then either:
-
-<itemizedlist>
-  <listitem>
-    <para>Change the label of the disk partition to the label of the ISO
-    (visible with the blkid command), or</para>
-  </listitem>
-  <listitem>
-    <para>Edit <filename>loader/entries/nixos-livecd.conf</filename> on the drive
-    and change the <literal>root=</literal> field in the <literal>options</literal>
-    line to point to your drive (see the documentation on <literal>root=</literal>
-    in <link xlink:href="https://www.kernel.org/doc/Documentation/kernel-parameters.txt">
-    the kernel documentation</link> for more details).</para>
-  </listitem>
-</itemizedlist>
-</para>
-</section>
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-changing-config">
-
-<title>Changing the configuration</title>
-
-<para>The file <filename>/etc/nixos/configuration.nix</filename>
-contains the current configuration of your machine.  Whenever you’ve
-changed something to that file, you should do
-
-<screen>
-$ nixos-rebuild switch</screen>
-
-to build the new configuration, make it the default configuration for
-booting, and try to realise the configuration in the running system
-(e.g., by restarting system services).</para>
-
-<warning><para>These commands must be executed as root, so you should
-either run them from a root shell or by prefixing them with
-<literal>sudo -i</literal>.</para></warning>
-
-<para>You can also do
-
-<screen>
-$ nixos-rebuild test</screen>
-
-to build the configuration and switch the running system to it, but
-without making it the boot default.  So if (say) the configuration
-locks up your machine, you can just reboot to get back to a working
-configuration.</para>
-
-<para>There is also
-
-<screen>
-$ nixos-rebuild boot</screen>
-
-to build the configuration and make it the boot default, but not
-switch to it now (so it will only take effect after the next
-reboot).</para>
-
-<para>You can make your configuration show up in a different submenu
-of the GRUB 2 boot screen by giving it a different <emphasis>profile
-name</emphasis>, e.g.
-
-<screen>
-$ nixos-rebuild switch -p test </screen>
-
-which causes the new configuration (and previous ones created using
-<literal>-p test</literal>) to show up in the GRUB submenu “NixOS -
-Profile 'test'”.  This can be useful to separate test configurations
-from “stable” configurations.</para>
-
-<para>Finally, you can do
-
-<screen>
-$ nixos-rebuild build</screen>
-
-to build the configuration but nothing more.  This is useful to see
-whether everything compiles cleanly.</para>
-
-<para>If you have a machine that supports hardware virtualisation, you
-can also test the new configuration in a sandbox by building and
-running a QEMU <emphasis>virtual machine</emphasis> that contains the
-desired configuration.  Just do
-
-<screen>
-$ nixos-rebuild build-vm
-$ ./result/bin/run-*-vm
-</screen>
-
-The VM does not have any data from your host system, so your existing
-user accounts and home directories will not be available.  You can
-forward ports on the host to the guest.  For instance, the following
-will forward host port 2222 to guest port 22 (SSH):
-
-<screen>
-$ QEMU_NET_OPTS="hostfwd=tcp::2222-:22" ./result/bin/run-*-vm
-</screen>
-
-allowing you to log in via SSH (assuming you have set the appropriate
-passwords or SSH authorized keys):
-
-<screen>
-$ ssh -p 2222 localhost
-</screen>
-
-</para>
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-upgrading">
-
-<title>Upgrading NixOS</title>
-
-<para>The best way to keep your NixOS installation up to date is to
-use one of the NixOS <emphasis>channels</emphasis>.  A channel is a
-Nix mechanism for distributing Nix expressions and associated
-binaries.  The NixOS channels are updated automatically from NixOS’s
-Git repository after certain tests have passed and all packages have
-been built.  These channels are:
-
-<itemizedlist>
-  <listitem>
-    <para>Stable channels, such as <literal
-    xlink:href="http://nixos.org/channels/nixos-14.04">nixos-14.04</literal>.
-    These only get conservative bug fixes and package upgrades.  For
-    instance, a channel update may cause the Linux kernel on your
-    system to be upgraded from 3.4.66 to 3.4.67 (a minor bug fix), but
-    not from 3.4.<replaceable>x</replaceable> to
-    3.11.<replaceable>x</replaceable> (a major change that has the
-    potential to break things).  Stable channels are generally
-    maintained until the next stable branch is created.</para>
-  </listitem>
-  <listitem>
-    <para>The unstable channel, <literal
-    xlink:href="http://nixos.org/channels/nixos-unstable">nixos-unstable</literal>.
-    This corresponds to NixOS’s main development branch, and may thus
-    see radical changes between channel updates.  It’s not recommended
-    for production systems.</para>
-  </listitem>
-</itemizedlist>
-
-To see what channels are available, go to <link
-xlink:href="http://nixos.org/channels"/>.  (Note that the URIs of the
-various channels redirect to a directory that contains the channel’s
-latest version and includes ISO images and VirtualBox
-appliances.)</para>
-
-<para>When you first install NixOS, you’re automatically subscribed to
-the NixOS channel that corresponds to your installation source.   For
-instance, if you installed from a 14.04 ISO, you will be subscribed to
-the <literal>nixos-14.04</literal> channel.  To see which NixOS
-channel you’re subscribed to, run the following as root:
-
-<screen>
-$ nix-channel --list | grep nixos
-nixos https://nixos.org/channels/nixos-unstable
-</screen>
-
-To switch to a different NixOS channel, do
-
-<screen>
-$ nix-channel --add http://nixos.org/channels/<replaceable>channel-name</replaceable> nixos
-</screen>
-
-(Be sure to include the <literal>nixos</literal> parameter at the
-end.)  For instance, to use the NixOS 14.04 stable channel:
-
-<screen>
-$ nix-channel --add http://nixos.org/channels/nixos-14.04 nixos
-</screen>
-
-But it you want to live on the bleeding edge:
-
-<screen>
-$ nix-channel --add http://nixos.org/channels/nixos-unstable nixos
-</screen>
-
-</para>
-
-<para>You can then upgrade NixOS to the latest version in your chosen
-channel by running
-
-<screen>
-$ nixos-rebuild switch --upgrade
-</screen>
-
-which is equivalent to the more verbose <literal>nix-channel --update
-nixos; nixos-rebuild switch</literal>.</para>
-
-<warning><para>It is generally safe to switch back and forth between
-channels.  The only exception is that a newer NixOS may also have a
-newer Nix version, which may involve an upgrade of Nix’s database
-schema.  This cannot be undone easily, so in that case you will not be
-able to go back to your original channel.</para></warning>
-
-</section>
-
-</chapter>
diff --git a/nixos/doc/manual/installation/changing-config.xml b/nixos/doc/manual/installation/changing-config.xml
new file mode 100644
index 000000000000..aa31742434e4
--- /dev/null
+++ b/nixos/doc/manual/installation/changing-config.xml
@@ -0,0 +1,90 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         version="5.0"
+         xml:id="sec-changing-config">
+
+<title>Changing the Configuration</title>
+
+<para>The file <filename>/etc/nixos/configuration.nix</filename>
+contains the current configuration of your machine.  Whenever you’ve
+changed something to that file, you should do
+
+<screen>
+$ nixos-rebuild switch</screen>
+
+to build the new configuration, make it the default configuration for
+booting, and try to realise the configuration in the running system
+(e.g., by restarting system services).</para>
+
+<warning><para>These commands must be executed as root, so you should
+either run them from a root shell or by prefixing them with
+<literal>sudo -i</literal>.</para></warning>
+
+<para>You can also do
+
+<screen>
+$ nixos-rebuild test</screen>
+
+to build the configuration and switch the running system to it, but
+without making it the boot default.  So if (say) the configuration
+locks up your machine, you can just reboot to get back to a working
+configuration.</para>
+
+<para>There is also
+
+<screen>
+$ nixos-rebuild boot</screen>
+
+to build the configuration and make it the boot default, but not
+switch to it now (so it will only take effect after the next
+reboot).</para>
+
+<para>You can make your configuration show up in a different submenu
+of the GRUB 2 boot screen by giving it a different <emphasis>profile
+name</emphasis>, e.g.
+
+<screen>
+$ nixos-rebuild switch -p test </screen>
+
+which causes the new configuration (and previous ones created using
+<literal>-p test</literal>) to show up in the GRUB submenu “NixOS -
+Profile 'test'”.  This can be useful to separate test configurations
+from “stable” configurations.</para>
+
+<para>Finally, you can do
+
+<screen>
+$ nixos-rebuild build</screen>
+
+to build the configuration but nothing more.  This is useful to see
+whether everything compiles cleanly.</para>
+
+<para>If you have a machine that supports hardware virtualisation, you
+can also test the new configuration in a sandbox by building and
+running a QEMU <emphasis>virtual machine</emphasis> that contains the
+desired configuration.  Just do
+
+<screen>
+$ nixos-rebuild build-vm
+$ ./result/bin/run-*-vm
+</screen>
+
+The VM does not have any data from your host system, so your existing
+user accounts and home directories will not be available.  You can
+forward ports on the host to the guest.  For instance, the following
+will forward host port 2222 to guest port 22 (SSH):
+
+<screen>
+$ QEMU_NET_OPTS="hostfwd=tcp::2222-:22" ./result/bin/run-*-vm
+</screen>
+
+allowing you to log in via SSH (assuming you have set the appropriate
+passwords or SSH authorized keys):
+
+<screen>
+$ ssh -p 2222 localhost
+</screen>
+
+</para>
+
+</chapter>
diff --git a/nixos/doc/manual/installation/installation.xml b/nixos/doc/manual/installation/installation.xml
new file mode 100644
index 000000000000..ee61bedc4183
--- /dev/null
+++ b/nixos/doc/manual/installation/installation.xml
@@ -0,0 +1,21 @@
+<part xmlns="http://docbook.org/ns/docbook"
+      xmlns:xlink="http://www.w3.org/1999/xlink"
+      xmlns:xi="http://www.w3.org/2001/XInclude"
+      version="5.0"
+      xml:id="ch-installation">
+
+<title>Installation</title>
+
+<partintro>
+
+<para>This section describes how to obtain, install, and configure
+NixOS for first-time use.</para>
+
+</partintro>
+
+<xi:include href="obtaining.xml" />
+<xi:include href="installing.xml" />
+<xi:include href="changing-config.xml" />
+<xi:include href="upgrading.xml" />
+
+</part>
diff --git a/nixos/doc/manual/installation/installing-uefi.xml b/nixos/doc/manual/installation/installing-uefi.xml
new file mode 100644
index 000000000000..dbd5606c4a56
--- /dev/null
+++ b/nixos/doc/manual/installation/installing-uefi.xml
@@ -0,0 +1,51 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-uefi-installation">
+
+<title>UEFI Installation</title>
+    
+<para>NixOS can also be installed on UEFI systems.  The procedure
+is by and large the same as a BIOS installation, with the following
+changes:
+
+<itemizedlist>
+  <listitem>
+    <para>You should boot the live CD in UEFI mode (consult your
+    specific hardware's documentation for instructions). You may find
+    the <link
+    xlink:href="http://www.rodsbooks.com/refind">rEFInd
+    boot manager</link> useful.</para>
+  </listitem>
+  <listitem>
+    <para>Instead of <command>fdisk</command>, you should use
+    <command>gdisk</command> to partition your disks. You will need to
+    have a separate partition for <filename>/boot</filename> with
+    partition code EF00, and it should be formatted as a
+    <literal>vfat</literal> filesystem.</para>
+  </listitem>
+  <listitem>
+    <para>You must set <option>boot.loader.gummiboot.enable</option> to
+    <literal>true</literal>. <command>nixos-generate-config</command>
+    should do this automatically for new configurations when booted in
+    UEFI mode.</para>
+  </listitem>
+  <listitem>
+    <para>After having mounted your installation partition to
+    <code>/mnt</code>, you must mount the <code>boot</code> partition
+    to <code>/mnt/boot</code>.</para>
+  </listitem>
+  <listitem>
+    <para>You may want to look at the options starting with
+    <option>boot.loader.efi</option> and <option>boot.loader.gummiboot</option>
+    as well.</para>
+  </listitem>
+  <listitem>
+    <para>To see console messages during early boot, add <literal>"fbcon"</literal>
+    to your <option>boot.initrd.kernelModules</option>.</para>
+  </listitem>
+</itemizedlist>
+</para>
+
+</section>
diff --git a/nixos/doc/manual/installation/installing-usb.xml b/nixos/doc/manual/installation/installing-usb.xml
new file mode 100644
index 000000000000..97e3d2eaa1c0
--- /dev/null
+++ b/nixos/doc/manual/installation/installing-usb.xml
@@ -0,0 +1,30 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-booting-from-usb">
+
+<title>Booting from a USB Drive</title>
+
+<para>For systems without CD drive, the NixOS livecd can be booted from
+a usb stick. For non-UEFI installations,
+<link xlink:href="http://unetbootin.sourceforge.net/">unetbootin</link>
+will work. For UEFI installations, you should mount the ISO, copy its contents
+verbatim to your drive, then either:
+
+<itemizedlist>
+  <listitem>
+    <para>Change the label of the disk partition to the label of the ISO
+    (visible with the blkid command), or</para>
+  </listitem>
+  <listitem>
+    <para>Edit <filename>loader/entries/nixos-livecd.conf</filename> on the drive
+    and change the <literal>root=</literal> field in the <literal>options</literal>
+    line to point to your drive (see the documentation on <literal>root=</literal>
+    in <link xlink:href="https://www.kernel.org/doc/Documentation/kernel-parameters.txt">
+    the kernel documentation</link> for more details).</para>
+  </listitem>
+</itemizedlist>
+</para>
+
+</section>
diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml
new file mode 100644
index 000000000000..b140c56fbee1
--- /dev/null
+++ b/nixos/doc/manual/installation/installing.xml
@@ -0,0 +1,264 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+            xmlns:xlink="http://www.w3.org/1999/xlink"
+            xmlns:xi="http://www.w3.org/2001/XInclude"
+            version="5.0"
+            xml:id="sec-installation">
+
+<title>Installing NixOS</title>
+
+<orderedlist>
+
+  <listitem><para>Boot from the CD.</para></listitem>
+
+  <listitem><para>The CD contains a basic NixOS installation.  (It
+  also contains Memtest86+, useful if you want to test new hardware.)
+  When it’s finished booting, it should have detected most of your
+  hardware and brought up networking (check
+  <command>ifconfig</command>).  Networking is necessary for the
+  installer, since it will download lots of stuff (such as source
+  tarballs or Nixpkgs channel binaries).  It’s best if you have a DHCP
+  server on your network.  Otherwise configure networking manually
+  using <command>ifconfig</command>.</para></listitem>
+
+  <listitem><para>The NixOS manual is available on virtual console 8
+  (press Alt+F8 to access).</para></listitem>
+
+  <listitem><para>Login as <literal>root</literal> and the empty
+  password.</para></listitem>
+
+  <listitem><para>If you downloaded the graphical ISO image, you can
+  run <command>start display-manager</command> to start KDE.</para></listitem>
+
+  <listitem><para>The NixOS installer doesn’t do any partitioning or
+  formatting yet, so you need to that yourself.  Use the following
+  commands:
+
+  <itemizedlist>
+
+    <listitem><para>For partitioning:
+    <command>fdisk</command>.</para></listitem>
+
+    <listitem><para>For initialising Ext4 partitions:
+    <command>mkfs.ext4</command>.  It is recommended that you assign a
+    unique symbolic label to the file system using the option
+    <option>-L <replaceable>label</replaceable></option>, since this
+    makes the file system configuration independent from device
+    changes.  For example:
+
+<screen>
+$ mkfs.ext4 -L nixos /dev/sda1</screen>
+
+    </para></listitem>
+
+    <listitem><para>For creating swap partitions:
+    <command>mkswap</command>.  Again it’s recommended to assign a
+    label to the swap partition: <option>-L
+    <replaceable>label</replaceable></option>.</para></listitem>
+
+    <listitem><para>For creating LVM volumes, the LVM commands, e.g.,
+
+<screen>
+$ pvcreate /dev/sda1 /dev/sdb1
+$ vgcreate MyVolGroup /dev/sda1 /dev/sdb1
+$ lvcreate --size 2G --name bigdisk MyVolGroup
+$ lvcreate --size 1G --name smalldisk MyVolGroup</screen>
+
+    </para></listitem>
+
+    <listitem><para>For creating software RAID devices, use
+    <command>mdadm</command>.</para></listitem>
+
+  </itemizedlist>
+
+  </para></listitem>
+
+  <listitem><para>Mount the target file system on which NixOS should
+  be installed on <filename>/mnt</filename>, e.g.
+
+<screen>
+$ mount /dev/disk/by-label/nixos /mnt
+</screen>
+
+  </para></listitem>
+
+  <listitem><para>If your machine has a limited amount of memory, you
+  may want to activate swap devices now (<command>swapon
+  <replaceable>device</replaceable></command>).  The installer (or
+  rather, the build actions that it may spawn) may need quite a bit of
+  RAM, depending on your configuration.</para></listitem>
+
+  <listitem>
+
+    <para>You now need to create a file
+    <filename>/mnt/etc/nixos/configuration.nix</filename> that
+    specifies the intended configuration of the system.  This is
+    because NixOS has a <emphasis>declarative</emphasis> configuration
+    model: you create or edit a description of the desired
+    configuration of your system, and then NixOS takes care of making
+    it happen.  The syntax of the NixOS configuration file is
+    described in <xref linkend="sec-configuration-syntax"/>, while a
+    list of available configuration options appears in <xref
+    linkend="ch-options"/>.  A minimal example is shown in <xref
+    linkend="ex-config"/>.</para>
+
+    <para>The command <command>nixos-generate-config</command> can
+    generate an initial configuration file for you:
+
+<screen>
+$ nixos-generate-config --root /mnt</screen>
+
+    You should then edit
+    <filename>/mnt/etc/nixos/configuration.nix</filename> to suit your
+    needs:
+
+<screen>
+$ nano /mnt/etc/nixos/configuration.nix
+</screen>
+
+    The <command>vim</command> text editor is also available.</para>
+
+    <para>You <emphasis>must</emphasis> set the option
+    <option>boot.loader.grub.device</option> to specify on which disk
+    the GRUB boot loader is to be installed.  Without it, NixOS cannot
+    boot.</para>
+
+    <para>Another critical option is <option>fileSystems</option>,
+    specifying the file systems that need to be mounted by NixOS.
+    However, you typically don’t need to set it yourself, because
+    <command>nixos-generate-config</command> sets it automatically in
+    <filename>/mnt/etc/nixos/hardware-configuration.nix</filename>
+    from your currently mounted file systems.  (The configuration file
+    <filename>hardware-configuration.nix</filename> is included from
+    <filename>configuration.nix</filename> and will be overwritten by
+    future invocations of <command>nixos-generate-config</command>;
+    thus, you generally should not modify it.)</para>
+
+    <note><para>Depending on your hardware configuration or type of
+    file system, you may need to set the option
+    <option>boot.initrd.kernelModules</option> to include the kernel
+    modules that are necessary for mounting the root file system,
+    otherwise the installed system will not be able to boot.  (If this
+    happens, boot from the CD again, mount the target file system on
+    <filename>/mnt</filename>, fix
+    <filename>/mnt/etc/nixos/configuration.nix</filename> and rerun
+    <filename>nixos-install</filename>.)  In most cases,
+    <command>nixos-generate-config</command> will figure out the
+    required modules.</para></note>
+
+    <para>Examples of real-world NixOS configuration files can be
+    found at <link
+    xlink:href="https://nixos.org/repos/nix/configurations/trunk/"/>.</para>
+
+  </listitem>
+
+  <listitem><para>Do the installation:
+
+<screen>
+$ nixos-install</screen>
+
+    Cross fingers.  If this fails due to a temporary problem (such as
+    a network issue while downloading binaries from the NixOS binary
+    cache), you can just re-run <command>nixos-install</command>.
+    Otherwise, fix your <filename>configuration.nix</filename> and
+    then re-run <command>nixos-install</command>.</para>
+
+    <para>As the last step, <command>nixos-install</command> will ask
+    you to set the password for the <literal>root</literal> user, e.g.
+
+<screen>
+setting root password...
+Enter new UNIX password: ***
+Retype new UNIX password: ***
+</screen>
+
+    </para>
+
+  </listitem>
+
+  <listitem><para>If everything went well:
+
+<screen>
+$ reboot</screen>
+
+  </para></listitem>
+
+  <listitem>
+
+    <para>You should now be able to boot into the installed NixOS. The GRUB boot menu shows a list
+                of <emphasis>available configurations</emphasis> (initially just one). Every time
+                you change the NixOS configuration (see<link linkend="sec-changing-config">Changing
+                    Configuration</link> ), a new item appears in the menu. This allows you to
+                easily roll back to another configuration if something goes wrong.</para>
+
+    <para>You should log in and change the <literal>root</literal>
+    password with <command>passwd</command>.</para>
+
+    <para>You’ll probably want to create some user accounts as well,
+    which can be done with <command>useradd</command>:
+
+<screen>
+$ useradd -c 'Eelco Dolstra' -m eelco
+$ passwd eelco</screen>
+
+    </para>
+
+    <para>You may also want to install some software.  For instance,
+
+<screen>
+$ nix-env -qa \*</screen>
+
+    shows what packages are available, and
+
+<screen>
+$ nix-env -i w3m</screen>
+
+    install the <literal>w3m</literal> browser.</para>
+
+  </listitem>
+
+</orderedlist>
+
+<para>To summarise, <xref linkend="ex-install-sequence" /> shows a
+typical sequence of commands for installing NixOS on an empty hard
+drive (here <filename>/dev/sda</filename>).  <xref linkend="ex-config"
+/> shows a corresponding configuration Nix expression.</para>
+
+<example xml:id='ex-install-sequence'><title>Commands for Installing NixOS on <filename>/dev/sda</filename></title>
+<screen>
+$ fdisk /dev/sda # <lineannotation>(or whatever device you want to install on)</lineannotation>
+$ mkfs.ext4 -L nixos /dev/sda1
+$ mkswap -L swap /dev/sda2
+$ swapon /dev/sda2
+$ mount /dev/disk/by-label/nixos /mnt
+$ nixos-generate-config --root /mnt
+$ nano /mnt/etc/nixos/configuration.nix
+$ nixos-install
+$ reboot</screen>
+</example>
+
+<example xml:id='ex-config'><title>NixOS Configuration</title>
+<screen>
+{ config, pkgs, ... }:
+
+{
+  imports =
+    [ # Include the results of the hardware scan.
+      ./hardware-configuration.nix
+    ];
+
+  boot.loader.grub.device = "/dev/sda";
+
+  # Note: setting fileSystems is generally not
+  # necessary, since nixos-generate-config figures them out
+  # automatically in hardware-configuration.nix.
+  #fileSystems."/".device = "/dev/disk/by-label/nixos";
+
+  # Enable the OpenSSH server.
+  services.sshd.enable = true;
+}</screen>
+</example>
+
+<xi:include href="installing-uefi.xml" />
+<xi:include href="installing-usb.xml" />
+
+</chapter>
diff --git a/nixos/doc/manual/installation/obtaining.xml b/nixos/doc/manual/installation/obtaining.xml
new file mode 100644
index 000000000000..ceeeb5c0ac09
--- /dev/null
+++ b/nixos/doc/manual/installation/obtaining.xml
@@ -0,0 +1,44 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-obtaining">
+
+<title>Obtaining NixOS</title>
+
+<para>NixOS ISO images can be downloaded from the <link
+xlink:href="http://nixos.org/nixos/download.html">NixOS
+homepage</link>.  These can be burned onto a CD.  It is also possible
+to copy them onto a USB stick and install NixOS from there.  For
+details, see the <link
+xlink:href="https://nixos.org/wiki/Installing_NixOS_from_a_USB_stick">NixOS
+Wiki</link>.</para>
+
+<para>As an alternative to installing NixOS yourself, you can get a
+running NixOS system through several other means:
+
+<itemizedlist>
+  <listitem>
+    <para>Using virtual appliances in Open Virtualization Format (OVF)
+    that can be imported into VirtualBox.  These are available from
+    the <link xlink:href="http://nixos.org/nixos/download.html">NixOS
+    homepage</link>.</para>
+  </listitem>
+  <listitem>
+    <para>Using AMIs for Amazon’s EC2.  To find one for your region
+    and instance type, please refer to the <link
+    xlink:href="https://github.com/NixOS/nixops/blob/master/nix/ec2-amis.nix">list
+    of most recent AMIs</link>.</para>
+  </listitem>
+  <listitem>
+    <para>Using NixOps, the NixOS-based cloud deployment tool, which
+    allows you to provision VirtualBox and EC2 NixOS instances from
+    declarative specifications.  Check out the <link
+    xlink:href="https://github.com/NixOS/nixops">NixOps
+    homepage</link> for details.</para>
+  </listitem>
+</itemizedlist>
+
+</para>
+
+</chapter>
diff --git a/nixos/doc/manual/installation/upgrading.xml b/nixos/doc/manual/installation/upgrading.xml
new file mode 100644
index 000000000000..ed71a7e23a30
--- /dev/null
+++ b/nixos/doc/manual/installation/upgrading.xml
@@ -0,0 +1,90 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         version="5.0"
+         xml:id="sec-upgrading">
+
+<title>Upgrading NixOS</title>
+
+<para>The best way to keep your NixOS installation up to date is to
+use one of the NixOS <emphasis>channels</emphasis>.  A channel is a
+Nix mechanism for distributing Nix expressions and associated
+binaries.  The NixOS channels are updated automatically from NixOS’s
+Git repository after certain tests have passed and all packages have
+been built.  These channels are:
+
+<itemizedlist>
+  <listitem>
+    <para>Stable channels, such as <literal
+    xlink:href="http://nixos.org/channels/nixos-14.04">nixos-14.04</literal>.
+    These only get conservative bug fixes and package upgrades.  For
+    instance, a channel update may cause the Linux kernel on your
+    system to be upgraded from 3.4.66 to 3.4.67 (a minor bug fix), but
+    not from 3.4.<replaceable>x</replaceable> to
+    3.11.<replaceable>x</replaceable> (a major change that has the
+    potential to break things).  Stable channels are generally
+    maintained until the next stable branch is created.</para>
+  </listitem>
+  <listitem>
+    <para>The unstable channel, <literal
+    xlink:href="http://nixos.org/channels/nixos-unstable">nixos-unstable</literal>.
+    This corresponds to NixOS’s main development branch, and may thus
+    see radical changes between channel updates.  It’s not recommended
+    for production systems.</para>
+  </listitem>
+</itemizedlist>
+
+To see what channels are available, go to <link
+xlink:href="http://nixos.org/channels"/>.  (Note that the URIs of the
+various channels redirect to a directory that contains the channel’s
+latest version and includes ISO images and VirtualBox
+appliances.)</para>
+
+<para>When you first install NixOS, you’re automatically subscribed to
+the NixOS channel that corresponds to your installation source.   For
+instance, if you installed from a 14.04 ISO, you will be subscribed to
+the <literal>nixos-14.04</literal> channel.  To see which NixOS
+channel you’re subscribed to, run the following as root:
+
+<screen>
+$ nix-channel --list | grep nixos
+nixos https://nixos.org/channels/nixos-unstable
+</screen>
+
+To switch to a different NixOS channel, do
+
+<screen>
+$ nix-channel --add http://nixos.org/channels/<replaceable>channel-name</replaceable> nixos
+</screen>
+
+(Be sure to include the <literal>nixos</literal> parameter at the
+end.)  For instance, to use the NixOS 14.04 stable channel:
+
+<screen>
+$ nix-channel --add http://nixos.org/channels/nixos-14.04 nixos
+</screen>
+
+But it you want to live on the bleeding edge:
+
+<screen>
+$ nix-channel --add http://nixos.org/channels/nixos-unstable nixos
+</screen>
+
+</para>
+
+<para>You can then upgrade NixOS to the latest version in your chosen
+channel by running
+
+<screen>
+$ nixos-rebuild switch --upgrade
+</screen>
+
+which is equivalent to the more verbose <literal>nix-channel --update
+nixos; nixos-rebuild switch</literal>.</para>
+
+<warning><para>It is generally safe to switch back and forth between
+channels.  The only exception is that a newer NixOS may also have a
+newer Nix version, which may involve an upgrade of Nix’s database
+schema.  This cannot be undone easily, so in that case you will not be
+able to go back to your original channel.</para></warning>
+
+</chapter>
diff --git a/nixos/doc/manual/manual.xml b/nixos/doc/manual/manual.xml
index f51a04cdf25b..a3ad76209ac8 100644
--- a/nixos/doc/manual/manual.xml
+++ b/nixos/doc/manual/manual.xml
@@ -1,15 +1,14 @@
 <book xmlns="http://docbook.org/ns/docbook"
       xmlns:xlink="http://www.w3.org/1999/xlink"
-      xmlns:xi="http://www.w3.org/2001/XInclude">
-
+      xmlns:xi="http://www.w3.org/2001/XInclude"
+      version="5.0"
+      xml:id="NixOSManual">
+  
   <info>
-
     <title>NixOS Manual</title>
     <subtitle>Version <xi:include href="version" parse="text" /></subtitle>
-
   </info>
 
-
   <preface>
     <title>Preface</title>
 
@@ -29,19 +28,14 @@
 
   </preface>
 
-
-  <xi:include href="installation.xml" />
-  <xi:include href="configuration.xml" />
-  <xi:include href="running.xml" />
+  <xi:include href="installation/installation.xml" />
+  <xi:include href="configuration/configuration.xml" />
+  <xi:include href="administration/running.xml" />
   <!-- <xi:include href="userconfiguration.xml" /> -->
-  <xi:include href="troubleshooting.xml" />
-  <xi:include href="containers.xml" />
-  <xi:include href="development.xml" />
-
-  <xi:include href="release-notes.xml" />
+  <xi:include href="release-notes/release-notes.xml" />
 
   <appendix xml:id="ch-options">
-    <title>Configuration options</title>
+    <title>Configuration Options</title>
     <xi:include href="options-db.xml" />
   </appendix>
 
diff --git a/nixos/doc/manual/release-notes/release-notes.xml b/nixos/doc/manual/release-notes/release-notes.xml
new file mode 100644
index 000000000000..fb82d5adcefb
--- /dev/null
+++ b/nixos/doc/manual/release-notes/release-notes.xml
@@ -0,0 +1,17 @@
+<part   xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="ch-release-notes">
+
+<title>Release Notes</title>
+
+<partintro>
+<para>This section lists the release notes for each stable version of NixOS.</para>
+</partintro>
+
+<xi:include href="rl-1410.xml" />
+<xi:include href="rl-1404.xml" />
+<xi:include href="rl-1310.xml" />
+
+</part>
diff --git a/nixos/doc/manual/release-notes/rl-1310.xml b/nixos/doc/manual/release-notes/rl-1310.xml
new file mode 100644
index 000000000000..234fb5a643f6
--- /dev/null
+++ b/nixos/doc/manual/release-notes/rl-1310.xml
@@ -0,0 +1,11 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-release-13.10">
+
+<title>Release 13.10 (“Aardvark”, 2013/10/31)</title>
+
+<para>This is the first stable release branch of NixOS.</para>
+
+</chapter>
\ No newline at end of file
diff --git a/nixos/doc/manual/release-notes.xml b/nixos/doc/manual/release-notes/rl-1404.xml
index 52e88bb4c861..74af1ed12741 100644
--- a/nixos/doc/manual/release-notes.xml
+++ b/nixos/doc/manual/release-notes/rl-1404.xml
@@ -1,34 +1,8 @@
-<appendix xmlns="http://docbook.org/ns/docbook"
-          xmlns:xlink="http://www.w3.org/1999/xlink"
-          xml:id="ch-release-notes">
-
-<title>Release notes</title>
-
-<!--==================================================================-->
-
-<section xml:id="sec-release-14.10">
-
-<title>Release 14.10 (“Caterpillar”, 2014/10/??)</title>
-
-<para>When upgrading from a previous release, please be aware of the
-following incompatible changes:
-
-<itemizedlist>
-
-  <listitem><para>The host side of a container virtual Ethernet pair
-  is now called <literal>ve-<replaceable>container-name</replaceable></literal>
-  rather than <literal>c-<replaceable>container-name</replaceable></literal>.</para></listitem>
-
-</itemizedlist>
-
-</para>
-
-</section>
-
-
-<!--==================================================================-->
-
-<section xml:id="sec-release-14.04">
+<chapter xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-release-14.04">
 
 <title>Release 14.04 (“Baboon”, 2014/04/30)</title>
 
@@ -183,16 +157,4 @@ networking.firewall.enable = false;
 
 </para>
 
-</section>
-
-<!--==================================================================-->
-
-<section xml:id="sec-release-13.10">
-
-<title>Release 13.10 (“Aardvark”, 2013/10/31)</title>
-
-<para>This is the first stable release branch of NixOS.</para>
-
-</section>
-
-</appendix>
+</chapter>
\ No newline at end of file
diff --git a/nixos/doc/manual/release-notes/rl-1410.xml b/nixos/doc/manual/release-notes/rl-1410.xml
new file mode 100644
index 000000000000..09da15ce2361
--- /dev/null
+++ b/nixos/doc/manual/release-notes/rl-1410.xml
@@ -0,0 +1,22 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-release-14.10">
+
+<title>Release 14.10 (“Caterpillar”, 2014/10/??)</title>
+
+<para>When upgrading from a previous release, please be aware of the
+following incompatible changes:
+
+<itemizedlist>
+
+  <listitem><para>The host side of a container virtual Ethernet pair
+  is now called <literal>ve-<replaceable>container-name</replaceable></literal>
+  rather than <literal>c-<replaceable>container-name</replaceable></literal>.</para></listitem>
+
+</itemizedlist>
+
+</para>
+
+</chapter>
\ No newline at end of file
diff --git a/nixos/doc/manual/running.xml b/nixos/doc/manual/running.xml
deleted file mode 100644
index e1a358df2aac..000000000000
--- a/nixos/doc/manual/running.xml
+++ /dev/null
@@ -1,369 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="ch-running">
-
-<title>Running NixOS</title>
-
-<para>This chapter describes various aspects of managing a running
-NixOS system, such as how to use the <command>systemd</command>
-service manager.</para>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-systemctl"><title>Service management</title>
-
-<para>In NixOS, all system services are started and monitored using
-the systemd program.  Systemd is the “init” process of the system
-(i.e. PID 1), the parent of all other processes.  It manages a set of
-so-called “units”, which can be things like system services
-(programs), but also mount points, swap files, devices, targets
-(groups of units) and more.  Units can have complex dependencies; for
-instance, one unit can require that another unit must be successfully
-started before the first unit can be started.  When the system boots,
-it starts a unit named <literal>default.target</literal>; the
-dependencies of this unit cause all system services to be started,
-file systems to be mounted, swap files to be activated, and so
-on.</para>
-
-<para>The command <command>systemctl</command> is the main way to
-interact with <command>systemd</command>.  Without any arguments, it
-shows the status of active units:
-
-<screen>
-$ systemctl
--.mount          loaded active mounted   /
-swapfile.swap    loaded active active    /swapfile
-sshd.service     loaded active running   SSH Daemon
-graphical.target loaded active active    Graphical Interface
-<replaceable>...</replaceable>
-</screen>
-
-</para>
-
-<para>You can ask for detailed status information about a unit, for
-instance, the PostgreSQL database service:
-
-<screen>
-$ systemctl status postgresql.service
-postgresql.service - PostgreSQL Server
-          Loaded: loaded (/nix/store/pn3q73mvh75gsrl8w7fdlfk3fq5qm5mw-unit/postgresql.service)
-          Active: active (running) since Mon, 2013-01-07 15:55:57 CET; 9h ago
-        Main PID: 2390 (postgres)
-          CGroup: name=systemd:/system/postgresql.service
-                  ├─2390 postgres
-                  ├─2418 postgres: writer process
-                  ├─2419 postgres: wal writer process
-                  ├─2420 postgres: autovacuum launcher process
-                  ├─2421 postgres: stats collector process
-                  └─2498 postgres: zabbix zabbix [local] idle
-
-Jan 07 15:55:55 hagbard postgres[2394]: [1-1] LOG:  database system was shut down at 2013-01-07 15:55:05 CET
-Jan 07 15:55:57 hagbard postgres[2390]: [1-1] LOG:  database system is ready to accept connections
-Jan 07 15:55:57 hagbard postgres[2420]: [1-1] LOG:  autovacuum launcher started
-Jan 07 15:55:57 hagbard systemd[1]: Started PostgreSQL Server.
-</screen>
-
-Note that this shows the status of the unit (active and running), all
-the processes belonging to the service, as well as the most recent log
-messages from the service.
-
-</para>
-
-<para>Units can be stopped, started or restarted:
-
-<screen>
-$ systemctl stop postgresql.service
-$ systemctl start postgresql.service
-$ systemctl restart postgresql.service
-</screen>
-
-These operations are synchronous: they wait until the service has
-finished starting or stopping (or has failed).  Starting a unit will
-cause the dependencies of that unit to be started as well (if
-necessary).</para>
-
-<!-- - cgroups: each service and user session is a cgroup
-
-- cgroup resource management -->
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-rebooting"><title>Rebooting and shutting down</title>
-
-<para>The system can be shut down (and automatically powered off) by
-doing:
-
-<screen>
-$ shutdown
-</screen>
-
-This is equivalent to running <command>systemctl
-poweroff</command>.</para>
-
-<para>To reboot the system, run
-
-<screen>
-$ reboot
-</screen>
-
-which is equivalent to <command>systemctl reboot</command>.
-Alternatively, you can quickly reboot the system using
-<literal>kexec</literal>, which bypasses the BIOS by directly loading
-the new kernel into memory:
-
-<screen>
-$ systemctl kexec
-</screen>
-
-</para>
-
-<para>The machine can be suspended to RAM (if supported) using
-<command>systemctl suspend</command>, and suspended to disk using
-<command>systemctl hibernate</command>.</para>
-
-<para>These commands can be run by any user who is logged in locally,
-i.e. on a virtual console or in X11; otherwise, the user is asked for
-authentication.</para>
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-user-sessions"><title>User sessions</title>
-
-<para>Systemd keeps track of all users who are logged into the system
-(e.g. on a virtual console or remotely via SSH).  The command
-<command>loginctl</command> allows querying and manipulating user
-sessions.  For instance, to list all user sessions:
-
-<screen>
-$ loginctl
-   SESSION        UID USER             SEAT
-        c1        500 eelco            seat0
-        c3          0 root             seat0
-        c4        500 alice
-</screen>
-
-This shows that two users are logged in locally, while another is
-logged in remotely.  (“Seats” are essentially the combinations of
-displays and input devices attached to the system; usually, there is
-only one seat.)  To get information about a session:
-
-<screen>
-$ loginctl session-status c3
-c3 - root (0)
-           Since: Tue, 2013-01-08 01:17:56 CET; 4min 42s ago
-          Leader: 2536 (login)
-            Seat: seat0; vc3
-             TTY: /dev/tty3
-         Service: login; type tty; class user
-           State: online
-          CGroup: name=systemd:/user/root/c3
-                  ├─ 2536 /nix/store/10mn4xip9n7y9bxqwnsx7xwx2v2g34xn-shadow-4.1.5.1/bin/login --
-                  ├─10339 -bash
-                  └─10355 w3m nixos.org
-</screen>
-
-This shows that the user is logged in on virtual console 3.  It also
-lists the processes belonging to this session.  Since systemd keeps
-track of this, you can terminate a session in a way that ensures that
-all the session’s processes are gone:
-
-<screen>
-$ loginctl terminate-session c3
-</screen>
-
-</para>
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-cgroups"><title>Control groups</title>
-
-<para>To keep track of the processes in a running system, systemd uses
-<emphasis>control groups</emphasis> (cgroups).  A control group is a
-set of processes used to allocate resources such as CPU, memory or I/O
-bandwidth.  There can be multiple control group hierarchies, allowing
-each kind of resource to be managed independently.</para>
-
-<para>The command <command>systemd-cgls</command> lists all control
-groups in the <literal>systemd</literal> hierarchy, which is what
-systemd uses to keep track of the processes belonging to each service
-or user session:
-
-<screen>
-$ systemd-cgls
-├─user
-│ └─eelco
-│   └─c1
-│     ├─ 2567 -:0
-│     ├─ 2682 kdeinit4: kdeinit4 Running...
-│     ├─ <replaceable>...</replaceable>
-│     └─10851 sh -c less -R
-└─system
-  ├─httpd.service
-  │ ├─2444 httpd -f /nix/store/3pyacby5cpr55a03qwbnndizpciwq161-httpd.conf -DNO_DETACH
-  │ └─<replaceable>...</replaceable>
-  ├─dhcpcd.service
-  │ └─2376 dhcpcd --config /nix/store/f8dif8dsi2yaa70n03xir8r653776ka6-dhcpcd.conf
-  └─ <replaceable>...</replaceable>
-</screen>
-
-Similarly, <command>systemd-cgls cpu</command> shows the cgroups in
-the CPU hierarchy, which allows per-cgroup CPU scheduling priorities.
-By default, every systemd service gets its own CPU cgroup, while all
-user sessions are in the top-level CPU cgroup.  This ensures, for
-instance, that a thousand run-away processes in the
-<literal>httpd.service</literal> cgroup cannot starve the CPU for one
-process in the <literal>postgresql.service</literal> cgroup.  (By
-contrast, it they were in the same cgroup, then the PostgreSQL process
-would get 1/1001 of the cgroup’s CPU time.)  You can limit a service’s
-CPU share in <filename>configuration.nix</filename>:
-
-<programlisting>
-systemd.services.httpd.serviceConfig.CPUShares = 512;
-</programlisting>
-
-By default, every cgroup has 1024 CPU shares, so this will halve the
-CPU allocation of the <literal>httpd.service</literal> cgroup.</para>
-
-<para>There also is a <literal>memory</literal> hierarchy that
-controls memory allocation limits; by default, all processes are in
-the top-level cgroup, so any service or session can exhaust all
-available memory.  Per-cgroup memory limits can be specified in
-<filename>configuration.nix</filename>; for instance, to limit
-<literal>httpd.service</literal> to 512 MiB of RAM (excluding swap)
-and 640 MiB of RAM (including swap):
-
-<programlisting>
-systemd.services.httpd.serviceConfig.MemoryLimit = "512M";
-systemd.services.httpd.serviceConfig.ControlGroupAttribute = [ "memory.memsw.limit_in_bytes 640M" ];
-</programlisting>
-
-</para>
-
-<para>The command <command>systemd-cgtop</command> shows a
-continuously updated list of all cgroups with their CPU and memory
-usage.</para>
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-logging"><title>Logging</title>
-
-<para>System-wide logging is provided by systemd’s
-<emphasis>journal</emphasis>, which subsumes traditional logging
-daemons such as syslogd and klogd.  Log entries are kept in binary
-files in <filename>/var/log/journal/</filename>.  The command
-<literal>journalctl</literal> allows you to see the contents of the
-journal.  For example,
-
-<screen>
-$ journalctl -b
-</screen>
-
-shows all journal entries since the last reboot.  (The output of
-<command>journalctl</command> is piped into <command>less</command> by
-default.)  You can use various options and match operators to restrict
-output to messages of interest.  For instance, to get all messages
-from PostgreSQL:
-
-<screen>
-$ journalctl -u postgresql.service
--- Logs begin at Mon, 2013-01-07 13:28:01 CET, end at Tue, 2013-01-08 01:09:57 CET. --
-...
-Jan 07 15:44:14 hagbard postgres[2681]: [2-1] LOG:  database system is shut down
--- Reboot --
-Jan 07 15:45:10 hagbard postgres[2532]: [1-1] LOG:  database system was shut down at 2013-01-07 15:44:14 CET
-Jan 07 15:45:13 hagbard postgres[2500]: [1-1] LOG:  database system is ready to accept connections
-</screen>
-
-Or to get all messages since the last reboot that have at least a
-“critical” severity level:
-
-<screen>
-$ journalctl -b -p crit
-Dec 17 21:08:06 mandark sudo[3673]: pam_unix(sudo:auth): auth could not identify password for [alice]
-Dec 29 01:30:22 mandark kernel[6131]: [1053513.909444] CPU6: Core temperature above threshold, cpu clock throttled (total events = 1)
-</screen>
-
-</para>
-
-<para>The system journal is readable by root and by users in the
-<literal>wheel</literal> and <literal>systemd-journal</literal>
-groups.  All users have a private journal that can be read using
-<command>journalctl</command>.</para>
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-nix-gc"><title>Cleaning up the Nix store</title>
-
-<para>Nix has a purely functional model, meaning that packages are
-never upgraded in place.  Instead new versions of packages end up in a
-different location in the Nix store (<filename>/nix/store</filename>).
-You should periodically run Nix’s <emphasis>garbage
-collector</emphasis> to remove old, unreferenced packages.  This is
-easy:
-
-<screen>
-$ nix-collect-garbage
-</screen>
-
-Alternatively, you can use a systemd unit that does the same in the
-background:
-
-<screen>
-$ systemctl start nix-gc.service
-</screen>
-
-You can tell NixOS in <filename>configuration.nix</filename> to run
-this unit automatically at certain points in time, for instance, every
-night at 03:15:
-
-<programlisting>
-nix.gc.automatic = true;
-nix.gc.dates = "03:15";
-</programlisting>
-
-</para>
-
-<para>The commands above do not remove garbage collector roots, such
-as old system configurations.  Thus they do not remove the ability to
-roll back to previous configurations.  The following command deletes
-old roots, removing the ability to roll back to them:
-<screen>
-$ nix-collect-garbage -d
-</screen>
-You can also do this for specific profiles, e.g.
-<screen>
-$ nix-env -p /nix/var/nix/profiles/per-user/eelco/profile --delete-generations old
-</screen>
-Note that NixOS system configurations are stored in the profile
-<filename>/nix/var/nix/profiles/system</filename>.</para>
-
-<para>Another way to reclaim disk space (often as much as 40% of the
-size of the Nix store) is to run Nix’s store optimiser, which seeks
-out identical files in the store and replaces them with hard links to
-a single copy.
-<screen>
-$ nix-store --optimise
-</screen>
-Since this command needs to read the entire Nix store, it can take
-quite a while to finish.</para>
-
-</section>
-
-
-</chapter>
diff --git a/nixos/doc/manual/style.css b/nixos/doc/manual/style.css
index e2204c159e22..3118b37ead1f 100644
--- a/nixos/doc/manual/style.css
+++ b/nixos/doc/manual/style.css
@@ -262,7 +262,6 @@ table.simplelist
     margin-bottom: 1em;
 }
 
-div.affiliation
-{
-    font-style: italic;
-}
\ No newline at end of file
+div.navheader table, div.navfooter table {
+    box-shadow: none;
+}
diff --git a/nixos/doc/manual/troubleshooting.xml b/nixos/doc/manual/troubleshooting.xml
deleted file mode 100644
index c7d65112b649..000000000000
--- a/nixos/doc/manual/troubleshooting.xml
+++ /dev/null
@@ -1,199 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xml:id="ch-troubleshooting">
-
-<title>Troubleshooting</title>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-boot-problems"><title>Boot problems</title>
-
-<para>If NixOS fails to boot, there are a number of kernel command
-line parameters that may help you to identify or fix the issue.  You
-can add these parameters in the GRUB boot menu by pressing “e” to
-modify the selected boot entry and editing the line starting with
-<literal>linux</literal>.  The following are some useful kernel command
-line parameters that are recognised by the NixOS boot scripts or by
-systemd:
-
-<variablelist>
-
-  <varlistentry><term><literal>boot.shell_on_fail</literal></term>
-    <listitem><para>Start a root shell if something goes wrong in
-    stage 1 of the boot process (the initial ramdisk).  This is
-    disabled by default because there is no authentication for the
-    root shell.</para></listitem>
-  </varlistentry>
-
-  <varlistentry><term><literal>boot.debug1</literal></term>
-    <listitem><para>Start an interactive shell in stage 1 before
-    anything useful has been done.  That is, no modules have been
-    loaded and no file systems have been mounted, except for
-    <filename>/proc</filename> and
-    <filename>/sys</filename>.</para></listitem>
-  </varlistentry>
-
-  <varlistentry><term><literal>boot.trace</literal></term>
-    <listitem><para>Print every shell command executed by the stage 1
-    and 2 boot scripts.</para></listitem>
-  </varlistentry>
-
-  <varlistentry><term><literal>single</literal></term>
-    <listitem><para>Boot into rescue mode (a.k.a. single user mode).
-    This will cause systemd to start nothing but the unit
-    <literal>rescue.target</literal>, which runs
-    <command>sulogin</command> to prompt for the root password and
-    start a root login shell.  Exiting the shell causes the system to
-    continue with the normal boot process.</para></listitem>
-  </varlistentry>
-
-  <varlistentry><term><literal>systemd.log_level=debug systemd.log_target=console</literal></term>
-    <listitem><para>Make systemd very verbose and send log messages to
-    the console instead of the journal.</para></listitem>
-  </varlistentry>
-
-</variablelist>
-
-For more parameters recognised by systemd, see
-<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
-
-<para>If no login prompts or X11 login screens appear (e.g. due to
-hanging dependencies), you can press Alt+ArrowUp.  If you’re lucky,
-this will start rescue mode (described above).  (Also note that since
-most units have a 90-second timeout before systemd gives up on them,
-the <command>agetty</command> login prompts should appear eventually
-unless something is very wrong.)</para>
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-maintenance-mode"><title>Maintenance mode</title>
-
-<para>You can enter rescue mode by running:
-
-<screen>
-$ systemctl rescue</screen>
-
-This will eventually give you a single-user root shell.  Systemd will
-stop (almost) all system services.  To get out of maintenance mode,
-just exit from the rescue shell.</para>
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-rollback"><title>Rolling back configuration changes</title>
-
-<para>After running <command>nixos-rebuild</command> to switch to a
-new configuration, you may find that the new configuration doesn’t
-work very well.  In that case, there are several ways to return to a
-previous configuration.</para>
-
-<para>First, the GRUB boot manager allows you to boot into any
-previous configuration that hasn’t been garbage-collected.  These
-configurations can be found under the GRUB submenu “NixOS - All
-configurations”.  This is especially useful if the new configuration
-fails to boot.  After the system has booted, you can make the selected
-configuration the default for subsequent boots:
-
-<screen>
-$ /run/current-system/bin/switch-to-configuration boot</screen>
-
-</para>
-
-<para>Second, you can switch to the previous configuration in a running
-system:
-
-<screen>
-$ nixos-rebuild switch --rollback</screen>
-
-This is equivalent to running:
-
-<screen>
-$ /nix/var/nix/profiles/system-<replaceable>N</replaceable>-link/bin/switch-to-configuration switch</screen>
-
-where <replaceable>N</replaceable> is the number of the NixOS system
-configuration.  To get a list of the available configurations, do:
-
-<screen>
-$ ls -l /nix/var/nix/profiles/system-*-link
-<replaceable>...</replaceable>
-lrwxrwxrwx 1 root root 78 Aug 12 13:54 /nix/var/nix/profiles/system-268-link -> /nix/store/202b...-nixos-13.07pre4932_5a676e4-4be1055
-</screen>
-
-</para>
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-nix-store-corruption"><title>Nix store corruption</title>
-
-<para>After a system crash, it’s possible for files in the Nix store
-to become corrupted.  (For instance, the Ext4 file system has the
-tendency to replace un-synced files with zero bytes.)  NixOS tries
-hard to prevent this from happening: it performs a
-<command>sync</command> before switching to a new configuration, and
-Nix’s database is fully transactional.  If corruption still occurs,
-you may be able to fix it automatically.</para>
-
-<para>If the corruption is in a path in the closure of the NixOS
-system configuration, you can fix it by doing
-
-<screen>
-$ nixos-rebuild switch --repair
-</screen>
-
-This will cause Nix to check every path in the closure, and if its
-cryptographic hash differs from the hash recorded in Nix’s database,
-the path is rebuilt or redownloaded.</para>
-
-<para>You can also scan the entire Nix store for corrupt paths:
-
-<screen>
-$ nix-store --verify --check-contents --repair
-</screen>
-
-Any corrupt paths will be redownloaded if they’re available in a
-binary cache; otherwise, they cannot be repaired.</para>
-
-</section>
-
-
-<!--===============================================================-->
-
-<section xml:id="sec-nix-network-issues"><title>Nix network issues</title>
-
-<para>Nix uses a so-called <emphasis>binary cache</emphasis> to
-optimise building a package from source into downloading it as a
-pre-built binary.  That is, whenever a command like
-<command>nixos-rebuild</command> needs a path in the Nix store, Nix
-will try to download that path from the Internet rather than build it
-from source.  The default binary cache is
-<uri>http://cache.nixos.org/</uri>.  If this cache is unreachable, Nix
-operations may take a long time due to HTTP connection timeouts.  You
-can disable the use of the binary cache by adding <option>--option
-use-binary-caches false</option>, e.g.
-
-<screen>
-$ nixos-rebuild switch --option use-binary-caches false
-</screen>
-
-If you have an alternative binary cache at your disposal, you can use
-it instead:
-
-<screen>
-$ nixos-rebuild switch --option binary-caches http://my-cache.example.org/
-</screen>
-
-</para>
-
-</section>
-
-
-</chapter>
diff --git a/nixos/modules/config/fonts/fonts.nix b/nixos/modules/config/fonts/fonts.nix
index 49b1e1d42a3f..f6060a910a15 100644
--- a/nixos/modules/config/fonts/fonts.nix
+++ b/nixos/modules/config/fonts/fonts.nix
@@ -11,7 +11,7 @@ with lib;
       # TODO: find another name for it.
       fonts = mkOption {
         type = types.listOf types.path;
-        example = [ pkgs.dejavu_fonts ];
+        example = literalExample "[ pkgs.dejavu_fonts ]";
         description = "List of primary font paths.";
         apply = list: list ++
           [ # - the user's current profile
diff --git a/nixos/modules/config/gtk-exe-env.nix b/nixos/modules/config/gtk-exe-env.nix
new file mode 100644
index 000000000000..b565072e3a71
--- /dev/null
+++ b/nixos/modules/config/gtk-exe-env.nix
@@ -0,0 +1,41 @@
+{ config, pkgs, lib, ... }:
+
+{
+  imports = [
+  ];
+
+  options = {
+    gtkPlugins = lib.mkOption {
+      type = lib.types.listOf lib.types.path;
+      default = [];
+      description = ''
+        Plugin packages for GTK+ such as input methods.
+      '';
+    };
+  };
+
+  config = {
+    environment.variables = if builtins.length config.gtkPlugins > 0
+      then
+        let
+          paths = [ pkgs.gtk2 pkgs.gtk3 ] ++ config.gtkPlugins;
+          env = pkgs.buildEnv {
+            name = "gtk-exe-env";
+
+            inherit paths;
+
+            postBuild = lib.concatStringsSep "\n"
+              (map (d: d.gtkExeEnvPostBuild or "") paths);
+
+            ignoreCollisions = true;
+          };
+        in {
+          GTK_EXE_PREFIX = builtins.toString env;
+          GTK_PATH = [
+            "${env}/lib/gtk-2.0"
+            "${env}/lib/gtk-3.0"
+          ];
+        }
+      else {};
+  };
+}
diff --git a/nixos/modules/config/networking.nix b/nixos/modules/config/networking.nix
index fd1e55f673ae..136a5bda7459 100644
--- a/nixos/modules/config/networking.nix
+++ b/nixos/modules/config/networking.nix
@@ -7,6 +7,9 @@ with lib;
 let
 
   cfg = config.networking;
+  dnsmasqResolve = config.services.dnsmasq.enable &&
+                   config.services.dnsmasq.resolveLocalQueries;
+  hasLocalResolver = config.services.bind.enable || dnsmasqResolve;
 
 in
 
@@ -74,9 +77,12 @@ in
             '' + optionalString cfg.dnsSingleRequest ''
               # only send one DNS request at a time
               resolv_conf_options='single-request'
-            '' + optionalString config.services.bind.enable ''
+            '' + optionalString hasLocalResolver ''
               # This hosts runs a full-blown DNS resolver.
               name_servers='127.0.0.1'
+            '' + optionalString dnsmasqResolve ''
+              dnsmasq_conf=/etc/dnsmasq-conf.conf
+              dnsmasq_resolv=/etc/dnsmasq-resolv.conf
             '';
       };
 
diff --git a/nixos/modules/config/power-management.nix b/nixos/modules/config/power-management.nix
index 17f3ed00b9be..32a7987617ad 100644
--- a/nixos/modules/config/power-management.nix
+++ b/nixos/modules/config/power-management.nix
@@ -35,7 +35,9 @@ in
       powerUpCommands = mkOption {
         type = types.lines;
         default = "";
-        example = "${pkgs.hdparm}/sbin/hdparm -B 255 /dev/sda";
+        example = literalExample ''
+          "''${pkgs.hdparm}/sbin/hdparm -B 255 /dev/sda"
+        '';
         description =
           ''
             Commands executed when the machine powers up.  That is,
@@ -47,7 +49,9 @@ in
       powerDownCommands = mkOption {
         type = types.lines;
         default = "";
-        example = "${pkgs.hdparm}/sbin/hdparm -B 255 /dev/sda";
+        example = literalExample ''
+          "''${pkgs.hdparm}/sbin/hdparm -B 255 /dev/sda"
+        '';
         description =
           ''
             Commands executed when the machine powers down.  That is,
diff --git a/nixos/modules/config/pulseaudio.nix b/nixos/modules/config/pulseaudio.nix
index 96593885e5b7..1b84bbaf10c5 100644
--- a/nixos/modules/config/pulseaudio.nix
+++ b/nixos/modules/config/pulseaudio.nix
@@ -81,7 +81,7 @@ in {
       package = mkOption {
         type = types.package;
         default = pulseaudioFull;
-        example = literalExample "pulseaudioFull";
+        example = literalExample "pkgs.pulseaudioFull";
         description = ''
           The PulseAudio derivation to use.  This can be used to disable
           features (such as JACK support, Bluetooth) that are enabled in the
diff --git a/nixos/modules/config/qt-plugin-env.nix b/nixos/modules/config/qt-plugin-env.nix
new file mode 100644
index 000000000000..c59865604165
--- /dev/null
+++ b/nixos/modules/config/qt-plugin-env.nix
@@ -0,0 +1,37 @@
+{ config, pkgs, lib, ... }:
+
+{
+  imports = [
+  ];
+
+  options = {
+    qtPlugins = lib.mkOption {
+      type = lib.types.listOf lib.types.path;
+      default = [];
+      description = ''
+        Plugin packages for Qt such as input methods.
+      '';
+    };
+  };
+
+  config = {
+    environment.variables = if builtins.length config.qtPlugins > 0
+      then
+        let
+          paths = [ pkgs.qt48 ] ++ config.qtPlugins;
+          env = pkgs.buildEnv {
+            name = "qt-plugin-env";
+
+            inherit paths;
+
+            postBuild = lib.concatStringsSep "\n"
+              (map (d: d.qtPluginEnvPostBuild or "") paths);
+
+            ignoreCollisions = true;
+          };
+        in {
+          QT_PLUGIN_PATH = [ (builtins.toString env) ];
+        }
+      else {};
+  };
+}
diff --git a/nixos/modules/config/shells-environment.nix b/nixos/modules/config/shells-environment.nix
index cc079cdc5856..2559c53ac163 100644
--- a/nixos/modules/config/shells-environment.nix
+++ b/nixos/modules/config/shells-environment.nix
@@ -122,7 +122,9 @@ in
 
     environment.binsh = mkOption {
       default = "${config.system.build.binsh}/bin/sh";
-      example = "\${pkgs.dash}/bin/dash";
+      example = literalExample ''
+        "''${pkgs.dash}/bin/dash"
+      '';
       type = types.path;
       description = ''
         The shell executable that is linked system-wide to
diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix
index 6b4c38172e95..f3e86bfd2019 100644
--- a/nixos/modules/config/system-path.nix
+++ b/nixos/modules/config/system-path.nix
@@ -63,7 +63,7 @@ in
       systemPackages = mkOption {
         type = types.listOf types.path;
         default = [];
-        example = "[ pkgs.icecat3 pkgs.thunderbird ]";
+        example = literalExample "[ pkgs.firefox pkgs.thunderbird ]";
         description = ''
           The set of packages that appear in
           /run/current-system/sw.  These packages are
diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix
index afedc8e382e5..d172ddb6bca7 100644
--- a/nixos/modules/config/users-groups.nix
+++ b/nixos/modules/config/users-groups.nix
@@ -109,6 +109,36 @@ let
         description = "The path to the user's shell.";
       };
 
+      subUidRanges = mkOption {
+        type = types.listOf types.optionSet;
+        default = [];
+        example = [
+          { startUid = 1000; count = 1; }
+          { startUid = 100001; count = 65534; }
+        ];
+        options = [ subordinateUidRange ];
+        description = ''
+          Subordinate user ids that user is allowed to use.
+          They are set into <filename>/etc/subuid</filename> and are used
+          by <literal>newuidmap</literal> for user namespaces.
+        '';
+      };
+
+      subGidRanges = mkOption {
+        type = types.listOf types.optionSet;
+        default = [];
+        example = [
+          { startGid = 100; count = 1; }
+          { startGid = 1001; count = 999; }
+        ];
+        options = [ subordinateGidRange ];
+        description = ''
+          Subordinate group ids that user is allowed to use.
+          They are set into <filename>/etc/subgid</filename> and are used
+          by <literal>newgidmap</literal> for user namespaces.
+        '';
+      };
+
       createHome = mkOption {
         type = types.bool;
         default = false;
@@ -216,6 +246,54 @@ let
 
   };
 
+  subordinateUidRange = {
+    startUid = mkOption {
+      type = types.int;
+      description = ''
+        Start of the range of subordinate user ids that user is
+        allowed to use.
+      '';
+    };
+    count = mkOption {
+      type = types.int;
+      default = 1;
+      description = ''Count of subordinate user ids'';
+    };
+  };
+
+  subordinateGidRange = {
+    startGid = mkOption {
+      type = types.int;
+      description = ''
+        Start of the range of subordinate group ids that user is
+        allowed to use.
+      '';
+    };
+    count = mkOption {
+      type = types.int;
+      default = 1;
+      description = ''Count of subordinate group ids'';
+    };
+  };
+
+  filterNull = a: filter (x: hasAttr a x && getAttr a x != null);
+
+      sortOn "gid" (filterNull "gid" (attrValues cfg.extraGroups))
+      sortOn "uid" (filterNull "uid" (attrValues cfg.extraUsers))
+  mkSubuidEntry = user: concatStrings (
+    map (range: "${user.name}:${toString range.startUid}:${toString range.count}\n")
+        user.subUidRanges);
+
+  subuidFile = concatStrings (map mkSubuidEntry (
+    sortOn "uid" (filterNull "uid" (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))));
+
   idsAreUnique = set: idAttr: !(fold (name: args@{ dup, acc }:
     let
       id = builtins.toString (builtins.getAttr idAttr (builtins.getAttr name set));
@@ -391,6 +469,15 @@ in {
     # for backwards compatibility
     system.activationScripts.groups = stringAfter [ "users" ] "";
 
+    environment.etc."subuid" = {
+      text = subuidFile;
+      mode = "0644";
+    };
+    environment.etc."subgid" = {
+      text = subgidFile;
+      mode = "0644";
+    };
+
     assertions = [
       { assertion = !cfg.enforceIdUniqueness || (uidsAreUnique && gidsAreUnique);
         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 d43fa2203818..623cfdedd269 100644
--- a/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -113,11 +113,12 @@ in
     };
 
     isoImage.contents = mkOption {
-      example =
+      example = literalExample ''
         [ { source = pkgs.memtest86 + "/memtest.bin";
             target = "boot/memtest.bin";
           }
-        ];
+        ]
+      '';
       description = ''
         This option lists files to be copied to fixed locations in the
         generated ISO image.
@@ -125,7 +126,7 @@ in
     };
 
     isoImage.storeContents = mkOption {
-      example = [pkgs.stdenv];
+      example = literalExample "[ pkgs.stdenv ]";
       description = ''
         This option lists additional derivations to be included in the
         Nix store in the generated ISO image.
diff --git a/nixos/modules/installer/cd-dvd/system-tarball.nix b/nixos/modules/installer/cd-dvd/system-tarball.nix
index eaecbe1381f5..c24fe97fba46 100644
--- a/nixos/modules/installer/cd-dvd/system-tarball.nix
+++ b/nixos/modules/installer/cd-dvd/system-tarball.nix
@@ -15,11 +15,12 @@ in
 {
   options = {
     tarball.contents = mkOption {
-      example =
+      example = literalExample ''
         [ { source = pkgs.memtest86 + "/memtest.bin";
             target = "boot/memtest.bin";
           }
-        ];
+        ]
+      '';
       description = ''
         This option lists files to be copied to fixed locations in the
         generated ISO image.
@@ -27,7 +28,7 @@ in
     };
 
     tarball.storeContents = mkOption {
-      example = [pkgs.stdenv];
+      example = literalExample "[ pkgs.stdenv ]";
       description = ''
         This option lists additional derivations to be included in the
         Nix store in the generated ISO image.
diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl
index c507f7f979fa..93a348f27174 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>/dev/null |" or die "Failed to execute: $cmd\n";
+    my @ret = <FILE>;
+    close FILE;
+    return ($?, @ret);
+}
 
 # Process the command line.
 my $outDir = "/etc/nixos";
@@ -337,6 +344,20 @@ EOF
         }
     }
 
+	# Is this a btrfs filesystem?
+	if ($fsType eq "btrfs") {
+		my ($status, @info) = runCommand("btrfs subvol show $rootDir$mountPoint");
+		if ($status != 0) {
+			die "Failed to retreive subvolume info for $mountPoint";
+		}
+		my @subvols = join("", @info) =~ m/Name:[ \t\n]*([^ \t\n]*)/;
+		if ($#subvols > 0) {
+			die "Btrfs subvol name for $mountPoint listed multiple times in mount\n"
+		} elsif ($#subvols == 0) {
+			push @extraOptions, "subvol=$subvols[0]";
+		}
+	}
+
     # Emit the filesystem.
     $fileSystems .= <<EOF;
   fileSystems.\"$mountPoint\" =
diff --git a/nixos/modules/installer/tools/nixos-install.sh b/nixos/modules/installer/tools/nixos-install.sh
index a55eda1cb8fd..86952486ade0 100644
--- a/nixos/modules/installer/tools/nixos-install.sh
+++ b/nixos/modules/installer/tools/nixos-install.sh
@@ -30,6 +30,9 @@ while [ "$#" -gt 0 ]; do
             absolute_path=$(readlink -m $given_path)
             extraBuildFlags+=("$i" "/mnt$absolute_path")
             ;;
+        --root)
+            mountPoint="$1"; shift 1
+            ;;
         --show-trace)
             extraBuildFlags+=("$i")
             ;;
diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix
index 39da2f1f0be6..91a30695a7a5 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 f68f8dc40aa8..49ec08996104 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/crashdump.nix b/nixos/modules/misc/crashdump.nix
index d68f38bae2f5..773b5ac9da3e 100644
--- a/nixos/modules/misc/crashdump.nix
+++ b/nixos/modules/misc/crashdump.nix
@@ -28,7 +28,7 @@ in
           # We don't want to evaluate all of linuxPackages for the manual
           # - some of it might not even evaluate correctly.
           defaultText = "pkgs.linuxPackages";
-          example = "pkgs.linuxPackages_2_6_25";
+          example = literalExample "pkgs.linuxPackages_2_6_25";
           description = ''
             This will override the boot.kernelPackages, and will add some
             kernel configuration parameters for the crash dump to work.
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index fa81ff8a8398..513da5d50a18 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -141,6 +141,14 @@
       unifi = 131;
       gdm = 132;
       dhcpd = 133;
+      siproxd = 134;
+      mlmmj = 135;
+      neo4j = 136;
+      riemann = 137;
+      riemanndash = 138;
+      radvd = 139;
+      zookeeper = 140;
+      dnsmasq = 141;
 
       # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
 
@@ -256,6 +264,10 @@
       docker = 131;
       gdm = 132;
       tss = 133;
+      siproxd = 134;
+      mlmmj = 135;
+      riemann = 137;
+      riemanndash = 138;
 
       # When adding a gid, make sure it doesn't match an existing uid. And don't use gids above 399!
 
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 453899175e01..853961804e55 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -5,6 +5,7 @@
   ./config/fonts/fonts.nix
   ./config/fonts/ghostscript.nix
   ./config/gnu.nix
+  ./config/gtk-exe-env.nix
   ./config/i18n.nix
   ./config/krb5.nix
   ./config/ldap.nix
@@ -13,6 +14,7 @@
   ./config/nsswitch.nix
   ./config/power-management.nix
   ./config/pulseaudio.nix
+  ./config/qt-plugin-env.nix
   ./config/shells-environment.nix
   ./config/swap.nix
   ./config/sysctl.nix
@@ -59,8 +61,10 @@
   ./programs/shell.nix
   ./programs/ssh.nix
   ./programs/ssmtp.nix
+  ./programs/uim.nix
   ./programs/venus.nix
   ./programs/wvdial.nix
+  ./programs/freetds.nix
   ./programs/zsh/zsh.nix
   ./rename.nix
   ./security/apparmor.nix
@@ -100,6 +104,7 @@
   ./services/databases/monetdb.nix
   ./services/databases/mongodb.nix
   ./services/databases/mysql.nix
+  ./services/databases/neo4j.nix 
   ./services/databases/openldap.nix
   ./services/databases/postgresql.nix
   ./services/databases/redis.nix
@@ -142,6 +147,7 @@
   ./services/mail/dovecot.nix
   ./services/mail/freepops.nix
   ./services/mail/mail.nix
+  ./services/mail/mlmmj.nix
   ./services/mail/opensmtpd.nix
   ./services/mail/postfix.nix
   ./services/mail/spamassassin.nix
@@ -159,14 +165,18 @@
   ./services/misc/nix-ssh-serve.nix
   ./services/misc/rippled.nix
   ./services/misc/rogue.nix
+  ./services/misc/siproxd.nix
   ./services/misc/svnserve.nix
   ./services/misc/synergy.nix
+  ./services/misc/zookeeper.nix
   ./services/monitoring/apcupsd.nix
   ./services/monitoring/dd-agent.nix
   ./services/monitoring/graphite.nix
   ./services/monitoring/monit.nix
   ./services/monitoring/munin.nix
   ./services/monitoring/nagios.nix
+  ./services/monitoring/riemann.nix
+  ./services/monitoring/riemann-dash.nix
   ./services/monitoring/smartd.nix
   ./services/monitoring/statsd.nix
   ./services/monitoring/systemhealth.nix
@@ -252,6 +262,7 @@
   ./services/search/elasticsearch.nix
   ./services/search/solr.nix
   ./services/security/clamav.nix
+  ./services/security/fail2ban.nix
   ./services/security/fprot.nix
   ./services/security/frandom.nix
   ./services/security/haveged.nix
@@ -293,6 +304,7 @@
   ./services/x11/window-managers/awesome.nix
   #./services/x11/window-managers/compiz.nix
   ./services/x11/window-managers/default.nix
+  ./services/x11/window-managers/fluxbox.nix
   ./services/x11/window-managers/icewm.nix
   ./services/x11/window-managers/bspwm.nix
   ./services/x11/window-managers/metacity.nix
diff --git a/nixos/modules/profiles/all-hardware.nix b/nixos/modules/profiles/all-hardware.nix
index 511c118e2bf5..6385ee69500f 100644
--- a/nixos/modules/profiles/all-hardware.nix
+++ b/nixos/modules/profiles/all-hardware.nix
@@ -8,7 +8,7 @@
 {
 
   # The initrd has to contain any module that might be necessary for
-  # mounting the CD/DVD.
+  # supporting the most important parts of HW like drives.
   boot.initrd.availableKernelModules =
     [ # SATA/PATA support.
       "ahci"
@@ -43,7 +43,7 @@
       "virtio_net" "virtio_pci" "virtio_blk" "virtio_balloon" "virtio_console"
 
       # Keyboards
-      "hid_apple"
+      "usbhid" "hid_apple" "hid_logitech_dj" "hid_lenovo_tpkbd" "hid_roccat"
     ];
 
   # Include lots of firmware.
diff --git a/nixos/modules/programs/environment.nix b/nixos/modules/programs/environment.nix
index 80c3e83fe812..4a510805b019 100644
--- a/nixos/modules/programs/environment.nix
+++ b/nixos/modules/programs/environment.nix
@@ -52,7 +52,7 @@ in
         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" ];
+        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" ];
diff --git a/nixos/modules/programs/freetds.nix b/nixos/modules/programs/freetds.nix
new file mode 100644
index 000000000000..398fd104363b
--- /dev/null
+++ b/nixos/modules/programs/freetds.nix
@@ -0,0 +1,61 @@
+# Global configuration for freetds environment.
+
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.environment.freetds;
+
+in
+{
+  ###### interface
+
+  options = {
+
+    environment.freetds = mkOption {
+      type = types.attrsOf types.str;
+      default = {};
+      example = {
+        MYDATABASE = 
+          ''
+          host = 10.0.2.100
+          port = 1433
+          tds version = 7.2
+          '';
+      };
+      description = 
+        ''
+        Configure freetds database entries. Each attribute denotes
+        a section within freetds.conf, and the value (a string) is the config
+        content for that section. When at least one entry is configured
+        the global environment variables FREETDSCONF, FREETDS and SYBASE
+        will be configured to allow the programs that use freetds to find the
+        library and config.
+        '';
+
+    };
+
+  };
+
+  ###### implementation
+
+  config = mkIf (length (attrNames cfg) > 0) {
+
+    environment.variables.FREETDSCONF = "/etc/freetds.conf";
+    environment.variables.FREETDS = "/etc/freetds.conf";
+    environment.variables.SYBASE = "${pkgs.freetds}";
+
+    environment.etc."freetds.conf" = { text = 
+      (concatStrings (mapAttrsToList (name: value:
+        ''
+        [${name}]
+        ${value}
+        ''
+      ) cfg));
+    };
+
+  };
+
+}
diff --git a/nixos/modules/programs/shadow.nix b/nixos/modules/programs/shadow.nix
index 658b08b3d870..5a467e112c23 100644
--- a/nixos/modules/programs/shadow.nix
+++ b/nixos/modules/programs/shadow.nix
@@ -100,7 +100,9 @@ in
         chgpasswd = { rootOK = true; };
       };
 
-    security.setuidPrograms = [ "passwd" "chfn" "su" "newgrp" ];
+    security.setuidPrograms = [ "passwd" "chfn" "su" "newgrp"
+      "newuidmap" "newgidmap"  # new in shadow 4.2.x
+      ];
 
   };
 
diff --git a/nixos/modules/programs/uim.nix b/nixos/modules/programs/uim.nix
new file mode 100644
index 000000000000..237da3415dc3
--- /dev/null
+++ b/nixos/modules/programs/uim.nix
@@ -0,0 +1,29 @@
+{ config, pkgs, ... }:
+
+with pkgs.lib;
+
+let
+  cfg = config.uim;
+in
+{
+  options = {
+    uim = {
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        example = true;
+        description = "enable UIM input method";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ pkgs.uim ];
+    gtkPlugins = [ pkgs.uim ];
+    qtPlugins = [ pkgs.uim ];
+    environment.variables.GTK_IM_MODULE = "uim";
+    environment.variables.QT_IM_MODULE = "uim";
+    environment.variables.XMODIFIERS = "@im=uim";
+    services.xserver.displayManager.sessionCommands = "uim-xim &";
+  };
+}
diff --git a/nixos/modules/services/audio/mopidy.nix b/nixos/modules/services/audio/mopidy.nix
index 5b865cf4c1be..a7a7e8ae688b 100644
--- a/nixos/modules/services/audio/mopidy.nix
+++ b/nixos/modules/services/audio/mopidy.nix
@@ -49,7 +49,7 @@ in {
       extensionPackages = mkOption {
         default = [];
         type = types.listOf types.package;
-        example = [ mopidy-spotify ];
+        example = literalExample "[ pkgs.mopidy-spotify ]";
         description = ''
           Mopidy extensions that should be loaded by the service.
         '';
diff --git a/nixos/modules/services/backup/rsnapshot.nix b/nixos/modules/services/backup/rsnapshot.nix
index 48ad7582b7e6..091b5cfd4d59 100644
--- a/nixos/modules/services/backup/rsnapshot.nix
+++ b/nixos/modules/services/backup/rsnapshot.nix
@@ -31,7 +31,7 @@ in
 
       cronIntervals = mkOption {
         default = {};
-        example = { "hourly" = "0 * * * *"; "daily" = "50 21 * * *"; };
+        example = { hourly = "0 * * * *"; daily = "50 21 * * *"; };
         type = types.attrsOf types.string;
         description = ''
           Periodicity at which intervals should be run by cron.
diff --git a/nixos/modules/services/databases/neo4j.nix b/nixos/modules/services/databases/neo4j.nix
new file mode 100644
index 000000000000..2ef49a95166e
--- /dev/null
+++ b/nixos/modules/services/databases/neo4j.nix
@@ -0,0 +1,143 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.neo4j;
+
+  serverConfig = pkgs.writeText "neo4j-server.properties" ''
+    org.neo4j.server.database.location=${cfg.dataDir}/data/graph.db
+    org.neo4j.server.webserver.address=${cfg.host}
+    org.neo4j.server.webserver.port=${toString cfg.port}
+    ${optionalString cfg.enableHttps ''
+      org.neo4j.server.webserver.https.enabled=true
+      org.neo4j.server.webserver.https.port=${toString cfg.httpsPort}
+      org.neo4j.server.webserver.https.cert.location=${cfg.cert}
+      org.neo4j.server.webserver.https.key.location=${cfg.key}
+      org.neo4j.server.webserver.https.keystore.location=${cfg.dataDir}/data/keystore
+    ''}
+    org.neo4j.server.webadmin.rrdb.location=${cfg.dataDir}/data/rrd
+    org.neo4j.server.webadmin.data.uri=/db/data/
+    org.neo4j.server.webadmin.management.uri=/db/manage/
+    org.neo4j.server.db.tuning.properties=${pkgs.neo4j}/share/neo4j/conf/neo4j.properties
+    org.neo4j.server.manage.console_engines=shell
+    ${cfg.extraServerConfig}
+  '';
+
+  loggingConfig = pkgs.writeText "logging.properties" cfg.loggingConfig;
+
+  wrapperConfig = pkgs.writeText "neo4j-wrapper.conf" ''
+    wrapper.java.additional=-Dorg.neo4j.server.properties=${serverConfig}
+    wrapper.java.additional=-Djava.util.logging.config.file=${loggingConfig}
+    wrapper.java.additional=-XX:+UseConcMarkSweepGC
+    wrapper.java.additional=-XX:+CMSClassUnloadingEnabled
+    wrapper.pidfile=${cfg.dataDir}/neo4j-server.pid
+    wrapper.name=neo4j
+  '';
+
+in {
+
+  ###### interface
+
+  options.services.neo4j = {
+    enable = mkOption {
+      description = "Whether to enable neo4j.";
+      default = false;
+      type = types.uniq types.bool;
+    };
+
+    host = mkOption {
+      description = "Neo4j listen address.";
+      default = "127.0.0.1";
+      type = types.str;
+    };
+
+    port = mkOption {
+      description = "Neo4j port to listen for HTTP traffic.";
+      default = 7474;
+      type = types.int;
+    };
+
+    enableHttps = mkOption {
+      description = "Enable https for Neo4j.";
+      default = false;
+      type = types.bool;
+    };
+
+    httpsPort = mkOption {
+      description = "Neo4j port to listen for HTTPS traffic.";
+      default = 7473;
+      type = types.int;
+    };
+
+    cert = mkOption {
+      description = "Neo4j https certificate.";
+      default = "${cfg.dataDir}/conf/ssl/neo4j.cert";
+      type = types.path;
+    };
+
+    key = mkOption {
+      description = "Neo4j https certificate key.";
+      default = "${cfg.dataDir}/conf/ssl/neo4j.key";
+      type = types.path;
+    };
+
+    dataDir = mkOption {
+      description = "Neo4j data directory.";
+      default = "/var/lib/neo4j";
+      type = types.path;
+    };
+
+    loggingConfig = mkOption {
+      description = "Neo4j logging configuration.";
+      default = ''
+        handlers=java.util.logging.ConsoleHandler
+        .level=INFO
+        org.neo4j.server.level=INFO
+
+        java.util.logging.ConsoleHandler.level=INFO
+        java.util.logging.ConsoleHandler.formatter=org.neo4j.server.logging.SimpleConsoleFormatter
+        java.util.logging.ConsoleHandler.filter=org.neo4j.server.logging.NeoLogFilter
+      '';
+      type = types.lines;
+    };
+
+    extraServerConfig = mkOption {
+      description = "Extra configuration for neo4j server.";
+      default = "";
+      type = types.lines;
+    };
+
+  };
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+    systemd.services.neo4j = {
+      description = "Neo4j Daemon";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network-interfaces.target" ];
+      environment = { NEO4J_INSTANCE = cfg.dataDir; };
+      serviceConfig = {
+        ExecStart = "${pkgs.neo4j}/bin/neo4j console";
+        User = "neo4j";
+        PermissionsStartOnly = true;
+      };
+      preStart = ''
+        mkdir -m 0700 -p ${cfg.dataDir}/{data/graph.db,conf}
+        ln -fs ${wrapperConfig} ${cfg.dataDir}/conf/neo4j-wrapper.conf
+        if [ "$(id -u)" = 0 ]; then chown -R neo4j ${cfg.dataDir}; fi
+      '';
+    };
+
+    environment.systemPackages = [ pkgs.neo4j ];
+
+    users.extraUsers = singleton {
+      name = "neo4j";
+      uid = config.ids.uids.neo4j;
+      description = "Neo4j daemon user";
+      home = cfg.dataDir;
+    };
+  };
+
+}
diff --git a/nixos/modules/services/databases/postgresql.xml b/nixos/modules/services/databases/postgresql.xml
new file mode 100644
index 000000000000..e98b431bd60a
--- /dev/null
+++ b/nixos/modules/services/databases/postgresql.xml
@@ -0,0 +1,77 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="module-postgresql">
+
+<title>PostgreSQL</title>
+
+<!-- FIXME: render nicely -->
+
+<!-- FIXME: source can be added automatically -->
+<para><emphasis>Source:</emphasis> <filename>modules/services/databases/postgresql.nix</filename></para>
+
+<para><emphasis>Upstream documentation:</emphasis> <link xlink:href="http://www.postgresql.org/docs/"/></para>
+
+<!-- FIXME: more stuff, like maintainer? -->
+
+<para>PostgreSQL is an advanced, free relational database.<!-- MORE --></para>
+
+<section><title>Configuring</title>
+
+<para>To enable PostgreSQL, add the following to your
+<filename>configuration.nix</filename>:
+
+<programlisting>
+services.postgresql.enable = true;
+services.postgresql.package = pkgs.postgresql93;
+</programlisting>
+
+Note that you are required to specify the desired version of
+PostgreSQL (e.g. <literal>pkgs.postgresql93</literal>). Since
+upgrading your PostgreSQL version requires a database dump and reload
+(see below), NixOS cannot provide a default value for
+<option>services.postgresql.package</option> such as the most recent
+release of PostgreSQL.</para>
+
+<!--
+<para>After running <command>nixos-rebuild</command>, you can verify
+whether PostgreSQL works by running <command>psql</command>:
+
+<screen>
+$ psql
+psql (9.2.9)
+Type "help" for help.
+
+alice=>
+</screen>
+-->
+
+<para>By default, PostgreSQL stores its databases in
+<filename>/var/db/postgresql</filename>. You can override this using
+<option>services.postgresql.dataDir</option>, e.g.
+
+<programlisting>
+services.postgresql.dataDir = "/data/postgresql";
+</programlisting>
+
+</para>
+
+</section>
+
+
+<section><title>Upgrading</title>
+
+<para>FIXME: document dump/upgrade/load cycle.</para>
+
+</section>
+
+
+<section><title>Options</title>
+
+<para>FIXME: auto-generated list of module options.</para>
+
+</section>
+
+
+</chapter>
diff --git a/nixos/modules/services/hardware/tcsd.nix b/nixos/modules/services/hardware/tcsd.nix
index 26b2c884b8f1..d7f6c188feb8 100644
--- a/nixos/modules/services/hardware/tcsd.nix
+++ b/nixos/modules/services/hardware/tcsd.nix
@@ -1,8 +1,8 @@
 # tcsd daemon.
 
-{ config, pkgs, ... }:
+{ config, pkgs, lib, ... }:
 
-with pkgs.lib;
+with lib;
 let
 
   cfg = config.services.tcsd;
diff --git a/nixos/modules/services/hardware/thermald.nix b/nixos/modules/services/hardware/thermald.nix
new file mode 100644
index 000000000000..5233794a20cc
--- /dev/null
+++ b/nixos/modules/services/hardware/thermald.nix
@@ -0,0 +1,28 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.thermald;
+in {
+  ###### interface
+  options = { 
+    services.thermald = { 
+      enable = mkOption {
+        default = false;
+        description = ''
+          Whether to enable thermald, the temperature management daemon.
+        ''; 
+      };  
+    };  
+  };  
+
+  ###### implementation
+  config = mkIf cfg.enable {
+    systemd.services.thermald = {
+      description = "Thermal Daemon Service";
+      wantedBy = [ "multi-user.target" ];
+      script = "exec ${pkgs.thermald}/sbin/thermald --no-daemon --dbus-enable";
+    };
+  };
+}
diff --git a/nixos/modules/services/logging/syslog-ng.nix b/nixos/modules/services/logging/syslog-ng.nix
index 8b892a33bb7d..0b3f0cabb007 100644
--- a/nixos/modules/services/logging/syslog-ng.nix
+++ b/nixos/modules/services/logging/syslog-ng.nix
@@ -49,7 +49,9 @@ in {
       extraModulePaths = mkOption {
         type = types.listOf types.str;
         default = [];
-        example = [ "${pkgs.syslogng_incubator}/lib/syslog-ng" ];
+        example = literalExample ''
+          [ "''${pkgs.syslogng_incubator}/lib/syslog-ng" ]
+        '';
         description = ''
           A list of paths that should be included in syslog-ng's
           <literal>--module-path</literal> option. They should usually
diff --git a/nixos/modules/services/mail/mlmmj.nix b/nixos/modules/services/mail/mlmmj.nix
new file mode 100644
index 000000000000..637974f05cd1
--- /dev/null
+++ b/nixos/modules/services/mail/mlmmj.nix
@@ -0,0 +1,128 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.services.mlmmj;
+  stateDir = "/var/lib/mlmmj";
+  spoolDir = "/var/spool/mlmmj";
+  listDir = domain: list: "${spoolDir}/${domain}/${list}";
+  listCtl = domain: list: "${listDir domain list}/control";
+  transport = domain: list: "${domain}--${list}@local.list.mlmmj mlmmj:${domain}/${list}";
+  virtual = domain: list: "${list}@${domain} ${domain}--${list}@local.list.mlmmj";
+  alias = domain: list: "${list}: \"|${pkgs.mlmmj}/mlmmj-receive -L ${listDir domain list}/\"";
+  subjectPrefix = list: "[${list}]";
+  listAddress = domain: list: "${list}@${domain}";
+  customHeaders = list: domain: [ "List-Id: ${list}" "Reply-To: ${list}@${domain}" ];
+  footer = domain: list: "To unsubscribe send a mail to ${list}+unsubscribe@${domain}";
+  createList = d: l: ''
+    ${pkgs.coreutils}/bin/mkdir -p ${listCtl d l}
+    echo ${listAddress d l} > ${listCtl d l}/listadress
+    echo "${lib.concatStringsSep "\n" (customHeaders d l)}" > ${listCtl d l}/customheaders
+    echo ${footer d l} > ${listCtl d l}/footer
+    echo ${subjectPrefix l} > ${listCtl d l}/prefix
+  '';
+in
+
+{
+
+  ###### interface
+
+  options = {
+
+    services.mlmmj = {
+
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Enable mlmmj";
+      };
+
+      user = mkOption {
+        type = types.str;
+        default = "mlmmj";
+        description = "mailinglist local user";
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "mlmmj";
+        description = "mailinglist local group";
+      };
+
+      listDomain = mkOption {
+        type = types.str;
+        default = "localhost";
+        description = "Set the mailing list domain";
+      };
+
+      mailLists = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = "The collection of hosted maillists";
+      };
+
+    };
+
+  };
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+
+    users.extraUsers = singleton {
+      name = cfg.user;
+      description = "mlmmj user";
+      home = stateDir;
+      createHome = true;
+      uid = config.ids.uids.mlmmj;
+      group = cfg.group;
+      useDefaultShell = true;
+    };
+
+    users.extraGroups = singleton {
+      name = cfg.group;
+      gid = config.ids.gids.mlmmj;
+    };
+
+    services.postfix = {
+      enable = true;
+      recipientDelimiter= "+";
+      extraMasterConf = ''
+        mlmmj unix - n n - - pipe flags=ORhu user=mlmmj argv=${pkgs.mlmmj}/bin/mlmmj-recieve -F -L ${spoolDir}/$nextHop
+      '';
+
+      extraAliases = concatMapStrings (alias cfg.listDomain) cfg.mailLists;
+
+      extraConfig = ''
+        transport = hash:${stateDir}/transports
+        virtual = hash:${stateDir}/virtuals
+      '';
+    };
+
+    environment.systemPackages = [ pkgs.mlmmj ];
+
+    system.activationScripts.mlmmj = ''
+          ${pkgs.coreutils}/bin/mkdir -p ${stateDir} ${spoolDir}/${cfg.listDomain}
+          ${pkgs.coreutils}/bin/chown -R ${cfg.user}:${cfg.group} ${spoolDir}
+          ${lib.concatMapStrings (createList cfg.listDomain) cfg.mailLists}
+          echo ${lib.concatMapStrings (virtual cfg.listDomain) cfg.mailLists} > ${stateDir}/virtuals
+          echo ${cfg.listDomain} mailman: > ${stateDir}/transports
+          echo ${lib.concatMapStrings (transport cfg.listDomain) cfg.mailLists} >> ${stateDir}/transports
+    '';
+
+    systemd.services."mlmmj-maintd" = {
+      description = "mlmmj maintenance daemon";
+      wantedBy = [ "multi-user.target" ];
+
+      serviceConfig = {
+        User = cfg.user;
+        Group = cfg.group;
+        ExecStart = "${pkgs.mlmmj}/bin/mlmmj-maintd -F -d ${spoolDir}/${cfg.listDomain}";
+      };
+    };
+
+  };
+
+}
diff --git a/nixos/modules/services/misc/nixos-manual.nix b/nixos/modules/services/misc/nixos-manual.nix
index 808c5dcbdc6f..c0d7885280a5 100644
--- a/nixos/modules/services/misc/nixos-manual.nix
+++ b/nixos/modules/services/misc/nixos-manual.nix
@@ -28,7 +28,7 @@ let
     options = eval.options;
   };
 
-  entry = "${manual.manual}/share/doc/nixos/manual.html";
+  entry = "${manual.manual}/share/doc/nixos/index.html";
 
   help = pkgs.writeScriptBin "nixos-help"
     ''
diff --git a/nixos/modules/services/misc/siproxd.nix b/nixos/modules/services/misc/siproxd.nix
new file mode 100644
index 000000000000..9e8fb6c228f2
--- /dev/null
+++ b/nixos/modules/services/misc/siproxd.nix
@@ -0,0 +1,180 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.services.siproxd;
+
+  conf = ''
+    daemonize = 0
+    rtp_proxy_enable = 1
+    user = siproxd
+    if_inbound  = ${cfg.ifInbound}
+    if_outbound = ${cfg.ifOutbound}
+    sip_listen_port = ${toString cfg.sipListenPort}
+    rtp_port_low    = ${toString cfg.rtpPortLow}
+    rtp_port_high   = ${toString cfg.rtpPortHigh}
+    rtp_dscp        = ${toString cfg.rtpDscp}
+    sip_dscp        = ${toString cfg.sipDscp}
+    ${optionalString (cfg.hostsAllowReg != []) "hosts_allow_reg = ${concatStringsSep "," cfg.hostsAllowReg}"}
+    ${optionalString (cfg.hostsAllowSip != []) "hosts_allow_sip = ${concatStringsSep "," cfg.hostsAllowSip}"}
+    ${optionalString (cfg.hostsDenySip != []) "hosts_deny_sip  = ${concatStringsSep "," cfg.hostsDenySip}"}
+    ${if (cfg.passwordFile != "") then "proxy_auth_pwfile = ${cfg.passwordFile}" else ""}
+    ${cfg.extraConfig}
+  '';
+
+  confFile = builtins.toFile "siproxd.conf" conf;
+
+in
+{
+  ##### interface
+
+  options = {
+
+    services.siproxd = {
+
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to enable the Siproxd SIP 
+	  proxy/masquerading daemon.
+        '';
+      };
+
+      ifInbound = mkOption {
+        type = types.str;
+        example = "eth0";
+        description = "Local network interface";
+      };
+
+      ifOutbound = mkOption {
+        type = types.str;
+        example = "ppp0";
+        description = "Public network interface";
+      };
+
+      hostsAllowReg = mkOption {
+        type = types.listOf types.str;
+	default = [ ];
+        example = [ "192.168.1.0/24" "192.168.2.0/24" ];
+	description = ''
+          Acess control list for incoming SIP registrations.
+        '';
+      };
+
+      hostsAllowSip = mkOption {
+        type = types.listOf types.str;
+	default = [ ];
+        example = [ "123.45.0.0/16" "123.46.0.0/16" ];
+	description = ''
+          Acess control list for incoming SIP traffic.
+        '';
+      };
+
+      hostsDenySip = mkOption {
+        type = types.listOf types.str;
+	default = [ ];
+        example = [ "10.0.0.0/8" "11.0.0.0/8" ];
+	description = ''
+          Acess control list for denying incoming
+	   SIP registrations and traffic.
+        '';
+      };
+
+      sipListenPort = mkOption {
+        type = types.int;
+        default = 5060;
+        description = ''
+	  Port to listen for incoming SIP messages.
+        '';
+      };
+
+      rtpPortLow = mkOption {
+        type = types.int;
+        default = 7070;
+        description = ''
+         Bottom of UDP port range for incoming and outgoing RTP traffic
+        '';
+      };
+
+      rtpPortHigh = mkOption {
+        type = types.int;
+        default = 7089;
+        description = ''
+         Top of UDP port range for incoming and outgoing RTP traffic
+        '';
+      };
+
+      rtpTimeout = mkOption {
+        type = types.int;
+        default = 300;
+        description = ''
+          Timeout for an RTP stream. If for the specified 
+          number of seconds no data is relayed on an active
+          stream, it is considered dead and will be killed.
+        '';
+      };
+
+      rtpDscp = mkOption {
+        type = types.int;
+        default = 46;
+        description = ''
+          DSCP (differentiated services) value to be assigned
+          to RTP packets. Allows QOS aware routers to handle 
+          different types traffic with different priorities.
+        '';
+      };
+
+      sipDscp = mkOption {
+        type = types.int;
+        default = 0;
+        description = ''
+          DSCP (differentiated services) value to be assigned
+          to SIP packets. Allows QOS aware routers to handle 
+          different types traffic with different priorities.
+        '';
+      };
+
+      passwordFile = mkOption {
+        type = types.str;
+        default = "";
+        description = ''
+          Path to per-user password file.
+        '';
+      };
+
+      extraConfig = mkOption {
+        type = types.lines;
+        default = "";
+        description = ''
+          Extra configuration to add to siproxd configuration.
+        '';
+      };
+
+    };
+
+  };
+
+  ##### implementation
+
+  config = mkIf cfg.enable {
+
+    users.extraUsers = singleton {
+      name = "siproxyd";
+      uid = config.ids.uids.siproxd;
+    };
+
+    systemd.services.siproxd = {
+      description = "SIP proxy/masquerading daemon";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+      serviceConfig = {
+        ExecStart = "${pkgs.siproxd}/sbin/siproxd -c ${confFile}";
+      };
+    };
+
+  };
+
+}
diff --git a/nixos/modules/services/misc/zookeeper.nix b/nixos/modules/services/misc/zookeeper.nix
new file mode 100755
index 000000000000..47675b8876cc
--- /dev/null
+++ b/nixos/modules/services/misc/zookeeper.nix
@@ -0,0 +1,145 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.zookeeper;
+  
+  zookeeperConfig = ''
+    dataDir=${cfg.dataDir}
+    clientPort=${toString cfg.port}
+    autopurge.purgeInterval=${toString cfg.purgeInterval}
+    ${cfg.extraConf}
+    ${cfg.servers}
+  '';
+
+  configDir = pkgs.buildEnv {
+    name = "zookeeper-conf";
+    paths = [
+      (pkgs.writeTextDir "zoo.cfg" zookeeperConfig)
+      (pkgs.writeTextDir "log4j.properties" cfg.logging)
+    ];
+  };
+
+in {
+
+  options.services.zookeeper = {
+    enable = mkOption {
+      description = "Whether to enable Zookeeper.";
+      default = false;
+      type = types.uniq types.bool;
+    };
+
+    port = mkOption {
+      description = "Zookeeper Client port.";
+      default = 2181;
+      type = types.int;
+    };
+
+    id = mkOption {
+      description = "Zookeeper ID.";
+      default = 0;
+      type = types.int;
+    };
+
+    purgeInterval = mkOption {
+      description = ''
+        The time interval in hours for which the purge task has to be triggered. Set to a positive integer (1 and above) to enable the auto purging.
+      '';
+      default = 1;
+      type = types.int;
+    };
+ 
+    extraConf = mkOption {
+      description = "Extra configuration for Zookeeper.";
+      type = types.lines;
+      default = ''
+        initLimit=5
+        syncLimit=2
+        tickTime=2000
+      '';
+    };
+
+    servers = mkOption {
+      description = "All Zookeeper Servers.";
+      default = "";
+      type = types.lines;
+      example = ''
+        server.0=host0:2888:3888
+        server.1=host1:2888:3888
+        server.2=host2:2888:3888
+      '';
+    };
+
+    logging = mkOption {
+      description = "Zookeeper logging configuration.";
+      default = ''
+        zookeeper.root.logger=INFO, CONSOLE
+        log4j.rootLogger=INFO, CONSOLE
+        log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
+        log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
+        log4j.appender.CONSOLE.layout.ConversionPattern=[myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n
+      '';
+      type = types.lines;
+    };
+
+    dataDir = mkOption {
+      type = types.path;
+      default = "/var/lib/zookeeper";
+      description = ''
+        Data directory for Zookeeper
+      '';
+    };
+
+    extraCmdLineOptions = mkOption {
+      description = "Extra command line options for the Zookeeper launcher.";
+      default = [ "-Dcom.sun.management.jmxremote" "-Dcom.sun.management.jmxremote.local.only=true" ];
+      type = types.listOf types.string;
+      example = [ "-Djava.net.preferIPv4Stack=true" "-Dcom.sun.management.jmxremote" "-Dcom.sun.management.jmxremote.local.only=true" ];
+    };
+
+    preferIPv4 = mkOption {
+      type = types.bool;
+      default = true;
+      description = ''
+        Add the -Djava.net.preferIPv4Stack=true flag to the Zookeeper server.
+      '';
+    };
+
+  };
+
+
+  config = mkIf cfg.enable {
+    systemd.services.zookeeper = {
+      description = "Zookeeper Daemon";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network-interfaces.target" ];
+      environment = { ZOOCFGDIR = configDir; };
+      serviceConfig = {
+        ExecStart = ''
+          ${pkgs.jre}/bin/java \
+            -cp "${pkgs.zookeeper}/lib/*:${pkgs.zookeeper}/${pkgs.zookeeper.name}.jar:${configDir}" \
+            ${toString cfg.extraCmdLineOptions} \
+            -Dzookeeper.datadir.autocreate=false \
+            ${optionalString cfg.preferIPv4 "-Djava.net.preferIPv4Stack=true"} \
+            org.apache.zookeeper.server.quorum.QuorumPeerMain \
+            ${configDir}/zoo.cfg
+        '';
+        User = "zookeeper";
+        PermissionsStartOnly = true;
+      };
+      preStart = ''
+        mkdir -m 0700 -p ${cfg.dataDir}
+        if [ "$(id -u)" = 0 ]; then chown zookeeper ${cfg.dataDir}; fi
+        echo "${toString cfg.id}" > ${cfg.dataDir}/myid
+      '';
+    };
+
+    users.extraUsers = singleton {
+      name = "zookeeper";
+      uid = config.ids.uids.zookeeper;
+      description = "Zookeeper daemon user";
+      home = cfg.dataDir;
+    };
+  };
+}
diff --git a/nixos/modules/services/monitoring/riemann-dash.nix b/nixos/modules/services/monitoring/riemann-dash.nix
new file mode 100644
index 000000000000..148dc0468059
--- /dev/null
+++ b/nixos/modules/services/monitoring/riemann-dash.nix
@@ -0,0 +1,79 @@
+{ config, pkgs, lib, ... }:
+
+with pkgs;
+with lib;
+
+let
+
+  cfg = config.services.riemann-dash;
+
+  conf = writeText "config.rb" ''
+    riemann_base = "${cfg.dataDir}"
+    config.store[:ws_config] = "#{riemann_base}/config/config.json"
+    ${cfg.config}
+  '';
+
+  launcher = writeScriptBin "riemann-dash" ''
+    #!/bin/sh
+    exec ${rubyLibs.riemann_dash}/bin/riemann-dash ${conf}
+  '';
+
+in {
+
+  options = {
+
+    services.riemann-dash = {
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Enable the riemann-dash dashboard daemon.
+        '';
+      };
+      config = mkOption {
+        type = types.lines;
+        description = ''
+          Contents added to the end of the riemann-dash configuration file.
+        '';
+      };
+      dataDir = mkOption {
+        type = types.str;
+        default = "/var/riemann-dash";
+        description = ''
+          Location of the riemann-base dir. The dashboard configuration file is
+          is stored to this directory. The directory is created automatically on
+          service start, and owner is set to the riemanndash user.
+        '';
+      };
+    };
+
+  };
+
+  config = mkIf cfg.enable {
+
+    users.extraGroups.riemanndash.gid = config.ids.gids.riemanndash;
+
+    users.extraUsers.riemanndash = {
+      description = "riemann-dash daemon user";
+      uid = config.ids.uids.riemanndash;
+      group = "riemanndash";
+    };
+
+    systemd.services.riemann-dash = {
+      wantedBy = [ "multi-user.target" ];
+      wants = [ "riemann.service" ];
+      after = [ "riemann.service" ];
+      preStart = ''
+        mkdir -p ${cfg.dataDir}/config
+        chown -R riemanndash:riemanndash ${cfg.dataDir}
+      '';
+      serviceConfig = {
+        User = "riemanndash";
+        ExecStart = "${launcher}/bin/riemann-dash";
+        PermissionsStartOnly = true;
+      };
+    };
+
+  };
+
+}
diff --git a/nixos/modules/services/monitoring/riemann.nix b/nixos/modules/services/monitoring/riemann.nix
new file mode 100644
index 000000000000..a1935c29a043
--- /dev/null
+++ b/nixos/modules/services/monitoring/riemann.nix
@@ -0,0 +1,77 @@
+{ config, pkgs, lib, ... }:
+
+with pkgs;
+with lib;
+
+let
+
+  cfg = config.services.riemann;
+
+  classpath = concatStringsSep ":" (
+    cfg.extraClasspathEntries ++ [ "${riemann}/share/java/riemann.jar" ]
+  );
+
+  launcher = writeScriptBin "riemann" ''
+    #!/bin/sh
+    exec ${openjdk}/bin/java ${concatStringsSep "\n" cfg.extraJavaOpts} \
+      -cp ${classpath} \
+      riemann.bin ${writeText "riemann.config" cfg.config}
+  '';
+
+in {
+
+  options = {
+
+    services.riemann = {
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Enable the Riemann network monitoring daemon.
+        '';
+      };
+      config = mkOption {
+        type = types.lines;
+        description = ''
+          Contents of the Riemann configuration file.
+        '';
+      };
+      extraClasspathEntries = mkOption {
+        type = with types; listOf str;
+        default = [];
+        description = ''
+          Extra entries added to the Java classpath when running Riemann.
+        '';
+      };
+      extraJavaOpts = mkOption {
+        type = with types; listOf str;
+        default = [];
+        description = ''
+          Extra Java options used when launching Riemann.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    users.extraGroups.riemann.gid = config.ids.gids.riemann;
+
+    users.extraUsers.riemann = {
+      description = "riemann daemon user";
+      uid = config.ids.uids.riemann;
+      group = "riemann";
+    };
+
+    systemd.services.riemann = {
+      wantedBy = [ "multi-user.target" ];
+      path = [ inetutils ];
+      serviceConfig = {
+        User = "riemann";
+        ExecStart = "${launcher}/bin/riemann";
+      };
+    };
+
+  };
+
+}
diff --git a/nixos/modules/services/monitoring/smartd.nix b/nixos/modules/services/monitoring/smartd.nix
index 250035fe447f..803bd9e9a65a 100644
--- a/nixos/modules/services/monitoring/smartd.nix
+++ b/nixos/modules/services/monitoring/smartd.nix
@@ -62,7 +62,7 @@ in
       enable = mkOption {
         default = false;
         type = types.bool;
-        example = "true";
+        example = true;
         description = ''
           Run smartd from the smartmontools package. Note that e-mail
           notifications will not be enabled unless you configure the list of
diff --git a/nixos/modules/services/networking/dhcpcd.nix b/nixos/modules/services/networking/dhcpcd.nix
index 5a353fc0942a..89aa9bdb6b68 100644
--- a/nixos/modules/services/networking/dhcpcd.nix
+++ b/nixos/modules/services/networking/dhcpcd.nix
@@ -6,10 +6,13 @@ let
 
   dhcpcd = if !config.boot.isContainer then pkgs.dhcpcd else pkgs.dhcpcd.override { udev = null; };
 
+  cfg = config.networking.dhcpcd;
+
   # Don't start dhcpcd on explicitly configured interfaces or on
-  # interfaces that are part of a bridge.
+  # interfaces that are part of a bridge, bond or sit device.
   ignoredInterfaces =
     map (i: i.name) (filter (i: i.ipAddress != null) (attrValues config.networking.interfaces))
+    ++ mapAttrsToList (i: _: i) config.networking.sits
     ++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bridges))
     ++ concatLists (attrValues (mapAttrs (n: v: v.interfaces) config.networking.bonds))
     ++ config.networking.dhcpcd.denyInterfaces;
@@ -35,9 +38,12 @@ let
       # Ignore peth* devices; on Xen, they're renamed physical
       # Ethernet cards used for bridging.  Likewise for vif* and tap*
       # (Xen) and virbr* and vnet* (libvirt).
-      denyinterfaces ${toString ignoredInterfaces} lo peth* vif* tap* tun* virbr* vnet* vboxnet*
+      denyinterfaces ${toString ignoredInterfaces} lo peth* vif* tap* tun* virbr* vnet* vboxnet* sit*
+
+      # Use the list of allowed interfaces if specified
+      ${optionalString (cfg.allowInterfaces != null) "allowinterfaces ${toString cfg.allowInterfaces}"}
 
-      ${config.networking.dhcpcd.extraConfig}
+      ${cfg.extraConfig}
     '';
 
   # Hook for emitting ip-up/ip-down events.
@@ -80,6 +86,17 @@ in
       '';
     };
 
+    networking.dhcpcd.allowInterfaces = mkOption {
+      type = types.nullOr (types.listOf types.str);
+      default = null;
+      description = ''
+         Enable the DHCP client for any interface whose name matches
+         any of the shell glob patterns in this list. Any interface not
+         explicitly matched by this pattern will be denied. This pattern only
+         applies when non-null.
+      '';
+    };
+
     networking.dhcpcd.extraConfig = mkOption {
       type = types.lines;
       default = "";
diff --git a/nixos/modules/services/networking/dnsmasq.nix b/nixos/modules/services/networking/dnsmasq.nix
index 8e38b9d017a3..d2a8af6ac8b1 100644
--- a/nixos/modules/services/networking/dnsmasq.nix
+++ b/nixos/modules/services/networking/dnsmasq.nix
@@ -6,10 +6,12 @@ let
   cfg = config.services.dnsmasq;
   dnsmasq = pkgs.dnsmasq;
 
-  serversParam = concatMapStrings (s: "-S ${s} ") cfg.servers;
-
   dnsmasqConf = pkgs.writeText "dnsmasq.conf" ''
-    ${cfg.extraConfig}
+    ${optionalString cfg.resolveLocalQueries ''
+      conf-file=/etc/dnsmasq-conf.conf
+      resolv-file=/etc/dnsmasq-resolv.conf
+    ''}
+      ${cfg.extraConfig}
   '';
 
 in
@@ -29,6 +31,14 @@ in
         '';
       };
 
+      resolveLocalQueries = mkOption {
+        default = true;
+        description = ''
+          Whether dnsmasq should resolve local queries (i.e. add 127.0.0.1 to
+          /etc/resolv.conf)
+        '';
+      };
+
       servers = mkOption {
         default = [];
         example = [ "8.8.8.8" "8.8.4.4" ];
@@ -37,6 +47,8 @@ in
         '';
       };
 
+
+
       extraConfig = mkOption {
         type = types.string;
         default = "";
@@ -55,16 +67,31 @@ in
 
   config = mkIf config.services.dnsmasq.enable {
 
-    jobs.dnsmasq =
-      { description = "dnsmasq daemon";
-
-        startOn = "ip-up";
+    environment.systemPackages = [ dnsmasq ]
+      ++ (if cfg.resolveLocalQueries then [ pkgs.openresolv ] else []);
 
-        daemonType = "daemon";
+    services.dbus.packages = [ dnsmasq ];
 
-        exec = "${dnsmasq}/bin/dnsmasq -R ${serversParam} -o -C ${dnsmasqConf}";
+    users.extraUsers = singleton
+      { name = "dnsmasq";
+        uid = config.ids.uids.dnsmasq;
+        description = "Dnsmasq daemon user";
+        home = "/var/empty";
       };
 
+    systemd.services.dnsmasq = {
+        description = "dnsmasq daemon";
+        after = [ "network.target" ];
+        wantedBy = [ "multi-user.target" ];
+        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/ircd-hybrid/default.nix b/nixos/modules/services/networking/ircd-hybrid/default.nix
index a3d5b71740f6..2c397f94d230 100644
--- a/nixos/modules/services/networking/ircd-hybrid/default.nix
+++ b/nixos/modules/services/networking/ircd-hybrid/default.nix
@@ -66,7 +66,7 @@ in
 
       rsaKey = mkOption {
         default = null;
-        example = /root/certificates/irc.key;
+        example = literalExample "/root/certificates/irc.key";
         description = "
           IRCD server RSA key.
         ";
@@ -74,7 +74,7 @@ in
 
       certificate = mkOption {
         default = null;
-        example = /root/certificates/irc.pem;
+        example = literalExample "/root/certificates/irc.pem";
         description = "
           IRCD server SSL certificate. There are some limitations - read manual.
         ";
diff --git a/nixos/modules/services/networking/radvd.nix b/nixos/modules/services/networking/radvd.nix
index 08762c9c8372..0199502163a3 100644
--- a/nixos/modules/services/networking/radvd.nix
+++ b/nixos/modules/services/networking/radvd.nix
@@ -52,24 +52,32 @@ in
 
   config = mkIf cfg.enable {
 
-    environment.systemPackages = [ pkgs.radvd ];
+    users.extraUsers.radvd =
+      { uid = config.ids.uids.radvd;
+        description = "Router Advertisement Daemon User";
+      };
 
-    jobs.radvd =
+    systemd.services.radvd =
       { description = "IPv6 Router Advertisement Daemon";
 
-        startOn = "started network-interfaces";
+        wantedBy = [ "multi-user.target" ];
+
+        after = [ "network.target" ];
 
-        preStart =
-          ''
-            # !!! Radvd only works if IPv6 forwarding is enabled.  But
-            # this should probably be done somewhere else (and not
-            # necessarily for all interfaces).
-            echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
-          '';
+        path = [ pkgs.radvd ];
 
-        exec = "${pkgs.radvd}/sbin/radvd -m syslog -s -C ${confFile}";
+        preStart = ''
+          mkdir -m 755 -p /run/radvd
+          chown radvd /run/radvd
+        '';
 
-        daemonType = "fork";
+        serviceConfig =
+          { ExecStart = "@${pkgs.radvd}/sbin/radvd radvd"
+              + " -p /run/radvd/radvd.pid -m syslog -u radvd -C ${confFile}";
+            Restart = "always";
+            Type = "forking";
+            PIDFile = "/run/radvd/radvd.pid";
+          };
       };
 
   };
diff --git a/nixos/modules/services/networking/znc.nix b/nixos/modules/services/networking/znc.nix
index 4d53cd0750fb..2aa63c6e7dfb 100644
--- a/nixos/modules/services/networking/znc.nix
+++ b/nixos/modules/services/networking/znc.nix
@@ -228,7 +228,7 @@ in
       modulePackages = mkOption {
         type = types.listOf types.package;
         default = [ ];
-        example = [ pkgs.zncModules.fish pkgs.zncModules.push ];
+        example = literalExample "[ pkgs.zncModules.fish pkgs.zncModules.push ]";
         description = ''
           A list of global znc module packages to add to znc.
         '';
diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix
index 78f3cf2b7e49..9ac28373dacb 100644
--- a/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/default.nix
@@ -130,7 +130,7 @@ let
   '';
 
 
-  loggingConf = ''
+  loggingConf = (if mainCfg.logFormat != "none" then ''
     ErrorLog ${mainCfg.logDir}/error_log
 
     LogLevel notice
@@ -141,7 +141,9 @@ let
     LogFormat "%{User-agent}i" agent
 
     CustomLog ${mainCfg.logDir}/access_log ${mainCfg.logFormat}
-  '';
+  '' else ''
+    ErrorLog /dev/null
+  '');
 
 
   browserHacks = ''
@@ -421,7 +423,7 @@ in
       package = mkOption {
         type = types.package;
         default = pkgs.apacheHttpd.override { mpm = mainCfg.multiProcessingModule; };
-        example = "pkgs.apacheHttpd_2_4";
+        example = literalExample "pkgs.apacheHttpd_2_4";
         description = ''
           Overridable attribute of the Apache HTTP Server package to use.
         '';
diff --git a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix
index aa9aec87f0c4..76c64f8cb29b 100644
--- a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix
@@ -133,6 +133,7 @@ in
         RewriteEngine On
         RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
         RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
+        ${concatMapStringsSep "\n" (u: "RewriteCond %{REQUEST_URI} !^${u.urlPath}") serverInfo.serverConfig.servedDirs}
         RewriteRule ${if config.enableUploads
           then "!^/images"
           else "^.*\$"
diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix
index 06bcb6dbb8be..049c96c54e71 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome3.nix
+++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix
@@ -37,7 +37,7 @@ in {
 
     services.xserver.desktopManager.gnome3.sessionPath = mkOption {
       default = [];
-      example = "[ pkgs.gnome3.gpaste ]";
+      example = literalExample "[ pkgs.gnome3.gpaste ]";
       description = "Additional list of packages to be added to the session search path.
                      Useful for gnome shell extensions or gsettings-conditionated autostart.";
       apply = list: list ++ [ gnome3.gnome_shell ]; 
@@ -51,7 +51,7 @@ in {
     
     environment.gnome3.excludePackages = mkOption {
       default = [];
-      example = "[ pkgs.gnome3.totem ]";
+      example = literalExample "[ pkgs.gnome3.totem ]";
       type = types.listOf types.package;
       description = "Which packages gnome should exclude from the default environment";
     };
diff --git a/nixos/modules/services/x11/desktop-managers/kde4.nix b/nixos/modules/services/x11/desktop-managers/kde4.nix
index f74dd7e04449..669ddbd904f0 100644
--- a/nixos/modules/services/x11/desktop-managers/kde4.nix
+++ b/nixos/modules/services/x11/desktop-managers/kde4.nix
@@ -65,7 +65,7 @@ in
 
     environment.kdePackages = mkOption {
       default = [];
-      example = "[ pkgs.kde4.kdesdk ]";
+      example = literalExample "[ pkgs.kde4.kdesdk ]";
       type = types.listOf types.package;
       description = "This option is obsolete.  Please use <option>environment.systemPackages</option> instead.";
     };
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix
index 3bf18bd58c84..6e61576f501f 100644
--- a/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixos/modules/services/x11/display-managers/default.nix
@@ -251,14 +251,16 @@ in
 
         execCmd = mkOption {
           type = types.str;
-          example = "${pkgs.slim}/bin/slim";
+          example = literalExample ''
+            "''${pkgs.slim}/bin/slim"
+          '';
           description = "Command to start the display manager.";
         };
 
         environment = mkOption {
           type = types.attrsOf types.unspecified;
           default = {};
-          example = { SLIM_CFGFILE = /etc/slim.conf; };
+          example = { SLIM_CFGFILE = "/etc/slim.conf"; };
           description = "Additional environment variables needed by the display manager.";
         };
 
diff --git a/nixos/modules/services/x11/window-managers/fluxbox.nix b/nixos/modules/services/x11/window-managers/fluxbox.nix
new file mode 100644
index 000000000000..4748ce99ccf2
--- /dev/null
+++ b/nixos/modules/services/x11/window-managers/fluxbox.nix
@@ -0,0 +1,28 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.xserver.windowManager.fluxbox;
+in
+{
+  ###### interface
+  options = {
+    services.xserver.windowManager.fluxbox.enable = mkOption {
+      default = false;
+      description = "Enable the Fluxbox window manager.";
+    };
+  };
+
+  ###### implementation
+  config = mkIf cfg.enable {
+    services.xserver.windowManager.session = singleton {
+      name = "fluxbox";
+      start = ''
+        ${pkgs.fluxbox}/bin/startfluxbox &
+        waitPID=$!
+      '';
+    };
+    environment.systemPackages = [ pkgs.fluxbox ];
+  };
+}
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 5f3e8003b45b..21eaf6bb6b76 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -151,7 +151,7 @@ in
       modules = mkOption {
         type = types.listOf types.path;
         default = [];
-        example = [ pkgs.xf86_input_wacom ];
+        example = literalExample "[ pkgs.xf86_input_wacom ]";
         description = "Packages to be added to the module search path of the X server.";
       };
 
@@ -201,7 +201,7 @@ in
       vaapiDrivers = mkOption {
         type = types.listOf types.path;
         default = [ ];
-        example = "[ pkgs.vaapiIntel pkgs.vaapiVdpau ]";
+        example = literalExample "[ pkgs.vaapiIntel pkgs.vaapiVdpau ]";
         description = ''
           Packages providing libva acceleration drivers.
         '';
diff --git a/nixos/modules/system/boot/kernel.nix b/nixos/modules/system/boot/kernel.nix
index 9beb7fabce12..79b173a6ead8 100644
--- a/nixos/modules/system/boot/kernel.nix
+++ b/nixos/modules/system/boot/kernel.nix
@@ -195,6 +195,7 @@ in
         "xhci_hcd"
         "usbhid"
         "hid_generic"
+        "hid_apple" "hid_logitech_dj" "hid_lenovo_tpkbd" "hid_roccat"
 
         # Unix domain sockets (needed by udev).
         "unix"
diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix
index 0cc060db8f90..bc9a155ac95b 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.
         '';
       };
 
@@ -260,6 +276,9 @@ 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";}];
+
     })
 
   ];
diff --git a/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixos/modules/system/boot/loader/grub/install-grub.pl
index c3aa8518b8bb..d8ee8b500970 100644
--- a/nixos/modules/system/boot/loader/grub/install-grub.pl
+++ b/nixos/modules/system/boot/loader/grub/install-grub.pl
@@ -1,5 +1,6 @@
 use strict;
 use warnings;
+use Class::Struct;
 use XML::LibXML;
 use File::Basename;
 use File::Path;
@@ -27,6 +28,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 +48,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,24 +57,109 @@ 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 GetFs {
+    my ($dir) = @_;
+    my ($status, @dfOut) = runCommand("df -T $dir");
+    if ($status != 0 || $#dfOut != 1) {
+        die "Failed to retrieve output about $dir from `df`";
+    }
+    my @boot = split(/[ \n\t]+/, $dfOut[1]);
+    return Fs->new(device => $boot[0], type => $boot[1], mount => $boot[6]);
+}
+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->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, @info) = runCommand("btrfs subvol show @{[$fs->mount]}");
+                if ($status != 0) {
+                    die "Failed to retreive subvolume info for @{[$fs->mount]}";
+                }
+                my @subvols = join("", @info) =~ m/Name:[ \t\n]*([^ \t\n]*)/;
+                if ($#subvols > 0) {
+                    die "Btrfs subvol name for @{[$fs->device]} listed multiple times in mount\n"
+                } elsif ($#subvols == 0) {
+                    $path = "/$subvols[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");
 
+# We don't need to copy if we can read the kernels directly
+if ($grubStore->search ne "") {
+	$copyKernels = 0;
+}
 
 # Generate the header.
 my $conf .= "# Automatically generated.  DO NOT EDIT THIS FILE!\n";
@@ -77,12 +171,14 @@ 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 {
     $conf .= "
+        " . $grubBoot->search . "
+        " . $grubStore->search . "
         if [ -s \$prefix/grubenv ]; then
           load_env
         fi
@@ -103,7 +199,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
@@ -117,7 +213,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
@@ -139,7 +235,7 @@ mkpath("/boot/kernels", 0, 0755) if $copyKernels;
 
 sub copyToKernelsDir {
     my ($path) = @_;
-    return $path unless $copyKernels;
+    return $grubStore->path . substr($path, length("/nix")) unless $copyKernels;
     $path =~ /\/nix\/store\/(.*)/ or die;
     my $name = $1; $name =~ s/\//-/g;
     my $dst = "/boot/kernels/$name";
@@ -152,7 +248,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 {
@@ -179,6 +275,8 @@ sub addEntry {
         $conf .= "  " . ($xen ? "module" : "initrd") . " $initrd\n\n";
     } else {
         $conf .= "menuentry \"$name\" {\n";
+	$conf .= $grubBoot->search . "\n";
+	$conf .= $grubStore->search . "\n";
         $conf .= "  $extraPerEntryConfig\n" if $extraPerEntryConfig;
         $conf .= "  multiboot $xen $xenParams\n" if $xen;
         $conf .= "  " . ($xen ? "module" : "linux") . " $kernel $kernelParams\n";
@@ -196,7 +294,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/luksroot.nix b/nixos/modules/system/boot/luksroot.nix
index c923cc49c449..68392e3cfe25 100644
--- a/nixos/modules/system/boot/luksroot.nix
+++ b/nixos/modules/system/boot/luksroot.nix
@@ -348,7 +348,7 @@ in
 
               options = {
                 device = mkOption {
-                  default = /dev/sda1;
+                  default = "/dev/sda1";
                   type = types.path;
                   description = ''
                     An unencrypted device that will temporarily be mounted in stage-1.
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index 6a069c5d0540..426da778f434 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -199,6 +199,18 @@ let
         { object = pkgs.writeText "mdadm.conf" config.boot.initrd.mdadmConf;
           symlink = "/etc/mdadm.conf";
         }
+        { object = pkgs.stdenv.mkDerivation {
+            name = "initrd-kmod-blacklist-ubuntu";
+            builder = pkgs.writeText "builder.sh" ''
+              source $stdenv/setup
+              target=$out
+
+              ${pkgs.perl}/bin/perl -0pe 's/## file: iwlwifi.conf(.+?)##/##/s;' $src > $out
+            '';
+            src = "${pkgs.kmod-blacklist-ubuntu}/modprobe.conf";
+          };
+          symlink = "/etc/modprobe.d/ubuntu.conf";
+        }
       ];
   };
 
diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix
index d7deb44c407c..1c4bbc16b499 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 991f9f261450..7dabe70f00c4 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -7,6 +7,7 @@ let
   cfg = config.networking;
   interfaces = attrValues cfg.interfaces;
   hasVirtuals = any (i: i.virtual) interfaces;
+  hasSits = cfg.sits != { };
   hasBonds = cfg.bonds != { };
 
   interfaceOpts = { name, ... }: {
@@ -321,6 +322,66 @@ in
       };
     };
 
+    networking.sits = mkOption {
+      type = types.attrsOf types.optionSet;
+      default = { };
+      example = {
+        hurricane = {
+          remote = "10.0.0.1";
+          local = "10.0.0.22";
+          ttl = 255;
+        };
+        msipv6 = {
+          remote = "192.168.0.1";
+          dev = "enp3s0";
+          ttl = 127;
+        };
+      };
+      description = ''
+        This option allows you to define 6-to-4 interfaces which should be automatically created.
+      '';
+      options = {
+
+        remote = mkOption {
+          type = types.nullOr types.str;
+          default = null;
+          example = "10.0.0.1";
+          description = ''
+            The address of the remote endpoint to forward traffic over.
+          '';
+        };
+
+        local = mkOption {
+          type = types.nullOr types.str;
+          default = null;
+          example = "10.0.0.22";
+          description = ''
+            The address of the local endpoint which the remote
+            side should send packets to.
+          '';
+        };
+
+        ttl = mkOption {
+          type = types.nullOr types.int;
+          default = null;
+          example = 255;
+          description = ''
+            The time-to-live of the connection to the remote tunnel endpoint.
+          '';
+        };
+
+        dev = mkOption {
+          type = types.nullOr types.str;
+          default = null;
+          example = "enp4s0f0";
+          description = ''
+            The underlying network device on which the tunnel resides.
+          '';
+        };
+
+      };
+    };
+
     networking.vlans = mkOption {
       default = { };
       example = {
@@ -380,6 +441,7 @@ in
     boot.kernelModules = [ ]
       ++ optional cfg.enableIPv6 "ipv6"
       ++ optional hasVirtuals "tun"
+      ++ optional hasSits "sit"
       ++ optional hasBonds "bonding";
 
     boot.extraModprobeConfig =
@@ -641,6 +703,32 @@ in
             '';
           };
 
+        createSitDevice = n: v:
+          let
+            deps = optional (v.dev != null) "sys-subsystem-net-devices-${v.dev}.device";
+          in
+          { description = "6-to-4 Tunnel Interface ${n}";
+            wantedBy = [ "network.target" "sys-subsystem-net-devices-${n}.device" ];
+            bindsTo = deps;
+            after = deps;
+            serviceConfig.Type = "oneshot";
+            serviceConfig.RemainAfterExit = true;
+            path = [ pkgs.iproute ];
+            script = ''
+              # Remove Dead Interfaces
+              ip link show "${n}" >/dev/null 2>&1 && ip link delete "${n}"
+              ip link add "${n}" type sit \
+                ${optionalString (v.remote != null) "remote \"${v.remote}\""} \
+                ${optionalString (v.local != null) "local \"${v.local}\""} \
+                ${optionalString (v.ttl != null) "ttl ${toString v.ttl}"} \
+                ${optionalString (v.dev != null) "dev \"${v.dev}\""}
+              ip link set "${n}" up
+            '';
+            postStop = ''
+              ip link delete "${n}"
+            '';
+          };
+
         createVlanDevice = n: v:
           let
             deps = [ "sys-subsystem-net-devices-${v.interface}.device" ];
@@ -668,6 +756,7 @@ in
            map createTunDevice (filter (i: i.virtual) interfaces))
          // mapAttrs createBridgeDevice cfg.bridges
          // mapAttrs createBondDevice cfg.bonds
+         // mapAttrs createSitDevice cfg.sits
          // mapAttrs createVlanDevice cfg.vlans
          // { "network-setup" = networkSetup; };
 
diff --git a/nixos/modules/tasks/trackpoint.nix b/nixos/modules/tasks/trackpoint.nix
index d1c6f8ac1565..5d1bb631b54f 100644
--- a/nixos/modules/tasks/trackpoint.nix
+++ b/nixos/modules/tasks/trackpoint.nix
@@ -36,6 +36,14 @@ with lib;
           configures 97.
         '';
       };
+
+      emulateWheel = mkOption {
+        default = false;
+        type = types.bool;
+        description = ''
+          Enable scrolling while holding the middle mouse button.
+        '';
+      };
       
     };
 
@@ -44,17 +52,33 @@ with lib;
 
   ###### implementation
 
-  config = mkIf config.hardware.trackpoint.enable {
-
-    services.udev.extraRules =
-    ''
-      ACTION=="add|change", SUBSYSTEM=="input", ATTR{name}=="TPPS/2 IBM TrackPoint", ATTR{device/speed}="${toString config.hardware.trackpoint.speed}", ATTR{device/sensitivity}="${toString config.hardware.trackpoint.sensitivity}"
-    '';
-
-    system.activationScripts.trackpoint =
+  config = mkMerge [
+    (mkIf config.hardware.trackpoint.enable {
+      services.udev.extraRules =
       ''
-        ${config.systemd.package}/bin/udevadm trigger --attr-match=name="TPPS/2 IBM TrackPoint"
+        ACTION=="add|change", SUBSYSTEM=="input", ATTR{name}=="TPPS/2 IBM TrackPoint", ATTR{device/speed}="${toString config.hardware.trackpoint.speed}", ATTR{device/sensitivity}="${toString config.hardware.trackpoint.sensitivity}"
       '';
-  };
 
+      system.activationScripts.trackpoint =
+        ''
+          ${config.systemd.package}/bin/udevadm trigger --attr-match=name="TPPS/2 IBM TrackPoint"
+        '';
+    })
+
+    (mkIf config.hardware.trackpoint.emulateWheel {
+      services.xserver.config =
+        ''
+          Section "InputClass"
+            Identifier "Trackpoint Wheel Emulation"
+            MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"
+            MatchDevicePath "/dev/input/event*"
+            Option "EmulateWheel" "true"
+            Option "EmulateWheelButton" "2"
+            Option "Emulate3Buttons" "false"
+            Option "XAxisMapping" "6 7"
+            Option "YAxisMapping" "4 5"
+            EndSection
+        '';
+    })
+  ];
 }
diff --git a/nixos/modules/virtualisation/container-config.nix b/nixos/modules/virtualisation/container-config.nix
index 84e3aa283520..a7e8953827a6 100644
--- a/nixos/modules/virtualisation/container-config.nix
+++ b/nixos/modules/virtualisation/container-config.nix
@@ -18,77 +18,6 @@ with lib;
     # Shut up warnings about not having a boot loader.
     system.build.installBootLoader = "${pkgs.coreutils}/bin/true";
 
-    # Provide a root login prompt on /var/lib/root-login.socket that
-    # doesn't ask for a password. This socket can only be used by root
-    # on the host.
-    systemd.sockets.root-login =
-      { description = "Root Login Socket";
-        wantedBy = [ "sockets.target" ];
-        socketConfig =
-          { ListenStream = "/var/lib/root-login.socket";
-            SocketMode = "0600";
-            Accept = true;
-          };
-      };
-
-    systemd.services."root-login@" =
-      { description = "Root Login %i";
-        environment.TERM = "linux";
-        serviceConfig =
-          { Type = "simple";
-            StandardInput = "socket";
-            ExecStart = "${pkgs.socat}/bin/socat -t0 - \"exec:${pkgs.shadow}/bin/login -f root,pty,setsid,setpgid,stderr,ctty\"";
-            TimeoutStopSec = 1; # FIXME
-          };
-        restartIfChanged = false;
-      };
-
-    # Provide a daemon on /var/lib/run-command.socket that reads a
-    # command from stdin and executes it.
-    systemd.sockets.run-command =
-      { description = "Run Command Socket";
-        wantedBy = [ "sockets.target" ];
-        socketConfig =
-          { ListenStream = "/var/lib/run-command.socket";
-            SocketMode = "0600";  # only root can connect
-            Accept = true;
-          };
-      };
-
-    systemd.services."run-command@" =
-      { description = "Run Command %i";
-        environment.TERM = "linux";
-        serviceConfig =
-          { Type = "simple";
-            StandardInput = "socket";
-            TimeoutStopSec = 1; # FIXME
-          };
-        script =
-          ''
-            #! ${pkgs.stdenv.shell} -e
-            source /etc/bashrc
-            read c
-            eval "command=($c)"
-            exec "''${command[@]}"
-          '';
-        restartIfChanged = false;
-      };
-
-    systemd.services.container-startup-done =
-      { description = "Container Startup Notification";
-        wantedBy = [ "multi-user.target" ];
-        after = [ "multi-user.target" ];
-        script =
-          ''
-            if [ -p /var/lib/startup-done ]; then
-              echo done > /var/lib/startup-done
-            fi
-          '';
-        serviceConfig.Type = "oneshot";
-        serviceConfig.RemainAfterExit = true;
-        restartIfChanged = false;
-      };
-
     systemd.services.systemd-remount-fs.enable = false;
 
   };
diff --git a/nixos/modules/virtualisation/containers.nix b/nixos/modules/virtualisation/containers.nix
index 3942c41553cd..35455f17779f 100644
--- a/nixos/modules/virtualisation/containers.nix
+++ b/nixos/modules/virtualisation/containers.nix
@@ -10,7 +10,7 @@ let
     isExecutable = true;
     src = ./nixos-container.pl;
     perl = "${pkgs.perl}/bin/perl -I${pkgs.perlPackages.FileSlurp}/lib/perl5/site_perl";
-    inherit (pkgs) socat;
+    inherit (pkgs) utillinux;
   };
 
   # The container's init script, a small wrapper around the regular
@@ -265,9 +265,8 @@ in
           ExecReload = pkgs.writeScript "reload-container"
             ''
               #! ${pkgs.stdenv.shell} -e
-              SYSTEM_PATH=/nix/var/nix/profiles/system
-              echo $SYSTEM_PATH/bin/switch-to-configuration test | \
-                ${pkgs.socat}/bin/socat unix:$root/var/lib/run-command.socket -
+              ${nixos-container}/bin/nixos-container run "$INSTANCE" -- \
+                bash --login -c "/nix/var/nix/profiles/system/bin/switch-to-configuration test"
             '';
 
           SyslogIdentifier = "container %i";
diff --git a/nixos/modules/virtualisation/nixos-container.pl b/nixos/modules/virtualisation/nixos-container.pl
index bf6f16fc6c77..7403a42f0f14 100644
--- a/nixos/modules/virtualisation/nixos-container.pl
+++ b/nixos/modules/virtualisation/nixos-container.pl
@@ -7,7 +7,7 @@ use File::Slurp;
 use Fcntl ':flock';
 use Getopt::Long qw(:config gnu_getopt);
 
-my $socat = '@socat@/bin/socat';
+my $nsenter = "@utillinux@/bin/nsenter";
 
 # Ensure a consistent umask.
 umask 0022;
@@ -25,7 +25,6 @@ Usage: nixos-container list
        nixos-container login <container-name>
        nixos-container root-login <container-name>
        nixos-container run <container-name> -- args...
-       nixos-container set-root-password <container-name> <password>
        nixos-container show-ip <container-name>
        nixos-container show-host-key <container-name>
 EOF
@@ -186,6 +185,22 @@ sub stopContainer {
         or die "$0: failed to stop container\n";
 }
 
+# Return the PID of the init process of the container.
+sub getLeader {
+    my $s = `machinectl show "$containerName" -p Leader`;
+    chomp $s;
+    $s =~ /^Leader=(\d+)$/ or die "unable to get container's main PID\n";
+    return int($1);
+}
+
+# Run a command in the container.
+sub runInContainer {
+    my @args = @_;
+    my $leader = getLeader;
+    exec($nsenter, "-t", $leader, "-m", "-u", "-i", "-n", "-p", "--", @args);
+    die "cannot run ‘nsenter’: $!\n";
+}
+
 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);
@@ -235,28 +250,14 @@ elsif ($action eq "login") {
 }
 
 elsif ($action eq "root-login") {
-    exec($socat, "unix:$root/var/lib/root-login.socket", "-,echo=0,raw");
+    runInContainer("su", "root", "-l");
 }
 
 elsif ($action eq "run") {
     shift @ARGV; shift @ARGV;
-    my $pid = open(SOCAT, "|-", $socat, "-t0", "-", "unix:$root/var/lib/run-command.socket") or die "$0: cannot start $socat: $!\n";
-    print SOCAT join(' ', map { "'$_'" } @ARGV), "\n";
-    flush SOCAT;
-    waitpid($pid, 0);
-    close(SOCAT);
-}
-
-elsif ($action eq "set-root-password") {
-    # FIXME: don't get password from the command line.
-    my $password = $ARGV[2] or die "$0: no password given\n";
-    my $pid = open(SOCAT, "|-", $socat, "-t0", "-", "unix:$root/var/lib/run-command.socket") or die "$0: cannot start $socat: $!\n";
-    print SOCAT "passwd\n";
-    print SOCAT "$password\n";
-    print SOCAT "$password\n";
-    flush SOCAT;
-    waitpid($pid, 0);
-    close(SOCAT);
+    # Escape command.
+    my $s = join(' ', map { s/'/'\\''/g; "'$_'" } @ARGV);
+    runInContainer("su", "root", "-l", "-c", "exec " . $s);
 }
 
 elsif ($action eq "show-ip") {
diff --git a/nixos/release-combined.nix b/nixos/release-combined.nix
index dae3b9210a86..23348e1d089e 100644
--- a/nixos/release-combined.nix
+++ b/nixos/release-combined.nix
@@ -52,6 +52,10 @@ 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.ipv6)
         (all nixos.tests.kde4)
         (all nixos.tests.login)
diff --git a/nixos/release.nix b/nixos/release.nix
index ed413d3e928f..e5a4e7337ab0 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -78,6 +78,16 @@ let
         };
 
 
+  makeClosure = module: forAllSystems (system: (import ./lib/eval-config.nix {
+    inherit system;
+    modules = [ module ] ++ lib.singleton
+      ({ config, lib, ... }:
+      { fileSystems."/".device  = lib.mkDefault "/dev/sda1";
+        boot.loader.grub.device = lib.mkDefault "/dev/sda";
+      });
+  }).config.system.build.toplevel);
+
+
 in rec {
 
   channel =
@@ -212,12 +222,11 @@ in rec {
   tests.firefox = callTest tests/firefox.nix {};
   tests.firewall = callTest tests/firewall.nix {};
   tests.gnome3 = callTest tests/gnome3.nix {};
-  tests.installer.efi = forAllSystems (system: (import tests/installer.nix { inherit system; }).efi.test);
-  tests.installer.grub1 = forAllSystems (system: (import tests/installer.nix { inherit system; }).grub1.test);
-  tests.installer.lvm = forAllSystems (system: (import tests/installer.nix { inherit system; }).lvm.test);
-  tests.installer.rebuildCD = forAllSystems (system: (import tests/installer.nix { inherit system; }).rebuildCD.test);
-  tests.installer.separateBoot = forAllSystems (system: (import tests/installer.nix { inherit system; }).separateBoot.test);
-  tests.installer.simple = forAllSystems (system: (import tests/installer.nix { inherit system; }).simple.test);
+  tests.installer = with pkgs.lib;
+    let installer = import tests/installer.nix; in
+    flip mapAttrs (installer { }) (name: _:
+      forAllSystems (system: (installer { system = system; }).${name}.test)
+    );
   tests.influxdb = callTest tests/influxdb.nix {};
   tests.ipv6 = callTest tests/ipv6.nix {};
   tests.jenkins = callTest tests/jenkins.nix {};
@@ -242,4 +251,46 @@ in rec {
   tests.udisks2 = callTest tests/udisks2.nix {};
   tests.xfce = callTest tests/xfce.nix {};
 
+
+  /* Build a bunch of typical closures so that Hydra can keep track of
+     the evolution of closure sizes. */
+
+  closures = {
+
+    smallContainer = makeClosure ({ pkgs, ... }:
+      { boot.isContainer = true;
+        services.openssh.enable = true;
+      });
+
+    tinyContainer = makeClosure ({ pkgs, ... }:
+      { boot.isContainer = true;
+        imports = [ modules/profiles/minimal.nix ];
+      });
+
+    ec2 = makeClosure ({ pkgs, ... }:
+      { imports = [ modules/virtualisation/amazon-image.nix ];
+      });
+
+    kde = makeClosure ({ pkgs, ... }:
+      { services.xserver.enable = true;
+        services.xserver.displayManager.kdm.enable = true;
+        services.xserver.desktopManager.kde4.enable = true;
+      });
+
+    xfce = makeClosure ({ pkgs, ... }:
+      { services.xserver.enable = true;
+        services.xserver.desktopManager.xfce.enable = true;
+      });
+
+    # Linux/Apache/PostgreSQL/PHP stack.
+    lapp = makeClosure ({ pkgs, ... }:
+      { services.httpd.enable = true;
+        services.httpd.adminAddr = "foo@example.org";
+        services.postgresql.enable = true;
+        services.postgresql.package = pkgs.postgresql93;
+        environment.systemPackages = [ pkgs.php ];
+      });
+
+  };
+
 }
diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix
index d3bbe7a8bd55..ef11fcb10019 100644
--- a/nixos/tests/installer.nix
+++ b/nixos/tests/installer.nix
@@ -35,8 +35,8 @@ let
 
 
   # The configuration to install.
-  makeConfig = { testChannel, useEFI, grubVersion, grubDevice }: pkgs.writeText "configuration.nix"
-    ''
+  makeConfig = { testChannel, useEFI, grubVersion, grubDevice, grubIdentifier }:
+    pkgs.writeText "configuration.nix" ''
       { config, pkgs, modulesPath, ... }:
 
       { imports =
@@ -54,6 +54,7 @@ let
           ''}
           boot.loader.grub.device = "${grubDevice}";
           boot.loader.grub.extraConfig = "serial; terminal_output.serial";
+          boot.loader.grub.fsIdentifier = "${grubIdentifier}";
         ''}
 
         environment.systemPackages = [ ${optionalString testChannel "pkgs.rlwrap"} ];
@@ -93,12 +94,12 @@ 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";
       qemuFlags =
-        (if iso.system == "x86_64-linux" then "-m 512 " else "-m 384 ") +
+        (if iso.system == "x86_64-linux" then "-m 768 " else "-m 512 ") +
         (optionalString (iso.system == "x86_64-linux") "-cpu kvm64 ") +
         (optionalString useEFI ''-L ${efiBios} -hda ''${\(Cwd::abs_path('harddisk'))} '');
       hdFlags = optionalString (!useEFI)
@@ -161,7 +162,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.
@@ -216,13 +217,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;
       };
     };
 
@@ -394,4 +395,78 @@ in {
           $machine->shutdown;
         '';
     };
+
+  # Test using labels to identify volumes in grub
+  simpleLabels = makeInstallerTest {
+    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.ext4 -L root /dev/vda3",
+        "mount LABEL=root /mnt",
+      );
+    '';
+    grubIdentifier = "label";
+  };
+
+  # Test using the provided disk name within grub
+  # TODO: Fix udev so the symlinks are unneeded in /dev/disks
+  simpleProvided = makeInstallerTest {
+    createPartitions = ''
+      my $UUID = "\$(blkid -s UUID -o value /dev/vda2)";
+      $machine->succeed(
+        "sgdisk -Z /dev/vda",
+        "sgdisk -n 1:0:+1M -n 2:0:+100M -n 3:0:+1G -N 4 -t 1:ef02 -t 2:8300 -t 3:8200 -t 4:8300 -c 2:boot -c 4:root /dev/vda",
+        "mkswap /dev/vda3 -L swap",
+        "swapon -L swap",
+        "mkfs.ext4 -L boot /dev/vda2",
+        "mkfs.ext4 -L root /dev/vda4",
+      );
+      $machine->execute("ln -s ../../vda2 /dev/disk/by-uuid/$UUID");
+      $machine->execute("ln -s ../../vda4 /dev/disk/by-label/root");
+      $machine->succeed(
+        "mount /dev/disk/by-label/root /mnt",
+        "mkdir /mnt/boot",
+        "mount /dev/disk/by-uuid/$UUID /mnt/boot"
+      );
+    '';
+    grubIdentifier = "provided";
+  };
+
+  # Simple btrfs grub testing
+  btrfsSimple = makeInstallerTest {
+    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",
+        "mount LABEL=root /mnt",
+      );
+    '';
+  };
+
+  # Test to see if we can detect /boot and /nix on subvolumes
+  btrfsSubvols = makeInstallerTest {
+    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/boot",
+        "btrfs subvol create /mnt/nixos",
+        "umount /mnt",
+        "mount -o defaults,subvol=nixos LABEL=root /mnt",
+        "mkdir /mnt/boot",
+        "mount -o defaults,subvol=boot LABEL=root /mnt/boot",
+      );
+    '';
+  };
 }
diff --git a/pkgs/applications/audio/beast/default.nix b/pkgs/applications/audio/beast/default.nix
index 61b11c05de77..340a83e7963f 100644
--- a/pkgs/applications/audio/beast/default.nix
+++ b/pkgs/applications/audio/beast/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
     ];
 
   meta = { 
-    description = "BEAST - the Bedevilled Sound Engine";
+    description = "A music composition and modular synthesis application";
     homepage = http://beast.gtk.org;
     license = ["GPL-2" "LGPL-2.1"];
   };
diff --git a/pkgs/applications/audio/cantata/default.nix b/pkgs/applications/audio/cantata/default.nix
index 31d5240529f7..88931520c42a 100644
--- a/pkgs/applications/audio/cantata/default.nix
+++ b/pkgs/applications/audio/cantata/default.nix
@@ -39,7 +39,7 @@ assert withOnlineServices -> withTaglib;
 assert withReplaygain -> withTaglib;
 
 let
-  version = "1.3.4";
+  version = "1.4.1";
   pname = "cantata";
   fstat = x: fn: "-DENABLE_" + fn + "=" + (if x then "ON" else "OFF");
   fstats = x: map (fstat x);
@@ -50,8 +50,8 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     inherit name;
-    url = "https://drive.google.com/uc?export=download&id=0Bzghs6gQWi60WTYtaXk3c1IzNVU";
-    sha256 = "0ris41v44nwd68f3zis9n9lyyc089dyhlxp37rrzflanrc6glpwq";
+    url = "https://drive.google.com/uc?export=download&id=0Bzghs6gQWi60eXhuZ1Z3bGM2bjQ";
+    sha256 = "b0d5a1798efd275d72dffb87bc0f016fc865dbd1384b7c9af039cebdffe0cca3";
   };
 
   buildInputs =
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional (withTaglib && !withKDE4 && withDevices) udisks2;
 
   unpackPhase = "tar -xvf $src";
-  sourceRoot = "cantata-1.3.4";
+  sourceRoot = "${name}";
 
   # Qt4 is implicit when KDE is switched off.
   cmakeFlags = stdenv.lib.flatten [
diff --git a/pkgs/applications/audio/cmus/default.nix b/pkgs/applications/audio/cmus/default.nix
index 2ea37e2bd237..4f9c491a3a59 100644
--- a/pkgs/applications/audio/cmus/default.nix
+++ b/pkgs/applications/audio/cmus/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses pkgconfig alsaLib flac libmad ffmpeg libvorbis mpc mp4v2 ];
 
   meta = {
-    description = "cmus is a small, fast and powerful console music player for Linux and *BSD";
+    description = "Small, fast and powerful console music player for Linux and *BSD";
     homepage = http://cmus.sourceforge.net;
     license = stdenv.lib.licenses.gpl2;
   };
diff --git a/pkgs/applications/audio/moc/default.nix b/pkgs/applications/audio/moc/default.nix
index e5264f5c3d2f..5c6a1d6ac54e 100644
--- a/pkgs/applications/audio/moc/default.nix
+++ b/pkgs/applications/audio/moc/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "MOC (music on console) is a console audio player for LINUX/UNIX designed to be powerful and easy to use.";
+    description = "An ncurses console audio player designed to be powerful and easy to use";
     homepage = http://moc.daper.net/;
     license = stdenv.lib.licenses.gpl2;
   };
diff --git a/pkgs/applications/audio/mp3info/default.nix b/pkgs/applications/audio/mp3info/default.nix
index 0f33726eaeed..ede31ac9beb6 100644
--- a/pkgs/applications/audio/mp3info/default.nix
+++ b/pkgs/applications/audio/mp3info/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = {
-    description = "MP3Info, an MP3 technical info viewer and ID3 1.x tag editor";
+    description = "MP3 technical info viewer and ID3 1.x tag editor";
 
     longDescription =
       '' MP3Info is a little utility used to read and modify the ID3 tags of
diff --git a/pkgs/applications/audio/mpc123/default.nix b/pkgs/applications/audio/mpc123/default.nix
index cd4343b1beb4..ac945bee7f74 100644
--- a/pkgs/applications/audio/mpc123/default.nix
+++ b/pkgs/applications/audio/mpc123/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://mpc123.sourceforge.net/;
 
-    description = "mpc123, a Musepack (.mpc) audio player";
+    description = "A Musepack (.mpc) audio player";
 
     license = stdenv.lib.licenses.gpl2Plus;
 
diff --git a/pkgs/applications/audio/mpg321/default.nix b/pkgs/applications/audio/mpg321/default.nix
index e58397350cb1..939c9f79e4d4 100644
--- a/pkgs/applications/audio/mpg321/default.nix
+++ b/pkgs/applications/audio/mpg321/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   buildInputs = [libao libid3tag libmad zlib];
 
   meta = {
-    description = "mpg321, a command-line MP3 player";
+    description = "Command-line MP3 player";
     homepage = http://mpg321.sourceforge.net/;
     license = stdenv.lib.licenses.gpl2;
     maintainers = [ ];
diff --git a/pkgs/applications/audio/pamixer/default.nix b/pkgs/applications/audio/pamixer/default.nix
index acdda1799d03..d273c2381778 100644
--- a/pkgs/applications/audio/pamixer/default.nix
+++ b/pkgs/applications/audio/pamixer/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "pamixer is like amixer but for pulseaudio.";
+    description = "Like amixer but for pulseaudio";
     longDescription = "Features:
       - Get the current volume of the default sink, the default source or a selected one by his id
       - Set the volume for the default sink, the default source or any other device
diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix
index 1ce09a6dd884..235a81a6a32a 100644
--- a/pkgs/applications/audio/picard/default.nix
+++ b/pkgs/applications/audio/picard/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pythonPackages, gettext, pyqt4
-, pkgconfig, libdiscid, libofa, ffmpeg, acoustidFingerprinter
+, pkgconfig, libdiscid, libofa, ffmpeg, chromaprint
 }:
 
 pythonPackages.buildPythonPackage rec {
@@ -9,14 +9,16 @@ pythonPackages.buildPythonPackage rec {
 
   src = fetchurl {
     url = "http://ftp.musicbrainz.org/pub/musicbrainz/picard/${name}.tar.gz";
-    md5 = "d1086687b7f7b0d359a731b1a25e7b66";
+    sha256 = "0sbsf8hzxhxcnnjqvsd6mc23lmk7w33nln0f3w72f89mjgs6pxm6";
   };
 
   postPatch = let
-    fpr = "${acoustidFingerprinter}/bin/acoustid_fpcalc";
+    discid = "${libdiscid}/lib/libdiscid.so.0";
+    fpr = "${chromaprint}/bin/fpcalc";
   in ''
-    sed -ri -e 's|(TextOption.*"acoustid_fpcalc"[^"]*")[^"]*|\1${fpr}|' \
-      picard/ui/options/fingerprinting.py
+    substituteInPlace picard/disc.py --replace libdiscid.so.0 ${discid}
+    substituteInPlace picard/const.py \
+        --replace "FPCALC_NAMES = [" "FPCALC_NAMES = ['${fpr}',"
   '';
 
   buildInputs = [
@@ -46,9 +48,11 @@ pythonPackages.buildPythonPackage rec {
 
   doCheck = false;
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = "http://musicbrainz.org/doc/MusicBrainz_Picard";
     description = "The official MusicBrainz tagger";
-    license = stdenv.lib.licenses.gpl2;
+    maintainers = with maintainers; [ emery ];
+    license = licenses.gpl2;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index 59b82d155da9..47919a7d7f88 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -148,7 +148,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = https://www.spotify.com/;
-    description = "Spotify for Linux allows you to play music from the Spotify music service";
+    description = "Play music from the Spotify music service";
     license = stdenv.lib.licenses.unfree;
     maintainers = [ stdenv.lib.maintainers.eelco ];
   };
diff --git a/pkgs/applications/audio/yoshimi/default.nix b/pkgs/applications/audio/yoshimi/default.nix
index 91142691055b..67edc7f521da 100644
--- a/pkgs/applications/audio/yoshimi/default.nix
+++ b/pkgs/applications/audio/yoshimi/default.nix
@@ -6,11 +6,11 @@ assert stdenv ? glibc;
 
 stdenv.mkDerivation  rec {
   name = "yoshimi-${version}";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
-    sha256 = "1w23ral1qrbg9gqx833giqmchx7952f18yaa52aya9shsdlla83c";
+    sha256 = "00bp699k8gnilin2rvgj35334s9jrizp82qwlmzzvvfliwcgqlqw";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/editors/ed/default.nix b/pkgs/applications/editors/ed/default.nix
index b1b9616eaab3..ea8b2b27987b 100644
--- a/pkgs/applications/editors/ed/default.nix
+++ b/pkgs/applications/editors/ed/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ lzip ];
 
   meta = {
-    description = "GNU ed, an implementation of the standard Unix editor";
+    description = "An implementation of the standard Unix editor";
 
     longDescription = ''
       GNU ed is a line-oriented text editor.  It is used to create,
diff --git a/pkgs/applications/editors/emacs-24/default.nix b/pkgs/applications/editors/emacs-24/default.nix
index 329fa3a5626e..3bfee481c9c0 100644
--- a/pkgs/applications/editors/emacs-24/default.nix
+++ b/pkgs/applications/editors/emacs-24/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, ncurses, x11, libXaw, libXpm, Xaw3d
 , pkgconfig, gtk, libXft, dbus, libpng, libjpeg, libungif
-, libtiff, librsvg, texinfo, gconf, libxml2, imagemagick, openssl
+, libtiff, librsvg, texinfo, gconf, libxml2, imagemagick, gnutls
 , alsaLib, cairo
 , withX ? !stdenv.isDarwin, withGTK ? true
 }:
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   patches = [ ./darwin-new-sections.patch ];
 
   buildInputs =
-    [ ncurses gconf libxml2 openssl alsaLib pkgconfig texinfo ]
+    [ ncurses gconf libxml2 gnutls alsaLib pkgconfig texinfo ]
     ++ stdenv.lib.optional stdenv.isLinux dbus
     ++ stdenv.lib.optionals withX
       [ x11 libXaw Xaw3d libXpm libpng libjpeg libungif libtiff librsvg libXft
diff --git a/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix b/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix
new file mode 100644
index 000000000000..35f9bd3ceb2a
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/color-theme-solarized/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchgit, emacs, colorTheme}:
+
+stdenv.mkDerivation rec {
+  name = "color-theme-6.5.5";
+
+  src = fetchgit {
+    url = https://github.com/sellout/emacs-color-theme-solarized.git;
+    rev = "6a2c7ca0181585858e6e8054cb99db837e2ef72f";
+    sha256 = "3c46a3d66c75ec4456209eeafdb03282148b289b12e8474f6a8962f3894796e8";
+  };
+
+  buildInputs = [ emacs ];
+  propagatedUserEnvPkgs = [ colorTheme ];
+
+
+  buildPhase = ''
+    emacs -L . -L ${colorTheme}/share/emacs/site-lisp --batch -f batch-byte-compile *.el
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/emacs/site-lisp
+    install *.el* $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Precision colors for machines and people";
+    homepage = http://ethanschoonover.com/solarized;
+    license = stdenv.lib.licenses.mit;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/idris/default.nix b/pkgs/applications/editors/emacs-modes/idris/default.nix
index 28375dcb68df..4e9d1cfd77cd 100644
--- a/pkgs/applications/editors/emacs-modes/idris/default.nix
+++ b/pkgs/applications/editors/emacs-modes/idris/default.nix
@@ -3,11 +3,11 @@
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
   pname = "idris-mode";
-  version = "0.9.13.1";
+  version = "0.9.14";
 
   src = fetchurl {
     url = "https://github.com/idris-hackers/${pname}/archive/${version}.tar.gz";
-    sha256 = "0ymjbkwsq7qra691wyldw91xcdgrbx3468vvrha5jj92v7nwb8wx";
+    sha256 = "1qlkbf14mcibp6h5r84fp5xdjspyaw1xdmnkmaxbypwjhhjg4s83";
   };
 
   buildInputs = [ emacs ];
diff --git a/pkgs/applications/editors/emacs-modes/js2/default.nix b/pkgs/applications/editors/emacs-modes/js2/default.nix
index 47e62a281fb0..00123bfc8c75 100644
--- a/pkgs/applications/editors/emacs-modes/js2/default.nix
+++ b/pkgs/applications/editors/emacs-modes/js2/default.nix
@@ -5,7 +5,8 @@ stdenv.mkDerivation {
 
   src = fetchgit {
     url = "git://github.com/mooz/js2-mode.git";
-    sha256 = "dbdc07b864a9506a21af445c7fb1c75fbffadaac980ee7bbf752470d8054bd65";
+    rev = "b250efaad886dd07b8c69d4573425d095c6652e2";
+    sha256 = "30e61e7d364e9175d408bdaf57fda886a4eea22cf5cbd97abb5c307c52b05918";
   };
 
   buildInputs = [ emacs ];
diff --git a/pkgs/applications/editors/idea/default.nix b/pkgs/applications/editors/idea/default.nix
index e5cfbcdfe178..caa9523af6f6 100644
--- a/pkgs/applications/editors/idea/default.nix
+++ b/pkgs/applications/editors/idea/default.nix
@@ -2,10 +2,12 @@
 , coreutils, gnugrep, which, git
 }:
 
+assert stdenv.isLinux;
+
 let
 
   buildIdea =
-  { name, version, build, src, description, license }:
+  { name, version, build, src, description, longDescription, license }:
 
   stdenv.mkDerivation rec {
     inherit name build src;
@@ -56,6 +58,7 @@ let
     meta = {
       homepage = http://www.jetbrains.com/idea/;
       inherit description;
+      inherit longDescription;
       inherit license;
       maintainers = [ stdenv.lib.maintainers.edwtjo ];
       platforms = stdenv.lib.platforms.linux;
@@ -64,27 +67,39 @@ let
 
 in {
 
-  idea_community = buildIdea rec {
+  idea-community = buildIdea rec {
     name = "idea-community-${version}";
-    version = "13.1.3";
-    build = "IC-135.909";
-    description = "IntelliJ IDEA 13 Community Edition";
+    version = "13.1.4b";
+    build = "IC-135.1230";
+    description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
+    longDescription = ''
+      Lightweight IDE for Java SE, Groovy & Scala development
+      Powerful environment for building Google Android apps
+      Integration with JUnit, TestNG, popular SCMs, Ant & Maven
+      Free, open-source, Apache 2 licensed.
+    '';
     license = stdenv.lib.licenses.asl20;
     src = fetchurl {
       url = "http://download-ln.jetbrains.com/idea/ideaIC-${version}.tar.gz";
-      sha256 = "62ed937ef68df16eef4d32772b6510835527f95020db1c76643f17ed2c067b51";
+      sha256 = "8b4ee25fd2934e06b87230b50e1474183ed4b331c1626a7fee69b96294d9616d";
     };
   };
 
-  idea_ultimate = buildIdea rec {
+  idea-ultimate = buildIdea rec {
     name = "idea-ultimate-${version}";
-    version = "13.1.3";
-    build = "IU-135.909";
-    description = "IntelliJ IDEA 13 Ultimate Edition";
+    version = "13.1.4b";
+    build = "IU-135.1230";
+    description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
+    longDescription = ''
+      Full-featured IDE for JVM-based and polyglot development
+      Java EE, Spring/Hibernate and other technologies support
+      Deployment and debugging with most application servers
+      Duplicate code search, dependency structure matrix, etc.
+    '';
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "http://download-ln.jetbrains.com/idea/ideaIU-${version}.tar.gz";
-      sha256 = "6d99e49a63a197e19381a85535ab424a7832653db8cceb3bca7d53615ec7a53d";
+      sha256 = "84660d97c9c3e4e7cfd6c2708f4685dc7322157f1e1c2888feac64df119f0606";
     };
   };
 
diff --git a/pkgs/applications/editors/mg/default.nix b/pkgs/applications/editors/mg/default.nix
index 058a54c45a71..6901aed774ba 100644
--- a/pkgs/applications/editors/mg/default.nix
+++ b/pkgs/applications/editors/mg/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://homepage.boetes.org/software/mg/;
-    description = "mg is Micro GNU/emacs, this is a portable version of the mg maintained by the OpenBSD team";
+    description = "Micro GNU/emacs, a portable version of the mg maintained by the OpenBSD team";
     license = "public domain";
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/applications/editors/texmacs/default.nix b/pkgs/applications/editors/texmacs/default.nix
index ce863312251c..a258b6341057 100644
--- a/pkgs/applications/editors/texmacs/default.nix
+++ b/pkgs/applications/editors/texmacs/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
         "${xmodmap}/bin:${which}/bin";
 
   meta = {
-    description = "GNU TeXmacs, a free WYSIWYW editing platform with special features for scientists";
+    description = "WYSIWYW editing platform with special features for scientists";
     longDescription =
       '' GNU TeXmacs is a free wysiwyw (what you see is what you want)
          editing platform with special features for scientists.  The software
diff --git a/pkgs/applications/editors/yi/yi-contrib.nix b/pkgs/applications/editors/yi/yi-contrib.nix
index 59b6992a3692..2678f0a00489 100644
--- a/pkgs/applications/editors/yi/yi-contrib.nix
+++ b/pkgs/applications/editors/yi/yi-contrib.nix
@@ -13,7 +13,9 @@ cabal.mkDerivation (self: {
     homepage = "http://haskell.org/haskellwiki/Yi";
     description = "Add-ons to Yi, the Haskell-Scriptable Editor";
     license = "GPL";
+    broken = true;
     platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
     maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ];
   };
 })
diff --git a/pkgs/applications/editors/yi/yi.nix b/pkgs/applications/editors/yi/yi.nix
index ae5e9a83452f..9b9287a50f12 100644
--- a/pkgs/applications/editors/yi/yi.nix
+++ b/pkgs/applications/editors/yi/yi.nix
@@ -58,6 +58,8 @@ cabal.mkDerivation (self: {
     description = "The Haskell-Scriptable Editor";
     license = self.stdenv.lib.licenses.gpl2;
     platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
     maintainers = [ self.stdenv.lib.maintainers.fuuzetsu ];
+    broken = true;
   };
 })
diff --git a/pkgs/applications/graphics/geeqie/default.nix b/pkgs/applications/graphics/geeqie/default.nix
index b170b784aaa4..de906e3d8443 100644
--- a/pkgs/applications/graphics/geeqie/default.nix
+++ b/pkgs/applications/graphics/geeqie/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = {
-    description = "Geeqie, a lightweight GTK+ based image viewer";
+    description = "Lightweight GTK+ based image viewer";
 
     longDescription =
       ''
diff --git a/pkgs/applications/graphics/gimp/2.8.nix b/pkgs/applications/graphics/gimp/2.8.nix
index aca4d822c820..bd155c59c6b2 100644
--- a/pkgs/applications/graphics/gimp/2.8.nix
+++ b/pkgs/applications/graphics/gimp/2.8.nix
@@ -4,11 +4,11 @@
 , python, pygtk, libart_lgpl, libexif, gettext, xlibs, wrapPython }:
 
 stdenv.mkDerivation rec {
-  name = "gimp-2.8.10";
+  name = "gimp-2.8.14";
 
   src = fetchurl {
     url = "http://download.gimp.org/pub/gimp/v2.8/${name}.tar.bz2";
-    sha256 = "1rha8yx0pplfjziqczjrxxp16vsvpmb5ziq3c218s4w9z4cqpzg7";
+    sha256 = "d82a958641c9c752d68e35f65840925c08e314cea90222ad845892a40e05b22d";
   };
 
   buildInputs =
diff --git a/pkgs/applications/graphics/grafx2/default.nix b/pkgs/applications/graphics/grafx2/default.nix
index 6b7c9a27694a..ee9df683c0a2 100644
--- a/pkgs/applications/graphics/grafx2/default.nix
+++ b/pkgs/applications/graphics/grafx2/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   installPhase = ''make install prefix="$out"'';
 
   meta = {
-    description = "GrafX2 is a bitmap paint program inspired by the Amiga programs Deluxe Paint and Brilliance.";
+    description = "Bitmap paint program inspired by the Amiga programs Deluxe Paint and Brilliance";
     homepage = http://code.google.co/p/grafx2/;
     license = stdenv.lib.licenses.gpl2;
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/graphics/jbrout/default.nix b/pkgs/applications/graphics/jbrout/default.nix
index 2207e8884f0c..496078ffdb2e 100644
--- a/pkgs/applications/graphics/jbrout/default.nix
+++ b/pkgs/applications/graphics/jbrout/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage {
   buildInputs = [ python pyGtkGlade makeWrapper pyexiv2 lxml pil fbida which ];
   meta = {
     homepage = "http://code.google.com/p/jbrout";
-    description = "jBrout is a photo manager";
+    description = "Photo manager";
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/graphics/k3d/debian-patches.nix b/pkgs/applications/graphics/k3d/debian-patches.nix
deleted file mode 100644
index cf6b47ee9597..000000000000
--- a/pkgs/applications/graphics/k3d/debian-patches.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-# Generated by debian-patches.sh from debian-patches.txt
-let
-  prefix = "http://patch-tracker.debian.org/patch/series/dl/k3d/0.8.0.2-18";
-in
-[
-  {
-    url = "${prefix}/disable_mutable_in_boost_gil.patch";
-    sha256 = "037l86h2hszqgw8arqpzprz5qvngsb61i7lpww617mkvqrc4hiq3";
-  }
-  {
-    url = "${prefix}/k3d_gtkmm224.patch";
-    sha256 = "1c7z2zkqs9qw185q7bhz6vvzl6vlf1zpg9vlhc1f0cz9rgak3gji";
-  }
-]
diff --git a/pkgs/applications/graphics/k3d/debian-patches.txt b/pkgs/applications/graphics/k3d/debian-patches.txt
deleted file mode 100644
index a9b4abed2f09..000000000000
--- a/pkgs/applications/graphics/k3d/debian-patches.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-k3d/0.8.0.2-15
-disable_mutable_in_boost_gil.patch
-k3d_gtkmm224.patch
diff --git a/pkgs/applications/graphics/k3d/default.nix b/pkgs/applications/graphics/k3d/default.nix
index 9f31d94ac7fb..35f3bed866d1 100644
--- a/pkgs/applications/graphics/k3d/default.nix
+++ b/pkgs/applications/graphics/k3d/default.nix
@@ -12,11 +12,13 @@ stdenv.mkDerivation rec {
     sha256 = "01fd2qb0zddif3wz1a2wdmwyzn81cf73678qp2gjs8iikmdz6w7x";
   };
 
-  patches = map fetchurl ((import ./debian-patches.nix) ++
-    [ {
-      url = http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-gfx/k3d/files/k3d-0.7.11.0-libpng14.patch;
-      sha256 = "1vl7dbvxg9b54ay0n8dd2v2k3j001h8h1bpr1cbm3vrzv31lnwzx";
-    } ]);
+  patches = [
+    # debian package source
+    ./disable_mutable_in_boost_gil.patch
+    ./k3d_gtkmm224.patch
+    # http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-gfx/k3d/files/k3d-0.7.11.0-libpng14.patch
+    ./k3d-0.7.11.0-libpng14.patch
+  ];
 
   preConfigure = ''
     export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/build/lib"
diff --git a/pkgs/applications/graphics/k3d/disable_mutable_in_boost_gil.patch b/pkgs/applications/graphics/k3d/disable_mutable_in_boost_gil.patch
new file mode 100644
index 000000000000..1774328c6186
--- /dev/null
+++ b/pkgs/applications/graphics/k3d/disable_mutable_in_boost_gil.patch
@@ -0,0 +1,20 @@
+--- a/k3dsdk/gil/boost/gil/extension/dynamic_image/apply_operation_base.hpp
++++ b/k3dsdk/gil/boost/gil/extension/dynamic_image/apply_operation_base.hpp
+@@ -114,7 +114,7 @@
+     template <typename T2, typename Op>
+     struct reduce_bind1 {
+         const T2& _t2;
+-        mutable Op&  _op;
++        Op&  _op;
+ 
+         typedef typename Op::result_type result_type;
+ 
+@@ -127,7 +127,7 @@
+     struct reduce_bind2 {
+         const Bits1& _bits1;
+         std::size_t _index1;
+-        mutable Op&  _op;
++        Op&  _op;
+ 
+         typedef typename Op::result_type result_type;
+ 
diff --git a/pkgs/applications/graphics/k3d/k3d-0.7.11.0-libpng14.patch b/pkgs/applications/graphics/k3d/k3d-0.7.11.0-libpng14.patch
new file mode 100644
index 000000000000..b54168227b40
--- /dev/null
+++ b/pkgs/applications/graphics/k3d/k3d-0.7.11.0-libpng14.patch
@@ -0,0 +1,54 @@
+diff -ur k3d-source-0.7.11.0.orig/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp k3d-source-0.7.11.0/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp
+--- k3d-source-0.7.11.0.orig/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp	2009-03-19 22:28:53.000000000 +0200
++++ k3d-source-0.7.11.0/k3dsdk/gil/boost/gil/extension/io/png_io_private.hpp	2010-05-12 12:21:50.000000000 +0300
+@@ -148,12 +148,12 @@
+         // allocate/initialize the image information data
+         _info_ptr = png_create_info_struct(_png_ptr);
+         if (_info_ptr == NULL) {
+-            png_destroy_read_struct(&_png_ptr,png_infopp_NULL,png_infopp_NULL);
++            png_destroy_read_struct(&_png_ptr,NULL,NULL);
+             io_error("png_get_file_size: fail to call png_create_info_struct()");
+         }
+         if (setjmp(png_jmpbuf(_png_ptr))) {
+             //free all of the memory associated with the png_ptr and info_ptr
+-            png_destroy_read_struct(&_png_ptr, &_info_ptr, png_infopp_NULL);
++            png_destroy_read_struct(&_png_ptr, &_info_ptr, NULL);
+             io_error("png_get_file_size: fail to call setjmp()");
+         }
+         png_init_io(_png_ptr, get());
+@@ -165,7 +165,7 @@
+     png_reader(const char* filename) : file_mgr(filename, "rb") { init(); }
+ 
+     ~png_reader() {
+-        png_destroy_read_struct(&_png_ptr,&_info_ptr,png_infopp_NULL);
++        png_destroy_read_struct(&_png_ptr,&_info_ptr,NULL);
+     }
+     point2<std::ptrdiff_t> get_dimensions() {
+         return point2<std::ptrdiff_t>(png_get_image_width(_png_ptr,_info_ptr),
+@@ -177,7 +177,7 @@
+         int bit_depth, color_type, interlace_type;
+         png_get_IHDR(_png_ptr, _info_ptr,
+                      &width, &height,&bit_depth,&color_type,&interlace_type,
+-                     int_p_NULL, int_p_NULL);
++                     (int *) NULL, (int *) NULL);
+         io_error_if(((png_uint_32)view.width()!=width || (png_uint_32)view.height()!= height),
+                     "png_read_view: input view size does not match PNG file size");
+         
+@@ -219,7 +219,7 @@
+         int bit_depth, color_type, interlace_type;
+         png_get_IHDR(_png_ptr, _info_ptr,
+                      &width, &height,&bit_depth,&color_type,&interlace_type,
+-                     int_p_NULL, int_p_NULL);
++                     (int *) NULL, (int *) NULL);
+         io_error_if(((png_uint_32)view.width()!=width || (png_uint_32)view.height()!= height),
+                     "png_reader_color_convert::apply(): input view size does not match PNG file size");
+         switch (color_type) {
+@@ -308,7 +308,7 @@
+         io_error_if(!_png_ptr,"png_write_initialize: fail to call png_create_write_struct()");
+         _info_ptr = png_create_info_struct(_png_ptr);
+         if (!_info_ptr) {
+-            png_destroy_write_struct(&_png_ptr,png_infopp_NULL);
++            png_destroy_write_struct(&_png_ptr,NULL);
+             io_error("png_write_initialize: fail to call png_create_info_struct()");
+         }
+         if (setjmp(png_jmpbuf(_png_ptr))) {
diff --git a/pkgs/applications/graphics/k3d/k3d_gtkmm224.patch b/pkgs/applications/graphics/k3d/k3d_gtkmm224.patch
new file mode 100644
index 000000000000..2484994531f0
--- /dev/null
+++ b/pkgs/applications/graphics/k3d/k3d_gtkmm224.patch
@@ -0,0 +1,40 @@
+--- a/k3dsdk/ngui/main_document_window.cpp
++++ b/k3dsdk/ngui/main_document_window.cpp
+@@ -1371,7 +1371,7 @@
+ 			Gtk::HBox import_box(false, 5);
+ 			Gtk::Label import_label(_("Choose import plugin:"));
+ 
+-			Gtk::ComboBox import_combo(model);
++			Gtk::ComboBox import_combo((Glib::RefPtr<Gtk::TreeModel> &) model);
+ 			import_combo.pack_start(columns.icon, false);
+ 			import_combo.pack_start(columns.label);
+ 			import_combo.set_active(0);
+@@ -1461,7 +1461,7 @@
+ 			Gtk::HBox export_box(false, 5);
+ 			Gtk::Label export_label(_("Choose export plugin:"));
+ 
+-			Gtk::ComboBox export_combo(model);
++			Gtk::ComboBox export_combo((Glib::RefPtr<Gtk::TreeModel> &) model);
+ 			export_combo.pack_start(columns.icon, false);
+ 			export_combo.pack_start(columns.label);
+ 			export_combo.set_active(0);
+--- a/k3dsdk/ngui/render.cpp
++++ b/k3dsdk/ngui/render.cpp
+@@ -169,7 +169,7 @@
+ 		row[columns.separator] = false;
+ 	}
+ 
+-	Gtk::ComboBox combo(model);
++	Gtk::ComboBox combo((Glib::RefPtr<Gtk::TreeModel> &) model);
+ 
+ 	combo.pack_start(columns.icon, false);
+ 
+@@ -295,7 +295,7 @@
+ 		row[columns.separator] = false;
+ 	}
+ 
+-	Gtk::ComboBox combo(model);
++	Gtk::ComboBox combo((Glib::RefPtr<Gtk::TreeModel> &) model);
+ 
+ 	combo.pack_start(columns.icon, false);
+ 
diff --git a/pkgs/applications/graphics/ocrad/default.nix b/pkgs/applications/graphics/ocrad/default.nix
index 4c20a41061ae..201b59ad5e12 100644
--- a/pkgs/applications/graphics/ocrad/default.nix
+++ b/pkgs/applications/graphics/ocrad/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "GNU Ocrad, optical character recognition (OCR) program & library";
+    description = "Optical character recognition (OCR) program & library";
 
     longDescription =
       '' GNU Ocrad is an OCR (Optical Character Recognition) program based on
diff --git a/pkgs/applications/graphics/qiv/default.nix b/pkgs/applications/graphics/qiv/default.nix
index 86891f2cb937..01b0a1414a74 100644
--- a/pkgs/applications/graphics/qiv/default.nix
+++ b/pkgs/applications/graphics/qiv/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation (rec {
   '';
 
   meta = {
-    description = "qiv (quick image viewer)";
+    description = "Quick image viewer";
     homepage = http://spiegl.de/qiv/;
     inherit version;
   };
diff --git a/pkgs/applications/graphics/synfigstudio/default.nix b/pkgs/applications/graphics/synfigstudio/default.nix
index 034a147b7874..ba7a916e3fe4 100644
--- a/pkgs/applications/graphics/synfigstudio/default.nix
+++ b/pkgs/applications/graphics/synfigstudio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, boost, cairo, gettext, glibmm, gtk, gtkmm
+{ stdenv, fetchurl, boost, cairo, fontsConf, gettext, glibmm, gtk, gtkmm
 , libsigcxx, libtool, libxmlxx, pango, pkgconfig, imagemagick
 , intltool
 }:
@@ -42,10 +42,14 @@ stdenv.mkDerivation rec {
     };
 
   buildInputs = [
-    ETL boost cairo gettext glibmm gtk gtkmm imagemagick intltool
+    ETL boost cairo fontsConf gettext glibmm gtk gtkmm imagemagick intltool
     intltool libsigcxx libtool libxmlxx pkgconfig synfig
   ];
 
+  preBuild = ''
+    export FONTCONFIG_FILE=${fontsConf}
+  '';
+
   meta = with stdenv.lib; {
     description = "A 2D animation program";
     homepage = http://www.synfig.org;
diff --git a/pkgs/applications/graphics/ufraw/default.nix b/pkgs/applications/graphics/ufraw/default.nix
index 783832abd003..dbfda4e58195 100644
--- a/pkgs/applications/graphics/ufraw/default.nix
+++ b/pkgs/applications/graphics/ufraw/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://ufraw.sourceforge.net/;
 
-    description = "UFRaw, a utility to read and manipulate raw images from digital cameras";
+    description = "Utility to read and manipulate raw images from digital cameras";
 
     longDescription =
       '' The Unidentified Flying Raw (UFRaw) is a utility to read and
diff --git a/pkgs/applications/graphics/viewnior/default.nix b/pkgs/applications/graphics/viewnior/default.nix
index dd8e01298ff4..478553d2c00a 100644
--- a/pkgs/applications/graphics/viewnior/default.nix
+++ b/pkgs/applications/graphics/viewnior/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "Viewnior is a fast and simple image viewer for GNU/Linux";
+    description = "Fast and simple image viewer";
     longDescription =
       '' Viewnior is insipred by big projects like Eye of Gnome, because of it's
          usability and richness,and by GPicView, because of it's lightweight design and
diff --git a/pkgs/applications/graphics/xaos/default.nix b/pkgs/applications/graphics/xaos/default.nix
index 8387b3486d4d..cacefc9bcc12 100644
--- a/pkgs/applications/graphics/xaos/default.nix
+++ b/pkgs/applications/graphics/xaos/default.nix
@@ -28,7 +28,7 @@ rec {
   name = "xaos-" + version;
   meta = {
     homepage = http://xaos.sourceforge.net/;
-    description = "XaoS - fractal viewer";
+    description = "Fractal viewer";
     license = a.stdenv.lib.licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/applications/ike/default.nix b/pkgs/applications/ike/default.nix
index 1414310ebf33..48f277ad4c98 100644
--- a/pkgs/applications/ike/default.nix
+++ b/pkgs/applications/ike/default.nix
@@ -1,6 +1,8 @@
 { stdenv, fetchurl, cmake, openssl, libedit, flex, bison, qt4, makeWrapper
 , gcc, nettools, iproute, linuxHeaders }:
 
+assert stdenv.isLinux;
+
 # NOTE: use $out/etc/iked.conf as sample configuration and also set: dhcp_file "/etc/iked.dhcp";
 # launch with "iked -f /etc/iked.conf"
 
diff --git a/pkgs/applications/misc/arbtt/default.nix b/pkgs/applications/misc/arbtt/default.nix
index 0c3939b5c256..27f6c1223741 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";
-  sha256 = "1qzmqjm8pfj59h0hrm28pp6qhzz2am5xq81mirnnchsgg52wrfn0";
+  version = "0.8.1.2";
+  sha256 = "074vb84vkygxamvq7xnwlpgbch6qkbhyzbakc343230p1ryxf62q";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/applications/misc/bitcoin/altcoins.nix b/pkgs/applications/misc/bitcoin/altcoins.nix
new file mode 100644
index 000000000000..2b99bad58da4
--- /dev/null
+++ b/pkgs/applications/misc/bitcoin/altcoins.nix
@@ -0,0 +1,100 @@
+{ fetchurl, stdenv, pkgconfig
+, openssl, db48, boost, zlib, miniupnpc, qt4, qrencode, glib, protobuf, utillinux }:
+
+with stdenv.lib;
+
+let
+  buildAltcoin = makeOverridable ({walletName, gui ? true, ...}@a:
+    stdenv.mkDerivation ({
+      name = "${walletName}${toString (optional (!gui) "d")}-${a.version}";
+      buildInputs = [ openssl db48 boost zlib miniupnpc ]
+        ++ optionals gui [ qt4 qrencode ] ++ a.extraBuildInputs or [];
+
+      configurePhase = optional gui "qmake";
+
+      preBuild = optional (!gui) "cd src";
+      makefile = optional (!gui) "makefile.unix";
+
+      installPhase = if gui then ''
+        install -D "${walletName}-qt" "$out/bin/${walletName}-qt"
+      '' else ''
+        install -D "${walletName}d" "$out/bin/${walletName}d"
+      '';
+
+      passthru.walletName = walletName;
+
+      meta = {
+        platforms = platforms.unix;
+        license = license.mit;
+        maintainers = [ maintainers.offline ];
+      };
+    } // a)
+  );
+
+in rec {
+  inherit buildAltcoin;
+
+  litecoin = buildAltcoin rec {
+    walletName = "litecoin";
+    version = "0.8.5.3-rc3";
+
+    src = fetchurl {
+      url = "https://github.com/litecoin-project/litecoin/archive/v${version}.tar.gz";
+      sha256 = "1z4a7bm3z9kd7n0s38kln31z8shsd32d5d5v3br5p0jlnr5g3lk7";
+    };
+
+    meta = {
+      description = "Litecoin is a lite version of Bitcoin using scrypt as a proof-of-work algorithm.";
+      longDescription= ''
+        Litecoin is a peer-to-peer Internet currency that enables instant payments
+        to anyone in the world. It is based on the Bitcoin protocol but differs
+        from Bitcoin in that it can be efficiently mined with consumer-grade hardware.
+        Litecoin provides faster transaction confirmations (2.5 minutes on average)
+        and uses a memory-hard, scrypt-based mining proof-of-work algorithm to target
+        the regular computers and GPUs most people already have.
+        The Litecoin network is scheduled to produce 84 million currency units.
+      '';
+      homepage = https://litecoin.org/;
+    };
+  };
+  litecoind = litecoin.override { gui = false; };
+
+  namecoin = buildAltcoin rec {
+    walletName = "namecoin";
+    version = "0.3.51.00";
+    gui = false;
+
+    src = fetchurl {
+      url = "https://github.com/namecoin/namecoin/archive/nc${version}.tar.gz";
+      sha256 = "0r6zjzichfjzhvpdy501gwy9h3zvlla3kbgb38z1pzaa0ld9siyx";
+    };
+
+    patches = [ ./namecoin_dynamic.patch ];
+
+    extraBuildInputs = [ glib ];
+
+    meta = {
+      description = "Namecoin is a decentralized key/value registration and transfer system based on Bitcoin technology.";
+      homepage = http://namecoin.info;
+    };
+  };
+
+  dogecoin = buildAltcoin rec {
+    walletName = "dogecoin";
+    version = "1.4";
+
+    src = fetchurl {
+      url = "https://github.com/dogecoin/dogecoin/archive/1.4.tar.gz";
+      sha256 = "4af983f182976c98f0e32d525083979c9509b28b7d6faa0b90c5bd40b71009cc";
+    };
+
+    meta = {
+      description = "Wow, such coin, much shiba, very rich";
+      longDescription = "wow";
+      homepage = http://www.dogecoin.com/;
+      maintainers = [ maintainers.offline maintainers.edwtjo ];
+    };
+  };
+  dogecoind = dogecoin.override { gui = false; };
+
+}
diff --git a/pkgs/applications/misc/bitcoin/default.nix b/pkgs/applications/misc/bitcoin/default.nix
index e38d427be8d5..2b68c58b12dd 100644
--- a/pkgs/applications/misc/bitcoin/default.nix
+++ b/pkgs/applications/misc/bitcoin/default.nix
@@ -1,19 +1,21 @@
 { fetchurl, stdenv, openssl, db48, boost, zlib, miniupnpc, qt4, utillinux
-, pkgconfig, protobuf, qrencode }:
+, pkgconfig, protobuf, qrencode, gui ? true }:
+
+with stdenv.lib;
 
 stdenv.mkDerivation rec {
   version = "0.9.2.1";
-  name = "bitcoin-${version}";
+  name = "bitcoin${toString (optional (!gui) "d")}-${version}";
 
   src = fetchurl {
-    url = "https://bitcoin.org/bin/${version}/${name}-linux.tar.gz";
+    url = "https://bitcoin.org/bin/${version}/bitcoin-${version}-linux.tar.gz";
     sha256 = "0060f7d38b98113ab912d4c184000291d7f026eaf77ca5830deec15059678f54";
   };
 
   # hexdump from utillinux is required for tests
   buildInputs = [
-    openssl db48 boost zlib miniupnpc qt4 utillinux pkgconfig protobuf qrencode
-  ];
+    openssl db48 boost zlib miniupnpc utillinux pkgconfig protobuf 
+  ] ++ optionals gui [ qt4 qrencode ];
 
   unpackPhase = ''
     mkdir tmp-extract && (cd tmp-extract && tar xf $src)
@@ -34,8 +36,10 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.walletName = "bitcoin";
+
   meta = {
-      description = "Bitcoin is a peer-to-peer currency";
+      description = "Peer-to-peer electronic cash system";
       longDescription= ''
         Bitcoin is a free open source peer-to-peer electronic cash system that is
         completely decentralized, without the need for a central server or trusted
@@ -43,7 +47,7 @@ stdenv.mkDerivation rec {
         with each other, with the help of a P2P network to check for double-spending.
       '';
       homepage = "http://www.bitcoin.org/";
-      maintainers = [ stdenv.lib.maintainers.roconnor ];
-      license = stdenv.lib.licenses.mit;
+      maintainers = [ maintainers.roconnor ];
+      license = licenses.mit;
   };
 }
diff --git a/pkgs/applications/misc/bitcoin/namecoin_dynamic.patch b/pkgs/applications/misc/bitcoin/namecoin_dynamic.patch
new file mode 100644
index 000000000000..ef4184ede73f
--- /dev/null
+++ b/pkgs/applications/misc/bitcoin/namecoin_dynamic.patch
@@ -0,0 +1,11 @@
+diff -u -r a/src/makefile.unix b/src/makefile.unix
+--- a/src/makefile.unix	2014-01-22 22:07:59.801601964 -0800
++++ b/src/makefile.unix	2014-01-22 22:08:07.980332839 -0800
+@@ -12,7 +12,6 @@
+ 
+ # for boost 1.37, add -mt to the boost libraries
+ LIBS= \
+- -Wl,-Bstatic \
+    -l boost_system \
+    -l boost_filesystem \
+    -l boost_program_options \
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 3d814bf6a304..190b57e1070e 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -1,30 +1,29 @@
-{ stdenv, fetchurl, python, pyqt4, sip, popplerQt4, pkgconfig, libpng
-, imagemagick, libjpeg, fontconfig, podofo, qt48, icu, sqlite
+{ stdenv, fetchurl, python, pyqt5, sip_4_16, poppler, pkgconfig, libpng
+, imagemagick, libjpeg, fontconfig, podofo, qt5, icu, sqlite
 , pil, makeWrapper, unrar, chmlib, pythonPackages, xz, libusb1, libmtp
+, xdg_utils
 }:
 
 stdenv.mkDerivation rec {
-  name = "calibre-1.48.0";
+  name = "calibre-2.0.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/calibre/${name}.tar.xz";
-    sha256 = "0wplmf3p4s5zwn9ri8ry18bx7k3pw1c1ngrc4msf7i8icq7hj177";
+    sha256 = "1fpn8icfyag2ybj2ywd81sva56ycsin56gyap5m9j5crx63p4c91";
   };
 
   inherit python;
 
-  nativeBuildInputs = [ makeWrapper pkgconfig ];
-
   patchPhase = ''
-    tar xf ${qt48.src}
-    qtdir=$(realpath $(ls | grep qt | grep 4.8 | grep src))
-    sed -i setup/build_environment.py \
-        -e "s|^qt_private_inc = .*|qt_private_inc = ['$qtdir/include/%s'%(m) for m in ('QtGui', 'QtCore')]|"
+    sed -i "/pyqt_sip_dir/ s:=.*:= '${pyqt5}/share/sip':"  \
+      setup/build_environment.py
   '';
 
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
+
   buildInputs =
-    [ python pyqt4 sip popplerQt4 libpng imagemagick libjpeg
-      fontconfig podofo qt48 pil chmlib icu sqlite libusb1 libmtp
+    [ python pyqt5 sip_4_16 poppler libpng imagemagick libjpeg
+      fontconfig podofo qt5 pil chmlib icu sqlite libusb1 libmtp xdg_utils
       pythonPackages.mechanize pythonPackages.lxml pythonPackages.dateutil
       pythonPackages.cssutils pythonPackages.beautifulsoup pythonPackages.pillow
       pythonPackages.sqlite3 pythonPackages.netifaces pythonPackages.apsw
@@ -33,14 +32,15 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     export HOME=$TMPDIR/fakehome
-    export POPPLER_INC_DIR=${popplerQt4}/include/poppler
-    export POPPLER_LIB_DIR=${popplerQt4}/lib
+    export POPPLER_INC_DIR=${poppler}/include/poppler
+    export POPPLER_LIB_DIR=${poppler}/lib
     export MAGICK_INC=${imagemagick}/include/ImageMagick
     export MAGICK_LIB=${imagemagick}/lib
     export FC_INC_DIR=${fontconfig}/include/fontconfig
     export FC_LIB_DIR=${fontconfig}/lib
     export PODOFO_INC_DIR=${podofo}/include/podofo
     export PODOFO_LIB_DIR=${podofo}/lib
+    export SIP_BIN=${sip_4_16}/bin/sip
     python setup.py install --prefix=$out
 
     PYFILES="$out/bin/* $out/lib/calibre/calibre/web/feeds/*.py
@@ -48,8 +48,12 @@ stdenv.mkDerivation rec {
       $out/lib/calibre/calibre/ebooks/rtf2xml/*.py"
 
     sed -i "s/env python[0-9.]*/python/" $PYFILES
+    sed -i "2i import sys; sys.argv[0] = 'calibre'" $out/bin/calibre
+
     for a in $out/bin/*; do
-      wrapProgram $a --prefix PYTHONPATH : $PYTHONPATH --prefix LD_LIBRARY_PATH : ${unrar}/lib --prefix PATH : ${popplerQt4}/bin
+      wrapProgram $a --prefix PYTHONPATH : $PYTHONPATH \
+                     --prefix LD_LIBRARY_PATH : ${unrar}/lib \
+                     --prefix PATH : ${poppler}/bin
     done
   '';
 
@@ -57,7 +61,7 @@ stdenv.mkDerivation rec {
     description = "Comprehensive e-book software";
     homepage = http://calibre-ebook.com;
     license = licenses.gpl3;
-    maintainers = with maintainers; [ viric iElectric ];
+    maintainers = with maintainers; [ viric iElectric pSub ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/camlistore/default.nix b/pkgs/applications/misc/camlistore/default.nix
index 56131425ab4b..9adac335c0c7 100644
--- a/pkgs/applications/misc/camlistore/default.nix
+++ b/pkgs/applications/misc/camlistore/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "Camlistore is a way of storing, syncing, sharing, modelling and backing up content";
+    description = "A way of storing, syncing, sharing, modelling and backing up content";
     homepage = https://camlistore.org;
     license = licenses.asl20;
     maintainers = with maintainers; [ cstrahan ];
diff --git a/pkgs/applications/misc/clipit/default.nix b/pkgs/applications/misc/clipit/default.nix
new file mode 100644
index 000000000000..57f6c229a08f
--- /dev/null
+++ b/pkgs/applications/misc/clipit/default.nix
@@ -0,0 +1,20 @@
+{ fetchurl, stdenv, intltool, pkgconfig, gtk, xdotool }:
+
+stdenv.mkDerivation rec {
+  name = "clipit-${version}";
+  version = "1.4.2";
+
+  src = fetchurl {
+    url = "https://github.com/downloads/shantzu/ClipIt/${name}.tar.gz";
+    sha256 = "0jrwn8qfgb15rwspdp1p8hb1nc0ngmpvgr87d4k3lhlvqg2cfqva";
+  };
+
+  buildInputs = [ intltool pkgconfig gtk xdotool  ];
+
+  meta = with stdenv.lib; {
+    description = "Lightweight GTK+ Clipboard Manager";
+    homepage    = "http://clipit.rspwn.com";
+    license     = licenses.gpl3;
+    platforms   = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/cool-old-term/default.nix b/pkgs/applications/misc/cool-old-term/default.nix
new file mode 100644
index 000000000000..76d78f004024
--- /dev/null
+++ b/pkgs/applications/misc/cool-old-term/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub, qt53 }:
+
+stdenv.mkDerivation rec {
+  version = "0.9";
+  name = "cool-old-term-${version}";
+
+  src = fetchFromGitHub {
+    owner = "Swordifish90";
+    repo = "cool-old-term";
+    rev = "2494bc05228290545df8c59c05624a4b903e9068";
+    sha256 = "8462f3eded7b2219acc143258544b0dfac32d81e10cac61ff14276d426704c93";
+  };
+
+  buildInputs = [ qt53 ];
+
+  buildPhase = ''
+    pushd ./konsole-qml-plugin
+    qmake konsole-qml-plugin.pro PREFIX=$out
+    make
+    popd
+  '';
+
+  installPhase = ''
+    pushd ./konsole-qml-plugin
+    make install
+    popd
+
+    install -d $out/bin $out/lib/cool-old-term $out/share/cool-old-term
+    cp -a ./imports $out/lib/cool-old-term/
+    cp -a ./app     $out/share/cool-old-term/
+
+    cat > $out/bin/cool-old-term <<EOF
+    #!${stdenv.shell}
+    ${qt53}/bin/qmlscene -I $out/lib/cool-old-term/imports $out/share/cool-old-term/app/main.qml
+    EOF
+    chmod a+x $out/bin/cool-old-term
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Terminal emulator which mimics the old cathode display";
+    longDescription = ''
+      cool-old-term is a terminal emulator which tries to mimic the look and
+      feel of the old cathode tube screens. It has been designed to be
+      eye-candy, customizable, and reasonably lightweight.
+    '';
+    homepage = "https://github.com/Swordifish90/cool-old-term";
+    licenses = with stdenv.lib.licenses; [ gpl2 gpl3 ];
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ skeidel ];
+  };
+}
diff --git a/pkgs/applications/misc/eaglemode/default.nix b/pkgs/applications/misc/eaglemode/default.nix
index b9c8acb0d070..ea9383a6e10f 100644
--- a/pkgs/applications/misc/eaglemode/default.nix
+++ b/pkgs/applications/misc/eaglemode/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, perl, libX11, libjpeg, libpng, libtiff, pkgconfig,
 librsvg, glib, gtk, libXext, libXxf86vm, poppler }:
 
-stdenv.mkDerivation {
-  name = "eaglemode-0.84.0";
+stdenv.mkDerivation rec {
+  name = "eaglemode-0.85.0";
 
   src = fetchurl {
-    url = mirror://sourceforge/eaglemode/eaglemode-0.84.0.tar.bz2;
-    sha256 = "0n20b419j0l7h7jr4s3f3n09ka0ysg9nqs8mcwsrx24rcq7nv0cs";
+    url = "mirror://sourceforge/eaglemode/${name}.tar.bz2";
+    sha256 = "0mz4rg2k36wvcv55dg0a5znaczpl5h4gwkkb34syj89xk8jlbwsc";
   };
 
   buildInputs = [ perl libX11 libjpeg libpng libtiff pkgconfig
diff --git a/pkgs/applications/misc/evilvte/default.nix b/pkgs/applications/misc/evilvte/default.nix
new file mode 100644
index 000000000000..5921cc308b5b
--- /dev/null
+++ b/pkgs/applications/misc/evilvte/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchgit, makeWrapper, pkgconfig,
+  gnome, glib, pango, cairo, gdk_pixbuf, atk, freetype, xlibs,
+  configH
+}:
+
+stdenv.mkDerivation rec {
+  name = "evilvte-${version}";
+  version = "0.5.2-20140827";
+
+  src = fetchgit {
+    url = https://github.com/caleb-/evilvte.git;
+    rev = "8dfa41e26bc640dd8d8c7317ff7d04e3c01ded8a";
+    sha256 = "70f1d4234d077121e2223a735d749d1b53f0b84393507b635b8a37c3716e94d3";
+  };
+
+  buildInputs = [
+    gnome.vte glib pango gnome.gtk cairo gdk_pixbuf atk freetype xlibs.libX11
+    xlibs.xproto xlibs.kbproto xlibs.libXext xlibs.xextproto makeWrapper pkgconfig
+  ];
+
+  buildPhase = ''
+    cat >src/config.h <<EOF
+    ${configH}
+    EOF
+    make
+  '';
+
+  meta = with stdenv.lib; {
+    description = "VTE based, highly customizable terminal emulator";
+    homepage = http://www.calno.com/evilvte;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.bodil ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/gpsbabel/default.nix b/pkgs/applications/misc/gpsbabel/default.nix
index bf44f91056d7..5d4c2634952d 100644
--- a/pkgs/applications/misc/gpsbabel/default.nix
+++ b/pkgs/applications/misc/gpsbabel/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
   doCheck = true;
 
   meta = {
-    description = "GPSBabel, a tool to convert, upload and download data from GPS and Map programs";
+    description = "Convert, upload and download data from GPS and Map programs";
 
     longDescription = ''
       GPSBabel converts waypoints, tracks, and routes between popular
diff --git a/pkgs/applications/misc/gv/default.nix b/pkgs/applications/misc/gv/default.nix
index 4867bef1f719..3fad634b18b7 100644
--- a/pkgs/applications/misc/gv/default.nix
+++ b/pkgs/applications/misc/gv/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = http://www.gnu.org/software/gv/;
-    description = "GNU gv, a PostScript/PDF document viewer";
+    description = "PostScript/PDF document viewer";
 
     longDescription = ''
       GNU gv allows users to view and navigate through PostScript and
diff --git a/pkgs/applications/misc/jigdo/default.nix b/pkgs/applications/misc/jigdo/default.nix
index d722367d1b49..1f2ecf911416 100644
--- a/pkgs/applications/misc/jigdo/default.nix
+++ b/pkgs/applications/misc/jigdo/default.nix
@@ -10,8 +10,8 @@ stdenv.mkDerivation {
   };
 
   patches = fetchurl {
-    url = http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_0.7.3-2.diff.gz;
-    sha256 = "0jnlzm9m2hjlnw0zs2fv456ml5r2jj2q1lncqbrgg52lq18f6fa3";
+    url = http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_0.7.3-3.diff.gz;
+    sha256 = "0cp4jz3sg9g86vprh90pmwpcfla79f0dr50w14yh01k0yaq70fs8";
   };
 
   buildInputs = [ db gtk bzip2 ];
diff --git a/pkgs/applications/misc/lilyterm/default.nix b/pkgs/applications/misc/lilyterm/default.nix
new file mode 100644
index 000000000000..c87b6a8bc0a1
--- /dev/null
+++ b/pkgs/applications/misc/lilyterm/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl
+, pkgconfig
+, autoconf, automake, intltool, gettext
+, gtk, vte }:
+
+stdenv.mkDerivation rec {
+
+  name = "lilyterm-${version}";
+  version = "0.9.9.4";
+
+  src = fetchurl {
+    url = "http://lilyterm.luna.com.tw/file/${name}.tar.gz";
+    sha256 = "0x2x59qsxq6d6xg5sd5lxbsbwsdvkwqlk17iw3h4amjg3m1jc9mp";
+  };
+
+  buildInputs = [ pkgconfig autoconf automake intltool gettext gtk vte ];
+
+  preConfigure = "sh autogen.sh";
+
+  configureFlags = ''
+    --enable-nls
+    --enable-safe-mode
+  '';
+
+    meta = {
+    description = "A fast, lightweight terminal emulator";
+    longDescription = ''
+    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;
+  };
+}
diff --git a/pkgs/applications/misc/posterazor/default.nix b/pkgs/applications/misc/posterazor/default.nix
index 0cad2fbd2cd3..f55af543f18d 100644
--- a/pkgs/applications/misc/posterazor/default.nix
+++ b/pkgs/applications/misc/posterazor/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, cmake, unzip, pkgconfig, libXpm, fltk13, freeimage }:
 
 stdenv.mkDerivation rec {
-  name = "posterazor-1.5";
+  name = "posterazor-1.5.1";
 
   src = fetchurl {
-    url = "mirror://sourceforge/posterazor/1.5/PosteRazor-1.5-Source.zip";
-    sha256 = "0xy313d2j57s4wy2y3hjapbjr5zfaki0lhkfz6nw2p9gylcmwmjy";
+    url = "mirror://sourceforge/posterazor/1.5.1/PosteRazor-1.5.1-Source.zip";
+    sha256 = "1dqpdk8zl0smdg4fganp3hxb943q40619qmxjlga9jhjc01s7fq5";
   };
 
   buildInputs = [ cmake unzip pkgconfig libXpm fltk13 freeimage ];
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://posterazor.sourceforge.net/";
-    description = "The PosteRazor cuts a raster image into pieces which can afterwards be printed out and assembled to a poster";
+    description = "Cuts a raster image into pieces which can afterwards be printed out and assembled to a poster";
     maintainers = [ stdenv.lib.maintainers.madjar ];
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/applications/misc/qgis/default.nix b/pkgs/applications/misc/qgis/default.nix
index cc26a74802b4..9a41bcc36ecc 100644
--- a/pkgs/applications/misc/qgis/default.nix
+++ b/pkgs/applications/misc/qgis/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, gdal, cmake, qt4, flex, bison, proj, geos, x11, sqlite, gsl,
-  pyqt4, qwt, fcgi, python, libspatialindex, libspatialite }:
+  pyqt4, qwt, fcgi, python, libspatialindex, libspatialite, sip }:
 
 stdenv.mkDerivation rec {
-  name = "qgis-1.8.0";
+  name = "qgis-2.4.0";
 
-  buildInputs = [ gdal qt4 flex bison proj geos x11 sqlite gsl pyqt4 qwt
+  buildInputs = [ gdal qt4 flex bison proj geos x11 sqlite gsl pyqt4 sip qwt
     fcgi libspatialindex libspatialite ];
 
   nativeBuildInputs = [ cmake python ];
@@ -19,7 +19,9 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://qgis.org/downloads/${name}.tar.bz2";
-    sha256 = "1aq32ch61bqsvh39lmrxah1fmh18cd3nqyi1l0sn6ssa3kwf82vh";
+    sha256 = "711b7d81ddff45b083a21f05c8aa5093a6a38a0ee42dfcc873234fcef1fcdd76";
+    
+
   };
 
   meta = {
diff --git a/pkgs/applications/misc/robomongo/default.nix b/pkgs/applications/misc/robomongo/default.nix
index ab8a803b7cb4..8b0ba581612e 100644
--- a/pkgs/applications/misc/robomongo/default.nix
+++ b/pkgs/applications/misc/robomongo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, qt5, openssl, boost, cmake, scons, python, pcre, bzip2 }:
 
 stdenv.mkDerivation {
-  name = "robomongo-0.8.3";
+  name = "robomongo-0.8.4";
 
   src = fetchurl {
-    url = https://github.com/paralect/robomongo/archive/v0.8.3.tar.gz;
-    sha256 = "1x8vpmqvjscjcw30hf0i5vsrg3rldlwx6z52i1hymlck2jfzkank";
+    url = https://github.com/paralect/robomongo/archive/v0.8.4.tar.gz;
+    sha256 = "199fb08701wrw3ky7gcqyvb3z4027qjcqdnzrx5y7yi3rb4gvkzc";
   };
 
   patches = [ ./robomongo.patch ];
@@ -17,9 +17,8 @@ stdenv.mkDerivation {
   meta = {
     homepage = "http://robomongo.org/";
     description = "Query GUI for mongodb";
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux;
     license = stdenv.lib.licenses.gpl3;
     maintainers = [ stdenv.lib.maintainers.amorsillo ];
-    broken = true;
   };
 }
diff --git a/pkgs/applications/misc/robomongo/robomongo.patch b/pkgs/applications/misc/robomongo/robomongo.patch
index 2305ca732eae..3de6e940d9f9 100644
--- a/pkgs/applications/misc/robomongo/robomongo.patch
+++ b/pkgs/applications/misc/robomongo/robomongo.patch
@@ -1,6 +1,7 @@
 Remove check for QT_NO_STYLE_GTK to avoid building with QCleanlooksStyle which results in error due to missing QCleanlooksStyle
 Ensure environment is preserved for scons build -- scons clears the env but we want to keep the nix build environment
 Fix typo in cmakelists
+Add stdint.h include to mongo driver src
 diff -rupN robomongo-0.8.3/CMakeLists.txt robomongo-0.8.3-patched/CMakeLists.txt
 --- robomongo-0.8.3/CMakeLists.txt	2013-10-01 10:55:00.000000000 -0400
 +++ robomongo-0.8.3-patched/CMakeLists.txt	2013-12-06 12:22:06.070659856 -0500
@@ -46,3 +47,15 @@ diff -rupN robomongo-0.8.3/src/third-party/mongodb/SConstruct robomongo-0.8.3-pa
                     CLIENT_ARCHIVE='${CLIENT_DIST_BASENAME}${DIST_ARCHIVE_SUFFIX}',
                     CLIENT_DIST_BASENAME=get_option('client-dist-basename'),
                     CLIENT_LICENSE='#distsrc/client/LICENSE.txt',
+
+diff -rupN robomongo-0.8.4/src/third-party/mongodb/src/mongo/pch.h robomongo-0.8.4-patched/src/third-party/mongodb/src/mongo/pch.h
+--- robomongo-0.8.4/src/third-party/mongodb/src/mongo/pch.h	2013-12-13 12:56:35.000000000 -0500
++++ robomongo-0.8.4-patched/src/third-party/mongodb/src/mongo/pch.h	2014-08-20 18:16:31.788396489 -0400
+@@ -39,6 +39,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <signal.h>
++#include <stdint.h>
+ 
+ #include "time.h"
+ #include "string.h"
diff --git a/pkgs/applications/misc/stardict/stardict.nix b/pkgs/applications/misc/stardict/stardict.nix
index 1ca8ec045d61..d4c41edde30e 100644
--- a/pkgs/applications/misc/stardict/stardict.nix
+++ b/pkgs/applications/misc/stardict/stardict.nix
@@ -37,8 +37,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "stardict";
-    homepage = "A international dictionary supporting fuzzy and glob style matching";
+    description = "An international dictionary supporting fuzzy and glob style matching";
     license = stdenv.lib.licenses.lgpl3;
     maintainers = with stdenv.lib.maintainers; [qknight];
   };
diff --git a/pkgs/applications/misc/taffybar/default.nix b/pkgs/applications/misc/taffybar/default.nix
index 6b282116343d..09eb186013f3 100644
--- a/pkgs/applications/misc/taffybar/default.nix
+++ b/pkgs/applications/misc/taffybar/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "taffybar";
-  version = "0.4.0";
-  sha256 = "1l6zl5mlpkdsvs3id6ivh4b74p65n6jr17k23y2cdwj2fr9prvr8";
+  version = "0.4.1";
+  sha256 = "0b4x78sq5x1w0xnc5fk4ixpbkl8cwjfyb4fq8vy21shf4n0fri26";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/applications/misc/tangogps/default.nix b/pkgs/applications/misc/tangogps/default.nix
index aa1df2c9d1a6..0a2c1c88c239 100644
--- a/pkgs/applications/misc/tangogps/default.nix
+++ b/pkgs/applications/misc/tangogps/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "tangoGPS, a user friendly map and GPS user interface";
+    description = "User friendly map and GPS user interface";
 
     longDescription = ''
       tangoGPS is an easy to use, fast and lightweight mapping
diff --git a/pkgs/applications/misc/viking/default.nix b/pkgs/applications/misc/viking/default.nix
index 6508b12e1de8..9afabe0372d1 100644
--- a/pkgs/applications/misc/viking/default.nix
+++ b/pkgs/applications/misc/viking/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
   doCheck = true;
 
   meta = {
-    description = "Viking, a GPS data editor and analyzer";
+    description = "GPS data editor and analyzer";
 
     longDescription = ''
       Viking is a free/open source program to manage GPS data.  You
diff --git a/pkgs/applications/misc/vym/default.nix b/pkgs/applications/misc/vym/default.nix
new file mode 100644
index 000000000000..c23be51c3e80
--- /dev/null
+++ b/pkgs/applications/misc/vym/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, pkgconfig, qt4 }:
+
+stdenv.mkDerivation rec {
+  name = "vym-${version}";
+  version = "2.2.4";
+
+  src = fetchurl {
+    url = "http://downloads.sourceforge.net/project/vym/${version}/${name}.tar.bz2";
+    sha256 = "1x4qp6wpszscbbs4czkfvskm7qjglvxm813nqv281bpy4y1hhvgs";
+  };
+
+  buildInputs = [ pkgconfig qt4 ];
+
+  configurePhase = ''
+    qmake PREFIX="$out"
+  '';
+
+  meta = {
+    description = "A mind-mapping software";
+    longDescription = ''
+      VYM (View Your Mind) is a tool to generate and manipulate maps which show your thoughts.
+      Such maps can help you to improve your creativity and effectivity. You can use them
+      for time management, to organize tasks, to get an overview over complex contexts,
+      to sort your ideas etc.
+      
+      Maps can be drawn by hand on paper or a flip chart and help to structure your thoughs.
+      While a tree like structure like shown on this page can be drawn by hand or any drawing software
+      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;
+  };
+}
diff --git a/pkgs/applications/misc/wordnet/default.nix b/pkgs/applications/misc/wordnet/default.nix
index 7594014d769e..6ead69db2209 100644
--- a/pkgs/applications/misc/wordnet/default.nix
+++ b/pkgs/applications/misc/wordnet/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "WordNet, a lexical database for the English language";
+    description = "Lexical database for the English language";
 
     longDescription =
       '' WordNet® is a large lexical database of English.  Nouns, verbs,
diff --git a/pkgs/applications/misc/xca/default.nix b/pkgs/applications/misc/xca/default.nix
index 0bc2170340c8..09edb086c9f2 100644
--- a/pkgs/applications/misc/xca/default.nix
+++ b/pkgs/applications/misc/xca/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     homepage = http://xca.sourceforge.net/;
     platforms = platforms.all;
     license = licenses.bsd3;
+    broken = true;
   };
 }
diff --git a/pkgs/applications/misc/xfe/default.nix b/pkgs/applications/misc/xfe/default.nix
index d09a899b897f..e216b19fab5a 100644
--- a/pkgs/applications/misc/xfe/default.nix
+++ b/pkgs/applications/misc/xfe/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "X File Explorer (Xfe) is an MS-Explorer like file manager for X";
+    description = "MS-Explorer like file manager for X";
     longDescription = ''
       X File Explorer (Xfe) is an MS-Explorer like file manager for X.
       It is based on the popular, but discontinued, X Win Commander, which was developed by Maxim Baranov.
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index b9011c0236f3..46dadd280c9a 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -10,7 +10,7 @@
 , python, pythonPackages, perl, pkgconfig
 , nspr, udev, krb5
 , utillinux, alsaLib
-, gcc, bison, gperf
+, bison, gperf
 , glib, gtk, dbus_glib
 , libXScrnSaver, libXcursor, libXtst, mesa
 , protobuf, speechd, libXdamage
@@ -145,6 +145,8 @@ let
     '';
 
     gypFlags = mkGypFlags (gypFlagsUseSystemLibs // {
+      linux_use_bundled_binutils = false;
+      linux_use_bundled_gold = false;
       linux_use_gold_binary = false;
       linux_use_gold_flags = false;
       proprietary_codecs = false;
@@ -161,9 +163,6 @@ let
       werror = "";
       clang = false;
 
-      # FIXME: In version 37, omnibox.mojom.js doesn't seem to be generated.
-      use_mojo = versionOlder source.version "37.0.0.0";
-
       # Google API keys, see:
       #   http://www.chromium.org/developers/how-tos/api-keys
       # Note: These are for NixOS/nixpkgs use ONLY. For your own distribution,
@@ -192,22 +191,12 @@ let
     '';
 
     buildPhase = let
-      CC = "${gcc}/bin/gcc";
-      CXX = "${gcc}/bin/g++";
-      buildCommand = target: let
-        # XXX: Only needed for version 36 and older!
-        targetSuffix = optionalString
-          (versionOlder source.version "37.0.0.0" && target == "mksnapshot")
-          (if stdenv.is64bit then ".x64" else ".ia32");
-      in ''
-        CC="${CC}" CC_host="${CC}"     \
-        CXX="${CXX}" CXX_host="${CXX}" \
-        LINK_host="${CXX}"             \
-          "${ninja}/bin/ninja" -C "${buildPath}"  \
-            -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES \
-            "${target}${targetSuffix}"
+      buildCommand = target: ''
+        "${ninja}/bin/ninja" -C "${buildPath}"  \
+          -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES \
+          "${target}"
       '' + optionalString (target == "mksnapshot" || target == "chrome") ''
-        paxmark m "${buildPath}/${target}${targetSuffix}"
+        paxmark m "${buildPath}/${target}"
       '';
       targets = extraAttrs.buildTargets or [];
       commands = map buildCommand targets;
diff --git a/pkgs/applications/networking/browsers/chromium/source/sources.nix b/pkgs/applications/networking/browsers/chromium/source/sources.nix
index 4a610827913f..71c825188c3c 100644
--- a/pkgs/applications/networking/browsers/chromium/source/sources.nix
+++ b/pkgs/applications/networking/browsers/chromium/source/sources.nix
@@ -1,21 +1,21 @@
 # This file is autogenerated from update.sh in the parent directory.
 {
   dev = {
-    version = "38.0.2107.3";
-    sha256 = "0zb1mj3xgvvs5ijix4b52vj9dlymqkipn8srfzvhwl7g4hx5ss3v";
-    sha256bin32 = "12lvvmg3bqacb0qw72bwlxm2m57s39mz2810agngdgzv0hd835cv";
-    sha256bin64 = "1vw36s8nlvdsl8pjbh4gny00kvcizn1i2lznzqzysicz2rz7ncrh";
+    version = "38.0.2125.8";
+    sha256 = "1h3vkp0mgznqv48ksnsndlh7ywh3jby25x6dxxd7py445pg6y3c6";
+    sha256bin32 = "1ynqm5yp7m8j3mwgqaa2vvw835g9ifn3dfniqh9z9n0swha27a69";
+    sha256bin64 = "1vdm4wffkvj3jwrb2nihghxkxcvp81xcc5wygpd1w495vrhy4bpf";
   };
   beta = {
-    version = "37.0.2062.58";
-    sha256 = "0jck4s6nrizj9wmifsjviin9ifnviihs21fi05wzljyfnbgc4byl";
-    sha256bin32 = "1cm1r8bqy66gvdhbrgn9pdc11i72dca96ab5j3m3349p6728jbgk";
-    sha256bin64 = "0cpb189pn5jiplldkgy8lfbcwvfik66kjjf6y2i708xa5ggfpwfi";
+    version = "37.0.2062.94";
+    sha256 = "0cz5kivimxcaiml6x5mysarjyfvvanbw02qz2d1y3jvl1dc1jz6j";
+    sha256bin32 = "0pa209sjdfb0y96kicvp4lnn1inwdcgj8kpmn28cmi8l1cr8yy3b";
+    sha256bin64 = "0kk2dm2gwvzvrrp03k7cw6zzp3197lrq2p1si3pr2wbgm8sb5dk5";
   };
   stable = {
-    version = "36.0.1985.125";
-    sha256 = "08shkm89qzzdlrjg0rg5qiszbk6ziginsicyxqyk353y76jx10hp";
-    sha256bin32 = "1ahazz56k127xncgl1lzwsmydbh0vcxq0hzrb9cm9zzdkzqjzg03";
-    sha256bin64 = "0qx5316cd8l9g8w389aqi5m3csmr5s8hs7sivlk02mbs0jzi8ppc";
+    version = "37.0.2062.94";
+    sha256 = "0cz5kivimxcaiml6x5mysarjyfvvanbw02qz2d1y3jvl1dc1jz6j";
+    sha256bin32 = "0vszphfz4mnw08yc6bid4g6q2w4f5smvfhlzyb2vvv65ndr64b8k";
+    sha256bin64 = "0h4fb7v0b1w9d47iy6fk5g0fpzgczps7nzmknyk7vx68ybi39ssw";
   };
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix
index 969ced923b3d..56ba95c661f5 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -37,6 +37,8 @@
 , systemd
 }:
 
+assert stdenv.isLinux;
+
 let
   version = "31.0";
   sources = [
diff --git a/pkgs/applications/networking/browsers/firefox/default.nix b/pkgs/applications/networking/browsers/firefox/default.nix
index ad2ea75bd704..e23a6d94ec1a 100644
--- a/pkgs/applications/networking/browsers/firefox/default.nix
+++ b/pkgs/applications/networking/browsers/firefox/default.nix
@@ -94,7 +94,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = {
-    description = "Mozilla Firefox - the browser, reloaded";
+    description = "Web browser";
     homepage = http://www.mozilla.com/en-US/firefox/;
     maintainers = with lib.maintainers; [ eelco wizeman ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/networking/browsers/icecat-3/default.nix b/pkgs/applications/networking/browsers/icecat-3/default.nix
deleted file mode 100644
index ef2c69422b62..000000000000
--- a/pkgs/applications/networking/browsers/icecat-3/default.nix
+++ /dev/null
@@ -1,119 +0,0 @@
-{ fetchurl, stdenv, pkgconfig, gtk, pango, perl, python, ply, zip, libIDL
-, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs, alsaLib
-, libnotify, gnome_vfs, libgnomeui
-, freetype, fontconfig, wirelesstools ? null, pixman
-, application ? "browser" }:
-
-# Build the WiFi stuff on Linux-based systems.
-# FIXME: Disable for now until it can actually be built:
-# http://thread.gmane.org/gmane.comp.gnu.gnuzilla/1376 .
-#assert stdenv.isLinux -> (wirelesstools != null);
-
-let version = "3.6.15"; in
-stdenv.mkDerivation {
-  name = "icecat-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnu/gnuzilla/${version}/icecat-${version}.tar.xz";
-    sha256 = "1px018bd81c81a4hbz0qgf89pkshkbhg4abwq1d26dwy8128cxwg";
-  };
-
-  buildInputs =
-    [ libgnomeui libnotify gnome_vfs alsaLib
-      pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2 pixman
-      python ply dbus dbus_glib pango freetype fontconfig
-      xlibs.libXi xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt
-    ]
-    ++ (stdenv.lib.optional false /* stdenv.isLinux */ wirelesstools);
-
-  patches = [
-    ./skip-gre-registration.patch ./rpath-link.patch
-  ];
-
-  configureFlags =
-    [ "--enable-application=${application}"
-      "--enable-libxul"
-      "--disable-javaxpcom"
-
-      "--enable-optimize"
-      "--disable-debug"
-      "--enable-strip"
-      "--with-system-jpeg"
-      "--with-system-zlib"
-      "--with-system-bz2"
-      # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
-      "--enable-system-cairo"
-      #"--enable-system-sqlite" # <-- this seems to be discouraged
-      "--disable-crashreporter"
-    ]
-    ++ (stdenv.lib.optional true /* (!stdenv.isLinux) */ "--disable-necko-wifi");
-
-  postInstall = ''
-    export dontPatchELF=1;
-
-    # Strip some more stuff
-    strip -S "$out/lib/"*"/"* || true
-
-    # This fixes starting IceCat when there already is a running
-    # instance.  The `icecat' wrapper script actually expects to be
-    # in the same directory as `run-mozilla.sh', apparently.
-    libDir=$(cd $out/lib && ls -d icecat-[0-9]*)
-    test -n "$libDir"
-
-    if [ -f "$out/bin/icecat" ]
-    then
-        # Fix references to /bin paths in the IceCat shell script.
-        substituteInPlace $out/bin/icecat		\
-            --replace /bin/pwd "$(type -tP pwd)"	\
-            --replace /bin/ls "$(type -tP ls)"
-
-        cd $out/bin
-        mv icecat ../lib/$libDir/
-        ln -s ../lib/$libDir/icecat .
-
-        # Register extensions etc.
-        echo "running \`icecat -register'..."
-        (cd $out/lib/$libDir && LD_LIBRARY_PATH=. ./icecat-bin -register) || false
-    fi
-
-    if [ -f "$out/lib/$libDir/xpidl" ]
-    then
-        # XulRunner's IDL compiler.
-        echo "linking \`xpidl'..."
-        ln -s "$out/lib/$libDir/xpidl" "$out/bin"
-    fi
-
-    # Put the GNU IceCat icon in the right place.
-    mkdir -p "$out/lib/$libDir/chrome/icons/default"
-    ln -s ../../../icons/default.xpm  "$out/lib/$libDir/chrome/icons/default/"
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = {
-    description = "GNU IceCat, a free web browser based on Mozilla Firefox";
-
-    longDescription = ''
-      Gnuzilla is the GNU version of the Mozilla suite, and GNU IceCat
-      is the GNU version of the Firefox browser.  Its main advantage
-      is an ethical one: it is entirely free software.  While the
-      source code from the Mozilla project is free software, the
-      binaries that they release include additional non-free software.
-      Also, they distribute and recommend non-free software as
-      plug-ins.  In addition, GNU IceCat includes some privacy
-      protection features.
-    '';
-
-    homepage = http://www.gnu.org/software/gnuzilla/;
-    license = [ "GPLv2+" "LGPLv2+" "MPLv1+" ];
-
-    maintainers = [ ];
-    platforms = stdenv.lib.platforms.gnu;
-  };
-
-  passthru = {
-    inherit gtk version;
-    isFirefox3Like = true;
-    broken = true;
-  };
-}
diff --git a/pkgs/applications/networking/browsers/icecat-3/rpath-link.patch b/pkgs/applications/networking/browsers/icecat-3/rpath-link.patch
deleted file mode 100644
index d50784f13eea..000000000000
--- a/pkgs/applications/networking/browsers/icecat-3/rpath-link.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Without this patch, IceCat ends up linking with
-`-Wl,-rpath-link=/bin -Wl-,-rpath-link=/lib'.
-
---- icecat-3.5/js/src/configure	2009-07-04 18:03:01.000000000 +0200
-+++ icecat-3.5/js/src/configure	2009-07-13 18:34:30.000000000 +0200
-@@ -4775,7 +4775,6 @@ HOST_AR='$(AR)'
- HOST_AR_FLAGS='$(AR_FLAGS)'
- 
- MOZ_JS_LIBS='-L$(libdir) -lmozjs'
--MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(PREFIX)/lib'
- 
- MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
- MOZ_XPCOM_OBSOLETE_LIBS='-L$(LIBXUL_DIST)/lib -lxpcom_compat'
-
diff --git a/pkgs/applications/networking/browsers/icecat-3/skip-gre-registration.patch b/pkgs/applications/networking/browsers/icecat-3/skip-gre-registration.patch
deleted file mode 100644
index d1fb4e3f30ab..000000000000
--- a/pkgs/applications/networking/browsers/icecat-3/skip-gre-registration.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Skip "GRE" registration since that assumes write access to `/etc'.
-
---- icecat-3.0.1-g1/xulrunner/installer/Makefile.in	2008-07-27 12:52:16.000000000 +0200
-+++ icecat-3.0.1-g1/xulrunner/installer/Makefile.in	2008-09-08 17:19:17.000000000 +0200
-@@ -71,6 +71,7 @@ $(MOZILLA_VERSION).system.conf: $(topsrc
- 	printf "[%s]\nGRE_PATH=%s\nxulrunner=true\nabi=%s" \
- 	  $(MOZILLA_VERSION) $(installdir) $(TARGET_XPCOM_ABI)> $@
- 
-+SKIP_GRE_REGISTRATION = yes
- ifndef SKIP_GRE_REGISTRATION
- # to register xulrunner per-user, override this with $HOME/.gre.d
- regdir = /etc/gre.d
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix
index 8cda5ad5762f..229aa4f23ba1 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/fribid/default.nix
@@ -1,20 +1,19 @@
 { stdenv, fetchurl, pkgconfig, openssl, glib, libX11, gtk2, gettext, intltool }:
 
-let version = "1.0.2"; in
 stdenv.mkDerivation rec {
   name = "fribid-${version}";
+  version = "1.0.4";
   builder = ./builder.sh;
 
   src = fetchurl {
     url = "https://fribid.se/releases/source/${name}.tar.bz2";
-    sha256 = "d7cd9adf04fedf50b266a5c14ddb427cbb263d3bc160ee0ade03aca9d5356e5c";
+    sha256 = "a679f3a0534d5f05fac10b16b49630a898c0b721cfa24d2c827fa45485476649";
   };
 
   buildInputs = [ pkgconfig openssl libX11 gtk2 glib gettext intltool ];
   patches = [
     ./translation-xgettext-to-intltool.patch
     ./plugin-linkfix.patch
-    ./emulated-version.patch
     ./ipc-lazytrace.patch
     ];
 
@@ -22,10 +21,15 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A browser plugin to manage Swedish BankID:s";
+    longDescription = ''
+      FriBID is an open source software for the Swedish e-id system
+      called BankID. FriBID also supports processor architectures and
+      Linux/BSD distributions that the official software doesn't
+      support.
+    '';
     homepage = http://fribid.se;
     license = [ "GPLv2" "MPLv1" ];
     maintainers = [ stdenv.lib.maintainers.edwtjo ];
     platforms = with stdenv.lib.platforms; linux;
   };
 }
-
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix
index 5b6b2176d47e..105e5904715c 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/mplayerplug-in/default.nix
@@ -8,9 +8,6 @@ stdenv.mkDerivation rec {
     sha256 = "0zkvqrzibrbljiccvz3rhbmgifxadlrfjylqpz48jnjx9kggynms";
   };
 
-  patches =
-    stdenv.lib.optional (browser ? isFirefox3Like) ./icecat3-idldir.patch;
-
   postConfigure =
     (if browser ? isFirefox3Like then ''
        # Cause a rebuild of these file from the IDL file, needed for GNU IceCat 3
diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix
index 80b09bcd8a8e..201a6b947c1a 100644
--- a/pkgs/applications/networking/browsers/opera/default.nix
+++ b/pkgs/applications/networking/browsers/opera/default.nix
@@ -81,6 +81,6 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.opera.com;
-    description = "The Opera web browser";
+    description = "Web browser";
   };
 }
diff --git a/pkgs/applications/networking/browsers/vimb/default.nix b/pkgs/applications/networking/browsers/vimb/default.nix
index 7c5b983f1b49..996bda67323a 100644
--- a/pkgs/applications/networking/browsers/vimb/default.nix
+++ b/pkgs/applications/networking/browsers/vimb/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "vimb-${version}";
-  version = "2.6";
+  version = "2.7";
 
   src = fetchurl {
     url = "https://github.com/fanglingsu/vimb/archive/${version}.tar.gz";
-    sha256 = "1g6zm5fk3k52jk3vbbzj7rm0kanykd4zgxrqhlvj3qzj2nsn4a21";
+    sha256 = "05i5p9827rgga4h27qy3qh4ps8aynkcr55j681ddhn16ci3dk8zr";
   };
 
   # Nixos default ca bundle
diff --git a/pkgs/applications/networking/ids/snort/default.nix b/pkgs/applications/networking/ids/snort/default.nix
index 858e99c245ba..580591c18ade 100644
--- a/pkgs/applications/networking/ids/snort/default.nix
+++ b/pkgs/applications/networking/ids/snort/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libpcap pcre libdnet daq zlib flex bison ];
   
   meta = {
-    description = "Snort is an open source network intrusion prevention and detection system (IDS/IPS)";
+    description = "Network intrusion prevention and detection system (IDS/IPS)";
     homepage = http://www.snort.org;
     license = stdenv.lib.licenses.gpl2;
   };
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
index ec614bf4b8c1..cf10c1e6fe20 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "BitlBee, an IRC to other chat networks gateway";
+    description = "IRC instant messaging gateway";
 
     longDescription = ''
       BitlBee brings IM (instant messaging) to IRC clients.  It's a
diff --git a/pkgs/applications/networking/instant-messengers/carrier/2.5.0.nix b/pkgs/applications/networking/instant-messengers/carrier/2.5.0.nix
index 9cf2558ef320..909d6404193c 100644
--- a/pkgs/applications/networking/instant-messengers/carrier/2.5.0.nix
+++ b/pkgs/applications/networking/instant-messengers/carrier/2.5.0.nix
@@ -41,7 +41,7 @@ rec {
       
   name = "carrier-2.5.0";
   meta = {
-    description = "Carrier - PidginIM GUI fork with user-friendly development model";
+    description = "PidginIM GUI fork with user-friendly development model";
     homepage = http://funpidgin.sf.net; 
   };
 } // (if externalPurple2 then {
diff --git a/pkgs/applications/networking/instant-messengers/ekiga/default.nix b/pkgs/applications/networking/instant-messengers/ekiga/default.nix
index 07730a8c0ee1..e46956f3ccae 100644
--- a/pkgs/applications/networking/instant-messengers/ekiga/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ekiga/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "Ekiga SIP client";
+    description = "VOIP/Videoconferencing app with full SIP and H.323 support";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/networking/instant-messengers/fuze/default.nix b/pkgs/applications/networking/instant-messengers/fuze/default.nix
index 9ccada87fe2f..41ffb421f8e6 100644
--- a/pkgs/applications/networking/instant-messengers/fuze/default.nix
+++ b/pkgs/applications/networking/instant-messengers/fuze/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "Fuze for Linux";
+    description = "Internet and mobile based unified communications solutions (Linux client)";
     homepage = http://www.fuzebox.com;
     license = "unknown";
   };
diff --git a/pkgs/applications/networking/instant-messengers/hipchat/default.nix b/pkgs/applications/networking/instant-messengers/hipchat/default.nix
index 6da12905f560..cf4c2e22ad6b 100644
--- a/pkgs/applications/networking/instant-messengers/hipchat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/hipchat/default.nix
@@ -94,7 +94,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "HipChat Desktop Client";
+    description = "Desktop client for HipChat services";
     homepage = http://www.hipchat.com;
     license = stdenv.lib.licenses.unfree;
     platforms = [ "i686-linux" "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/linphone/default.nix b/pkgs/applications/networking/instant-messengers/linphone/default.nix
index be12c7e8e2ae..e10b4f9c83c5 100644
--- a/pkgs/applications/networking/instant-messengers/linphone/default.nix
+++ b/pkgs/applications/networking/instant-messengers/linphone/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     description = "Open Source video SIP softphone";
     license = stdenv.lib.licenses.gpl2Plus;
     platforms = stdenv.lib.platforms.gnu;
+    broken = true;
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index 6e6fd6d0eb6c..814a191c457a 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   + (lib.optionalString (gnutls != null) " --enable-gnutls=yes --enable-nss=no")
   ;
   meta = with stdenv.lib; {
-    description = "Pidgin IM - XMPP(Jabber), AIM/ICQ, IRC, SIP etc client";
+    description = "Multi-protocol instant messaging client";
     homepage = http://pidgin.im;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
index eb052af13690..d7dc755e9abb 100644
--- a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
+++ b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
@@ -77,6 +77,7 @@ stdenv.mkDerivation rec {
     description = "The TeamSpeak voice communication tool";
     homepage = http://teamspeak.com/;
     license = "http://www.teamspeak.com/?page=downloads&type=ts3_linux_client_latest";
+    maintainers = [ stdenv.lib.maintainers.lhvwb ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/toxic/default.nix b/pkgs/applications/networking/instant-messengers/toxic/default.nix
index b3e1ff74cfa5..f7d1a010ed8f 100644
--- a/pkgs/applications/networking/instant-messengers/toxic/default.nix
+++ b/pkgs/applications/networking/instant-messengers/toxic/default.nix
@@ -2,16 +2,13 @@
 , libtoxcore, openal, libvpx, freealut, libconfig, pkgconfig }:
 
 let
-  version = "7566aa9d26";
-  date = "20140728";
-in
-stdenv.mkDerivation rec {
-  name = "toxic-${date}-${version}";
+  version = "0.4.7";
+in stdenv.mkDerivation rec {
+  name = "toxic-${version}";
 
   src = fetchurl {
-    url = "https://github.com/Tox/toxic/tarball/${version}";
-    name = "${name}.tar.gz";
-    sha256 = "13vns0qc0hxhab6rpz0irnzgv42mp3v1nrbwm90iymhf4xkc9nwa";
+    url = "https://github.com/Tox/toxic/archive/v${version}.tar.gz";
+    sha256 = "0rcrcqzvicz7787fa4b7f68qnwq6wqbyrm8ii850f1w7vnxq9dkq";
   };
 
   makeFlags = [ "-Cbuild" "VERSION=${version}" ];
diff --git a/pkgs/applications/networking/instant-messengers/utox/default.nix b/pkgs/applications/networking/instant-messengers/utox/default.nix
index 823df5c27a28..b49d5f40a86b 100644
--- a/pkgs/applications/networking/instant-messengers/utox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/utox/default.nix
@@ -8,8 +8,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "notsecure";
     repo = "uTox";
-    rev = "d70f9bfb4ff8a156ec35803da6226b0ac8c47961";
-    sha256 = "10cvsg0phv0jsrdl3zkk339c4bzn3xc82q1x90h6gcnrbg4vzmp0";
+    rev = "a840b459210694fdf02671567bf33845a11d4c83";
+    sha256 = "0jr0xajkv5vkq8gxspnq09k4bzc98fr3hflnz8a3lrwajyhrnpvp";
   };
 
   buildInputs = [ pkgconfig libtoxcore dbus libvpx libX11 openal freetype
diff --git a/pkgs/applications/networking/jmeter/default.nix b/pkgs/applications/networking/jmeter/default.nix
index 2d5e6b66bf05..77aeb64478f0 100644
--- a/pkgs/applications/networking/jmeter/default.nix
+++ b/pkgs/applications/networking/jmeter/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "Apache JMeter is a 100% pure Java desktop application designed to load test functional behavior and measure performance.";
+    description = "A 100% pure Java desktop application designed to load test functional behavior and measure performance";
     longDescription = ''
       The Apache JMeter desktop application is open source software, a 100%
       pure Java application designed to load test functional behavior and
diff --git a/pkgs/applications/networking/mailreaders/notmuch/default.nix b/pkgs/applications/networking/mailreaders/notmuch/default.nix
index 7a1eddfa8690..75ccb93ca954 100644
--- a/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -70,8 +70,7 @@ stdenv.mkDerivation rec {
   checkTarget = "test";
 
   meta = {
-    description = "Notmuch -- The mail indexer";
-    longDescription = "";
+    description = "Mail indexer";
     license = stdenv.lib.licenses.gpl3;
     maintainers = with stdenv.lib.maintainers; [ chaoflow garbas ];
     platforms = stdenv.lib.platforms.gnu;
diff --git a/pkgs/applications/networking/mailreaders/sup/default.nix b/pkgs/applications/networking/mailreaders/sup/default.nix
index 8efda554d732..3d537d83f430 100644
--- a/pkgs/applications/networking/mailreaders/sup/default.nix
+++ b/pkgs/applications/networking/mailreaders/sup/default.nix
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
     license     = stdenv.lib.licenses.gpl2;
     maintainers = with stdenv.lib.maintainers; [ lovek323 ];
     platforms   = stdenv.lib.platforms.unix;
+    broken = true;
   };
 
   dontStrip = true;
@@ -30,6 +31,7 @@ stdenv.mkDerivation rec {
 
   buildPhase = ''
     # the builder uses git to get a listing of the files
+    export EMAIL="nobody@in.here"
     git init >/dev/null
     git add .
     git commit -m "message" >/dev/null
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index 15acd5af8dfd..6add41edf7c3 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -37,6 +37,8 @@
 , pango
 }:
 
+assert stdenv.isLinux;
+
 let
   version = "31.0";
   sources = [
diff --git a/pkgs/applications/networking/newsreaders/slrn/default.nix b/pkgs/applications/networking/newsreaders/slrn/default.nix
index c933460af43b..fe13c756bd7f 100644
--- a/pkgs/applications/networking/newsreaders/slrn/default.nix
+++ b/pkgs/applications/networking/newsreaders/slrn/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   buildInputs = [ slang ncurses ];
 
   meta = {
-    description = "The slrn (S-Lang read news) newsreader";
+    description = "Text-based newsreader";
     homepage = http://slrn.sourceforge.net/index.html;
     license = stdenv.lib.licenses.gpl2;
   };
diff --git a/pkgs/applications/networking/p2p/gnunet/default.nix b/pkgs/applications/networking/p2p/gnunet/default.nix
index 6c28840f7e5f..052c53112536 100644
--- a/pkgs/applications/networking/p2p/gnunet/default.nix
+++ b/pkgs/applications/networking/p2p/gnunet/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   */
 
   meta = {
-    description = "GNUnet, GNU's decentralized anonymous and censorship-resistant P2P framework";
+    description = "GNU's decentralized anonymous and censorship-resistant P2P framework";
 
     longDescription = ''
       GNUnet is a framework for secure peer-to-peer networking that
diff --git a/pkgs/applications/networking/remote/rdesktop/default.nix b/pkgs/applications/networking/remote/rdesktop/default.nix
index 9ba9e3aa3fc4..09c20618d668 100644
--- a/pkgs/applications/networking/remote/rdesktop/default.nix
+++ b/pkgs/applications/networking/remote/rdesktop/default.nix
@@ -19,6 +19,6 @@ stdenv.mkDerivation (rec {
   ];
 
   meta = {
-    description = "rdesktop is an open source client for Windows Terminal Services";
+    description = "Open source client for Windows Terminal Services";
   };
 })
diff --git a/pkgs/applications/networking/remote/remmina/default.nix b/pkgs/applications/networking/remote/remmina/default.nix
index 8fb929d53e10..8304f6dc091b 100644
--- a/pkgs/applications/networking/remote/remmina/default.nix
+++ b/pkgs/applications/networking/remote/remmina/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation {
   meta = with stdenv.lib; {
     license = stdenv.lib.licenses.gpl2;
     homepage = "http://remmina.sourceforge.net/";
-    description = "Remmina is a remote desktop client written in GTK+";
+    description = "Remote desktop client written in GTK+";
     maintainers = [];
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index 226b7f6d097b..64bf287b44f0 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://syncthing.net/;
-    description = "Syncthing replaces Dropbox and BitTorrent Sync with something open, trustworthy and decentralized";
+    description = "Replaces Dropbox and BitTorrent Sync with something open, trustworthy and decentralized";
     license = with stdenv.lib.licenses; mit;
     maintainers = with stdenv.lib.maintainers; [ matejc ];
     platforms = with stdenv.lib.platforms; linux;
diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix
index 9c255f493d3f..8d6de404f986 100644
--- a/pkgs/applications/office/gnucash/default.nix
+++ b/pkgs/applications/office/gnucash/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "GnuCash, a personal and small-business financial-accounting application";
+    description = "Personal and small-business financial-accounting application";
 
     longDescription = ''
       GnuCash is personal and small-business financial-accounting software,
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index 41cf1ebc33df..63d4db20af37 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -252,7 +252,7 @@ stdenv.mkDerivation rec {
     ];
 
   meta = with stdenv.lib; {
-    description = "LibreOffice is a comprehensive, professional-quality productivity suite, a variant of openoffice.org";
+    description = "Comprehensive, professional-quality productivity suite, a variant of openoffice.org";
     homepage = http://libreoffice.org/;
     license = licenses.lgpl3;
     maintainers = [ maintainers.viric maintainers.raskin ];
diff --git a/pkgs/applications/science/astronomy/gravit/default.nix b/pkgs/applications/science/astronomy/gravit/default.nix
index 696890f95f1e..1be1328da271 100644
--- a/pkgs/applications/science/astronomy/gravit/default.nix
+++ b/pkgs/applications/science/astronomy/gravit/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://gravit.slowchop.com";
-    description = "A beautiful OpenGL-based gravity simulator";
+    description = "Beautiful OpenGL-based gravity simulator";
     license = stdenv.lib.licenses.gpl2;
 
     longDescription = ''
diff --git a/pkgs/applications/science/biology/emboss/default.nix b/pkgs/applications/science/biology/emboss/default.nix
index 96181c8ee6cb..c9974660da36 100644
--- a/pkgs/applications/science/biology/emboss/default.nix
+++ b/pkgs/applications/science/biology/emboss/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
   # '';
 
   meta = {
-    description     = "EMBOSS is 'The European Molecular Biology Open Software Suite'";
+    description     = "The European Molecular Biology Open Software Suite";
     longDescription = ''EMBOSS is a free Open Source software analysis package
     specially developed for the needs of the molecular biology (e.g. EMBnet)
     user community, including libraries. The software automatically copes with
diff --git a/pkgs/applications/science/logic/alt-ergo/default.nix b/pkgs/applications/science/logic/alt-ergo/default.nix
index 2a95d0cd65bb..62359baf2bc6 100644
--- a/pkgs/applications/science/logic/alt-ergo/default.nix
+++ b/pkgs/applications/science/logic/alt-ergo/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     [ ocaml findlib ocamlgraph zarith lablgtk gmp ];
 
   meta = {
-    description = "Alt-Ergo is a high-performance theorem prover and SMT solver";
+    description = "High-performance theorem prover and SMT solver";
     homepage    = "http://alt-ergo.ocamlpro.com/";
     license     = stdenv.lib.licenses.cecill-c; # LGPL-2 compatible
     platforms   = stdenv.lib.platforms.linux;
diff --git a/pkgs/applications/science/logic/coq/HEAD.nix b/pkgs/applications/science/logic/coq/HEAD.nix
index 8e6fde6bc240..ed922b3aedbe 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-8bc01590";
+  version = "8.5pre-c70d5b2";
   buildIde = lablgtk != null;
   ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
   idePath = if buildIde then ''
@@ -16,17 +16,20 @@ stdenv.mkDerivation {
 
   src = fetchgit {
     url = git://scm.gforge.inria.fr/coq/coq.git;
-    rev = "8bc0159095cb0230a50c55a1611c8b77134a6060";
-    sha256 = "1cp4hbk9jw78y03vwz099yvixax161h60hsbyvwiwz2z5czjxzcv";
+    rev = "c70d5b27ad5872c74e20b6c997383fb4462a68dc";
+    sha256 = "02wks2aivgjcf4h3ss9rn683vyawz8gl8rbysdq7awxh062316l2";
   };
 
   buildInputs = [ pkgconfig ocaml findlib camlp5 ncurses lablgtk ];
 
+  patches = [ ./no-codesign.patch ];
+
   postPatch = ''
     UNAME=$(type -tp uname)
     RM=$(type -tp rm)
     substituteInPlace configure --replace "/bin/uname" "$UNAME"
     substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM"
+    substituteInPlace Makefile.build --replace "ifeq (\$(ARCH),Darwin)" "ifeq (\$(ARCH),Darwinx)"
   '';
 
   preConfigure = ''
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index 678ec6a4b049..da77a4c5a9aa 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
   buildFlags = "revision coq coqide";
 
   meta = {
-    description = "Coq proof assistant";
+    description = "Formal proof management system";
     longDescription = ''
       Coq is a formal proof management system.  It provides a formal language
       to write mathematical definitions, executable algorithms and theorems
diff --git a/pkgs/applications/science/logic/coq/no-codesign.patch b/pkgs/applications/science/logic/coq/no-codesign.patch
new file mode 100644
index 000000000000..0f917fbf56d4
--- /dev/null
+++ b/pkgs/applications/science/logic/coq/no-codesign.patch
@@ -0,0 +1,19 @@
+diff --git a/Makefile.build b/Makefile.build
+index 2963a3d..876479c 100644
+--- a/Makefile.build
++++ b/Makefile.build
+@@ -101,13 +101,8 @@ BYTEFLAGS=$(CAMLDEBUG) $(USERFLAGS)
+ OPTFLAGS=$(CAMLDEBUGOPT) $(CAMLTIMEPROF) $(USERFLAGS)
+ DEPFLAGS= $(LOCALINCLUDES) -I ide -I ide/utils
+ 
+-ifeq ($(ARCH),Darwin)
+-LINKMETADATA=-ccopt "-sectcreate __TEXT __info_plist config/Info-$(notdir $@).plist"
+-CODESIGN=codesign -s -
+-else
+ LINKMETADATA=
+ CODESIGN=true
+-endif
+ 
+ define bestocaml
+ $(if $(OPT),\
+
diff --git a/pkgs/applications/science/logic/matita/default.nix b/pkgs/applications/science/logic/matita/default.nix
index f601f97de62e..0f393b419f1d 100644
--- a/pkgs/applications/science/logic/matita/default.nix
+++ b/pkgs/applications/science/logic/matita/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = http://matita.cs.unibo.it/;
-    description = "Matita is an experimental, interactive theorem prover";
+    description = "Experimental, interactive theorem prover";
     license = stdenv.lib.licenses.gpl2Plus;
     maintainers = [ stdenv.lib.maintainers.roconnor ];
   };
diff --git a/pkgs/applications/science/logic/prooftree/default.nix b/pkgs/applications/science/logic/prooftree/default.nix
index caaf4a94a1ed..94b1d5907620 100644
--- a/pkgs/applications/science/logic/prooftree/default.nix
+++ b/pkgs/applications/science/logic/prooftree/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation (rec {
   configureFlags = [ "--prefix" "$(out)" ];
 
   meta = {
-    description = "Prooftree is a program for proof-tree visualization";
+    description = "A program for proof-tree visualization";
     longDescription = ''
       Prooftree is a program for proof-tree visualization during interactive
       proof development in a theorem prover. It is currently being developed
diff --git a/pkgs/applications/science/logic/twelf/default.nix b/pkgs/applications/science/logic/twelf/default.nix
index c6c7e4d9c1a7..f9680b475797 100644
--- a/pkgs/applications/science/logic/twelf/default.nix
+++ b/pkgs/applications/science/logic/twelf/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "Twelf logic proof assistant";
+    description = "Logic proof assistant";
     longDescription = ''
       Twelf is a language used to specify, implement, and prove properties of
       deductive systems such as programming languages and logics. Large
diff --git a/pkgs/applications/science/logic/verifast/default.nix b/pkgs/applications/science/logic/verifast/default.nix
index 7ab08cf8799f..2685f5e53d06 100644
--- a/pkgs/applications/science/logic/verifast/default.nix
+++ b/pkgs/applications/science/logic/verifast/default.nix
@@ -1,6 +1,8 @@
 { stdenv, fetchurl, gtk, gdk_pixbuf, atk, pango, glib, cairo, freetype
 , fontconfig, libxml2, gnome2 }:
 
+assert stdenv.isLinux;
+
 let
   libPath = stdenv.lib.makeLibraryPath
     [ stdenv.gcc.libc stdenv.gcc.gcc gtk gdk_pixbuf atk pango glib cairo
diff --git a/pkgs/applications/science/logic/yices/default.nix b/pkgs/applications/science/logic/yices/default.nix
index 5a1a4ef19922..b6b34d96d154 100644
--- a/pkgs/applications/science/logic/yices/default.nix
+++ b/pkgs/applications/science/logic/yices/default.nix
@@ -1,5 +1,7 @@
 { stdenv, fetchurl }:
 
+assert stdenv.isLinux;
+
 let
   libPath = stdenv.lib.makeLibraryPath [ stdenv.gcc.libc ];
 in
diff --git a/pkgs/applications/science/math/fricas/default.nix b/pkgs/applications/science/math/fricas/default.nix
index 1817c43ed7be..6e187843404d 100644
--- a/pkgs/applications/science/math/fricas/default.nix
+++ b/pkgs/applications/science/math/fricas/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://fricas.sourceforge.net/;
-    description = "Fricas CAS";
+    description = "An advanced computer algebra system";
     license = stdenv.lib.licenses.bsd3;
 
     hydraPlatforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/applications/science/math/glsurf/default.nix b/pkgs/applications/science/math/glsurf/default.nix
index c4352c46f92e..1439d327d6ec 100644
--- a/pkgs/applications/science/math/glsurf/default.nix
+++ b/pkgs/applications/science/math/glsurf/default.nix
@@ -26,6 +26,6 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = http://www.lama.univ-savoie.fr/~raffalli/glsurf;
-    description = "GlSurf: a program to draw implicit surfaces and curves";
+    description = "A program to draw implicit surfaces and curves";
   };
 }
diff --git a/pkgs/applications/science/math/jags/default.nix b/pkgs/applications/science/math/jags/default.nix
index a93386149bd4..785c2460bb49 100644
--- a/pkgs/applications/science/math/jags/default.nix
+++ b/pkgs/applications/science/math/jags/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   buildInputs = [gfortran liblapack blas];
 
   meta = {
-    description = "JAGS: Just Another Gibbs Sampler";
+    description = "Just Another Gibbs Sampler";
     license     = "GPL2";
     homepage    = http://www-ice.iarc.fr/~martyn/software/jags/;
     maintainers = [stdenv.lib.maintainers.andres];
diff --git a/pkgs/applications/science/math/maxima/default.nix b/pkgs/applications/science/math/maxima/default.nix
index 096796a859d0..3277d94d99b6 100644
--- a/pkgs/applications/science/math/maxima/default.nix
+++ b/pkgs/applications/science/math/maxima/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   meta = {
-    description = "Maxima computer algebra system";
+    description = "Computer algebra system";
     homepage = "http://maxima.sourceforge.net";
     license = stdenv.lib.licenses.gpl2;
 
diff --git a/pkgs/applications/science/misc/fityk/default.nix b/pkgs/applications/science/misc/fityk/default.nix
index db79839ba669..4c93eef2b1c0 100644
--- a/pkgs/applications/science/misc/fityk/default.nix
+++ b/pkgs/applications/science/misc/fityk/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   buildInputs = [wxGTK30 boost lua zlib bzip2 xylib readline gnuplot ];
 
   meta = {
-    description = "Fityk -- curve fitting and peak fitting software";
+    description = "Curve fitting and peak fitting software";
     license = "GPL2";
     homepage = http://fityk.nieto.pl/;
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/applications/science/misc/simgrid/default.nix b/pkgs/applications/science/misc/simgrid/default.nix
index 29a7caf769be..7656668f0564 100644
--- a/pkgs/applications/science/misc/simgrid/default.nix
+++ b/pkgs/applications/science/misc/simgrid/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = {
-    description = "SimGrid, a simulator for distributed applications in heterogeneous environments";
+    description = "Simulator for distributed applications in heterogeneous environments";
 
     longDescription =
       '' SimGrid is a toolkit that provides core functionalities for the
diff --git a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
index b9abf7b55b48..879690bc91ed 100644
--- a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
+++ b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   meta = {
     homepage    = "http://www.gromacs.org";
     license     = "GPLv2";
-    description = "The GROMACS molecular dynamics software package";
+    description = "Molecular dynamics software package";
     longDescription = ''
       GROMACS is a versatile package to perform molecular dynamics,
       i.e. simulate the Newtonian equations of motion for systems
diff --git a/pkgs/applications/science/spyder/default.nix b/pkgs/applications/science/spyder/default.nix
index 1079a153ca16..806d2f546cf5 100644
--- a/pkgs/applications/science/spyder/default.nix
+++ b/pkgs/applications/science/spyder/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "Scientific PYthon Development EnviRonment (SPYDER)";
+    description = "Scientific python development environment";
     longDescription = ''
       Spyder (previously known as Pydee) is a powerful interactive development
       environment for the Python language with advanced editing, interactive
diff --git a/pkgs/applications/version-management/darcs/default.nix b/pkgs/applications/version-management/darcs/default.nix
index d53b38c28c32..ff5c3456e227 100644
--- a/pkgs/applications/version-management/darcs/default.nix
+++ b/pkgs/applications/version-management/darcs/default.nix
@@ -1,24 +1,24 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
 { cabal, curl, extensibleExceptions, filepath, hashedStorage
-, haskeline, html, HTTP, mmap, mtl, network, parsec, random
-, regexCompat, tar, terminfo, text, utf8String, vector, zlib
+, haskeline, html, HTTP, mmap, mtl, network, networkUri, parsec
+, random, regexCompat, tar, terminfo, text, utf8String, vector
+, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "darcs";
-  version = "2.8.4";
-  sha256 = "164zclgib9ql4rqykpdhhk2bad0m5v0k0iwzsj0z7nax5nxlvarz";
+  version = "2.8.5";
+  sha256 = "16g3ayw0wwhkjpprlkzi971ibs4dp152bmaa487512cwb3ni0hq6";
   isLibrary = true;
   isExecutable = true;
+  doCheck = false;
   buildDepends = [
     extensibleExceptions filepath hashedStorage haskeline html HTTP
-    mmap mtl network parsec random regexCompat tar terminfo text
-    utf8String vector zlib
+    mmap mtl network networkUri parsec random regexCompat tar terminfo
+    text utf8String vector zlib
   ];
   extraLibraries = [ curl ];
-  jailbreak = true;
-  doCheck = false;
   postInstall = ''
     mkdir -p $out/etc/bash_completion.d
     mv contrib/darcs_completion $out/etc/bash_completion.d/darcs
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index a4d16e460607..877c65afccf5 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -133,7 +133,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = http://git-scm.com/;
-    description = "Git, a popular distributed version control system";
+    description = "Distributed version control system";
     license = stdenv.lib.licenses.gpl2Plus;
 
     longDescription = ''
diff --git a/pkgs/applications/version-management/rcs/default.nix b/pkgs/applications/version-management/rcs/default.nix
index e71d23132aca..823638669b68 100644
--- a/pkgs/applications/version-management/rcs/default.nix
+++ b/pkgs/applications/version-management/rcs/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.gnu.org/software/rcs/;
-    description = "GNU RCS, a revision control system";
+    description = "Revision control system";
     longDescription =
       '' The GNU Revision Control System (RCS) manages multiple revisions of
          files. RCS automates the storing, retrieval, logging,
diff --git a/pkgs/applications/video/gnash/default.nix b/pkgs/applications/video/gnash/default.nix
index 06122619066a..515e2591461f 100644
--- a/pkgs/applications/video/gnash/default.nix
+++ b/pkgs/applications/video/gnash/default.nix
@@ -103,7 +103,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.gnu.org/software/gnash/;
-    description = "GNU Gnash, a libre SWF (Flash) movie player";
+    description = "A libre SWF (Flash) movie player";
 
     longDescription = ''
       Gnash is a GNU Flash movie player.  Flash is an animation file format
diff --git a/pkgs/applications/video/key-mon/default.nix b/pkgs/applications/video/key-mon/default.nix
index cb00ac813842..57c8ca574b41 100644
--- a/pkgs/applications/video/key-mon/default.nix
+++ b/pkgs/applications/video/key-mon/default.nix
@@ -3,12 +3,12 @@
 
 buildPythonPackage rec {
   name = "key-mon-${version}";
-  version = "1.16";
+  version = "1.17";
   namePrefix = "";
 
   src = fetchurl {
     url = "http://key-mon.googlecode.com/files/${name}.tar.gz";
-    sha256 = "1pfki1fyh3q29sj6kq1chhi1h2v9ki6sp09qyww59rjraypvzsis";
+    sha256 = "1liz0dxcqmchbnl1xhlxkqm3gh76wz9jxdxn9pa7dy77fnrjkl5q";
   };
 
   propagatedBuildInputs =
diff --git a/pkgs/applications/video/kino/default.nix b/pkgs/applications/video/kino/default.nix
index 16bd57bef34a..7dd089537b73 100644
--- a/pkgs/applications/video/kino/default.nix
+++ b/pkgs/applications/video/kino/default.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation {
 
 
   meta = { 
-      description = "Kino is a non-linear DV editor for GNU/Linux";
+      description = "Non-linear DV editor for GNU/Linux";
       homepage = http://www.kinodv.org/;
       license = stdenv.lib.licenses.gpl2;
   };
diff --git a/pkgs/applications/video/linuxstopmotion/default.nix b/pkgs/applications/video/linuxstopmotion/default.nix
new file mode 100644
index 000000000000..23a033844b38
--- /dev/null
+++ b/pkgs/applications/video/linuxstopmotion/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchgit, pkgconfig, qt4, SDL, SDL_image, libvorbis, libtar, libxml2
+, gamin
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.8";
+  name = "linuxstopmotion-${version}";
+  
+  src = fetchgit {
+    url = "git://git.code.sf.net/p/linuxstopmotion/code";
+    rev = "refs/tags/${version}";
+    sha256 = "1xkkrhllgy2d7k0vrdj794ya7y3g3n7xh8c2qgnb26yrarz79dqj";
+  };
+
+  buildInputs = [ pkgconfig qt4 SDL SDL_image libvorbis libtar libxml2 gamin ];
+
+  patches = [ ./linuxstopmotion-fix-wrong-isProcess-logic.patch ];
+
+  configurePhase = ''
+    qmake PREFIX="$out"
+  '';
+
+  # Installation breaks without this
+  preInstall = ''
+    mkdir -p "$out/share/stopmotion/translations/"
+    cp -v build/*.qm "$out/share/stopmotion/translations/"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Create stop-motion animation movies";
+    homepage = http://linuxstopmotion.org/;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/pkgs/applications/video/linuxstopmotion/linuxstopmotion-fix-wrong-isProcess-logic.patch b/pkgs/applications/video/linuxstopmotion/linuxstopmotion-fix-wrong-isProcess-logic.patch
new file mode 100644
index 000000000000..caab48d0e2d9
--- /dev/null
+++ b/pkgs/applications/video/linuxstopmotion/linuxstopmotion-fix-wrong-isProcess-logic.patch
@@ -0,0 +1,33 @@
+From b23b7dab1d540b0710fcb9ded1c6256a49844906 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= <bjorn.forsman@gmail.com>
+Date: Wed, 20 Aug 2014 22:22:00 +0200
+Subject: [PATCH] Fix wrong "isProcess" logic
+
+Stopmotion wrongly thinks that uvccapture should be run as a daemon,
+even though configuration for uvccapture has no "daemon-like" command
+line to be run (according to "preferences"). The result is an error
+popup instead of video/image grabbing.
+
+This brings back the "isProcess" logic that was in stopmotion v0.7.2,
+because it seems to work, while the current logic (v0.8.0) seems to
+fail.
+---
+ src/presentation/frontends/qtfrontend/frameview.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/presentation/frontends/qtfrontend/frameview.cpp b/src/presentation/frontends/qtfrontend/frameview.cpp
+index e44dca7..d2c41fd 100644
+--- a/src/presentation/frontends/qtfrontend/frameview.cpp
++++ b/src/presentation/frontends/qtfrontend/frameview.cpp
+@@ -270,7 +270,7 @@ bool FrameView::on() {
+ 	Preference device(QString("device%1")
+ 			.arg(activeDev).toLatin1().constData(), "");
+ 	QString pre = QString(prepoll.get()).replace("$VIDEODEVICE", device.get());
+-	bool isProcess = startDaemon.get();
++	bool isProcess = (strcmp(startDaemon.get(), "") == 0) ? false : true;
+ 
+ 	bool isCameraReady = true;
+ 	this->grabber = new CommandLineGrabber(capturedFile.path(), isProcess);
+-- 
+2.0.2
+
diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix
index 4eec9afdbf3d..db1ced49166e 100644
--- a/pkgs/applications/video/mpv/default.nix
+++ b/pkgs/applications/video/mpv/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, fetchgit, freetype, pkgconfig, freefont_ttf, ffmpeg, libass
 , lua, perl, libpthreadstubs
 , lua5_sockets
-, python3, docutils, which
+, python3, docutils, which, lib
 , x11Support ? true, libX11 ? null, libXext ? null, mesa ? null, libXxf86vm ? null
 , xineramaSupport ? true, libXinerama ? null
 , xvSupport ? true, libXv ? null
@@ -20,8 +20,9 @@
 # For screenshots
 , libpngSupport ? true, libpng ? null
 # for Youtube support
-, quviSupport? false, libquvi ? null
-, cacaSupport? false, libcaca ? null
+, quviSupport ? false, libquvi ? null
+, cacaSupport ? false, libcaca ? null
+, vaapiSupport ? false, libva ? null
 }:
 
 assert x11Support -> (libX11 != null && libXext != null && mesa != null && libXxf86vm != null);
@@ -57,11 +58,11 @@ in
 
 stdenv.mkDerivation rec {
   name = "mpv-${version}";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchurl {
     url = "https://github.com/mpv-player/mpv/archive/v${version}.tar.gz";
-    sha256 = "0wqjyzw3kk854zj263k7jyykzfaz1g27z50aqrd26hylg8k135cn";
+    sha256 = "17mmc6xm8yir2p379h00q3wy7rplz2s31h6sxswmzbh72xf10g96";
   };
 
   buildInputs = with stdenv.lib;
@@ -84,6 +85,7 @@ stdenv.mkDerivation rec {
     ++ optional quviSupport libquvi
     ++ optional sdl2Support SDL2
     ++ optional cacaSupport libcaca
+    ++ optional vaapiSupport libva
     ;
 
   nativeBuildInputs = [ python3 lua perl ];
@@ -97,7 +99,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   configurePhase = ''
-    python3 ${waf} configure --prefix=$out
+    python3 ${waf} configure --prefix=$out ${lib.optionalString vaapiSupport "--enable-vaapi"}
     patchShebangs TOOLS
   '';
 
@@ -124,9 +126,9 @@ stdenv.mkDerivation rec {
   };
 }
 
-# Heavily based on mplayer2 expression
+# Many thanks @matejc for this update: 0.5.0 and vaapi (experimental)
 
 # TODO: Wayland support
-# TODO: investigate libquvi support
+# TODO: investigate libquvi problems (related to Youtube support)
 # TODO: investigate caca support
 # TODO: investigate lua5_sockets bug
diff --git a/pkgs/applications/video/smplayer/default.nix b/pkgs/applications/video/smplayer/default.nix
index 8bd5b7c6160a..018be742a160 100644
--- a/pkgs/applications/video/smplayer/default.nix
+++ b/pkgs/applications/video/smplayer/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, qt4 }:
 
 stdenv.mkDerivation rec {
-  name = "smplayer-0.8.6";
+  name = "smplayer-14.3.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/smplayer/${name}.tar.bz2";
-    sha256 = "1p70929j8prc4mgqxvsbcjxy8zwp4r9jk0mp0iddxl7vfyck74g0";
+    sha256 = "9b8db20043d1528ee5c6054526779e88a172d2c757429bd7095c794d65ecbc18";
   };
 
   buildInputs = [ qt4 ];
diff --git a/pkgs/applications/video/uvccapture/default.nix b/pkgs/applications/video/uvccapture/default.nix
new file mode 100644
index 000000000000..468db4625103
--- /dev/null
+++ b/pkgs/applications/video/uvccapture/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, libjpeg }:
+
+let
+  debianPatches = fetchurl {
+    url = "mirror://debian/pool/main/u/uvccapture/uvccapture_0.5-3.debian.tar.gz";
+    sha256 = "0m29by13nw1r8sch366qzdxg5rsd1k766kqg1nj2pdb8f7pwjh9r";
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "uvccapture-0.5";
+  
+  src = fetchurl {
+    url = "mirror://debian/pool/main/u/uvccapture/uvccapture_0.5.orig.tar.gz";
+    sha256 = "1b3akkcmr3brbf93akr8xi20w8zqf2g0qfq928500wy04qi6jqpi";
+  };
+
+  buildInputs = [ libjpeg ];
+
+  patchPhase = ''
+    tar xvf "${debianPatches}"
+    for fname in debian/patches/fix_videodev_include_FTBFS.patch \
+                 debian/patches/warnings.patch \
+                 debian/patches/numbuffers.patch
+    do
+        echo "Applying patch $fname"
+        patch < "$fname"
+    done
+  '';
+
+  makeFlagsArray = [ "PREFIX=$(out)/bin/" ];
+
+  preInstall = ''
+    mkdir -p "$out/bin"
+  '';
+
+  # Upstream has no man page, install one from Debian
+  postInstall = ''
+    mkdir -p "$out/share/man/man1"
+    cp -v debian/uvccapture.1 "$out/share/man/man1/"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Capture image from USB webcam at a specified interval";
+    homepage = http://linux-uvc.berlios.de/;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/pkgs/applications/video/xbmc/default.nix b/pkgs/applications/video/xbmc/default.nix
index 3232267fa94b..875ed48c102f 100644
--- a/pkgs/applications/video/xbmc/default.nix
+++ b/pkgs/applications/video/xbmc/default.nix
@@ -34,11 +34,11 @@ assert vdpauSupport -> libvdpau != null && ffmpeg.vdpauSupport;
 assert pulseSupport -> pulseaudio != null;
 
 stdenv.mkDerivation rec {
-    name = "xbmc-13.1";
+    name = "xbmc-13.2";
 
     src = fetchurl {
-      url = "https://github.com/xbmc/xbmc/archive/13.1-Gotham.tar.gz";
-      sha256 = "0y56c5csfp8xhk088g47m3bzrri73z868yfx6b04gnrdmr760jrl";
+      url = "https://github.com/xbmc/xbmc/archive/13.2-Gotham.tar.gz";
+      sha256 = "11g5a3h6kxz1vmnhagfjhg9nqf11wy0wzqqf4h338jh3lgzmvgxc";
     };
 
     buildInputs = [
@@ -96,7 +96,7 @@ stdenv.mkDerivation rec {
 
     meta = {
       homepage = http://xbmc.org/;
-      description = "XBMC Media Center";
+      description = "Media center";
       license = "GPLv2";
       platforms = stdenv.lib.platforms.linux; 
       maintainers = [ stdenv.lib.maintainers.iElectric ];
diff --git a/pkgs/applications/virtualization/bochs/default.nix b/pkgs/applications/virtualization/bochs/default.nix
index 75afcb41f808..74ce7bdfcaa6 100644
--- a/pkgs/applications/virtualization/bochs/default.nix
+++ b/pkgs/applications/virtualization/bochs/default.nix
@@ -1,34 +1,34 @@
 { stdenv, fetchurl
+, pkgconfig, gtk
 , libX11 , mesa
 , sdlSupport ? true, SDL ? null
 , termSupport ? true , ncurses ? null, readline ? null
-, wxSupport ? true , gtk ? null , wxGTK ? null , pkgconfig ? null
+, wxSupport ? false, wxGTK ? null
 , wgetSupport ? false, wget ? null
 , curlSupport ? false, curl ? null
 }:
 
-
 assert sdlSupport -> (SDL != null);
 assert termSupport -> (ncurses != null&& readline != null);
-assert wxSupport -> (gtk != null && wxGTK != null && pkgconfig != null);
+assert wxSupport -> (gtk != null && wxGTK != null);
 assert wgetSupport -> (wget != null);
 assert curlSupport -> (curl != null);
 
 stdenv.mkDerivation rec {
 
   name = "bochs-${version}";
-  version = "2.6.2";
+  version = "2.6.6";
 
   src = fetchurl {
     url = "http://downloads.sourceforge.net/project/bochs/bochs/${version}/${name}.tar.gz";
-    sha256 = "042blm1xb9ig4fh2bv8nrrfpgkcxy4hq8yrkx7mrdpm5g4mvfwyr";
+    sha256 = "0nlrl218x93vz97n46aw2szsalx97r020mn43fjsif100v7zix6f";
   };
 
   buildInputs = with stdenv.lib;
-  [ libX11 mesa ]
+  [ pkgconfig gtk libX11 mesa ]
   ++ optionals sdlSupport [ SDL ]
   ++ optionals termSupport [ readline ncurses ]
-  ++ optionals wxSupport [ gtk wxGTK pkgconfig ]
+  ++ optionals wxSupport [ wxGTK ]
   ++ optionals wgetSupport [ wget ]
   ++ optionals curlSupport [ curl ];
 
@@ -50,6 +50,8 @@ stdenv.mkDerivation rec {
     --enable-pnic
 '';
 
+  NIX_CFLAGS_COMPILE="-I${gtk}/include/gtk-2.0/";
+	
   meta = {
     description = "An open-source IA-32 (x86) PC emulator";
     longDescription = ''
@@ -61,3 +63,4 @@ stdenv.mkDerivation rec {
     platforms = stdenv.lib.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 4a488a381abf..f4d329221ff3 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -1,30 +1,30 @@
 { stdenv, fetchurl, makeWrapper, go, lxc, sqlite, iproute, bridge_utils, devicemapper,
-btrfsProgs, iptables, bash}:
+btrfsProgs, iptables, bash, e2fsprogs}:
 
 stdenv.mkDerivation rec {
   name = "docker-${version}";
-  version = "1.1.2";
+  version = "1.2.0";
 
   src = fetchurl {
     url = "https://github.com/dotcloud/docker/archive/v${version}.tar.gz";
-    sha256 = "1pa6k3gx940ap3r96xdry6apzkm0ymqra92b2mrp25b25264cqcy";
+    sha256 = "1nk74p9k17bllgw4992ixx7z3w87icp2wabbpbgfyi20k2q9mayp";
   };
 
-  buildInputs = [ makeWrapper go sqlite lxc iproute bridge_utils devicemapper btrfsProgs iptables ];
+  buildInputs = [ makeWrapper go sqlite lxc iproute bridge_utils devicemapper btrfsProgs iptables e2fsprogs];
 
   dontStrip = true;
 
   buildPhase = ''
     patchShebangs ./hack
     export AUTO_GOPATH=1
-    export DOCKER_GITCOMMIT="d84a070"
+    export DOCKER_GITCOMMIT="fa7b24f"
     ./hack/make.sh dynbinary
   '';
 
   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"
+    wrapProgram $out/bin/docker --prefix PATH : "${iproute}/sbin:sbin:${lxc}/bin:${iptables}/sbin:${e2fsprogs}/sbin"
 
     # systemd
     install -Dm644 ./contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service
diff --git a/pkgs/applications/virtualization/nova/default.nix b/pkgs/applications/virtualization/nova/default.nix
index c1ef20b7aa08..0023cf44f33b 100644
--- a/pkgs/applications/virtualization/nova/default.nix
+++ b/pkgs/applications/virtualization/nova/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   pythonPath = with pythonPackages;
     [ setuptools eventlet greenlet gflags netaddr sqlalchemy carrot routes
-      paste_deploy m2crypto ipy boto_1_9 twisted sqlalchemy_migrate
+      paste_deploy m2crypto ipy twisted sqlalchemy_migrate
       distutils_extra simplejson readline glance cheetah lockfile httplib2
       # !!! should libvirt be a build-time dependency?  Note that
       # libxml2Python is a dependency of libvirt.py.
diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix
index 08d53d83eedb..d4d680f05fa2 100644
--- a/pkgs/applications/virtualization/virt-manager/default.nix
+++ b/pkgs/applications/virtualization/virt-manager/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs =
     [ eventlet greenlet gflags netaddr sqlalchemy carrot routes
-      paste_deploy m2crypto ipy boto_1_9 twisted sqlalchemy_migrate
+      paste_deploy m2crypto ipy twisted sqlalchemy_migrate
       distutils_extra simplejson readline glance cheetah lockfile httplib2
       urlgrabber virtinst pyGtkGlade pythonDBus gnome_python pygobject3
       libvirt libxml2Python ipaddr vte
diff --git a/pkgs/applications/virtualization/virtinst/default.nix b/pkgs/applications/virtualization/virtinst/default.nix
index 8e2da5c3b764..6441bb884234 100644
--- a/pkgs/applications/virtualization/virtinst/default.nix
+++ b/pkgs/applications/virtualization/virtinst/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pythonPackages, intltool, libvirt, libxml2Python, curl }:
+{ stdenv, fetchurl, pythonPackages, intltool, libxml2Python, curl }:
 
 with stdenv.lib;
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   pythonPath = with pythonPackages;
     [ setuptools eventlet greenlet gflags netaddr sqlalchemy carrot routes
-      paste_deploy m2crypto ipy boto_1_9 twisted sqlalchemy_migrate
+      paste_deploy m2crypto ipy twisted sqlalchemy_migrate
       distutils_extra simplejson readline glance cheetah lockfile httplib2
       # !!! should libvirt be a build-time dependency?  Note that
       # libxml2Python is a dependency of libvirt.py. 
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 682e7159ac8f..f3e7bea3ca9a 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -11,7 +11,7 @@ with stdenv.lib;
 
 let
 
-  version = "4.3.12"; # changes ./guest-additions as well
+  version = "4.3.14"; # changes ./guest-additions as well
 
   forEachModule = action: ''
     for mod in \
@@ -31,13 +31,13 @@ let
   '';
 
   # See https://github.com/NixOS/nixpkgs/issues/672 for details
-  extpackRevision = "93733";
+  extpackRevision = "95030";
   extensionPack = requireFile rec {
     name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}.vbox-extpack";
     # IMPORTANT: Hash must be base16 encoded because it's used as an input to
     # VBoxExtPackHelperApp!
     # Tip: see http://dlc.sun.com.edgesuite.net/virtualbox/4.3.10/SHA256SUMS
-    sha256 = "f931ce41b2cc9500dc43aba004630cf7bb7050ba737eae38827e91062f072d1f";
+    sha256 = "b965c3565e7933bc61019d2992f4da084944cfd9e809fbeaff330f4743d47537";
     message = ''
       In order to use the extension pack, you need to comply with the VirtualBox Personal Use
       and Evaluation License (PUEL) by downloading the related binaries from:
@@ -56,7 +56,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
-    sha256 = "db84ddf47d1ecd316ec46417595f0252e3ec2f67e35e1e17320aba87b7c2934f";
+    sha256 = "bc893adde4449a2d35d8b4d0b8b247f0f2ac62a434fd8a8f7c54f613a100855a";
   };
 
   buildInputs =
diff --git a/pkgs/applications/window-managers/fluxbox/default.nix b/pkgs/applications/window-managers/fluxbox/default.nix
new file mode 100644
index 000000000000..af6545b61515
--- /dev/null
+++ b/pkgs/applications/window-managers/fluxbox/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig
+, freetype, fribidi
+, libXext, libXft, libXpm, libXrandr, libXrender, xextproto
+, libXinerama
+, imlib2
+}:
+
+stdenv.mkDerivation rec {
+
+  name = "fluxbox-${version}";
+  version = "1.3.5";
+
+  buildInputs = [ pkgconfig freetype fribidi libXext libXft libXpm libXrandr libXrender xextproto libXinerama imlib2 ];
+
+  src = fetchurl {
+    url = "mirror://sourceforge/fluxbox/${name}.tar.bz2";
+    sha256 = "164dd7bf59791d09a1e729a4fcd5e7347a1004ba675629860a5cf1a271c32983";
+  };
+
+  meta = {
+    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.
+    '';
+    homepage = http://fluxbox.org/;
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.AndersonTorres ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
+# Many thanks Jack Ryan from Nix-dev mailing list!
diff --git a/pkgs/applications/window-managers/ratpoison/default.nix b/pkgs/applications/window-managers/ratpoison/default.nix
index 65264c20db35..0eb28464e590 100644
--- a/pkgs/applications/window-managers/ratpoison/default.nix
+++ b/pkgs/applications/window-managers/ratpoison/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.nongnu.org/ratpoison/";
-    description = "Ratpoison, a simple mouse-free tiling window manager";
+    description = "Simple mouse-free tiling window manager";
     license = stdenv.lib.licenses.gpl2Plus;
 
     longDescription = ''
diff --git a/pkgs/build-support/fetchbzr/nix-prefetch-bzr b/pkgs/build-support/fetchbzr/nix-prefetch-bzr
index 2f46819323f2..8143fca7025d 100755
--- a/pkgs/build-support/fetchbzr/nix-prefetch-bzr
+++ b/pkgs/build-support/fetchbzr/nix-prefetch-bzr
@@ -43,11 +43,10 @@ fi
 # If we don't know the hash or a path with that hash doesn't exist,
 # download the file and add it to the store.
 if test -z "$finalPath"; then
-    tmpPath=/tmp/bzr-checkout-tmp-$$
-    tmpFile=$tmpPath/$dstFile
-    mkdir $tmpPath
+    tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/bzr-checkout-tmp-XXXXXXXX")"
+    trap "rm -rf \"$tmpPath\"" EXIT
 
-    trap "rm -rf $tmpPath" EXIT
+    tmpFile="$tmpPath/$dstFile"
 
     # Perform the checkout.
     bzr -Ossl.cert_reqs=none export $revarg --format=dir "$tmpFile" "$url"
diff --git a/pkgs/build-support/fetchcvs/nix-prefetch-cvs b/pkgs/build-support/fetchcvs/nix-prefetch-cvs
index 29e0d29b52e9..f9ed8ffa066f 100755
--- a/pkgs/build-support/fetchcvs/nix-prefetch-cvs
+++ b/pkgs/build-support/fetchcvs/nix-prefetch-cvs
@@ -20,7 +20,7 @@ fi
 
 
 mkTempDir() {
-    tmpPath=$(mktemp -d -t nix-prefetch-cvs-XXXXXXXX)
+    tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/nix-prefetch-cvs-XXXXXXXX")"
     trap removeTempDir EXIT SIGINT SIGQUIT
 }
 
diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git
index fcb012627834..4f9dd2ac272b 100755
--- a/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -219,7 +219,7 @@ clone_user_rev() {
 
     local full_revision=$(cd $dir && (git rev-parse $rev 2> /dev/null || git rev-parse refs/heads/fetchgit) | tail -n1)
     echo "git revision is $full_revision"
-    echo "git human-readable version is $(cd $dir && (git describe $full_revision 2> /dev/null || git describe --tags $full_revision 2> /dev/null || echo -- none --))"
+    echo "git human-readable version is $(cd $dir && (git describe $full_revision 2> /dev/null || git describe --tags $full_revision 2> /dev/null || echo -- none --))" >&2
 
     # Allow doing additional processing before .git removal
     eval "$NIX_PREFETCH_GIT_CHECKOUT_HOOK"
@@ -256,11 +256,11 @@ else
   # download the file and add it to the store.
   if test -z "$finalPath"; then
 
-      tmpPath=/tmp/git-checkout-tmp-$$
-      tmpFile=$tmpPath/git-export
-      mkdir $tmpPath $tmpFile
+      tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/git-checkout-tmp-XXXXXXXX")"
+      trap "rm -rf \"$tmpPath\"" EXIT
 
-      trap "rm -rf $tmpPath" EXIT
+      tmpFile="$tmpPath/git-export"
+      mkdir "$tmpFile"
 
       # Perform the checkout.
       clone_user_rev "$tmpFile" "$url" "$rev"
diff --git a/pkgs/build-support/fetchhg/nix-prefetch-hg b/pkgs/build-support/fetchhg/nix-prefetch-hg
index 075dbc9c367b..a8916176f8af 100755
--- a/pkgs/build-support/fetchhg/nix-prefetch-hg
+++ b/pkgs/build-support/fetchhg/nix-prefetch-hg
@@ -35,11 +35,10 @@ fi
 # download the file and add it to the store.
 if test -z "$finalPath"; then
 
-    tmpPath=/tmp/hg-checkout-tmp-$$
-    tmpArchive=$tmpPath/hg-archive
-    mkdir $tmpPath
+    tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/hg-checkout-tmp-XXXXXXXX")"
+    trap "rm -rf \"$tmpPath\"" EXIT
 
-    trap "rm -rf $tmpPath" EXIT
+    tmpArchive="$tmpPath/hg-archive"
 
     # Perform the checkout.
     if [[ $url != /* ]]; then
diff --git a/pkgs/build-support/fetchsvn/nix-prefetch-svn b/pkgs/build-support/fetchsvn/nix-prefetch-svn
index a2ee3ac6052f..03b9eb9a03df 100755
--- a/pkgs/build-support/fetchsvn/nix-prefetch-svn
+++ b/pkgs/build-support/fetchsvn/nix-prefetch-svn
@@ -41,11 +41,10 @@ fi
 # If we don't know the hash or a path with that hash doesn't exist,
 # download the file and add it to the store.
 if test -z "$finalPath"; then
-    tmpPath=/tmp/svn-checkout-tmp-$$
-    tmpFile=$tmpPath/$dstFile
-    mkdir $tmpPath
+    tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/svn-checkout-tmp-XXXXXXXX")"
+    trap "rm -rf \"$tmpPath\"" EXIT
 
-    trap "rm -rf $tmpPath" EXIT
+    tmpFile="$tmpPath/$dstFile"
 
     # Perform the checkout.
     if test "$NIX_PREFETCH_SVN_LEAVE_DOT_SVN" != 1
diff --git a/pkgs/data/documentation/man-pages/default.nix b/pkgs/data/documentation/man-pages/default.nix
index d4c0b4a6461a..2eefa31691ee 100644
--- a/pkgs/data/documentation/man-pages/default.nix
+++ b/pkgs/data/documentation/man-pages/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "man-pages-3.70";
+  name = "man-pages-3.71";
 
   src = fetchurl {
     url = "mirror://kernel/linux/docs/man-pages/${name}.tar.xz";
-    sha256 = "1qnhlicshlcz2da9k9czp75cfj7a6y90m0bhik7gzxa3s3b4f43j";
+    sha256 = "981038ecffcf6db490c0bc4359f489c318654068a6ba5aa086962ac41b0d2894";
   };
 
   preBuild =
diff --git a/pkgs/data/fonts/comic-neue/default.nix b/pkgs/data/fonts/comic-neue/default.nix
new file mode 100644
index 000000000000..91608d17db44
--- /dev/null
+++ b/pkgs/data/fonts/comic-neue/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation rec {
+  name = "comic-neue-1.1";
+
+  src = fetchurl {
+    url = "http://comicneue.com/comic-neue-1.1.zip";
+    sha256 = "f9442fc42252db62ea788bd0247ae0e74571678d1dbd3e3edc229389050d6923";
+  };
+
+  buildInputs = [unzip];
+  phases = [ "unpackPhase" "installPhase" ];
+  sourceRoot = name;
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/truetype
+    cp -v *.ttf $out/share/fonts/truetype
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://comicneue.com/;
+    description = "A casual type face: Make your lemonade stand look like a fortune 500 company";
+    longDescription = ''
+      It is inspired by Comic Sans but more regular.  The font was
+      designed by Craig Rozynski.  It is available in two variants:
+      Comic Neue and Comic Neue Angular.  The former having round and
+      the latter angular terminals.  Both variants come in Light,
+      Regular, and Bold weights with Oblique variants.
+    '';
+    license = licenses.cc0;
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/fonts/fira/default.nix b/pkgs/data/fonts/fira/default.nix
new file mode 100644
index 000000000000..56fa9f51a474
--- /dev/null
+++ b/pkgs/data/fonts/fira/default.nix
@@ -0,0 +1,36 @@
+{stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  name = "fira-3.111";
+
+  src = fetchurl {
+    url = "http://www.carrois.com/wordpress/downloads/fira_3_1/FiraFonts3111.zip";
+    sha256 = "3ced3df236b0b0eec1b390885c53ac02f3e3f830e9449414230717334a0b2457";
+  };
+
+  buildInputs = [unzip];
+  phases = [ "unpackPhase" "installPhase" ];
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype
+    find . -name "*.otf" -exec cp -v {} $out/share/fonts/opentype \;
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.carrois.com/fira-3-1/;
+    description = "Sans-serif and monospace font for Firefox OS";
+    longDescription = ''
+      Fira Sans is a sans-serif font designed by Erik Spiekermann,
+      Ralph du Carrois, Anja Meiners and Botio Nikoltchev of Carrois
+      Type Design for Mozilla Firefox OS.  It is closely related to
+      Spiekermann's FF Meta typeface.  Available in Two, Four, Eight,
+      Hair, Thin, Ultra Light, Extra Light, Light, Book, Regular,
+      Medium, Semi Bold, Bold, Extra Bold, Heavy weights with
+      corresponding italic versions.  Fira Mono is a matching
+      monospace variant of Fira Sans.  It is available in regular, and
+      bold weights.
+    '';
+    license = licenses.ofl;
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/data/fonts/terminus-font/default.nix b/pkgs/data/fonts/terminus-font/default.nix
index 3487a8012dc0..fa9eb0ac42d5 100644
--- a/pkgs/data/fonts/terminus-font/default.nix
+++ b/pkgs/data/fonts/terminus-font/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl, bdftopcf, mkfontdir, mkfontscale }:
 
 stdenv.mkDerivation rec {
-  name = "terminus-font-4.38";
+  name = "terminus-font-4.39";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/terminus-font/${name}/${name}.tar.gz";
-    sha256 = "1dwpxmg0wiyhp7hh18mvw18gnf0y2jgbn80c4xya7rmb9mm8gx7n";
+    sha256 = "1gzmn7zakvy6yrvmswyjfklnsvqrjm0imhq8rjws8rdkhqwkh21i";
   };
 
   buildInputs = [ perl bdftopcf mkfontdir mkfontscale ];
diff --git a/pkgs/desktops/e17/enlightenment/default.nix b/pkgs/desktops/e17/enlightenment/default.nix
index 1c3edb07ecf1..953c90e80032 100644
--- a/pkgs/desktops/e17/enlightenment/default.nix
+++ b/pkgs/desktops/e17/enlightenment/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     --disable-illume2
   '';
   meta = {
-    description = "Enlightenment, the window manager";
+    description = "A window manager";
     longDescription = ''
       The Enlightenment Desktop shell provides an efficient yet
       breathtaking window manager based on the Enlightenment
diff --git a/pkgs/desktops/gnome-2/platform/gtkglext/default.nix b/pkgs/desktops/gnome-2/platform/gtkglext/default.nix
index ee08975b9daa..b278dadfe24c 100644
--- a/pkgs/desktops/gnome-2/platform/gtkglext/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gtkglext/default.nix
@@ -15,11 +15,9 @@ stdenv.mkDerivation rec {
   # `GTK_WIDGET_NO_WINDOW', all of which appear to be deprecated nowadays.
   CPPFLAGS = "-UGTK_DISABLE_DEPRECATED";
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://projects.gnome.org/gtkglext/;
-
     description = "GtkGLExt, an OpenGL extension to GTK+";
-
     longDescription =
       '' GtkGLExt is an OpenGL extension to GTK+. It provides additional GDK
          objects which support OpenGL rendering in GTK+ and GtkWidget API
@@ -27,9 +25,7 @@ stdenv.mkDerivation rec {
          Löf's GtkGLArea, GtkGLExt provides a GtkWidget API that enables
          OpenGL drawing for standard and custom GTK+ widgets.
       '';
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-
-    maintainers = [ ];
+    license = licenses.lgpl2Plus;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/desktops/gnome-3/3.10/core/yelp/default.nix b/pkgs/desktops/gnome-3/3.10/core/yelp/default.nix
index b58aa99721e2..983e7f416a6d 100644
--- a/pkgs/desktops/gnome-3/3.10/core/yelp/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/core/yelp/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Apps/Yelp;
-    description = "Yelp is the help viewer in Gnome.";
+    description = "The Gnome help viewer";
     maintainers = with maintainers; [ lethalman ];
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome-3/3.10/misc/gitg/default.nix b/pkgs/desktops/gnome-3/3.10/misc/gitg/default.nix
index 7ca35a8255f9..401d5cf2f36a 100644
--- a/pkgs/desktops/gnome-3/3.10/misc/gitg/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/misc/gitg/default.nix
@@ -6,11 +6,11 @@
 # use packaged gnome3.gnome_icon_theme_symbolic 
 
 stdenv.mkDerivation rec {
-  name = "gitg-0.3.2";
+  name = "gitg-3.13.91";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gitg/0.3/${name}.tar.xz";
-    sha256 = "03vc59d1r3326piqdph6qjqnc40chm1lpg52lpf8466ddjs0x8vp";
+    url = "mirror://gnome/sources/gitg/3.13/${name}.tar.xz";
+    sha256 = "1c2016grvgg5f3l5xkracz85rblsc1a4brzr6vgn6kh2h494rv37";
   };
 
   preCheck = ''
diff --git a/pkgs/desktops/gnome-3/3.10/misc/libgit2-glib/default.nix b/pkgs/desktops/gnome-3/3.10/misc/libgit2-glib/default.nix
index 17c3b4fa0a8c..82e2b5855094 100644
--- a/pkgs/desktops/gnome-3/3.10/misc/libgit2-glib/default.nix
+++ b/pkgs/desktops/gnome-3/3.10/misc/libgit2-glib/default.nix
@@ -1,18 +1,20 @@
-{ stdenv, fetchurl, gnome3, libtool, pkgconfig
+{ stdenv, fetchurl, gnome3, libtool, pkgconfig, vala
 , gtk_doc, gobjectIntrospection, libgit2, glib }:
 
 stdenv.mkDerivation rec {
   name = "libgit2-glib-${version}";
-  version = "0.0.10";
+  version = "0.0.20";
 
   src = fetchurl {
     url = "https://github.com/GNOME/libgit2-glib/archive/v${version}.tar.gz";
-    sha256 = "0zn3k85jw6yks8s5ca8dyh9mwh4if1lni9gz9bd5lqlpa803ixxs";
+    sha256 = "1s2hj0ji73ishniqvr6mx90l1ji5jjwwrwhp91i87fxk0d3sry5x";
   };
+  
+  cmakeFlags = "-DTHREADSAFE=ON";
 
   configureScript = "sh ./autogen.sh";
 
-  buildInputs = [ gnome3.gnome_common libtool pkgconfig
+  buildInputs = [ gnome3.gnome_common libtool pkgconfig vala
                   gtk_doc gobjectIntrospection libgit2 glib ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/3.12/misc/gitg/default.nix b/pkgs/desktops/gnome-3/3.12/misc/gitg/default.nix
index 7ca35a8255f9..401d5cf2f36a 100644
--- a/pkgs/desktops/gnome-3/3.12/misc/gitg/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/misc/gitg/default.nix
@@ -6,11 +6,11 @@
 # use packaged gnome3.gnome_icon_theme_symbolic 
 
 stdenv.mkDerivation rec {
-  name = "gitg-0.3.2";
+  name = "gitg-3.13.91";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gitg/0.3/${name}.tar.xz";
-    sha256 = "03vc59d1r3326piqdph6qjqnc40chm1lpg52lpf8466ddjs0x8vp";
+    url = "mirror://gnome/sources/gitg/3.13/${name}.tar.xz";
+    sha256 = "1c2016grvgg5f3l5xkracz85rblsc1a4brzr6vgn6kh2h494rv37";
   };
 
   preCheck = ''
diff --git a/pkgs/desktops/gnome-3/3.12/misc/libgit2-glib/default.nix b/pkgs/desktops/gnome-3/3.12/misc/libgit2-glib/default.nix
index 17c3b4fa0a8c..94776c90cf99 100644
--- a/pkgs/desktops/gnome-3/3.12/misc/libgit2-glib/default.nix
+++ b/pkgs/desktops/gnome-3/3.12/misc/libgit2-glib/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchurl, gnome3, libtool, pkgconfig
+{ stdenv, fetchurl, gnome3, libtool, pkgconfig, vala
 , gtk_doc, gobjectIntrospection, libgit2, glib }:
 
 stdenv.mkDerivation rec {
   name = "libgit2-glib-${version}";
-  version = "0.0.10";
+  version = "0.0.20";
 
   src = fetchurl {
     url = "https://github.com/GNOME/libgit2-glib/archive/v${version}.tar.gz";
-    sha256 = "0zn3k85jw6yks8s5ca8dyh9mwh4if1lni9gz9bd5lqlpa803ixxs";
+    sha256 = "1s2hj0ji73ishniqvr6mx90l1ji5jjwwrwhp91i87fxk0d3sry5x";
   };
 
   configureScript = "sh ./autogen.sh";
 
-  buildInputs = [ gnome3.gnome_common libtool pkgconfig
+  buildInputs = [ gnome3.gnome_common libtool pkgconfig vala
                   gtk_doc gobjectIntrospection libgit2 glib ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/arduino/ino/default.nix b/pkgs/development/arduino/ino/default.nix
index 3e74c143c61b..484de02f05dd 100644
--- a/pkgs/development/arduino/ino/default.nix
+++ b/pkgs/development/arduino/ino/default.nix
@@ -13,7 +13,7 @@ buildPythonPackage rec {
   # TODO: add avrgcclibc, it must be rebuild with C++ support
   propagatedBuildInputs =
     [ arduino_core avrdude minicom pythonPackages.configobj
-      pythonPackages.jinja2 pythonPackages.pyserial ];
+      pythonPackages.jinja2 pythonPackages.pyserial pythonPackages.six ];
 
   patchPhase = ''
     echo "Patching Arduino distribution path"
diff --git a/pkgs/development/compilers/ats2/default.nix b/pkgs/development/compilers/ats2/default.nix
index 8c71138ab78e..c66143fe1f32 100644
--- a/pkgs/development/compilers/ats2/default.nix
+++ b/pkgs/development/compilers/ats2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name    = "ats2-${version}";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/ats2-lang/ATS2-Postiats-${version}.tgz";
-    sha256 = "0i7b9v7xki9j2jjjpydz0gl33af94b4jjmk75b9w20bs003v8vd4";
+    sha256 = "17yr5zc4cr4zlizhzy43ihfcidl63wjxcc002amzahskib4fsbmb";
   };
 
   buildInputs = [ gmp ];
diff --git a/pkgs/development/compilers/bigloo/default.nix b/pkgs/development/compilers/bigloo/default.nix
index 16dfa580a193..8564175d363d 100644
--- a/pkgs/development/compilers/bigloo/default.nix
+++ b/pkgs/development/compilers/bigloo/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   checkTarget = "test";
 
   meta = {
-    description = "Bigloo, an efficient Scheme compiler";
+    description = "Efficient Scheme compiler";
 
     longDescription = ''
       Bigloo is a Scheme implementation devoted to one goal: enabling
diff --git a/pkgs/development/compilers/cryptol/1.8.x.nix b/pkgs/development/compilers/cryptol/1.8.x.nix
index 4cf00ad3806d..17382ed9d567 100644
--- a/pkgs/development/compilers/cryptol/1.8.x.nix
+++ b/pkgs/development/compilers/cryptol/1.8.x.nix
@@ -1,5 +1,7 @@
 { stdenv, requireFile, gmp4, ncurses, zlib, clang_33, makeWrapper }:
 
+assert stdenv.isLinux;
+
 let
   name    = "cryptol-${version}-${rev}";
   version = "1.8.27";
diff --git a/pkgs/development/compilers/cudatoolkit/5.5.nix b/pkgs/development/compilers/cudatoolkit/5.5.nix
index 99f0828012fa..bf4009f08be3 100644
--- a/pkgs/development/compilers/cudatoolkit/5.5.nix
+++ b/pkgs/development/compilers/cudatoolkit/5.5.nix
@@ -51,8 +51,11 @@ stdenv.mkDerivation rec {
     perl ./install-linux.pl --prefix="$out"
     rm $out/tools/CUDA_Occupancy_Calculator.xls
     perl ./install-sdk-linux.pl --prefix="$sdk" --cudaprefix="$out"
+    mv $out/include $out/usr_include
   '';
 
+  setupHook = ./setup-hook.sh;
+
   meta = {
     license = [ "nonfree" ];
   };
diff --git a/pkgs/development/compilers/cudatoolkit/6.0.nix b/pkgs/development/compilers/cudatoolkit/6.0.nix
index 573cc8262216..5da4b3d0a4aa 100644
--- a/pkgs/development/compilers/cudatoolkit/6.0.nix
+++ b/pkgs/development/compilers/cudatoolkit/6.0.nix
@@ -51,8 +51,11 @@ stdenv.mkDerivation rec {
     perl ./install-linux.pl --prefix="$out"
     rm $out/tools/CUDA_Occupancy_Calculator.xls
     perl ./install-sdk-linux.pl --prefix="$sdk" --cudaprefix="$out"
+    mv $out/include $out/usr_include
   '';
 
+  setupHook = ./setup-hook.sh;
+
   meta = {
     license = [ "nonfree" ];
   };
diff --git a/pkgs/development/compilers/cudatoolkit/setup-hook.sh b/pkgs/development/compilers/cudatoolkit/setup-hook.sh
new file mode 100644
index 000000000000..1b75a2e91ba2
--- /dev/null
+++ b/pkgs/development/compilers/cudatoolkit/setup-hook.sh
@@ -0,0 +1,8 @@
+addIncludePath () {
+    if test -d "$1/usr_include"
+    then
+        export NIX_CFLAGS_COMPILE="${NIX_CFLAGS_COMPILE} -I$1/usr_include"
+    fi
+}
+
+envHooks=(${envHooks[@]} addIncludePath)
diff --git a/pkgs/development/compilers/emscripten-fastcomp/default.nix b/pkgs/development/compilers/emscripten-fastcomp/default.nix
new file mode 100644
index 000000000000..3eb9aef528c0
--- /dev/null
+++ b/pkgs/development/compilers/emscripten-fastcomp/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchgit, python }:
+
+let
+  tag = "1.21.0";
+in
+
+stdenv.mkDerivation rec {
+  name = "emscripten-fastcomp-${tag}";
+
+  srcFC = fetchgit {
+    url = git://github.com/kripken/emscripten-fastcomp;
+    rev = "refs/tags/${tag}";
+    sha256 = "0mcxzg2cfg0s1vfm3bh1ar4xsddb6xkv1dsdbgnpx38lbj1mvfs1";
+  };
+
+  srcFL = fetchgit {
+    url = git://github.com/kripken/emscripten-fastcomp-clang;
+    rev = "refs/tags/${tag}";
+    sha256 = "0s2jcn36d236cfpryjpgaazjp3cg83d0h78g6kk1j6vdppv3vgnp";
+  };
+
+  buildInputs = [ python ];
+  buildCommand = ''
+    cp -as ${srcFC} $TMPDIR/src
+    chmod +w $TMPDIR/src/tools
+    cp -as ${srcFL} $TMPDIR/src/tools/clang
+
+    chmod +w $TMPDIR/src
+    mkdir $TMPDIR/src/build
+    cd $TMPDIR/src/build
+
+    ../configure --enable-optimized --disable-assertions --enable-targets=host,js
+    make
+    cp -a Release/bin $out
+  '';
+  meta = with stdenv.lib; {
+    homepage = https://github.com/kripken/emscripten-fastcomp;
+    description = "emscripten llvm";
+    maintainers = with maintainers; [ bosu ];
+    license = "University of Illinois/NCSA Open Source License";
+  };
+}
diff --git a/pkgs/development/compilers/emscripten/default.nix b/pkgs/development/compilers/emscripten/default.nix
new file mode 100644
index 000000000000..43f256b58b04
--- /dev/null
+++ b/pkgs/development/compilers/emscripten/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchgit, emscriptenfastcomp, python, nodejs, closurecompiler, jre }:
+
+let
+  tag = "1.21.0";
+in
+
+stdenv.mkDerivation rec {
+  name = "emscripten-${tag}";
+
+  src = fetchgit {
+    url = git://github.com/kripken/emscripten;
+    rev = "refs/tags/${tag}";
+    sha256 = "0y17ab4nhd3521b50sv2i2667w0rlcnmlkpkgw5j3fsh8awxgf32";
+  };
+
+  buildCommand = ''
+    mkdir $out
+    cp -a $src $out/bin
+    chmod -R +w $out/bin
+    grep -rl '^#!/usr.*python' $out/bin | xargs sed -i -s 's@^#!/usr.*python.*@#!${python}/bin/python@'
+    sed -i -e "s,EM_CONFIG = '~/.emscripten',EM_CONFIG = '$out/config'," $out/bin/tools/shared.py
+    sed -i -e 's,^.*did not see a source tree above the LLVM.*$,      return True,' $out/bin/tools/shared.py
+    sed -i -e 's,def check_sanity(force=False):,def check_sanity(force=False):\n  return,' $out/bin/tools/shared.py
+
+    echo "EMSCRIPTEN_ROOT = '$out/bin'" > $out/config
+    echo "LLVM_ROOT = '${emscriptenfastcomp}'" >> $out/config
+    echo "PYTHON = '${python}/bin/python'" >> $out/config
+    echo "NODE_JS = '${nodejs}/bin/node'" >> $out/config
+    echo "JS_ENGINES = [NODE_JS]" >> $out/config
+    echo "COMPILER_ENGINE = NODE_JS" >> $out/config
+    echo "CLOSURE_COMPILER = '${closurecompiler}/bin/closure-compiler'" >> $out/config
+    echo "JAVA = '${jre}/bin/java'" >> $out/config
+  '';
+  meta = with stdenv.lib; {
+    homepage = https://github.com/kripken/emscripten;
+    description = "An LLVM-to-JavaScript Compiler";
+    maintainers = with maintainers; [ bosu ];
+    license = with licenses; ncsa;
+  };
+}
diff --git a/pkgs/development/compilers/gambit/default.nix b/pkgs/development/compilers/gambit/default.nix
index 265b08c1fbdf..3d9f2596c96c 100644
--- a/pkgs/development/compilers/gambit/default.nix
+++ b/pkgs/development/compilers/gambit/default.nix
@@ -18,7 +18,7 @@ rec {
   phaseNames = ["doConfigure" "doMakeInstall"];
       
   meta = {
-    description = "Gambit Scheme to C compiler";
+    description = "Scheme to C compiler";
     maintainers = [
       a.lib.maintainers.raskin
     ];
diff --git a/pkgs/development/compilers/go/1.3.nix b/pkgs/development/compilers/go/1.3.nix
index fafa045e5621..1dcdd89b5bf4 100644
--- a/pkgs/development/compilers/go/1.3.nix
+++ b/pkgs/development/compilers/go/1.3.nix
@@ -1,5 +1,7 @@
 { stdenv, lib, fetchurl, bison, glibc, bash, coreutils, makeWrapper, tzdata, iana_etc }:
 
+assert stdenv.gcc.gcc != null;
+
 let
   loader386 = "${glibc}/lib/ld-linux.so.2";
   loaderAmd64 = "${glibc}/lib/ld-linux-x86-64.so.2";
@@ -7,11 +9,11 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "go-1.3";
+  name = "go-1.3.1";
 
   src = fetchurl {
-    url = https://storage.googleapis.com/golang/go1.3.src.tar.gz;
-    sha256 = "10jkqgzlinzynciw3wr15c7n2vw5q4d2ni65hbs3i61bbdn3x67b";
+    url = https://storage.googleapis.com/golang/go1.3.1.src.tar.gz;
+    sha256 = "fdfa148cc12f1e4ea45a5565261bf43d8a2e7d1fad4a16aed592d606223b93a8";
   };
 
   buildInputs = [ bison bash makeWrapper ] ++ lib.optionals stdenv.isLinux [ glibc ] ;
diff --git a/pkgs/development/compilers/hugs/default.nix b/pkgs/development/compilers/hugs/default.nix
index c3f14826c8a2..14751799795a 100644
--- a/pkgs/development/compilers/hugs/default.nix
+++ b/pkgs/development/compilers/hugs/default.nix
@@ -47,7 +47,7 @@ composableDerivation.composableDerivation {} {
 
   meta = {
     license = "as-is"; # gentoo is calling it this way..
-    description = "The HUGS 98 Haskell interpreter";
+    description = "Haskell interpreter";
     homepage = http://www.haskell.org/hugs;
   };
 }
diff --git a/pkgs/development/compilers/ikarus/default.nix b/pkgs/development/compilers/ikarus/default.nix
index 070f29e16f64..e9bf6c8bb5b6 100644
--- a/pkgs/development/compilers/ikarus/default.nix
+++ b/pkgs/development/compilers/ikarus/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gmp ];
 
   meta = {
-    description = "Ikarus - a Scheme compiler, aiming at R6RS";
+    description = "Scheme compiler, aiming at R6RS";
     homepage = http://ikarus-scheme.org/;
     license = stdenv.lib.licenses.gpl3;
   };
diff --git a/pkgs/development/compilers/julia/0.3.0.nix b/pkgs/development/compilers/julia/0.3.0.nix
new file mode 100644
index 000000000000..3259fee55bfc
--- /dev/null
+++ b/pkgs/development/compilers/julia/0.3.0.nix
@@ -0,0 +1,157 @@
+{ stdenv, fetchgit, gfortran, perl, m4, llvm, gmp, pcre, zlib
+ , readline, fftwSinglePrec, fftw, libunwind, suitesparse, glpk, fetchurl
+ , ncurses, libunistring, lighttpd, patchelf, openblas, liblapack
+ , tcl, tk, xproto, libX11, git, mpfr, which
+ } :
+
+assert stdenv.isLinux; 
+
+let
+  realGcc = stdenv.gcc.gcc;
+in
+stdenv.mkDerivation rec {
+  pname = "julia";
+  version = "0.3.0";
+  name = "${pname}-${version}";
+
+  dsfmt_ver = "2.2";
+  grisu_ver = "1.1.1";
+  openblas_ver = "v0.2.10";
+  lapack_ver = "3.5.0";
+  arpack_ver = "3.1.5";
+  lighttpd_ver = "1.4.29";
+  patchelf_ver = "0.6";
+  pcre_ver = "8.31";
+  utf8proc_ver = "1.1.6";
+
+  dsfmt_src = fetchurl {
+    url = "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${dsfmt_ver}.tar.gz";
+    name = "dsfmt-${dsfmt_ver}.tar.gz";
+    sha256 = "bc3947a9b2253a869fcbab8ff395416cb12958be9dba10793db2cd7e37b26899";
+  };
+  grisu_src = fetchurl {
+    url = "http://double-conversion.googlecode.com/files/double-conversion-${grisu_ver}.tar.gz";
+    sha256 = "e1cabb73fd69e74f145aea91100cde483aef8b79dc730fcda0a34466730d4d1d";
+  };
+  openblas_src = fetchurl {
+    url = "https://github.com/xianyi/OpenBLAS/tarball/${openblas_ver}";
+    name = "openblas-${openblas_ver}.tar.gz";
+    sha256 = "06i0q4qnd5q5xljzrgvda0gjsczc6l2pl9hw6dn2qjpw38al73za";
+  };
+  arpack_src = fetchurl rec {
+    url = "http://forge.scilab.org/index.php/p/arpack-ng/downloads/get/arpack-ng_${arpack_ver}.tar.gz";
+    sha256 = "05fmg4m0yri47rzgsl2mnr1qbzrs7qyd557p3v9wwxxw0rwcwsd2";
+  };
+  lapack_src = fetchurl {
+    url = "http://www.netlib.org/lapack/lapack-${lapack_ver}.tgz";
+    name = "lapack-${lapack_ver}.tgz";
+    sha256 = "0lk3f97i9imqascnlf6wr5mjpyxqcdj73pgj97dj2mgvyg9z1n4s";
+  };
+  lighttpd_src = fetchurl {
+    url = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${lighttpd_ver}.tar.gz";
+    sha256 = "ff9f4de3901d03bb285634c5b149191223d17f1c269a16c863bac44238119c85";
+  };
+  patchelf_src = fetchurl {
+    url = "http://hydra.nixos.org/build/1524660/download/2/patchelf-${patchelf_ver}.tar.bz2";
+    sha256 = "00bw29vdsscsili65wcb5ay0gvg1w0ljd00sb5xc6br8bylpyzpw";
+  };
+  pcre_src = fetchurl {
+    url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${pcre_ver}.tar.bz2";
+    sha256 = "0g4c0z4h30v8g8qg02zcbv7n67j5kz0ri9cfhgkpwg276ljs0y2p";
+  };
+  utf8proc_src = fetchurl {
+    url = "http://www.public-software-group.org/pub/projects/utf8proc/v${utf8proc_ver}/utf8proc-v${utf8proc_ver}.tar.gz";
+    sha256 = "1rwr84pw92ajjlbcxq0da7yxgg3ijngmrj7vhh2qzsr2h2kqzp7y";
+  };
+
+  src = fetchgit {
+    url = "git://github.com/JuliaLang/julia.git";
+    rev = "refs/tags/v0.3.0";
+    sha256 = "1h7icqjiccw26f81r1zwsv31kk6yhavn038h7jp63iv5sdzh5r8i";
+  };
+
+  buildInputs = [ gfortran perl m4 gmp pcre llvm readline zlib
+    fftw fftwSinglePrec libunwind suitesparse glpk ncurses libunistring patchelf
+    openblas liblapack tcl tk xproto libX11 git mpfr which
+    ];
+
+  configurePhase = ''
+    for i in GMP LLVM PCRE READLINE FFTW LIBUNWIND SUITESPARSE GLPK LIGHTTPD ZLIB MPFR;
+    do
+      makeFlags="$makeFlags USE_SYSTEM_$i=1 "
+    done
+
+    copy_kill_hash(){
+      cp "$1" "$2/$(basename "$1" | sed -e 's/^[a-z0-9]*-//')"
+    }
+
+    for i in "${grisu_src}" "${dsfmt_src}" "${arpack_src}" "${patchelf_src}" \
+        "${pcre_src}" "${utf8proc_src}" "${lapack_src}" "${openblas_src}"; do
+      copy_kill_hash "$i" deps
+    done
+
+    ${if realGcc ==null then "" else 
+    ''export NIX_LDFLAGS="$NIX_LDFLAGS -L${realGcc}/lib -L${realGcc}/lib64 -lpcre -llapack -lm -lfftw3f -lfftw3 -lglpk -lunistring -lz -lgmp -lmpfr -lblas -lopenblas -L$out/lib"''}
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fPIC "
+
+    export LDFLAGS="-L${suitesparse}/lib -L$out/lib/julia -Wl,-rpath,$out/lib/julia"
+
+    export GLPK_PREFIX="${glpk}/include"
+
+    mkdir -p "$out/lib"
+    sed -e "s@/usr/local/lib@$out/lib@g" -i deps/Makefile
+    sed -e "s@/usr/lib@$out/lib@g" -i deps/Makefile
+
+    export makeFlags="$makeFlags PREFIX=$out SHELL=${stdenv.shell} prefix=$out"
+
+    export dontPatchELF=1
+
+    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PWD/usr/lib:$PWD/usr/lib/julia"
+
+    patchShebangs . contrib
+
+    export PATH="$PATH:${stdenv.gcc.libc}/sbin"
+
+    # ldconfig doesn't seem to ever work on NixOS; system-wide ldconfig cache
+    # is probably not what we want anyway on non-NixOS
+    sed -e "s@/sbin/ldconfig@true@" -i src/ccall.*
+
+    ln -s "${openblas}/lib/libopenblas.so" "$out/lib/libblas.so"
+  '';
+
+  preBuild = ''
+    mkdir -p usr/lib
+    
+    echo "$out"
+    mkdir -p "$out/lib"
+    (
+    cd "$(mktemp -d)"
+    for i in "${suitesparse}"/lib/lib*.a; do
+      ar -x $i
+    done
+    gcc *.o --shared -o "$out/lib/libsuitesparse.so"
+    )
+    cp "$out/lib/libsuitesparse.so" usr/lib
+    for i in umfpack cholmod amd camd colamd spqr; do
+      ln -s libsuitesparse.so "$out"/lib/lib$i.so;
+      ln -s libsuitesparse.so "usr"/lib/lib$i.so;
+    done
+  '';
+
+  dontStrip = true;
+
+  enableParallelBuilding = true;
+
+  postInstall = ''
+    rm -f "$out"/lib/julia/sys.{so,dylib,dll}
+  '';
+
+  meta = {
+    description = "High-level performance-oriented dynamical language for technical computing";
+    homepage = "http://julialang.org/";
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.raskin ];
+    platforms = with stdenv.lib.platforms; linux;
+    broken = false;
+  };
+}
diff --git a/pkgs/development/compilers/mercury/default.nix b/pkgs/development/compilers/mercury/default.nix
index 21af582c594b..de9b44a44146 100644
--- a/pkgs/development/compilers/mercury/default.nix
+++ b/pkgs/development/compilers/mercury/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "Mercury is a pure logic programming language.";
+    description = "A pure logic programming language";
     longDescription = ''
       Mercury is a logic/functional programming language which combines the
       clarity and expressiveness of declarative programming with advanced
diff --git a/pkgs/development/compilers/mit-scheme/default.nix b/pkgs/development/compilers/mit-scheme/default.nix
index c025fc8073bb..b10aaedb4837 100644
--- a/pkgs/development/compilers/mit-scheme/default.nix
+++ b/pkgs/development/compilers/mit-scheme/default.nix
@@ -1,7 +1,7 @@
 { fetchurl, stdenv, makeWrapper, gnum4, texinfo, texLive, automake }:
 
 let
-  version = "9.1.1";
+  version = "9.2";
   bootstrapFromC = ! (stdenv.isi686 || stdenv.isx86_64);
 
   arch = if      stdenv.isi686   then "-i386"
@@ -19,14 +19,14 @@ stdenv.mkDerivation {
     if stdenv.isi686
     then fetchurl {
       url = "mirror://gnu/mit-scheme/stable.pkg/${version}/mit-scheme-${version}-i386.tar.gz";
-      sha256 = "0vi760fy550d9db538m0vzbq1mpdncvw9g8bk4lswk0kcdira55z";
+      sha256 = "1fmlpnhf5a75db93phajh4ysbdgrgl72v45lk3kznriprl0a7jc6";
     } else if stdenv.isx86_64
     then fetchurl {
       url = "mirror://gnu/mit-scheme/stable.pkg/${version}/mit-scheme-${version}-x86-64.tar.gz";
-      sha256 = "1wcxm9hyfc53myvlcn93fyqrnnn4scwkknl9hkbp1cphc6mp291x";
+      sha256 = "1skzxxhr0iq96bf0j5m7mvf3i4sppfyfa6gpqn34mwgkw1fx8274";
     } else fetchurl {
       url = "mirror://gnu/mit-scheme/stable.pkg/${version}/mit-scheme-c-${version}.tar.gz";
-      sha256 = "0pclakzwxbqgy6wqwvs6ml62wgby8ba8xzmwzdwhx1v8wv05yw1j";
+      sha256 = "0w5ib5vsidihb4hb6fma3sp596ykr8izagm57axvgd6lqzwicsjg";
     };
 
   configurePhase =
@@ -65,7 +65,7 @@ stdenv.mkDerivation {
   # XXX: The `check' target doesn't exist.
   doCheck = false;
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "MIT/GNU Scheme, a native code Scheme compiler";
 
     longDescription =
@@ -78,14 +78,12 @@ stdenv.mkDerivation {
 
     homepage = http://www.gnu.org/software/mit-scheme/;
 
-    license = stdenv.lib.licenses.gpl2Plus;
+    license = licenses.gpl2Plus;
 
-    maintainers = [ stdenv.lib.maintainers.ludo ];
+    maintainers = with maintainers; [ ludo ];
 
     # Build fails on Cygwin and Darwin:
     # <http://article.gmane.org/gmane.lisp.scheme.mit-scheme.devel/489>.
-    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.freebsd;
-
-    broken = true;
+    platforms = platforms.gnu ++ platforms.freebsd;
   };
 }
diff --git a/pkgs/development/compilers/ocaml/3.10.0.nix b/pkgs/development/compilers/ocaml/3.10.0.nix
index 281aa1a9de6f..1d68585d93a1 100644
--- a/pkgs/development/compilers/ocaml/3.10.0.nix
+++ b/pkgs/development/compilers/ocaml/3.10.0.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation (rec {
   meta = {
     homepage = http://caml.inria.fr/ocaml;
     license = "QPL, LGPL2 (library part)";
-    desctiption = "Most popular variant of the Caml language";
+    description = "Most popular variant of the Caml language";
   };
 
 })
diff --git a/pkgs/development/compilers/ocaml/3.11.2.nix b/pkgs/development/compilers/ocaml/3.11.2.nix
index 64cf8a9f9f7b..195e83e7313b 100644
--- a/pkgs/development/compilers/ocaml/3.11.2.nix
+++ b/pkgs/development/compilers/ocaml/3.11.2.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://caml.inria.fr/ocaml;
     license = [ "QPL" /* compiler */ "LGPLv2" /* library */ ];
-    description = "Objective Caml, the most popular variant of the Caml language";
+    description = "Most popular variant of the Caml language";
 
     longDescription =
       '' Objective Caml is the most popular variant of the Caml language.
diff --git a/pkgs/development/compilers/ocaml/3.12.1.nix b/pkgs/development/compilers/ocaml/3.12.1.nix
index f916f5a79233..16c3cb1d7872 100644
--- a/pkgs/development/compilers/ocaml/3.12.1.nix
+++ b/pkgs/development/compilers/ocaml/3.12.1.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://caml.inria.fr/ocaml;
     license = [ "QPL" /* compiler */ "LGPLv2" /* library */ ];
-    description = "OCaml, the most popular variant of the Caml language";
+    description = "Most popular variant of the Caml language";
 
     longDescription =
       ''
diff --git a/pkgs/development/compilers/ocaml/4.00.1.nix b/pkgs/development/compilers/ocaml/4.00.1.nix
index 8662db70c26c..5b1e69b86b08 100644
--- a/pkgs/development/compilers/ocaml/4.00.1.nix
+++ b/pkgs/development/compilers/ocaml/4.00.1.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://caml.inria.fr/ocaml;
     license = [ "QPL" /* compiler */ "LGPLv2" /* library */ ];
-    description = "OCaml, the most popular variant of the Caml language";
+    description = "Most popular variant of the Caml language";
 
     longDescription =
       ''
diff --git a/pkgs/development/compilers/ocaml/4.01.0.nix b/pkgs/development/compilers/ocaml/4.01.0.nix
index 0f68014fad64..2876bce9caff 100644
--- a/pkgs/development/compilers/ocaml/4.01.0.nix
+++ b/pkgs/development/compilers/ocaml/4.01.0.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://caml.inria.fr/ocaml;
     license = [ "QPL" /* compiler */ "LGPLv2" /* library */ ];
-    description = "OCaml, the most popular variant of the Caml language";
+    description = "Most popular variant of the Caml language";
 
     longDescription =
       ''
diff --git a/pkgs/development/compilers/ocaml/ber-metaocaml-003.nix b/pkgs/development/compilers/ocaml/ber-metaocaml-003.nix
index 9c5fa3764bad..8b86c805c61f 100644
--- a/pkgs/development/compilers/ocaml/ber-metaocaml-003.nix
+++ b/pkgs/development/compilers/ocaml/ber-metaocaml-003.nix
@@ -58,6 +58,6 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://okmij.org/ftp/ML/index.html#ber-metaocaml";
     license = [ "QPL" /* compiler */ "LGPLv2" /* library */ ];
-    description = "a conservative extension of OCaml with the primitive type of code values, and three basic multi-stage expression forms: Brackets, Escape, and Run";
+    description = "A conservative extension of OCaml with the primitive type of code values, and three basic multi-stage expression forms: Brackets, Escape, and Run";
   };
 }
diff --git a/pkgs/development/compilers/qi/default.nix b/pkgs/development/compilers/qi/default.nix
index ecb022d942a9..5665fc5da6c1 100644
--- a/pkgs/development/compilers/qi/default.nix
+++ b/pkgs/development/compilers/qi/default.nix
@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
 	builder = writeScript (name + "-builder")
 		(textClosure localDefs [allBuild doForceShare doPropagate]);
 	meta = {
-		description = "Qi - next generation on top of Common Lisp";
+		description = "Functional programming language, built top of Common Lisp";
 	};
 }
diff --git a/pkgs/development/compilers/rdmd/default.nix b/pkgs/development/compilers/rdmd/default.nix
index 9177ad5e25b5..621ace195bbe 100644
--- a/pkgs/development/compilers/rdmd/default.nix
+++ b/pkgs/development/compilers/rdmd/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "rdmd wrapper for D language compiler";
+    description = "Wrapper for D language compiler";
     homepage = http://dlang.org/rdmd.html;
     license = lib.licenses.boost;
     maintainers = with stdenv.lib.maintainers; [ vlstill ];
diff --git a/pkgs/development/compilers/rustc/0.11.nix b/pkgs/development/compilers/rustc/0.11.nix
index 1c3b09b0985a..a7246e44a73d 100644
--- a/pkgs/development/compilers/rustc/0.11.nix
+++ b/pkgs/development/compilers/rustc/0.11.nix
@@ -1,5 +1,7 @@
 {stdenv, fetchurl, which, file, perl, curl, python27, makeWrapper}:
 
+assert stdenv.gcc.gcc != null;
+
 /* Rust's build process has a few quirks :
 
 - It requires some patched in llvm that haven't landed upstream, so it
diff --git a/pkgs/development/compilers/rustc/head.nix b/pkgs/development/compilers/rustc/head.nix
index ad33906ae6e9..4f512096a423 100644
--- a/pkgs/development/compilers/rustc/head.nix
+++ b/pkgs/development/compilers/rustc/head.nix
@@ -1,5 +1,7 @@
 {stdenv, fetchurl, fetchgit, which, file, perl, curl, python27, makeWrapper}:
 
+assert stdenv.gcc.gcc != null;
+
 /* Rust's build process has a few quirks :
 
 - It requires some patched in llvm that haven't landed upstream, so it
diff --git a/pkgs/development/compilers/scala/default.nix b/pkgs/development/compilers/scala/default.nix
index bd81e4c055d5..e299be9144eb 100644
--- a/pkgs/development/compilers/scala/default.nix
+++ b/pkgs/development/compilers/scala/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "Scala is a general purpose programming language";
+    description = "General purpose programming language";
     longDescription = ''
       Scala is a general purpose programming language designed to express
       common programming patterns in a concise, elegant, and type-safe way.
diff --git a/pkgs/development/compilers/tinycc/default.nix b/pkgs/development/compilers/tinycc/default.nix
index 1e82e03f16c0..bd71ab7b27fc 100644
--- a/pkgs/development/compilers/tinycc/default.nix
+++ b/pkgs/development/compilers/tinycc/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   checkTarget = "test";
 
   meta = {
-    description = "TinyCC, a small, fast, and embeddable C compiler and interpreter";
+    description = "Small, fast, and embeddable C compiler and interpreter";
 
     longDescription =
       '' TinyCC (aka TCC) is a small but hyper fast C compiler.  Unlike
diff --git a/pkgs/development/interpreters/guile/default.nix b/pkgs/development/interpreters/guile/default.nix
index 6e4051ff46eb..2ddad5cde677 100644
--- a/pkgs/development/interpreters/guile/default.nix
+++ b/pkgs/development/interpreters/guile/default.nix
@@ -65,7 +65,7 @@
 
 
   meta = {
-    description = "GNU Guile 2.0, an embeddable Scheme implementation";
+    description = "Embeddable Scheme implementation";
     homepage    = http://www.gnu.org/software/guile/;
     license     = stdenv.lib.licenses.lgpl3Plus;
     maintainers = with stdenv.lib.maintainers; [ ludo lovek323 ];
diff --git a/pkgs/development/interpreters/maude/default.nix b/pkgs/development/interpreters/maude/default.nix
index e112a5ae43d4..e14132a8acfd 100644
--- a/pkgs/development/interpreters/maude/default.nix
+++ b/pkgs/development/interpreters/maude/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://maude.cs.uiuc.edu/";
-    description = "Maude -- a high-level specification language";
+    description = "High-level specification language";
     license = stdenv.lib.licenses.gpl2;
 
     longDescription = ''
diff --git a/pkgs/development/interpreters/perl/5.10/default.nix b/pkgs/development/interpreters/perl/5.10/default.nix
deleted file mode 100644
index 6af35e275c84..000000000000
--- a/pkgs/development/interpreters/perl/5.10/default.nix
+++ /dev/null
@@ -1,62 +0,0 @@
-{ stdenv, fetchurl }:
-
-let 
-  
-  libc = if stdenv ? gcc && stdenv.gcc.libc != null then stdenv.gcc.libc else "/usr";
-
-in
-
-stdenv.mkDerivation rec {
-  name = "perl-5.10.1";
-
-  src = fetchurl {
-    url = "mirror://cpan/src/${name}.tar.gz";
-    sha256 = "0dagnhjgmslfx1jawz986nvc3jh1klk7mn2l8djdca1b9gm2czyb";
-  };
-
-  patches = 
-    [ # Do not look in /usr etc. for dependencies.
-      ./no-sys-dirs.patch
-    ];
-
-  # Build a thread-safe Perl with a dynamic libperls.o.  We need the
-  # "installstyle" option to ensure that modules are put under
-  # $out/lib/perl5 - this is the general default, but because $out
-  # contains the string "perl", Configure would select $out/lib.
-  # Miniperl needs -lm. perl needs -lrt.
-  configureFlags = 
-    [ "-de"
-      "-Dcc=gcc"
-      "-Uinstallusrbinperl"
-      "-Dinstallstyle=lib/perl5"
-      "-Duseshrplib"
-      "-Dlocincpth=${libc}/include"
-      "-Dloclibpth=${libc}/lib"
-    ] 
-    ++ stdenv.lib.optional (stdenv ? glibc) "-Dusethreads";
-
-  configureScript = "${stdenv.shell} ./Configure";
-
-  dontAddPrefix = true;
-
-  enableParallelBuilding = true;
-
-  preConfigure =
-    ''
-      configureFlags="$configureFlags -Dprefix=$out -Dman1dir=$out/share/man/man1 -Dman3dir=$out/share/man/man3"
-
-      ${stdenv.lib.optionalString stdenv.isArm ''
-        configureFlagsArray=(-Dldflags="-lm -lrt")
-      ''}
-    '';
-
-  preBuild = stdenv.lib.optionalString (!(stdenv ? gcc && stdenv.gcc.nativeTools))
-    ''
-      # Make Cwd work on NixOS (where we don't have a /bin/pwd).
-      substituteInPlace lib/Cwd.pm --replace "'/bin/pwd'" "'$(type -tP pwd)'"
-    '';
-
-  setupHook = ./setup-hook.sh;
-
-  passthru.libPrefix = "lib/perl5/site_perl";
-}
diff --git a/pkgs/development/interpreters/perl/5.10/no-sys-dirs.patch b/pkgs/development/interpreters/perl/5.10/no-sys-dirs.patch
deleted file mode 100644
index 29edf68bb647..000000000000
--- a/pkgs/development/interpreters/perl/5.10/no-sys-dirs.patch
+++ /dev/null
@@ -1,201 +0,0 @@
-diff -rc -x '*~' perl-5.10.1-orig/Configure perl-5.10.1/Configure
-*** perl-5.10.1-orig/Configure	2009-08-18 21:03:53.000000000 +0200
---- perl-5.10.1/Configure	2010-01-26 19:08:32.933792254 +0100
-***************
-*** 103,117 ****
-  fi
-  
-  : Proper PATH setting
-! paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
-! paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
-! paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
-! paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
-! paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
-! paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
-! paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
-! paths="$paths /sbin /usr/sbin /usr/libexec"
-! paths="$paths /system/gnu_library/bin"
-  
-  for p in $paths
-  do
---- 103,109 ----
-  fi
-  
-  : Proper PATH setting
-! paths=''
-  
-  for p in $paths
-  do
-***************
-*** 1301,1317 ****
-  archname=''
-  libnames=''
-  : change the next line if compiling for Xenix/286 on Xenix/386
-! xlibpth='/usr/lib/386 /lib/386'
-  : Possible local library directories to search.
-! loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
-! loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
-  
-  : general looking path for locating libraries
-! glibpth="/lib /usr/lib $xlibpth"
-! glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
-! test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
-! test -f /shlib/libc.so     && glibpth="/shlib $glibpth"
-! test -d /usr/lib64         && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64"
-  
-  : Private path used by Configure to find libraries.  Its value
-  : is prepended to libpth. This variable takes care of special
---- 1293,1304 ----
-  archname=''
-  libnames=''
-  : change the next line if compiling for Xenix/286 on Xenix/386
-! xlibpth=''
-  : Possible local library directories to search.
-! loclibpth=""
-  
-  : general looking path for locating libraries
-! glibpth=""
-  
-  : Private path used by Configure to find libraries.  Its value
-  : is prepended to libpth. This variable takes care of special
-***************
-*** 1329,1336 ****
-  
-  : Possible local include directories to search.
-  : Set locincpth to "" in a hint file to defeat local include searches.
-! locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
-! locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
-  :
-  : no include file wanted by default
-  inclwanted=''
---- 1316,1322 ----
-  
-  : Possible local include directories to search.
-  : Set locincpth to "" in a hint file to defeat local include searches.
-! locincpth=""
-  :
-  : no include file wanted by default
-  inclwanted=''
-***************
-*** 1358,1365 ****
-  libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD"
-  : We probably want to search /usr/shlib before most other libraries.
-  : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
-- glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
-- glibpth="/usr/shlib $glibpth"
-  : Do not use vfork unless overridden by a hint file.
-  usevfork=false
-  
---- 1344,1349 ----
-***************
-*** 2366,2372 ****
-  zip
-  "
-  pth=`echo $PATH | sed -e "s/$p_/ /g"`
-- pth="$pth /lib /usr/lib"
-  for file in $loclist; do
-  	eval xxx=\$$file
-  	case "$xxx" in
---- 2350,2355 ----
-***************
-*** 8361,8373 ****
-  echo " "
-  case "$sysman" in
-  '') 
-! 	syspath='/usr/share/man/man1 /usr/man/man1'
-! 	syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1"
-! 	syspath="$syspath /usr/man/u_man/man1"
-! 	syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
-! 	syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
-! 	syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
-! 	sysman=`./loc . /usr/man/man1 $syspath`
-  	;;
-  esac
-  if $test -d "$sysman"; then
---- 8344,8351 ----
-  echo " "
-  case "$sysman" in
-  '') 
-! 	syspath=''
-! 	sysman=''
-  	;;
-  esac
-  if $test -d "$sysman"; then
-***************
-*** 19476,19484 ****
-  case "$full_ar" in
-  '') full_ar=$ar ;;
-  esac
-  
-  : Store the full pathname to the sed program for use in the C program
-! full_sed=$sed
-  
-  : see what type gids are declared as in the kernel
-  echo " "
---- 19454,19463 ----
-  case "$full_ar" in
-  '') full_ar=$ar ;;
-  esac
-+ full_ar=ar
-  
-  : Store the full pathname to the sed program for use in the C program
-! full_sed=sed
-  
-  : see what type gids are declared as in the kernel
-  echo " "
-diff -rc -x '*~' perl-5.10.1-orig/ext/Errno/Errno_pm.PL perl-5.10.1/ext/Errno/Errno_pm.PL
-*** perl-5.10.1-orig/ext/Errno/Errno_pm.PL	2009-06-27 18:09:45.000000000 +0200
---- perl-5.10.1/ext/Errno/Errno_pm.PL	2010-01-26 18:08:09.552792021 +0100
-***************
-*** 144,154 ****
-  	if ($dep =~ /(\S+errno\.h)/) {
-  	     $file{$1} = 1;
-  	}
-!     } elsif ($^O eq 'linux' &&
-! 	      $Config{gccversion} ne '' && 
-! 	      $Config{gccversion} !~ /intel/i
-! 	      # might be using, say, Intel's icc
-! 	     ) {
-  	# Some Linuxes have weird errno.hs which generate
-  	# no #file or #line directives
-  	my $linux_errno_h = -e '/usr/include/errno.h' ?
---- 144,150 ----
-  	if ($dep =~ /(\S+errno\.h)/) {
-  	     $file{$1} = 1;
-  	}
-!     } elsif (0) {
-  	# Some Linuxes have weird errno.hs which generate
-  	# no #file or #line directives
-  	my $linux_errno_h = -e '/usr/include/errno.h' ?
-diff -rc -x '*~' perl-5.10.1-orig/hints/freebsd.sh perl-5.10.1/hints/freebsd.sh
-*** perl-5.10.1-orig/hints/freebsd.sh	2009-02-12 23:58:12.000000000 +0100
---- perl-5.10.1/hints/freebsd.sh	2010-01-26 18:30:01.181854620 +0100
-***************
-*** 118,130 ****
-          objformat=`/usr/bin/objformat`
-          if [ x$objformat = xaout ]; then
-              if [ -e /usr/lib/aout ]; then
-!                 libpth="/usr/lib/aout /usr/local/lib /usr/lib"
-!                 glibpth="/usr/lib/aout /usr/local/lib /usr/lib"
-              fi
-              lddlflags='-Bshareable'
-          else
-!             libpth="/usr/lib /usr/local/lib"
-!             glibpth="/usr/lib /usr/local/lib"
-              ldflags="-Wl,-E "
-              lddlflags="-shared "
-          fi
---- 118,130 ----
-          objformat=`/usr/bin/objformat`
-          if [ x$objformat = xaout ]; then
-              if [ -e /usr/lib/aout ]; then
-!                 libpth=""
-!                 glibpth=""
-              fi
-              lddlflags='-Bshareable'
-          else
-!             libpth=""
-!             glibpth=""
-              ldflags="-Wl,-E "
-              lddlflags="-shared "
-          fi
diff --git a/pkgs/development/interpreters/perl/5.10/setup-hook.sh b/pkgs/development/interpreters/perl/5.10/setup-hook.sh
deleted file mode 100644
index 6a144a7f7804..000000000000
--- a/pkgs/development/interpreters/perl/5.10/setup-hook.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-addPerlLibPath () {
-    addToSearchPath PERL5LIB $1/lib/perl5/site_perl
-}
-
-envHooks=(${envHooks[@]} addPerlLibPath)
diff --git a/pkgs/development/interpreters/perl/5.8/default.nix b/pkgs/development/interpreters/perl/5.8/default.nix
deleted file mode 100644
index b23b95f72b5a..000000000000
--- a/pkgs/development/interpreters/perl/5.8/default.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{ stdenv, fetchurl
-, impureLibcPath ? null
-}:
-
-stdenv.mkDerivation {
-  name = "perl-5.8.8";
-
-  phases = "phase";
-  phase =
-   ''
-source $stdenv/setup
-
-if test "$NIX_ENFORCE_PURITY" = "1"; then
-    GLIBC=${if impureLibcPath == null then "$(cat $NIX_GCC/nix-support/orig-libc)" else impureLibcPath}
-    extraflags="-Dlocincpth=$GLIBC/include -Dloclibpth=$GLIBC/lib"
-fi
-
-configureScript=./Configure
-configureFlags="-de -Dcc=gcc -Dprefix=$out -Uinstallusrbinperl $extraflags"
-dontAddPrefix=1
-
-preBuild() {
-    # Make Cwd work on NixOS (where we don't have a /bin/pwd).
-    substituteInPlace lib/Cwd.pm --replace "'/bin/pwd'" "'$(type -tP pwd)'"
-}
-
-postInstall() {
-    mkdir -p "$out/nix-support"
-    cp $setupHook $out/nix-support/setup-hook
-}
-
-unset phases
-genericBuild
-
-   '';
-
-  src = fetchurl {
-    url = mirror://cpan/src/perl-5.8.8.tar.bz2;
-    sha256 = "1j8vzc6lva49mwdxkzhvm78dkxyprqs4n4057amqvsh4kh6i92l1";
-  };
-
-  patches = [
-    # This patch does the following:
-    # 1) Do use the PATH environment variable to find the `pwd' command.
-    #    By default, Perl will only look for it in /lib and /usr/lib.
-    #    !!! what are the security implications of this?
-    # 2) Force the use of <errno.h>, not /usr/include/errno.h, on Linux
-    #    systems.  (This actually appears to be due to a bug in Perl.)
-    ./no-sys-dirs.patch
-
-    # Patch to make Perl 5.8.8 build with GCC 4.2.  Taken from
-    # http://www.nntp.perl.org/group/perl.perl5.porters/2006/11/msg117738.html
-    ./gcc-4.2.patch
-
-    # Fix for "SysV.xs:7:25: error: asm/page.h: No such file or
-    # directory" on recent kernel headers.  From
-    # http://bugs.gentoo.org/show_bug.cgi?id=168312.
-    (fetchurl {
-      url = http://bugs.gentoo.org/attachment.cgi?id=111427;
-      sha256 = "017pj0nbqb7kwj3cs727c2l2d8c45l9cwxf71slgb807kn3ppgmn";
-    })
-  ];
-
-  setupHook = ./setup-hook.sh;
-
-  passthru.libPrefix = "lib/perl5/site_perl";
-}
diff --git a/pkgs/development/interpreters/perl/5.8/gcc-4.2.patch b/pkgs/development/interpreters/perl/5.8/gcc-4.2.patch
deleted file mode 100644
index 679a7abde3b6..000000000000
--- a/pkgs/development/interpreters/perl/5.8/gcc-4.2.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- perl-5.8.x/makedepend.SH	2006-06-13 15:31:22.000000000 -0400
-+++ perl-5.8.x-andy/makedepend.SH	2006-07-25 14:45:11.000000000 -0400
-@@ -167,6 +167,7 @@
-             -e '/^#.*<builtin>/d' \
-             -e '/^#.*<built-in>/d' \
-             -e '/^#.*<command line>/d' \
-+            -e '/^#.*<command-line>/d' \
- 	    -e '/^#.*"-"/d' \
- 	    -e '/: file path prefix .* never used$/d' \
- 	    -e 's#\.[0-9][0-9]*\.c#'"$file.c#" \
diff --git a/pkgs/development/interpreters/perl/5.8/no-sys-dirs.patch b/pkgs/development/interpreters/perl/5.8/no-sys-dirs.patch
deleted file mode 100644
index 48588d5a4291..000000000000
--- a/pkgs/development/interpreters/perl/5.8/no-sys-dirs.patch
+++ /dev/null
@@ -1,164 +0,0 @@
-diff -rc perl-orig/Configure perl-5.8.6/Configure
-*** perl-orig/Configure	2004-09-10 08:25:52.000000000 +0200
---- perl-5.8.6/Configure	2005-03-10 12:53:28.000000000 +0100
-***************
-*** 86,100 ****
-  fi
-  
-  : Proper PATH setting
-! paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
-! paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
-! paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
-! paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
-! paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
-! paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
-! paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
-! paths="$paths /sbin /usr/sbin /usr/libexec"
-! paths="$paths /system/gnu_library/bin"
-  
-  for p in $paths
-  do
---- 86,92 ----
-  fi
-  
-  : Proper PATH setting
-! paths=''
-  
-  for p in $paths
-  do
-***************
-*** 1221,1228 ****
-  archname=''
-  : Possible local include directories to search.
-  : Set locincpth to "" in a hint file to defeat local include searches.
-! locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
-! locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
-  :
-  : no include file wanted by default
-  inclwanted=''
---- 1213,1219 ----
-  archname=''
-  : Possible local include directories to search.
-  : Set locincpth to "" in a hint file to defeat local include searches.
-! locincpth=""
-  :
-  : no include file wanted by default
-  inclwanted=''
-***************
-*** 1230,1245 ****
-  groupstype=''
-  libnames=''
-  : change the next line if compiling for Xenix/286 on Xenix/386
-! xlibpth='/usr/lib/386 /lib/386'
-  : Possible local library directories to search.
-! loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
-! loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
-  
-  : general looking path for locating libraries
-! glibpth="/lib /usr/lib $xlibpth"
-! glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
-! test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
-! test -f /shlib/libc.so     && glibpth="/shlib $glibpth"
-  
-  : Private path used by Configure to find libraries.  Its value
-  : is prepended to libpth. This variable takes care of special
---- 1221,1232 ----
-  groupstype=''
-  libnames=''
-  : change the next line if compiling for Xenix/286 on Xenix/386
-! xlibpth=''
-  : Possible local library directories to search.
-! loclibpth=""
-  
-  : general looking path for locating libraries
-! glibpth="$xlibpth"
-  
-  : Private path used by Configure to find libraries.  Its value
-  : is prepended to libpth. This variable takes care of special
-***************
-*** 1270,1277 ****
-  libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD"
-  : We probably want to search /usr/shlib before most other libraries.
-  : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
-- glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
-- glibpth="/usr/shlib $glibpth"
-  : Do not use vfork unless overridden by a hint file.
-  usevfork=false
-  
---- 1257,1262 ----
-***************
-*** 2267,2273 ****
-  zip
-  "
-  pth=`echo $PATH | sed -e "s/$p_/ /g"`
-- pth="$pth /lib /usr/lib"
-  for file in $loclist; do
-  	eval xxx=\$$file
-  	case "$xxx" in
---- 2252,2257 ----
-***************
-*** 7910,7922 ****
-  echo " "
-  case "$sysman" in
-  '') 
-! 	syspath='/usr/share/man/man1 /usr/man/man1'
-! 	syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1"
-! 	syspath="$syspath /usr/man/u_man/man1"
-! 	syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
-! 	syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
-! 	syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
-! 	sysman=`./loc . /usr/man/man1 $syspath`
-  	;;
-  esac
-  if $test -d "$sysman"; then
---- 7894,7901 ----
-  echo " "
-  case "$sysman" in
-  '') 
-! 	syspath=''
-! 	sysman=''
-  	;;
-  esac
-  if $test -d "$sysman"; then
-***************
-*** 17949,17957 ****
-  case "$full_ar" in
-  '') full_ar=$ar ;;
-  esac
-  
-  : Store the full pathname to the sed program for use in the C program
-! full_sed=$sed
-  
-  : see what type gids are declared as in the kernel
-  echo " "
---- 17928,17937 ----
-  case "$full_ar" in
-  '') full_ar=$ar ;;
-  esac
-+ full_ar=ar
-  
-  : Store the full pathname to the sed program for use in the C program
-! full_sed=sed
-  
-  : see what type gids are declared as in the kernel
-  echo " "
-diff -rc perl-orig/ext/Errno/Errno_pm.PL perl-5.8.6/ext/Errno/Errno_pm.PL
-*** perl-orig/ext/Errno/Errno_pm.PL	2004-11-01 15:31:59.000000000 +0100
---- perl-5.8.6/ext/Errno/Errno_pm.PL	2005-03-10 12:52:31.000000000 +0100
-***************
-*** 105,111 ****
-  	# Watch out for cross compiling for EPOC (usually done on linux)
-  	$file{'/usr/local/epocemx/epocsdk/include/libc/sys/errno.h'} = 1;
-      } elsif ($^O eq 'linux' &&
-! 	     $Config{gccversion} ne '' # might be using, say, Intel's icc
-  	     ) {
-  	# Some Linuxes have weird errno.hs which generate
-  	# no #file or #line directives
---- 105,111 ----
-  	# Watch out for cross compiling for EPOC (usually done on linux)
-  	$file{'/usr/local/epocemx/epocsdk/include/libc/sys/errno.h'} = 1;
-      } elsif ($^O eq 'linux' &&
-! 	     $Config{gccversion} eq '' # might be using, say, Intel's icc
-  	     ) {
-  	# Some Linuxes have weird errno.hs which generate
-  	# no #file or #line directives
diff --git a/pkgs/development/interpreters/perl/5.8/setup-hook.sh b/pkgs/development/interpreters/perl/5.8/setup-hook.sh
deleted file mode 100644
index d61ec82f4f08..000000000000
--- a/pkgs/development/interpreters/perl/5.8/setup-hook.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-addPerlLibPath () {
-    addToSearchPath PERL5LIB $1/lib/site_perl
-}
-
-envHooks=(${envHooks[@]} addPerlLibPath)
diff --git a/pkgs/development/interpreters/php/5.3.nix b/pkgs/development/interpreters/php/5.3.nix
index ed5feeacf613..c1d02064fe1c 100644
--- a/pkgs/development/interpreters/php/5.3.nix
+++ b/pkgs/development/interpreters/php/5.3.nix
@@ -233,7 +233,7 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
   };
 
   meta = {
-    description = "The PHP language runtime engine";
+    description = "An HTML-embedded scripting language";
     homepage    = http://www.php.net/;
     license     = "PHP-3";
     maintainers = with stdenv.lib.maintainers; [ lovek323 ];
diff --git a/pkgs/development/interpreters/php/5.4.nix b/pkgs/development/interpreters/php/5.4.nix
index bc5320ff77c0..e39661b224ad 100644
--- a/pkgs/development/interpreters/php/5.4.nix
+++ b/pkgs/development/interpreters/php/5.4.nix
@@ -77,6 +77,11 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
         buildInputs = [ postgresql ];
       };
 
+      pdo_pgsql = {
+        configureFlags = ["--with-pdo-pgsql=${postgresql}"];
+        buildInputs = [ postgresql ];
+      };
+
       mysql = {
         configureFlags = ["--with-mysql=${mysql}"];
         buildInputs = [ mysql ];
@@ -203,6 +208,7 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
     gettextSupport = config.php.gettext or true;
     pcntlSupport = config.php.pcntl or true;
     postgresqlSupport = config.php.postgresql or true;
+    pdo_pgsqlSupport = config.php.pdo_pgsql or true;
     readlineSupport = config.php.readline or true;
     sqliteSupport = config.php.sqlite or true;
     soapSupport = config.php.soap or true;
@@ -247,7 +253,7 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
   };
 
   meta = {
-    description = "The PHP language runtime engine";
+    description = "An HTML-embedded scripting language";
     homepage = http://www.php.net/;
     license = "PHP-3";
   };
diff --git a/pkgs/development/interpreters/pypy/2.3/default.nix b/pkgs/development/interpreters/pypy/2.3/default.nix
index d67f1c2a8215..0ed13e2f6462 100644
--- a/pkgs/development/interpreters/pypy/2.3/default.nix
+++ b/pkgs/development/interpreters/pypy/2.3/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2, pkgconfig, libffi
-, sqlite, openssl, ncurses, pythonFull, expat }:
+, sqlite, openssl, ncurses, pythonFull, expat, tcl, tk, x11, libX11 }:
 
 assert zlibSupport -> zlib != null;
 
@@ -20,7 +20,7 @@ let
       sha256 = "0fg4l48c7n59n5j3b1dgcsr927xzylkfny4a6pnk6z0pq2bhvl9z";
     };
 
-    buildInputs = [ bzip2 openssl pkgconfig pythonFull libffi ncurses expat sqlite ]
+    buildInputs = [ bzip2 openssl pkgconfig pythonFull libffi ncurses expat sqlite tk tcl x11 libX11 ]
       ++ stdenv.lib.optional (stdenv ? gcc && stdenv.gcc.libc != null) stdenv.gcc.libc
       ++ stdenv.lib.optional zlibSupport zlib;
 
@@ -40,12 +40,20 @@ let
       substituteInPlace pypy/goal/targetpypystandalone.py \
         --replace "/usr/bin/env pypy" "${pythonFull}/bin/python"
 
-      # convince pypy to find nix ncurses
+      # hint pypy to find nix ncurses
       substituteInPlace pypy/module/_minimal_curses/fficurses.py \
         --replace "/usr/include/ncurses/curses.h" "${ncurses}/include/curses.h" \
         --replace "ncurses/curses.h" "${ncurses}/include/curses.h" \
         --replace "ncurses/term.h" "${ncurses}/include/term.h" \
         --replace "libraries=['curses']" "libraries=['ncurses']"
+
+      # tkinter hints
+      substituteInPlace lib_pypy/_tkinter/tklib.py \
+        --replace "'/usr/include/tcl'" "'${tk}/include', '${tcl}/include'" \
+        --replace "linklibs=['tcl', 'tk']" "linklibs=['tcl8.5', 'tk8.5']" \
+        --replace "libdirs = []" "libdirs = ['${tk}/lib', '${tcl}/lib']"
+
+      sed -i "s@libraries=\['sqlite3'\]\$@libraries=['sqlite3'], include_dirs=['${sqlite}/include'], library_dirs=['${sqlite}/lib']@" lib_pypy/_sqlite3.py
     '';
 
     setupHook = ./setup-hook.sh;
@@ -58,8 +66,8 @@ let
        # disable shutils because it assumes gid 0 exists
        # disable socket because it has two actual network tests that fail
        # disable test_mhlib because it fails for unknown reason
-       # disable test_multiprocessing due to transient errors
        # disable sqlite3 due to https://bugs.pypy.org/issue1740
+       # disable test_multiprocessing due to transient errors
        # disable test_os because test_urandom_failure fails
       ./pypy-c ./pypy/test_all.py --pypy=./pypy-c -k '-test_sqlite -test_socket -test_os -test_shutil -test_mhlib -test_multiprocessing' lib-python
     '';
@@ -75,19 +83,23 @@ let
        ln -s $out/pypy-c/include $out/include/${libPrefix}
        ln -s $out/pypy-c/lib-python/${pythonVersion} $out/lib/${libPrefix}
 
+       # verify cffi modules
+       $out/bin/pypy -c "import Tkinter;import sqlite3"
+
        # TODO: compile python files?
     '';
 
     passthru = {
       inherit zlibSupport libPrefix;
       executable = "pypy";
+      isPypy = true;
     };
 
     enableParallelBuilding = true;
 
     meta = with stdenv.lib; {
       homepage = "http://pypy.org/";
-      description = "PyPy is a fast, compliant alternative implementation of the Python language (2.7.3)";
+      description = "Fast, compliant alternative implementation of the Python language (2.7.3)";
       license = licenses.mit;
       platforms = platforms.linux;
       maintainers = with maintainers; [ iElectric ];
diff --git a/pkgs/development/interpreters/ruby/generated.nix b/pkgs/development/interpreters/ruby/generated.nix
index 84492e093861..6ec0f4f73e5d 100644
--- a/pkgs/development/interpreters/ruby/generated.nix
+++ b/pkgs/development/interpreters/ruby/generated.nix
@@ -3,180 +3,141 @@
 g: # Get dependencies from patched gems
 {
   aliases = {
-    ZenTest = g.ZenTest_4_9_3;
-    actionmailer = g.actionmailer_4_0_0;
-    actionpack = g.actionpack_4_0_0;
-    activemodel = g.activemodel_4_0_0;
-    activerecord = g.activerecord_4_0_0;
-    activerecord_deprecated_finders = g.activerecord_deprecated_finders_1_0_3;
-    activesupport = g.activesupport_4_0_0;
-    addressable = g.addressable_2_3_5;
-    arel = g.arel_4_0_0;
-    atomic = g.atomic_1_1_14;
+    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;
+    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_1_2;
-    aws_sdk = g.aws_sdk_1_16_1;
-    backports = g.backports_3_3_3;
-    bitbucket_backup = g.bitbucket_backup_0_3_0;
+    autotest_rails = g.autotest_rails_4_2_1;
+    aws_sdk = g.aws_sdk_1_51_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_12;
-    bundler = g.bundler_1_3_5;
-    celluloid = g.celluloid_0_15_2;
-    childprocess = g.childprocess_0_3_9;
-    chronic = g.chronic_0_10_1;
-    classifier = g.classifier_1_3_3;
-    coderay = g.coderay_1_0_9;
-    coffee_rails = g.coffee_rails_4_0_1;
-    coffee_script = g.coffee_script_2_2_0;
-    coffee_script_source = g.coffee_script_source_1_6_3;
-    colorator = g.colorator_0_1;
-    commander = g.commander_4_1_5;
-    cucumber = g.cucumber_1_3_8;
+    buildr = g.buildr_1_4_19;
+    bundler = g.bundler_1_7_1;
+    childprocess = g.childprocess_0_5_3;
+    chronic = g.chronic_0_10_2;
+    coderay = g.coderay_1_1_0;
+    cucumber = g.cucumber_1_3_16;
     daemons = g.daemons_1_1_9;
-    diff_lcs = g.diff_lcs_1_1_3;
+    diff_lcs = g.diff_lcs_1_2_5;
     dimensions = g.dimensions_1_2_0;
-    domain_name = g.domain_name_0_5_13;
-    dotenv = g.dotenv_0_9_0;
+    domain_name = g.domain_name_0_5_20;
+    dotenv = g.dotenv_0_11_1;
+    dotenv_deployment = g.dotenv_deployment_0_0_2;
     em_resolv_replace = g.em_resolv_replace_1_1_3;
     erubis = g.erubis_2_7_0;
-    ethon = g.ethon_0_6_1;
+    ethon = g.ethon_0_7_1;
     eventmachine = g.eventmachine_1_0_3;
     eventmachine_tail = g.eventmachine_tail_0_6_4;
-    excon = g.excon_0_25_3;
-    execjs = g.execjs_2_0_2;
-    fakes3 = g.fakes3_0_1_5;
-    faraday = g.faraday_0_8_8;
-    faraday_middleware = g.faraday_middleware_0_9_0;
-    fast_stemmer = g.fast_stemmer_1_0_2;
-    ffi = g.ffi_1_9_0;
+    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_63_0;
-    formatador = g.formatador_0_2_4;
-    gettext = g.gettext_3_0_0;
-    gh = g.gh_0_12_0;
-    gherkin = g.gherkin_2_12_1;
-    guard = g.guard_2_2_4;
-    highline = g.highline_1_6_19;
+    foreman = g.foreman_0_74_0;
+    gettext = g.gettext_3_1_3;
+    gh = g.gh_0_13_2;
+    gherkin = g.gherkin_2_12_2;
+    highline = g.highline_1_6_21;
     hike = g.hike_1_2_3;
-    hoe = g.hoe_3_1_0;
-    http_cookie = g.http_cookie_1_0_1;
-    i18n = g.i18n_0_6_5;
-    iconv = g.iconv_1_0_3;
-    jekyll = g.jekyll_1_3_0;
-    jquery_rails = g.jquery_rails_3_0_4;
-    jruby_pageant = g.jruby_pageant_1_1_1;
-    jsduck = g.jsduck_5_1_0;
-    json = g.json_1_8_0;
+    hoe = g.hoe_3_7_1;
+    http_cookie = g.http_cookie_1_0_2;
+    i18n = g.i18n_0_6_11;
+    iconv = g.iconv_1_0_4;
+    jsduck = g.jsduck_5_3_4;
+    json = g.json_1_8_1;
     json_pure = g.json_pure_1_8_0;
-    launchy = g.launchy_2_3_0;
-    liquid = g.liquid_2_5_4;
-    listen = g.listen_2_2_0;
-    locale = g.locale_2_0_8;
-    lockfile = g.lockfile_2_1_0;
-    lumberjack = g.lumberjack_1_0_4;
-    macaddr = g.macaddr_1_6_1;
-    maruku = g.maruku_0_6_1;
-    mail = g.mail_2_5_4;
-    mechanize = g.mechanize_2_7_2;
+    launchy = g.launchy_2_4_2;
+    locale = g.locale_2_1_0;
+    lockfile = g.lockfile_2_1_3;
+    macaddr = g.macaddr_1_7_1;
+    mail = g.mail_2_6_1;
+    mechanize = g.mechanize_2_7_3;
     method_source = g.method_source_0_8_2;
-    mime_types = g.mime_types_1_25;
-    mini_portile = g.mini_portile_0_5_1;
-    minitar = g.minitar_0_5_3;
-    minitest = g.minitest_4_7_5;
-    mono_logger = g.mono_logger_1_1_0;
-    multi_json = g.multi_json_1_8_2;
-    multi_test = g.multi_test_0_0_2;
-    multipart_post = g.multipart_post_1_2_0;
+    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;
+    multi_json = g.multi_json_1_10_1;
+    multi_test = g.multi_test_0_1_1;
+    multipart_post = g.multipart_post_2_0_0;
     net_http_digest_auth = g.net_http_digest_auth_1_4;
-    net_http_persistent = g.net_http_persistent_2_9;
+    net_http_persistent = g.net_http_persistent_2_9_4;
     net_http_pipeline = g.net_http_pipeline_1_0_1;
-    net_sftp = g.net_sftp_2_0_5;
-    net_ssh = g.net_ssh_2_6_8;
-    netrc = g.netrc_0_7_7;
+    net_sftp = g.net_sftp_2_1_2;
+    net_ssh = g.net_ssh_2_9_1;
     nix = g.nix_0_1_1;
-    nokogiri = g.nokogiri_1_6_0;
+    nokogiri = g.nokogiri_1_6_3_1;
     ntlm_http = g.ntlm_http_0_1_1;
-    papertrail = g.papertrail_0_9_7;
+    orderedhash = g.orderedhash_0_0_6;
+    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_3;
-    posix_spawn = g.posix_spawn_0_3_6;
-    pry = g.pry_0_9_12_2;
-    pusher_client = g.pusher_client_0_3_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_1;
-    rails = g.rails_4_0_0;
-    railties = g.railties_4_0_0;
-    rake = g.rake_10_1_0;
-    rb_fsevent = g.rb_fsevent_0_9_3;
-    rb_inotify = g.rb_inotify_0_9_2;
-    rb_kqueue = g.rb_kqueue_0_2_0;
-    rdiscount = g.rdiscount_2_1_6;
-    redcarpet = g.redcarpet_2_3_0;
-    redis = g.redis_3_0_5;
-    redis_namespace = g.redis_namespace_1_3_1;
+    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;
+    rake = g.rake_10_3_2;
+    rb_fsevent = g.rb_fsevent_0_9_4;
+    rdiscount = g.rdiscount_2_1_7_1;
     remote_syslog = g.remote_syslog_1_6_14;
-    resque = g.resque_1_25_1;
-    resque_web = g.resque_web_0_0_3;
-    rest_client = g.rest_client_1_6_7;
+    riemann_dash = g.riemann_dash_0_2_9;
     right_aws = g.right_aws_3_1_0;
-    right_http_connection = g.right_http_connection_1_4_0;
-    rjb = g.rjb_1_4_8;
-    rkelly_remix = g.rkelly_remix_0_0_4;
-    rmagick = g.rmagick_2_13_2;
+    right_http_connection = g.right_http_connection_1_5_0;
+    rjb = g.rjb_1_4_9;
+    rkelly_remix = g.rkelly_remix_0_0_6;
     rmail = g.rmail_1_0_0;
-    rmail_sup = g.rmail_sup_1_0_1;
-    rspec = g.rspec_2_11_0;
-    rspec_core = g.rspec_core_2_11_1;
-    rspec_expectations = g.rspec_expectations_2_11_3;
-    rspec_mocks = g.rspec_mocks_2_11_3;
-    ruby_hmac = g.ruby_hmac_0_4_0;
-    rubyforge = g.rubyforge_2_0_4;
-    rubyzip = g.rubyzip_0_9_9;
-    safe_yaml = g.safe_yaml_0_9_7;
-    sass = g.sass_3_2_12;
-    sass_rails = g.sass_rails_4_0_1;
-    selenium_webdriver = g.selenium_webdriver_2_35_1;
+    rspec = g.rspec_2_14_1;
+    rspec_core = g.rspec_core_2_14_8;
+    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;
     servolux = g.servolux_0_10_0;
-    sinatra = g.sinatra_1_4_4;
-    slop = g.slop_3_4_6;
-    sprockets = g.sprockets_2_10_0;
-    sprockets_rails = g.sprockets_rails_2_0_1;
-    syntax = g.syntax_1_0_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;
     syslog_protocol = g.syslog_protocol_0_9_2;
-    systemu = g.systemu_2_5_2;
+    systemu = g.systemu_2_6_4;
     taskjuggler = g.taskjuggler_3_5_0;
-    term_ansicolor = g.term_ansicolor_1_2_2;
-    terminal_notifier = g.terminal_notifier_1_5_1;
-    text = g.text_1_2_3;
-    thin = g.thin_1_5_1;
-    thor = g.thor_0_18_1;
-    thread_safe = g.thread_safe_0_1_3;
+    term_ansicolor = g.term_ansicolor_1_3_0;
+    terminal_notifier = g.terminal_notifier_1_6_1;
+    text = g.text_1_3_0;
+    thin = g.thin_1_6_2;
+    thor = g.thor_0_19_1;
+    thread_safe = g.thread_safe_0_3_4;
     tilt = g.tilt_1_4_1;
-    timers = g.timers_1_1_0;
-    tins = g.tins_0_9_0;
-    travis = g.travis_1_5_3;
+    tins = g.tins_1_3_2;
+    travis = g.travis_1_7_1;
     treetop = g.treetop_1_4_15;
     trollop = g.trollop_2_0;
-    twitter_bootstrap_rails = g.twitter_bootstrap_rails_2_2_8;
-    typhoeus = g.typhoeus_0_6_5;
-    tzinfo = g.tzinfo_0_3_38;
-    unf = g.unf_0_1_2;
+    typhoeus = g.typhoeus_0_6_9;
+    tzinfo = g.tzinfo_1_2_2;
+    unf = g.unf_0_1_4;
     unf_ext = g.unf_ext_0_0_6;
-    unicode = g.unicode_0_4_4;
     uuid = g.uuid_2_3_7;
-    uuidtools = g.uuidtools_2_1_4;
-    vegas = g.vegas_0_1_11;
+    webrick = g.webrick_1_3_1;
     webrobots = g.webrobots_0_1_1;
-    websocket = g.websocket_1_0_7;
+    websocket = g.websocket_1_2_0;
     xapian_full = g.xapian_full_1_2_3;
-    xapian_ruby = g.xapian_ruby_1_2_15_1;
-    xml_simple = g.xml_simple_1_1_1;
-    yajl_ruby = g.yajl_ruby_1_1_0;
+    xapian_ruby = g.xapian_ruby_1_2_17;
+    xml_simple = g.xml_simple_1_1_2;
   };
-  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'' ''right_aws'' ''rmail'' ''sass'' ''selenium-webdriver'' ''sinatra-1.3.2'' ''taskjuggler'' ''thin'' ''travis'' ''trollop'' ''uuid'' ''xapian-full'' ''xapian-ruby'' ];
+  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'' ];
   gems = {
-    ZenTest_4_9_3 = {
+    ZenTest_4_10_1 = {
       basename = ''ZenTest'';
       meta = {
         description = ''ZenTest provides 4 different tools: zentest, unit_diff, autotest, and multiruby'';
@@ -203,77 +164,77 @@ multiruby runs anything you want on multiple versions of ruby. Great
 for compatibility checking! Use multiruby_setup to manage your
 installed versions.'';
       };
-      name = ''ZenTest-4.9.3'';
+      name = ''ZenTest-4.10.1'';
       requiredGems = [  ];
-      sha256 = ''0rd07scqhdy9sfygbgbdick895pk4pbamcl70hr78cylhqpk6m38'';
+      sha256 = ''1jyk0lag27s71idna2h72ljskimj0snsiw7diyjx5rqxnz6fj7z1'';
     };
-    actionmailer_4_0_0 = {
+    actionmailer_4_1_5 = {
       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.0.0'';
-      requiredGems = [ g.actionpack_4_0_0 g.mail_2_5_4 ];
-      sha256 = ''0d63hmddll0vdbzzxj4zl6njv1pm7j2njvqfccvvyypwsynfjkgk'';
+      name = ''actionmailer-4.1.5'';
+      requiredGems = [ g.actionpack_4_1_5 g.actionview_4_1_5 g.mail_2_5_4 ];
+      sha256 = ''19frz9njy6jbxh7yasx62l4ifns3dxfkfqvnxlqb4pwsz7lqcp9c'';
     };
-    actionpack_4_0_0 = {
+    actionpack_4_1_5 = {
       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.0.0'';
-      requiredGems = [ g.activesupport_4_0_0 g.builder_3_1_4 g.rack_1_5_2 g.rack_test_0_6_2 g.erubis_2_7_0 ];
-      sha256 = ''0hx9hdbqqm73l81p5r520zdk218739414yhw9yrys905ks2f5j4d'';
+      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'';
     };
-    activemodel_4_0_0 = {
+    actionview_4_1_5 = {
+      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'';
+    };
+    activemodel_4_1_5 = {
       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, observers, serialization, internationalization, and testing.'';
+        longDescription = ''A toolkit for building modeling frameworks like Active Record. Rich support for attributes, callbacks, validations, serialization, internationalization, and testing.'';
       };
-      name = ''activemodel-4.0.0'';
-      requiredGems = [ g.activesupport_4_0_0 g.builder_3_1_4 ];
-      sha256 = ''0vsq5bzsyfrzgnhizlipivmh7m9p0ky29avx47wnaqwjlpkir5m2'';
+      name = ''activemodel-4.1.5'';
+      requiredGems = [ g.activesupport_4_1_5 g.builder_3_2_2 ];
+      sha256 = ''1anbjwdfgdjfxiv5vzysrdd98mapvd2h8xjkayq3vq54n13ymjvl'';
     };
-    activerecord_4_0_0 = {
+    activerecord_4_1_5 = {
       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.0.0'';
-      requiredGems = [ g.activesupport_4_0_0 g.activemodel_4_0_0 g.arel_4_0_0 g.activerecord_deprecated_finders_1_0_3 ];
-      sha256 = ''0lhksb0172kz23yhibr1rxihyp01h2ajqxd0l4nahs2qc9jlr722'';
-    };
-    activerecord_deprecated_finders_1_0_3 = {
-      basename = ''activerecord_deprecated_finders'';
-      meta = {
-        description = ''This gem contains deprecated finder APIs extracted from Active Record.'';
-        homepage = ''https://github.com/rails/activerecord-deprecated_finders'';
-        longDescription = ''Deprecated finder APIs extracted from Active Record.'';
-      };
-      name = ''activerecord-deprecated_finders-1.0.3'';
-      requiredGems = [  ];
-      sha256 = ''1z2g7h2ywhplrsjrsh8961agf17s9rj8ypdwjj482mw86if3dslp'';
+      name = ''activerecord-4.1.5'';
+      requiredGems = [ g.activesupport_4_1_5 g.activemodel_4_1_5 g.arel_5_0_1_20140414130214 ];
+      sha256 = ''1z8awkkl4bn4ghdp432n2qpagbb8569ffq63kmgkbwf8127kmzrc'';
     };
-    activesupport_4_0_0 = {
+    activesupport_4_1_5 = {
       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.0.0'';
-      requiredGems = [ g.i18n_0_6_5 g.multi_json_1_7_9 g.tzinfo_0_3_37 g.minitest_4_7_5 g.thread_safe_0_1_2 ];
-      sha256 = ''0agxkvjhhv6r9rpm0lcgjny4sn1ihhvhlgs46rgi3fz0y1d93ids'';
+      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'';
     };
-    addressable_2_3_5 = {
+    addressable_2_3_6 = {
       basename = ''addressable'';
       meta = {
         description = ''URI Implementation'';
@@ -283,11 +244,11 @@ Ruby's standard library. It more closely conforms to the relevant RFCs and
 adds support for IRIs and URI templates.
 '';
       };
-      name = ''addressable-2.3.5'';
+      name = ''addressable-2.3.6'';
       requiredGems = [  ];
-      sha256 = ''11hv69v6h39j7m4v51a4p7my7xwjbhxbsg3y7ja156z7by10wkg7'';
+      sha256 = ''137fj0whmn1kvaq8wjalp8x4qbblwzvg3g4bfx8d8lfi6f0w48p8'';
     };
-    arel_4_0_0 = {
+    arel_5_0_1_20140414130214 = {
       basename = ''arel'';
       meta = {
         description = ''Arel is a SQL AST manager for Ruby'';
@@ -295,37 +256,15 @@ adds support for IRIs and URI templates.
         longDescription = ''Arel is a SQL AST manager for Ruby. It
 
 1. Simplifies the generation of complex SQL queries
-2. Adapts to various RDBMS systems
+2. Adapts to various RDBMSes
 
 It is intended to be a framework framework; that is, you can build your own ORM
 with it, focusing on innovative object and collection modeling as opposed to
 database compatibility and query generation.'';
       };
-      name = ''arel-4.0.0'';
+      name = ''arel-5.0.1.20140414130214'';
       requiredGems = [  ];
-      sha256 = ''19xzg8jhp4p18xlf6sp4yhf6vdpc3hl8lm23n6glikclm7rvgick'';
-    };
-    atomic_1_1_13 = {
-      basename = ''atomic'';
-      meta = {
-        description = ''An atomic reference implementation for JRuby, Rubinius, and MRI'';
-        homepage = ''http://github.com/headius/ruby-atomic'';
-        longDescription = ''An atomic reference implementation for JRuby, Rubinius, and MRI'';
-      };
-      name = ''atomic-1.1.13'';
-      requiredGems = [  ];
-      sha256 = ''0sdy8fcncm6p2cba3p8v7dnbsa4z41f4cs1dd0myf4fq7axrrh0s'';
-    };
-    atomic_1_1_14 = {
-      basename = ''atomic'';
-      meta = {
-        description = ''An atomic reference implementation for JRuby, Rubinius, and MRI'';
-        homepage = ''http://github.com/headius/ruby-atomic'';
-        longDescription = ''An atomic reference implementation for JRuby, Rubinius, and MRI'';
-      };
-      name = ''atomic-1.1.14'';
-      requiredGems = [  ];
-      sha256 = ''09dzi1gxr5yj273s6s6ss7l2sq4ayavpg95561kib3n4kzvxrhk4'';
+      sha256 = ''0dhnc20h1v8ml3nmkxq92rr7qxxpk6ixhwvwhgl2dbw9mmxz0hf9'';
     };
     atoulme_Antwrap_0_7_4 = {
       basename = ''atoulme_Antwrap'';
@@ -346,10 +285,10 @@ database compatibility and query generation.'';
 	check out Buildr!'';
       };
       name = ''atoulme-Antwrap-0.7.4'';
-      requiredGems = [ g.rjb_1_4_8 ];
+      requiredGems = [ g.rjb_1_4_9 ];
       sha256 = ''0sh9capkya88qm9mvixwly32fwb2c4nzif9j9vv0f73rqw8kz4j4'';
     };
-    autotest_rails_4_1_2 = {
+    autotest_rails_4_2_1 = {
       basename = ''autotest_rails'';
       meta = {
         description = ''This is an autotest plugin to provide rails support'';
@@ -357,74 +296,42 @@ database compatibility and query generation.'';
         longDescription = ''This is an autotest plugin to provide rails support. It provides basic
 rails support and extra plugins for migrations and fixtures.'';
       };
-      name = ''autotest-rails-4.1.2'';
-      requiredGems = [ g.ZenTest_4_9_3 ];
-      sha256 = ''1wkb5jayb39yx0i8ly7sibygf9f9c3w24jg2z1qgm135zlb070v4'';
+      name = ''autotest-rails-4.2.1'';
+      requiredGems = [ g.ZenTest_4_10_1 ];
+      sha256 = ''1v1dm9zlhdlrxvk90zs8d439ldar674ix41s7pncddgyswcfgg5l'';
     };
-    aws_sdk_1_16_1 = {
+    aws_sdk_1_51_0 = {
       basename = ''aws_sdk'';
       meta = {
         description = ''AWS SDK for Ruby'';
         homepage = ''http://aws.amazon.com/sdkforruby'';
         longDescription = ''AWS SDK for Ruby'';
       };
-      name = ''aws-sdk-1.16.1'';
-      requiredGems = [ g.uuidtools_2_1_4 g.nokogiri_1_5_10 g.json_1_8_0 ];
-      sha256 = ''1i6njmzfcmjb9xdaqw727pdqr17w3gad1nl5zln4mv6i4x0nbc3n'';
+      name = ''aws-sdk-1.51.0'';
+      requiredGems = [ g.nokogiri_1_6_3_1 g.json_1_8_1 ];
+      sha256 = ''092a7km6ar7zvyyzgiqsb0dm354sqa6mzx7sa0c8ndwm918lbqai'';
     };
-    backports_3_3_3 = {
+    backports_3_6_0 = {
       basename = ''backports'';
       meta = {
         description = ''Backports of Ruby features for older Ruby.'';
         homepage = ''http://github.com/marcandre/backports'';
         longDescription = ''Essential backports that enable many of the nice features of Ruby 1.8.7 up to 2.0.0 for earlier versions.'';
       };
-      name = ''backports-3.3.3'';
+      name = ''backports-3.6.0'';
       requiredGems = [  ];
-      sha256 = ''0y1la483wlv7gam1470shskc0bjsif9hld6qikx165yw9gmbgxsy'';
+      sha256 = ''1pinn0m4fmq124adc6xjl2hk9799xq5jw4bva82cdzd4h2hwrgq5'';
     };
-    bitbucket_backup_0_3_0 = {
+    bitbucket_backup_0_3_1 = {
       basename = ''bitbucket_backup'';
       meta = {
         description = ''A tool to backup Bitbucket repos.'';
         homepage = ''https://bitbucket.org/seth/bitbucket-backup'';
         longDescription = ''A tool to backup Bitbucket repos.'';
       };
-      name = ''bitbucket-backup-0.3.0'';
-      requiredGems = [ g.highline_1_6_19 g.json_1_8_0 ];
-      sha256 = ''075bz4bhxim2kh5191qc9kpq7z81aa2smgqq5bfldjqvk70hr87y'';
-    };
-    builder_3_1_3 = {
-      basename = ''builder'';
-      meta = {
-        description = ''Builders for MarkUp.'';
-        homepage = ''http://onestepback.org'';
-        longDescription = ''Builder provides a number of builder objects that make creating structured data
-simple to do.  Currently the following builder objects are supported:
-
-* XML Markup
-* XML Events
-'';
-      };
-      name = ''builder-3.1.3'';
-      requiredGems = [  ];
-      sha256 = ''0w6xsq9vyvzdy0xb52sajgipr9ml2bbpivk6dxm69c6987dk7him'';
-    };
-    builder_3_1_4 = {
-      basename = ''builder'';
-      meta = {
-        description = ''Builders for MarkUp.'';
-        homepage = ''http://onestepback.org'';
-        longDescription = ''Builder provides a number of builder objects that make creating structured data
-simple to do.  Currently the following builder objects are supported:
-
-* XML Markup
-* XML Events
-'';
-      };
-      name = ''builder-3.1.4'';
-      requiredGems = [  ];
-      sha256 = ''1p0bjy1vb0zbswd6bsh5qda0f0br53p8vak8cm7hls62094r405p'';
+      name = ''bitbucket-backup-0.3.1'';
+      requiredGems = [ g.highline_1_6_21 g.json_1_8_1 ];
+      sha256 = ''17d2pfk0z3cxcx9m90avcp5wxhdbrq23zd665263m3hh9b5qi0fj'';
     };
     builder_3_2_2 = {
       basename = ''builder'';
@@ -442,7 +349,7 @@ simple to do.  Currently the following builder objects are supported:
       requiredGems = [  ];
       sha256 = ''14fii7ab8qszrvsvhz6z2z3i4dw0h41a62fjr2h1j8m41vbrmyv2'';
     };
-    buildr_1_4_12 = {
+    buildr_1_4_19 = {
       basename = ''buildr'';
       meta = {
         description = ''Build like you code'';
@@ -454,87 +361,42 @@ 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.12'';
-      requiredGems = [ g.rake_0_9_2_2 g.builder_3_1_3 g.net_ssh_2_6_0 g.net_sftp_2_0_5 g.rubyzip_0_9_9 g.highline_1_6_2 g.json_pure_1_7_5 g.rubyforge_2_0_4 g.hoe_3_1_0 g.rjb_1_4_2 g.atoulme_Antwrap_0_7_4 g.diff_lcs_1_1_3 g.rspec_expectations_2_11_3 g.rspec_mocks_2_11_3 g.rspec_core_2_11_1 g.rspec_2_11_0 g.xml_simple_1_1_1 g.minitar_0_5_3 g.bundler_1_3_5 ];
-      sha256 = ''0hsy9bkfp1pq5f3jx8i6fsk0r309nmq778ykk6w103rkrdb3l6s6'';
+      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'';
     };
-    bundler_1_3_5 = {
+    bundler_1_7_1 = {
       basename = ''bundler'';
       meta = {
         description = ''The best way to manage your application's dependencies'';
-        homepage = ''http://gembundler.com'';
+        homepage = ''http://bundler.io'';
         longDescription = ''Bundler manages an application's dependencies through its entire life, across many machines, systematically and repeatably'';
       };
-      name = ''bundler-1.3.5'';
+      name = ''bundler-1.7.1'';
       requiredGems = [  ];
-      sha256 = ''1r7zx8qfwzr3pbgrjbsml7z5qgscwyyv33x2jzhz6adqyx3r1f08'';
+      sha256 = ''144yqbmi89gl933rh8dv58bm7ia14s4a098qdi2z0q09ank9n5h2'';
     };
-    celluloid_0_15_2 = {
-      basename = ''celluloid'';
-      meta = {
-        description = ''Actor-based concurrent object framework for Ruby'';
-        homepage = ''https://github.com/celluloid/celluloid'';
-        longDescription = ''Celluloid enables people to build concurrent programs out of concurrent objects just as easily as they build sequential programs out of sequential objects'';
-      };
-      name = ''celluloid-0.15.2'';
-      requiredGems = [ g.timers_1_1_0 ];
-      sha256 = ''0lpa97m7f4p5hgzaaa47y1d5c78n8pp4xd8qb0sn5llqd0klkd9b'';
-    };
-    childprocess_0_3_9 = {
+    childprocess_0_5_3 = {
       basename = ''childprocess'';
       meta = {
         description = ''This gem aims at being a simple and reliable solution for controlling external programs running in the background on any Ruby / OS combination.'';
         homepage = ''http://github.com/jarib/childprocess'';
         longDescription = ''This gem aims at being a simple and reliable solution for controlling external programs running in the background on any Ruby / OS combination.'';
       };
-      name = ''childprocess-0.3.9'';
-      requiredGems = [ g.ffi_1_9_0 ];
-      sha256 = ''0jbz2ix7ff9ry8717lhcq9w8j8yd45akw48giwgdqccay5mlph7d'';
-    };
-    chronic_0_9_1 = {
-      basename = ''chronic'';
-      meta = {
-        description = ''Natural language date/time parsing.'';
-        homepage = ''http://github.com/mojombo/chronic'';
-        longDescription = ''Chronic is a natural language date/time parser written in pure Ruby.'';
-      };
-      name = ''chronic-0.9.1'';
-      requiredGems = [  ];
-      sha256 = ''0kspaxpfy7yvyk1lvpx31w852qfj8wb9z04mcj5bzi70ljb9awqk'';
-    };
-    classifier_1_3_3 = {
-      basename = ''classifier'';
-      meta = {
-        description = ''A general classifier module to allow Bayesian and other types of classifications.'';
-        homepage = ''http://classifier.rufy.com/'';
-        longDescription = ''   A general classifier module to allow Bayesian and other types of classifications.
-'';
-      };
-      name = ''classifier-1.3.3'';
-      requiredGems = [ g.fast_stemmer_1_0_2 ];
-      sha256 = ''1kq1cd8fq6wvyxbjy3r6ya3d3sk3rcp1b560xlqvflpsirm47r9g'';
+      name = ''childprocess-0.5.3'';
+      requiredGems = [ g.ffi_1_9_3 ];
+      sha256 = ''12djpdr487fddq55sav8gw1pjglcbb0ab0s6npga0ywgsqdyvsww'';
     };
-    chronic_0_10_1 = {
+    chronic_0_10_2 = {
       basename = ''chronic'';
       meta = {
         description = ''Natural language date/time parsing.'';
         homepage = ''http://github.com/mojombo/chronic'';
         longDescription = ''Chronic is a natural language date/time parser written in pure Ruby.'';
       };
-      name = ''chronic-0.10.1'';
-      requiredGems = [  ];
-      sha256 = ''0p822hry4njncxpf59nrvjayg2pxk1zh8gykjgsmqrphdkqqmp1w'';
-    };
-    coderay_1_0_9 = {
-      basename = ''coderay'';
-      meta = {
-        description = ''Fast syntax highlighting for selected languages.'';
-        homepage = ''http://coderay.rubychan.de'';
-        longDescription = ''Fast and easy syntax highlighting for selected languages, written in Ruby. Comes with RedCloth integration and LOC counter.'';
-      };
-      name = ''coderay-1.0.9'';
+      name = ''chronic-0.10.2'';
       requiredGems = [  ];
-      sha256 = ''1pbjsvd6r2daxd6aicp19fnb1j5z7fxadflsm1h0r33cy3vi7iy8'';
+      sha256 = ''1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn'';
     };
     coderay_1_1_0 = {
       basename = ''coderay'';
@@ -547,77 +409,16 @@ for those one-off tasks, with a language that's a joy to use.
       requiredGems = [  ];
       sha256 = ''059wkzlap2jlkhg460pkwc1ay4v4clsmg1bp4vfzjzkgwdckr52s'';
     };
-    coffee_rails_4_0_1 = {
-      basename = ''coffee_rails'';
-      meta = {
-        description = ''CoffeeScript adapter for the Rails asset pipeline.'';
-        homepage = ''https://github.com/rails/coffee-rails'';
-        longDescription = ''CoffeeScript adapter for the Rails asset pipeline.'';
-      };
-      name = ''coffee-rails-4.0.1'';
-      requiredGems = [ g.coffee_script_2_2_0 g.railties_4_0_0 ];
-      sha256 = ''12nqw61xfs43qap4bxp123q4fgj41gvxirdal95ymdd2qzr3cvig'';
-    };
-    coffee_script_2_2_0 = {
-      basename = ''coffee_script'';
-      meta = {
-        description = ''Ruby CoffeeScript Compiler'';
-        homepage = ''http://github.com/josh/ruby-coffee-script'';
-        longDescription = ''    Ruby CoffeeScript is a bridge to the JS CoffeeScript compiler.
-'';
-      };
-      name = ''coffee-script-2.2.0'';
-      requiredGems = [ g.coffee_script_source_1_6_3 g.execjs_2_0_2 ];
-      sha256 = ''133cp4znfp44wwnv12myw8s0z6qws74ilqmw88iwzkshg689zpdc'';
-    };
-    coffee_script_source_1_6_3 = {
-      basename = ''coffee_script_source'';
-      meta = {
-        description = ''The CoffeeScript Compiler'';
-        homepage = ''http://jashkenas.github.com/coffee-script/'';
-        longDescription = ''      CoffeeScript is a little language that compiles into JavaScript.
-      Underneath all of those embarrassing braces and semicolons,
-      JavaScript has always had a gorgeous object model at its heart.
-      CoffeeScript is an attempt to expose the good parts of JavaScript
-      in a simple way.
-'';
-      };
-      name = ''coffee-script-source-1.6.3'';
-      requiredGems = [  ];
-      sha256 = ''0p33h0rdj1n8xhm2d5hzqbb8br6wn4rx0gk4hyhc6rxkaxsy79b4'';
-    };
-    colorator_0_1 = {
-      basename = ''colorator'';
-      meta = {
-        description = ''String core extensions for terminal coloring.'';
-        homepage = ''https://github.com/octopress/colorator'';
-        longDescription = ''Colorize your text in the terminal.'';
-      };
-      name = ''colorator-0.1'';
-      requiredGems = [  ];
-      sha256 = ''09zp15hyd9wlbgf1kmrf4rnry8cpvh1h9fj7afarlqcy4hrfdpvs'';
-    };
-    commander_4_1_5 = {
-      basename = ''commander'';
-      meta = {
-        description = ''The complete solution for Ruby command-line executables'';
-        homepage = ''http://visionmedia.github.com/commander'';
-        longDescription = ''The complete solution for Ruby command-line executables. Commander bridges the gap between other terminal related libraries you know and love (OptionParser, HighLine), while providing many new features, and an elegant API.'';
-      };
-      name = ''commander-4.1.5'';
-      requiredGems = [ g.highline_1_6_20 ];
-      sha256 = ''040x2gjpl55g64kh5f9nby0870hnzx8cd7clxg771z0wjs7nzalc'';
-    };
-    cucumber_1_3_8 = {
+    cucumber_1_3_16 = {
       basename = ''cucumber'';
       meta = {
-        description = ''cucumber-1.3.8'';
+        description = ''cucumber-1.3.16'';
         homepage = ''http://cukes.info'';
         longDescription = ''Behaviour Driven Development with elegance and joy'';
       };
-      name = ''cucumber-1.3.8'';
-      requiredGems = [ g.builder_3_2_2 g.diff_lcs_1_2_4 g.gherkin_2_12_1 g.multi_json_1_7_9 g.multi_test_0_0_2 ];
-      sha256 = ''0b4igj1vxlcwky11nkrrgg57chbc0n5gmv984dld5s0f1ilkx1ma'';
+      name = ''cucumber-1.3.16'';
+      requiredGems = [ g.builder_3_2_2 g.diff_lcs_1_2_5 g.gherkin_2_12_2 g.multi_json_1_10_1 g.multi_test_0_1_1 ];
+      sha256 = ''11cjw2d03r41b5pn5in6q822s3v6bpd8isxc9dl7by01jrzi0662'';
     };
     daemons_1_1_9 = {
       basename = ''daemons'';
@@ -630,32 +431,29 @@ for those one-off tasks, with a language that's a joy to use.
       requiredGems = [  ];
       sha256 = ''1j1m64pirsldhic6x6sg4lcrmp1bs1ihpd49xm8m1b2rc1c3irzy'';
     };
-    diff_lcs_1_1_3 = {
+    diff_lcs_1_2_4 = {
       basename = ''diff_lcs'';
       meta = {
-        description = ''Diff::LCS is a port of Perl's Algorithm::Diff that uses the McIlroy-Hunt longest common subsequence (LCS) algorithm to compute intelligent differences between two sequenced enumerable containers'';
-        longDescription = ''Diff::LCS is a port of Perl's Algorithm::Diff that uses the McIlroy-Hunt
-longest common subsequence (LCS) algorithm to compute intelligent differences
-between two sequenced enumerable containers. The implementation is based on
-Mario I. Wolczko's {Smalltalk version 1.2}[ftp://st.cs.uiuc.edu/pub/Smalltalk/MANCHESTER/manchester/4.0/diff.st]
-(1993) and Ned Konz's Perl version
-{Algorithm::Diff 1.15}[http://search.cpan.org/~nedkonz/Algorithm-Diff-1.15/].
+        description = ''Diff::LCS computes the difference between two Enumerable sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm'';
+        homepage = ''http://diff-lcs.rubyforge.org/'';
+        longDescription = ''Diff::LCS computes the difference between two Enumerable sequences using the
+McIlroy-Hunt longest common subsequence (LCS) algorithm. It includes utilities
+to create a simple HTML diff output format and a standard diff-like tool.
 
-This is release 1.1.3, fixing several small bugs found over the years. Version
-1.1.0 added new features, including the ability to #patch and #unpatch changes
-as well as a new contextual diff callback, Diff::LCS::ContextDiffCallbacks,
-that should improve the context sensitivity of patching.
+This is release 1.2.4, fixing a bug introduced after diff-lcs 1.1.3 that did
+not properly prune common sequences at the beginning of a comparison set.
+Thanks to Paul Kunysch for fixing this issue.
 
-This library is called Diff::LCS because of an early version of Algorithm::Diff
-which was restrictively licensed. This version has seen a minor license change:
-instead of being under Ruby's license as an option, the third optional license
-is the MIT license.'';
+Coincident with the release of diff-lcs 1.2.3, we reported an issue with
+Rubinius in 1.9 mode
+({rubinius/rubinius#2268}[https://github.com/rubinius/rubinius/issues/2268]).
+We are happy to report that this issue has been resolved.'';
       };
-      name = ''diff-lcs-1.1.3'';
+      name = ''diff-lcs-1.2.4'';
       requiredGems = [  ];
-      sha256 = ''15wqs3md9slif6ag43vp6gw63r3a2zdqiyfapnnzkb7amgg930pv'';
+      sha256 = ''09xbffjg639y8n43zp88ki0m489vv2c86znmfib2fg1di6svi1xd'';
     };
-    diff_lcs_1_2_4 = {
+    diff_lcs_1_2_5 = {
       basename = ''diff_lcs'';
       meta = {
         description = ''Diff::LCS computes the difference between two Enumerable sequences using the McIlroy-Hunt longest common subsequence (LCS) algorithm'';
@@ -673,9 +471,9 @@ Rubinius in 1.9 mode
 ({rubinius/rubinius#2268}[https://github.com/rubinius/rubinius/issues/2268]).
 We are happy to report that this issue has been resolved.'';
       };
-      name = ''diff-lcs-1.2.4'';
+      name = ''diff-lcs-1.2.5'';
       requiredGems = [  ];
-      sha256 = ''09xbffjg639y8n43zp88ki0m489vv2c86znmfib2fg1di6svi1xd'';
+      sha256 = ''1vf9civd41bnqi6brr5d9jifdw73j9khc6fkhfl1f8r9cpkdvlx1'';
     };
     dimensions_1_2_0 = {
       basename = ''dimensions'';
@@ -688,7 +486,7 @@ We are happy to report that this issue has been resolved.'';
       requiredGems = [  ];
       sha256 = ''1pqb7yzjcpbgbyi196ifqbd1wy570cn12bkzcvpcha4xilhajja0'';
     };
-    domain_name_0_5_13 = {
+    domain_name_0_5_20 = {
       basename = ''domain_name'';
       meta = {
         description = ''Domain Name manipulation library for Ruby'';
@@ -699,20 +497,30 @@ It can also be used for cookie domain validation based on the Public
 Suffix List.
 '';
       };
-      name = ''domain_name-0.5.13'';
-      requiredGems = [ g.unf_0_1_2 ];
-      sha256 = ''0m57vacj2bmdfp094gjylfzz5gqdpn95pcypk5friab3svrambxv'';
+      name = ''domain_name-0.5.20'';
+      requiredGems = [ g.unf_0_1_4 ];
+      sha256 = ''17ls88kp18dxjc93q8kmyx2anknva0vbmny60xbgpbwq3hg0qv6s'';
     };
-    dotenv_0_9_0 = {
+    dotenv_0_11_1 = {
       basename = ''dotenv'';
       meta = {
         description = ''Loads environment variables from `.env`.'';
         homepage = ''https://github.com/bkeepers/dotenv'';
         longDescription = ''Loads environment variables from `.env`.'';
       };
-      name = ''dotenv-0.9.0'';
+      name = ''dotenv-0.11.1'';
+      requiredGems = [ g.dotenv_deployment_0_0_2 ];
+      sha256 = ''09z0y0d6bks7i0sqvd8szfqj9i1kkj01anzly7shi83b3gxhrq9m'';
+    };
+    dotenv_deployment_0_0_2 = {
+      basename = ''dotenv_deployment'';
+      meta = {
+        description = ''Deployment concerns for dotenv'';
+        homepage = ''https://github.com/bkeepers/dotenv-deployment'';
+      };
+      name = ''dotenv-deployment-0.0.2'';
       requiredGems = [  ];
-      sha256 = ''1gl0m6s8d6m72wcm4p86kzzjdihyryi5mh6v70qkqd0dl1gj73l3'';
+      sha256 = ''1ad66jq9a09qq1js8wsyil97018s7y6x0vzji0dy34gh65sbjz8c'';
     };
     em_resolv_replace_1_1_3 = {
       basename = ''em_resolv_replace'';
@@ -747,16 +555,16 @@ Suffix List.
       requiredGems = [  ];
       sha256 = ''1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3'';
     };
-    ethon_0_6_1 = {
+    ethon_0_7_1 = {
       basename = ''ethon'';
       meta = {
         description = ''Libcurl wrapper.'';
         homepage = ''https://github.com/typhoeus/ethon'';
         longDescription = ''Very lightweight libcurl wrapper.'';
       };
-      name = ''ethon-0.6.1'';
-      requiredGems = [ g.ffi_1_9_0 g.mime_types_1_25 ];
-      sha256 = ''05mw10bh4pif0j6pjzyhcsm8kzv7xn94dcjcb15dmbjx2za0daa7'';
+      name = ''ethon-0.7.1'';
+      requiredGems = [ g.ffi_1_9_3 ];
+      sha256 = ''0b762cmnj20fjlrlzk5vsndzv4ac3ybdi4vikx5c11abl7x5wbg6'';
     };
     eventmachine_1_0_3 = {
       basename = ''eventmachine'';
@@ -789,91 +597,36 @@ using TCP/IP, especially if custom protocols are required.'';
       requiredGems = [ g.eventmachine_1_0_3 ];
       sha256 = ''1pvlb34vdzd81kf9f3xyibb4f55xjqm7lqqy28dgyci5cyv50y61'';
     };
-    excon_0_25_3 = {
-      basename = ''excon'';
-      meta = {
-        description = ''speed, persistence, http(s)'';
-        homepage = ''https://github.com/geemus/excon'';
-        longDescription = ''EXtended http(s) CONnections'';
-      };
-      name = ''excon-0.25.3'';
-      requiredGems = [  ];
-      sha256 = ''1d552jhvrpmnzrg3di88397l07ngrz04s2al17klpam6crxqw2b2'';
-    };
-    execjs_2_0_2 = {
-      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.0.2'';
-      requiredGems = [  ];
-      sha256 = ''167kbkyql7nvvwjsgdw5z8j66ngq7kc59gxfwsxhqi5fl1z0jbjs'';
-    };
-    fakes3_0_1_5 = {
+    fakes3_0_1_5_2 = {
       basename = ''fakes3'';
       meta = {
         description = ''FakeS3 is a server that simulates S3 commands so you can test your S3 functionality in your projects'';
         longDescription = ''Use FakeS3 to test basic S3 functionality without actually connecting to S3'';
       };
-      name = ''fakes3-0.1.5'';
-      requiredGems = [ g.thor_0_18_1 g.builder_3_2_2 ];
-      sha256 = ''1na5wrbarla6s414svqmr5spbpv6vmcgpswal444x4clcpmadhib'';
+      name = ''fakes3-0.1.5.2'';
+      requiredGems = [ g.thor_0_19_1 g.builder_3_2_2 ];
+      sha256 = ''1gmg428s1jpdwn7bd9pi4ikxg8440nq9yqs22wv0k355z5cqb8by'';
     };
-    faraday_0_8_8 = {
+    faraday_0_9_0 = {
       basename = ''faraday'';
       meta = {
         description = ''HTTP/REST API client library.'';
         homepage = ''https://github.com/lostisland/faraday'';
       };
-      name = ''faraday-0.8.8'';
-      requiredGems = [ g.multipart_post_1_2_0 ];
-      sha256 = ''1cnyj5japrnv6wvl01la5amf7hikckfznh8234ad21n730b2wci4'';
+      name = ''faraday-0.9.0'';
+      requiredGems = [ g.multipart_post_2_0_0 ];
+      sha256 = ''13wi8y7j6mp0mszps50gqr0fyddiz45wqkvpnnrv797gklr9sh46'';
     };
-    faraday_middleware_0_8_8 = {
+    faraday_middleware_0_9_1 = {
       basename = ''faraday_middleware'';
       meta = {
         description = ''Various middleware for Faraday'';
-        homepage = ''https://github.com/pengwynn/faraday_middleware'';
+        homepage = ''https://github.com/lostisland/faraday_middleware'';
         longDescription = ''Various middleware for Faraday'';
       };
-      name = ''faraday_middleware-0.8.8'';
-      requiredGems = [ g.faraday_0_8_8 ];
-      sha256 = ''1n0g8pm7ynx6ffyqhscc1cqw97zhvd8isr31yfyj15335j1jsncz'';
-    };
-    faraday_middleware_0_9_0 = {
-      basename = ''faraday_middleware'';
-      meta = {
-        description = ''Various middleware for Faraday'';
-        homepage = ''https://github.com/pengwynn/faraday_middleware'';
-        longDescription = ''Various middleware for Faraday'';
-      };
-      name = ''faraday_middleware-0.9.0'';
-      requiredGems = [ g.faraday_0_8_8 ];
-      sha256 = ''1kwvi2sdxd6j764a7q5iir73dw2v6816zx3l8cgfv0wr2m47icq2'';
-    };
-    fast_stemmer_1_0_2 = {
-      basename = ''fast_stemmer'';
-      meta = {
-        description = ''Fast Porter stemmer based on a C version of algorithm'';
-        homepage = ''http://github.com/romanbsd/fast-stemmer'';
-        longDescription = ''Fast Porter stemmer based on a C version of algorithm'';
-      };
-      name = ''fast-stemmer-1.0.2'';
-      requiredGems = [  ];
-      sha256 = ''0688clyk4xxh3kdb18vi089k90mca8ji5fwaknh3da5wrzcrzanh'';
-    };
-    ffi_1_9_0 = {
-      basename = ''ffi'';
-      meta = {
-        description = ''Ruby FFI'';
-        homepage = ''http://wiki.github.com/ffi/ffi'';
-        longDescription = ''Ruby FFI library'';
-      };
-      name = ''ffi-1.9.0'';
-      requiredGems = [  ];
-      sha256 = ''0rnh9yyfzcpdmi8m7giyd21lgqj00afgxvgbx41hsi2ls1ghfwvy'';
+      name = ''faraday_middleware-0.9.1'';
+      requiredGems = [ g.faraday_0_9_0 ];
+      sha256 = ''1kndkrww1biz9j64fnyaqgis1gdiawxfv0ncadsz06gd555fgs6q'';
     };
     ffi_1_9_3 = {
       basename = ''ffi'';
@@ -894,32 +647,21 @@ using TCP/IP, especially if custom protocols are required.'';
         longDescription = ''Library to tail files in Ruby'';
       };
       name = ''file-tail-1.0.12'';
-      requiredGems = [ g.tins_0_9_0 ];
+      requiredGems = [ g.tins_0_13_2 ];
       sha256 = ''0mzxxnwj7k5pwxs0rdbmb3b41zgvzw7x40sf3qlkch4zdfx91i1j'';
     };
-    foreman_0_63_0 = {
+    foreman_0_74_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.63.0'';
-      requiredGems = [ g.thor_0_18_1 g.dotenv_0_9_0 ];
-      sha256 = ''0yqyjix9jm4iwyc4f3wc32vxr28rpjcw1c9ni5brs4s2a24inzlk'';
+      name = ''foreman-0.74.0'';
+      requiredGems = [ g.thor_0_19_1 g.dotenv_0_11_1 ];
+      sha256 = ''0jqblq0myzmdp2cywzz7flvgqnhf267ykcdn250cccy68s9wm37m'';
     };
-    formatador_0_2_4 = {
-      basename = ''formatador'';
-      meta = {
-        description = ''Ruby STDOUT text formatting'';
-        homepage = ''http://github.com/geemus/formatador'';
-        longDescription = ''STDOUT text formatting'';
-      };
-      name = ''formatador-0.2.4'';
-      requiredGems = [  ];
-      sha256 = ''0pgmk1h6i6m3cslnfyjqld06a4c2xbbvmngxg2axddf39xwz6f12'';
-    };
-    gettext_3_0_0 = {
+    gettext_3_1_3 = {
       basename = ''gettext'';
       meta = {
         description = ''Gettext is a pure Ruby libary and tools to localize messages.'';
@@ -929,74 +671,33 @@ The catalog file(po-file) is same format with GNU gettext.
 So you can use GNU gettext tools for maintaining.
 '';
       };
-      name = ''gettext-3.0.0'';
-      requiredGems = [ g.locale_2_0_8 g.text_1_2_3 ];
-      sha256 = ''1qlqd6c39bjn930qh93i40gbz1bs20gzpwvw3d8rxnkls5a6pl1y'';
+      name = ''gettext-3.1.3'';
+      requiredGems = [ g.locale_2_1_0 g.text_1_3_0 ];
+      sha256 = ''066x2dbryab02kdbk6km79h4j9b0f0ynsnzcygjgvzn9001ybf9q'';
     };
-    gh_0_12_0 = {
+    gh_0_13_2 = {
       basename = ''gh'';
       meta = {
         description = ''layered github client'';
         homepage = ''http://gh.rkh.im/'';
         longDescription = ''multi-layer client for the github api v3'';
       };
-      name = ''gh-0.12.0'';
-      requiredGems = [ g.faraday_0_8_8 g.backports_3_3_3 g.multi_json_1_7_9 g.addressable_2_3_5 g.net_http_persistent_2_9 g.net_http_pipeline_1_0_1 ];
-      sha256 = ''180jmg6rwilzcbzvyg74q27zpr09pv6pw3cfcjxr0bcklv203q3n'';
+      name = ''gh-0.13.2'';
+      requiredGems = [ g.faraday_0_9_0 g.backports_3_6_0 g.multi_json_1_10_1 g.addressable_2_3_6 g.net_http_persistent_2_9_4 g.net_http_pipeline_1_0_1 ];
+      sha256 = ''17scqa35j6ghpykzk986gnd6dvbrh8nn60ib04hb2gbyh9dns1dj'';
     };
-    gherkin_2_12_1 = {
+    gherkin_2_12_2 = {
       basename = ''gherkin'';
       meta = {
-        description = ''gherkin-2.12.1'';
+        description = ''gherkin-2.12.2'';
         homepage = ''http://github.com/cucumber/gherkin'';
         longDescription = ''A fast Gherkin lexer/parser based on the Ragel State Machine Compiler.'';
       };
-      name = ''gherkin-2.12.1'';
-      requiredGems = [ g.multi_json_1_7_9 ];
-      sha256 = ''07nzchdvkkd35m9k7d9k8j72jm3imv56ccn734mxa5klv1xx2d45'';
-    };
-    guard_2_2_4 = {
-      basename = ''guard'';
-      meta = {
-        description = ''Guard keeps an eye on your file modifications'';
-        homepage = ''http://guardgem.org'';
-        longDescription = ''Guard is a command line tool to easily handle events on file system modifications.'';
-      };
-      name = ''guard-2.2.4'';
-      requiredGems = [ g.thor_0_18_1 g.listen_2_2_0 g.pry_0_9_12_3 g.lumberjack_1_0_4 g.formatador_0_2_4 ];
-      sha256 = ''0z427rkcpzy82g21cgq7i5sn1vxn8hm8j4d78kj9vlaqgilcybhq'';
-    };
-    highline_1_6_19 = {
-      basename = ''highline'';
-      meta = {
-        description = ''HighLine is a high-level command-line IO library.'';
-        homepage = ''http://highline.rubyforge.org'';
-        longDescription = ''A high-level IO library that provides validation, type conversion, and more for
-command-line interfaces. HighLine also includes a complete menu system that can
-crank out anything from simple list selection to complete shells with just
-minutes of work.
-'';
-      };
-      name = ''highline-1.6.19'';
-      requiredGems = [  ];
-      sha256 = ''0gylnz2cdaswgszgl8x2qx0c87md4246r1i0blgm3nqvgd4hlsxd'';
-    };
-    highline_1_6_20 = {
-      basename = ''highline'';
-      meta = {
-        description = ''HighLine is a high-level command-line IO library.'';
-        homepage = ''http://highline.rubyforge.org'';
-        longDescription = ''A high-level IO library that provides validation, type conversion, and more for
-command-line interfaces. HighLine also includes a complete menu system that can
-crank out anything from simple list selection to complete shells with just
-minutes of work.
-'';
-      };
-      name = ''highline-1.6.20'';
-      requiredGems = [  ];
-      sha256 = ''0gk7mpw2r5lv60vr4hb0090wbnqh0fsbyrrcvxiqk7hyhxdz08iv'';
+      name = ''gherkin-2.12.2'';
+      requiredGems = [ g.multi_json_1_10_1 ];
+      sha256 = ''1mxfgw15pii1jmq00xxbyp77v71mh3bp99ndgwzfwkxvbcisha25'';
     };
-    highline_1_6_2 = {
+    highline_1_6_21 = {
       basename = ''highline'';
       meta = {
         description = ''HighLine is a high-level command-line IO library.'';
@@ -1007,9 +708,9 @@ crank out anything from simple list selection to complete shells with just
 minutes of work.
 '';
       };
-      name = ''highline-1.6.2'';
+      name = ''highline-1.6.21'';
       requiredGems = [  ];
-      sha256 = ''0azmahb70f1nlg6lq5wljbzcijhfb9lz8skwb4k2977kdml07mcn'';
+      sha256 = ''06bml1fjsnrhd956wqq5k3w8cyd09rv1vixdpa3zzkl6xs72jdn1'';
     };
     hike_1_2_3 = {
       basename = ''hike'';
@@ -1022,7 +723,7 @@ minutes of work.
       requiredGems = [  ];
       sha256 = ''0i6c9hrszzg3gn2j41v3ijnwcm8cc2931fnjiv6mnpl4jcjjykhm'';
     };
-    hoe_3_1_0 = {
+    hoe_3_7_1 = {
       basename = ''hoe'';
       meta = {
         description = ''Hoe is a rake/rubygems helper for project Rakefiles'';
@@ -1038,108 +739,64 @@ below.
 
 For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
       };
-      name = ''hoe-3.1.0'';
-      requiredGems = [ g.rake_0_9_6 ];
-      sha256 = ''0i961x0hrd6fs1nsfham87dhn64gqpnai27l14jag7qbnp3a79yp'';
+      name = ''hoe-3.7.1'';
+      requiredGems = [ g.rake_10_3_2 ];
+      sha256 = ''0lyrdbzxj4isxzyfp93w0q1g9sqw6grkjp91xirzlw1z1714qsw3'';
     };
-    http_cookie_1_0_1 = {
+    http_cookie_1_0_2 = {
       basename = ''http_cookie'';
       meta = {
         description = ''A Ruby library to handle HTTP Cookies based on RFC 6265'';
         homepage = ''https://github.com/sparklemotion/http-cookie'';
         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.1'';
-      requiredGems = [ g.domain_name_0_5_13 ];
-      sha256 = ''0gzghirmim217g7gf1rq3xiav8gfg32r38mcz0w9vznk30psy7d9'';
+      name = ''http-cookie-1.0.2'';
+      requiredGems = [ g.domain_name_0_5_20 ];
+      sha256 = ''0cz2fdkngs3jc5w32a6xcl511hy03a7zdiy988jk1sf3bf5v3hdw'';
     };
-    i18n_0_6_5 = {
+    i18n_0_6_11 = {
       basename = ''i18n'';
       meta = {
         description = ''New wave Internationalization support for Ruby'';
         homepage = ''http://github.com/svenfuchs/i18n'';
         longDescription = ''New wave Internationalization support for Ruby.'';
       };
-      name = ''i18n-0.6.5'';
+      name = ''i18n-0.6.11'';
       requiredGems = [  ];
-      sha256 = ''0cv15pi9f530fx9q3b83im7afy947dd86jf5ffqs9bvw8iykmil1'';
+      sha256 = ''0fwjlgmgry2blf8zlxn9c555cf4a16p287l599kz5104ncjxlzdk'';
     };
-    iconv_1_0_3 = {
+    iconv_1_0_4 = {
       basename = ''iconv'';
       meta = {
         description = ''iconv wrapper library'';
         homepage = ''https://github.com/nurse/iconv'';
         longDescription = ''iconv wrapper library'';
       };
-      name = ''iconv-1.0.3'';
+      name = ''iconv-1.0.4'';
       requiredGems = [  ];
-      sha256 = ''1nhjn07h2fqivdj6xqzi2x2kzh28vigx8z3q5fv2cqn9aqmbdacl'';
-    };
-    jekyll_1_3_0 = {
-      basename = ''jekyll'';
-      meta = {
-        description = ''A simple, blog aware, static site generator.'';
-        homepage = ''http://github.com/mojombo/jekyll'';
-        longDescription = ''Jekyll is a simple, blog aware, static site generator.'';
-      };
-      name = ''jekyll-1.3.0'';
-      requiredGems = [ g.liquid_2_5_4 g.classifier_1_3_3 g.listen_1_3_1 g.maruku_0_6_1 g.pygments_rb_0_5_4 g.commander_4_1_5 g.safe_yaml_0_9_7 g.colorator_0_1 g.redcarpet_2_3_0 ];
-      sha256 = ''0hq9sdyivfifba0d4d7g113jbd3jwm8jpdc9i09mv0nfhdcbc3k4'';
-    };
-    jquery_rails_3_0_4 = {
-      basename = ''jquery_rails'';
-      meta = {
-        description = ''Use jQuery with Rails 3'';
-        homepage = ''http://rubygems.org/gems/jquery-rails'';
-        longDescription = ''This gem provides jQuery and the jQuery-ujs driver for your Rails 3 application.'';
-      };
-      name = ''jquery-rails-3.0.4'';
-      requiredGems = [ g.railties_4_0_0 g.thor_0_18_1 ];
-      sha256 = ''0k13mcl9d0zxa2azml0d06y14ggk5yl2xvzsc9l2qv2cwc9xxajm'';
+      sha256 = ''16sgj6gqs4bgwv6q4vv811fb43908psr33dz7sphn1z8la3y7m2v'';
     };
-    jruby_pageant_1_1_1 = {
-      basename = ''jruby_pageant'';
-      meta = {
-        description = ''jruby-pageant allows Pageant access on JRuby + Windows'';
-        homepage = ''http://github.com/arturaz/jruby-pageant'';
-        longDescription = ''This is a convenience gem packaging required JNA/JSCH jars.'';
-      };
-      name = ''jruby-pageant-1.1.1'';
-      requiredGems = [  ];
-      sha256 = ''1kgqsn0bagr41gf5kbqaxbs38a7s5bm85m0pdx4qz7d70v9nc9cl'';
-    };
-    jsduck_5_1_0 = {
+    jsduck_5_3_4 = {
       basename = ''jsduck'';
       meta = {
         description = ''Simple JavaScript Duckumentation generator'';
         homepage = ''https://github.com/senchalabs/jsduck'';
         longDescription = ''Documentation generator for Sencha JS frameworks'';
       };
-      name = ''jsduck-5.1.0'';
-      requiredGems = [ g.rdiscount_2_1_6 g.json_1_8_0 g.parallel_0_7_1 g.rkelly_remix_0_0_4 g.dimensions_1_2_0 ];
-      sha256 = ''05l2729524w6i1jywyb2kgbp8w04za8wbvx5w914f7mcsry98rn4'';
+      name = ''jsduck-5.3.4'';
+      requiredGems = [ g.rdiscount_2_1_7_1 g.json_1_8_1 g.parallel_0_7_1 g.rkelly_remix_0_0_6 g.dimensions_1_2_0 ];
+      sha256 = ''0hac7g9g6gg10bigbm8dskwwbv1dfch8ca353gh2bkwf244qq2xr'';
     };
-    json_1_8_0 = {
+    json_1_8_1 = {
       basename = ''json'';
       meta = {
         description = ''JSON Implementation for Ruby'';
         homepage = ''http://flori.github.com/json'';
         longDescription = ''This is a JSON implementation as a Ruby extension in C.'';
       };
-      name = ''json-1.8.0'';
+      name = ''json-1.8.1'';
       requiredGems = [  ];
-      sha256 = ''0a8prb853nwz9xqjhcd4rm9a5ng8arcn06hlacf0kcizzz69rr47'';
-    };
-    json_pure_1_7_5 = {
-      basename = ''json_pure'';
-      meta = {
-        description = ''JSON Implementation for Ruby'';
-        homepage = ''http://flori.github.com/json'';
-        longDescription = ''This is a JSON implementation in pure Ruby.'';
-      };
-      name = ''json_pure-1.7.5'';
-      requiredGems = [  ];
-      sha256 = ''14nwwf001mh70qnynpb3h8c0kgcfi666yrg2frib4p6lr57jx8ap'';
+      sha256 = ''0002bsycvizvkmk1jyv8px1hskk6wrjfk4f7x5byi8gxm6zzn6wn'';
     };
     json_pure_1_8_0 = {
       basename = ''json_pure'';
@@ -1152,61 +809,18 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
       requiredGems = [  ];
       sha256 = ''0kkn5zhiffav2cffj43wwvzj07825r4j463ilfjgik034vnbjs83'';
     };
-    launchy_2_3_0 = {
+    launchy_2_4_2 = {
       basename = ''launchy'';
       meta = {
         description = ''Launchy is helper class for launching cross-platform applications in a fire and forget manner.'';
         homepage = ''http://github.com/copiousfreetime/launchy'';
         longDescription = ''Launchy is helper class for launching cross-platform applications in a fire and forget manner. There are application concepts (browser, email client, etc) that are common across all platforms, and they may be launched differently on each platform. Launchy is here to make a common approach to launching external application from within ruby programs.'';
       };
-      name = ''launchy-2.3.0'';
-      requiredGems = [ g.addressable_2_3_5 ];
-      sha256 = ''0ckvs40f29ancs0ki12pqb94k380cz41b4gbjplm85ly6kd57sph'';
+      name = ''launchy-2.4.2'';
+      requiredGems = [ g.addressable_2_3_6 ];
+      sha256 = ''0i1nmlrqpnk2q6f7iq85cqaa7b8fw4bmqm57w60g92lsfmszs8iv'';
     };
-    launchy_2_4_0 = {
-      basename = ''launchy'';
-      meta = {
-        description = ''Launchy is helper class for launching cross-platform applications in a fire and forget manner.'';
-        homepage = ''http://github.com/copiousfreetime/launchy'';
-        longDescription = ''Launchy is helper class for launching cross-platform applications in a fire and forget manner. There are application concepts (browser, email client, etc) that are common across all platforms, and they may be launched differently on each platform. Launchy is here to make a common approach to launching external application from within ruby programs.'';
-      };
-      name = ''launchy-2.4.0'';
-      requiredGems = [ g.addressable_2_3_5 ];
-      sha256 = ''0vxc3m4sjxyjjzw2rmsginf9nbxfyv7hhxshmn6kxkvcpjxx5di0'';
-    };
-    liquid_2_5_4 = {
-      basename = ''liquid'';
-      meta = {
-        description = ''A secure, non-evaling end user template engine with aesthetic markup.'';
-        homepage = ''http://www.liquidmarkup.org'';
-      };
-      name = ''liquid-2.5.4'';
-      requiredGems = [  ];
-      sha256 = ''0adb1fz20jwcyx1ia133426i59mrrz9iq9lpcmzq6jx0dlaa4amv'';
-    };
-    listen_1_3_1 = {
-      basename = ''listen'';
-      meta = {
-        description = ''Listen to file modifications'';
-        homepage = ''https://github.com/guard/listen'';
-        longDescription = ''The Listen gem listens to file modifications and notifies you about the changes. Works everywhere!'';
-      };
-      name = ''listen-1.3.1'';
-      requiredGems = [ g.rb_fsevent_0_9_3 g.rb_inotify_0_9_2 g.rb_kqueue_0_2_0 ];
-      sha256 = ''1p1rqz26ixx0fzc0hy3psq2bb3pwkv9awixv76zkaaqj1czabzbs'';
-    };
-    listen_2_2_0 = {
-      basename = ''listen'';
-      meta = {
-        description = ''Listen to file modifications'';
-        homepage = ''https://github.com/guard/listen'';
-        longDescription = ''The Listen gem listens to file modifications and notifies you about the changes. Works everywhere!'';
-      };
-      name = ''listen-2.2.0'';
-      requiredGems = [ g.celluloid_0_15_2 g.rb_fsevent_0_9_3 g.rb_inotify_0_9_2 ];
-      sha256 = ''1fm6cp5d4xbd5wdd0d804m3p2cc5rjrr5yzqzzh1ndzgbs94sv5c'';
-    };
-    locale_2_0_8 = {
+    locale_2_1_0 = {
       basename = ''locale'';
       meta = {
         description = ''Ruby-Locale is the pure ruby library which provides basic APIs for localization.'';
@@ -1214,42 +828,31 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
         longDescription = ''Ruby-Locale is the pure ruby library which provides basic APIs for localization.
 '';
       };
-      name = ''locale-2.0.8'';
+      name = ''locale-2.1.0'';
       requiredGems = [  ];
-      sha256 = ''1hmixxg4aigl3h1qmz4fdsrv81p0bblcjbks32nrcvcpwmlylf12'';
+      sha256 = ''18bb0g24flq9dr8qv4j7pm7w9i2vmvmqrbmry95ibf1r1c4s60yj'';
     };
-    lockfile_2_1_0 = {
+    lockfile_2_1_3 = {
       basename = ''lockfile'';
       meta = {
         description = ''lockfile'';
         homepage = ''https://github.com/ahoward/lockfile'';
-        longDescription = ''description: lockfile kicks the ass'';
+        longDescription = ''a ruby library for creating perfect and NFS safe lockfiles'';
       };
-      name = ''lockfile-2.1.0'';
+      name = ''lockfile-2.1.3'';
       requiredGems = [  ];
-      sha256 = ''1yfpz9k0crb7q7y5bcaavf2jzbc170dj84hqz13qp75rj7bl3qhf'';
+      sha256 = ''0dij3ijywylvfgrpi2i0k17f6w0wjhnjjw0k9030f54z56cz7jrr'';
     };
-    lumberjack_1_0_4 = {
-      basename = ''lumberjack'';
-      meta = {
-        description = ''A simple, powerful, and very fast logging utility that can be a drop in replacement for Logger or ActiveSupport::BufferedLogger.'';
-        homepage = ''http://github.com/bdurand/lumberjack'';
-        longDescription = ''A simple, powerful, and very fast logging utility that can be a drop in replacement for Logger or ActiveSupport::BufferedLogger. Provides support for automatically rolling log files even with multiple processes writing the same log file.'';
-      };
-      name = ''lumberjack-1.0.4'';
-      requiredGems = [  ];
-      sha256 = ''1mj6m12hnmkvzl4w2yh04ak3z45pwksj6ra7v30za8snw9kg919d'';
-    };
-    macaddr_1_6_1 = {
+    macaddr_1_7_1 = {
       basename = ''macaddr'';
       meta = {
         description = ''macaddr'';
         homepage = ''https://github.com/ahoward/macaddr'';
-        longDescription = ''description: macaddr kicks the ass'';
+        longDescription = ''cross platform mac address determination for ruby'';
       };
-      name = ''macaddr-1.6.1'';
-      requiredGems = [ g.systemu_2_5_2 ];
-      sha256 = ''1vd9l1d0lc0sq3rn1ya816wrzgxxqdzq6pgq0y0435qm6ikwy7ch'';
+      name = ''macaddr-1.7.1'';
+      requiredGems = [ g.systemu_2_6_4 ];
+      sha256 = ''1clii8mvhmh5lmnm95ljnjygyiyhdpja85c5vy487rhxn52scn0b'';
     };
     mail_2_5_4 = {
       basename = ''mail'';
@@ -1259,24 +862,21 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
         longDescription = ''A really Ruby Mail handler.'';
       };
       name = ''mail-2.5.4'';
-      requiredGems = [ g.mime_types_1_25 g.treetop_1_4_15 ];
+      requiredGems = [ g.mime_types_1_25_1 g.treetop_1_4_15 ];
       sha256 = ''0z15ksb8blcppchv03g34844f7xgf36ckp484qjj2886ig1qara4'';
     };
-    maruku_0_6_1 = {
-      basename = ''maruku'';
+    mail_2_6_1 = {
+      basename = ''mail'';
       meta = {
-        description = ''Maruku is a Markdown-superset interpreter written in Ruby.'';
-        homepage = ''http://github.com/bhollis/maruku'';
-        longDescription = ''Maruku is a Markdown interpreter in Ruby.
-	It features native export to HTML and PDF (via Latex). The
-	output is really beautiful!
-	'';
+        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 = ''maruku-0.6.1'';
-      requiredGems = [ g.syntax_1_0_0 ];
-      sha256 = ''01xc4l480k79jbicr0j37d9bmd4dsnrjh5hwdrh2djvy06l77ngz'';
+      name = ''mail-2.6.1'';
+      requiredGems = [ g.mime_types_2_3 ];
+      sha256 = ''17gsw57nc7ihk4xnbq9lidzv6h1ivh4l5m16hy790vs219n22mhx'';
     };
-    mechanize_2_7_2 = {
+    mechanize_2_7_3 = {
       basename = ''mechanize'';
       meta = {
         description = ''The Mechanize library is used for automating interaction with websites'';
@@ -1287,9 +887,9 @@ and can follow links and submit forms.  Form fields can be populated and
 submitted.  Mechanize also keeps track of the sites that you have visited as
 a history.'';
       };
-      name = ''mechanize-2.7.2'';
-      requiredGems = [ g.net_http_digest_auth_1_4 g.net_http_persistent_2_9 g.mime_types_1_25 g.http_cookie_1_0_1 g.nokogiri_1_6_0 g.ntlm_http_0_1_1 g.webrobots_0_1_1 g.domain_name_0_5_13 ];
-      sha256 = ''1w1rnn6jps1393gywi38saw5iqrvyai3vmvbv2kbc9j0zj5csyrl'';
+      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 ];
+      sha256 = ''00jkazj8fqnynaxca0lnwx5a084irxrnw8n8i0kppq4vg71g7rrx'';
     };
     method_source_0_8_2 = {
       basename = ''method_source'';
@@ -1302,20 +902,22 @@ a history.'';
       requiredGems = [  ];
       sha256 = ''1g5i4w0dmlhzd18dijlqw5gk27bv6dj2kziqzrzb7mpgxgsd1sf2'';
     };
-    mime_types_1_25 = {
+    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, adding experimental caching and lazy loading
-functionality.
+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.
 
-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 version 1.26.
+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
@@ -1346,8 +948,7 @@ 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. As of version 1.15, the data format for the
-MIME::Type list has changed and the synchronization will no longer happen.
+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/]
@@ -1355,15 +956,15 @@ tracks the {IANA registry}[http://www.iana.org/assignments/media-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'';
+      name = ''mime-types-1.25.1'';
       requiredGems = [  ];
-      sha256 = ''0hd6hpl05jyx3siznk70z46bmrzwmcyrr24yfaqg6nar35zw8bgf'';
+      sha256 = ''0mhzsanmnzdshaba7gmsjwnv168r1yj8y0flzw88frw1cickrvw8'';
     };
-    mime_types_2_0 = {
+    mime_types_2_3 = {
       basename = ''mime_types'';
       meta = {
         description = ''The mime-types library provides a library and registry for information about MIME content type definitions'';
-        homepage = ''http://mime-types.rubyforge.org/'';
+        homepage = ''https://github.com/halostatue/mime-types/'';
         longDescription = ''The mime-types library provides a library and registry for information about
 MIME content type definitions. It can be used to determine defined filename
 extensions for MIME types, or to use filename extensions to look up the likely
@@ -1379,46 +980,50 @@ add additional type definitions (see Contributing.rdoc). The primary sources
 for MIME type definitions found in mime-types is the IANA collection of
 registrations (see below for the link), RFCs, and W3C recommendations.
 
-The mime-types library uses semantic versioning. This is release 2.0; there are
-incompatible changes in the API provided by mime-types, mostly around registry
-initialization (see History.rdoc for full details), and the removal of support
-for Ruby 1.8 interpreters.
+This is release 2.2, mostly changing how the MIME type registry is updated from
+the IANA registry (the format of which was incompatibly changed shortly before
+this release) and taking advantage of the extra data available from IANA
+registry in the form of MIME::Type#xrefs. In addition, the {LTSW
+list}[http://www.ltsw.se/knbase/internet/mime.htp] has been dropped as a
+supported list.
+
+As a reminder, mime-types 2.x is no longer compatible with Ruby 1.8 and
+mime-types 1.x is only being maintained for security issues. No new MIME types
+or features will be added.
 
 mime-types (previously called MIME::Types for Ruby) was originally based on
 MIME::Types for Perl by Mark Overmeer, copyright 2001 - 2009. It 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.'';
+conform to the MIME types of RFCs 2045 and 2231. It tracks the {IANA Media
+Types registry}[https://www.iana.org/assignments/media-types/media-types.xhtml]
+with some types added by the users of mime-types.'';
       };
-      name = ''mime-types-2.0'';
+      name = ''mime-types-2.3'';
       requiredGems = [  ];
-      sha256 = ''1q1s22l3mm0am2f7n9qjqp8zl0smr9zlqr2ywwyfjkid2sj3prfk'';
+      sha256 = ''0j0mwzr2q9fmisp3r8rp7j95dns2gw7sd8c5sb5y6z0dfj56a4vd'';
     };
-    mini_portile_0_5_1 = {
+    mini_portile_0_6_0 = {
       basename = ''mini_portile'';
       meta = {
         description = ''Simplistic port-like solution for developers'';
         homepage = ''http://github.com/luislavena/mini_portile'';
         longDescription = ''Simplistic port-like solution for developers. It provides a standard and simplified way to compile against dependency libraries without messing up your system.'';
       };
-      name = ''mini_portile-0.5.1'';
+      name = ''mini_portile-0.6.0'';
       requiredGems = [  ];
-      sha256 = ''0cafnlhdzakzl5vqcm9b97kchj9bvhlcf4ylkyr85lz1263hbagg'';
+      sha256 = ''09kcn4g63xrdirgwxgjikqg976rr723bkc9bxfr29pk22cj3wavn'';
     };
-    minitar_0_5_3 = {
+    minitar_0_5_4 = {
       basename = ''minitar'';
       meta = {
         description = ''Provides POSIX tarchive management from Ruby programs.'';
-        homepage = ''http://rubyforge.org/projects/ruwiki/'';
-        longDescription = ''Archive::Tar::Minitar is a pure-Ruby library and command-line utility that provides the ability to deal with POSIX tar(1) archive files. The implementation is based heavily on Mauricio Ferna'ndez's implementation in rpa-base, but has been reorganised to promote reuse in other projects.'';
+        homepage = ''http://www.github.com/atoulme/minitar'';
+        longDescription = ''Archive::Tar::Minitar is a pure-Ruby library and command-line utility that provides the ability to deal with POSIX tar(1) archive files. The implementation is based heavily on Mauricio Ferna'ndez's implementation in rpa-base, but has been reorganised to promote reuse in other projects. Antoine Toulme forked the original project on rubyforge to place it on github, under http://www.github.com/atoulme/minitar'';
       };
-      name = ''minitar-0.5.3'';
+      name = ''minitar-0.5.4'';
       requiredGems = [  ];
-      sha256 = ''035vs1knnnjsb8arfp8vx75warvwcdpiljjwv38lqljai9v8fq53'';
+      sha256 = ''1vpdjfmdq1yc4i620frfp9af02ia435dnpj8ybsd7dc3rypkvbka'';
     };
-    minitest_4_7_5 = {
+    minitest_5_4_0 = {
       basename = ''minitest'';
       meta = {
         description = ''minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking'';
@@ -1477,64 +1082,53 @@ 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-4.7.5'';
-      requiredGems = [  ];
-      sha256 = ''03p6iban9gcpcflzp4z901s1hgj9369p6515h967ny6hlqhcf2iy'';
-    };
-    mono_logger_1_1_0 = {
-      basename = ''mono_logger'';
-      meta = {
-        description = ''A lock-free logger compatible with Ruby 2.0.'';
-        homepage = ''http://github.com/steveklabnik/mono_logger'';
-        longDescription = ''A lock-free logger compatible with Ruby 2.0. Ruby does not allow you to request a lock in a trap handler because that could deadlock, so Logger is not sufficient.'';
-      };
-      name = ''mono_logger-1.1.0'';
+      name = ''minitest-5.4.0'';
       requiredGems = [  ];
-      sha256 = ''18yplq3xxv5crwpfwbw2sb6brqd3g51si7x9fbh9bcimg4ipzayp'';
+      sha256 = ''002xflqz5wl8gcj9gw4q66mq5jkp445zgd9c5vs6cw6lsfsyg4rl'';
     };
-    multi_json_1_7_9 = {
+    multi_json_1_10_1 = {
       basename = ''multi_json'';
       meta = {
         description = ''A common interface to multiple JSON libraries.'';
         homepage = ''http://github.com/intridea/multi_json'';
         longDescription = ''A common interface to multiple JSON libraries, including Oj, Yajl, the JSON gem (with C-extensions), the pure-Ruby JSON gem, NSJSONSerialization, gson.rb, JrJackson, and OkJson.'';
       };
-      name = ''multi_json-1.7.9'';
+      name = ''multi_json-1.10.1'';
       requiredGems = [  ];
-      sha256 = ''1q13ldcc8shlfisy90k19zrar87208gs3za6jmr78p11ip21picx'';
+      sha256 = ''1ll21dz01jjiplr846n1c8yzb45kj5hcixgb72rz0zg8fyc9g61c'';
     };
-    multi_json_1_8_2 = {
+    multi_json_1_3_6 = {
       basename = ''multi_json'';
       meta = {
-        description = ''A common interface to multiple JSON libraries.'';
+        description = ''A gem to provide swappable JSON backends.'';
         homepage = ''http://github.com/intridea/multi_json'';
-        longDescription = ''A common interface to multiple JSON libraries, including Oj, Yajl, the JSON gem (with C-extensions), the pure-Ruby JSON gem, NSJSONSerialization, gson.rb, JrJackson, and OkJson.'';
+        longDescription = ''A gem to provide easy switching between different JSON backends, including Oj, Yajl, the JSON gem (with C-extensions), the pure-Ruby JSON gem, and OkJson.'';
       };
-      name = ''multi_json-1.8.2'';
+      name = ''multi_json-1.3.6'';
       requiredGems = [  ];
-      sha256 = ''1ffmnwsfwdgspk86x1g98cq2ivqlgqpqngyrvs07zsnvgdimahdb'';
+      sha256 = ''0q2zjfvd2ibds9g9nzf2p1b47fc1wqliwfywv5pw85w15lmy91yr'';
     };
-    multi_test_0_0_2 = {
+    multi_test_0_1_1 = {
       basename = ''multi_test'';
       meta = {
-        description = ''multi-test-0.0.2'';
+        description = ''multi-test-0.1.1'';
         homepage = ''http://cukes.info'';
         longDescription = ''Wafter-thin gem to help control rogue test/unit/autorun requires'';
       };
-      name = ''multi_test-0.0.2'';
+      name = ''multi_test-0.1.1'';
       requiredGems = [  ];
-      sha256 = ''0y8i0v0awc87laicqz1348k54z6wsyf141xqd7gh2bjgm9pc9pkr'';
+      sha256 = ''1dd810limbdc8k7ss83g83krrsjjqs79nicbdxk74l1a2sp2jhwv'';
     };
-    multipart_post_1_2_0 = {
+    multipart_post_2_0_0 = {
       basename = ''multipart_post'';
       meta = {
         description = ''A multipart form post accessory for Net::HTTP.'';
         homepage = ''https://github.com/nicksieger/multipart-post'';
         longDescription = ''Use with Net::HTTP to do multipart form posts.  IO values that have #content_type, #original_filename, and #local_path will be posted as a binary file.'';
       };
-      name = ''multipart-post-1.2.0'';
+      name = ''multipart-post-2.0.0'';
       requiredGems = [  ];
-      sha256 = ''12p7lnmc52di1r4h73h6xrpppplzyyhani9p7wm8l4kgf1hnmwnc'';
+      sha256 = ''09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x'';
     };
     net_http_digest_auth_1_4 = {
       basename = ''net_http_digest_auth'';
@@ -1553,7 +1147,7 @@ for an example.'';
       requiredGems = [  ];
       sha256 = ''14801gr34g0rmqz9pv4rkfa3crfdbyfk6r48vpg5a5407v0sixqi'';
     };
-    net_http_persistent_2_9 = {
+    net_http_persistent_2_9_4 = {
       basename = ''net_http_persistent'';
       meta = {
         description = ''Manages persistent connections using Net::HTTP plus a speed fix for Ruby 1.8'';
@@ -1569,9 +1163,9 @@ Net::HTTP supports persistent connections with some API methods but does not
 handle reconnection gracefully.  Net::HTTP::Persistent supports reconnection
 and retry according to RFC 2616.'';
       };
-      name = ''net-http-persistent-2.9'';
+      name = ''net-http-persistent-2.9.4'';
       requiredGems = [  ];
-      sha256 = ''0k9bp7q5fsh908jnkwfj71ky04i4ih0ky6sqi5vl6zcpjsczgfcb'';
+      sha256 = ''1y9fhaax0d9kkslyiqi1zys6cvpaqx9a0y0cywp24rpygwh4s9r4'';
     };
     net_http_pipeline_1_0_1 = {
       basename = ''net_http_pipeline'';
@@ -1586,49 +1180,38 @@ The server will respond in-order.'';
       requiredGems = [  ];
       sha256 = ''0bxjy33yhxwsbnld8xj3zv64ibgfjn9rjpiqkyd5ipmz50pww8v9'';
     };
-    net_sftp_2_0_5 = {
+    net_sftp_2_1_2 = {
       basename = ''net_sftp'';
       meta = {
         description = ''A pure Ruby implementation of the SFTP client protocol'';
-        homepage = ''http://net-ssh.rubyforge.org/sftp'';
+        homepage = ''https://github.com/net-ssh/net-sftp'';
         longDescription = ''A pure Ruby implementation of the SFTP client protocol'';
       };
-      name = ''net-sftp-2.0.5'';
-      requiredGems = [ g.net_ssh_2_6_8 ];
-      sha256 = ''0lqk735wspm8rbiyxpbil8ikrqcyg00ss1df7fny0761c3as6m0v'';
+      name = ''net-sftp-2.1.2'';
+      requiredGems = [ g.net_ssh_2_9_1 ];
+      sha256 = ''04674g4n6mryjajlcd82af8g8k95la4b1bj712dh71hw1c9vhw1y'';
     };
-    net_ssh_2_6_0 = {
+    net_ssh_2_7_0 = {
       basename = ''net_ssh'';
       meta = {
         description = ''Net::SSH: a pure-Ruby implementation of the SSH2 client protocol.'';
-        homepage = ''http://github.com/net-ssh/net-ssh'';
+        homepage = ''https://github.com/net-ssh/net-ssh'';
         longDescription = ''Net::SSH: a pure-Ruby implementation of the SSH2 client protocol. It allows you to write programs that invoke and interact with processes on remote servers, via SSH2.'';
       };
-      name = ''net-ssh-2.6.0'';
-      requiredGems = [ g.jruby_pageant_1_1_1 ];
-      sha256 = ''18fsgps4a9dfrjszkl3py8j7vw0xwi70bcp59ccj2rlr6i1jv5gw'';
+      name = ''net-ssh-2.7.0'';
+      requiredGems = [  ];
+      sha256 = ''14v0cq2fws54kxpgz249xmjlajynhcs4s2szl8kjxgn4c78lrkmr'';
     };
-    net_ssh_2_6_8 = {
+    net_ssh_2_9_1 = {
       basename = ''net_ssh'';
       meta = {
         description = ''Net::SSH: a pure-Ruby implementation of the SSH2 client protocol.'';
         homepage = ''https://github.com/net-ssh/net-ssh'';
         longDescription = ''Net::SSH: a pure-Ruby implementation of the SSH2 client protocol. It allows you to write programs that invoke and interact with processes on remote servers, via SSH2.'';
       };
-      name = ''net-ssh-2.6.8'';
+      name = ''net-ssh-2.9.1'';
       requiredGems = [  ];
-      sha256 = ''0vf9w8b9f5ha94nwhvwxyqk4lfpy42ihl1g0qib8dfvswlkqw3mx'';
-    };
-    netrc_0_7_7 = {
-      basename = ''netrc'';
-      meta = {
-        description = ''Library to read and write netrc files.'';
-        homepage = ''https://github.com/geemus/netrc'';
-        longDescription = ''This library can read and update netrc files, preserving formatting including comments and whitespace.'';
-      };
-      name = ''netrc-0.7.7'';
-      requiredGems = [  ];
-      sha256 = ''1y64v93hsxdwgx3dfkyzdki3zqd1slm42dmi23v0zy3kap4vpard'';
+      sha256 = ''1vscp4r58jisiigqc6d6752w19m1m6hmi3jkzmp3ydxai7h3jb2j'';
     };
     nix_0_1_1 = {
       basename = ''nix'';
@@ -1641,22 +1224,7 @@ The server will respond in-order.'';
       requiredGems = [  ];
       sha256 = ''0kwrbkkg0gxibhsz9dpd5zabcf2wqsicg28yiazyb3dc9dslk26k'';
     };
-    nokogiri_1_5_10 = {
-      basename = ''nokogiri'';
-      meta = {
-        description = ''Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser'';
-        homepage = ''http://nokogiri.org'';
-        longDescription = ''Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser.  Among Nokogiri's
-many features is the ability to search documents via XPath or CSS3 selectors.
-
-XML is like violence - if it doesn’t solve your problems, you are not using
-enough of it.'';
-      };
-      name = ''nokogiri-1.5.10'';
-      requiredGems = [  ];
-      sha256 = ''0dblphzwzl705xmlqcflz8s60xzbcgi4xqzx7984l4kcssbkn71b'';
-    };
-    nokogiri_1_6_0 = {
+    nokogiri_1_6_3_1 = {
       basename = ''nokogiri'';
       meta = {
         description = ''Nokogiri (鋸) is an HTML, XML, SAX, and Reader parser'';
@@ -1667,9 +1235,9 @@ many features is the ability to search documents via XPath or CSS3 selectors.
 XML is like violence - if it doesn’t solve your problems, you are not using
 enough of it.'';
       };
-      name = ''nokogiri-1.6.0'';
-      requiredGems = [ g.mini_portile_0_5_1 ];
-      sha256 = ''1icrny9w2hd0pm7cyq5wqdkbzr57dkma1lbyrr0x14lsnangkidb'';
+      name = ''nokogiri-1.6.3.1'';
+      requiredGems = [ g.mini_portile_0_6_0 ];
+      sha256 = ''11958hlfd8i3i9y0wk1b6ck9x0j95l4zdbbixmdnnh1r8ijilxli'';
     };
     ntlm_http_0_1_1 = {
       basename = ''ntlm_http'';
@@ -1682,16 +1250,26 @@ enough of it.'';
       requiredGems = [  ];
       sha256 = ''0yx01ffrw87wya1syivqzf8hz02axk7jdpw6aw221xwvib767d36'';
     };
-    papertrail_0_9_7 = {
+    orderedhash_0_0_6 = {
+      basename = ''orderedhash'';
+      meta = {
+        description = ''orderedhash'';
+        homepage = ''http://codeforpeople.com/lib/ruby/orderedhash/'';
+      };
+      name = ''orderedhash-0.0.6'';
+      requiredGems = [  ];
+      sha256 = ''0fryy7f9jbpx33jq5m402yqj01zcg563k9fsxlqbhmq638p4bzd7'';
+    };
+    papertrail_0_9_10 = {
       basename = ''papertrail'';
       meta = {
         description = ''Command-line client for Papertrail hosted log management service.'';
         homepage = ''http://github.com/papertrail/papertrail-cli'';
         longDescription = ''Command-line client for Papertrail hosted log management service. Tails and searches app server logs and system syslog. Supports Boolean search and works with grep and pipe output (Unix).'';
       };
-      name = ''papertrail-0.9.7'';
-      requiredGems = [ g.addressable_2_3_5 g.yajl_ruby_1_1_0 g.chronic_0_10_1 g.faraday_0_8_8 g.faraday_middleware_0_8_8 ];
-      sha256 = ''0v0m1v0qabbr9pmyl77znz39qy1m7p0xwvf3lf9hyq6n524f2dwr'';
+      name = ''papertrail-0.9.10'';
+      requiredGems = [ g.chronic_0_10_2 ];
+      sha256 = ''1v2acc896w5q72m5pfxc8rx36gzih4fivyiqp0kxwypgyh0f0x58'';
     };
     papertrail_cli_0_9_3 = {
       basename = ''papertrail_cli'';
@@ -1701,7 +1279,7 @@ enough of it.'';
         longDescription = ''Placeholder gem to point to new papertrail gem.'';
       };
       name = ''papertrail-cli-0.9.3'';
-      requiredGems = [ g.papertrail_0_9_7 ];
+      requiredGems = [ g.papertrail_0_9_10 ];
       sha256 = ''1914dcfqsmw5rl4xd1zwjrfbgwglyncxm8km06bgxaqn4wnaq5iv'';
     };
     parallel_0_7_1 = {
@@ -1714,7 +1292,7 @@ enough of it.'';
       requiredGems = [  ];
       sha256 = ''1kzz6ydg7r23ks2b7zbpx4vz3h186n19vhgnjcwi7xwd6h2f1fsq'';
     };
-    polyglot_0_3_3 = {
+    polyglot_0_3_5 = {
       basename = ''polyglot'';
       meta = {
         description = ''Augment 'require' to load non-Ruby file types'';
@@ -1724,64 +1302,31 @@ 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.3'';
+      name = ''polyglot-0.3.5'';
       requiredGems = [  ];
-      sha256 = ''082zmail2h3cxd9z1wnibhk6aj4sb1f3zzwra6kg9bp51kx2c00v'';
+      sha256 = ''1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr'';
     };
-    posix_spawn_0_3_6 = {
-      basename = ''posix_spawn'';
-      meta = {
-        description = ''posix_spawnp(2) for ruby'';
-        homepage = ''http://github.com/rtomayko/posix-spawn'';
-        longDescription = ''posix-spawn uses posix_spawnp(2) for faster process spawning'';
-      };
-      name = ''posix-spawn-0.3.6'';
-      requiredGems = [  ];
-      sha256 = ''0f2mqka8024yz55iw8wbihvmakwqnbrdr4a1ffl3x2zi104yvb43'';
-    };
-    pry_0_9_12_2 = {
+    pry_0_9_12_6 = {
       basename = ''pry'';
       meta = {
         description = ''An IRB alternative and runtime developer console'';
         homepage = ''http://pry.github.com'';
         longDescription = ''An IRB alternative and runtime developer console'';
       };
-      name = ''pry-0.9.12.2'';
-      requiredGems = [ g.coderay_1_0_9 g.slop_3_4_6 g.method_source_0_8_2 ];
-      sha256 = ''141slzb62zfzdhrygqjmrzh68s3vzrb4mwyipy2lhps5q4b46y9s'';
+      name = ''pry-0.9.12.6'';
+      requiredGems = [ g.coderay_1_1_0 g.slop_3_6_0 g.method_source_0_8_2 ];
+      sha256 = ''0wmgamn83m1zb1fbqc22hiszjf2a2xij5jd95w2gvm5x6l5p61q1'';
     };
-    pry_0_9_12_3 = {
-      basename = ''pry'';
-      meta = {
-        description = ''An IRB alternative and runtime developer console'';
-        homepage = ''http://pry.github.com'';
-        longDescription = ''An IRB alternative and runtime developer console'';
-      };
-      name = ''pry-0.9.12.3'';
-      requiredGems = [ g.coderay_1_1_0 g.slop_3_4_7 g.method_source_0_8_2 ];
-      sha256 = ''1dn80vnyq1l6192sg3p29d0yz6rswnsl8rn3lkf75c86a2qqxpy3'';
-    };
-    pusher_client_0_3_1 = {
+    pusher_client_0_6_0 = {
       basename = ''pusher_client'';
       meta = {
         description = ''Client for consuming WebSockets from http://pusher.com'';
         homepage = ''http://github.com/pusher/pusher-ruby-client'';
         longDescription = ''Client for consuming WebSockets from http://pusher.com'';
       };
-      name = ''pusher-client-0.3.1'';
-      requiredGems = [ g.websocket_1_0_7 g.ruby_hmac_0_4_0 ];
-      sha256 = ''1mxqy960iln065fypk1ww3xgv7q396fpl6v0rp7ipls6aj86j970'';
-    };
-    pygments_rb_0_5_4 = {
-      basename = ''pygments_rb'';
-      meta = {
-        description = ''pygments wrapper for ruby'';
-        homepage = ''http://github.com/tmm1/pygments.rb'';
-        longDescription = ''pygments.rb exposes the pygments syntax highlighter to Ruby'';
-      };
-      name = ''pygments.rb-0.5.4'';
-      requiredGems = [ g.yajl_ruby_1_1_0 g.posix_spawn_0_3_6 ];
-      sha256 = ''0ryl0f0zp0rffaggd978cmrkzsmf83x452fcinw6p705xdk4zbvl'';
+      name = ''pusher-client-0.6.0'';
+      requiredGems = [ g.websocket_1_2_0 g.json_1_8_1 ];
+      sha256 = ''0n7l630qg6wgzak45b6gfjg9a0fmpbrs7mwchqqbja9mjs95r8qy'';
     };
     rack_1_5_2 = {
       basename = ''rack'';
@@ -1801,27 +1346,16 @@ Also see http://rack.github.com/.
       requiredGems = [  ];
       sha256 = ''19szfw76cscrzjldvw30jp3461zl00w4xvw1x9lsmyp86h1g0jp6'';
     };
-    rack_protection_1_5_0 = {
-      basename = ''rack_protection'';
-      meta = {
-        description = ''You should use protection!'';
-        homepage = ''http://github.com/rkh/rack-protection'';
-        longDescription = ''You should use protection!'';
-      };
-      name = ''rack-protection-1.5.0'';
-      requiredGems = [ g.rack_1_5_2 ];
-      sha256 = ''10wm67f2mp9pryg0s8qapbyxd2lcrpb8ywsbicg29cv2xprhbl4j'';
-    };
-    rack_protection_1_5_1 = {
+    rack_protection_1_5_3 = {
       basename = ''rack_protection'';
       meta = {
         description = ''You should use protection!'';
         homepage = ''http://github.com/rkh/rack-protection'';
         longDescription = ''You should use protection!'';
       };
-      name = ''rack-protection-1.5.1'';
+      name = ''rack-protection-1.5.3'';
       requiredGems = [ g.rack_1_5_2 ];
-      sha256 = ''0qxq5ld15nljxzdcx2wmbc3chw8nb6la1ap838vf263lnjcpx3dd'';
+      sha256 = ''0cvb21zz7p9wy23wdav63z5qzfn4nialik22yqp6gihkgfqqrh5r'';
     };
     rack_test_0_6_2 = {
       basename = ''rack_test'';
@@ -1837,27 +1371,27 @@ request helpers feature.'';
       requiredGems = [ g.rack_1_5_2 ];
       sha256 = ''01mk715ab5qnqf6va8k3hjsvsmplrfqpz6g58qw4m3l8mim0p4ky'';
     };
-    rails_4_0_0 = {
+    rails_4_1_5 = {
       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.0.0'';
-      requiredGems = [ g.activesupport_4_0_0 g.actionpack_4_0_0 g.activerecord_4_0_0 g.actionmailer_4_0_0 g.railties_4_0_0 g.bundler_1_3_5 g.sprockets_rails_2_0_0 ];
-      sha256 = ''12q2z2zpqpr61rqdx8can2ay6y1xxi6ghmlkyvfvxnnwwzxypavf'';
+      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'';
     };
-    railties_4_0_0 = {
+    railties_4_1_5 = {
       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.0.0'';
-      requiredGems = [ g.activesupport_4_0_0 g.actionpack_4_0_0 g.rake_10_1_0 g.thor_0_18_1 ];
-      sha256 = ''063yyp75b87z0nr1mayzyq462nnhfm834mn97fcyg2mf3zr8qbly'';
+      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'';
     };
     rake_0_9_2_2 = {
       basename = ''rake'';
@@ -1870,109 +1404,58 @@ request helpers feature.'';
       requiredGems = [  ];
       sha256 = ''19n4qp5gzbcqy9ajh56kgwqv9p9w2hnczhyvaqz0nlvk9diyng6q'';
     };
-    rake_0_9_6 = {
-      basename = ''rake'';
-      meta = {
-        description = ''Ruby based make-like utility.'';
-        homepage = ''http://rake.rubyforge.org'';
-        longDescription = ''Rake is a Make-like program implemented in Ruby. Tasks and dependencies arespecified in standard Ruby syntax.'';
-      };
-      name = ''rake-0.9.6'';
-      requiredGems = [  ];
-      sha256 = ''09kyh351gddn6gjz255hbaza1cw235xvfz9dc15rhyq9phvqdphc'';
-    };
-    rake_10_1_0 = {
+    rake_10_3_2 = {
       basename = ''rake'';
       meta = {
-        description = ''Ruby based make-like utility.'';
-        homepage = ''http://rake.rubyforge.org'';
-        longDescription = ''Rake is a Make-like program implemented in Ruby. Tasks and dependencies arespecified in standard Ruby syntax.'';
+        description = ''Rake is a Make-like program implemented in Ruby'';
+        homepage = ''https://github.com/jimweirich/rake'';
+        longDescription = ''Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
+specified in standard Ruby syntax.
+
+Rake has the following features:
+
+* Rakefiles (rake's version of Makefiles) are completely defined in
+  standard Ruby syntax.  No XML files to edit.  No quirky Makefile
+  syntax to worry about (is that a tab or a space?)
+
+* Users can specify tasks with prerequisites.
+
+* Rake supports rule patterns to synthesize implicit tasks.
+
+* Flexible FileLists that act like arrays but know about manipulating
+  file names and paths.
+
+* A library of prepackaged tasks to make building rakefiles easier. For example,
+  tasks for building tarballs and publishing to FTP or SSH sites.  (Formerly
+  tasks for building RDoc and Gems were included in rake but they're now
+  available in RDoc and RubyGems respectively.)
+
+* Supports parallel execution of tasks.'';
       };
-      name = ''rake-10.1.0'';
+      name = ''rake-10.3.2'';
       requiredGems = [  ];
-      sha256 = ''1frsqpihi39x3yqaa7m9vbls1kd24wckbj5cpiwqix8xmcwnic7q'';
+      sha256 = ''0nvpkjrpsk8xxnij2wd1cdn6arja9q11sxx4aq4fz18bc6fss15m'';
     };
-    rb_fsevent_0_9_3 = {
+    rb_fsevent_0_9_4 = {
       basename = ''rb_fsevent'';
       meta = {
         description = ''Very simple &amp; usable FSEvents API'';
         homepage = ''http://rubygems.org/gems/rb-fsevent'';
         longDescription = ''FSEvents API with Signals catching (without RubyCocoa)'';
       };
-      name = ''rb-fsevent-0.9.3'';
+      name = ''rb-fsevent-0.9.4'';
       requiredGems = [  ];
-      sha256 = ''0bdnxwdxj4r1kdxfi5nszbsb126njrr81p912g64xxs2bgxd1bp1'';
+      sha256 = ''12if5xsik64kihxf5awsyavlp595y47g9qz77vfp2zvkxgglaka7'';
     };
-    rb_inotify_0_9_2 = {
-      basename = ''rb_inotify'';
-      meta = {
-        description = ''A Ruby wrapper for Linux's inotify, using FFI'';
-        homepage = ''http://github.com/nex3/rb-inotify'';
-        longDescription = ''A Ruby wrapper for Linux's inotify, using FFI'';
-      };
-      name = ''rb-inotify-0.9.2'';
-      requiredGems = [ g.ffi_1_9_3 ];
-      sha256 = ''0752fhgfrx370b2jnhxzs8sjv2l8yrnwqj337kx9v100igd1c7iv'';
-    };
-    rb_kqueue_0_2_0 = {
-      basename = ''rb_kqueue'';
-      meta = {
-        description = ''A Ruby wrapper for BSD's kqueue, using FFI'';
-        homepage = ''http://github.com/mat813/rb-kqueue'';
-        longDescription = ''A Ruby wrapper for BSD's kqueue, using FFI'';
-      };
-      name = ''rb-kqueue-0.2.0'';
-      requiredGems = [ g.ffi_1_9_3 ];
-      sha256 = ''1f2wimhq93a1zy2fbyj7iyh7hvzmzwn3pzhkwb3npy4mj1df83n3'';
-    };
-    rdiscount_2_1_6 = {
+    rdiscount_2_1_7_1 = {
       basename = ''rdiscount'';
       meta = {
         description = ''Fast Implementation of Gruber's Markdown in C'';
         homepage = ''http://dafoster.net/projects/rdiscount/'';
       };
-      name = ''rdiscount-2.1.6'';
+      name = ''rdiscount-2.1.7.1'';
       requiredGems = [  ];
-      sha256 = ''180ln9gwxn0cyflg0i1viv7jyalmjqvqr34cb65xsmmsz1nz55q2'';
-    };
-    redcarpet_2_3_0 = {
-      basename = ''redcarpet'';
-      meta = {
-        description = ''Markdown that smells nice'';
-        homepage = ''http://github.com/vmg/redcarpet'';
-        longDescription = ''A fast, safe and extensible Markdown to (X)HTML parser'';
-      };
-      name = ''redcarpet-2.3.0'';
-      requiredGems = [  ];
-      sha256 = ''1fghh7n9kz6n6bdhgix5s8lyj5sw6q44zizf4mdgz5xsgwqcr6sw'';
-    };
-    redis_3_0_5 = {
-      basename = ''redis'';
-      meta = {
-        description = ''A Ruby client library for Redis'';
-        homepage = ''https://github.com/redis/redis-rb'';
-        longDescription = ''    A Ruby client that tries to match Redis' API one-to-one, while still
-    providing an idiomatic interface. It features thread-safety,
-    client-side sharding, pipelining, and an obsession for performance.
-'';
-      };
-      name = ''redis-3.0.5'';
-      requiredGems = [  ];
-      sha256 = ''01gg3mgh3yznfhxschcka593a3ivsyw5g5vr0g5apiz4lfh6dlkn'';
-    };
-    redis_namespace_1_3_1 = {
-      basename = ''redis_namespace'';
-      meta = {
-        description = ''Namespaces Redis commands.'';
-        homepage = ''http://github.com/resque/redis-namespace'';
-        longDescription = ''Adds a Redis::Namespace class which can be used to namespace calls
-to Redis. This is useful when using a single instance of Redis with
-multiple, different applications.
-'';
-      };
-      name = ''redis-namespace-1.3.1'';
-      requiredGems = [ g.redis_3_0_5 ];
-      sha256 = ''1l6a64z09ni5pi6mbgvsph0lp14cnp180aj7mxnq2nb38sig4iw5'';
+      sha256 = ''1g70vsgv7mdwcyk9rxja7wm4qqap67prqwkj335c460vlzs6pqii'';
     };
     remote_syslog_1_6_14 = {
       basename = ''remote_syslog'';
@@ -1985,52 +1468,16 @@ multiple, different applications.
       requiredGems = [ g.servolux_0_10_0 g.file_tail_1_0_12 g.eventmachine_1_0_3 g.eventmachine_tail_0_6_4 g.syslog_protocol_0_9_2 g.em_resolv_replace_1_1_3 ];
       sha256 = ''1f2yjyqhbdc4vlx52zli1b33f6yn8qc1kd4n0dpv27zswj9qfdkr'';
     };
-    resque_1_25_1 = {
-      basename = ''resque'';
-      meta = {
-        description = ''Resque is a Redis-backed queueing system.'';
-        homepage = ''http://github.com/defunkt/resque'';
-        longDescription = ''    Resque is a Redis-backed Ruby library for creating background jobs,
-    placing those jobs on multiple queues, and processing them later.
-
-    Background jobs can be any Ruby class or module that responds to
-    perform. Your existing classes can easily be converted to background
-    jobs or you can create new classes specifically to do work. Or, you
-    can do both.
-
-    Resque is heavily inspired by DelayedJob (which rocks) and is
-    comprised of three parts:
-
-    * A Ruby library for creating, querying, and processing jobs
-    * A Rake task for starting a worker which processes jobs
-    * A Sinatra app for monitoring queues, jobs, and workers.
-'';
-      };
-      name = ''resque-1.25.1'';
-      requiredGems = [ g.redis_namespace_1_3_1 g.vegas_0_1_11 g.sinatra_1_4_4 g.multi_json_1_8_2 g.mono_logger_1_1_0 ];
-      sha256 = ''0p9kpj900cyb888wmpqx6ms9b0hza09glr4cvrwqwp1vqya25lpy'';
-    };
-    resque_web_0_0_3 = {
-      basename = ''resque_web'';
-      meta = {
-        description = ''Rails-based Resque web interface'';
-        homepage = ''https://github.com/resque/resque-web'';
-        longDescription = ''A Rails-based frontend to the Resque job queue system.'';
-      };
-      name = ''resque-web-0.0.3'';
-      requiredGems = [ g.resque_1_25_1 g.twitter_bootstrap_rails_2_2_8 g.jquery_rails_3_0_4 g.sass_rails_4_0_1 g.coffee_rails_4_0_1 ];
-      sha256 = ''1v4g0zrlq9n0pkhdiwxqcmis5p8hpxm475vchldk63mi1vy4fvr2'';
-    };
-    rest_client_1_6_7 = {
-      basename = ''rest_client'';
+    riemann_dash_0_2_9 = {
+      basename = ''riemann_dash'';
       meta = {
-        description = ''Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.'';
-        homepage = ''http://github.com/archiloque/rest-client'';
-        longDescription = ''A simple HTTP and REST client for Ruby, inspired by the Sinatra microframework style of specifying actions: get, put, post, delete.'';
+        description = ''HTTP dashboard for the distributed event system Riemann.'';
+        homepage = ''https://github.com/aphyr/riemann-dash'';
+        longDescription = ''HTTP dashboard for the distributed event system Riemann.'';
       };
-      name = ''rest-client-1.6.7'';
-      requiredGems = [ g.mime_types_2_0 ];
-      sha256 = ''0nn7zalgidz2yj0iqh3xvzh626krm2al79dfiij19jdhp0rk8853'';
+      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 ];
+      sha256 = ''0ws5wmjbv8w9lcr3i2mdinj2qm91p6c85k6c067i67cf0p90jxq3'';
     };
     right_aws_3_1_0 = {
       basename = ''right_aws'';
@@ -2077,10 +1524,10 @@ The RightScale AWS gems comprise:
 '';
       };
       name = ''right_aws-3.1.0'';
-      requiredGems = [ g.right_http_connection_1_4_0 ];
+      requiredGems = [ g.right_http_connection_1_5_0 ];
       sha256 = ''1a3l5vyvq078nq976rzkrd6fbj522sbgrxpdq3p9z373h0awha09'';
     };
-    right_http_connection_1_4_0 = {
+    right_http_connection_1_5_0 = {
       basename = ''right_http_connection'';
       meta = {
         description = ''RightScale's robust HTTP/S connection module'';
@@ -2095,11 +1542,11 @@ algorithm for low-level network errors.
 - HTTPS certificate checking
 '';
       };
-      name = ''right_http_connection-1.4.0'';
+      name = ''right_http_connection-1.5.0'';
       requiredGems = [  ];
-      sha256 = ''0m4phly7srnwyvfqp01lpaxrgrybhszar0p23zl8b12r6bdjl84g'';
+      sha256 = ''0shd8v24aqxdvim1gdqzwxpanjhfgkhdaw0m0lzz7sybkb02j8qf'';
     };
-    rjb_1_4_2 = {
+    rjb_1_4_8 = {
       basename = ''rjb'';
       meta = {
         description = ''Ruby Java bridge'';
@@ -2107,11 +1554,11 @@ algorithm for low-level network errors.
         longDescription = ''RJB is a bridge program that connect between Ruby and Java with Java Native Interface.
 '';
       };
-      name = ''rjb-1.4.2'';
+      name = ''rjb-1.4.8'';
       requiredGems = [  ];
-      sha256 = ''1cgbwpc45djs0mw05ydxf5apmb9ibj61n240ylqwzrajf13banzh'';
+      sha256 = ''06ps4ssaxb8jwja53h7v7kb31hsdr997b8na89d1yasm5zyraliw'';
     };
-    rjb_1_4_8 = {
+    rjb_1_4_9 = {
       basename = ''rjb'';
       meta = {
         description = ''Ruby Java bridge'';
@@ -2119,33 +1566,21 @@ algorithm for low-level network errors.
         longDescription = ''RJB is a bridge program that connect between Ruby and Java with Java Native Interface.
 '';
       };
-      name = ''rjb-1.4.8'';
+      name = ''rjb-1.4.9'';
       requiredGems = [  ];
-      sha256 = ''06ps4ssaxb8jwja53h7v7kb31hsdr997b8na89d1yasm5zyraliw'';
+      sha256 = ''062f7bjwz6iz6da49nzzbbx4xn8ahqqha2smqvqhbf0i7kd5v0yz'';
     };
-    rkelly_remix_0_0_4 = {
+    rkelly_remix_0_0_6 = {
       basename = ''rkelly_remix'';
       meta = {
-        description = ''Fork of the RKelly library to make it suitable as the JavaScript parser in JSDuck'';
-        longDescription = ''Fork of the RKelly library to make it suitable as the JavaScript parser
-in JSDuck.
-
-* http://rkelly.rubyforge.org/'';
-      };
-      name = ''rkelly-remix-0.0.4'';
-      requiredGems = [  ];
-      sha256 = ''1w6yr5n3b8yd0rsba9q3zyxr0n2hbpkz4v2k1qx6j1ywvl9rc2c1'';
-    };
-    rmagick_2_13_2 = {
-      basename = ''rmagick'';
-      meta = {
-        description = ''Ruby binding to ImageMagick'';
-        homepage = ''http://rubyforge.org/projects/rmagick'';
-        longDescription = ''RMagick is an interface between Ruby and ImageMagick.'';
+        description = ''RKelly Remix is a fork of the RKelly[https://github.com/tenderlove/rkelly] JavaScript parser.'';
+        homepage = ''https://github.com/nene/rkelly-remix'';
+        longDescription = ''RKelly Remix is a fork of the
+RKelly[https://github.com/tenderlove/rkelly] JavaScript parser.'';
       };
-      name = ''rmagick-2.13.2'';
+      name = ''rkelly-remix-0.0.6'';
       requiredGems = [  ];
-      sha256 = ''1fw5rs5yqi5ayh44d18gjq68chiz14byx01h33c8jvkdxz3b9wz4'';
+      sha256 = ''1ihsns5v8nx96gvj7sqw5m8d6dsnmpfzpd07y860bldjhkjsxp1z'';
     };
     rmail_1_0_0 = {
       basename = ''rmail'';
@@ -2158,94 +1593,82 @@ in JSDuck.
       requiredGems = [  ];
       sha256 = ''0nsg7yda1gdwa96j4hlrp2s0m06vrhcc4zy5mbq7gxmlmwf9yixp'';
     };
-    rmail_sup_1_0_1 = {
-      basename = ''rmail_sup'';
-      meta = {
-        description = ''A MIME mail parsing and generation library.'';
-        homepage = ''http://supmua.org'';
-        longDescription = ''    RMail is a lightweight mail library containing various utility classes and
-    modules that allow ruby scripts to parse, modify, and generate MIME mail
-    messages.
-'';
-      };
-      name = ''rmail-sup-1.0.1'';
-      requiredGems = [  ];
-      sha256 = ''1xswk101s560lxqaax3plqh8vjx7jjspnggdwb3q80m358f92q9g'';
-    };
-    rspec_2_11_0 = {
+    rspec_2_14_1 = {
       basename = ''rspec'';
       meta = {
-        description = ''rspec-2.11.0'';
+        description = ''rspec-2.14.1'';
         homepage = ''http://github.com/rspec'';
         longDescription = ''BDD for Ruby'';
       };
-      name = ''rspec-2.11.0'';
-      requiredGems = [ g.rspec_core_2_11_1 g.rspec_expectations_2_11_3 g.rspec_mocks_2_11_3 ];
-      sha256 = ''0k55akvs2xhs57kz81g37s4v56vybq46sjs7f8wpybrwxryg1vxs'';
+      name = ''rspec-2.14.1'';
+      requiredGems = [ g.rspec_core_2_14_8 g.rspec_expectations_2_14_5 g.rspec_mocks_2_14_6 ];
+      sha256 = ''134y4wzk1prninb5a0bhxgm30kqfzl8dg06af4js5ylnhv2wd7sg'';
+    };
+    rspec_core_2_14_5 = {
+      basename = ''rspec_core'';
+      meta = {
+        description = ''rspec-core-2.14.5'';
+        homepage = ''http://github.com/rspec/rspec-core'';
+        longDescription = ''BDD for Ruby. RSpec runner and example groups.'';
+      };
+      name = ''rspec-core-2.14.5'';
+      requiredGems = [  ];
+      sha256 = ''18zk2y5agzj4ps16hh1jlcqmyj0bmlcr24bl0m8gyhwf0gk1xmcr'';
     };
-    rspec_core_2_11_1 = {
+    rspec_core_2_14_8 = {
       basename = ''rspec_core'';
       meta = {
-        description = ''rspec-core-2.11.1'';
+        description = ''rspec-core-2.14.8'';
         homepage = ''http://github.com/rspec/rspec-core'';
         longDescription = ''BDD for Ruby. RSpec runner and example groups.'';
       };
-      name = ''rspec-core-2.11.1'';
+      name = ''rspec-core-2.14.8'';
       requiredGems = [  ];
-      sha256 = ''035ki561pryy05y8cvv3mkihjwp9r2ychnazb7s33gl7q0l0jni4'';
+      sha256 = ''0psjy5kdlz3ph39br0m01w65i1ikagnqlg39f8p65jh5q7dz8hwc'';
     };
-    rspec_expectations_2_11_3 = {
+    rspec_expectations_2_14_3 = {
       basename = ''rspec_expectations'';
       meta = {
-        description = ''rspec-expectations-2.11.3'';
+        description = ''rspec-expectations-2.14.3'';
         homepage = ''http://github.com/rspec/rspec-expectations'';
         longDescription = ''rspec expectations (should[_not] and matchers)'';
       };
-      name = ''rspec-expectations-2.11.3'';
-      requiredGems = [ g.diff_lcs_1_1_3 ];
-      sha256 = ''0vqqw4hkaff6v6i6kinki4jxp9xv8b2nbmz91qa1yhjd3wr14ai5'';
+      name = ''rspec-expectations-2.14.3'';
+      requiredGems = [ g.diff_lcs_1_2_5 ];
+      sha256 = ''0gv5sqizmw0hdj1gl57mynp5i27kj4i0gpksrwwg9gazciq898n2'';
     };
-    rspec_mocks_2_11_3 = {
+    rspec_expectations_2_14_5 = {
+      basename = ''rspec_expectations'';
+      meta = {
+        description = ''rspec-expectations-2.14.5'';
+        homepage = ''http://github.com/rspec/rspec-expectations'';
+        longDescription = ''rspec expectations (should[_not] and matchers)'';
+      };
+      name = ''rspec-expectations-2.14.5'';
+      requiredGems = [ g.diff_lcs_1_2_5 ];
+      sha256 = ''1ni8kw8kjv76jvwjzi4jba00k3qzj9f8wd94vm6inz0jz3gwjqf9'';
+    };
+    rspec_mocks_2_14_3 = {
       basename = ''rspec_mocks'';
       meta = {
-        description = ''rspec-mocks-2.11.3'';
+        description = ''rspec-mocks-2.14.3'';
         homepage = ''http://github.com/rspec/rspec-mocks'';
         longDescription = ''RSpec's 'test double' framework, with support for stubbing and mocking'';
       };
-      name = ''rspec-mocks-2.11.3'';
+      name = ''rspec-mocks-2.14.3'';
       requiredGems = [  ];
-      sha256 = ''1rna3ii52rlhhca49zigk692hdcmz7qib42i4hhny478k04wx0qg'';
+      sha256 = ''1xfhjisvpmb212jhb3k4r1ji3rrlv509mphcf345ij5b75gaybzr'';
     };
-    ruby_hmac_0_4_0 = {
-      basename = ''ruby_hmac'';
+    rspec_mocks_2_14_6 = {
+      basename = ''rspec_mocks'';
       meta = {
-        description = ''This module provides common interface to HMAC functionality'';
-        homepage = ''http://ruby-hmac.rubyforge.org'';
-        longDescription = ''This module provides common interface to HMAC functionality. HMAC is a kind of "Message Authentication Code" (MAC) algorithm whose standard is documented in RFC2104. Namely, a MAC provides a way to check the integrity of information transmitted over or stored in an unreliable medium, based on a secret key.
-
-Originally written by Daiki Ueno. Converted to a RubyGem by Geoffrey Grosenbach'';
+        description = ''rspec-mocks-2.14.6'';
+        homepage = ''http://github.com/rspec/rspec-mocks'';
+        longDescription = ''RSpec's 'test double' framework, with support for stubbing and mocking'';
       };
-      name = ''ruby-hmac-0.4.0'';
+      name = ''rspec-mocks-2.14.6'';
       requiredGems = [  ];
-      sha256 = ''01zym41f8fqbmxfz8zv19627swi62ka3gp33bfbkc87v5k7mw954'';
-    };
-    rubyforge_2_0_4 = {
-      basename = ''rubyforge'';
-      meta = {
-        description = ''A script which automates a limited set of rubyforge operations'';
-        homepage = ''http://codeforpeople.rubyforge.org/rubyforge/'';
-        longDescription = ''A script which automates a limited set of rubyforge operations.
-
-* Run 'rubyforge help' for complete usage.
-* Setup: For first time users AND upgrades to 0.4.0:
-  * rubyforge setup (deletes your username and password, so run sparingly!)
-  * edit ~/.rubyforge/user-config.yml
-  * rubyforge config
-* For all rubyforge upgrades, run 'rubyforge config' to ensure you have latest.'';
-      };
-      name = ''rubyforge-2.0.4'';
-      requiredGems = [ g.json_pure_1_8_0 ];
-      sha256 = ''1wdaa4nzy39yzy848fa1rybi72qlyf9vhi1ra9wpx9rpi810fwh1'';
+      sha256 = ''1fwsmijd6w6cmqyh4ky2nq89jrpzh56hzmndx9wgkmdgfhfakv30'';
     };
     rubyzip_0_9_9 = {
       basename = ''rubyzip'';
@@ -2257,43 +1680,17 @@ Originally written by Daiki Ueno. Converted to a RubyGem by Geoffrey Grosenbach'
       requiredGems = [  ];
       sha256 = ''1khf6d903agnwd8965f5f8b353rzmfvygxp53z1199rqzw8h46q2'';
     };
-    rubyzip_1_1_0 = {
+    rubyzip_1_1_6 = {
       basename = ''rubyzip'';
       meta = {
         description = ''rubyzip is a ruby module for reading and writing zip files'';
         homepage = ''http://github.com/rubyzip/rubyzip'';
       };
-      name = ''rubyzip-1.1.0'';
+      name = ''rubyzip-1.1.6'';
       requiredGems = [  ];
-      sha256 = ''0kxpcs047fb52lz0imp6vl3hr5khqpk0jfbr2knfbp612ynzyzcl'';
+      sha256 = ''17ha7kmgcnhnxyfp9wgyrd2synp17v9g8j1pknhfd2v9x5g475m9'';
     };
-    safe_yaml_0_9_7 = {
-      basename = ''safe_yaml'';
-      meta = {
-        description = ''SameYAML provides an alternative implementation of YAML.load suitable for accepting user input in Ruby applications.'';
-        homepage = ''http://dtao.github.com/safe_yaml/'';
-        longDescription = ''Parse YAML safely, without that pesky arbitrary object deserialization vulnerability'';
-      };
-      name = ''safe_yaml-0.9.7'';
-      requiredGems = [  ];
-      sha256 = ''0y34vpak8gim18rq02rgd144jsvk5is4xni16wm3shbhivzqb4hk'';
-    };
-    sass_3_2_10 = {
-      basename = ''sass'';
-      meta = {
-        description = ''A powerful but elegant CSS compiler that makes CSS fun again.'';
-        homepage = ''http://sass-lang.com/'';
-        longDescription = ''      Sass makes CSS fun again. Sass is an extension of CSS3, adding
-      nested rules, variables, mixins, selector inheritance, and more.
-      It's translated to well-formatted, standard CSS using the
-      command line tool or a web-framework plugin.
-'';
-      };
-      name = ''sass-3.2.10'';
-      requiredGems = [  ];
-      sha256 = ''0anfff4hz8fz1wbimmp9vv4mjfl1swg7ww74j549788x41l4x283'';
-    };
-    sass_3_2_12 = {
+    sass_3_4_1 = {
       basename = ''sass'';
       meta = {
         description = ''A powerful but elegant CSS compiler that makes CSS fun again.'';
@@ -2304,31 +1701,20 @@ Originally written by Daiki Ueno. Converted to a RubyGem by Geoffrey Grosenbach'
       command line tool or a web-framework plugin.
 '';
       };
-      name = ''sass-3.2.12'';
+      name = ''sass-3.4.1'';
       requiredGems = [  ];
-      sha256 = ''074118ia17nx68i97mbkly2f08y57j52b2yfhdc3s02s4s5593f8'';
+      sha256 = ''0f997m7g6gcd4yaxxrf1nylk2x8ynf7w2l631sby51zfn21rfli4'';
     };
-    sass_rails_4_0_1 = {
-      basename = ''sass_rails'';
-      meta = {
-        description = ''Sass adapter for the Rails asset pipeline.'';
-        homepage = ''https://github.com/rails/sass-rails'';
-        longDescription = ''Sass adapter for the Rails asset pipeline.'';
-      };
-      name = ''sass-rails-4.0.1'';
-      requiredGems = [ g.sass_3_2_12 g.railties_4_0_0 g.sprockets_rails_2_0_1 ];
-      sha256 = ''01sacnipgvl7ad39zzbr6iip6jja7blxfbpjg2dnm6w8gi6smxh1'';
-    };
-    selenium_webdriver_2_35_1 = {
+    selenium_webdriver_2_42_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.35.1'';
-      requiredGems = [ g.multi_json_1_7_9 g.rubyzip_0_9_9 g.childprocess_0_3_9 g.websocket_1_0_7 ];
-      sha256 = ''0251nbh6kbb96dv21n6fgbnw31p5gqr7anvhl8phrar5ylircqj6'';
+      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'';
     };
     servolux_0_10_0 = {
       basename = ''servolux'';
@@ -2352,81 +1738,51 @@ interpreters.'';
         longDescription = ''Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort.'';
       };
       name = ''sinatra-1.3.2'';
-      requiredGems = [ g.rack_1_5_2 g.rack_protection_1_5_0 g.tilt_1_4_1 ];
+      requiredGems = [ g.rack_1_5_2 g.rack_protection_1_5_3 g.tilt_1_4_1 ];
       sha256 = ''05blf915zpiwyz7agcn9rwdmddwxz0z4l3gd4qlqmrgd2vkw4sxc'';
     };
-    sinatra_1_4_4 = {
+    sinatra_1_4_5 = {
       basename = ''sinatra'';
       meta = {
         description = ''Classy web-development dressed in a DSL'';
         homepage = ''http://www.sinatrarb.com/'';
         longDescription = ''Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort.'';
       };
-      name = ''sinatra-1.4.4'';
-      requiredGems = [ g.rack_1_5_2 g.tilt_1_4_1 g.rack_protection_1_5_1 ];
-      sha256 = ''12iy0f92d3zyk4759flgcracrbzc3x6cilpgdkzhzgjrsm9aa5hs'';
-    };
-    slop_3_4_6 = {
-      basename = ''slop'';
-      meta = {
-        description = ''Simple Lightweight Option Parsing'';
-        homepage = ''http://github.com/injekt/slop'';
-        longDescription = ''A simple DSL for gathering options and parsing the command line'';
-      };
-      name = ''slop-3.4.6'';
-      requiredGems = [  ];
-      sha256 = ''0fdp3nkljjs2d5yhgjzcqi0f6xq67byfbrayg5aj7r76rsw0hmal'';
+      name = ''sinatra-1.4.5'';
+      requiredGems = [ g.rack_1_5_2 g.tilt_1_4_1 g.rack_protection_1_5_3 ];
+      sha256 = ''0qyna3wzlnvsz69d21lxcm3ixq7db08mi08l0a88011qi4qq701s'';
     };
-    slop_3_4_7 = {
+    slop_3_6_0 = {
       basename = ''slop'';
       meta = {
         description = ''Simple Lightweight Option Parsing'';
         homepage = ''http://github.com/leejarvis/slop'';
         longDescription = ''A simple DSL for gathering options and parsing the command line'';
       };
-      name = ''slop-3.4.7'';
+      name = ''slop-3.6.0'';
       requiredGems = [  ];
-      sha256 = ''1x3dwljqvkzj314rwn2bxgim9xvgwnfipzg5g0kwwxfn90fpv2sn'';
+      sha256 = ''00w8g3j7k7kl8ri2cf1m58ckxk8rn350gp4chfscmgv6pq1spk3n'';
     };
-    sprockets_2_10_0 = {
+    sprockets_2_12_1 = {
       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.10.0'';
-      requiredGems = [ g.hike_1_2_3 g.multi_json_1_7_9 g.rack_1_5_2 g.tilt_1_4_1 ];
-      sha256 = ''1z0kiaymvqm07wqqy479vd8a60ggr3f3520b4splljbn2055fn3s'';
+      name = ''sprockets-2.12.1'';
+      requiredGems = [ g.hike_1_2_3 g.multi_json_1_10_1 g.rack_1_5_2 g.tilt_1_4_1 ];
+      sha256 = ''0fi5f32i3bj739qb0zn050k5jjkfqzkn8fjz5dfjwhmh9hl5pb1y'';
     };
-    sprockets_rails_2_0_0 = {
+    sprockets_rails_2_1_3 = {
       basename = ''sprockets_rails'';
       meta = {
         description = ''Sprockets Rails integration'';
         homepage = ''https://github.com/rails/sprockets-rails'';
       };
-      name = ''sprockets-rails-2.0.0'';
-      requiredGems = [ g.sprockets_2_10_0 g.actionpack_4_0_0 g.activesupport_4_0_0 ];
-      sha256 = ''068w0ly7x1vciy4j6mwgsnz6a983pld4rzk1fpvfsmkdqcizb20x'';
-    };
-    sprockets_rails_2_0_1 = {
-      basename = ''sprockets_rails'';
-      meta = {
-        description = ''Sprockets Rails integration'';
-        homepage = ''https://github.com/rails/sprockets-rails'';
-      };
-      name = ''sprockets-rails-2.0.1'';
-      requiredGems = [ g.sprockets_2_10_0 g.actionpack_4_0_0 g.activesupport_4_0_0 ];
-      sha256 = ''170llk1qsvzhhslmasqk4hp5lrv9ibwy44q32yg6kn9s7sh0c1wy'';
-    };
-    syntax_1_0_0 = {
-      basename = ''syntax'';
-      meta = {
-        description = ''Syntax is Ruby library for performing simple syntax highlighting.'';
-      };
-      name = ''syntax-1.0.0'';
-      requiredGems = [  ];
-      sha256 = ''1z93kkhdq55vq3fg9wljhm591cj59qis58dk97l09b8bfxi2ypk0'';
+      name = ''sprockets-rails-2.1.3'';
+      requiredGems = [ g.sprockets_2_12_1 g.actionpack_4_1_5 g.activesupport_4_1_5 ];
+      sha256 = ''12kdy9vjn3ygrxhn9jxxx0rvsq601vayrkgbr3rqcpyhqhl4s4wy'';
     };
     syslog_protocol_0_9_2 = {
       basename = ''syslog_protocol'';
@@ -2439,16 +1795,16 @@ interpreters.'';
       requiredGems = [  ];
       sha256 = ''1yb2cmbyj0zmb2yhkgnmghcngrkhcxs4g1svcmgfj90l2hs23nmc'';
     };
-    systemu_2_5_2 = {
+    systemu_2_6_4 = {
       basename = ''systemu'';
       meta = {
         description = ''systemu'';
         homepage = ''https://github.com/ahoward/systemu'';
-        longDescription = ''description: systemu kicks the ass'';
+        longDescription = ''universal capture of stdout and stderr and handling of child process pid for windows, *nix, etc.'';
       };
-      name = ''systemu-2.5.2'';
+      name = ''systemu-2.6.4'';
       requiredGems = [  ];
-      sha256 = ''0h834ajdg9w4xrijp31fn98pjfj08gi08xjvp5xh3i6hz9a25fhr'';
+      sha256 = ''16k94azpsy1r958r6ysk4ksnpp54rqmh5hyamad9kwc3lk83i32z'';
     };
     taskjuggler_3_5_0 = {
       basename = ''taskjuggler'';
@@ -2467,84 +1823,73 @@ management.
 '';
       };
       name = ''taskjuggler-3.5.0'';
-      requiredGems = [ g.mail_2_5_4 g.term_ansicolor_1_2_2 ];
+      requiredGems = [ g.mail_2_6_1 g.term_ansicolor_1_3_0 ];
       sha256 = ''0r84rlc7a6w7p9nc9mgycbs5h0hq0kzscjq7zj3296xyf0afiwj2'';
     };
-    term_ansicolor_1_2_2 = {
+    term_ansicolor_1_3_0 = {
       basename = ''term_ansicolor'';
       meta = {
         description = ''Ruby library that colors strings using ANSI escape sequences'';
         homepage = ''http://flori.github.com/term-ansicolor'';
         longDescription = ''This library uses ANSI escape sequences to control the attributes of terminal output'';
       };
-      name = ''term-ansicolor-1.2.2'';
-      requiredGems = [ g.tins_0_9_0 ];
-      sha256 = ''1b41q1q6mqcgzq9fhzhmjvfg5sfs5v7gkb8z57r4hajcp89lflxr'';
+      name = ''term-ansicolor-1.3.0'';
+      requiredGems = [ g.tins_1_3_2 ];
+      sha256 = ''1a2gw7gmpmx57sdpyhjwl0zn4bqp7jyjz7aslpvvphd075layp4b'';
     };
-    terminal_notifier_1_5_1 = {
+    terminal_notifier_1_6_1 = {
       basename = ''terminal_notifier'';
       meta = {
         description = ''Send User Notifications on Mac OS X 10.8 or higher.'';
         homepage = ''https://github.com/alloy/terminal-notifier'';
       };
-      name = ''terminal-notifier-1.5.1'';
+      name = ''terminal-notifier-1.6.1'';
       requiredGems = [  ];
-      sha256 = ''1vvdfj83bsa2rglwbqmk11yghivsywl6ka76zb51c3xm7gdd768k'';
+      sha256 = ''0j14sblviiypzc9vb508ldd78winba4vhnm9nhg3zpq07p3528g7'';
     };
-    text_1_2_3 = {
+    text_1_3_0 = {
       basename = ''text'';
       meta = {
         description = ''A collection of text algorithms'';
         homepage = ''http://github.com/threedaymonk/text'';
         longDescription = ''A collection of text algorithms: Levenshtein, Soundex, Metaphone, Double Metaphone, Porter Stemming'';
       };
-      name = ''text-1.2.3'';
+      name = ''text-1.3.0'';
       requiredGems = [  ];
-      sha256 = ''14p1b3m7sxjs4ckjnd1whz82hkv0cj08j3rpkvcbavwbm07zpsd0'';
+      sha256 = ''1bfn0rm2a7gpsxplx3dii3a7q16hi7idsqp54fh92b3j9sqgidj7'';
     };
-    thin_1_5_1 = {
+    thin_1_6_2 = {
       basename = ''thin'';
       meta = {
         description = ''A thin and fast web server'';
         homepage = ''http://code.macournoyer.com/thin/'';
         longDescription = ''A thin and fast web server'';
       };
-      name = ''thin-1.5.1'';
+      name = ''thin-1.6.2'';
       requiredGems = [ g.rack_1_5_2 g.eventmachine_1_0_3 g.daemons_1_1_9 ];
-      sha256 = ''0hrq9m3hb6pm8yrqshhg0gafkphdpvwcqmr7k722kgdisp3w91ga'';
+      sha256 = ''0v90rnnai8sc40c02dxj9aawj2mi1mhjnmi4ws0rg4yrkc6fxvmq'';
     };
-    thor_0_18_1 = {
+    thor_0_19_1 = {
       basename = ''thor'';
       meta = {
-        description = ''A scripting framework that replaces rake, sake and rubigen'';
+        description = ''Thor is a toolkit for building powerful command-line interfaces.'';
         homepage = ''http://whatisthor.com/'';
-        longDescription = ''A scripting framework that replaces rake, sake and rubigen'';
+        longDescription = ''Thor is a toolkit for building powerful command-line interfaces.'';
       };
-      name = ''thor-0.18.1'';
+      name = ''thor-0.19.1'';
       requiredGems = [  ];
-      sha256 = ''0d1g37j6sc7fkidf8rqlm3wh9zgyg3g7y8h2x1y34hmil5ywa8c3'';
+      sha256 = ''08p5gx18yrbnwc6xc0mxvsfaxzgy2y9i78xq7ds0qmdm67q39y4z'';
     };
-    thread_safe_0_1_2 = {
+    thread_safe_0_3_4 = {
       basename = ''thread_safe'';
       meta = {
         description = ''A collection of data structures and utilities to make thread-safe programming in Ruby easier'';
         homepage = ''https://github.com/headius/thread_safe'';
         longDescription = ''Thread-safe collections and utilities for Ruby'';
       };
-      name = ''thread_safe-0.1.2'';
-      requiredGems = [ g.atomic_1_1_13 ];
-      sha256 = ''1bxyh5l11inadbk7pjyz5s98g24qj8xavh55bc56nrzj51y9aavy'';
-    };
-    thread_safe_0_1_3 = {
-      basename = ''thread_safe'';
-      meta = {
-        description = ''A collection of data structures and utilities to make thread-safe programming in Ruby easier'';
-        homepage = ''https://github.com/headius/thread_safe'';
-        longDescription = ''Thread-safe collections and utilities for Ruby'';
-      };
-      name = ''thread_safe-0.1.3'';
-      requiredGems = [ g.atomic_1_1_14 ];
-      sha256 = ''0f2w62x5nx95d2c2lrn9v4g60xhykf8zw7jaddkrgal913dzifgq'';
+      name = ''thread_safe-0.3.4'';
+      requiredGems = [  ];
+      sha256 = ''1cil2zcdzqkyr8zrwhlg7gywryg36j4mxlxw0h0x0j0wjym5nc8n'';
     };
     tilt_1_4_1 = {
       basename = ''tilt'';
@@ -2557,38 +1902,38 @@ management.
       requiredGems = [  ];
       sha256 = ''00sr3yy7sbqaq7cb2d2kpycajxqf1b1wr1yy33z4bnzmqii0b0ir'';
     };
-    timers_1_1_0 = {
-      basename = ''timers'';
+    tins_0_13_2 = {
+      basename = ''tins'';
       meta = {
-        description = ''Schedule procs to run after a certain time, or at periodic intervals, using any API that accepts a timeout'';
-        homepage = ''https://github.com/tarcieri/timers'';
-        longDescription = ''Pure Ruby one-shot and periodic timers'';
+        description = ''Useful stuff.'';
+        homepage = ''http://flori.github.com/tins'';
+        longDescription = ''All the stuff that isn't good/big enough for a real library.'';
       };
-      name = ''timers-1.1.0'';
+      name = ''tins-0.13.2'';
       requiredGems = [  ];
-      sha256 = ''0x3vnkxy3bg9f6v1nhkfqkajr19glrzkmqd5a1wy8hrylx8rdfrv'';
+      sha256 = ''1ygkm4ava7x6ap61qz6pn79193g6g29248fa04mwknsz6acfjs2y'';
     };
-    tins_0_9_0 = {
+    tins_1_3_2 = {
       basename = ''tins'';
       meta = {
         description = ''Useful stuff.'';
         homepage = ''http://flori.github.com/tins'';
         longDescription = ''All the stuff that isn't good/big enough for a real library.'';
       };
-      name = ''tins-0.9.0'';
+      name = ''tins-1.3.2'';
       requiredGems = [  ];
-      sha256 = ''17147yzxhbcby9ycswai6sgc9cxdlbfa897amjsimkyqv1lh9pbc'';
+      sha256 = ''1i27zj1bhmgq19f3i5i08njprfnlv3yi5frm8ax6w0b342p6v8ly'';
     };
-    travis_1_5_3 = {
+    travis_1_7_1 = {
       basename = ''travis'';
       meta = {
         description = ''Travis CI client'';
-        homepage = ''https://github.com/travis-ci/travis'';
+        homepage = ''https://github.com/travis-ci/travis.rb'';
         longDescription = ''CLI and Ruby client library for Travis CI'';
       };
-      name = ''travis-1.5.3'';
-      requiredGems = [ g.faraday_0_8_8 g.faraday_middleware_0_9_0 g.highline_1_6_19 g.netrc_0_7_7 g.backports_3_3_3 g.gh_0_12_0 g.launchy_2_3_0 g.pry_0_9_12_2 g.typhoeus_0_6_5 g.pusher_client_0_3_1 ];
-      sha256 = ''052kqfd0280ar9ci9vplihbc4a69l06m8chfrriygvjxc14npx97'';
+      name = ''travis-1.7.1'';
+      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'';
@@ -2597,7 +1942,7 @@ management.
         homepage = ''https://github.com/cjheath/treetop'';
       };
       name = ''treetop-1.4.15'';
-      requiredGems = [ g.polyglot_0_3_3 g.polyglot_0_3_3 ];
+      requiredGems = [ g.polyglot_0_3_5 g.polyglot_0_3_5 ];
       sha256 = ''1zqj5y0mvfvyz11nhsb4d5ch0i0rfcyj64qx19mw4qhg3hh8z9pz'';
     };
     trollop_2_0 = {
@@ -2615,51 +1960,29 @@ specify.'';
       requiredGems = [  ];
       sha256 = ''0iz5k7ax7a5jm9x6p81k6f4mgp48wxxb0j55ypnwxnznih8fsghz'';
     };
-    twitter_bootstrap_rails_2_2_8 = {
-      basename = ''twitter_bootstrap_rails'';
-      meta = {
-        description = ''Bootstrap CSS toolkit for Rails 3.1 Asset Pipeline'';
-        homepage = ''https://github.com/seyhunak/twitter-bootstrap-rails'';
-        longDescription = ''twitter-bootstrap-rails project integrates Bootstrap CSS toolkit for Rails 3.1 Asset Pipeline'';
-      };
-      name = ''twitter-bootstrap-rails-2.2.8'';
-      requiredGems = [ g.railties_4_0_0 g.actionpack_4_0_0 g.execjs_2_0_2 g.rails_4_0_0 ];
-      sha256 = ''06n836l2kj5ld7w6b1pb5q423mhqnahf4phk5ai5vl927p4g3bgy'';
-    };
-    typhoeus_0_6_5 = {
+    typhoeus_0_6_9 = {
       basename = ''typhoeus'';
       meta = {
         description = ''Parallel HTTP library on top of libcurl multi.'';
         homepage = ''https://github.com/typhoeus/typhoeus'';
         longDescription = ''Like a modern code version of the mythical beast with 100 serpent heads, Typhoeus runs HTTP requests in parallel while cleanly encapsulating handling logic.'';
       };
-      name = ''typhoeus-0.6.5'';
-      requiredGems = [ g.ethon_0_6_1 ];
-      sha256 = ''13xwy86iv98ypagrb6d95k1xf6yllnfqnh4ipfqix87npirjaxji'';
+      name = ''typhoeus-0.6.9'';
+      requiredGems = [ g.ethon_0_7_1 ];
+      sha256 = ''1j4l2zwx821hzsfqskcq47xpk6b7yzl30mhzmdrfrsrhsigmayar'';
     };
-    tzinfo_0_3_37 = {
+    tzinfo_1_2_2 = {
       basename = ''tzinfo'';
       meta = {
-        description = ''Daylight-savings aware timezone library'';
-        homepage = ''http://tzinfo.rubyforge.org/'';
-        longDescription = ''TZInfo is a Ruby library that uses the standard tz (Olson) database to provide daylight savings aware transformations between times in different time zones.'';
-      };
-      name = ''tzinfo-0.3.37'';
-      requiredGems = [  ];
-      sha256 = ''0pi2vabsg73h6z4wfwyd27k63issp2qp1nh0vd74rdk740gmb3kc'';
-    };
-    tzinfo_0_3_38 = {
-      basename = ''tzinfo'';
-      meta = {
-        description = ''Daylight-savings aware timezone library'';
+        description = ''Daylight savings aware timezone library'';
         homepage = ''http://tzinfo.github.io'';
-        longDescription = ''TZInfo is a Ruby library that uses the standard tz (Olson) database to provide daylight savings aware transformations between times in different time zones.'';
+        longDescription = ''TZInfo provides daylight savings aware transformations between times in different time zones.'';
       };
-      name = ''tzinfo-0.3.38'';
-      requiredGems = [  ];
-      sha256 = ''1s339ravgk0rqm5dhv1l0yi81sczjvdiryn8ihi2czkb0md55j68'';
+      name = ''tzinfo-1.2.2'';
+      requiredGems = [ g.thread_safe_0_3_4 ];
+      sha256 = ''1c01p3kg6xvy1cgjnzdfq45fggbwish8krd0h864jvbpybyx7cgx'';
     };
-    unf_0_1_2 = {
+    unf_0_1_4 = {
       basename = ''unf'';
       meta = {
         description = ''A wrapper library to bring Unicode Normalization Form support to Ruby/JRuby'';
@@ -2668,9 +1991,9 @@ specify.'';
 to Ruby/JRuby.
 '';
       };
-      name = ''unf-0.1.2'';
+      name = ''unf-0.1.4'';
       requiredGems = [ g.unf_ext_0_0_6 ];
-      sha256 = ''1g6agdd14yylawwd9ifgcpxwfyiydqj9l7cq6ipypj70v1l46i1s'';
+      sha256 = ''0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9'';
     };
     unf_ext_0_0_6 = {
       basename = ''unf_ext'';
@@ -2683,17 +2006,6 @@ to Ruby/JRuby.
       requiredGems = [  ];
       sha256 = ''07zbmkzcid6pzdqgla3456ipfdka7j1v4hsx1iaa8rbnllqbmkdg'';
     };
-    unicode_0_4_4 = {
-      basename = ''unicode'';
-      meta = {
-        description = ''Unicode normalization library.'';
-        homepage = ''http://www.yoshidam.net/Ruby.html#unicode'';
-        longDescription = ''Unicode normalization library.'';
-      };
-      name = ''unicode-0.4.4'';
-      requiredGems = [  ];
-      sha256 = ''0la9dyxj7pr57g5727gj1h5c6h5kpbjdjpiv2vqi5gw5iglg0yqi'';
-    };
     uuid_2_3_7 = {
       basename = ''uuid'';
       meta = {
@@ -2704,31 +2016,18 @@ to Ruby/JRuby.
 '';
       };
       name = ''uuid-2.3.7'';
-      requiredGems = [ g.macaddr_1_6_1 ];
+      requiredGems = [ g.macaddr_1_7_1 ];
       sha256 = ''04q10an3v40zwjihvdwm23fw6vl39fbkhdiwfw78a51ym9airnlp'';
     };
-    uuidtools_2_1_4 = {
-      basename = ''uuidtools'';
+    webrick_1_3_1 = {
+      basename = ''webrick'';
       meta = {
-        description = ''UUID generator'';
-        homepage = ''http://uuidtools.rubyforge.org/'';
-        longDescription = ''A simple universally unique ID generation library.
-'';
+        description = ''WEBrick is an HTTP server toolkit that can be configured as an HTTPS server,'';
+        homepage = ''http://github.com/nahi/webrick'';
       };
-      name = ''uuidtools-2.1.4'';
+      name = ''webrick-1.3.1'';
       requiredGems = [  ];
-      sha256 = ''1w0bhnkp5515f3yx5fakfrfkawxjpb4fjm1r2c6lk691xlr696s3'';
-    };
-    vegas_0_1_11 = {
-      basename = ''vegas'';
-      meta = {
-        description = ''Vegas aims to solve the simple problem of creating executable versions of Sinatra/Rack apps.'';
-        homepage = ''http://code.quirkey.com/vegas'';
-        longDescription = ''Vegas aims to solve the simple problem of creating executable versions of Sinatra/Rack apps. It includes a class Vegas::Runner that wraps Rack/Sinatra applications and provides a simple command line interface and launching mechanism.'';
-      };
-      name = ''vegas-0.1.11'';
-      requiredGems = [ g.rack_1_5_2 ];
-      sha256 = ''0kzv0v1zb8vvm188q4pqwahb6468bmiamn6wpsbiq6r5i69s1bs5'';
+      sha256 = ''0s42mxihcl2bx0h9q0v2syl70qndydfkl39a06h9il17p895ya8g'';
     };
     webrobots_0_1_1 = {
       basename = ''webrobots'';
@@ -2753,6 +2052,17 @@ to Ruby/JRuby.
       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'';
+    };
     xapian_full_1_2_3 = {
       basename = ''xapian_full'';
       meta = {
@@ -2763,35 +2073,25 @@ to Ruby/JRuby.
       requiredGems = [  ];
       sha256 = ''02z0wsir38jsp5d6sqrkgv5prk8s6sdf6g2h718j2374kpnkyrxv'';
     };
-    xapian_ruby_1_2_15_1 = {
+    xapian_ruby_1_2_17 = {
       basename = ''xapian_ruby'';
       meta = {
         description = ''xapian libraries and ruby bindings'';
         homepage = ''https://github.com/garaio/xapian-ruby'';
       };
-      name = ''xapian-ruby-1.2.15.1'';
+      name = ''xapian-ruby-1.2.17'';
       requiredGems = [  ];
-      sha256 = ''02v3l931246asbcivkr4j0x99pl4i4fjvfsr8ga8v6lkvz0ls1xp'';
+      sha256 = ''1vhqykr0b877pb8x5n3v4fb4znm92mqhijinss7mvqzfimwfbxfg'';
     };
-    xml_simple_1_1_1 = {
+    xml_simple_1_1_2 = {
       basename = ''xml_simple'';
       meta = {
         description = ''A simple API for XML processing.'';
-        homepage = ''http://xml-simple.rubyforge.org'';
-      };
-      name = ''xml-simple-1.1.1'';
-      requiredGems = [  ];
-      sha256 = ''0zlwz8kvpm45m227aazg369fapbqyhvd5v9aga8cvxyhqnq0b87i'';
-    };
-    yajl_ruby_1_1_0 = {
-      basename = ''yajl_ruby'';
-      meta = {
-        description = ''Ruby C bindings to the excellent Yajl JSON stream-based parser library.'';
-        homepage = ''http://github.com/brianmario/yajl-ruby'';
+        homepage = ''https://github.com/maik/xml-simple'';
       };
-      name = ''yajl-ruby-1.1.0'';
+      name = ''xml-simple-1.1.2'';
       requiredGems = [  ];
-      sha256 = ''0sj46j47icb12hdhcfh76rnvddyiic5ifqzkh3kla1vcr505kf4m'';
+      sha256 = ''0ni8cbkj7l2k5pc4fs2jzp1ymxy4xqa2jc681l4y9iy9chrayddb'';
     };
   };
 }
diff --git a/pkgs/development/interpreters/ruby/patches.nix b/pkgs/development/interpreters/ruby/patches.nix
index 10cbf1ecfe56..9d694eac1e42 100644
--- a/pkgs/development/interpreters/ruby/patches.nix
+++ b/pkgs/development/interpreters/ruby/patches.nix
@@ -1,6 +1,6 @@
 { fetchurl, writeScript, ruby, ncurses, sqlite, libxml2, libxslt, libffi
 , zlib, libuuid, gems, jdk, python, stdenv, libiconvOrEmpty, imagemagick
-, pkgconfig }:
+, pkgconfig, libiconv }:
 
 let
 
@@ -80,9 +80,10 @@ in
   };
 
   nokogiri = {
+    buildInputs = [ libxml2 ];
     buildFlags =
       [ "--with-xml2-dir=${libxml2} --with-xml2-include=${libxml2}/include/libxml2"
-        "--with-xslt-dir=${libxslt}"
+        "--with-xslt-dir=${libxslt} --with-iconv-dir=${libiconv} --use-system-libraries"
       ];
   };
 
diff --git a/pkgs/development/interpreters/self/default.nix b/pkgs/development/interpreters/self/default.nix
new file mode 100644
index 000000000000..98e1edee3879
--- /dev/null
+++ b/pkgs/development/interpreters/self/default.nix
@@ -0,0 +1,44 @@
+{ fetchurl, fetchgit, stdenv, xlibs, gcc44, makeWrapper, ncurses, cmake }:
+
+stdenv.mkDerivation rec {
+  # The Self wrapper stores source in $XDG_DATA_HOME/self or ~/.local/share/self 
+  # so that it can be written to when using the Self transposer. Running 'Self'
+  # after installation runs without an image. You can then build a Self image with:
+  #   $ cd ~/.local/share/self/objects
+  #   $ Self 
+  #   > 'worldBuilder.self' _RunScript
+  #
+  # This image can later be started with:
+  #   $ Self -s myimage.snap
+  #
+  version = "4.5.0";
+  name = "self-${version}";
+
+  src = fetchgit {
+    url    = "https://github.com/russellallen/self";
+    rev    = "d16bcaad3c5092dae81ad0b16d503f2a53b8ef86";
+    sha256 = "966025b71542e44fc830b951f404f5721ad410ed24f7236fd0cd820ea0fc5731";
+  };
+
+  # gcc 4.6 and above causes crashes on Self startup but gcc 4.4 works.
+  buildInputs = [ gcc44 ncurses xlibs.libX11 xlibs.libXext makeWrapper cmake ];
+
+  selfWrapper = ./self;
+
+  installPhase = ''
+    mkdir -p "$out"/bin
+    cp ./vm/Self "$out"/bin/Self.wrapped
+    mkdir -p "$out"/share/self
+    cp -r ../objects "$out"/share/self/
+    makeWrapper $selfWrapper $out/bin/Self \
+      --set SELF_ROOT "$out"
+  '';
+
+  meta = {
+    description = "A prototype-based dynamic object-oriented programming language, environment, and virtual machine";
+    homepage = "http://selflanguage.org/";
+    license = stdenv.lib.licenses.bsd3;
+    maintainer = [ stdenv.lib.maintainers.doublec ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/development/interpreters/self/self b/pkgs/development/interpreters/self/self
new file mode 100755
index 000000000000..d504682086b0
--- /dev/null
+++ b/pkgs/development/interpreters/self/self
@@ -0,0 +1,18 @@
+#! /usr/bin/env bash
+
+export SELF_HOME="$HOME/.local/share/self"
+if [ -n "$XDG_DATA_HOME" ]
+  then export SELF_HOME="$XDG_DATA_HOME/self"
+fi
+
+if [ ! -d $SELF_HOME ]; then
+  mkdir -p $SELF_HOME
+fi
+
+if [ ! -d $SELF_HOME/objects ]; then
+  mkdir -p $SELF_HOME/objects
+  cp -r $SELF_ROOT/share/self/objects/* $SELF_HOME/objects
+  chmod -R +w $SELF_HOME/objects
+fi
+
+exec $SELF_ROOT/bin/Self.wrapped "$@"
diff --git a/pkgs/development/libraries/SDL2_net/default.nix b/pkgs/development/libraries/SDL2_net/default.nix
new file mode 100644
index 000000000000..e41546512e94
--- /dev/null
+++ b/pkgs/development/libraries/SDL2_net/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, SDL2 }:
+
+stdenv.mkDerivation rec {
+  name = "SDL2_net-2.0.0";
+
+  src = fetchurl {
+    url = "http://www.libsdl.org/projects/SDL_net/release/${name}.tar.gz";
+    sha256 = "d715be30783cc99e541626da52079e308060b21d4f7b95f0224b1d06c1faacab";
+  };
+
+  propagatedBuildInputs = [SDL2];
+
+  postInstall = "ln -s $out/include/SDL2/SDL_net.h $out/include/";
+
+  meta = with stdenv.lib; {
+    description = "SDL multiplatform networking library";
+    homepage = https://www.libsdl.org/projects/SDL_net;
+    license = licenses.zlib;
+    maintainers = [ maintainers.MP2E ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/boehm-gc/default.nix b/pkgs/development/libraries/boehm-gc/default.nix
index 3b2670d988ae..cc047da2758c 100644
--- a/pkgs/development/libraries/boehm-gc/default.nix
+++ b/pkgs/development/libraries/boehm-gc/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "boehm-gc-7.2d";
+  name = "boehm-gc-7.2f";
 
   src = fetchurl {
-    url = http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.2d.tar.gz;
-    sha256 = "0phwa5driahnpn79zqff14w9yc8sn3599cxz91m78hqdcpl0mznr";
+    url = http://www.hboehm.info/gc/gc_source/gc-7.2f.tar.gz;
+    sha256 = "119x7p1cqw40mpwj80xfq879l9m1dkc7vbc1f3bz3kvkf8bf6p16";
   };
 
   configureFlags = "--enable-cplusplus";
diff --git a/pkgs/development/libraries/boost/1.44.nix b/pkgs/development/libraries/boost/1.44.nix
index b188586e84f0..c192acd23bde 100644
--- a/pkgs/development/libraries/boost/1.44.nix
+++ b/pkgs/development/libraries/boost/1.44.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "http://boost.org/";
-    description = "Boost C++ Library Collection";
+    description = "Collection of C++ libraries";
     license = "boost-license";
 
     maintainers = [ stdenv.lib.maintainers.simons ];
diff --git a/pkgs/development/libraries/boost/1.49.nix b/pkgs/development/libraries/boost/1.49.nix
index fca4249e963d..9e61683238fa 100644
--- a/pkgs/development/libraries/boost/1.49.nix
+++ b/pkgs/development/libraries/boost/1.49.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "http://boost.org/";
-    description = "Boost C++ Library Collection";
+    description = "Collection of C++ libraries";
     license = "boost-license";
 
     platforms = stdenv.lib.platforms.unix;
diff --git a/pkgs/development/libraries/boost/1.55.nix b/pkgs/development/libraries/boost/1.55.nix
index bf355f7169c6..1e9d2134d120 100644
--- a/pkgs/development/libraries/boost/1.55.nix
+++ b/pkgs/development/libraries/boost/1.55.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "http://boost.org/";
-    description = "Boost C++ Library Collection";
+    description = "Collection of C++ libraries";
     license = "boost-license";
 
     platforms = stdenv.lib.platforms.unix;
diff --git a/pkgs/development/libraries/ccrtp/default.nix b/pkgs/development/libraries/ccrtp/default.nix
index 2111e1b4a55a..3e75cb45a733 100644
--- a/pkgs/development/libraries/ccrtp/default.nix
+++ b/pkgs/development/libraries/ccrtp/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
   doCheck = true;
 
   meta = {
-    description = "GNU ccRTP, an implementation of the IETF real-time transport protocol (RTP)";
+    description = "An implementation of the IETF real-time transport protocol (RTP)";
     homepage = http://www.gnu.org/software/ccrtp/;
     license = stdenv.lib.licenses.gpl2;
     maintainers = with stdenv.lib.maintainers; [ marcweber ];
diff --git a/pkgs/development/libraries/celt/default.nix b/pkgs/development/libraries/celt/default.nix
index 28e51efbc4b7..ca25be905048 100644
--- a/pkgs/development/libraries/celt/default.nix
+++ b/pkgs/development/libraries/celt/default.nix
@@ -29,7 +29,7 @@ rec {
   phaseNames = ["doConfigure" "doMakeInstall"];
       
   meta = {
-    description = "CELT - low-delay audio codec";
+    description = "Low-delay audio codec";
     maintainers = with a.lib.maintainers;
     [
       raskin
diff --git a/pkgs/development/libraries/cfitsio/default.nix b/pkgs/development/libraries/cfitsio/default.nix
index 06f2deb3a7cd..54e5988eda6e 100644
--- a/pkgs/development/libraries/cfitsio/default.nix
+++ b/pkgs/development/libraries/cfitsio/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = http://heasarc.gsfc.nasa.gov/fitsio/;
 
-    description = "CFITSIO, a library for reading and writing FITS data files";
+    description = "Library for reading and writing FITS data files";
 
     longDescription =
       '' CFITSIO is a library of C and Fortran subroutines for reading and
diff --git a/pkgs/development/libraries/check/default.nix b/pkgs/development/libraries/check/default.nix
index 4e75cda0c239..a782ff61e287 100644
--- a/pkgs/development/libraries/check/default.nix
+++ b/pkgs/development/libraries/check/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   doCheck = false;
 
   meta = {
-    description = "Check, a unit testing framework for C";
+    description = "Unit testing framework for C";
 
     longDescription =
       '' Check is a unit testing framework for C.  It features a simple
diff --git a/pkgs/development/libraries/chipmunk/default.nix b/pkgs/development/libraries/chipmunk/default.nix
index d148c4d829a3..63c5959960ac 100644
--- a/pkgs/development/libraries/chipmunk/default.nix
+++ b/pkgs/development/libraries/chipmunk/default.nix
@@ -34,6 +34,6 @@ rec {
       
   name = "chipmunk-" + version;
   meta = {
-    description = "Chipmunk 2D physics engine";
+    description = "2D physics engine";
   };
 }
diff --git a/pkgs/development/libraries/chromaprint/default.nix b/pkgs/development/libraries/chromaprint/default.nix
index 40d41b633d26..010d2cb7ccc2 100644
--- a/pkgs/development/libraries/chromaprint/default.nix
+++ b/pkgs/development/libraries/chromaprint/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, fftw, boost }:
+{ stdenv, fetchurl, cmake, ffmpeg, boost }:
 
 stdenv.mkDerivation rec {
   name = "chromaprint-${version}";
@@ -9,11 +9,17 @@ stdenv.mkDerivation rec {
     sha256 = "04nd8xmy4kgnpfffj6hw893f80bwhp43i01zpmrinn3497mdf53b";
   };
 
-  buildInputs = [ cmake fftw boost ];
+  buildInputs = [ cmake ffmpeg boost ];
 
-  meta = {
+  cmakeFlags = [ "-DBUILD_EXAMPLES=ON" ];
+
+  postInstall = "installBin examples/fpcalc";
+
+  meta = with stdenv.lib; {
     homepage = "http://acoustid.org/chromaprint";
     description = "AcoustID audio fingerprinting library";
-    license = stdenv.lib.licenses.lgpl21Plus;
+    maintainers = with maintainers; [ emery ];
+    license = licenses.lgpl21Plus;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/cloog/default.nix b/pkgs/development/libraries/cloog/default.nix
index da4501285e12..7ea7e597d409 100644
--- a/pkgs/development/libraries/cloog/default.nix
+++ b/pkgs/development/libraries/cloog/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "CLooG, the Chunky Loop Generator";
+    description = "Library that generates loops for scanning polyhedra";
 
     longDescription = ''
       CLooG is a free software library to generate code for scanning
diff --git a/pkgs/development/libraries/clutter-gst/default.nix b/pkgs/development/libraries/clutter-gst/default.nix
index 59c64b0de9f7..c73aac074e7f 100644
--- a/pkgs/development/libraries/clutter-gst/default.nix
+++ b/pkgs/development/libraries/clutter-gst/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   postBuild = "rm -rf $out/share/gtk-doc";
 
   meta = {
-    description = "Clutter-GST";
+    description = "GStreamer bindings for clutter";
 
     homepage = http://www.clutter-project.org/;
 
diff --git a/pkgs/development/libraries/clutter/default.nix b/pkgs/development/libraries/clutter/default.nix
index 027b90d8e11c..67de04050afe 100644
--- a/pkgs/development/libraries/clutter/default.nix
+++ b/pkgs/development/libraries/clutter/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   #doCheck = true; # no tests possible without a display
 
   meta = {
-    description = "Clutter, a library for creating fast, dynamic graphical user interfaces";
+    description = "Library for creating fast, dynamic graphical user interfaces";
 
     longDescription =
       '' Clutter is free software library for creating fast, compelling,
diff --git a/pkgs/development/libraries/coprthr/default.nix b/pkgs/development/libraries/coprthr/default.nix
index 0e521aa19e8a..40be21131d20 100644
--- a/pkgs/development/libraries/coprthr/default.nix
+++ b/pkgs/development/libraries/coprthr/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url    = "https://github.com/browndeer/coprthr/archive/stable-${version}.zip";
-    sha256 = "042aykmcxhdpck0j6k5rcp6a0b5i377fv2nz96v1bpfhzxd1mjwg";
+    sha256 = "0ilx4v1ydppjnq1i0z5j0x4lmi29z39sappar7c0wqady0b5dpz9";
   };
 
   buildInputs =
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license     = stdenv.lib.licenses.lgpl3;
     platforms   = stdenv.lib.platforms.linux;
     maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+    broken = true;
   };
 }
diff --git a/pkgs/development/libraries/fox/default.nix b/pkgs/development/libraries/fox/default.nix
index 63acc14521c6..6d7d7a838790 100644
--- a/pkgs/development/libraries/fox/default.nix
+++ b/pkgs/development/libraries/fox/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "FOX is a C++ based class library for building Graphical User Interfaces";
+    description = "C++ based class library for building Graphical User Interfaces";
     longDescription = ''
         FOX stands for Free Objects for X.
         It is a C++ based class library for building Graphical User Interfaces.
diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix
index 4d400a6ea7da..9d62472c27e7 100644
--- a/pkgs/development/libraries/gettext/default.nix
+++ b/pkgs/development/libraries/gettext/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation (rec {
   };
 
   meta = {
-    description = "GNU gettext, a well integrated set of translation tools and documentation";
+    description = "Well integrated set of translation tools and documentation";
 
     longDescription = ''
       Usually, programs are written and documented in English, and use
diff --git a/pkgs/development/libraries/git2/default.nix b/pkgs/development/libraries/git2/default.nix
index abb782641dde..7cab317380e8 100644
--- a/pkgs/development/libraries/git2/default.nix
+++ b/pkgs/development/libraries/git2/default.nix
@@ -1,13 +1,13 @@
 {stdenv, fetchurl, cmake, zlib, python}:
 
 stdenv.mkDerivation rec {
-  version = "0.20.0";
+  version = "0.21.1";
   name = "libgit2-${version}";
 
   src = fetchurl {
     name = "${name}.tar.gz";
     url = "https://github.com/libgit2/libgit2/tarball/v${version}";
-    sha256 = "1iyncz8fqazw683dxjls3lf5pw3f5ma8kachkvjz7dsq57wxllbj";
+    sha256 = "0afbvcsryg7bsmbfj23l09b1xngkmqhf043njl8wm44qslrxibkz";
   };
 
   cmakeFlags = "-DTHREADSAFE=ON";
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index f4157cdd8d0a..839ba7cfa951 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -7,6 +7,8 @@
 
 with stdenv.lib;
 
+assert stdenv.gcc.gcc != null;
+
 # TODO:
 # * Add gio-module-fam
 #     Problem: cyclic dependency on gamin
@@ -49,7 +51,7 @@ stdenv.mkDerivation rec {
     sha256 = "1d98mbqjmc34s8095lkw1j1bwvnnkw9581yfvjaikjvfjsaz29qd";
   };
 
-  patches = optional stdenv.isDarwin ./darwin-compilation.patch;
+  patches = optional stdenv.isDarwin ./darwin-compilation.patch ++ optional doCheck ./skip-timer-test.patch;
 
   setupHook = ./setup-hook.sh;
 
@@ -105,7 +107,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with stdenv.lib; {
-    description = "GLib, a C library of programming buildings blocks";
+    description = "C library of programming buildings blocks";
     homepage    = http://www.gtk.org/;
     license     = licenses.lgpl2Plus;
     maintainers = with maintainers; [ lovek323 raskin urkud ];
diff --git a/pkgs/development/libraries/glib/skip-timer-test.patch b/pkgs/development/libraries/glib/skip-timer-test.patch
new file mode 100644
index 000000000000..942f3e7864c4
--- /dev/null
+++ b/pkgs/development/libraries/glib/skip-timer-test.patch
@@ -0,0 +1,17 @@
+Description: Skip test which performs some unreliable floating point comparisons
+Forwarded: https://bugzilla.gnome.org/show_bug.cgi?id=722604
+
+Index: b/glib/tests/timer.c
+===================================================================
+--- a/glib/tests/timer.c
++++ b/glib/tests/timer.c
+@@ -203,7 +203,7 @@
+ {
+   g_test_init (&argc, &argv, NULL);
+ 
+-  g_test_add_func ("/timer/basic", test_timer_basic);
++/*  g_test_add_func ("/timer/basic", test_timer_basic);*/
+-  g_test_add_func ("/timer/stop", test_timer_stop);
++/*  g_test_add_func ("/timer/stop", test_timer_stop);*/
+   g_test_add_func ("/timer/continue", test_timer_continue);
+   g_test_add_func ("/timer/reset", test_timer_reset);
diff --git a/pkgs/development/libraries/glibc/2.19/multi.nix b/pkgs/development/libraries/glibc/2.19/multi.nix
new file mode 100644
index 000000000000..ad4a34152b65
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.19/multi.nix
@@ -0,0 +1,31 @@
+{ runCommand, glibc, glibc32
+}:
+
+runCommand "${glibc.name}-multi"
+  { inherit glibc32;
+   glibc64 = glibc;
+  }
+  ''
+    mkdir -p $out
+    ln -s $glibc64/* $out/
+
+    rm $out/lib $out/lib64
+    mkdir -p $out/lib
+    ln -s $glibc64/lib/* $out/lib
+    ln -s $glibc32/lib $out/lib/32
+    ln -s lib $out/lib64
+
+    # fixing ldd RLTDLIST
+    rm $out/bin
+    cp -rs $glibc64/bin $out
+    chmod u+w $out/bin
+    rm $out/bin/ldd
+    sed -e "s|^RTLDLIST=.*$|RTLDLIST=\"$out/lib/ld-2.19.so $out/lib/32/ld-linux.so.2\"|g" \
+        $glibc64/bin/ldd > $out/bin/ldd
+    chmod 555 $out/bin/ldd
+
+    rm $out/include
+    cp -rs $glibc32/include $out
+    chmod -R u+w $out/include
+    cp -rsf $glibc64/include $out
+  ''
diff --git a/pkgs/development/libraries/glog/default.nix b/pkgs/development/libraries/glog/default.nix
index 098643ae70f0..d3f74f4043a9 100644
--- a/pkgs/development/libraries/glog/default.nix
+++ b/pkgs/development/libraries/glog/default.nix
@@ -11,6 +11,6 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://code.google.com/p/google-glog/;
     license = "BSD";
-    description = "The glog library implements application-level logging.";
+    description = "Library for application-level logging";
   };
 }
diff --git a/pkgs/development/libraries/gmp/4.3.2.nix b/pkgs/development/libraries/gmp/4.3.2.nix
index d0559c46795b..e9cfda032b17 100644
--- a/pkgs/development/libraries/gmp/4.3.2.nix
+++ b/pkgs/development/libraries/gmp/4.3.2.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = {
-    description = "GMP, the GNU multiple precision arithmetic library";
+    description = "GNU multiple precision arithmetic library";
 
     longDescription =
       '' GMP is a free library for arbitrary precision arithmetic, operating
diff --git a/pkgs/development/libraries/gmp/5.0.5.nix b/pkgs/development/libraries/gmp/5.0.5.nix
index c96c830e2f7f..5f3690f67a94 100644
--- a/pkgs/development/libraries/gmp/5.0.5.nix
+++ b/pkgs/development/libraries/gmp/5.0.5.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "GMP, the GNU multiple precision arithmetic library";
+    description = "GNU multiple precision arithmetic library";
 
     longDescription =
       '' GMP is a free library for arbitrary precision arithmetic, operating
diff --git a/pkgs/development/libraries/gmp/5.1.x.nix b/pkgs/development/libraries/gmp/5.1.x.nix
index 9e28334804bd..14a6d34d932b 100644
--- a/pkgs/development/libraries/gmp/5.1.x.nix
+++ b/pkgs/development/libraries/gmp/5.1.x.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation (rec {
 
   meta = with stdenv.lib; {
     homepage = "http://gmplib.org/";
-    description = "GMP, the GNU multiple precision arithmetic library";
+    description = "GNU multiple precision arithmetic library";
     license = licenses.gpl3Plus;
 
     longDescription =
diff --git a/pkgs/development/libraries/gss/default.nix b/pkgs/development/libraries/gss/default.nix
index 207b82486981..75ae4054592d 100644
--- a/pkgs/development/libraries/gss/default.nix
+++ b/pkgs/development/libraries/gss/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "GNU GSS Generic Security Service";
+    description = "Generic Security Service";
 
     longDescription =
       '' GSS is an implementation of the Generic Security Service Application
diff --git a/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix b/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix
index ff26e727e9f3..777f4a06313b 100644
--- a/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix
+++ b/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://gstreamer.freedesktop.org/modules/gnonlin.html";
-    description = "http://gstreamer.freedesktop.org/modules/gnonlin.html";
+    description = "Gstreamer Non-Linear Multimedia Editing Plugins";
     license = stdenv.lib.licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix
index f781c624cea1..b608f891533b 100644
--- a/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://gstreamer.freedesktop.org;
 
-    description = "GStreamer, a library for constructing graphs of media-handling components";
+    description = "Library for constructing graphs of media-handling components";
 
     longDescription = ''
       GStreamer is a library for constructing graphs of media-handling
diff --git a/pkgs/development/libraries/gtk+/2.x.nix b/pkgs/development/libraries/gtk+/2.x.nix
index 8812ea70c796..ff4d6ca67336 100644
--- a/pkgs/development/libraries/gtk+/2.x.nix
+++ b/pkgs/development/libraries/gtk+/2.x.nix
@@ -37,6 +37,13 @@ stdenv.mkDerivation rec {
 
   postInstall = "rm -rf $out/share/gtk-doc";
 
+  passthru = {
+    gtkExeEnvPostBuild = ''
+      rm $out/lib/gtk-2.0/2.10.0/immodules.cache
+      $out/bin/gtk-query-immodules-2.0 $out/lib/gtk-2.0/2.10.0/immodules/*.so > $out/lib/gtk-2.0/2.10.0/immodules.cache
+    ''; # workaround for bug of nix-mode for Emacs */ '';
+  };
+
   meta = with stdenv.lib; {
     description = "A multi-platform toolkit for creating graphical user interfaces";
     homepage    = http://www.gtk.org/;
diff --git a/pkgs/development/libraries/gtk+/3.x.nix b/pkgs/development/libraries/gtk+/3.x.nix
index 09221502e363..fa3501104764 100644
--- a/pkgs/development/libraries/gtk+/3.x.nix
+++ b/pkgs/development/libraries/gtk+/3.x.nix
@@ -38,6 +38,13 @@ stdenv.mkDerivation rec {
 
   postInstall = "rm -rf $out/share/gtk-doc";
 
+  passthru = {
+    gtkExeEnvPostBuild = ''
+      rm $out/lib/gtk-3.0/3.0.0/immodules.cache
+      $out/bin/gtk-query-immodules-3.0 $out/lib/gtk-3.0/3.0.0/immodules/*.so > $out/lib/gtk-3.0/3.0.0/immodules.cache
+    ''; # workaround for bug of nix-mode for Emacs */ '';
+  };
+
   meta = {
     description = "A multi-platform toolkit for creating graphical user interfaces";
 
diff --git a/pkgs/development/libraries/gtkimageview/default.nix b/pkgs/development/libraries/gtkimageview/default.nix
index 6905adcd71e3..b57c91c4455f 100644
--- a/pkgs/development/libraries/gtkimageview/default.nix
+++ b/pkgs/development/libraries/gtkimageview/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://trac.bjourne.webfactional.com/;
 
-    description = "The GtkImageView image viewer widget for GTK+";
+    description = "Image viewer widget for GTK+";
 
     longDescription =
       '' GtkImageView is a simple image viewer widget for GTK+.  Similar to
diff --git a/pkgs/development/libraries/gtkmathview/default.nix b/pkgs/development/libraries/gtkmathview/default.nix
index 2620d9cc120c..8a6914cfcd3b 100644
--- a/pkgs/development/libraries/gtkmathview/default.nix
+++ b/pkgs/development/libraries/gtkmathview/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = http://helm.cs.unibo.it/mml-widget/;
-    description = "GtkMathView is a C++ rendering engine for MathML documents";
+    description = "C++ rendering engine for MathML documents";
     license = stdenv.lib.licenses.lgpl3Plus;
     maintainers = [ stdenv.lib.maintainers.roconnor ];
   };
diff --git a/pkgs/development/libraries/gupnp/default.nix b/pkgs/development/libraries/gupnp/default.nix
index bae0639a61c9..e278980e1e12 100644
--- a/pkgs/development/libraries/gupnp/default.nix
+++ b/pkgs/development/libraries/gupnp/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.gupnp.org/;
-    description = "GUPnP is an implementation of the UPnP specification.";
+    description = "An implementation of the UPnP specification";
     license = stdenv.lib.licenses.gpl2;
     platforms = stdenv.lib.platforms.linux;
   };
diff --git a/pkgs/development/libraries/haskell/GLUtil/default.nix b/pkgs/development/libraries/haskell/GLUtil/default.nix
index ce4b41c93e0a..ee99ccc4fee6 100644
--- a/pkgs/development/libraries/haskell/GLUtil/default.nix
+++ b/pkgs/development/libraries/haskell/GLUtil/default.nix
@@ -1,15 +1,16 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, cpphs, JuicyPixels, linear, OpenGL, OpenGLRaw
+{ cabal, cpphs, filepath, JuicyPixels, linear, OpenGL, OpenGLRaw
 , transformers, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "GLUtil";
-  version = "0.8";
-  sha256 = "00r9gmwsb9gx6bcc012rhz0z0hj3my8k1i0yjnaw0jmlqswm45h8";
+  version = "0.8.1";
+  sha256 = "026w6rsgs0vmjx9fj4x3r93rifdyjygb83spcwmch31a7qng6l7w";
   buildDepends = [
-    cpphs JuicyPixels linear OpenGL OpenGLRaw transformers vector
+    cpphs filepath JuicyPixels linear OpenGL OpenGLRaw transformers
+    vector
   ];
   buildTools = [ cpphs ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/HTTP/4000.2.17.nix b/pkgs/development/libraries/haskell/HTTP/4000.2.18.nix
index ce90b9a9426a..0a5a16dfadc3 100644
--- a/pkgs/development/libraries/haskell/HTTP/4000.2.17.nix
+++ b/pkgs/development/libraries/haskell/HTTP/4000.2.18.nix
@@ -1,19 +1,19 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
 { cabal, caseInsensitive, conduit, conduitExtra, deepseq, httpdShed
-, httpTypes, HUnit, mtl, network, parsec, pureMD5, split
-, testFramework, testFrameworkHunit, wai, warp
+, httpTypes, HUnit, mtl, network, networkUri, parsec, pureMD5
+, split, testFramework, testFrameworkHunit, wai, warp
 }:
 
 cabal.mkDerivation (self: {
   pname = "HTTP";
-  version = "4000.2.17";
-  sha256 = "1701mgf1gw00nxd70kkr86yl80qxy63rpqky2g9m2nfr6y4y5b59";
-  buildDepends = [ mtl network parsec ];
+  version = "4000.2.18";
+  sha256 = "1jn0ikbdwhd32qjwpnsmpnmy0dxhmwfhf8851ifxik91fn7j5j4k";
+  buildDepends = [ mtl network networkUri parsec ];
   testDepends = [
     caseInsensitive conduit conduitExtra deepseq httpdShed httpTypes
-    HUnit mtl network pureMD5 split testFramework testFrameworkHunit
-    wai warp
+    HUnit mtl network networkUri pureMD5 split testFramework
+    testFrameworkHunit wai warp
   ];
   doCheck = false;
   noHaddock = self.stdenv.lib.versionOlder self.ghc.version "6.11";
diff --git a/pkgs/development/libraries/haskell/MonadRandom/default.nix b/pkgs/development/libraries/haskell/MonadRandom/0.1.13.nix
index fb2415fd6fa0..0cbd926b1f18 100644
--- a/pkgs/development/libraries/haskell/MonadRandom/default.nix
+++ b/pkgs/development/libraries/haskell/MonadRandom/0.1.13.nix
@@ -11,5 +11,6 @@ cabal.mkDerivation (self: {
     description = "Random-number generation monad";
     license = "unknown";
     platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
   };
 })
diff --git a/pkgs/development/libraries/haskell/MonadRandom/0.2.0.1.nix b/pkgs/development/libraries/haskell/MonadRandom/0.2.0.1.nix
new file mode 100644
index 000000000000..cc430e22090f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/MonadRandom/0.2.0.1.nix
@@ -0,0 +1,15 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, mtl, random, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "MonadRandom";
+  version = "0.2.0.1";
+  sha256 = "1689302z053zhcr46w5q3a57kd6z365kkgzxh638gcakzzk3pmwm";
+  buildDepends = [ mtl random transformers ];
+  meta = {
+    description = "Random-number generation monad";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/auto-update/default.nix b/pkgs/development/libraries/haskell/auto-update/default.nix
index b7c314f9ff97..e047e938dae2 100644
--- a/pkgs/development/libraries/haskell/auto-update/default.nix
+++ b/pkgs/development/libraries/haskell/auto-update/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "auto-update";
-  version = "0.1.1.1";
-  sha256 = "0ksclbh3d7p2511ji86ind8f6jrh58mz61mc441kfz51ippkdk59";
+  version = "0.1.1.2";
+  sha256 = "0901zqky70wyxl17vwz6smhnpsfjnsk0f2xqiyz902vl7apx66c6";
   testDepends = [ hspec ];
   meta = {
     homepage = "https://github.com/yesodweb/wai";
diff --git a/pkgs/development/libraries/haskell/aws/default.nix b/pkgs/development/libraries/haskell/aws/default.nix
index d6e8a5fb5ad6..3df47d956186 100644
--- a/pkgs/development/libraries/haskell/aws/default.nix
+++ b/pkgs/development/libraries/haskell/aws/default.nix
@@ -11,8 +11,8 @@
 
 cabal.mkDerivation (self: {
   pname = "aws";
-  version = "0.10.2";
-  sha256 = "15yr06z54wxnl37a94515ajlxrb7z9kii5dd0ssan32izh4nfrl2";
+  version = "0.10.3";
+  sha256 = "042vx5nhafvgw0crymkw8pyhiawhpxwj03n1k538y2wr181hmz5f";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/cabal-cargs/default.nix b/pkgs/development/libraries/haskell/cabal-cargs/default.nix
index 85015f5d4acc..a74e54f7e438 100644
--- a/pkgs/development/libraries/haskell/cabal-cargs/default.nix
+++ b/pkgs/development/libraries/haskell/cabal-cargs/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal-cargs";
-  version = "0.7";
-  sha256 = "1dzmvwmb9sxwdgkzszhk9d5qvq2alnqmprx83dlb17sdi6f9jns1";
+  version = "0.7.1";
+  sha256 = "0y6v663mw4giwypdv34qr2l2fy1q7zdjvgw39m16sjna5lbwvm1n";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/cabal-lenses/default.nix b/pkgs/development/libraries/haskell/cabal-lenses/default.nix
index a4ac5164e1f3..b5427b3b7472 100644
--- a/pkgs/development/libraries/haskell/cabal-lenses/default.nix
+++ b/pkgs/development/libraries/haskell/cabal-lenses/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal-lenses";
-  version = "0.3";
-  sha256 = "13nx9cn81cx9cj7fk07akqvz4qkl49dlgb5wl5wanag6bafa6vhl";
+  version = "0.3.1";
+  sha256 = "17piwqyzd33shp12qa6j4s579rrs34l44x19p2nzz69anhc4g1j7";
   buildDepends = [ Cabal lens unorderedContainers ];
   meta = {
     description = "Lenses and traversals for the Cabal library";
diff --git a/pkgs/development/libraries/haskell/compdata/default.nix b/pkgs/development/libraries/haskell/compdata/default.nix
index 2e26d9ac781a..ecaec5c4dd04 100644
--- a/pkgs/development/libraries/haskell/compdata/default.nix
+++ b/pkgs/development/libraries/haskell/compdata/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "compdata";
-  version = "0.8.1.3";
-  sha256 = "0rnvw5bdypl6i2k1wnc727a17hapl4hs7n208h16ngk075841gpb";
+  version = "0.9";
+  sha256 = "1wk9vj834l3fc64fcsrgc9hz5f2z7461hs8lv1ldkfsixx4mxyqc";
   buildDepends = [
     deepseq derive mtl QuickCheck thExpandSyns transformers treeView
   ];
diff --git a/pkgs/development/libraries/haskell/diagrams/cairo.nix b/pkgs/development/libraries/haskell/diagrams/cairo.nix
index c0f678311b9a..3a695fa82037 100644
--- a/pkgs/development/libraries/haskell/diagrams/cairo.nix
+++ b/pkgs/development/libraries/haskell/diagrams/cairo.nix
@@ -7,18 +7,18 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-cairo";
-  version = "1.2";
-  sha256 = "0vzjp1i5hk971r7f55gpdl0jibrjg9j4ny7p408kb8zl2ynlxv6l";
+  version = "1.2.0.1";
+  sha256 = "0y7llxxs34i814nc3c79ykv75znplzqq7njvq7a5fyxl81ji0z4c";
   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";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ bergey ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/diagrams/contrib.nix b/pkgs/development/libraries/haskell/diagrams/contrib.nix
index 2dcc86d5c9b4..f1044870f3a4 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";
-  sha256 = "1gljmzlhc6vck5lcsq9lhf2k4dik5pp62k85y2kkxgq0mxnmqf0g";
+  version = "1.1.2.1";
+  sha256 = "05jsqc9wm87hpnaclzfa376m5z8lnp4qgll6lqnfa5m49cqcabki";
   buildDepends = [
     arithmoi circlePacking colour dataDefault dataDefaultClass
     diagramsCore diagramsLib forceLayout lens MonadRandom mtl parsec
@@ -20,11 +20,11 @@ cabal.mkDerivation (self: {
     diagramsLib HUnit QuickCheck testFramework testFrameworkHunit
     testFrameworkQuickcheck2
   ];
-  jailbreak = true;
   meta = {
     homepage = "http://projects.haskell.org/diagrams/";
     description = "Collection of user contributions to diagrams EDSL";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ bergey ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/diagrams/core.nix b/pkgs/development/libraries/haskell/diagrams/core.nix
index 9a1245d04d0a..18f362e0c21f 100644
--- a/pkgs/development/libraries/haskell/diagrams/core.nix
+++ b/pkgs/development/libraries/haskell/diagrams/core.nix
@@ -6,17 +6,17 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-core";
-  version = "1.2.0.1";
-  sha256 = "01rzd2zdg0pv7b299z6s6i6l6xggiszb2qs00vh5dbss295n1sps";
+  version = "1.2.0.2";
+  sha256 = "10glkp05pnxx7c7f33654rjcvahslxx010v36wf6zsa8nscdrccn";
   buildDepends = [
     dualTree lens MemoTrie monoidExtras newtype semigroups vectorSpace
     vectorSpacePoints
   ];
-  jailbreak = true;
   meta = {
     homepage = "http://projects.haskell.org/diagrams";
     description = "Core libraries for diagrams EDSL";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ bergey ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/diagrams/lib.nix b/pkgs/development/libraries/haskell/diagrams/lib.nix
index 77047d982917..b15f05dbf27b 100644
--- a/pkgs/development/libraries/haskell/diagrams/lib.nix
+++ b/pkgs/development/libraries/haskell/diagrams/lib.nix
@@ -8,19 +8,19 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-lib";
-  version = "1.2.0.1";
-  sha256 = "0p7rq97hnal90dciq1nln1s16kdb1xk9rrwaxhkxqr6kjjr2njf4";
+  version = "1.2.0.2";
+  sha256 = "0ylrsldq7nmqvprgwbw7bkwp31zhgbyxjx462lcayk0lbhqb5k5p";
   buildDepends = [
     active colour dataDefaultClass diagramsCore dualTree filepath
     fingertree hashable intervals JuicyPixels lens MemoTrie
     monoidExtras optparseApplicative safe semigroups tagged vectorSpace
     vectorSpacePoints
   ];
-  jailbreak = true;
   meta = {
     homepage = "http://projects.haskell.org/diagrams";
     description = "Embedded domain-specific language for declarative graphics";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ bergey ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/diagrams/postscript.nix b/pkgs/development/libraries/haskell/diagrams/postscript.nix
index 6ecd2dd4a410..557aae73db56 100644
--- a/pkgs/development/libraries/haskell/diagrams/postscript.nix
+++ b/pkgs/development/libraries/haskell/diagrams/postscript.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-postscript";
-  version = "1.1";
-  sha256 = "0l077libp6h8ka9ygkmajvzdymndlhx60nb5f6jaqvp7yx80hz3m";
+  version = "1.1.0.1";
+  sha256 = "03747g5y33kzf76hs4y0ak9q6b79r92z130b03bcc2892na62ad6";
   buildDepends = [
     dataDefaultClass diagramsCore diagramsLib dlist filepath hashable
     lens monoidExtras mtl semigroups split vectorSpace
@@ -18,7 +18,6 @@ cabal.mkDerivation (self: {
     description = "Postscript backend for diagrams drawing EDSL";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-    broken = true;
+    maintainers = with self.stdenv.lib.maintainers; [ bergey ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/diagrams/svg.nix b/pkgs/development/libraries/haskell/diagrams/svg.nix
index f982f427863b..8393d7c6f982 100644
--- a/pkgs/development/libraries/haskell/diagrams/svg.nix
+++ b/pkgs/development/libraries/haskell/diagrams/svg.nix
@@ -7,18 +7,18 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-svg";
-  version = "1.1";
-  sha256 = "0b34rh35pay4x8dg0i06xvr3d865hbxzj2x77jly9l1j7sa1qaj1";
+  version = "1.1.0.1";
+  sha256 = "02krwy1v7rhcgg0ps7kd8ym50kh48dcfqm2xz3k6hr32jzqa5hlw";
   buildDepends = [
     base64Bytestring blazeMarkup blazeSvg colour diagramsCore
     diagramsLib filepath hashable JuicyPixels lens monoidExtras mtl
     split time vectorSpace
   ];
-  jailbreak = true;
   meta = {
     homepage = "http://projects.haskell.org/diagrams/";
     description = "SVG backend for diagrams drawing EDSL";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ bergey ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/digestive-functors-aeson/default.nix b/pkgs/development/libraries/haskell/digestive-functors-aeson/default.nix
index 924f8bb351d4..1958307e869c 100644
--- a/pkgs/development/libraries/haskell/digestive-functors-aeson/default.nix
+++ b/pkgs/development/libraries/haskell/digestive-functors-aeson/default.nix
@@ -1,18 +1,19 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, aeson, digestiveFunctors, HUnit, lens, mtl, safe
-, scientific, tasty, tastyHunit, text, vector
+{ cabal, aeson, digestiveFunctors, HUnit, lens, lensAeson, mtl
+, safe, scientific, tasty, tastyHunit, text, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "digestive-functors-aeson";
-  version = "1.1.10";
-  sha256 = "0ar165rksnj09sb58qx5hm71kn8gzm936ixmfhf7sqbw2kcbw4nx";
-  buildDepends = [ aeson digestiveFunctors lens safe text vector ];
+  version = "1.1.11";
+  sha256 = "0jf62ssyc317x070xkjdnfbb2g8mb19a83hig08j95vyqwjgk4vg";
+  buildDepends = [
+    aeson digestiveFunctors lens lensAeson safe text vector
+  ];
   testDepends = [
     aeson digestiveFunctors HUnit mtl scientific tasty tastyHunit text
   ];
-  jailbreak = true;
   meta = {
     homepage = "http://github.com/ocharles/digestive-functors-aeson";
     description = "Run digestive-functors forms against JSON";
diff --git a/pkgs/development/libraries/haskell/dns/default.nix b/pkgs/development/libraries/haskell/dns/default.nix
index 113e1af46eed..ab74819965a7 100644
--- a/pkgs/development/libraries/haskell/dns/default.nix
+++ b/pkgs/development/libraries/haskell/dns/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "dns";
-  version = "1.4.3";
-  sha256 = "15v24f338w71dn3cxrzwyg04hk3vxvrvswbv3nnf2ggjgg46yq3i";
+  version = "1.4.4";
+  sha256 = "1g910rlahvrhjlg6jl7gpya1y3mqkkpmihfr2jnmmlzykll10dnd";
   buildDepends = [
     attoparsec binary blazeBuilder conduit conduitExtra iproute mtl
     network random resourcet
@@ -21,5 +21,6 @@ cabal.mkDerivation (self: {
     description = "DNS library in Haskell";
     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/engine-io/default.nix b/pkgs/development/libraries/haskell/engine-io/default.nix
index 82cb1240610d..f1f9d06c76a7 100644
--- a/pkgs/development/libraries/haskell/engine-io/default.nix
+++ b/pkgs/development/libraries/haskell/engine-io/default.nix
@@ -7,13 +7,12 @@
 
 cabal.mkDerivation (self: {
   pname = "engine-io";
-  version = "1.1.0";
-  sha256 = "0l2jwgzi22ky13k9kmqhn15zyxyg5gr167rkywb458n1si4jr3jh";
+  version = "1.1.2";
+  sha256 = "1ry6rklrij7x1z8mw31vh41lc0axzj8l0lhmjsmhs554nv50062f";
   buildDepends = [
     aeson async attoparsec base64Bytestring either monadLoops mwcRandom
     stm text transformers unorderedContainers vector websockets
   ];
-  jailbreak = true;
   meta = {
     homepage = "http://github.com/ocharles/engine.io";
     description = "A Haskell implementation of Engine.IO";
diff --git a/pkgs/development/libraries/haskell/equational-reasoning/default.nix b/pkgs/development/libraries/haskell/equational-reasoning/default.nix
new file mode 100644
index 000000000000..fa88fbfe2e80
--- /dev/null
+++ b/pkgs/development/libraries/haskell/equational-reasoning/default.nix
@@ -0,0 +1,16 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, singletons, tagged, void }:
+
+cabal.mkDerivation (self: {
+  pname = "equational-reasoning";
+  version = "0.2.0.4";
+  sha256 = "1f94y6h7qg7rck7rxf6j8sygkh1xmfk0z1lr71inx6s74agjyc9j";
+  buildDepends = [ singletons tagged void ];
+  meta = {
+    description = "Proof assistant for Haskell using DataKinds & PolyKinds";
+    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/force-layout/default.nix b/pkgs/development/libraries/haskell/force-layout/default.nix
index 77259cc1e401..09a22c0ac601 100644
--- a/pkgs/development/libraries/haskell/force-layout/default.nix
+++ b/pkgs/development/libraries/haskell/force-layout/default.nix
@@ -4,15 +4,15 @@
 
 cabal.mkDerivation (self: {
   pname = "force-layout";
-  version = "0.3.0.6";
-  sha256 = "0qmzz9gbzf1jdk08w3nhnw7l3n5bq5sw5k4r0mdc5y11m38xpgm4";
+  version = "0.3.0.7";
+  sha256 = "1kq6fg90yj735rpipspykvkmzs2cnwyib6pkph58523bvahgi2dy";
   buildDepends = [
     dataDefaultClass lens vectorSpace vectorSpacePoints
   ];
-  jailbreak = true;
   meta = {
     description = "Simple force-directed layout";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ bergey ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/free-game/default.nix b/pkgs/development/libraries/haskell/free-game/default.nix
index d2a0f33892fd..ee47e6bb3f5b 100644
--- a/pkgs/development/libraries/haskell/free-game/default.nix
+++ b/pkgs/development/libraries/haskell/free-game/default.nix
@@ -21,5 +21,6 @@ cabal.mkDerivation (self: {
     description = "Create games for free";
     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/ghc-mod/5.0.1.nix b/pkgs/development/libraries/haskell/ghc-mod/5.0.1.1.nix
index ad9207214513..3eefe056218d 100644
--- a/pkgs/development/libraries/haskell/ghc-mod/5.0.1.nix
+++ b/pkgs/development/libraries/haskell/ghc-mod/5.0.1.1.nix
@@ -2,14 +2,14 @@
 
 { cabal, Cabal, convertible, deepseq, djinnGhc, doctest, emacs
 , filepath, ghcPaths, ghcSybUtils, haskellSrcExts, hlint, hspec
-, ioChoice, monadControl, monadJournal, mtl, split, syb, text, time
-, transformers, transformersBase
+, ioChoice, makeWrapper, monadControl, monadJournal, mtl, split
+, syb, text, time, transformers, transformersBase
 }:
 
 cabal.mkDerivation (self: {
   pname = "ghc-mod";
-  version = "5.0.1";
-  sha256 = "01awsi5rfzq6433shfvvnr69ifxb7h8v90mlknxv3dl34zmrhv19";
+  version = "5.0.1.1";
+  sha256 = "0qyl1653dj14ap3035kjj7xl8rsmgpwh32bj2lnwrmdm2223m8a3";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -22,7 +22,7 @@ cabal.mkDerivation (self: {
     ghcSybUtils haskellSrcExts hlint hspec ioChoice monadControl
     monadJournal mtl split syb text time transformers transformersBase
   ];
-  buildTools = [ emacs ];
+  buildTools = [ emacs makeWrapper ];
   doCheck = false;
   configureFlags = "--datasubdir=${self.pname}-${self.version}";
   postInstall = ''
@@ -32,20 +32,10 @@ cabal.mkDerivation (self: {
     cd ..
     ensureDir "$out/share/emacs"
     mv $pname-$version emacs/site-lisp
-    mv $out/bin/ghc-mod $out/bin/.ghc-mod-wrapped
-    cat - > $out/bin/ghc-mod <<EOF
-    #! ${self.stdenv.shell}
-    eval exec $out/bin/.ghc-mod-wrapped \$( ${self.ghc.GHCGetPackages} ${self.ghc.version} | tr " " "\n" | tail -n +2 | paste -d " " - - | sed 's/.*/-g "&"/' | tr "\n" " ") "\$@"
-    EOF
-
-    mv $out/bin/ghc-modi $out/bin/.ghc-modi-wrapped
-    cat - > $out/bin/ghc-modi <<EOF
-    #! ${self.stdenv.shell}
-    eval exec $out/bin/.ghc-modi-wrapped \$( ${self.ghc.GHCGetPackages} ${self.ghc.version} | tr " " "\n" | tail -n +2 | paste -d " " - - | sed 's/.*/-g "&"/' | tr "\n" " ") "\$@"
-    EOF
-
-    chmod +x $out/bin/ghc-mod
-    chmod +x $out/bin/ghc-modi
+    wrapProgram $out/bin/ghc-mod --add-flags \
+      "\$(${self.ghc.GHCGetPackages} ${self.ghc.version} \"\$(dirname \$0)\" \"-g -package-db -g\")"
+    wrapProgram $out/bin/ghc-modi --add-flags \
+      "\$(${self.ghc.GHCGetPackages} ${self.ghc.version} \"\$(dirname \$0)\" \"-g -package-db -g\")"
   '';
   meta = {
     homepage = "http://www.mew.org/~kazu/proj/ghc-mod/";
diff --git a/pkgs/development/libraries/haskell/ghc-syb-utils/default.nix b/pkgs/development/libraries/haskell/ghc-syb-utils/default.nix
index 7778d3f8e5a0..0c7d5c82f112 100644
--- a/pkgs/development/libraries/haskell/ghc-syb-utils/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-syb-utils/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "ghc-syb-utils";
-  version = "0.2.1.2";
-  sha256 = "12k6a782gv06gmi6dvskzv4ihz54izhqslwa9cgilhsihw557i9p";
+  version = "0.2.2";
+  sha256 = "03r4x3a4hjivxladlw23jk8s2pgfh85lqf196ks1ngyg6ih1g6lk";
   buildDepends = [ syb ];
   meta = {
     homepage = "http://github.com/nominolo/ghc-syb";
diff --git a/pkgs/development/libraries/haskell/github/default.nix b/pkgs/development/libraries/haskell/github/default.nix
index b35055b77198..f20976b8dcfb 100644
--- a/pkgs/development/libraries/haskell/github/default.nix
+++ b/pkgs/development/libraries/haskell/github/default.nix
@@ -7,18 +7,18 @@
 
 cabal.mkDerivation (self: {
   pname = "github";
-  version = "0.10.0";
-  sha256 = "1llwzkhyw5wazczpiv3w8dq4l7j3q49ii64yh7cxwakkp2h5yiwb";
+  version = "0.11.0";
+  sha256 = "13p0iplxr85fvgx5lird76xchmhh7xpddq900qr02kbvn5mqv607";
   buildDepends = [
     aeson attoparsec caseInsensitive conduit dataDefault failure
     hashable HTTP httpConduit httpTypes network text time
     unorderedContainers vector
   ];
-  jailbreak = true;
   meta = {
     homepage = "https://github.com/fpco/github";
     description = "Access to the Github API, v3";
     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/gitit/default.nix b/pkgs/development/libraries/haskell/gitit/default.nix
index 44a04cc53807..0e0f147bab9f 100644
--- a/pkgs/development/libraries/haskell/gitit/default.nix
+++ b/pkgs/development/libraries/haskell/gitit/default.nix
@@ -1,23 +1,26 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, base64Bytestring, blazeHtml, ConfigFile, feed, filepath
-, filestore, ghcPaths, happstackServer, highlightingKate, hslogger
-, HStringTemplate, HTTP, json, mtl, network, pandoc, pandocTypes
-, parsec, random, recaptcha, safe, SHA, split, syb, tagsoup, text
-, time, uri, url, utf8String, xhtml, xml, xssSanitize, zlib
+{ cabal, aeson, base64Bytestring, blazeHtml, ConfigFile, feed
+, filepath, filestore, ghcPaths, happstackServer, highlightingKate
+, hoauth2, hslogger, HStringTemplate, HTTP, httpClient
+, httpClientTls, json, mtl, network, networkUri, pandoc
+, pandocTypes, parsec, random, recaptcha, safe, SHA, split, syb
+, tagsoup, text, time, uri, url, utf8String, xhtml, xml
+, xssSanitize, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "gitit";
-  version = "0.10.4";
-  sha256 = "1z06v1pamrpm70zisrw3z3kv0d19dsjkmm75pvj5yxkacxv7qk7n";
+  version = "0.10.5";
+  sha256 = "0p2x2l729rwals0kx8ymk6j3fqvlyjvrj6mmh8slcg93h4smwb4j";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    base64Bytestring blazeHtml ConfigFile feed filepath filestore
-    ghcPaths happstackServer highlightingKate hslogger HStringTemplate
-    HTTP json mtl network pandoc pandocTypes parsec random recaptcha
-    safe SHA split syb tagsoup text time uri url utf8String xhtml xml
+    aeson base64Bytestring blazeHtml ConfigFile feed filepath filestore
+    ghcPaths happstackServer highlightingKate hoauth2 hslogger
+    HStringTemplate HTTP httpClient httpClientTls json mtl network
+    networkUri pandoc pandocTypes parsec random recaptcha safe SHA
+    split syb tagsoup text time uri url utf8String xhtml xml
     xssSanitize zlib
   ];
   jailbreak = true;
@@ -26,7 +29,5 @@ cabal.mkDerivation (self: {
     description = "Wiki using happstack, git or darcs, and pandoc";
     license = "GPL";
     platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index 1bb23f07bdbb..e38eadad0575 100644
--- a/pkgs/development/libraries/haskell/hakyll/default.nix
+++ b/pkgs/development/libraries/haskell/hakyll/default.nix
@@ -5,13 +5,13 @@
 , HUnit, lrucache, mtl, network, pandoc, pandocCiteproc, parsec
 , QuickCheck, random, regexBase, regexTdfa, snapCore, snapServer
 , systemFilepath, tagsoup, testFramework, testFrameworkHunit
-, testFrameworkQuickcheck2, text, time
+, testFrameworkQuickcheck2, text, time, utillinux
 }:
 
 cabal.mkDerivation (self: {
   pname = "hakyll";
-  version = "4.5.3.0";
-  sha256 = "11ibpjff1zkihpxydlzvvzbgd1vxswi4c7g3lr0hhaaw89bikypy";
+  version = "4.5.4.0";
+  sha256 = "16srkm2fxjw1xg7zaikn49zz4xsz9awddnjm6ibv522k3xf3l24c";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -25,15 +25,13 @@ cabal.mkDerivation (self: {
     filepath fsnotify httpConduit httpTypes HUnit lrucache mtl network
     pandoc pandocCiteproc parsec QuickCheck random regexBase regexTdfa
     snapCore snapServer systemFilepath tagsoup testFramework
-    testFrameworkHunit testFrameworkQuickcheck2 text time
+    testFrameworkHunit testFrameworkQuickcheck2 text time utillinux
   ];
-  doCheck = false;
   meta = {
     homepage = "http://jaspervdj.be/hakyll";
     description = "A static website compiler library";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-    broken = true;
+    maintainers = with self.stdenv.lib.maintainers; [ fuuzetsu ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hcltest/default.nix b/pkgs/development/libraries/haskell/hcltest/default.nix
index af598965498e..01f683b55683 100644
--- a/pkgs/development/libraries/haskell/hcltest/default.nix
+++ b/pkgs/development/libraries/haskell/hcltest/default.nix
@@ -20,5 +20,7 @@ cabal.mkDerivation (self: {
     description = "A testing library for command line applications";
     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/hdaemonize/default.nix b/pkgs/development/libraries/haskell/hdaemonize/default.nix
index e342773775d0..1fdca2c4f9aa 100644
--- a/pkgs/development/libraries/haskell/hdaemonize/default.nix
+++ b/pkgs/development/libraries/haskell/hdaemonize/default.nix
@@ -12,5 +12,6 @@ cabal.mkDerivation (self: {
     description = "Library to handle the details of writing daemons for UNIX";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ aycanirican ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hi/default.nix b/pkgs/development/libraries/haskell/hi/default.nix
index ba1614931095..0384325c2d70 100644
--- a/pkgs/development/libraries/haskell/hi/default.nix
+++ b/pkgs/development/libraries/haskell/hi/default.nix
@@ -1,21 +1,23 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, filepath, hspec, HUnit, parsec, split, template
+{ cabal, doctest, filepath, hspec, HUnit, parsec, split, template
 , temporaryRc, text, time
 }:
 
 cabal.mkDerivation (self: {
   pname = "hi";
-  version = "0.0.8.1";
-  sha256 = "14g1yfc6cv89whx6w0di5nayifc0xfvll9h07kkqxaajyfw6s32y";
+  version = "0.0.8.2";
+  sha256 = "0h94wjxdr6g6n3rvkn1xsjqr49p9fgidmraifvz5mzryn6rmd18r";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     filepath parsec split template temporaryRc text time
   ];
   testDepends = [
-    filepath hspec HUnit parsec split template temporaryRc text time
+    doctest filepath hspec HUnit parsec split template temporaryRc text
+    time
   ];
+  doCheck = false;
   meta = {
     homepage = "https://github.com/fujimura/hi";
     description = "Generate scaffold for cabal project";
diff --git a/pkgs/development/libraries/haskell/hplayground/default.nix b/pkgs/development/libraries/haskell/hplayground/default.nix
index b12024f59452..db38dbc23991 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.2";
-  sha256 = "13lzw0fhv305zh2ry0d74y5k7vxppjlwsb8vi3iri5zpkkdpfhij";
+  version = "0.1.0.3";
+  sha256 = "1k46b94n9wkbh7374mjyg5jnwxxrhj8ai53q3r4lysx1rzgw7ak6";
   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 8f080fe6e25a..96bcecddc30c 100644
--- a/pkgs/development/libraries/haskell/hsimport/default.nix
+++ b/pkgs/development/libraries/haskell/hsimport/default.nix
@@ -6,15 +6,14 @@
 
 cabal.mkDerivation (self: {
   pname = "hsimport";
-  version = "0.5";
-  sha256 = "18rhldw6vbkjcpx373m784sppadccm2b3xx3zzr0l45dwmsh6rb4";
+  version = "0.5.1";
+  sha256 = "17yzfikfl8qvm6vp3d472l6p0kzzw694ng19xn3fmrb43qvki4jj";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     attoparsec cmdargs dyre haskellSrcExts lens mtl split text
   ];
   testDepends = [ filepath haskellSrcExts tasty tastyGolden ];
-  doCheck = false;
   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 3170318f540b..1341bf198c96 100644
--- a/pkgs/development/libraries/haskell/hspec-wai/default.nix
+++ b/pkgs/development/libraries/haskell/hspec-wai/default.nix
@@ -21,5 +21,6 @@ cabal.mkDerivation (self: {
     description = "Experimental Hspec support for testing WAI applications (depends on hspec2!)";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
   };
 })
diff --git a/pkgs/development/libraries/haskell/hspec2/default.nix b/pkgs/development/libraries/haskell/hspec2/default.nix
index 9b57dbd7627f..295b01b4e326 100644
--- a/pkgs/development/libraries/haskell/hspec2/default.nix
+++ b/pkgs/development/libraries/haskell/hspec2/default.nix
@@ -25,5 +25,7 @@ cabal.mkDerivation (self: {
     description = "Alpha version of Hspec 2.0";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
+    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/hsyslog/default.nix b/pkgs/development/libraries/haskell/hsyslog/default.nix
index 1a5cbd5b8e63..89bd035eaf10 100644
--- a/pkgs/development/libraries/haskell/hsyslog/default.nix
+++ b/pkgs/development/libraries/haskell/hsyslog/default.nix
@@ -7,6 +7,7 @@ cabal.mkDerivation (self: {
   version = "2.0";
   sha256 = "02v698grn43bvikqhqiz9ys8x2amngdmhvl3i0ar9203p2x8q3pq";
   testDepends = [ doctest ];
+  noHaddock = self.stdenv.lib.versionOlder self.ghc.version "6.11";
   meta = {
     homepage = "http://github.com/peti/hsyslog";
     description = "FFI interface to syslog(3) from POSIX.1-2001";
diff --git a/pkgs/development/libraries/haskell/http-client/default.nix b/pkgs/development/libraries/haskell/http-client/default.nix
index 2c3ad6d1141b..7f032c3f675a 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.7.1";
-  sha256 = "0wfmzpjzazk5jr1pbkhkxxa32pd40mgm1p426k5bxjn3gw48r30c";
+  version = "0.3.7.2";
+  sha256 = "1llrf2bfbh5z01pwg40zdgmz93h45h60mg2pv1k6b8pmzlwr6aaz";
   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 132b9722f74b..fd7eb7dd64ae 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";
-  sha256 = "14xfd25y7r2lhg7dx9hfniihgyzhkz4c6642k5pr27fqjjlr6ijb";
+  version = "2.1.4.1";
+  sha256 = "1v65v2dky7vgyh5hfvih208zhbd2czxdrshw9zw0af1naq2m5hk2";
   buildDepends = [
     conduit httpClient httpClientTls httpTypes liftedBase monadControl
     mtl resourcet transformers
diff --git a/pkgs/development/libraries/haskell/hweblib/default.nix b/pkgs/development/libraries/haskell/hweblib/default.nix
index 1ce64baa09cb..1d7d17085dc3 100644
--- a/pkgs/development/libraries/haskell/hweblib/default.nix
+++ b/pkgs/development/libraries/haskell/hweblib/default.nix
@@ -13,5 +13,6 @@ cabal.mkDerivation (self: {
     description = "Haskell Web Library";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ aycanirican ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/ivory/default.nix b/pkgs/development/libraries/haskell/ivory/default.nix
new file mode 100644
index 000000000000..3e3c6c78ae1d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/ivory/default.nix
@@ -0,0 +1,17 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, monadLib, parsec, thLift }:
+
+cabal.mkDerivation (self: {
+  pname = "ivory";
+  version = "0.1.0.0";
+  sha256 = "1rn1akrsci0k5nbk4zipxznkdm0y3rvv9la5mnrr9mkj5zikj5sc";
+  buildDepends = [ monadLib parsec thLift ];
+  meta = {
+    homepage = "http://smaccmpilot.org/languages/ivory-introduction.html";
+    description = "Safe embedded C programming";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    broken = self.stdenv.lib.versionOlder "7.7" self.ghc.version;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/json-assertions/default.nix b/pkgs/development/libraries/haskell/json-assertions/default.nix
index fce4d5d79227..9adcaf175726 100644
--- a/pkgs/development/libraries/haskell/json-assertions/default.nix
+++ b/pkgs/development/libraries/haskell/json-assertions/default.nix
@@ -1,12 +1,12 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, aeson, indexed, indexedFree, lens, text }:
+{ cabal, aeson, indexed, indexedFree, lens, lensAeson, text }:
 
 cabal.mkDerivation (self: {
   pname = "json-assertions";
-  version = "1.0.4";
-  sha256 = "07qjbbwmph75s8ds1yfy17ww7x2wcc9bpjpv2bq9ggmzllf6g8l5";
-  buildDepends = [ aeson indexed indexedFree lens text ];
+  version = "1.0.5";
+  sha256 = "1vf6y8xbl48giq1p6d62294rfvfdw62l1q4dspy990ii0v5gkyck";
+  buildDepends = [ aeson indexed indexedFree lens lensAeson text ];
   meta = {
     homepage = "http://github.com/ocharles/json-assertions.git";
     description = "Test that your (Aeson) JSON encoding matches your expectations";
diff --git a/pkgs/development/libraries/haskell/json-schema/default.nix b/pkgs/development/libraries/haskell/json-schema/default.nix
index 4eb407646730..8ae6763d0a43 100644
--- a/pkgs/development/libraries/haskell/json-schema/default.nix
+++ b/pkgs/development/libraries/haskell/json-schema/default.nix
@@ -17,6 +17,7 @@ cabal.mkDerivation (self: {
     aeson attoparsec genericAeson HUnit tagged tasty tastyHunit tastyTh
     text
   ];
+  jailbreak = true;
   meta = {
     description = "Types and type classes for defining JSON schemas";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/language-c/default.nix b/pkgs/development/libraries/haskell/language-c/default.nix
index 6562d3fdf260..2fe11c4f071e 100644
--- a/pkgs/development/libraries/haskell/language-c/default.nix
+++ b/pkgs/development/libraries/haskell/language-c/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "language-c";
-  version = "0.4.5";
-  sha256 = "0q0x1rm74g27ry4jja44hk8z0lqkwnimnxbcy54m2cphaxk7yjk4";
+  version = "0.4.6";
+  sha256 = "0pzd3g5q3sjfngs29biannza6l9am75kcjy5q0xcjv7xhz0z1m31";
   buildDepends = [ filepath syb ];
   buildTools = [ alex happy ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/lens-aeson/default.nix b/pkgs/development/libraries/haskell/lens-aeson/default.nix
new file mode 100644
index 000000000000..d19b0bf6dd78
--- /dev/null
+++ b/pkgs/development/libraries/haskell/lens-aeson/default.nix
@@ -0,0 +1,24 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, aeson, attoparsec, doctest, filepath, genericDeriving
+, lens, scientific, semigroups, simpleReflect, text
+, unorderedContainers, vector
+}:
+
+cabal.mkDerivation (self: {
+  pname = "lens-aeson";
+  version = "1";
+  sha256 = "0zpfpba97kr92lzrmdfk08f3cl42alhx0d73w8sbbwxnnvv4489r";
+  buildDepends = [
+    aeson attoparsec lens scientific text unorderedContainers vector
+  ];
+  testDepends = [
+    doctest filepath genericDeriving semigroups simpleReflect
+  ];
+  meta = {
+    homepage = "http://github.com/lens/lens-aeson/";
+    description = "Law-abiding lenses for aeson";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/lens/default.nix b/pkgs/development/libraries/haskell/lens/default.nix
index 655525e4d598..190dd3fd14ed 100644
--- a/pkgs/development/libraries/haskell/lens/default.nix
+++ b/pkgs/development/libraries/haskell/lens/default.nix
@@ -1,25 +1,23 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, aeson, attoparsec, bifunctors, comonad, contravariant
-, deepseq, distributive, doctest, exceptions, filepath, free
-, genericDeriving, hashable, hlint, HUnit, mtl, nats, parallel
-, primitive, profunctors, QuickCheck, reflection, scientific
-, semigroupoids, semigroups, simpleReflect, split, tagged
-, testFramework, testFrameworkHunit, testFrameworkQuickcheck2
-, testFrameworkTh, text, transformers, transformersCompat
-, unorderedContainers, vector, void, zlib
+{ cabal, bifunctors, comonad, contravariant, deepseq, distributive
+, doctest, exceptions, filepath, free, genericDeriving, hashable
+, hlint, HUnit, mtl, nats, parallel, primitive, profunctors
+, QuickCheck, reflection, semigroupoids, semigroups, simpleReflect
+, split, tagged, testFramework, testFrameworkHunit
+, testFrameworkQuickcheck2, testFrameworkTh, text, transformers
+, transformersCompat, unorderedContainers, vector, void, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "lens";
-  version = "4.3.3";
-  sha256 = "0k7qslnh15xnrj86wwsp0mvz6g363ma4g0dxkmvvg4sa1bxljr1f";
+  version = "4.4.0.1";
+  sha256 = "0d1z6jix58g7x9r1jvm335hg2psflqc7w6sq54q486wil55c5vrw";
   buildDepends = [
-    aeson attoparsec bifunctors comonad contravariant distributive
-    exceptions filepath free hashable mtl parallel primitive
-    profunctors reflection scientific semigroupoids semigroups split
-    tagged text transformers transformersCompat unorderedContainers
-    vector void zlib
+    bifunctors comonad contravariant distributive exceptions filepath
+    free hashable mtl parallel primitive profunctors reflection
+    semigroupoids semigroups split tagged text transformers
+    transformersCompat unorderedContainers vector void zlib
   ];
   testDepends = [
     deepseq doctest filepath genericDeriving hlint HUnit mtl nats
@@ -27,7 +25,6 @@ cabal.mkDerivation (self: {
     testFrameworkHunit testFrameworkQuickcheck2 testFrameworkTh text
     transformers unorderedContainers vector
   ];
-  doCheck = false;
   meta = {
     homepage = "http://github.com/ekmett/lens/";
     description = "Lenses, Folds and Traversals";
diff --git a/pkgs/development/libraries/haskell/lifted-async/default.nix b/pkgs/development/libraries/haskell/lifted-async/default.nix
index 04c589b54792..97a252d13d50 100644
--- a/pkgs/development/libraries/haskell/lifted-async/default.nix
+++ b/pkgs/development/libraries/haskell/lifted-async/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "lifted-async";
-  version = "0.2.0.1";
-  sha256 = "1x3qdgy0jkqx71xndjh769lw3wrwq63k2kc33pxn6x11yyklcf1j";
+  version = "0.2.0.2";
+  sha256 = "07sqgd3lxplfwrpys4jhz0068sx99765lpx8n4nj3k117z32slgf";
   buildDepends = [ async liftedBase monadControl transformersBase ];
   testDepends = [
     async HUnit liftedBase monadControl mtl tasty tastyHunit tastyTh
diff --git a/pkgs/development/libraries/haskell/markdown/default.nix b/pkgs/development/libraries/haskell/markdown/default.nix
new file mode 100644
index 000000000000..746bd1c74846
--- /dev/null
+++ b/pkgs/development/libraries/haskell/markdown/default.nix
@@ -0,0 +1,27 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, attoparsec, blazeHtml, conduit, conduitExtra, dataDefault
+, hspec, systemFileio, systemFilepath, text, transformers
+, xssSanitize
+}:
+
+cabal.mkDerivation (self: {
+  pname = "markdown";
+  version = "0.1.9";
+  sha256 = "1bl86alrbl9i690sbqqlxb4hkdd0lv3x5aqc8zi55q9h0rfsi06l";
+  buildDepends = [
+    attoparsec blazeHtml conduit conduitExtra dataDefault text
+    transformers xssSanitize
+  ];
+  testDepends = [
+    blazeHtml conduit conduitExtra hspec systemFileio systemFilepath
+    text transformers
+  ];
+  meta = {
+    homepage = "https://github.com/snoyberg/markdown";
+    description = "Convert Markdown to HTML, with XSS protection";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ ocharles ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/monad-logger/default.nix b/pkgs/development/libraries/haskell/monad-logger/default.nix
index cb3a13f8c6ed..d8e724259a0f 100644
--- a/pkgs/development/libraries/haskell/monad-logger/default.nix
+++ b/pkgs/development/libraries/haskell/monad-logger/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "monad-logger";
-  version = "0.3.7.1";
-  sha256 = "0imr1bgcpfm19a91r4i6lii7gycx77ysfrdri030zr2jjrvggh9i";
+  version = "0.3.7.2";
+  sha256 = "03q8l28rwrg00c2zcv0gr5fpis5xz8c5zspziay6p2grbwfxmwda";
   buildDepends = [
     blazeBuilder conduit conduitExtra exceptions fastLogger liftedBase
     monadControl monadLoops mtl resourcet stm stmChans text
diff --git a/pkgs/development/libraries/haskell/monomorphic/default.nix b/pkgs/development/libraries/haskell/monomorphic/default.nix
new file mode 100644
index 000000000000..e160878b6802
--- /dev/null
+++ b/pkgs/development/libraries/haskell/monomorphic/default.nix
@@ -0,0 +1,16 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "monomorphic";
+  version = "0.0.3.2";
+  sha256 = "13zw506wifz2lf7n4a48rkn7ym44jpiqag21zc1py6xxdlkbrhh2";
+  meta = {
+    homepage = "https://github.com/konn/monomorphic";
+    description = "Library to convert polymorphic datatypes to/from its monomorphic represetation";
+    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/network-fancy/default.nix b/pkgs/development/libraries/haskell/network-fancy/default.nix
new file mode 100644
index 000000000000..8e0cf7578345
--- /dev/null
+++ b/pkgs/development/libraries/haskell/network-fancy/default.nix
@@ -0,0 +1,14 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "network-fancy";
+  version = "0.1.5.2";
+  sha256 = "039yrrir17sphkzarwl7hncj7fb4x471mh2lvpqixl3a6nij141c";
+  meta = {
+    homepage = "http://github.com/taruti/network-fancy";
+    description = "Networking support with a cleaner API";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+  preConfigure = ''substituteInPlace Setup.hs --replace '-> rt' '-> return ()' '';
+})
diff --git a/pkgs/development/libraries/haskell/network/2.5.0.0.nix b/pkgs/development/libraries/haskell/network/2.5.0.0.nix
index dd4278a0052e..59a338a79077 100644
--- a/pkgs/development/libraries/haskell/network/2.5.0.0.nix
+++ b/pkgs/development/libraries/haskell/network/2.5.0.0.nix
@@ -17,5 +17,6 @@ cabal.mkDerivation (self: {
     description = "Low-level networking interface";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
   };
 })
diff --git a/pkgs/development/libraries/haskell/network/2.6.0.1.nix b/pkgs/development/libraries/haskell/network/2.6.0.1.nix
new file mode 100644
index 000000000000..d5d302fbd8e6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/network/2.6.0.1.nix
@@ -0,0 +1,16 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, HUnit, testFramework, testFrameworkHunit }:
+
+cabal.mkDerivation (self: {
+  pname = "network";
+  version = "2.6.0.1";
+  sha256 = "0qfffsdbvrf9gs8wr9ps7iv5h6drz4vb2ja9rprmc7ypswsacxsq";
+  testDepends = [ HUnit testFramework testFrameworkHunit ];
+  meta = {
+    homepage = "https://github.com/haskell/network";
+    description = "Low-level networking interface";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/parsers/0.10.3.nix b/pkgs/development/libraries/haskell/parsers/0.10.3.nix
deleted file mode 100644
index 1da7380f252c..000000000000
--- a/pkgs/development/libraries/haskell/parsers/0.10.3.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-# This file was auto-generated by cabal2nix. Please do NOT edit manually!
-
-{ cabal, charset, doctest, filepath, parsec, text, transformers
-, unorderedContainers
-}:
-
-cabal.mkDerivation (self: {
-  pname = "parsers";
-  version = "0.10.3";
-  sha256 = "1s9n59q77h0w1csq7yh945b53847a9hnpvviashgxyi7ahvw7jli";
-  buildDepends = [
-    charset parsec text transformers unorderedContainers
-  ];
-  testDepends = [ doctest filepath ];
-  meta = {
-    homepage = "http://github.com/ekmett/parsers/";
-    description = "Parsing combinators";
-    license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-  };
-})
diff --git a/pkgs/development/libraries/haskell/parsers/0.12.1.nix b/pkgs/development/libraries/haskell/parsers/default.nix
index 5c49d144a10e..5c49d144a10e 100644
--- a/pkgs/development/libraries/haskell/parsers/0.12.1.nix
+++ b/pkgs/development/libraries/haskell/parsers/default.nix
diff --git a/pkgs/development/libraries/haskell/poppler/default.nix b/pkgs/development/libraries/haskell/poppler/default.nix
index 327744560acb..28e7e515c2b2 100644
--- a/pkgs/development/libraries/haskell/poppler/default.nix
+++ b/pkgs/development/libraries/haskell/poppler/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "poppler";
-  version = "0.12.3";
-  sha256 = "1ny2r1cpsshpg00w6bd0f5mw26xsy99l7dgx2xq8f01zcwdy4nrp";
+  version = "0.13";
+  sha256 = "1fv0h2ixanzv5vy4l2ln23f9n8ghmgdxzlyx54hh69bwhrcg049s";
   buildDepends = [ cairo glib gtk mtl ];
   buildTools = [ gtk2hsBuildtools ];
   extraLibraries = [ libc ];
@@ -18,7 +18,5 @@ cabal.mkDerivation (self: {
     license = self.stdenv.lib.licenses.gpl2;
     platforms = self.ghc.meta.platforms;
     maintainers = with self.stdenv.lib.maintainers; [ ianwookim ];
-    hydraPlatforms = self.stdenv.lib.platforms.none;
-    broken = true;
   };
 })
diff --git a/pkgs/development/libraries/haskell/postgresql-simple/default.nix b/pkgs/development/libraries/haskell/postgresql-simple/default.nix
index a3f471fcb4de..0c4fea2da65f 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.3.0";
-  sha256 = "16i1qzshbscnbjb4rxz5hl1iaxjmsc21878prj5pp33zbm53dlcm";
+  version = "0.4.4.0";
+  sha256 = "1rx0rcafiicdv4qbf68dbsfqwiayrl7205dm0c5bdjlvszv576r7";
   buildDepends = [
     aeson attoparsec blazeBuilder blazeTextual hashable postgresqlLibpq
     scientific text time transformers uuid vector
diff --git a/pkgs/development/libraries/haskell/random/1.0.1.1.nix b/pkgs/development/libraries/haskell/random/1.0.1.1.nix
index 5a64573a8903..031c251fbb7b 100644
--- a/pkgs/development/libraries/haskell/random/1.0.1.1.nix
+++ b/pkgs/development/libraries/haskell/random/1.0.1.1.nix
@@ -11,5 +11,6 @@ cabal.mkDerivation (self: {
     description = "random number library";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    hydraPlatforms = self.stdenv.lib.platforms.none;
   };
 })
diff --git a/pkgs/development/libraries/haskell/random/1.0.1.3.nix b/pkgs/development/libraries/haskell/random/1.0.1.3.nix
new file mode 100644
index 000000000000..26763deb10a6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/random/1.0.1.3.nix
@@ -0,0 +1,15 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, time }:
+
+cabal.mkDerivation (self: {
+  pname = "random";
+  version = "1.0.1.3";
+  sha256 = "06mbjx05c54iz5skn4biyjy9sqdr1qi6d33an8wya7sndnpakd21";
+  buildDepends = [ time ];
+  meta = {
+    description = "random number library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/reserve/default.nix b/pkgs/development/libraries/haskell/reserve/default.nix
new file mode 100644
index 000000000000..753368e07c77
--- /dev/null
+++ b/pkgs/development/libraries/haskell/reserve/default.nix
@@ -0,0 +1,23 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, baseCompat, hspec, httpConduit, httpKit, httpTypes
+, network, QuickCheck, warp
+}:
+
+cabal.mkDerivation (self: {
+  pname = "reserve";
+  version = "0.1.0";
+  sha256 = "09b570l6hyn0wfd4nb9xpqrpdb97gbaxnbjlz25y6s0pfg5s1yzp";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ baseCompat httpKit httpTypes network ];
+  testDepends = [
+    baseCompat hspec httpConduit httpKit httpTypes network QuickCheck
+    warp
+  ];
+  meta = {
+    description = "Reserve reloads web applications";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/rest-core/default.nix b/pkgs/development/libraries/haskell/rest-core/default.nix
index 134c39f9f246..53c3ede3ec12 100644
--- a/pkgs/development/libraries/haskell/rest-core/default.nix
+++ b/pkgs/development/libraries/haskell/rest-core/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "rest-core";
-  version = "0.31.1";
-  sha256 = "1cx1zmy1zr43n9nlrbar828izccpkvrvjkrda03ra9fkcjgd6qy6";
+  version = "0.32";
+  sha256 = "130kz1gsrbamw8gs4vc0fqfjh1gi7i52xxmj4fg1vl2dr77gf6my";
   buildDepends = [
     aeson aesonUtils either errors fclabels hxt hxtPickleUtils
     jsonSchema mtl multipart random restStringmap restTypes safe split
diff --git a/pkgs/development/libraries/haskell/rest-gen/default.nix b/pkgs/development/libraries/haskell/rest-gen/default.nix
index afa2f612c014..012f6db8bf24 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";
-  sha256 = "1hmf77hs3pp6lf4glh3lbbwfjr029js185v69bk8ycr1c4ib8nbp";
+  version = "0.14.2.1";
+  sha256 = "1dvcs25ndmzwdann5yq4567zjirirzskf9v31gkrki0im8mi9x14";
   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 74c5f2a06cbd..4c79bc58c065 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";
-  sha256 = "1np8y0v6jnk2lw0aqlzb9dn1vlk8cg75xrhkjmm6qh0z90fy3p6z";
+  version = "0.2.10.1";
+  sha256 = "0p4km3l8n50flj9cnxvjl34pp3msxz2yq4d91r318di8pacrgnxc";
   buildDepends = [ happstackServer mtl restCore restGen utf8String ];
   meta = {
     description = "Rest driver for Happstack";
diff --git a/pkgs/development/libraries/haskell/rest-snap/default.nix b/pkgs/development/libraries/haskell/rest-snap/default.nix
index 5305c2d113f8..8e9bc69eb013 100644
--- a/pkgs/development/libraries/haskell/rest-snap/default.nix
+++ b/pkgs/development/libraries/haskell/rest-snap/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "rest-snap";
-  version = "0.1.17.12";
-  sha256 = "0hhpscdbph34psfn2h1g0znds0cz7ja9byr6bg7jmj0h86plz8al";
+  version = "0.1.17.13";
+  sha256 = "13c143dzxhfrshn19ylqfmhnxjirixfif8d1fmzagz1v893narkz";
   buildDepends = [
     caseInsensitive restCore safe snapCore unorderedContainers
     uriEncode utf8String
diff --git a/pkgs/development/libraries/haskell/rest-types/default.nix b/pkgs/development/libraries/haskell/rest-types/default.nix
index 157cab5e979c..41b8044b5931 100644
--- a/pkgs/development/libraries/haskell/rest-types/default.nix
+++ b/pkgs/development/libraries/haskell/rest-types/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "rest-types";
-  version = "1.10.1";
-  sha256 = "0i4y1s35ybly1nayqj9c2zqwikpxnzjamq24qbhg0lpqr0dpc1rg";
+  version = "1.10.2";
+  sha256 = "1j8fpv4xdhbf1awy0v9zn9a3sjwl42l6472wczp3wwwcpsi65d9q";
   buildDepends = [
     aeson genericAeson hxt jsonSchema mtl regular regularXmlpickler
     restStringmap text uuid
diff --git a/pkgs/development/libraries/haskell/rest-wai/default.nix b/pkgs/development/libraries/haskell/rest-wai/default.nix
index 7ddb500265b1..d23d81da33de 100644
--- a/pkgs/development/libraries/haskell/rest-wai/default.nix
+++ b/pkgs/development/libraries/haskell/rest-wai/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "rest-wai";
-  version = "0.1.0.2";
-  sha256 = "06wnazy0262b2875q4km2xy9zz7l681vlfj3ny1ha9valnqr3q6w";
+  version = "0.1.0.3";
+  sha256 = "08pprgn9xnd3ipr6clify3snm4ahshlws869mfvziplc4hdcnb59";
   buildDepends = [
     caseInsensitive httpTypes mimeTypes mtl restCore restTypes text
     unorderedContainers utf8String wai
diff --git a/pkgs/development/libraries/haskell/servant-pool/default.nix b/pkgs/development/libraries/haskell/servant-pool/default.nix
new file mode 100644
index 000000000000..692d694ed468
--- /dev/null
+++ b/pkgs/development/libraries/haskell/servant-pool/default.nix
@@ -0,0 +1,16 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, resourcePool, servant, time }:
+
+cabal.mkDerivation (self: {
+  pname = "servant-pool";
+  version = "0.1";
+  sha256 = "0if4lxb0fpdd4lnkz9j7z6vhjbrcc80pvz9jb6sdb9p6sbbgqf69";
+  buildDepends = [ resourcePool servant time ];
+  meta = {
+    homepage = "http://github.com/zalora/servant-pool";
+    description = "Utility functions for creating servant 'Context's with \"context/connection pooling\" support";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/servant-postgresql/default.nix b/pkgs/development/libraries/haskell/servant-postgresql/default.nix
new file mode 100644
index 000000000000..154eefea320e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/servant-postgresql/default.nix
@@ -0,0 +1,18 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, postgresqlSimple, servant, servantPool, servantResponse }:
+
+cabal.mkDerivation (self: {
+  pname = "servant-postgresql";
+  version = "0.1";
+  sha256 = "1svy1v6sl5pq0zs8ms4qf7wn6zar63bqmfiyfqgz84ryli0wxrhj";
+  buildDepends = [
+    postgresqlSimple servant servantPool servantResponse
+  ];
+  meta = {
+    homepage = "http://github.com/zalora/servant-postgresql";
+    description = "Useful functions and instances for using servant with a PostgreSQL context";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/servant-response/default.nix b/pkgs/development/libraries/haskell/servant-response/default.nix
new file mode 100644
index 000000000000..3f7f9c1eee05
--- /dev/null
+++ b/pkgs/development/libraries/haskell/servant-response/default.nix
@@ -0,0 +1,16 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, aeson, httpTypes, text }:
+
+cabal.mkDerivation (self: {
+  pname = "servant-response";
+  version = "0.1";
+  sha256 = "0vgzi6nm3f1vjbnvhzcr6v2fh75fsl18wsps54ya0mbmfn2v6chy";
+  buildDepends = [ aeson httpTypes text ];
+  meta = {
+    homepage = "http://github.com/zalora/servant";
+    description = "Machinery to express how servant should turn results of database operations into proper JSON-encodable response types";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/servant-scotty/default.nix b/pkgs/development/libraries/haskell/servant-scotty/default.nix
new file mode 100644
index 000000000000..732b2c95cc7e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/servant-scotty/default.nix
@@ -0,0 +1,20 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, aeson, httpTypes, scotty, servant, servantResponse, text
+, transformers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "servant-scotty";
+  version = "0.1.1";
+  sha256 = "0d3yc7aa2p1izizqnj81iscj9hbgbkpyav1ncmxzkr48svr6h783";
+  buildDepends = [
+    aeson httpTypes scotty servant servantResponse text transformers
+  ];
+  meta = {
+    homepage = "http://github.com/zalora/servant";
+    description = "Generate a web service for servant 'Resource's using scotty and JSON";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/servant/default.nix b/pkgs/development/libraries/haskell/servant/default.nix
new file mode 100644
index 000000000000..38f89764c4c8
--- /dev/null
+++ b/pkgs/development/libraries/haskell/servant/default.nix
@@ -0,0 +1,15 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "servant";
+  version = "0.1";
+  sha256 = "1bm5223rjgcm8rb3s2mclmfj2df7j059jjh572a5py0rdqzg3yj0";
+  meta = {
+    homepage = "http://github.com/zalora/servant";
+    description = "A library to generate REST-style webservices on top of scotty, handling all the boilerplate for you";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/shelly/default.nix b/pkgs/development/libraries/haskell/shelly/default.nix
index 587c42d6033e..6deaa209dc87 100644
--- a/pkgs/development/libraries/haskell/shelly/default.nix
+++ b/pkgs/development/libraries/haskell/shelly/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shelly";
-  version = "1.5.4.1";
-  sha256 = "0h38j6vkdgaddj7xardyywibdj5w0wryqxwwpc62idgzlp7mgpb2";
+  version = "1.5.5";
+  sha256 = "1865f5z5wm2qf3ccws9jy8ps7n8slkmfgn0l2m9apja3q2jajqb1";
   buildDepends = [
     async enclosedExceptions exceptions liftedAsync liftedBase
     monadControl mtl systemFileio systemFilepath text time transformers
diff --git a/pkgs/development/libraries/haskell/sized/default.nix b/pkgs/development/libraries/haskell/sized/default.nix
new file mode 100644
index 000000000000..ae75ff26e4c4
--- /dev/null
+++ b/pkgs/development/libraries/haskell/sized/default.nix
@@ -0,0 +1,18 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, constraints, ListLike, monomorphic, typeNatural, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "sized";
+  version = "0.1.0.0";
+  sha256 = "00n9fb7kk3c6dy4j19d9ikmynllpxc7yd51sign0rhvnasmyrghl";
+  buildDepends = [
+    constraints ListLike monomorphic typeNatural vector
+  ];
+  meta = {
+    description = "Sized sequence data-types";
+    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/socket-io/default.nix b/pkgs/development/libraries/haskell/socket-io/default.nix
index 19d6ff3a667a..0a7d4b1c2300 100644
--- a/pkgs/development/libraries/haskell/socket-io/default.nix
+++ b/pkgs/development/libraries/haskell/socket-io/default.nix
@@ -6,14 +6,14 @@
 
 cabal.mkDerivation (self: {
   pname = "socket-io";
-  version = "1.0.1";
-  sha256 = "0257c5wf6b9rmprqq5q5d7fih4s2szwv98w16ggl61p8khf5d2qs";
+  version = "1.1.0";
+  sha256 = "1ffip6jlp3i6pz8gbk8m2ra2q8568mgwgi988yh046w787yf9kpw";
   buildDepends = [
     aeson attoparsec engineIo mtl stm text transformers
     unorderedContainers vector
   ];
-  jailbreak = true;
   meta = {
+    homepage = "http://github.com/ocharles/engine.io";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
     maintainers = with self.stdenv.lib.maintainers; [ ocharles ];
diff --git a/pkgs/development/libraries/haskell/statvfs/default.nix b/pkgs/development/libraries/haskell/statvfs/default.nix
index bb1ebb1b9d8f..15454aa0c971 100644
--- a/pkgs/development/libraries/haskell/statvfs/default.nix
+++ b/pkgs/development/libraries/haskell/statvfs/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "statvfs";
-  version = "0.1";
-  sha256 = "1v45lx7wr27f5sx7cpfsapx1r6akgf1q3hpip1ibbsbhj65ws2r2";
+  version = "0.2";
+  sha256 = "16z9fddgvf5sl7zy7p74fng9lkdw5m9i5np3q4s2h8jdi43mwmg1";
   meta = {
     description = "Get unix filesystem statistics with statfs, statvfs";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/stylish-haskell/default.nix b/pkgs/development/libraries/haskell/stylish-haskell/default.nix
index afa664a68f90..9cc43e142a7e 100644
--- a/pkgs/development/libraries/haskell/stylish-haskell/default.nix
+++ b/pkgs/development/libraries/haskell/stylish-haskell/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "stylish-haskell";
-  version = "0.5.10.1";
-  sha256 = "1jd2dbi844cjs012gwr5idk1jmn860ff8hy1r1s6jndsm69awbba";
+  version = "0.5.10.2";
+  sha256 = "1r1vwn334jdsk6szynzz7w9jpbfqs3zs7wzlpwfigsyyrjy3bn3q";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/tasty-hunit/default.nix b/pkgs/development/libraries/haskell/tasty-hunit/default.nix
index c7e5b53548fa..067e60818183 100644
--- a/pkgs/development/libraries/haskell/tasty-hunit/default.nix
+++ b/pkgs/development/libraries/haskell/tasty-hunit/default.nix
@@ -1,13 +1,14 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, HUnit, mtl, tasty }:
+{ cabal, tasty }:
 
 cabal.mkDerivation (self: {
   pname = "tasty-hunit";
-  version = "0.8.0.1";
-  sha256 = "0a84j8yjqp9x59dy5nbb50vnscb7iimgc60s8vz1p5721gqi62r5";
-  buildDepends = [ HUnit mtl tasty ];
+  version = "0.9";
+  sha256 = "1ivp9h34cdrahqy8i0y10fa0mqxa947dpbwvhr46sjja053asjxc";
+  buildDepends = [ tasty ];
   meta = {
+    homepage = "http://documentup.com/feuerbach/tasty";
     description = "HUnit support for the Tasty test framework";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/twitter-conduit/default.nix b/pkgs/development/libraries/haskell/twitter-conduit/default.nix
index bf2652fa792e..0d5766800442 100644
--- a/pkgs/development/libraries/haskell/twitter-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/twitter-conduit/default.nix
@@ -2,27 +2,27 @@
 
 { cabal, aeson, attoparsec, authenticateOauth, caseInsensitive
 , conduit, conduitExtra, dataDefault, doctest, filepath, hlint
-, hspec, httpClient, httpConduit, httpTypes, lens, monadControl
-, monadLogger, network, resourcet, shakespeare, text, time
+, hspec, httpClient, httpConduit, httpTypes, lens, lensAeson
+, monadControl, monadLogger, networkUri, resourcet, text, time
 , transformers, transformersBase, twitterTypes
 }:
 
 cabal.mkDerivation (self: {
   pname = "twitter-conduit";
-  version = "0.0.5.5";
-  sha256 = "13wk863xjlg8g62yhbq4aar7z77n0awh500l6v41fam99lihzxab";
+  version = "0.0.5.6";
+  sha256 = "1l6gk4538nqknrj082hkdy2jp4gzyq3y473p8gg4mm2n67417r9m";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     aeson attoparsec authenticateOauth conduit conduitExtra dataDefault
-    httpClient httpConduit httpTypes lens monadLogger resourcet
-    shakespeare text time transformers twitterTypes
+    httpClient httpConduit httpTypes lens lensAeson monadLogger
+    networkUri resourcet text time transformers twitterTypes
   ];
   testDepends = [
     aeson attoparsec authenticateOauth caseInsensitive conduit
     conduitExtra dataDefault doctest filepath hlint hspec httpClient
-    httpConduit httpTypes lens monadControl monadLogger network
-    resourcet shakespeare text time transformers transformersBase
+    httpConduit httpTypes lens lensAeson monadControl monadLogger
+    networkUri resourcet text time transformers transformersBase
     twitterTypes
   ];
   meta = {
@@ -31,5 +31,7 @@ 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/twitter-types/default.nix b/pkgs/development/libraries/haskell/twitter-types/default.nix
index 1848211dc3e8..4a3df6f1b9f8 100644
--- a/pkgs/development/libraries/haskell/twitter-types/default.nix
+++ b/pkgs/development/libraries/haskell/twitter-types/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "twitter-types";
-  version = "0.4.20140809";
-  sha256 = "0f32gjvpzcy5ld2j6mhsvaxaiyzyp5pvqjvmgawaiy78c3kxi8gh";
+  version = "0.5.0";
+  sha256 = "0nnis96rki60ily7ydq155nawmhz7dn51d1d3hwikb1vz16ji47a";
   buildDepends = [ aeson httpTypes text unorderedContainers ];
   testDepends = [
     aeson attoparsec filepath httpTypes HUnit testFramework
diff --git a/pkgs/development/libraries/haskell/type-natural/default.nix b/pkgs/development/libraries/haskell/type-natural/default.nix
new file mode 100644
index 000000000000..2e56f8c396b4
--- /dev/null
+++ b/pkgs/development/libraries/haskell/type-natural/default.nix
@@ -0,0 +1,20 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, constraints, equationalReasoning, monomorphic, singletons
+}:
+
+cabal.mkDerivation (self: {
+  pname = "type-natural";
+  version = "0.2.3.1";
+  sha256 = "0qi5b3d0vkm1b2kda3ifw6g7djx91wj7q36la02yadlvmb4jcp1g";
+  buildDepends = [
+    constraints equationalReasoning monomorphic singletons
+  ];
+  meta = {
+    homepage = "https://github.com/konn/type-natural";
+    description = "Type-level natural and proofs of their properties";
+    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/vty/5.1.4.nix b/pkgs/development/libraries/haskell/vty/5.2.1.nix
index 24d123d67cc8..6034807929e3 100644
--- a/pkgs/development/libraries/haskell/vty/5.1.4.nix
+++ b/pkgs/development/libraries/haskell/vty/5.2.1.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "vty";
-  version = "5.1.4";
-  sha256 = "157saacy6lp2ngl0dz9ri4ji1vj191d1239x1xykna8y618r0vqf";
+  version = "5.2.1";
+  sha256 = "15xg7yznizscvyjlnivakrzk60l0a0pigax7sgnn2ab79rfzcxww";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/wai-extra/default.nix b/pkgs/development/libraries/haskell/wai-extra/default.nix
index 184adcc03dda..39514c8a3bd3 100644
--- a/pkgs/development/libraries/haskell/wai-extra/default.nix
+++ b/pkgs/development/libraries/haskell/wai-extra/default.nix
@@ -9,8 +9,8 @@
 
 cabal.mkDerivation (self: {
   pname = "wai-extra";
-  version = "3.0.2";
-  sha256 = "1xynrcm8i8iyyc4dy7nsziy0g4yc6gqx0h5vs86f85i1j0mrf3xv";
+  version = "3.0.2.1";
+  sha256 = "02jamvina7m9wjz0hd7gj309d1vcmhgdwyh9y1bfpvq29ngqkkca";
   buildDepends = [
     ansiTerminal base64Bytestring blazeBuilder caseInsensitive
     dataDefaultClass deepseq fastLogger httpTypes liftedBase network
diff --git a/pkgs/development/libraries/haskell/websockets/default.nix b/pkgs/development/libraries/haskell/websockets/default.nix
index c74fad5f1a82..5db1ec416139 100644
--- a/pkgs/development/libraries/haskell/websockets/default.nix
+++ b/pkgs/development/libraries/haskell/websockets/default.nix
@@ -19,7 +19,6 @@ cabal.mkDerivation (self: {
     entropy HUnit ioStreams mtl network QuickCheck random SHA
     testFramework testFrameworkHunit testFrameworkQuickcheck2 text
   ];
-  jailbreak = true;
   meta = {
     homepage = "http://jaspervdj.be/websockets";
     description = "A sensible and clean way to write WebSocket-capable servers in Haskell";
diff --git a/pkgs/development/libraries/haskell/wl-pprint-terminfo/default.nix b/pkgs/development/libraries/haskell/wl-pprint-terminfo/default.nix
index 5a3c75f61657..37dc11b1f0f4 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";
-  sha256 = "04220hgrjjsz0ir65s6ynrjgdmqlfcw49fb158w7wgxxh69kc7h6";
+  version = "3.7.1.1";
+  sha256 = "1mjnbkk3cw2v7nda7qxdkl21pmclz6m17sviqp4qf3rc8rgin3zd";
   buildDepends = [
     nats semigroups terminfo text transformers wlPprintExtras
   ];
diff --git a/pkgs/development/libraries/haskell/wreq/default.nix b/pkgs/development/libraries/haskell/wreq/default.nix
index 9772418173bc..d0a3e94fcd26 100644
--- a/pkgs/development/libraries/haskell/wreq/default.nix
+++ b/pkgs/development/libraries/haskell/wreq/default.nix
@@ -1,23 +1,24 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
 { cabal, aeson, attoparsec, doctest, exceptions, filepath
-, httpClient, httpClientTls, httpTypes, HUnit, lens, mimeTypes
-, temporary, testFramework, testFrameworkHunit, text, time
+, httpClient, httpClientTls, httpTypes, HUnit, lens, lensAeson
+, mimeTypes, temporary, testFramework, testFrameworkHunit, text
+, time
 }:
 
 cabal.mkDerivation (self: {
   pname = "wreq";
-  version = "0.1.0.1";
-  sha256 = "05w3b555arsab8a5w73nm9pk3p9r6jipi6cd3ngxv48gdn9wzhvz";
+  version = "0.2.0.0";
+  sha256 = "0ajrwn4yn6h65v97jfhbb4x3j307gdf34dyjnnhsrmsf7911l44d";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     aeson attoparsec exceptions httpClient httpClientTls httpTypes lens
-    mimeTypes text time
+    lensAeson mimeTypes text time
   ];
   testDepends = [
-    aeson doctest filepath httpClient httpTypes HUnit lens temporary
-    testFramework testFrameworkHunit text
+    aeson doctest filepath httpClient httpTypes HUnit lens lensAeson
+    temporary testFramework testFrameworkHunit text
   ];
   doCheck = false;
   meta = {
diff --git a/pkgs/development/libraries/haskell/xml-lens/default.nix b/pkgs/development/libraries/haskell/xml-lens/default.nix
index fd9609ec25f7..f9e604419752 100644
--- a/pkgs/development/libraries/haskell/xml-lens/default.nix
+++ b/pkgs/development/libraries/haskell/xml-lens/default.nix
@@ -7,6 +7,7 @@ cabal.mkDerivation (self: {
   version = "0.1.6.1";
   sha256 = "093grvlpm19l3g10ka82xpzl2wr0gli71kfkbvk4gvg3194fkw4h";
   buildDepends = [ lens text xmlConduit ];
+  jailbreak = true;
   meta = {
     homepage = "https://github.com/fumieval/xml-lens";
     description = "Lenses, traversals, prisms for xml-conduit";
diff --git a/pkgs/development/libraries/haskell/yaml/default.nix b/pkgs/development/libraries/haskell/yaml/default.nix
index b5438fabc123..26cb0dec098d 100644
--- a/pkgs/development/libraries/haskell/yaml/default.nix
+++ b/pkgs/development/libraries/haskell/yaml/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yaml";
-  version = "0.8.8.4";
-  sha256 = "1mh5xv66cqvk0r5n6pwcm11m9489y40l69ca417yvymkksmncc7b";
+  version = "0.8.9";
+  sha256 = "13qqqil19yi1qbl9gqma6kxwkz8j5iq6z347fabk916gy9jng3dl";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/yesod-auth-hashdb/default.nix b/pkgs/development/libraries/haskell/yesod-auth-hashdb/default.nix
new file mode 100644
index 000000000000..9f577fc4520b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yesod-auth-hashdb/default.nix
@@ -0,0 +1,22 @@
+# This file was auto-generated by cabal2nix. Please do NOT edit manually!
+
+{ cabal, cryptohash, pwstoreFast, text, yesodAuth, yesodCore
+, yesodForm, yesodPersistent
+}:
+
+cabal.mkDerivation (self: {
+  pname = "yesod-auth-hashdb";
+  version = "1.3.0.1";
+  sha256 = "0q78mw09g6b04zaz54s03222mh59nm604qh8gyw5kka06f93hk4q";
+  buildDepends = [
+    cryptohash pwstoreFast text yesodAuth yesodCore yesodForm
+    yesodPersistent
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "Authentication plugin for Yesod";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ ianwookim ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yesod-core/default.nix b/pkgs/development/libraries/haskell/yesod-core/default.nix
index 90d354a22cff..857b237ba428 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";
-  sha256 = "0dlvg8zpr1qyav3svqybsqsrmrl9n8s1kdzxf6zxa3pn582d48il";
+  version = "1.2.19.1";
+  sha256 = "1021z0jrfbafbdybpj0jkacr9ljyap5cpmfk2911dsz3nz7sy6zg";
   buildDepends = [
     aeson attoparsecConduit blazeBuilder blazeHtml blazeMarkup
     caseInsensitive cereal clientsession conduit conduitExtra cookie
diff --git a/pkgs/development/libraries/hwloc/default.nix b/pkgs/development/libraries/hwloc/default.nix
index 3c5f198cea60..d4d9663441f7 100644
--- a/pkgs/development/libraries/hwloc/default.nix
+++ b/pkgs/development/libraries/hwloc/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   doCheck = !stdenv.isCygwin;
 
   meta = {
-    description = "hwloc, a portable abstraction of hierarchical architectures for high-performance computing";
+    description = "Portable abstraction of hierarchical architectures for high-performance computing";
 
     longDescription = ''
        hwloc provides a portable abstraction (across OS,
diff --git a/pkgs/development/libraries/jasper/default.nix b/pkgs/development/libraries/jasper/default.nix
index 4046c05f79e5..ed51a0a28206 100644
--- a/pkgs/development/libraries/jasper/default.nix
+++ b/pkgs/development/libraries/jasper/default.nix
@@ -15,6 +15,6 @@ stdenv.mkDerivation rec {
   
   meta = {
     homepage = http://www.ece.uvic.ca/~mdadams/jasper/;
-    description = "JasPer JPEG2000 Library";
+    description = "JPEG2000 Library";
   };
 }
diff --git a/pkgs/development/libraries/java/classpath/default.nix b/pkgs/development/libraries/java/classpath/default.nix
index bbfc6ed38cc3..eff52cc177b6 100644
--- a/pkgs/development/libraries/java/classpath/default.nix
+++ b/pkgs/development/libraries/java/classpath/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   configureFlags = "--disable-Werror --disable-plugin --with-antlr-jar=${antlr}/lib/antlr.jar";
 
   meta = {
-    description = "GNU Classpath, essential libraries for Java";
+    description = "Essential libraries for Java";
 
     longDescription = ''
       GNU Classpath, Essential Libraries for Java, is a GNU project to create
diff --git a/pkgs/development/libraries/java/rhino/default.nix b/pkgs/development/libraries/java/rhino/default.nix
index 42bdba7567c5..34aaded7cb44 100644
--- a/pkgs/development/libraries/java/rhino/default.nix
+++ b/pkgs/development/libraries/java/rhino/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation {
     '';
 
   meta = {
-    description = "Mozilla Rhino: JavaScript for Java";
+    description = "An implementation of JavaScript written in Java";
 
     longDescription =
       '' Rhino is an open-source implementation of JavaScript written
diff --git a/pkgs/development/libraries/kerberos/krb5.nix b/pkgs/development/libraries/kerberos/krb5.nix
index 647a6b031138..eeb09a68afbe 100644
--- a/pkgs/development/libraries/kerberos/krb5.nix
+++ b/pkgs/development/libraries/kerberos/krb5.nix
@@ -23,6 +23,8 @@ stdenv.mkDerivation (rec {
     cd ${name}/src
   '';
 
+  configureFlags = "--with-tcl=no";
+
   #doCheck = true; # report: No suitable file for testing purposes
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/libassuan/default.nix b/pkgs/development/libraries/libassuan/default.nix
index f5a3d92d3db1..90ce4f970e3d 100644
--- a/pkgs/development/libraries/libassuan/default.nix
+++ b/pkgs/development/libraries/libassuan/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "Libassuan, the IPC library used by GnuPG and related software";
+    description = "IPC library used by GnuPG and related software";
 
     longDescription = ''
       Libassuan is a small library implementing the so-called Assuan
diff --git a/pkgs/development/libraries/libcddb/default.nix b/pkgs/development/libraries/libcddb/default.nix
index b9823cefd2d9..9a284d8988d2 100644
--- a/pkgs/development/libraries/libcddb/default.nix
+++ b/pkgs/development/libraries/libcddb/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "Libcddb is a C library to access data on a CDDB server (freedb.org)";
+    description = "C library to access data on a CDDB server (freedb.org)";
     license = stdenv.lib.licenses.lgpl2Plus;
     homepage = http://libcddb.sourceforge.net/;
   };
diff --git a/pkgs/development/libraries/libchamplain/default.nix b/pkgs/development/libraries/libchamplain/default.nix
index 51b7f7e181d0..9cdf9d411ccd 100644
--- a/pkgs/development/libraries/libchamplain/default.nix
+++ b/pkgs/development/libraries/libchamplain/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     homepage = http://projects.gnome.org/libchamplain/;
     license = stdenv.lib.licenses.lgpl2Plus;
 
-    description = "libchamplain, a C library providing a ClutterActor to display maps";
+    description = "C library providing a ClutterActor to display maps";
 
     longDescription =
       '' libchamplain is a C library providing a ClutterActor to display
diff --git a/pkgs/development/libraries/libchop/default.nix b/pkgs/development/libraries/libchop/default.nix
index f0d7fbfbeb69..37af9756724f 100644
--- a/pkgs/development/libraries/libchop/default.nix
+++ b/pkgs/development/libraries/libchop/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "libchop, tools & library for data backup and distributed storage";
+    description = "Tools & library for data backup and distributed storage";
 
     longDescription =
       '' Libchop is a set of utilities and library for data backup and
diff --git a/pkgs/development/libraries/libdaemon/default.nix b/pkgs/development/libraries/libdaemon/default.nix
index ba7e3e47ff76..cb8d07fec902 100644
--- a/pkgs/development/libraries/libdaemon/default.nix
+++ b/pkgs/development/libraries/libdaemon/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--disable-lynx" ];
 
   meta = {
-    description = "libdaemon, a lightweight C library that eases the writing of UNIX daemons";
+    description = "Lightweight C library that eases the writing of UNIX daemons";
 
     homepage = http://0pointer.de/lennart/projects/libdaemon/;
 
diff --git a/pkgs/development/libraries/libdiscid/default.nix b/pkgs/development/libraries/libdiscid/default.nix
index f9d1fc87870d..8c5c8bef3513 100644
--- a/pkgs/development/libraries/libdiscid/default.nix
+++ b/pkgs/development/libraries/libdiscid/default.nix
@@ -1,26 +1,21 @@
 { stdenv, fetchurl, cmake, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "libdiscid-0.2.2";
+  name = "libdiscid-0.6.1";
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ cmake ];
 
   src = fetchurl {
-    url = "http://users.musicbrainz.org/~matt/${name}.tar.gz";
-    sha256 = "00l4ln9rk0vqf67iccwqrgc9qx1al92i05zylh85kd1zn9d5sjwp";
+    url = "http://ftp.musicbrainz.org/pub/musicbrainz/libdiscid/${name}.tar.gz";
+    sha256 = "1mbd5y9056638cffpfwc6772xwrsk18prv1djsr6jpfim38jpsxc";
   };
 
-  # developer forgot to update his version number
-  # this is propagated to pkg-config
-  preConfigure = ''
-    substituteInPlace "CMakeLists.txt" \
-      --replace "PROJECT_VERSION 0.1.1" "PROJECT_VERSION 0.2.2"
-  '';
-
-  meta = {
+  meta = with stdenv.lib; {
     description = "A C library for creating MusicBrainz DiscIDs from audio CDs";
     homepage = http://musicbrainz.org/doc/libdiscid;
-    license = stdenv.lib.licenses.lgpl21;
+    maintainers = with maintainers; [ emery ];
+    license = licenses.lgpl21;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/libdnet/default.nix b/pkgs/development/libraries/libdnet/default.nix
index 50bdaa1c4c08..acd930ddd015 100644
--- a/pkgs/development/libraries/libdnet/default.nix
+++ b/pkgs/development/libraries/libdnet/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "libdnet provides a simplified, portable interface to several low-level networking routines";
+    description = "Provides a simplified, portable interface to several low-level networking routines";
     homepage = http://code.google.com/p/libdnet/;
     license = "BSD"; # New BSD license
     maintainers = [stdenv.lib.maintainers.marcweber];
diff --git a/pkgs/development/libraries/libelf/default.nix b/pkgs/development/libraries/libelf/default.nix
index d9436456d0d4..407b367d6b7f 100644
--- a/pkgs/development/libraries/libelf/default.nix
+++ b/pkgs/development/libraries/libelf/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation (rec {
   doCheck = true;
 
   meta = {
-    description = "Libelf, an ELF object file access library";
+    description = "ELF object file access library";
 
     homepage = http://www.mr511.de/software/english.html;
 
diff --git a/pkgs/development/libraries/libevent/default.nix b/pkgs/development/libraries/libevent/default.nix
index bb854139b794..57cf17383420 100644
--- a/pkgs/development/libraries/libevent/default.nix
+++ b/pkgs/development/libraries/libevent/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "libevent, an event notification library";
+    description = "Event notification library";
 
     longDescription =
       '' The libevent API provides a mechanism to execute a callback function
diff --git a/pkgs/development/libraries/libextractor/default.nix b/pkgs/development/libraries/libextractor/default.nix
index 6df5ca683f1f..18387c904f83 100644
--- a/pkgs/development/libraries/libextractor/default.nix
+++ b/pkgs/development/libraries/libextractor/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   #postInstall = "make check";
 
   meta = {
-    description = "GNU libextractor, a simple library for keyword extraction";
+    description = "Simple library for keyword extraction";
 
     longDescription =
       '' GNU libextractor is a library used to extract meta-data from files
diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix
index ba3de49ede8a..f47d3a627295 100644
--- a/pkgs/development/libraries/libgcrypt/default.nix
+++ b/pkgs/development/libraries/libgcrypt/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation (rec {
   '';
 
   meta = {
-    description = "GNU Libgcrypt, a general-pupose cryptographic library";
+    description = "General-pupose cryptographic library";
 
     longDescription = ''
       GNU Libgcrypt is a general purpose cryptographic library based on
diff --git a/pkgs/development/libraries/libiconv/default.nix b/pkgs/development/libraries/libiconv/default.nix
index 7b669cd780ae..3bdb85a78ebd 100644
--- a/pkgs/development/libraries/libiconv/default.nix
+++ b/pkgs/development/libraries/libiconv/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "GNU libiconv, an iconv(3) implementation";
+    description = "An iconv(3) implementation";
 
     longDescription = ''
       Some programs, like mailers and web browsers, must be able to convert
diff --git a/pkgs/development/libraries/libidn/default.nix b/pkgs/development/libraries/libidn/default.nix
index 802ee9e3e88f..37d19d10f290 100644
--- a/pkgs/development/libraries/libidn/default.nix
+++ b/pkgs/development/libraries/libidn/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.gnu.org/software/libidn/;
-    description = "GNU Libidn library for internationalized domain names";
+    description = "Library for internationalized domain names";
 
     longDescription = ''
       GNU Libidn is a fully documented implementation of the
diff --git a/pkgs/development/libraries/libksba/default.nix b/pkgs/development/libraries/libksba/default.nix
index 5e038ad85720..dbd2516c0595 100644
--- a/pkgs/development/libraries/libksba/default.nix
+++ b/pkgs/development/libraries/libksba/default.nix
@@ -12,6 +12,6 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.gnupg.org;
-    description = "Libksba is a CMS and X.509 access library under development";
+    description = "CMS and X.509 access library under development";
   };
 }
diff --git a/pkgs/development/libraries/libmicrohttpd/default.nix b/pkgs/development/libraries/libmicrohttpd/default.nix
index 959dca475732..39795267a2c5 100644
--- a/pkgs/development/libraries/libmicrohttpd/default.nix
+++ b/pkgs/development/libraries/libmicrohttpd/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = {
-    description = "GNU libmicrohttpd, an embeddable HTTP server library";
+    description = "Embeddable HTTP server library";
 
     longDescription = ''
       GNU libmicrohttpd is a small C library that is supposed to make
diff --git a/pkgs/development/libraries/libnfc/default.nix b/pkgs/development/libraries/libnfc/default.nix
new file mode 100644
index 000000000000..a018ce1f0fa0
--- /dev/null
+++ b/pkgs/development/libraries/libnfc/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, libusb }:
+
+stdenv.mkDerivation rec {
+  name = "libnfc-${version}";
+  version = "1.7.1";
+
+  src = fetchurl {
+    url = "http://dl.bintray.com/nfc-tools/sources/libnfc-1.7.1.tar.bz2";
+    sha256 = "0wj0iwwcpmpalyk61aa7yc6i4p9hgdajkrgnlswgk0vnwbc78pll";
+  };
+
+  buildInputs = [ libusb ];
+
+  meta = with stdenv.lib; {
+    description = "Open source library libnfc for Near Field Communication";
+    license = licenses.gpl3;
+    homepage = http://code.google.com/p/libnfc/;
+    maintainers = with maintainers; [offline];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/pkgs/development/libraries/libnftnl/default.nix b/pkgs/development/libraries/libnftnl/default.nix
new file mode 100644
index 000000000000..cb1e83467424
--- /dev/null
+++ b/pkgs/development/libraries/libnftnl/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, libmnl }:
+
+stdenv.mkDerivation rec {
+  name = "libnftnl-1.0.2";
+
+  src = fetchurl {
+    url = "netfilter.org/projects/libnftnl/files/${name}.tar.bz2";
+    sha256 = "1p268cv85l4ipd1p9ipjdrfgba14cblp01apv7wc44zmwfr2gkkq";
+  };
+
+  buildInputs = [ pkgconfig libmnl ];
+
+  meta = with stdenv.lib; {
+    description = "a userspace library providing a low-level netlink API to the in-kernel nf_tables subsystem";
+    homepage = http://netfilter.org/projects/libnftnl;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ wkennington ];
+  };
+}
diff --git a/pkgs/development/libraries/libofa/default.nix b/pkgs/development/libraries/libofa/default.nix
index 2e2640e86362..6ffef2140ec2 100644
--- a/pkgs/development/libraries/libofa/default.nix
+++ b/pkgs/development/libraries/libofa/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://code.google.com/musicip-libofa/;
-    description = "LibOFA - Library Open Fingerprint Architecture";
+    description = "Library Open Fingerprint Architecture";
     longDescription = ''
       LibOFA (Library Open Fingerprint Architecture) is an open-source audio
       fingerprint created and provided by MusicIP'';
diff --git a/pkgs/development/libraries/libsigsegv/default.nix b/pkgs/development/libraries/libsigsegv/default.nix
index ae6299286a17..b6be8d194c15 100644
--- a/pkgs/development/libraries/libsigsegv/default.nix
+++ b/pkgs/development/libraries/libsigsegv/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.gnu.org/software/libsigsegv/;
-    description = "GNU libsigsegv, a library to handle page faults in user mode";
+    description = "Library to handle page faults in user mode";
 
     longDescription = ''
       GNU libsigsegv is a library for handling page faults in user mode. A
diff --git a/pkgs/development/libraries/libspectre/default.nix b/pkgs/development/libraries/libspectre/default.nix
index 7d46f9e32cef..0e5f976c1224 100644
--- a/pkgs/development/libraries/libspectre/default.nix
+++ b/pkgs/development/libraries/libspectre/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://libspectre.freedesktop.org/;
-    description = "libspectre, a PostScript rendering library";
+    description = "PostScript rendering library";
 
     longDescription = ''
       libspectre is a small library for rendering Postscript
diff --git a/pkgs/development/libraries/libtar/default.nix b/pkgs/development/libraries/libtar/default.nix
new file mode 100644
index 000000000000..212a3a23939b
--- /dev/null
+++ b/pkgs/development/libraries/libtar/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchgit, fetchpatch, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  version = "1.2.20";
+  name = "libtar-${version}";
+
+  # Maintenance repo for libtar (Arch Linux uses this)
+  src = fetchgit {
+    url = "git://repo.or.cz/libtar.git";
+    rev = "refs/tags/v${version}";
+    sha256 = "1pjsqnqjaqgkzf1j8m6y5h76bwprffsjjj6gk8rh2fjsha14rqn9";
+  };
+
+  patches = let
+    fp =  name: sha256:
+      fetchpatch {
+        url = "http://sources.debian.net/data/main/libt/libtar/1.2.20-4/debian/patches/${name}.patch";
+        inherit sha256;
+      };
+    in [
+      (fp "no_static_buffers"         "0yv90bhvqjj0v650gzn8fbzhdhzx5z0r1lh5h9nv39wnww435bd0")
+      (fp "no_maxpathlen"             "11riv231wpbdb1cm4nbdwdsik97wny5sxcwdgknqbp61ibk572b7")
+      (fp "CVE-2013-4420"             "0d010190bqgr2ggy02qwxvjaymy9a22jmyfwdfh4086v876cbxpq")
+      (fp "th_get_size-unsigned-int"  "1ravbs5yrfac98mnkrzciw9hd2fxq4dc07xl3wx8y2pv1bzkwm41")
+    ];
+
+  buildInputs = [ autoreconfHook ];
+
+  meta = with stdenv.lib; {
+    description = "C library for manipulating POSIX tar files";
+    homepage = http://www.feep.net/libtar/;
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}
diff --git a/pkgs/development/libraries/libtasn1/default.nix b/pkgs/development/libraries/libtasn1/default.nix
index bae22ef220fc..5a2508a45067 100644
--- a/pkgs/development/libraries/libtasn1/default.nix
+++ b/pkgs/development/libraries/libtasn1/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.gnu.org/software/libtasn1/;
-    description = "GNU Libtasn1, an ASN.1 library";
+    description = "An ASN.1 library";
 
     longDescription =
       '' Libtasn1 is the ASN.1 library used by GnuTLS, GNU Shishi and some
diff --git a/pkgs/development/libraries/libtoxcore/default.nix b/pkgs/development/libraries/libtoxcore/default.nix
index 6741838d33b6..b5665fe402e7 100644
--- a/pkgs/development/libraries/libtoxcore/default.nix
+++ b/pkgs/development/libraries/libtoxcore/default.nix
@@ -2,8 +2,8 @@
 , libvpx, check, libconfig, pkgconfig }:
 
 let
-  version = "e1158be5a6";
-  date = "20140728";
+  version = "f83fcbb13c0";
+  date = "20140811";
 in
 stdenv.mkDerivation rec {
   name = "tox-core-${date}-${version}";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   src = fetchurl {
     url = "https://github.com/irungentoo/toxcore/tarball/${version}";
     name = "${name}.tar.gz";
-    sha256 = "1rsh1pbwvngsx5slmd6608b1zqs3jvq70bjr9zyziap9vxka3z1v";
+    sha256 = "09g74h3qnx9adyxxvzay8m2idbgbln7m4kkm7sg9925mvi5abb1w";
   };
 
   NIX_LDFLAGS = "-lgcc_s";
diff --git a/pkgs/development/libraries/libunistring/default.nix b/pkgs/development/libraries/libunistring/default.nix
index b578d895c5f0..2a87d7a32490 100644
--- a/pkgs/development/libraries/libunistring/default.nix
+++ b/pkgs/development/libraries/libunistring/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation (rec {
   meta = {
     homepage = http://www.gnu.org/software/libunistring/;
 
-    description = "GNU Libunistring, a Unicode string library";
+    description = "Unicode string library";
 
     longDescription = ''
       This library provides functions for manipulating Unicode strings
diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix
index bd1f926c9cbe..b11b889a8d99 100644
--- a/pkgs/development/libraries/libuv/default.nix
+++ b/pkgs/development/libraries/libuv/default.nix
@@ -100,4 +100,5 @@ in
     v0_11_24 = "1hygn81iwbdshzrq603qm6k1r7pjflx9qqazmlb72c3vy1hq21c6";
     v0_11_25 = "1abszivlxf0sddwvcj3jywfsip5q9vz6axvn40qqyl8sjs80zcvj";
     v0_11_26 = "1pfjdwrxhqz1vqcdm42g3j45ghrb4yl7wsngvraclhgqicff1sc3";
+    v0_11_29 = "1z07phfwryfy2155p3lxcm2a33h20sfl96lds5dghn157x6csz7m";
   }
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index 4027bd8a84e0..e2ff06fcd430 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -4,14 +4,14 @@
 , dnsmasq, libnl
 }:
 
-let version = "1.2.5"; in
+let version = "1.2.7"; in
 
 stdenv.mkDerivation rec {
   name = "libvirt-${version}";
 
   src = fetchurl {
     url = "http://libvirt.org/sources/${name}.tar.gz";
-    sha256 = "0igd74wkksgv24i2xaa8wx51iqpgjp1v7820pk93m0jv8gipvscf";
+    sha256 = "1z6yfzzbf9rvqjq1my7x1br73g8dz8kij3khpb4x520ip8n4dyrx";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/libxmi/default.nix b/pkgs/development/libraries/libxmi/default.nix
index 85f0dbddb0b8..42c427605c4a 100644
--- a/pkgs/development/libraries/libxmi/default.nix
+++ b/pkgs/development/libraries/libxmi/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
   preConfigure = "cp ${libtool}/share/libtool/config/config.sub .";
 
   meta = {
-    description = "GNU libxmi, a library for rasterizing 2-D vector graphics";
+    description = "Library for rasterizing 2-D vector graphics";
     homepage = http://www.gnu.org/software/libxmi/;
     license = stdenv.lib.licenses.gpl2Plus;
     platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
diff --git a/pkgs/development/libraries/lightning/default.nix b/pkgs/development/libraries/lightning/default.nix
index 951627c81c2f..036d9c61d07a 100644
--- a/pkgs/development/libraries/lightning/default.nix
+++ b/pkgs/development/libraries/lightning/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, binutils }:
 
 stdenv.mkDerivation rec {
-  name = "lightning-2.0.4";
+  name = "lightning-2.0.5";
 
   src = fetchurl {
-    url = "ftp://ftp.gnu.org/gnu/lightning/${name}.tar.gz";
-    sha256 = "1lrckrx51d5hrv66bc99fd4b7g2wwn4vr304hwq3glfzhb8jqcdy";
+    url = "mirror://gnu/lightning/${name}.tar.gz";
+    sha256 = "0jm9a8ddxc1v9hyzyv4ybg37fjac2yjqv1hkd262wxzqms36mdk5";
   };
 
   # Needs libopcodes.so  from binutils for 'make check'
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.gnu.org/software/lightning/;
-    description = "GNU lightning, a run-time code generation library";
+    description = "Run-time code generation library";
 
     longDescription = ''
       GNU lightning is a library that generates assembly language code
diff --git a/pkgs/development/libraries/ming/default.nix b/pkgs/development/libraries/ming/default.nix
index f9632dca9d22..a470f7715611 100644
--- a/pkgs/development/libraries/ming/default.nix
+++ b/pkgs/development/libraries/ming/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "Ming, a library for generating Flash `.swf' files";
+    description = "Library for generating Flash `.swf' files";
 
     longDescription = ''
       Ming is a library for generating Macromedia Flash files (.swf),
diff --git a/pkgs/development/libraries/movit/default.nix b/pkgs/development/libraries/movit/default.nix
index bfd474c88e71..88f18003977b 100644
--- a/pkgs/development/libraries/movit/default.nix
+++ b/pkgs/development/libraries/movit/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "movit-${version}";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchurl {
     url = "http://movit.sesse.net/${name}.tar.gz";
-    sha256 = "1k3qbkxapcplpsx22xh4m4ccp9fhsjfcj3pjzbcnrc51103aklag";
+    sha256 = "0jka9l3cx7q09rpz5x6rv6ii8kbgm2vc419gx2rb9rc8sl81hzj1";
   };
 
   GTEST_DIR = "${gtest}";
diff --git a/pkgs/development/libraries/mpc/default.nix b/pkgs/development/libraries/mpc/default.nix
index 652227d47e85..3d05fa2e0405 100644
--- a/pkgs/development/libraries/mpc/default.nix
+++ b/pkgs/development/libraries/mpc/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "GNU MPC, a library for multiprecision complex arithmetic with exact rounding";
+    description = "Library for multiprecision complex arithmetic with exact rounding";
 
     longDescription =
       '' GNU MPC is a C library for the arithmetic of complex numbers with
diff --git a/pkgs/development/libraries/mpfr/default.nix b/pkgs/development/libraries/mpfr/default.nix
index e3fbaececb9b..653481aeccd6 100644
--- a/pkgs/development/libraries/mpfr/default.nix
+++ b/pkgs/development/libraries/mpfr/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.mpfr.org/;
-    description = "GNU MPFR, a library for multiple-precision floating-point arithmetic";
+    description = "Library for multiple-precision floating-point arithmetic";
 
     longDescription = ''
       The GNU MPFR library is a C library for multiple-precision
diff --git a/pkgs/development/libraries/mpich2/default.nix b/pkgs/development/libraries/mpich2/default.nix
index 5fba9c564181..b80d549931c6 100644
--- a/pkgs/development/libraries/mpich2/default.nix
+++ b/pkgs/development/libraries/mpich2/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
     '';
 
   meta = {
-    description = "MPICH2, an implementation of the Message Passing Interface (MPI) standard";
+    description = "Implementation of the Message Passing Interface (MPI) standard";
 
     longDescription = ''
       MPICH2 is a free high-performance and portable implementation of
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index 87953c1158d5..631199bf87c3 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
   postFixup = lib.optionalString stdenv.isDarwin "rm $out/lib/*.so";
 
   meta = {
-    description = "GNU Ncurses, a free software emulation of curses in SVR4 and more";
+    description = "Free software emulation of curses in SVR4 and more";
 
     longDescription = ''
       The Ncurses (new curses) library is a free software emulation of
diff --git a/pkgs/development/libraries/nettle/default.nix b/pkgs/development/libraries/nettle/default.nix
index 57d3732fa6dc..38d197c69ab3 100644
--- a/pkgs/development/libraries/nettle/default.nix
+++ b/pkgs/development/libraries/nettle/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation (rec {
               ./cygwin.patch;
 
   meta = {
-    description = "GNU Nettle, a cryptographic library";
+    description = "Cryptographic library";
 
     longDescription = ''
         Nettle is a cryptographic library that is designed to fit
diff --git a/pkgs/development/libraries/nix-plugins/default.nix b/pkgs/development/libraries/nix-plugins/default.nix
index 3b4f7da94f3d..2c208ce86bbc 100644
--- a/pkgs/development/libraries/nix-plugins/default.nix
+++ b/pkgs/development/libraries/nix-plugins/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation {
     license = stdenv.lib.licenses.mit;
     maintaners = [ stdenv.lib.maintainers.shlevy ];
     platforms = stdenv.lib.platforms.all;
+    broken = true;
   };
 }
diff --git a/pkgs/development/libraries/oniguruma/default.nix b/pkgs/development/libraries/oniguruma/default.nix
index 47a51b68d030..08069533713d 100644
--- a/pkgs/development/libraries/oniguruma/default.nix
+++ b/pkgs/development/libraries/oniguruma/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   
   meta = {
     homepage = http://www.geocities.jp/kosako3/oniguruma/;
-    description = "Oniguruma regular expressions library";
+    description = "Regular expressions library";
     license = "BSD";
   };
 }
diff --git a/pkgs/development/libraries/opal/default.nix b/pkgs/development/libraries/opal/default.nix
index 1f59c0c24a02..c79c3cbe4d62 100644
--- a/pkgs/development/libraries/opal/default.nix
+++ b/pkgs/development/libraries/opal/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   patches = [ ./disable-samples-ftbfs.diff ./libav9.patch ./libav10.patch ];
       
   meta = with stdenv.lib; {
-    description = "OPAL VoIP library";
+    description = "VoIP library";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/development/libraries/openal/default.nix b/pkgs/development/libraries/openal/default.nix
index b5e390eafa85..5a935691ca58 100644
--- a/pkgs/development/libraries/openal/default.nix
+++ b/pkgs/development/libraries/openal/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ cmake ] ++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
 
   meta = {
-    description = "OpenAL, a cross-platform 3D audio API";
+    description = "Cross-platform 3D audio API";
 
     longDescription = ''
       OpenAL is a cross-platform 3D audio API appropriate for use with
diff --git a/pkgs/development/libraries/opencascade/oce.nix b/pkgs/development/libraries/opencascade/oce.nix
index 0da8d2a74040..480664a0d4d3 100644
--- a/pkgs/development/libraries/opencascade/oce.nix
+++ b/pkgs/development/libraries/opencascade/oce.nix
@@ -2,10 +2,10 @@
 ftgl, freetype}:
 
 stdenv.mkDerivation rec {
-  name = "opencascade-oce-0.14.1";
+  name = "opencascade-oce-0.16";
   src = fetchurl {
-    url = https://github.com/tpaviot/oce/archive/OCE-0.14.1.tar.gz;
-    sha256 = "0pfc94nmzipm6zmxywxbly1cpfr6wadxasqqkkbdvzg937mrwl5d";
+    url = https://github.com/tpaviot/oce/archive/OCE-0.16.tar.gz;
+    sha256 = "05bmg1cjz827bpq8s0hp96byirm4c3zc9vx26qz76kjsg8ry87w4";
   };
 
   buildInputs = [ mesa tcl tk file libXmu libtool qt4 ftgl freetype cmake ];
diff --git a/pkgs/development/libraries/openldap/default.nix b/pkgs/development/libraries/openldap/default.nix
index c9da441705c8..cfbbce2f5591 100644
--- a/pkgs/development/libraries/openldap/default.nix
+++ b/pkgs/development/libraries/openldap/default.nix
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
 
   configureFlags =
     [ "--enable-overlays"
+      "--disable-dependency-tracking"   # speeds up one-time build
     ] ++ stdenv.lib.optional (openssl == null) "--without-tls"
       ++ stdenv.lib.optional (cyrus_sasl == null) "--without-cyrus-sasl";
 
diff --git a/pkgs/development/libraries/openmpi/default.nix b/pkgs/development/libraries/openmpi/default.nix
index 678a439fe0ac..15160d3afc49 100644
--- a/pkgs/development/libraries/openmpi/default.nix
+++ b/pkgs/development/libraries/openmpi/default.nix
@@ -1,4 +1,13 @@
-{stdenv, fetchurl, gfortran}:
+{stdenv, fetchurl, gfortran
+
+# Enable the Sun Grid Engine bindings
+, enableSGE ? false
+
+# Pass PATH/LD_LIBRARY_PATH to point to current mpirun by default
+, enablePrefix ? false
+}:
+
+with stdenv.lib;
 
 stdenv.mkDerivation {
   name = "openmpi-1.6.5";
@@ -7,6 +16,10 @@ stdenv.mkDerivation {
     sha256 = "11gws4d3z7934zna2r7m1f80iay2ha17kp42mkh39wjykfwbldzy";
   };
   buildInputs = [ gfortran ];
+  configureFlags = []
+    ++ optional enableSGE "--with-sge"
+    ++ optional enablePrefix "--enable-mpirun-prefix-by-default"
+    ;
   meta = {
     homePage = http://www.open-mpi.org/;
     description = "Open source MPI-2 implementation";
diff --git a/pkgs/development/libraries/pdf2htmlex/default.nix b/pkgs/development/libraries/pdf2htmlex/default.nix
deleted file mode 100644
index 597385aa9fa3..000000000000
--- a/pkgs/development/libraries/pdf2htmlex/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{stdenv, fetchurl, cmake, poppler, fontforge, unzip, pkgconfig, python}:
-
-stdenv.mkDerivation rec {
-  version = "0.8.1";
-  name = "pdf2htmlex-${version}";
-  
-  src = fetchurl {
-      url = "https://github.com/coolwanglu/pdf2htmlEX/archive/v${version}.zip";
-      sha256 = "0v8x03vq46ng9s27ryn76lcsjgpxgak6062jnx59lnyz856wvp8a";
-  };
-
-  buildInputs = [
-    cmake
-    unzip
-    poppler
-    fontforge
-    pkgconfig
-    python
-  ];
-
-  meta = with stdenv.lib; {
-    description = "Convert PDF to HTML without losing text or format. ";
-    license = licenses.gpl3;
-    maintainers = [ maintainers.iElectric ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/plib/default.nix b/pkgs/development/libraries/plib/default.nix
index 35262f797e97..4ab6fb3ad8b4 100644
--- a/pkgs/development/libraries/plib/default.nix
+++ b/pkgs/development/libraries/plib/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "PLIB: A Suite of Portable Game Libraries";
+    description = "A suite of portable game libraries";
 
     longDescription = ''
       PLIB includes sound effects, music, a complete 3D engine, font
diff --git a/pkgs/development/libraries/ppl/default.nix b/pkgs/development/libraries/ppl/default.nix
index f93eee674ffc..9edef767481f 100644
--- a/pkgs/development/libraries/ppl/default.nix
+++ b/pkgs/development/libraries/ppl/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "PPL: The Parma Polyhedra Library";
+    description = "The Parma Polyhedra Library";
 
     longDescription = ''
       The Parma Polyhedra Library (PPL) provides numerical abstractions
diff --git a/pkgs/development/libraries/protobuf/default.nix b/pkgs/development/libraries/protobuf/default.nix
index bba8481780a5..3452335decdc 100644
--- a/pkgs/development/libraries/protobuf/default.nix
+++ b/pkgs/development/libraries/protobuf/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "protobuf-2.5.0";
+  name = "protobuf-2.6.0";
 
   src = fetchurl {
-    url = "http://protobuf.googlecode.com/files/${name}.tar.bz2";
-    sha256 = "0xxn9gxhvsgzz2sgmihzf6pf75clr05mqj6218camwrwajpcbgqk";
+    url = "http://protobuf.googlecode.com/svn-history/r579/rc/protobuf-2.6.0.tar.bz2";
+    sha256 = "0krfkxc85vfznqwbh59qlhp7ld81al9ss35av0gfbg74i0rvjids";
   };
 
   buildInputs = [ zlib ];
diff --git a/pkgs/development/libraries/qt-5/qt-5.3.nix b/pkgs/development/libraries/qt-5/qt-5.3.nix
index 1722a1e52a19..18b464c6f248 100644
--- a/pkgs/development/libraries/qt-5/qt-5.3.nix
+++ b/pkgs/development/libraries/qt-5/qt-5.3.nix
@@ -18,7 +18,7 @@ with stdenv.lib;
 
 let
   v_maj = "5.3";
-  v_min = "0";
+  v_min = "1";
   ver = "${v_maj}.${v_min}";
 in
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   src = fetchurl {
     url = "http://download.qt-project.org/official_releases/qt/"
       + "${v_maj}/${ver}/single/qt-everywhere-opensource-src-${ver}.tar.gz";
-    sha256 = "09gp19377zpqyfzk063b3pjz8gjm2x7xsj71bdpmnhs1scz0khcj";
+    sha256 = "189mgfqxjg0jp0vkfrj55p9brl018wzf7lir8yjr0pajp8jqd2ds";
   };
 
   # The version property must be kept because it will be included into the QtSDK package name
diff --git a/pkgs/development/libraries/readline/readline6.3.nix b/pkgs/development/libraries/readline/readline6.3.nix
index 356c2c055bd5..04db1ffd4469 100644
--- a/pkgs/development/libraries/readline/readline6.3.nix
+++ b/pkgs/development/libraries/readline/readline6.3.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation (rec {
     ];
 
   meta = with stdenv.lib; {
-    description = "GNU Readline, a library for interactive line editing";
+    description = "Library for interactive line editing";
 
     longDescription = ''
       The GNU Readline library provides a set of functions for use by
diff --git a/pkgs/development/libraries/readline/readline6.nix b/pkgs/development/libraries/readline/readline6.nix
index 0559113285c4..d72d6566bbc9 100644
--- a/pkgs/development/libraries/readline/readline6.nix
+++ b/pkgs/development/libraries/readline/readline6.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation (rec {
        import ./readline-6.2-patches.nix patch);
 
   meta = {
-    description = "GNU Readline, a library for interactive line editing";
+    description = "Library for interactive line editing";
 
     longDescription = ''
       The GNU Readline library provides a set of functions for use by
diff --git a/pkgs/development/libraries/science/biology/biolib/default.nix b/pkgs/development/libraries/science/biology/biolib/default.nix
index 0461e5ebcf54..7418bdb6dfe0 100644
--- a/pkgs/development/libraries/science/biology/biolib/default.nix
+++ b/pkgs/development/libraries/science/biology/biolib/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://biolib.open-bio.org/";
-    description = "BioLib";
+    description = "Shared libraries for the major Bio* languages";
     license = stdenv.lib.licenses.gpl2;
     longDescription = ''
       BioLib brings together a set of opensource libraries written
diff --git a/pkgs/development/libraries/science/math/liblapack/3.5.0.nix b/pkgs/development/libraries/science/math/liblapack/3.5.0.nix
new file mode 100644
index 000000000000..0b4badf26e7a
--- /dev/null
+++ b/pkgs/development/libraries/science/math/liblapack/3.5.0.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, gfortran, atlas, cmake, python, shared ? false }:
+let
+  atlasMaybeShared = atlas.override { inherit shared; };
+  usedLibExtension = if shared then ".so" else ".a";
+in
+stdenv.mkDerivation rec {
+  version = "3.5.0";
+  name = "liblapack-${version}";
+  src = fetchurl {
+    url = "http://www.netlib.org/lapack/lapack-${version}.tgz";
+    sha256 = "0lk3f97i9imqascnlf6wr5mjpyxqcdj73pgj97dj2mgvyg9z1n4s";
+  };
+
+  propagatedBuildInputs = [ atlasMaybeShared ];
+  buildInputs = [ gfortran cmake ];
+  nativeBuildInputs = [ python ];
+
+  cmakeFlags = [
+    "-DUSE_OPTIMIZED_BLAS=ON"
+    "-DBLAS_ATLAS_f77blas_LIBRARY=${atlasMaybeShared}/lib/libf77blas${usedLibExtension}"
+    "-DBLAS_ATLAS_atlas_LIBRARY=${atlasMaybeShared}/lib/libatlas${usedLibExtension}"
+    "-DCMAKE_Fortran_FLAGS=-fPIC"
+  ]
+  ++ (stdenv.lib.optional shared "-DBUILD_SHARED_LIBS=ON")
+  ;
+
+  doCheck = ! shared;
+
+  checkPhase = "
+    sed -i 's,^#!.*,#!${python}/bin/python,' lapack_testing.py
+    ctest
+  ";
+
+  enableParallelBuilding = true;
+
+  passthru = {
+    blas = atlas;
+  };
+
+  meta = {
+    inherit version;
+    description = "Linear Algebra PACKage";
+    homepage = "http://www.netlib.org/lapack/";
+    license = "revised-BSD";
+
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/development/libraries/science/math/liblapack/default.nix b/pkgs/development/libraries/science/math/liblapack/default.nix
index f1c99397452d..9f4f43311a47 100644
--- a/pkgs/development/libraries/science/math/liblapack/default.nix
+++ b/pkgs/development/libraries/science/math/liblapack/default.nix
@@ -2,11 +2,12 @@
 let
   atlasMaybeShared = atlas.override { inherit shared; };
   usedLibExtension = if shared then ".so" else ".a";
+  version = "3.4.1";
 in
-stdenv.mkDerivation {
-  name = "liblapack-3.4.1";
+stdenv.mkDerivation rec {
+  name = "liblapack-${version}";
   src = fetchurl {
-    url = "http://www.netlib.org/lapack/lapack-3.4.1.tgz";
+    url = "http://www.netlib.org/lapack/lapack-${version}.tgz";
     sha256 = "93b910f94f6091a2e71b59809c4db4a14655db527cfc5821ade2e8c8ab75380f";
   };
 
@@ -37,6 +38,7 @@ stdenv.mkDerivation {
   };
 
   meta = {
+    inherit version;
     description = "Linear Algebra PACKage";
     homepage = "http://www.netlib.org/lapack/";
     license = "revised-BSD";
diff --git a/pkgs/development/libraries/science/math/openblas/0.2.10.nix b/pkgs/development/libraries/science/math/openblas/0.2.10.nix
new file mode 100644
index 000000000000..a8db06319111
--- /dev/null
+++ b/pkgs/development/libraries/science/math/openblas/0.2.10.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, gfortran, perl, liblapack }:
+
+stdenv.mkDerivation rec {
+  version = "0.2.10";
+
+  name = "openblas-${version}";
+  src = fetchurl {
+    url = "https://github.com/xianyi/OpenBLAS/tarball/v${version}";
+    sha256 = "06i0q4qnd5q5xljzrgvda0gjsczc6l2pl9hw6dn2qjpw38al73za";
+    name = "openblas-${version}.tar.gz";
+  };
+
+  preBuild = "cp ${liblapack.src} lapack-${liblapack.meta.version}.tgz";
+
+  buildInputs = [gfortran perl];
+
+  cpu = builtins.head (stdenv.lib.splitString "-" stdenv.system);
+
+  target = if cpu == "i686" then "P2" else 
+    if cpu == "x86_64" then "CORE2" else
+     # allow autodetect
+      "";
+
+  makeFlags = "${if target != "" then "TARGET=" else ""}${target} FC=gfortran CC=cc PREFIX=\"\$(out)\" INTERFACE64=1";
+
+  meta = {
+    description = "Basic Linear Algebra Subprograms";
+    license = stdenv.lib.licenses.bsd3;
+    homepage = "https://github.com/xianyi/OpenBLAS";
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix
index 6ea7333f6986..c535b1a39dbb 100644
--- a/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/pkgs/development/libraries/science/math/openblas/default.nix
@@ -1,12 +1,7 @@
-{ stdenv, fetchurl, gfortran, perl }:
+{ stdenv, fetchurl, gfortran, perl, liblapack }:
 
 stdenv.mkDerivation rec {
   version = "0.2.2";
-  lapack_version = "3.4.1";
-  lapack_src = fetchurl {
-    url = "http://www.netlib.org/lapack/lapack-${lapack_version}.tgz";
-    sha256 = "93b910f94f6091a2e71b59809c4db4a14655db527cfc5821ade2e8c8ab75380f";
-  };
 
   name = "openblas-${version}";
   src = fetchurl {
@@ -15,7 +10,7 @@ stdenv.mkDerivation rec {
     name = "openblas-${version}.tar.gz";
   };
 
-  preBuild = "cp ${lapack_src} lapack-${lapack_version}.tgz";
+  preBuild = "cp ${liblapack.src} lapack-${liblapack.meta.version}.tgz";
 
   buildInputs = [gfortran perl];
 
diff --git a/pkgs/development/libraries/skalibs/default.nix b/pkgs/development/libraries/skalibs/default.nix
new file mode 100644
index 000000000000..842d74848df6
--- /dev/null
+++ b/pkgs/development/libraries/skalibs/default.nix
@@ -0,0 +1,58 @@
+{stdenv, fetchurl}:
+
+let
+
+  version = "1.6.0.0";
+
+in stdenv.mkDerivation rec {
+  name = "skalibs-${version}";
+
+  src = fetchurl {
+    url = "http://skarnet.org/software/skalibs/${name}.tar.gz";
+    sha256 = "0jz3farll9n5jvz3g6wri99s6njkgmnf0r9jqjlg03f20dzv8c8w";
+  };
+
+  sourceRoot = "prog/${name}";
+
+  # See http://skarnet.org/cgi-bin/archive.cgi?1:mss:75:201405:pkmodhckjklemogbplje
+  patches = [ ./getpeereid.patch ];
+
+  configurePhase = ''
+    pushd conf-compile
+
+    printf "$out/bin"     > conf-defaultpath
+    printf "$out/etc"     > conf-etc
+    printf "$out/bin"     > conf-install-command
+    printf "$out/include" > conf-install-include
+    printf "$out/libexec" > conf-install-libexec
+    printf "$out/lib"     > conf-install-library
+    printf "$out/lib"     > conf-install-library.so
+    printf "$out/sysdeps" > conf-install-sysdeps
+
+    # let nix builder strip things, cross-platform
+    truncate --size 0 conf-stripbins
+    truncate --size 0 conf-striplibs
+
+    rm -f flag-slashpackage
+    touch flag-allstatic
+    touch flag-forcedevr
+
+    popd
+  '';
+
+  preBuild = ''
+    patchShebangs src/sys
+  '';
+
+  preInstall = ''
+    mkdir -p "$out/etc"
+  '';
+
+  meta = {
+    homepage = http://skarnet.org/software/skalibs/;
+    description = "A set of general-purpose C programming libraries.";
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.isc;
+  };
+
+}
diff --git a/pkgs/development/libraries/skalibs/getpeereid.patch b/pkgs/development/libraries/skalibs/getpeereid.patch
new file mode 100644
index 000000000000..c366780e2670
--- /dev/null
+++ b/pkgs/development/libraries/skalibs/getpeereid.patch
@@ -0,0 +1,28 @@
+--- a/src/libstddjb/getpeereid.h
++++ b/src/libstddjb/getpeereid.h
+@@ -3,6 +3,14 @@
+ #ifndef GETPEEREID_H
+ #define GETPEEREID_H
+ 
++#include "sysdeps.h"
++
++#ifdef HASGETPEEREID
++/* syscall exists - do nothing */
++
++#else
++
+ extern int getpeereid (int, int *, int *) ;
+ 
+ #endif
++#endif
+--- a/src/libstddjb/ipc_eid.c
++++ b/src/libstddjb/ipc_eid.c
+@@ -5,7 +5,7 @@
+ 
+ int ipc_eid (int s, unsigned int *u, unsigned int *g)
+ {
+-  int dummyu, dummyg ;
++  unsigned int dummyu, dummyg ;
+   if (getpeereid(s, &dummyu, &dummyg) < 0) return -1 ;
+   *u = (unsigned int)dummyu ;
+   *g = (unsigned int)dummyg ;
diff --git a/pkgs/development/libraries/szip/default.nix b/pkgs/development/libraries/szip/default.nix
index 17f9c973fd0b..2ad2ed55d7c0 100644
--- a/pkgs/development/libraries/szip/default.nix
+++ b/pkgs/development/libraries/szip/default.nix
@@ -8,9 +8,7 @@ stdenv.mkDerivation {
   };
 
   meta = {
-    description = "
-      Szip is a compression library that can be used with the hdf5 library.
-    ";
+    description = "Compression library that can be used with the hdf5 library";
     homepage = http://www.hdfgroup.org/doc_resource/SZIP/;
     license = stdenv.lib.licenses.unfree;
   };
diff --git a/pkgs/development/libraries/talloc/default.nix b/pkgs/development/libraries/talloc/default.nix
index e04363326d01..15e89d9210a1 100644
--- a/pkgs/development/libraries/talloc/default.nix
+++ b/pkgs/development/libraries/talloc/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   '' else "";
 
   meta = {
-    description = "talloc is a hierarchical pool based memory allocator with destructors";
+    description = "Hierarchical pool based memory allocator with destructors";
     homepage = http://tdb.samba.org/;
     license = stdenv.lib.licenses.gpl3;
     platforms = stdenv.lib.platforms.all;
diff --git a/pkgs/development/libraries/tdb/default.nix b/pkgs/development/libraries/tdb/default.nix
index d0eb8987ea08..c53316564351 100644
--- a/pkgs/development/libraries/tdb/default.nix
+++ b/pkgs/development/libraries/tdb/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libxslt libxml2 docbook_xsl ];
 
   meta = {
-    description = "TDB, the trivial database";
+    description = "The trivial database";
     longDescription =
       '' TDB is a Trivial Database. In concept, it is very much like GDBM,
          and BSD's DB except that it allows multiple simultaneous writers and
diff --git a/pkgs/development/libraries/tecla/default.nix b/pkgs/development/libraries/tecla/default.nix
index 6cb20f4e3563..f83b34e40d1a 100644
--- a/pkgs/development/libraries/tecla/default.nix
+++ b/pkgs/development/libraries/tecla/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.astro.caltech.edu/~mcs/tecla/";
-    description = "Tecla command-line editing library";
+    description = "Command-line editing library";
     license = "as-is";
 
     hydraPlatforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/development/libraries/ucommon/default.nix b/pkgs/development/libraries/ucommon/default.nix
index f3ac325b5a12..0e8a95d5ac16 100644
--- a/pkgs/development/libraries/ucommon/default.nix
+++ b/pkgs/development/libraries/ucommon/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "GNU uCommon C++, C++ library to facilitate using C++ design patterns";
+    description = "C++ library to facilitate using C++ design patterns";
     homepage = http://www.gnu.org/software/commoncpp/;
     license = stdenv.lib.licenses.lgpl3Plus;
 
diff --git a/pkgs/development/libraries/v8/default.nix b/pkgs/development/libraries/v8/default.nix
index d3a2511c90c2..4c86de7fb56b 100644
--- a/pkgs/development/libraries/v8/default.nix
+++ b/pkgs/development/libraries/v8/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   '' else null;
 
   meta = with stdenv.lib; {
-    description = "V8 is Google's open source JavaScript engine";
+    description = "Google's open source JavaScript engine";
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.bsd3;
   };
diff --git a/pkgs/development/libraries/xapian/default.nix b/pkgs/development/libraries/xapian/default.nix
index 99837974b1d9..d74a85a9162d 100644
--- a/pkgs/development/libraries/xapian/default.nix
+++ b/pkgs/development/libraries/xapian/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
   buildInputs = [ libuuid zlib ];
 
   meta = { 
-    description = "Xapian Probabilistic Information Retrieval library";
+    description = "Search engine library";
     homepage = "http://xapian.org";
     license = stdenv.lib.licenses.gpl2Plus;
     maintainers = [ stdenv.lib.maintainers.chaoflow ];
diff --git a/pkgs/development/libraries/xbase/default.nix b/pkgs/development/libraries/xbase/default.nix
index 81447276db79..95ba2a05ad9b 100644
--- a/pkgs/development/libraries/xbase/default.nix
+++ b/pkgs/development/libraries/xbase/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = http://linux.techass.com/projects/xdb/;
-    description = "XBase compatible C++ class library formerly known as XDB";
+    description = "C++ class library formerly known as XDB";
     platforms = stdenv.lib.platforms.all;
     maintainers = [ stdenv.lib.maintainers.urkud ];
   };
diff --git a/pkgs/development/libraries/xylib/default.nix b/pkgs/development/libraries/xylib/default.nix
index 8fff5f393383..fe9b6c5c3ca4 100644
--- a/pkgs/development/libraries/xylib/default.nix
+++ b/pkgs/development/libraries/xylib/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   buildInputs = [boost zlib bzip2 ];
 
   meta = {
-    description = "xylib is a portable library for reading files that contain x-y data from powder diffraction, spectroscopy and other experimental methods.";
+    description = "Portable library for reading files that contain x-y data from powder diffraction, spectroscopy and other experimental methods";
     license = "LGPL";
     homepage = http://xylib.sourceforge.net/;
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/development/libraries/zeitgeist/default.nix b/pkgs/development/libraries/zeitgeist/default.nix
index 3ef43baca5ed..d0de624890b5 100644
--- a/pkgs/development/libraries/zeitgeist/default.nix
+++ b/pkgs/development/libraries/zeitgeist/default.nix
@@ -3,10 +3,11 @@
 , gtk3, json_glib, librdf_raptor2, pythonPackages, dbus_glib }:
 
 stdenv.mkDerivation rec {
-  name = "zeitgeist-0.0.14";
+  version = "0.9.15";
+  name = "zeitgeist-${version}";
 
   src = fetchurl {
-    url = "https://github.com/seiflotfy/zeitgeist/archive/v0.9.15.tar.gz";
+    url = "https://github.com/seiflotfy/zeitgeist/archive/v${version}.tar.gz";
     sha256 = "07pnc7kmjpd0ncm32z6s3ny5p4zl52v9lld0n0f8sp6cw87k12p0";
   };
 
diff --git a/pkgs/development/mobile/androidenv/default.nix b/pkgs/development/mobile/androidenv/default.nix
index bc022bd70b4b..422c1516f2d0 100644
--- a/pkgs/development/mobile/androidenv/default.nix
+++ b/pkgs/development/mobile/androidenv/default.nix
@@ -52,6 +52,12 @@ rec {
     alsaLib_32bit = pkgs_i686.alsaLib;
   };
   
+  androidsdk_2_1 = androidsdk {
+    platformVersions = [ "7" ];
+    abiVersions = [ "armeabi-v7a" ];
+    useGoogleAPIs = true;
+  };
+  
   androidsdk_2_2 = androidsdk {
     platformVersions = [ "8" ];
     abiVersions = [ "armeabi-v7a" ];
@@ -82,6 +88,12 @@ rec {
     useGoogleAPIs = true;
   };
 
+  androidsdk_4_4 = androidsdk {
+    platformVersions = [ "19" ];
+    abiVersions = [ "armeabi-v7a" "x86" ];
+    useGoogleAPIs = true;
+  };
+
   androidndk = import ./androidndk.nix {
     inherit (pkgs) stdenv fetchurl zlib ncurses;
   };
diff --git a/pkgs/development/ocaml-modules/csv/default.nix b/pkgs/development/ocaml-modules/csv/default.nix
new file mode 100644
index 000000000000..7178452e3dda
--- /dev/null
+++ b/pkgs/development/ocaml-modules/csv/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, ocaml, findlib}:
+stdenv.mkDerivation {
+
+  name = "ocaml-csv-1.3.3";
+
+  src = fetchurl {
+    url = "https://forge.ocamlcore.org/frs/download.php/1376/csv-1.3.3.tar.gz";
+    sha256 = "19qsvw3n7k4xpy0sw7n5s29kzj91myihjljhr5js6xcxwj4cydh2";
+  };
+
+  buildInputs = [ ocaml findlib ];
+
+  createFindlibDestdir = true;
+
+  configurePhase = "ocaml setup.ml -configure --prefix $out";
+
+  buildPhase = "ocaml setup.ml -build";
+
+  installPhase = "ocaml setup.ml -install";
+
+  meta = {
+    description = "A pure OCaml library to read and write CSV files";
+    homepage = "https://forge.ocamlcore.org/projects/csv/";
+    license = stdenv.lib.licenses.lgpl21;
+    platforms = ocaml.meta.platforms;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/extlib/default.nix b/pkgs/development/ocaml-modules/extlib/default.nix
index 8b977dd7c525..7bc7e3989488 100644
--- a/pkgs/development/ocaml-modules/extlib/default.nix
+++ b/pkgs/development/ocaml-modules/extlib/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, ocaml, findlib}:
+{stdenv, fetchurl, ocaml, findlib, minimal ? true}:
 
 stdenv.mkDerivation {
   name = "ocaml-extlib-1.6.1";
@@ -14,8 +14,8 @@ stdenv.mkDerivation {
 
   configurePhase = "true";      # Skip configure
   # De facto, option minimal=1 seems to be the default.  See the README.
-  buildPhase     = "make minimal=1 build";
-  installPhase   = "make minimal=1 install";
+  buildPhase     = "make ${if minimal then "minimal=1" else ""} build";
+  installPhase   = "make ${if minimal then "minimal=1" else ""} install";
 
   meta = {
     homepage = http://code.google.com/p/ocaml-extlib/;
diff --git a/pkgs/development/ocaml-modules/javalib/Makefile.config.example.patch b/pkgs/development/ocaml-modules/javalib/Makefile.config.example.patch
new file mode 100644
index 000000000000..c06144a75c06
--- /dev/null
+++ b/pkgs/development/ocaml-modules/javalib/Makefile.config.example.patch
@@ -0,0 +1,9 @@
+--- javalib-2.3-orig/Makefile.config.example	2013-10-30 08:35:30.000000000 +0100
++++ javalib-2.3/Makefile.config.example	2014-07-06 17:32:29.799398394 +0200
+@@ -1,6 +1,3 @@
+-export OCAMLFIND_DESTDIR=$(LOCALDEST)
+-export OCAMLPATH=$(LOCALDEST)
+-
+ OCAMLC = $(FINDER) ocamlc $(FLAGS)
+ OCAMLOPT = $(FINDER) ocamlopt $(OPT_FLAGS)
+ OCAMLDOC = $(FINDER) ocamldoc
diff --git a/pkgs/development/ocaml-modules/javalib/configure.sh.patch b/pkgs/development/ocaml-modules/javalib/configure.sh.patch
new file mode 100644
index 000000000000..67e019b277af
--- /dev/null
+++ b/pkgs/development/ocaml-modules/javalib/configure.sh.patch
@@ -0,0 +1,11 @@
+--- javalib-2.3-orig/configure.sh	2013-10-30 08:35:30.000000000 +0100
++++ javalib-2.3/configure.sh	2014-07-06 17:28:39.025066199 +0200
+@@ -44,7 +44,7 @@
+ DESTDIR=
+ # The ocamlpath variable for the compiler to locate the locally-installed
+ # packages (depends on LOCALDEST)
+-OCAMLPATH=
++#OCAMLPATH=
+ # The packages that need to be made in addition to Savalib / Sawja
+ MAKEDEP=
+ # The packages that need to be made in addition to Savalib / Sawja
diff --git a/pkgs/development/ocaml-modules/javalib/default.nix b/pkgs/development/ocaml-modules/javalib/default.nix
new file mode 100644
index 000000000000..2fa72dcf07f1
--- /dev/null
+++ b/pkgs/development/ocaml-modules/javalib/default.nix
@@ -0,0 +1,40 @@
+{stdenv, fetchurl, which, ocaml, findlib, camlzip, extlib}:
+let
+  pname = "javalib";
+  version = "2.3";
+  webpage = "http://sawja.inria.fr/";
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+in
+stdenv.mkDerivation rec {
+
+  name = "ocaml-${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://gforge.inria.fr/frs/download.php/33090/${pname}-${version}.tar.bz2";
+    sha256 = "1i8djcanzm250mwilm3jfy37cz0k0x7jbnrz8a5vvdi91kyzh52j";
+  };
+
+  buildInputs = [ which ocaml findlib camlzip extlib ];
+
+  patches = [ ./configure.sh.patch ./Makefile.config.example.patch ];
+
+  createFindlibDestdir = true;
+
+  configureScript = "./configure.sh";
+  dontAddPrefix = "true";
+
+  preBuild = ''
+    make ptrees;
+    make installptrees;
+    export OCAMLPATH=$out/lib/ocaml/${ocaml_version}/site-lib/:$OCAMLPATH;
+  '';
+
+  propagatedBuildInputs = [ camlzip extlib ];
+
+  meta = {
+    description = "A library that parses Java .class files into OCaml data structures";
+    homepage = "${webpage}";
+    license = stdenv.lib.licenses.lgpl3;
+    platforms = ocaml.meta.platforms;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/sawja/Makefile.config.example.patch b/pkgs/development/ocaml-modules/sawja/Makefile.config.example.patch
new file mode 100644
index 000000000000..4f2cc99e76b2
--- /dev/null
+++ b/pkgs/development/ocaml-modules/sawja/Makefile.config.example.patch
@@ -0,0 +1,9 @@
+--- sawja-1.5-orig/Makefile.config.example	2013-10-30 08:35:29.000000000 +0100
++++ sawja-1.5/Makefile.config.example	2014-07-05 18:54:37.902423482 +0200
+@@ -1,6 +1,3 @@
+-export OCAMLFIND_DESTDIR=$(LOCALDEST)
+-export OCAMLPATH=$(LOCALDEST)
+-
+ RECODE=-charset utf-8
+ DOCDIR = doc/api
+ 
diff --git a/pkgs/development/ocaml-modules/sawja/configure.sh.patch b/pkgs/development/ocaml-modules/sawja/configure.sh.patch
new file mode 100644
index 000000000000..8165de242f57
--- /dev/null
+++ b/pkgs/development/ocaml-modules/sawja/configure.sh.patch
@@ -0,0 +1,11 @@
+--- sawja-1.5-orig/configure.sh	2013-10-30 08:35:29.000000000 +0100
++++ sawja-1.5/configure.sh	2014-07-05 18:50:26.833798254 +0200
+@@ -39,7 +39,7 @@
+ DESTDIR=
+ # The ocamlpath variable for the compiler to locate the locally-installed
+ # packages (depends on LOCALDEST)
+-OCAMLPATH=
++#OCAMLPATH=
+ # The path to ocamlfind
+ FINDER=`which ocamlfind`
+ # The perl executable
diff --git a/pkgs/development/ocaml-modules/sawja/default.nix b/pkgs/development/ocaml-modules/sawja/default.nix
new file mode 100644
index 000000000000..bed87a50f81d
--- /dev/null
+++ b/pkgs/development/ocaml-modules/sawja/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl, which, perl, ocaml, findlib, javalib }:
+let
+  pname = "sawja";
+  version = "1.5";
+  webpage = "http://sawja.inria.fr/";
+in
+stdenv.mkDerivation rec {
+
+  name = "ocaml-${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://gforge.inria.fr/frs/download.php/33091/${pname}-${version}.tar.bz2";
+    sha256 = "0i8qgqkw9vgj6k2g6npss268ivxdkzx5qj2a52jbd8ih59rn68cm";
+  };
+
+  buildInputs = [ which perl ocaml findlib javalib ];
+
+  patches = [ ./configure.sh.patch ./Makefile.config.example.patch ];
+
+  createFindlibDestdir = true;
+
+  configureScript = "./configure.sh";
+  dontAddPrefix = "true";
+
+  propagatedBuildInputs = [ javalib ];
+
+  meta = {
+    description = "A library written in OCaml, relying on Javalib to provide a high level representation of Java bytecode programs";
+    homepage = "${webpage}";
+    license = stdenv.lib.licenses.gpl3Plus;
+    platforms = ocaml.meta.platforms;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/uucd/default.nix b/pkgs/development/ocaml-modules/uucd/default.nix
new file mode 100644
index 000000000000..1d0f5c6cd504
--- /dev/null
+++ b/pkgs/development/ocaml-modules/uucd/default.nix
@@ -0,0 +1,39 @@
+{stdenv, fetchurl, ocaml, findlib, opam, xmlm}:
+let
+  pname = "uucd";
+  version = "2.0.0";
+  webpage = "http://erratique.ch/software/${pname}";
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+in
+stdenv.mkDerivation rec {
+
+  name = "ocaml-${pname}-${version}";
+
+  src = fetchurl {
+    url = "${webpage}/releases/${pname}-${version}.tbz";
+    sha256 = "12lbrrdjwdxfa99pbg344dfkj51lr5d2ispcj7d7lwsqyxy6h57i";
+  };
+
+  buildInputs = [ ocaml findlib opam xmlm ];
+
+  createFindlibDestdir = true;
+
+  unpackCmd = "tar xjf $src";
+
+  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/
+  '';
+
+  propagatedBuildInputs = [ xmlm ];
+
+  meta = {
+    description = "An OCaml module to decode the data of the Unicode character database from its XML representation";
+    homepage = "${webpage}";
+    platforms = ocaml.meta.platforms;
+    license = stdenv.lib.licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/uunf/default.nix b/pkgs/development/ocaml-modules/uunf/default.nix
new file mode 100644
index 000000000000..c807bbd44637
--- /dev/null
+++ b/pkgs/development/ocaml-modules/uunf/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, ocaml, findlib, opam}:
+let
+  pname = "uunf";
+  version = "0.9.3";
+  webpage = "http://erratique.ch/software/${pname}";
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+in
+stdenv.mkDerivation rec {
+
+  name = "ocaml-${pname}-${version}";
+
+  src = fetchurl {
+    url = "${webpage}/releases/${pname}-${version}.tbz";
+    sha256 = "16cgjy1m0m61srv1pmlc3gr0y40kd4724clvpagdnz68raz4zmn0";
+  };
+
+  buildInputs = [ ocaml findlib opam ];
+
+  createFindlibDestdir = true;
+
+  unpackCmd = "tar xjf $src";
+
+  buildPhase = "./pkg/build true false";
+
+  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 = {
+    description = "An OCaml module for normalizing Unicode text";
+    homepage = "${webpage}";
+    platforms = ocaml.meta.platforms;
+    license = stdenv.lib.licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/uutf/default.nix b/pkgs/development/ocaml-modules/uutf/default.nix
new file mode 100644
index 000000000000..862236c169bc
--- /dev/null
+++ b/pkgs/development/ocaml-modules/uutf/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, ocaml, findlib, opam}:
+let
+  pname = "uutf";
+  version = "0.9.3";
+  webpage = "http://erratique.ch/software/${pname}";
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+in
+stdenv.mkDerivation rec {
+
+  name = "ocaml-${pname}-${version}";
+
+  src = fetchurl {
+    url = "${webpage}/releases/${pname}-${version}.tbz";
+    sha256 = "0xvq20knmq25902ijpbk91ax92bkymsqkbfklj1537hpn64lydhz";
+  };
+
+  buildInputs = [ ocaml findlib opam ];
+
+  createFindlibDestdir = true;
+
+  unpackCmd = "tar xjf $src";
+
+  buildPhase = "./pkg/build 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 = {
+    description = "Non-blocking streaming Unicode codec for OCaml";
+    homepage = "${webpage}";
+    platforms = ocaml.meta.platforms;
+    license = stdenv.lib.licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/xmlm/default.nix b/pkgs/development/ocaml-modules/xmlm/default.nix
new file mode 100644
index 000000000000..bd19ab716f66
--- /dev/null
+++ b/pkgs/development/ocaml-modules/xmlm/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, ocaml, findlib, opam}:
+let
+  pname = "xmlm";
+  version = "1.2.0";
+  webpage = "http://erratique.ch/software/${pname}";
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+in
+stdenv.mkDerivation rec {
+
+  name = "ocaml-${pname}-${version}";
+
+  src = fetchurl {
+    url = "${webpage}/releases/${pname}-${version}.tbz";
+    sha256 = "1jywcrwn5z3gkgvicr004cxmdaqfmq8wh72f81jqz56iyn5024nh";
+  };
+
+  buildInputs = [ ocaml findlib opam ];
+
+  createFindlibDestdir = true;
+
+  unpackCmd = "tar xjf $src";
+
+  buildPhase = "./pkg/build 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 = {
+    description = "An OCaml streaming codec to decode and encode the XML data format";
+    homepage = "${webpage}";
+    platforms = ocaml.meta.platforms;
+    license = stdenv.lib.licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/btrees_interger_overflow.patch b/pkgs/development/python-modules/btrees_interger_overflow.patch
new file mode 100644
index 000000000000..a05c7bd6b3cb
--- /dev/null
+++ b/pkgs/development/python-modules/btrees_interger_overflow.patch
@@ -0,0 +1,146 @@
+From be19c1f32e4d430092c029f17984f0087a2b2087 Mon Sep 17 00:00:00 2001
+From: Jim Fulton <jim@zope.com>
+Date: Mon, 19 May 2014 19:52:43 -0400
+Subject: [PATCH 1/2] Fixed: integer overflow on 32-bit machines wasn't
+ detected correctly   under Python 3.
+
+---
+ BTrees/intkeymacros.h        |  7 ++++---
+ BTrees/intvaluemacros.h      |  3 ++-
+ BTrees/tests/testBTrees.py   | 11 +++++++++--
+ BTrees/tests/test_IIBTree.py |  2 ++
+ CHANGES.rst                  |  2 ++
+ 5 files changed, 19 insertions(+), 6 deletions(-)
+
+diff --git a/BTrees/intkeymacros.h b/BTrees/intkeymacros.h
+index d439aa0..f9244b5 100644
+--- a/BTrees/intkeymacros.h
++++ b/BTrees/intkeymacros.h
+@@ -19,9 +19,10 @@
+ #define KEY_CHECK INT_CHECK
+ #define COPY_KEY_TO_OBJECT(O, K) O=INT_FROM_LONG(K)
+ #define COPY_KEY_FROM_ARG(TARGET, ARG, STATUS)                    \
+-  if (INT_CHECK(ARG)) {                                         \
+-      long vcopy = INT_AS_LONG(ARG);                            \
+-      if ((int)vcopy != vcopy) {                                  \
++  if (INT_CHECK(ARG)) {                                           \
++      long vcopy = INT_AS_LONG(ARG);                              \
++      if (PyErr_Occurred()) { (STATUS)=0; (TARGET)=0; }           \
++      else if ((int)vcopy != vcopy) {                             \
+         PyErr_SetString(PyExc_TypeError, "integer out of range"); \
+         (STATUS)=0; (TARGET)=0;                                   \
+       }                                                           \
+diff --git a/BTrees/intvaluemacros.h b/BTrees/intvaluemacros.h
+index b77a5c9..3072eea 100644
+--- a/BTrees/intvaluemacros.h
++++ b/BTrees/intvaluemacros.h
+@@ -23,7 +23,8 @@
+ #define COPY_VALUE_FROM_ARG(TARGET, ARG, STATUS)                  \
+   if (INT_CHECK(ARG)) {                                         \
+       long vcopy = INT_AS_LONG(ARG);                            \
+-      if ((int)vcopy != vcopy) {                                  \
++      if (PyErr_Occurred()) { (STATUS)=0; (TARGET)=0; }           \
++      else if ((int)vcopy != vcopy) {                                  \
+         PyErr_SetString(PyExc_TypeError, "integer out of range"); \
+         (STATUS)=0; (TARGET)=0;                                   \
+       }                                                           \
+diff --git a/BTrees/tests/testBTrees.py b/BTrees/tests/testBTrees.py
+index 50f5b43..31d641d 100644
+--- a/BTrees/tests/testBTrees.py
++++ b/BTrees/tests/testBTrees.py
+@@ -11,8 +11,11 @@
+ # FOR A PARTICULAR PURPOSE
+ #
+ ##############################################################################
++import sys
+ import unittest
+ 
++python3 = sys.version_info >= (3, )
++
+ from BTrees.tests.common import permutations
+ 
+ 
+@@ -451,8 +454,12 @@ def test32(self):
+         # the characteristics change to match the 64 bit version, please
+         # feel free to change.
+         big = BTrees.family32.maxint + 1
+-        self.assertRaises(TypeError, s.insert, big)
+-        self.assertRaises(TypeError, s.insert, BTrees.family32.minint - 1)
++        if python3:
++            expected_exception = OverflowError
++        else:
++            expected_exception = TypeError
++        self.assertRaises(expected_exception, s.insert,
++                          BTrees.family32.minint - 1)
+         self.check_pickling(BTrees.family32)
+ 
+     def test64(self):
+diff --git a/BTrees/tests/test_IIBTree.py b/BTrees/tests/test_IIBTree.py
+index 72e95b2..fe776b8 100644
+--- a/BTrees/tests/test_IIBTree.py
++++ b/BTrees/tests/test_IIBTree.py
+@@ -113,6 +113,8 @@ def trial(i):
+             i = int(i)
+             try:
+                 b[i] = 0
++            except OverflowError:
++                self.assertRaises(OverflowError, b.__setitem__, 0, i)
+             except TypeError:
+                 self.assertRaises(TypeError, b.__setitem__, 0, i)
+             else:
+diff --git a/CHANGES.rst b/CHANGES.rst
+index 4696be3..e3869ff 100644
+--- a/CHANGES.rst
++++ b/CHANGES.rst
+@@ -1,6 +1,8 @@
+ ``BTrees`` Changelog
+ ====================
+ 
++- Fixed: integer overflow on 32-bit machines wasn't detected correctly
++  under Python 3.
+ 
+ 4.0.9 (unreleased)
+ ------------------
+-- 
+2.0.4
+
+
+From 11a51d2a12bb9904e96349ff86e78e24a0ebe51a Mon Sep 17 00:00:00 2001
+From: Jim Fulton <jim@zope.com>
+Date: Wed, 21 May 2014 07:33:06 -0400
+Subject: [PATCH 2/2] added back test mistakedly removed.
+
+We have to check both TypeError and OverflowError. On Python3 32-bit,
+we'll get an OverflowError, otherwise, we get type error.
+---
+ BTrees/tests/testBTrees.py | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/BTrees/tests/testBTrees.py b/BTrees/tests/testBTrees.py
+index 31d641d..d9be43a 100644
+--- a/BTrees/tests/testBTrees.py
++++ b/BTrees/tests/testBTrees.py
+@@ -453,13 +453,13 @@ def test32(self):
+         # this next bit illustrates an, um, "interesting feature".  If
+         # the characteristics change to match the 64 bit version, please
+         # feel free to change.
+-        big = BTrees.family32.maxint + 1
+-        if python3:
+-            expected_exception = OverflowError
+-        else:
+-            expected_exception = TypeError
+-        self.assertRaises(expected_exception, s.insert,
+-                          BTrees.family32.minint - 1)
++        try: s.insert(BTrees.family32.maxint + 1)
++        except (TypeError, OverflowError): pass
++        else: self.assert_(False)
++
++        try: s.insert(BTrees.family32.minint - 1)
++        except (TypeError, OverflowError): pass
++        else: self.assert_(False)
+         self.check_pickling(BTrees.family32)
+ 
+     def test64(self):
+-- 
+2.0.4
+
diff --git a/pkgs/development/python-modules/ecdsa/default.nix b/pkgs/development/python-modules/ecdsa/default.nix
index f668f3c6ac3b..a07eceb45aad 100644
--- a/pkgs/development/python-modules/ecdsa/default.nix
+++ b/pkgs/development/python-modules/ecdsa/default.nix
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "http://github.com/warner/python-ecdsa";
-    description = "pure-python ECDSA signature/verification";
+    description = "Pure-python ECDSA signature/verification";
     license = stdenv.lib.licenses.mit;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/python-modules/generic/default.nix b/pkgs/development/python-modules/generic/default.nix
index 75fb974e7355..4c9c53aab834 100644
--- a/pkgs/development/python-modules/generic/default.nix
+++ b/pkgs/development/python-modules/generic/default.nix
@@ -34,7 +34,10 @@
 # The difference is that `pythonPath' is not propagated to the user
 # environment.  This is preferrable for programs because it doesn't
 # pollute the user environment.
-,  pythonPath ? []
+, pythonPath ? []
+
+# used to disable derivation, useful for specific python versions
+, disabled ? false
 
 , meta ? {}
 
@@ -46,8 +49,9 @@
 
 , ... } @ attrs:
 
+
 # Keep extra attributes from `attrs`, e.g., `patchPhase', etc.
-python.stdenv.mkDerivation (attrs // {
+if disabled then throw "${name} not supported for interpreter ${python.executable}" else python.stdenv.mkDerivation (attrs // {
   inherit doCheck;
 
   name = namePrefix + name;
diff --git a/pkgs/development/python-modules/h5py/default.nix b/pkgs/development/python-modules/h5py/default.nix
new file mode 100644
index 000000000000..9ab68ac4cd2b
--- /dev/null
+++ b/pkgs/development/python-modules/h5py/default.nix
@@ -0,0 +1,43 @@
+{ 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 = "
+      The h5py package is a 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 000000000000..74d46def9074
--- /dev/null
+++ b/pkgs/development/python-modules/mpi4py/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, python, buildPythonPackage, mpi, openssh }:
+
+buildPythonPackage rec {
+  name = "mpi4py-1.3.1";
+
+  src = fetchurl {
+    url = "https://bitbucket.org/mpi4py/mpi4py/downloads/${name}.tar.gz";
+    sha256 = "e7bd2044aaac5a6ea87a87b2ecc73b310bb6efe5026031e33067ea3c2efc3507";
+  };
+
+  passthru = {
+    inherit mpi;
+  };
+
+  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 ];
+
+  meta = {
+    description = "
+      Provides 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/numeric/default.nix b/pkgs/development/python-modules/numeric/default.nix
index e97b2a5f1a40..0d6d5b0ffed6 100644
--- a/pkgs/development/python-modules/numeric/default.nix
+++ b/pkgs/development/python-modules/numeric/default.nix
@@ -23,7 +23,7 @@ let version = "24.2"; in
     # FIXME: Run the tests.
 
     meta = {
-      description = "Numeric, a Python module for high-performance, numeric computing";
+      description = "A Python module for high-performance, numeric computing";
 
       longDescription = ''
         Numeric is a Python module for high-performance, numeric
@@ -37,4 +37,4 @@ let version = "24.2"; in
 
       homepage = http://people.csail.mit.edu/jrennie/python/numeric/;
     };
-  }
\ No newline at end of file
+  }
diff --git a/pkgs/development/python-modules/pil/default.nix b/pkgs/development/python-modules/pil/default.nix
deleted file mode 100644
index 35a1e913bf7b..000000000000
--- a/pkgs/development/python-modules/pil/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ fetchurl, stdenv, python, buildPythonPackage, libjpeg, zlib, freetype }:
-
-let version = "1.1.7"; in
-
-buildPythonPackage {
-  name = "imaging-${version}";
-  
-  src = fetchurl {
-    url = "http://effbot.org/downloads/Imaging-${version}.tar.gz";
-    sha256 = "04aj80jhfbmxqzvmq40zfi4z3cw6vi01m3wkk6diz3lc971cfnw9";
-  };
-
-  buildInputs = [ python libjpeg zlib freetype ];
-
-  doCheck = true;
-
-  preConfigure = ''
-    sed -i "setup.py" \
-        -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = libinclude("${freetype}")|g ;
-            s|^JPEG_ROOT =.*$|JPEG_ROOT = libinclude("${libjpeg}")|g ;
-            s|^ZLIB_ROOT =.*$|ZLIB_ROOT = libinclude("${zlib}")|g ;'
-  '';
-
-  checkPhase   = "python selftest.py";
-  buildPhase   = "python setup.py build_ext -i";
-
-  postInstall = ''
-    cd "$out"/lib/python*/site-packages
-    ln -s $PWD PIL
-  '';
-
-  meta = {
-    homepage = http://www.pythonware.com/products/pil/;
-    description = "The Python Imaging Library (PIL)";
-
-    longDescription = ''
-      The Python Imaging Library (PIL) adds image processing
-      capabilities to your Python interpreter.  This library
-      supports many file formats, and provides powerful image
-      processing and graphics capabilities.
-    '';
-
-    license = "http://www.pythonware.com/products/pil/license.htm";
-  };
-}
diff --git a/pkgs/development/python-modules/pycrypto/default.nix b/pkgs/development/python-modules/pycrypto/default.nix
index c8f0f74c1ff1..59bd9affef67 100644
--- a/pkgs/development/python-modules/pycrypto/default.nix
+++ b/pkgs/development/python-modules/pycrypto/default.nix
@@ -9,10 +9,9 @@ buildPythonPackage rec {
     sha256 = "0g0ayql5b9mkjam8hym6zyg6bv77lbh66rv1fyvgqb17kfc1xkpj";
   };
 
-  buildInputs = [ gmp ];
-
-  doCheck = !stdenv.isDarwin; # error: AF_UNIX path too long
+  buildInputs = stdenv.lib.optional (!python.isPypy or false) gmp; # optional for pypy
 
+  doCheck = !(python.isPypy or stdenv.isDarwin); # error: AF_UNIX path too long
 
   meta = {
     homepage = "http://www.pycrypto.org/";
diff --git a/pkgs/development/python-modules/pygtk/default.nix b/pkgs/development/python-modules/pygtk/default.nix
index 7d3804d264a6..60aa65323d74 100644
--- a/pkgs/development/python-modules/pygtk/default.nix
+++ b/pkgs/development/python-modules/pygtk/default.nix
@@ -1,8 +1,10 @@
 { stdenv, fetchurl, python, pkgconfig, gtk, pygobject, pycairo
-, buildPythonPackage, libglade ? null }:
+, buildPythonPackage, libglade ? null, isPy3k }:
 
 buildPythonPackage rec {
   name = "pygtk-2.24.0";
+  
+  disabled = isPy3k;
 
   src = fetchurl {
     url = "mirror://gnome/sources/pygtk/2.24/${name}.tar.bz2";
diff --git a/pkgs/development/python-modules/pyuv-external-libuv.patch b/pkgs/development/python-modules/pyuv-external-libuv.patch
new file mode 100644
index 000000000000..33539d9b4b2c
--- /dev/null
+++ b/pkgs/development/python-modules/pyuv-external-libuv.patch
@@ -0,0 +1,27 @@
+diff --git a/setup.py b/setup.py
+index ec0caac..2c1fdb6 100644
+--- a/setup.py
++++ b/setup.py
+@@ -6,7 +6,6 @@ try:
+     from setuptools import setup, Extension
+ except ImportError:
+     from distutils.core import setup, Extension
+-from setup_libuv import libuv_build_ext, libuv_sdist
+ 
+ 
+ __version__ = "0.11.5"
+@@ -32,12 +31,11 @@ setup(name             = "pyuv",
+           "Programming Language :: Python :: 3.3",
+           "Programming Language :: Python :: 3.4"
+       ],
+-      cmdclass     = {'build_ext': libuv_build_ext,
+-                      'sdist'    : libuv_sdist},
+       ext_modules  = [Extension('pyuv',
+                                 sources = ['src/pyuv.c'],
++                                libraries = ['uv'],
+                                 define_macros=[('MODULE_VERSION', __version__),
+-                                               ('LIBUV_REVISION', libuv_build_ext.libuv_revision)]
++                                               ('LIBUV_REVISION', 'unknown')]
+                      )]
+      )
+ 
diff --git a/pkgs/development/tools/analysis/lcov/default.nix b/pkgs/development/tools/analysis/lcov/default.nix
index 89a17d28a1b9..10cdf01103a6 100644
--- a/pkgs/development/tools/analysis/lcov/default.nix
+++ b/pkgs/development/tools/analysis/lcov/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "LCOV, a code coverage tool that enhances GNU gcov";
+    description = "Code coverage tool that enhances GNU gcov";
 
     longDescription =
       '' LCOV is an extension of GCOV, a GNU tool which provides information
diff --git a/pkgs/development/tools/analysis/sparse/default.nix b/pkgs/development/tools/analysis/sparse/default.nix
index 6d0e28f0ab20..6898b7eee54c 100644
--- a/pkgs/development/tools/analysis/sparse/default.nix
+++ b/pkgs/development/tools/analysis/sparse/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "Sparse, a semantic parser for C";
+    description = "Semantic parser for C";
     homepage    = "https://git.kernel.org/cgit/devel/sparse/sparse.git/";
     license     = stdenv.lib.licenses.mit;
     platforms   = stdenv.lib.platforms.linux;
diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix
index 5ffc287d114b..aaeee026d0a8 100644
--- a/pkgs/development/tools/analysis/valgrind/default.nix
+++ b/pkgs/development/tools/analysis/valgrind/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.valgrind.org/;
-    description = "Valgrind, a debugging and profiling tool suite";
+    description = "Debugging and profiling tool suite";
 
     longDescription = ''
       Valgrind is an award-winning instrumentation framework for
diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix
index b7316fc17c4a..a4863d12b5ca 100644
--- a/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/pkgs/development/tools/build-managers/gradle/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ unzip jdk makeWrapper ];
 
   meta = {
-    description = "Gradle is an enterprise-grade build system";
+    description = "Enterprise-grade build system";
     longDescription = ''
       Gradle is a build system which offers you ease, power and freedom.
       You can choose the balance for yourself. It has powerful multi-project
diff --git a/pkgs/development/tools/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix
index 54509178b1a1..50f2037b271c 100644
--- a/pkgs/development/tools/documentation/doxygen/default.nix
+++ b/pkgs/development/tools/documentation/doxygen/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
   meta = {
     license = stdenv.lib.licenses.gpl2Plus;
     homepage = "http://doxygen.org/";
-    description = "Doxygen, a source code documentation generator tool";
+    description = "Source code documentation generator tool";
 
     longDescription = ''
       Doxygen is a documentation system for C++, C, Java, Objective-C,
diff --git a/pkgs/development/tools/documentation/haddock/2.14.3.nix b/pkgs/development/tools/documentation/haddock/2.14.3.nix
index a16994b1f2ed..7ce4782bb60c 100644
--- a/pkgs/development/tools/documentation/haddock/2.14.3.nix
+++ b/pkgs/development/tools/documentation/haddock/2.14.3.nix
@@ -12,7 +12,7 @@ cabal.mkDerivation (self: {
   isExecutable = true;
   buildDepends = [ Cabal deepseq filepath ghcPaths xhtml ];
   testDepends = [ Cabal deepseq filepath hspec QuickCheck ];
-  doCheck = false;
+  preCheck = "unset GHC_PACKAGE_PATH";
   meta = {
     homepage = "http://www.haskell.org/haddock/";
     description = "A documentation-generation tool for Haskell libraries";
diff --git a/pkgs/development/tools/haskell/cabal-bounds/default.nix b/pkgs/development/tools/haskell/cabal-bounds/default.nix
index 213ba6f9d132..97dac34af3be 100644
--- a/pkgs/development/tools/haskell/cabal-bounds/default.nix
+++ b/pkgs/development/tools/haskell/cabal-bounds/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal-bounds";
-  version = "0.8.4";
-  sha256 = "00vj6ca9liqlqg69d4ziacsxz6x9365sbyc1ag6g18bhibyinsh2";
+  version = "0.8.5";
+  sha256 = "19lai2gdxs76mrvcz77sjsx7hh87cf1f4qmy7z1zcd130z11q04a";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/haskell/cabal2nix/default.nix b/pkgs/development/tools/haskell/cabal2nix/default.nix
index 978ebde7e293..db7e472934c3 100644
--- a/pkgs/development/tools/haskell/cabal2nix/default.nix
+++ b/pkgs/development/tools/haskell/cabal2nix/default.nix
@@ -1,15 +1,18 @@
 # This file was auto-generated by cabal2nix. Please do NOT edit manually!
 
-{ cabal, Cabal, doctest, filepath, hackageDb, HTTP, mtl, regexPosix
+{ cabal, Cabal, doctest, filepath, hackageDb, mtl, regexPosix
+, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "cabal2nix";
-  version = "1.68";
-  sha256 = "0w9ayvr3ljfxgi17yaayqvyxflbgf7b5245pc3m011lp3cfnj849";
+  version = "1.69";
+  sha256 = "0430086lh1h7w8wxc42aqrdjb8i12vz8m0jr1q2c45h3k6brb5r5";
   isLibrary = false;
   isExecutable = true;
-  buildDepends = [ Cabal filepath hackageDb HTTP mtl regexPosix ];
+  buildDepends = [
+    Cabal filepath hackageDb mtl regexPosix transformers
+  ];
   testDepends = [ doctest ];
   doCheck = self.stdenv.lib.versionOlder "7.6" self.ghc.version;
   meta = {
diff --git a/pkgs/development/tools/java/fastjar/default.nix b/pkgs/development/tools/java/fastjar/default.nix
index c8bb94412cad..e5a9ca50ce92 100644
--- a/pkgs/development/tools/java/fastjar/default.nix
+++ b/pkgs/development/tools/java/fastjar/default.nix
@@ -14,7 +14,7 @@ let version = "0.94"; in
     doCheck = true;
 
     meta = {
-      description = "FastJar, a fast Java archiver written in C";
+      description = "Fast Java archiver written in C";
 
       longDescription = ''
         Fastjar is a version of Sun's `jar' utility, written entirely in C, and
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index 8d8fc5d464e8..fc48a4aabada 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "GNU Binutils, tools for manipulating binaries (linker, assembler, etc.)";
+    description = "Tools for manipulating binaries (linker, assembler, etc.)";
 
     longDescription = ''
       The GNU Binutils are a collection of binary tools.  The main
diff --git a/pkgs/development/tools/misc/bossa/bin2c.c b/pkgs/development/tools/misc/bossa/bin2c.c
new file mode 100644
index 000000000000..f0b915de540a
--- /dev/null
+++ b/pkgs/development/tools/misc/bossa/bin2c.c
@@ -0,0 +1,122 @@
+// bin2c.c
+//
+// convert a binary file into a C source vector
+//
+// THE "BEER-WARE LICENSE" (Revision 3.1415):
+// sandro AT sigala DOT it wrote this file. As long as you retain this notice you can do
+// whatever you want with this stuff.  If we meet some day, and you think this stuff is
+// worth it, you can buy me a beer in return.  Sandro Sigala
+//
+// syntax:  bin2c [-c] [-z] <input_file> <output_file>
+//
+//          -c    add the "const" keyword to definition
+//          -z    terminate the array with a zero (useful for embedded C strings)
+//
+// examples:
+//     bin2c -c myimage.png myimage_png.cpp
+//     bin2c -z sometext.txt sometext_txt.cpp
+ 
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+ 
+#ifndef PATH_MAX
+#define PATH_MAX 1024
+#endif
+ 
+int useconst = 0;
+int zeroterminated = 0;
+ 
+int myfgetc(FILE *f)
+{
+	int c = fgetc(f);
+	if (c == EOF && zeroterminated)
+	{
+		zeroterminated = 0;
+		return 0;
+	}
+	return c;
+}
+ 
+void process(const char *ifname, const char *ofname)
+{
+	FILE *ifile, *ofile;
+	ifile = fopen(ifname, "rb");
+	if (ifile == NULL)
+	{
+		fprintf(stderr, "cannot open %s for reading\n", ifname);
+		exit(1);
+	}
+	ofile = fopen(ofname, "wb");
+	if (ofile == NULL)
+	{
+		fprintf(stderr, "cannot open %s for writing\n", ofname);
+		exit(1);
+	}
+	char buf[PATH_MAX], *p;
+	const char *cp;
+	if ((cp = strrchr(ifname, '/')) != NULL)
+	{
+		++cp;
+	} else {
+		if ((cp = strrchr(ifname, '\\')) != NULL)
+			++cp;
+		else
+			cp = ifname;
+	}
+	strcpy(buf, cp);
+	for (p = buf; *p != '\0'; ++p)
+	{
+		if (!isalnum(*p))
+			*p = '_';
+	}
+	fprintf(ofile, "static %sunsigned char %s[] = {\n", useconst ? "const " : "", buf);
+	int c, col = 1;
+	while ((c = myfgetc(ifile)) != EOF)
+	{
+		if (col >= 78 - 6)
+		{
+			fputc('\n', ofile);
+			col = 1;
+		}
+		fprintf(ofile, "0x%.2x, ", c);
+		col += 6;
+	}
+	fprintf(ofile, "\n};\n");
+ 
+	fclose(ifile);
+	fclose(ofile);
+}
+ 
+void usage(void)
+{
+	fprintf(stderr, "usage: bin2c [-cz] <input_file> <output_file>\n");
+	exit(1);
+}
+ 
+int main(int argc, char **argv)
+{
+	while (argc > 3)
+	{
+		if (!strcmp(argv[1], "-c"))
+		{
+			useconst = 1;
+			--argc;
+			++argv;
+		} else if (!strcmp(argv[1], "-z"))
+		{
+			zeroterminated = 1;
+			--argc;
+			++argv;
+		} else {
+			usage();
+		}
+	}
+	if (argc != 3)
+	{
+		usage();
+	}
+	process(argv[1], argv[2]);
+	return 0;
+}
diff --git a/pkgs/development/tools/misc/bossa/default.nix b/pkgs/development/tools/misc/bossa/default.nix
new file mode 100644
index 000000000000..f0b6d81e69eb
--- /dev/null
+++ b/pkgs/development/tools/misc/bossa/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchgit, wxGTK, libX11, readline }:
+
+let
+  # BOSSA needs a "bin2c" program to embed images.
+  # Source taken from:
+  # http://wiki.wxwidgets.org/Embedding_PNG_Images-Bin2c_In_C
+  bin2c = stdenv.mkDerivation {
+    name = "bossa-bin2c";
+    src = ./bin2c.c;
+    unpackPhase = "true";
+    buildPhase = ''cc $src -o bin2c'';
+    installPhase = ''mkdir -p $out/bin; cp bin2c $out/bin/'';
+  };
+
+in
+stdenv.mkDerivation rec {
+  name = "bossa";
+
+  src = fetchgit {
+    url = https://github.com/shumatech/BOSSA;
+    rev = "0f0a41cb1c3a65e909c5c744d8ae664e896a08ac"; /* arduino branch */
+    sha256 = "01y8r45fw02rps9q995mv82bxrm6p0mysv4wir5glpagrhnyw7md";
+  };
+
+  nativeBuildInputs = [ bin2c ];
+  buildInputs = [ wxGTK libX11 readline ];
+
+  # Explicitly specify targets so they don't get stripped.
+  makeFlags = [ "bin/bossac" "bin/bossash" "bin/bossa" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp bin/bossa{c,sh,} $out/bin/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A flash programming utility for Atmel's SAM family of flash-based ARM microcontrollers";
+    longDescription = ''
+      BOSSA is a flash programming utility for Atmel's SAM family of
+      flash-based ARM microcontrollers. The motivation behind BOSSA is
+      to create a simple, easy-to-use, open source utility to replace
+      Atmel's SAM-BA software. BOSSA is an acronym for Basic Open
+      Source SAM-BA Application to reflect that goal.
+    '';
+    homepage = http://www.shumatech.com/web/products/bossa;
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/tools/misc/cflow/default.nix b/pkgs/development/tools/misc/cflow/default.nix
index 53bc8ed78c8b..b1322d461ee7 100644
--- a/pkgs/development/tools/misc/cflow/default.nix
+++ b/pkgs/development/tools/misc/cflow/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "GNU cflow, a tool to analyze the control flow of C programs";
+    description = "Tool to analyze the control flow of C programs";
 
     longDescription = ''
       GNU cflow analyzes a collection of C source files and prints a
diff --git a/pkgs/development/tools/misc/coccinelle/default.nix b/pkgs/development/tools/misc/coccinelle/default.nix
index 0bf5bbce692d..51f5ed6091fa 100644
--- a/pkgs/development/tools/misc/coccinelle/default.nix
+++ b/pkgs/development/tools/misc/coccinelle/default.nix
@@ -37,7 +37,7 @@ in stdenv.mkDerivation {
   configureFlags = "--enable-release";
 
   meta = {
-    description = "Coccinelle, a program to apply C code semantic patches";
+    description = "Program to apply semantic patches to C code";
 
     longDescription =
       '' Coccinelle is a program matching and transformation engine which
diff --git a/pkgs/development/tools/misc/complexity/default.nix b/pkgs/development/tools/misc/complexity/default.nix
index 9f1eca0fa13c..a7ae4d17ab10 100644
--- a/pkgs/development/tools/misc/complexity/default.nix
+++ b/pkgs/development/tools/misc/complexity/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "GNU Complexity, C code complexity measurement tool";
+    description = "C code complexity measurement tool";
 
     longDescription =
       '' GNU Complexity is a tool designed for analyzing the complexity of C
diff --git a/pkgs/development/tools/misc/cppi/default.nix b/pkgs/development/tools/misc/cppi/default.nix
index 500129c7c9de..2942408de806 100644
--- a/pkgs/development/tools/misc/cppi/default.nix
+++ b/pkgs/development/tools/misc/cppi/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://savannah.gnu.org/projects/cppi/;
 
-    description = "GNU cppi, a cpp directive indenter";
+    description = "A C preprocessor directive indenter";
 
     longDescription =
       '' GNU cppi indents C preprocessor directives to reflect their nesting
diff --git a/pkgs/development/tools/misc/cscope/default.nix b/pkgs/development/tools/misc/cscope/default.nix
index 3a83b1ba3251..223f19682746 100644
--- a/pkgs/development/tools/misc/cscope/default.nix
+++ b/pkgs/development/tools/misc/cscope/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "Cscope, a developer's tool for browsing source code";
+    description = "A developer's tool for browsing source code";
 
     longDescription = ''
       Cscope is a developer's tool for browsing source code.  It has
diff --git a/pkgs/development/tools/misc/ctags/default.nix b/pkgs/development/tools/misc/ctags/default.nix
index 80def733cf8c..bf13a5daa666 100644
--- a/pkgs/development/tools/misc/ctags/default.nix
+++ b/pkgs/development/tools/misc/ctags/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://ctags.sourceforge.net/";
-    description = "Exuberant Ctags, a tool for fast source code browsing";
+    description = "A tool for fast source code browsing (exuberant ctags)";
     license = stdenv.lib.licenses.gpl2Plus;
 
     longDescription = ''
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index 2b5ced780633..5ee0f64a4e41 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = with stdenv.lib; {
-    description = "GDB, the GNU Project debugger";
+    description = "The GNU Project debugger";
 
     longDescription = ''
       GDB, the GNU Project debugger, allows you to see what is going
diff --git a/pkgs/development/tools/misc/gengetopt/default.nix b/pkgs/development/tools/misc/gengetopt/default.nix
index 9926dd6cd334..19e934f884f7 100644
--- a/pkgs/development/tools/misc/gengetopt/default.nix
+++ b/pkgs/development/tools/misc/gengetopt/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "GNU Gengetopt, a command-line option parser generator";
+    description = "Command-line option parser generator";
 
     longDescription =
       '' GNU Gengetopt program generates a C function that uses getopt_long
diff --git a/pkgs/development/tools/misc/global/default.nix b/pkgs/development/tools/misc/global/default.nix
index d6abf8d10bdb..b366feb304a6 100644
--- a/pkgs/development/tools/misc/global/default.nix
+++ b/pkgs/development/tools/misc/global/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "GNU GLOBAL source code tag system";
+    description = "Source code tag system";
 
     longDescription = ''
       GNU GLOBAL is a source code tagging system that works the same way
diff --git a/pkgs/development/tools/misc/gperf/default.nix b/pkgs/development/tools/misc/gperf/default.nix
index e25998e54204..f0fd081ec5f1 100644
--- a/pkgs/development/tools/misc/gperf/default.nix
+++ b/pkgs/development/tools/misc/gperf/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "GNU gperf, a perfect hash function generator";
+    description = "Perfect hash function generator";
 
     longDescription = ''
       GNU gperf is a perfect hash function generator.  For a given
diff --git a/pkgs/development/tools/misc/help2man/default.nix b/pkgs/development/tools/misc/help2man/default.nix
index 23bd35c8739a..c4ba7073889d 100644
--- a/pkgs/development/tools/misc/help2man/default.nix
+++ b/pkgs/development/tools/misc/help2man/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
 
   meta = {
-    description = "GNU help2man generates man pages from `--help' output";
+    description = "Generate man pages from `--help' output";
 
     longDescription =
       '' help2man produces simple manual pages from the ‘--help’ and
diff --git a/pkgs/development/tools/misc/libtool/default.nix b/pkgs/development/tools/misc/libtool/default.nix
index 5eee9ead5d63..262d8aad23bb 100644
--- a/pkgs/development/tools/misc/libtool/default.nix
+++ b/pkgs/development/tools/misc/libtool/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   dontPatchShebangs = true;
 
   meta = {
-    description = "GNU Libtool, a generic library support script";
+    description = "Generic library support script";
 
     longDescription = ''
       GNU libtool is a generic library support script.  Libtool hides
diff --git a/pkgs/development/tools/misc/nixbang/default.nix b/pkgs/development/tools/misc/nixbang/default.nix
new file mode 100644
index 000000000000..762e6f2c4db6
--- /dev/null
+++ b/pkgs/development/tools/misc/nixbang/default.nix
@@ -0,0 +1,20 @@
+{ lib, pythonPackages, fetchgit }:
+
+let version = "0.1.1"; in
+pythonPackages.buildPythonPackage {
+  name = "nixbang-${version}";
+  namePrefix = "";
+
+  src = fetchgit {
+    url = "git://github.com/madjar/nixbang.git";
+    rev = "refs/tags/${version}";
+    sha256 = "1n8jq32r2lzk3g0d95ksfq7vdqciz34jabribrr4hcnz4nlijshf";
+  };
+
+  meta = {
+    homepage = https://github.com/madjar/nixbang;
+    description = "A special shebang to run scripts in a nix-shell";
+    maintainers = [ lib.maintainers.madjar ];
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/tools/misc/sloccount/default.nix b/pkgs/development/tools/misc/sloccount/default.nix
index 455305be7492..1aa9a2c058d6 100644
--- a/pkgs/development/tools/misc/sloccount/default.nix
+++ b/pkgs/development/tools/misc/sloccount/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "SLOCCount, a set of tools for counting physical Source Lines of Code (SLOC)";
+    description = "Set of tools for counting physical Source Lines of Code (SLOC)";
 
     longDescription = ''
       This is the home page of "SLOCCount", a set of tools for
diff --git a/pkgs/development/tools/misc/swig/default.nix b/pkgs/development/tools/misc/swig/default.nix
index 09978b5ad650..66d6b65453ea 100644
--- a/pkgs/development/tools/misc/swig/default.nix
+++ b/pkgs/development/tools/misc/swig/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   configureFlags = stdenv.lib.optionalString stdenv.isDarwin "--disable-ccache";
 
   meta = {
-    description = "SWIG, an interface compiler that connects C/C++ code to higher-level languages";
+    description = "Interface compiler that connects C/C++ code to higher-level languages";
 
     longDescription = ''
        SWIG is an interface compiler that connects programs written in C and
diff --git a/pkgs/development/tools/misc/texinfo/4.13a.nix b/pkgs/development/tools/misc/texinfo/4.13a.nix
index 5131d3814123..a31552305147 100644
--- a/pkgs/development/tools/misc/texinfo/4.13a.nix
+++ b/pkgs/development/tools/misc/texinfo/4.13a.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   #doCheck = true;
 
   meta = {
-    description = "GNU Texinfo, the GNU documentation system";
+    description = "The GNU documentation system";
 
     longDescription = ''
       Texinfo is the official documentation format of the GNU project.
diff --git a/pkgs/development/tools/misc/texinfo/5.2.nix b/pkgs/development/tools/misc/texinfo/5.2.nix
index 804e7a2527fe..62e1ff62d1e3 100644
--- a/pkgs/development/tools/misc/texinfo/5.2.nix
+++ b/pkgs/development/tools/misc/texinfo/5.2.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.gnu.org/software/texinfo/";
-    description = "GNU Texinfo, the GNU documentation system";
+    description = "The GNU documentation system";
     license = stdenv.lib.licenses.gpl3Plus;
     platforms = stdenv.lib.platforms.all;
 
diff --git a/pkgs/development/tools/ocaml/omake/default.nix b/pkgs/development/tools/ocaml/omake/default.nix
index 22e0d71af4d1..300cbbc0a0c1 100644
--- a/pkgs/development/tools/ocaml/omake/default.nix
+++ b/pkgs/development/tools/ocaml/omake/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
 #  buildFlags = "world.opt";
 
   meta = {
-    description = "Omake build system";
+    description = "A build system designed for scalability and portability";
     homepage = "${webpage}";
     license = "GPL";
   };
diff --git a/pkgs/development/tools/parsing/bison/2.x.nix b/pkgs/development/tools/parsing/bison/2.x.nix
index 5bf5d7c2e8c6..f89e7bca5a76 100644
--- a/pkgs/development/tools/parsing/bison/2.x.nix
+++ b/pkgs/development/tools/parsing/bison/2.x.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.gnu.org/software/bison/";
-    description = "GNU Bison, a Yacc-compatible parser generator";
+    description = "Yacc-compatible parser generator";
     license = stdenv.lib.licenses.gpl3Plus;
 
     longDescription = ''
diff --git a/pkgs/development/tools/parsing/bison/3.x.nix b/pkgs/development/tools/parsing/bison/3.x.nix
index 5947f85343c4..49602a232010 100644
--- a/pkgs/development/tools/parsing/bison/3.x.nix
+++ b/pkgs/development/tools/parsing/bison/3.x.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.gnu.org/software/bison/";
-    description = "GNU Bison, a Yacc-compatible parser generator";
+    description = "Yacc-compatible parser generator";
     license = stdenv.lib.licenses.gpl3Plus;
 
     longDescription = ''
diff --git a/pkgs/development/tools/profiling/oprofile/default.nix b/pkgs/development/tools/profiling/oprofile/default.nix
index e301fe8431af..6c7b2a4d9ae1 100644
--- a/pkgs/development/tools/profiling/oprofile/default.nix
+++ b/pkgs/development/tools/profiling/oprofile/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "OProfile, a system-wide profiler for Linux";
+    description = "System-wide profiler for Linux";
     longDescription = ''
       OProfile is a system-wide profiler for Linux systems, capable of
       profiling all running code at low overhead.  It consists of a
diff --git a/pkgs/development/tools/profiling/sysprof/default.nix b/pkgs/development/tools/profiling/sysprof/default.nix
index 457a5d1dcaa5..826ca93aa7d4 100644
--- a/pkgs/development/tools/profiling/sysprof/default.nix
+++ b/pkgs/development/tools/profiling/sysprof/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://sysprof.com/;
-    description = "Sysprof, a system-wide profiler for Linux";
+    description = "System-wide profiler for Linux";
     license = stdenv.lib.licenses.gpl2Plus;
 
     longDescription = ''
diff --git a/pkgs/development/tools/sqsh/default.nix b/pkgs/development/tools/sqsh/default.nix
index a0f7922b1aa8..15a6985b8bf7 100644
--- a/pkgs/development/tools/sqsh/default.nix
+++ b/pkgs/development/tools/sqsh/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "SQSH is command line tool for querying Sybase/MSSQL databases";
+    description = "Command line tool for querying Sybase/MSSQL databases";
     longDescription = 
       ''
       Sqsh (pronounced skwish) is short for SQshelL (pronounced s-q-shell),
diff --git a/pkgs/development/web/nodejs/build-node-package.nix b/pkgs/development/web/nodejs/build-node-package.nix
index 84b0da1674c4..ca3439df4c46 100644
--- a/pkgs/development/web/nodejs/build-node-package.nix
+++ b/pkgs/development/web/nodejs/build-node-package.nix
@@ -8,7 +8,7 @@ let
   npmFlags = concatStringsSep " " (map (v: "--${v}") flags);
 
   sources = runCommand "node-sources" {} ''
-    tar --no-same-owner -xf ${nodejs.src}
+    tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
     mv *node* $out
   '';
 
diff --git a/pkgs/games/adom/default.nix b/pkgs/games/adom/default.nix
index e83f50df1b78..ef5aba96d092 100644
--- a/pkgs/games/adom/default.nix
+++ b/pkgs/games/adom/default.nix
@@ -1,6 +1,8 @@
 { stdenv, patchelf, zlib, libmad, libpng12, libcaca, mesa, alsaLib, pulseaudio
 , xlibs, plowshare }:
 
+assert stdenv.isLinux;
+
 let
 
   inherit (xlibs) libXext libX11;
diff --git a/pkgs/games/banner/default.nix b/pkgs/games/banner/default.nix
index b4e61b6d1d1f..b443a76b9a77 100644
--- a/pkgs/games/banner/default.nix
+++ b/pkgs/games/banner/default.nix
@@ -36,7 +36,7 @@ mkDerivation "banner-1.3.2" "0dc0ac0667b2e884a7f5ad3e467af68cd0fd5917f8c9aa19188
 
   meta = {
     homepage = "http://shh.thathost.com/pub-unix/";
-    description = "print large banners to ASCII terminals";
+    description = "Print large banners to ASCII terminals";
     license = stdenv.lib.licenses.gpl2;
 
     longDescription = ''
diff --git a/pkgs/games/chessdb/default.nix b/pkgs/games/chessdb/default.nix
index 381e35632a6e..224eb6f594a0 100644
--- a/pkgs/games/chessdb/default.nix
+++ b/pkgs/games/chessdb/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = http://chessdb.sourceforge.net/;
-    description = "ChessDB is a free chess database";
+    description = "A free chess database";
   };
 }
diff --git a/pkgs/games/construo/default.nix b/pkgs/games/construo/default.nix
index 57d055ed3d3d..f94b489908eb 100644
--- a/pkgs/games/construo/default.nix
+++ b/pkgs/games/construo/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
 	builder = writeScript (name + "-builder")
 		(textClosure localDefs ["preConfigure" "doConfigure" "doMakeInstall" "doForceShare" "doPropagate"]);
 	meta = {
-		description = "Construo masses and springs simulation";
+		description = "Masses and springs simulation game";
 	};
 }
diff --git a/pkgs/games/crafty/default.nix b/pkgs/games/crafty/default.nix
index 0e2796df22d8..351e25388e17 100644
--- a/pkgs/games/crafty/default.nix
+++ b/pkgs/games/crafty/default.nix
@@ -659,7 +659,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.craftychess.com/;
-    description = "Crafty is a free, open-source computer chess program developed by Dr. Robert M. Hyatt";
+    description = "Chess program developed by Dr. Robert M. Hyatt";
     license = stdenv.lib.licenses.unfree;
     platforms = stdenv.lib.platforms.unix;
     maintainers = [ stdenv.lib.maintainers.jwiegley ];
diff --git a/pkgs/games/eboard/default.nix b/pkgs/games/eboard/default.nix
index 1decee4264a4..8dd06fa6a281 100644
--- a/pkgs/games/eboard/default.nix
+++ b/pkgs/games/eboard/default.nix
@@ -14,6 +14,6 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = http://www.bergo.eng.br/eboard/;
-    description = "eboard is a chess interface for Unix-like systems";
+    description = "Chess interface for Unix-like systems";
   };
 }
diff --git a/pkgs/games/gemrb/default.nix b/pkgs/games/gemrb/default.nix
index 31e8ae05d006..dc89e405e24e 100644
--- a/pkgs/games/gemrb/default.nix
+++ b/pkgs/games/gemrb/default.nix
@@ -3,14 +3,15 @@
 assert stdenv.gcc.libc != null;
 
 stdenv.mkDerivation rec {
-  name = "gemrb-0.8.0.1";
+  name = "gemrb-0.8.1";
   
   src = fetchurl {
     url = "mirror://sourceforge/gemrb/${name}.tar.gz";
-    sha256 = "0v9iypls4iawnfkc91hcdnmc4vyg3ix7v7lmw3knv73q145v0ksd";
+    sha256 = "1g68pc0x4azy6zm5y7813g0qky96q796si9v3vafiy7sa8ph49kl";
   };
 
   buildInputs = [ cmake python openal SDL zlib libpng libvorbis ];
+  # TODO: make libpng, libvorbis, sdl_mixer, freetype, vlc, glew (and other gl reqs) optional
 
   # Necessary to find libdl.
   CMAKE_LIBRARY_PATH = "${stdenv.gcc.libc}/lib";
@@ -18,8 +19,19 @@ stdenv.mkDerivation rec {
   # Can't have -werror because of the Vorbis header files.
   cmakeFlags = "-DDISABLE_WERROR=ON -DCMAKE_VERBOSE_MAKEFILE=ON";
 
-  meta = {
+  # upstream prefers some symbols to remain
+  dontStrip = true;
+
+  meta = with stdenv.lib; {
     description = "A reimplementation of the Infinity Engine, used by games such as Baldur's Gate";
-    homepage = http://gemrb.sourceforge.net/;
+    longDescription = ''
+      GemRB (Game engine made with pre-Rendered Background) is a portable open-source implementation of
+      Bioware's Infinity Engine. It was written to support pseudo-3D role playing games based on the
+      Dungeons & Dragons ruleset (Baldur's Gate and Icewind Dale series, Planescape: Torment).
+    '';
+    homepage = http://gemrb.org/;
+    license = licenses.gpl2;
+    platforms = stdenv.lib.platforms.all;
+    hydraPlatforms = [];
   };
 }
diff --git a/pkgs/games/openspades/default.nix b/pkgs/games/openspades/default.nix
index 7f11fc829032..df987b3f856c 100644
--- a/pkgs/games/openspades/default.nix
+++ b/pkgs/games/openspades/default.nix
@@ -19,6 +19,18 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" "-DOPENSPADES_INSTALL_BINARY=bin" ];
 
+  enableParallelBuilding = true;
+
+  devPack = fetchurl {
+    url = "http://yvt.jp/files/programs/osppaks/DevPaks27.zip";
+    sha256 = "05y7wldg70v5ys41fm0c8kipyspn524z4pglwr3p8h0gfz9n52v6";
+  };
+
+  preBuild = ''
+    cp $devPack Resources/DevPaks27.zip
+    unzip -u -o Resources/DevPaks27.zip -d Resources/DevPak
+  '';
+
   # OpenAL is loaded dynamicly
   postInstall = 
     if withOpenal then ''
@@ -28,7 +40,7 @@ stdenv.mkDerivation rec {
     else null;
 
   meta = with stdenv.lib; {
-    description = "OpenSpades is a compatible client of Ace of Spades 0.75";
+    description = "A compatible client of Ace of Spades 0.75";
     homepage    = "https://github.com/yvt/openspades/";
     license     = licenses.gpl3;
     platforms   = platforms.linux;
diff --git a/pkgs/games/openttd/default.nix b/pkgs/games/openttd/default.nix
index 1b6b7f26a41e..ff96622cb59c 100644
--- a/pkgs/games/openttd/default.nix
+++ b/pkgs/games/openttd/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = ''OpenTTD is an open source clone of the Microprose game "Transport Tycoon Deluxe"'';
+    description = ''Open source clone of the Microprose game "Transport Tycoon Deluxe"'';
     longDescription = ''
       OpenTTD is a transportation economics simulator. In single player mode,
       players control a transportation business, and use rail, road, sea, and air
diff --git a/pkgs/games/opentyrian/default.nix b/pkgs/games/opentyrian/default.nix
index cfae6a4bb3e8..c435bbe5887f 100644
--- a/pkgs/games/opentyrian/default.nix
+++ b/pkgs/games/opentyrian/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   ";
 
   meta = {
-    description = ''OpenTyrian is an open source port of the game "Tyrian".'';
+    description = ''Open source port of the game "Tyrian"'';
     homepage = https://opentyrian.googlecode.com/;
     # This does not account of Tyrian data.
     # license = stdenv.lib.licenses.gpl2;
diff --git a/pkgs/games/quake3/game/default.nix b/pkgs/games/quake3/game/default.nix
index 6a05ab7f2bd7..596ba595d813 100644
--- a/pkgs/games/quake3/game/default.nix
+++ b/pkgs/games/quake3/game/default.nix
@@ -32,5 +32,7 @@ stdenv.mkDerivation {
     installTargets=copyfiles
     installFlags="COPYDIR=$out"
   '';
+
+  meta.broken = true;
   
 }
diff --git a/pkgs/games/teeworlds/default.nix b/pkgs/games/teeworlds/default.nix
index c685f11c4c16..5276ec4cc34f 100644
--- a/pkgs/games/teeworlds/default.nix
+++ b/pkgs/games/teeworlds/default.nix
@@ -51,7 +51,7 @@ EOF
   '';
 
   meta = {
-    description = "Teeworlds, a retro multiplayer shooter game";
+    description = "Retro multiplayer shooter game";
 
     longDescription = ''
       Teeworlds is a free online multiplayer game, available for all
diff --git a/pkgs/games/the-butterfly-effect/default.nix b/pkgs/games/the-butterfly-effect/default.nix
index 44d07cf3ffd5..3cf91e11a55e 100644
--- a/pkgs/games/the-butterfly-effect/default.nix
+++ b/pkgs/games/the-butterfly-effect/default.nix
@@ -1,6 +1,6 @@
 x@{builderDefsPackage
   , qt4, box2d, which
-  ,fetchsvn
+  ,fetchsvn, cmake
   , ...}:
 builderDefsPackage
 (a :
@@ -12,11 +12,11 @@ let
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
     baseName="tbe";
-    revision="1319";
+    revision="2048";
     version="r${revision}";
     name="${baseName}-${version}";
     url="https://tbe.svn.sourceforge.net/svnroot/tbe/trunk";
-    hash="e9a7c24f0668ba2f36c472c1d05238fa7d9ed2150d99ce8a927285d099cc0f7f";
+    hash="19pqpkil4r5y9j4nszkbs70lq720nvqw8g8magd8nf2n3l9nqm51";
   };
 in
 rec {
@@ -30,8 +30,7 @@ rec {
   inherit (sourceInfo) name version;
   inherit buildInputs;
 
-  phaseNames = ["setVars" "doConfigure" "doMakeInstall" "doDeploy"];
-  configureCommand = "sh configure";
+  phaseNames = ["setVars" "doCmake" "doMakeInstall" "doDeploy"];
 
   setVars = a.noDepEntry ''
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${a.box2d}/include/Box2D"
diff --git a/pkgs/games/xskat/default.nix b/pkgs/games/xskat/default.nix
new file mode 100644
index 000000000000..bd41531d9236
--- /dev/null
+++ b/pkgs/games/xskat/default.nix
@@ -0,0 +1,38 @@
+{stdenv, fetchurl, libX11, imake, gccmakedep}:
+
+
+let
+  s = # Generated upstream information
+  rec {
+    baseName="xskat";
+    version="4.0";
+    name="${baseName}-${version}";
+
+    url="http://www.xskat.de/xskat-4.0.tar.gz";
+    hash="8ba52797ccbd131dce69b96288f525b0d55dee5de4008733f7a5a51deb831c10";
+    sha256="8ba52797ccbd131dce69b96288f525b0d55dee5de4008733f7a5a51deb831c10";
+  };
+   buildInputs = [ libX11 imake gccmakedep ];
+in
+
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  preInstall = ''
+    sed -i Makefile \
+      -e "s|.* BINDIR .*|   BINDIR = $out/bin|" \
+      -e "s|.* MANPATH .*|  MANPATH = $out/man|"
+  '';
+  installTargets = "install install.man";
+  meta = {
+    inherit (s) version;
+    description = ''Famous german card game'';
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.free;
+    longDescription = ''Play the german card game Skat against the AI or over IRC.'';
+    homepage = http://www.xskat.de/;
+  };
+}
diff --git a/pkgs/misc/emulators/emulationstation/default.nix b/pkgs/misc/emulators/emulationstation/default.nix
new file mode 100644
index 000000000000..5767786e814a
--- /dev/null
+++ b/pkgs/misc/emulators/emulationstation/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, cmake, boost, eigen, freeimage, freetype
+, mesa, SDL, dejavu_fonts }:
+
+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";
+  };
+
+  buildInputs = [ pkgconfig cmake boost eigen freeimage freetype mesa SDL ];
+
+  prePatch = ''
+    sed -i \
+      -e 's,/usr\(.*\)/ttf-dejavu\(.*\),${dejavu_fonts}\1\2,' src/Font.cpp
+  '';
+
+  buildPhase = "cmake . && make";
+  installPhase = ''
+    mkdir -p $out/bin
+    mv ../emulationstation $out/bin/.
+  '';
+
+  meta = {
+    description = "A flexible emulator front-end supporting keyboardless navigation and custom system themes";
+    homepage = "http://emulationstation.org";
+    maintainers = [ stdenv.lib.maintainers.edwtjo ];
+    license = stdenv.lib.licenses.mit;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/misc/emulators/ppsspp/default.nix b/pkgs/misc/emulators/ppsspp/default.nix
index ced8e1344dad..4c49e1e3af2d 100644
--- a/pkgs/misc/emulators/ppsspp/default.nix
+++ b/pkgs/misc/emulators/ppsspp/default.nix
@@ -3,15 +3,15 @@
 }:
 
 let
-  version = "0.9.9";
+  version = "0.9.9.1";
   fstat = x: fn: "-D" + fn + "=" + (if x then "ON" else "OFF");
 in stdenv.mkDerivation {
   name = "PPSSPP-${version}";
 
   src = fetchgit {
     url = "https://github.com/hrydgard/ppsspp.git";
-    sha256 = "1m7awac87wrwys22qwbr0589im1ilm0dv30wp945xg30793rivvj";
-    rev = "b421e29391b34d997b2c99ce2bdc74a0df5bb472";
+    sha256 = "0fdbda0b4dfbecacd01850f1767e980281fed4cc34a21df26ab3259242d8c352";
+    rev = "bf709790c4fed9cd211f755acaa650ace0f7555a";
     fetchSubmodules = true;
   };
 
@@ -19,7 +19,7 @@ in stdenv.mkDerivation {
                 ++ (if withGamepads then [ SDL ] else [ ]);
 
   configurePhase = "cd Qt && qmake PPSSPPQt.pro";
-  installPhase = "mkdir -p $out/bin && cp PPSSPPQt $out/bin";
+  installPhase = "mkdir -p $out/bin && cp ppsspp $out/bin";
 
   meta = with stdenv.lib; {
     homepage = "http://www.ppsspp.org/";
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index 275b93e01b8b..b8c879d598ba 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -12,7 +12,7 @@ assert cupsSupport -> cups != null;
 let
   meta_common = {
     homepage = "http://www.gnu.org/software/ghostscript/";
-    description = "GNU Ghostscript, a PostScript interpreter";
+    description = "PostScript interpreter (GNU version)";
 
     longDescription = ''
       Ghostscript is the name of a set of tools that provides (i) an
@@ -48,7 +48,7 @@ let
     };
     meta = meta_common // {
       homepage = "http://www.ghostscript.com/";
-      description = "GPL Ghostscript, a PostScript interpreter";
+      description = "PostScript interpreter (mainline version)";
     };
 
     preConfigure = ''
diff --git a/pkgs/misc/xosd/default.nix b/pkgs/misc/xosd/default.nix
index d6b73ed16fe0..54538be84b41 100644
--- a/pkgs/misc/xosd/default.nix
+++ b/pkgs/misc/xosd/default.nix
@@ -14,6 +14,6 @@ stdenv.mkDerivation rec {
   buildInputs = [ libX11 libXext libXt xextproto xproto ];
 
   meta = {
-    description = "XOSD displays text on your screen";
+    description = "Displays text on your screen";
   };
 }
diff --git a/pkgs/os-specific/linux/conky/default.nix b/pkgs/os-specific/linux/conky/default.nix
index 92b97ffb592e..52e5d95346ed 100644
--- a/pkgs/os-specific/linux/conky/default.nix
+++ b/pkgs/os-specific/linux/conky/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://conky.sourceforge.net/;
-    description = "Conky is an advanced, highly configurable system monitor based on torsmo";
+    description = "Advanced, highly configurable system monitor based on torsmo";
     maintainers = [ stdenv.lib.maintainers.guibert ];
     license = stdenv.lib.licenses.gpl3Plus;
   };
diff --git a/pkgs/os-specific/linux/ffado/default.nix b/pkgs/os-specific/linux/ffado/default.nix
index e024a608a0b6..70c13be9ab4b 100644
--- a/pkgs/os-specific/linux/ffado/default.nix
+++ b/pkgs/os-specific/linux/ffado/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "libffado-${version}";
-  version = "2.1.0";
+  version = "2.2.1";
 
   src = fetchurl {
     url = "http://www.ffado.org/files/${name}.tgz";
-    sha256 = "11cxmy31c19720j2171l735rpg7l8i41icsgqscfd2vkbscfmh6y";
+    sha256 = "1ximic90l0av91njb123ra2zp6mg23yg5iz8xa5371cqrn79nacz";
   };
 
   buildInputs =
@@ -19,6 +19,17 @@ stdenv.mkDerivation rec {
 
   patches = [ ./enable-mixer-and-dbus.patch ];
 
+  # SConstruct checks cpuinfo and an objdump of /bin/mount to determine the appropriate arch
+  # Let's just skip this and tell it which to build
+  postPatch = if stdenv.isi686 then ''
+    sed '/def is_userspace_32bit(cpuinfo):/a\
+        return True' -i SConstruct
+  ''
+  else ''
+    sed '/def is_userspace_32bit(cpuinfo):/a\
+        return False' -i SConstruct
+  '';
+
   # TODO fix ffado-diag, it doesn't seem to use PYPKGDIR
   buildPhase = ''
     export PYLIBSUFFIX=lib/${python.libPrefix}/site-packages
diff --git a/pkgs/os-specific/linux/kernel/3.17-buildfix.patch b/pkgs/os-specific/linux/kernel/3.17-buildfix.patch
new file mode 100644
index 000000000000..234f0ac749f6
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/3.17-buildfix.patch
@@ -0,0 +1,62 @@
+From	Shea Levy <>
+Subject	[PATCH 1/1] usb: gadget: Remove use of PWD in Makefiles
+Date	Thu, 28 Aug 2014 01:30:46 -0400
+
+Using PWD breaks out-of-tree builds in certain circumstances [1], and
+other kernel Makefiles use relative paths just fine.
+
+[1]: https://bugzilla.kernel.org/show_bug.cgi?id=83251
+
+Signed-off-by: Shea Levy <shea@shealevy.com>
+---
+ drivers/usb/gadget/Makefile          | 2 +-
+ drivers/usb/gadget/function/Makefile | 4 ++--
+ drivers/usb/gadget/legacy/Makefile   | 6 +++---
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile
+index a186afe..9add915 100644
+--- a/drivers/usb/gadget/Makefile
++++ b/drivers/usb/gadget/Makefile
+@@ -3,7 +3,7 @@
+ #
+ subdir-ccflags-$(CONFIG_USB_GADGET_DEBUG)	:= -DDEBUG
+ subdir-ccflags-$(CONFIG_USB_GADGET_VERBOSE)	+= -DVERBOSE_DEBUG
+-ccflags-y				+= -I$(PWD)/drivers/usb/gadget/udc
++ccflags-y				+= -Idrivers/usb/gadget/udc
+ 
+ obj-$(CONFIG_USB_LIBCOMPOSITE)	+= libcomposite.o
+ libcomposite-y			:= usbstring.o config.o epautoconf.o
+diff --git a/drivers/usb/gadget/function/Makefile b/drivers/usb/gadget/function/Makefile
+index 6d91f21..83ae106 100644
+--- a/drivers/usb/gadget/function/Makefile
++++ b/drivers/usb/gadget/function/Makefile
+@@ -2,8 +2,8 @@
+ # USB peripheral controller drivers
+ #
+ 
+-ccflags-y			:= -I$(PWD)/drivers/usb/gadget/
+-ccflags-y			+= -I$(PWD)/drivers/usb/gadget/udc/
++ccflags-y			:= -Idrivers/usb/gadget/
++ccflags-y			+= -Idrivers/usb/gadget/udc/
+ 
+ # USB Functions
+ usb_f_acm-y			:= f_acm.o
+diff --git a/drivers/usb/gadget/legacy/Makefile b/drivers/usb/gadget/legacy/Makefile
+index a11aad5..edba2d1 100644
+--- a/drivers/usb/gadget/legacy/Makefile
++++ b/drivers/usb/gadget/legacy/Makefile
+@@ -2,9 +2,9 @@
+ # USB gadget drivers
+ #
+ 
+-ccflags-y			:= -I$(PWD)/drivers/usb/gadget/
+-ccflags-y			+= -I$(PWD)/drivers/usb/gadget/udc/
+-ccflags-y			+= -I$(PWD)/drivers/usb/gadget/function/
++ccflags-y			:= -Idrivers/usb/gadget/
++ccflags-y			+= -Idrivers/usb/gadget/udc/
++ccflags-y			+= -Idrivers/usb/gadget/function/
+ 
+ g_zero-y			:= zero.o
+ g_audio-y			:= audio.o
+-- 
+2.1.0
\ No newline at end of file
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 7a6ba94eb9fe..d5c754eebc7b 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -337,6 +337,8 @@ with stdenv.lib;
     ZSMALLOC y
   ''}
   ZRAM m
+  
+  ${optionalString (versionAtLeast version "3.17") "NFC? n"}
 
   ${kernelPlatform.kernelExtraConfig or ""}
   ${extraConfig}
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index 08611e448562..13250e45494f 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -28,6 +28,7 @@
 }:
 
 assert stdenv.platform.name == "sheevaplug" -> stdenv.platform.uboot != null;
+assert stdenv.isLinux;
 
 let
 
diff --git a/pkgs/os-specific/linux/kernel/linux-3.12.nix b/pkgs/os-specific/linux/kernel/linux-3.12.nix
index 291e43a98e58..c67c531667a5 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.26";
+  version = "3.12.27";
   extraMeta.branch = "3.12";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "1gp6brk2ix30g8dznd5yv1fq7yx82295va6cn7lwv6jj9w287s6c";
+    sha256 = "0c8psz9k6k413b48dphclqs6wkh9wiwf5nslykg27afdqd6v4ycc";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index f44f3d327921..ebbdd79ba167 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -1,16 +1,17 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  # Reason to add:  RTL8192EE
-  version = "3.16-rc3";
-  modDirVersion = "3.16.0-rc3";
-  extraMeta.branch = "3.16";
+  version = "3.17-rc2";
+  modDirVersion = "3.17.0-rc2";
+  extraMeta.branch = "3.17";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/testing/linux-${version}.tar.xz";
-    sha256 = "17jgv1hnx2im68f8721x11yfg8mpas7lsxg0j00qxv2fc6km2glm";
+    sha256 = "094r4kqp7bj1wcdfsgdmv73law4zb7d0sd8lw82v3rz944mlm9y3";
   };
 
+  kernelPatches = args.kernelPatches ++ [ { name = "3.17-buildfix.patch"; patch = ./3.17-buildfix.patch; } ];
+
   features.iwlwifi = true;
   features.efiBootStub = true;
   features.needsCifsUtils = true;
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index cfe006fbe4b5..c91b8ddfb44d 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.10";
-      revision  = "201407012152";
+    { kversion  = "3.14.17";
+      revision  = "201408260041";
       branch    = "stable";
-      sha256    = "1119044lzkr9wpr1gpl1g0bz67c2xpdd9bkddllij7ja24jv8sx1";
+      sha256    = "1brcfxbdd5f29vci3bj2dk3878z24ncrjw268j4i1n8ms65jqda0";
     };
 
   grsecurity_unstable = grsecPatch
-    { kversion  = "3.15.3";
-      revision  = "201407012153";
+    { kversion  = "3.15.10";
+      revision  = "201408212335";
       branch    = "test";
-      sha256    = "0bccayakprc77530crxfr9v2hbs6hlcf290pj1ywlh1p861ljgbm";
+      sha256    = "0ynnci7jms5a1acn8cpdw4w2j4jz5xai1da5w1l5r65909kwmx0k";
     };
 
   grsec_fix_path =
diff --git a/pkgs/os-specific/linux/nftables/default.nix b/pkgs/os-specific/linux/nftables/default.nix
new file mode 100644
index 000000000000..e8dd56ab9e26
--- /dev/null
+++ b/pkgs/os-specific/linux/nftables/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, docbook2x, docbook_xml_dtd_45
+, flex, bison, libmnl, libnftnl, gmp, readline }:
+
+stdenv.mkDerivation rec {
+  name = "nftables-0.3";
+
+  src = fetchurl {
+    url = "http://netfilter.org/projects/nftables/files/${name}.tar.bz2";
+    sha256 = "0bww48hc424svxfx3fpqxmbmp0n42ahs1f28f5f6g29d8i2jcdsd";
+  };
+
+  configureFlags = [
+    "CONFIG_MAN=y"
+    "DB2MAN=docbook2man"
+  ];
+
+  XML_CATALOG_FILES = "${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml";
+
+  buildInputs = [ docbook2x flex bison libmnl libnftnl gmp readline ];
+
+  meta = with stdenv.lib; {
+    description = "the project that aims to replace the existing {ip,ip6,arp,eb}tables framework";
+    homepage = http://netfilter.org/projects/nftables;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ wkennington ];
+  };
+}
diff --git a/pkgs/os-specific/linux/policycoreutils/default.nix b/pkgs/os-specific/linux/policycoreutils/default.nix
index d312e25fc2e4..ef7e76824db5 100644
--- a/pkgs/os-specific/linux/policycoreutils/default.nix
+++ b/pkgs/os-specific/linux/policycoreutils/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "1lpwxr5hw3dwhlp2p7y8jcr18mvfcrclwd8c2idz3lmmb3pglk46";
   };
 
-  patchPhase = ''
+  preConfigure = ''
     substituteInPlace po/Makefile --replace /usr/bin/install install
     find . -type f -exec sed -i 's,/usr/bin/python,${python}/bin/python,' {} \;
   '';
@@ -36,6 +36,10 @@ stdenv.mkDerivation rec {
 
   makeFlags = "PREFIX=$(out) DESTDIR=$(out) LOCALEDIR=$(out)/share/locale";
 
+  patches = [ ./size_format.patch ];
+
+  patchFlags = [ "-p0" ];
+
   meta = with stdenv.lib; {
     description = "SELinux policy core utilities";
     license = licenses.gpl2;
diff --git a/pkgs/os-specific/linux/policycoreutils/size_format.patch b/pkgs/os-specific/linux/policycoreutils/size_format.patch
new file mode 100644
index 000000000000..044320985479
--- /dev/null
+++ b/pkgs/os-specific/linux/policycoreutils/size_format.patch
@@ -0,0 +1,11 @@
+--- setfiles/restore.c.orig	2014-08-21 17:26:00.200788259 +0200
++++ setfiles/restore.c	2014-08-21 17:26:04.728888118 +0200
+@@ -118,7 +118,7 @@
+ 		r_opts->count++;
+ 		if (r_opts->count % STAR_COUNT == 0) {
+ 			if (r_opts->progress == 1) {
+-				fprintf(stdout, "\r%luk", (size_t) r_opts->count / STAR_COUNT );
++				fprintf(stdout, "\r%zuk", (size_t) r_opts->count / STAR_COUNT );
+ 			} else {
+ 				if (r_opts->nfile > 0) {
+ 					progress = (r_opts->count < r_opts->nfile) ? (100.0 * r_opts->count / r_opts->nfile) : 100;
diff --git a/pkgs/os-specific/linux/shadow/default.nix b/pkgs/os-specific/linux/shadow/default.nix
index b52801cacff7..f928dc8e657c 100644
--- a/pkgs/os-specific/linux/shadow/default.nix
+++ b/pkgs/os-specific/linux/shadow/default.nix
@@ -15,11 +15,11 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "shadow-4.1.5.1";
+  name = "shadow-4.2.1";
 
   src = fetchurl {
-    url = "http://pkg-shadow.alioth.debian.org/releases/${name}.tar.bz2";
-    sha256 = "1yvqx57vzih0jdy3grir8vfbkxp0cl0myql37bnmi2yn90vk6cma";
+    url = "http://pkg-shadow.alioth.debian.org/releases/${name}.tar.xz";
+    sha256 = "0h9x1zdbq0pqmygmc1x459jraiqw4gqz8849v268crk78z8r621v";
   };
 
   buildInputs = stdenv.lib.optional (pam != null && stdenv.isLinux) pam;
diff --git a/pkgs/os-specific/linux/xf86-input-wacom/default.nix b/pkgs/os-specific/linux/xf86-input-wacom/default.nix
index d4786037b5af..962aca777532 100644
--- a/pkgs/os-specific/linux/xf86-input-wacom/default.nix
+++ b/pkgs/os-specific/linux/xf86-input-wacom/default.nix
@@ -3,11 +3,11 @@
 , ncurses, pkgconfig, randrproto, xorgserver, xproto, udev, libXinerama, pixman }:
 
 stdenv.mkDerivation rec {
-  name = "xf86-input-wacom-0.25.0";
+  name = "xf86-input-wacom-0.25.99.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/linuxwacom/${name}.tar.bz2";
-    sha256 = "06kwcxmgja0xwc5glzwmxm237bsv9fk52k2d6ffq4naqfzn2k31k";
+    sha256 = "0vjl4m1w6j5j9yr2kw6f66n723ghq5jwxivbdjmacjw6r3ml4l9r";
   };
 
   buildInputs = [ inputproto libX11 libXext libXi libXrandr libXrender
diff --git a/pkgs/servers/amqp/rabbitmq-server/default.nix b/pkgs/servers/amqp/rabbitmq-server/default.nix
index 09b091b323c8..b5f9195abbde 100644
--- a/pkgs/servers/amqp/rabbitmq-server/default.nix
+++ b/pkgs/servers/amqp/rabbitmq-server/default.nix
@@ -4,11 +4,11 @@
 stdenv.mkDerivation rec {
   name = "rabbitmq-server-${version}";
 
-  version = "3.3.4";
+  version = "3.3.5";
 
   src = fetchurl {
     url = "http://www.rabbitmq.com/releases/rabbitmq-server/v${version}/${name}.tar.gz";
-    sha256 = "13nnsn34b44mz8w4b69bcpxmq4daqnxzd0lppg0f138pcssha43l";
+    sha256 = "1hkhkpv2f0nzvw09zfrqg89mphdpn4nwvzrlqnhqf82bd2pzhsvs";
   };
 
   buildInputs =
diff --git a/pkgs/servers/dico/default.nix b/pkgs/servers/dico/default.nix
index ca4980f5a6c4..f345fe71a34f 100644
--- a/pkgs/servers/dico/default.nix
+++ b/pkgs/servers/dico/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "GNU Dico, a flexible dictionary server and client implementing RFC 2229";
+    description = "Flexible dictionary server and client implementing RFC 2229";
     homepage    = http://www.gnu.org/software/dico/;
     license     = "GPLv3+";
     maintainers = with maintainers; [ lovek323 ];
diff --git a/pkgs/servers/dns/bind/default.nix b/pkgs/servers/dns/bind/default.nix
index 921d8e907f19..50e71a745464 100644
--- a/pkgs/servers/dns/bind/default.nix
+++ b/pkgs/servers/dns/bind/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.isc.org/software/bind";
-    description = "ISC BIND: a domain name server";
+    description = "Domain name server";
     license = stdenv.lib.licenses.isc;
 
     maintainers = with stdenv.lib.maintainers; [viric simons];
diff --git a/pkgs/servers/felix/default.nix b/pkgs/servers/felix/default.nix
index aa40365e8dea..c1114232ea8f 100644
--- a/pkgs/servers/felix/default.nix
+++ b/pkgs/servers/felix/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
     cp -av * $out
   '';
   meta = {
-    description = "Apache Felix OSGi gateway";
+    description = "An OSGi gateway";
     homepage = http://felix.apache.org;
     license = "ASF";
     maintainers = [ stdenv.lib.maintainers.sander ];
diff --git a/pkgs/servers/firebird/default.nix b/pkgs/servers/firebird/default.nix
index 365af29595c1..3e778317169c 100644
--- a/pkgs/servers/firebird/default.nix
+++ b/pkgs/servers/firebird/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
   installPhase = ''cp -r gen/firebird $out'';
 
   meta = {
-    description = "firebird database engine";
+    description = "SQL relational database management system";
     homepage = http://www.firebirdnews.org;
     license = ["IDPL" "Interbase-1.0"];
     maintainers = [stdenv.lib.maintainers.marcweber];
diff --git a/pkgs/servers/http/couchdb/default.nix b/pkgs/servers/http/couchdb/default.nix
index 35d4ebbf89f3..0b5244a5974f 100644
--- a/pkgs/servers/http/couchdb/default.nix
+++ b/pkgs/servers/http/couchdb/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "Apache CouchDB is a database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API";
+    description = "A database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API";
     homepage = "http://couchdb.apache.org";
     license = stdenv.lib.licenses.asl20;
     maintainers = with stdenv.lib.maintainers; [ viric garbas ];
diff --git a/pkgs/servers/http/jboss/default.nix b/pkgs/servers/http/jboss/default.nix
index d5768da4c824..86d371898872 100644
--- a/pkgs/servers/http/jboss/default.nix
+++ b/pkgs/servers/http/jboss/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
   
   meta = {
     homepage = "http://www.jboss.org/";
-    description = "JBoss, Open Source J2EE application server";
+    description = "Open Source J2EE application server";
     license = "GPL/LGPL";
     maintainers = [ lib.maintainers.sander ];
   };
diff --git a/pkgs/servers/http/openresty/default.nix b/pkgs/servers/http/openresty/default.nix
index f95272b7e8ae..571cd215356c 100644
--- a/pkgs/servers/http/openresty/default.nix
+++ b/pkgs/servers/http/openresty/default.nix
@@ -1,6 +1,8 @@
 { stdenv, fetchurl, fetchgit, openssl, zlib, pcre, libxml2, libxslt, gd, geoip
 , perl }:
 
+assert stdenv.isLinux;
+
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
@@ -46,13 +48,14 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${libxml2}/include/libxml2 $additionalFlags"
     export PATH="$PATH:${stdenv.gcc.libc}/sbin"
+    patchShebangs .
   '';
 
   meta = {
     description = "A fast web application server built on Nginx";
     homepage    = http://openresty.org;
     license     = licenses.bsd2;
-    platforms   = platforms.all;
+    platforms   = platforms.linux;
     maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/pkgs/servers/mail/mlmmj/default.nix b/pkgs/servers/mail/mlmmj/default.nix
new file mode 100644
index 000000000000..2ad6dedbf697
--- /dev/null
+++ b/pkgs/servers/mail/mlmmj/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig }:
+
+stdenv.mkDerivation rec {
+
+  name = "mlmmj-${version}";
+  version = "1.2.18.1";
+
+  src = fetchurl {
+    url = "http://mlmmj.org/releases/${name}.tar.gz";
+    sha256 = "336b6b20a6d7f0dcdc7445ecea0fe4bdacee241f624fcc710b4341780f35e383";
+  };
+
+  meta = with stdenv.lib; {
+    homepage = http://mlmmj.org;
+    description = "Mailing List Management Made Joyful";
+    maintainers = [ maintainers.edwtjo ];
+    platforms = platforms.linux;
+    license = licenses.mit;
+  };
+
+}
\ No newline at end of file
diff --git a/pkgs/servers/monitoring/riemann/default.nix b/pkgs/servers/monitoring/riemann/default.nix
new file mode 100644
index 000000000000..5278e5438133
--- /dev/null
+++ b/pkgs/servers/monitoring/riemann/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "riemann-${version}";
+  version = "0.2.6";
+
+  src = fetchurl {
+    url = "http://aphyr.com/riemann/${name}.tar.bz2";
+    sha256 = "1m1vkvdcpcc93ipzpdlq0lig81yw172qfiqbxlrbjyb0x6j1984d";
+  };
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  installPhase = ''
+    mkdir -p $out/share/java
+    mv lib/riemann.jar $out/share/java/
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://riemann.io/";
+    description = ''
+      A network monitoring system.
+    '';
+    license = licenses.epl10;
+    platforms = platforms.all;
+    maintainers = [ maintainers.rickynils ];
+  };
+}
diff --git a/pkgs/servers/news/leafnode/default.nix b/pkgs/servers/news/leafnode/default.nix
index 56d402397ecd..23f236a9a34e 100644
--- a/pkgs/servers/news/leafnode/default.nix
+++ b/pkgs/servers/news/leafnode/default.nix
@@ -24,5 +24,6 @@ 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 77852b6d2ed9..6c6fb213cb8c 100644
--- a/pkgs/servers/nosql/influxdb/default.nix
+++ b/pkgs/servers/nosql/influxdb/default.nix
@@ -1,5 +1,7 @@
 { stdenv, fetchurl, makeWrapper }:
 
+assert stdenv.isLinux;
+
 stdenv.mkDerivation rec {
   name = "influxdb-${version}";
   version = "0.7.0";
diff --git a/pkgs/servers/nosql/mongodb/default.nix b/pkgs/servers/nosql/mongodb/default.nix
index aa9da965d172..f51a2b8fe3f8 100644
--- a/pkgs/servers/nosql/mongodb/default.nix
+++ b/pkgs/servers/nosql/mongodb/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, scons, boost, gperftools, pcre, snappy }:
 
-let version = "2.6.0";
+let version = "2.6.4";
     system-libraries = [
       "tcmalloc"
       "pcre"
@@ -18,7 +18,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://downloads.mongodb.org/src/mongodb-src-r${version}.tar.gz";
-    sha256 = "066kppjdmdpadjr09ildla3aw42anzsc9pa55iwp3wa4rgqd2i33";
+    sha256 = "1h4rrgcb95234ryjma3fjg50qsm1bnxjx5ib0c3p9nzmc2ji2m07";
   };
 
   nativeBuildInputs = [ scons boost gperftools pcre snappy ];
diff --git a/pkgs/servers/nosql/neo4j/default.nix b/pkgs/servers/nosql/neo4j/default.nix
new file mode 100644
index 000000000000..91c4472e0492
--- /dev/null
+++ b/pkgs/servers/nosql/neo4j/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, makeWrapper, jre, which, gnused }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "neo4j-${version}";
+  version = "2.1.3";
+
+  src = fetchurl {
+    url = "http://dist.neo4j.org/neo4j-community-${version}-unix.tar.gz";
+    sha256 = "0gcyy6ayn8qvxj6za5463lgy320mn4rq7q5qysc26fxjd73drrrk";
+  };
+
+  buildInputs = [ makeWrapper jre which gnused ];
+
+  patchPhase = ''
+    substituteInPlace "bin/neo4j" --replace "NEO4J_INSTANCE=\$NEO4J_HOME" ""
+  '';
+
+  installPhase = ''
+    mkdir -p "$out/share/neo4j"
+    cp -R * "$out/share/neo4j"
+
+    mkdir -p "$out/bin"
+    makeWrapper "$out/share/neo4j/bin/neo4j" "$out/bin/neo4j" \
+        --prefix PATH : "${jre}/bin:${which}/bin:${gnused}/bin"
+    makeWrapper "$out/share/neo4j/bin/neo4j-shell" "$out/bin/neo4j-shell" \
+        --prefix PATH : "${jre}/bin:${which}/bin:${gnused}/bin"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "a highly scalable, robust (fully ACID) native graph database";
+    homepage = "http://www.neo4j.org/";
+    license = licenses.gpl3;
+
+    maintainers = [ maintainers.offline ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/servers/pies/default.nix b/pkgs/servers/pies/default.nix
index 958578138bc2..56c7da5caedf 100644
--- a/pkgs/servers/pies/default.nix
+++ b/pkgs/servers/pies/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "GNU Pies, a program invocation and execution supervisor";
+    description = "A program invocation and execution supervisor";
 
     longDescription =
       '' The name Pies (pronounced "p-yes") stands for Program Invocation and
diff --git a/pkgs/servers/pulseaudio/default.nix b/pkgs/servers/pulseaudio/default.nix
index 2c6f6c104931..a918007b47c6 100644
--- a/pkgs/servers/pulseaudio/default.nix
+++ b/pkgs/servers/pulseaudio/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
   installFlags = "sysconfdir=$(out)/etc pulseconfdir=$(out)/etc/pulse";
 
   meta = with stdenv.lib; {
-    description = "PulseAudio, a sound server for POSIX and Win32 systems";
+    description = "Sound server for POSIX and Win32 systems";
     homepage    = http://www.pulseaudio.org/;
     # Note: Practically, the server is under the GPL due to the
     # dependency on `libsamplerate'.  See `LICENSE' for details.
diff --git a/pkgs/servers/s6/default.nix b/pkgs/servers/s6/default.nix
new file mode 100644
index 000000000000..045e31207ba0
--- /dev/null
+++ b/pkgs/servers/s6/default.nix
@@ -0,0 +1,57 @@
+{stdenv, fetchurl, skalibs, execline}:
+
+let
+
+  version = "1.1.3.2";
+
+in stdenv.mkDerivation rec {
+
+  name = "s6-${version}";
+
+  src = fetchurl {
+    url = "http://www.skarnet.org/software/s6/${name}.tar.gz";
+    sha256 = "0djxdd3d3mlp63sjqqs0ilf8p68m86c1s98d82fl0kgaaibpsikp";
+  };
+
+  buildInputs = [ skalibs execline ];
+
+  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
+    printf "$out/sysdeps"       > conf-install-sysdeps
+
+    # let nix builder strip things, cross-platform
+    truncate --size 0 conf-stripbins
+    truncate --size 0 conf-striplibs
+
+    printf "${skalibs}/sysdeps" > import
+    printf "%s\n%s" "${skalibs}/include" "${execline}/include" > path-include
+    printf "%s\n%s" "${skalibs}/lib"     "${execline}/lib"     > path-library
+
+    rm -f flag-slashpackage
+    touch flag-allstatic
+
+    popd
+  '';
+
+  preBuild = ''
+    substituteInPlace "src/daemontools-extras/s6-log.c" \
+      --replace '"execlineb"' '"${execline}/bin/execlineb"'
+
+    patchShebangs src/sys
+  '';
+
+  meta = {
+    homepage = http://www.skarnet.org/software/s6/;
+    description = "skarnet.org's small & secure supervision software suite.";
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.isc;
+  };
+
+}
diff --git a/pkgs/servers/shishi/default.nix b/pkgs/servers/shishi/default.nix
index 2e0a4e84f6c7..a41915e5be8a 100644
--- a/pkgs/servers/shishi/default.nix
+++ b/pkgs/servers/shishi/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "GNU Shishi, free implementation of the Kerberos 5 network security system";
+    description = "An implementation of the Kerberos 5 network security system";
     homepage    = http://www.gnu.org/software/shishi/;
     license     = stdenv.lib.licenses.gpl3Plus;
     maintainers = with stdenv.lib.maintainers; [ bjg lovek323 ];
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index d64507ac3ba6..5dd7c0fa75dd 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -1644,6 +1644,16 @@ let
     buildInputs = [pkgconfig fontsproto glproto libdrm udev libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ];
   }) // {inherit fontsproto glproto libdrm udev libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ;};
 
+  xf86videoqxl = (mkDerivation "xf86videoqxl" {
+    name = "xf86-video-qxl-0.1.2";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = mirror://xorg/individual/driver/xf86-video-qxl-0.1.2.tar.bz2;
+      sha256 = "09sjpkg7klzzg9sagmqpsw911501vqk9wdd4nr0jkqqanvkx39s3";
+    };
+    buildInputs = [pkgconfig fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xf86dgaproto xorgserver xproto ];
+  }) // {inherit fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xf86dgaproto xorgserver xproto ;};
+
   xf86videor128 = (mkDerivation "xf86videor128" {
     name = "xf86-video-r128-6.9.2";
     builder = ./builder.sh;
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index a81b1a4ac225..93afa06a7f24 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -205,6 +205,10 @@ in
     buildInputs =  attrs.buildInputs ++ [ args.mesa_drivers ]; # for libxatracker
   };
 
+  xf86videoqxl = attrs: attrs // {
+    buildInputs =  attrs.buildInputs ++ [ args.spice_protocol ];
+  };
+
   xdriinfo = attrs: attrs // {
     buildInputs = attrs.buildInputs ++ [args.mesa];
   };
diff --git a/pkgs/servers/x11/xorg/tarballs-7.7.list b/pkgs/servers/x11/xorg/tarballs-7.7.list
index d606f7daaa51..1cc028e60d76 100644
--- a/pkgs/servers/x11/xorg/tarballs-7.7.list
+++ b/pkgs/servers/x11/xorg/tarballs-7.7.list
@@ -138,6 +138,7 @@ mirror://xorg/individual/driver/xf86-video-intel-2.21.15.tar.bz2
 mirror://xorg/individual/driver/xf86-video-mach64-6.9.4.tar.bz2
 mirror://xorg/individual/driver/xf86-video-mga-1.6.3.tar.bz2
 mirror://xorg/individual/driver/xf86-video-modesetting-0.9.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-qxl-0.1.2.tar.bz2
 mirror://xorg/individual/driver/xf86-video-neomagic-1.2.8.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86-video-newport-0.2.4.tar.bz2
 mirror://xorg/individual/driver/xf86-video-nv-2.1.20.tar.bz2
diff --git a/pkgs/servers/zookeeper/default.nix b/pkgs/servers/zookeeper/default.nix
new file mode 100755
index 000000000000..307993a958ad
--- /dev/null
+++ b/pkgs/servers/zookeeper/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, jre, makeWrapper, bash }:
+
+stdenv.mkDerivation rec {
+	name = "zookeeper-3.4.6";
+
+	src = fetchurl {
+		url = "mirror://apache/zookeeper/${name}/${name}.tar.gz";
+		sha256 = "01b3938547cd620dc4c93efe07c0360411f4a66962a70500b163b59014046994";
+	};
+
+	buildInputs = [ makeWrapper jre ];
+
+	phases = ["unpackPhase" "installPhase"];
+
+	installPhase = ''
+		mkdir -p $out
+		cp -R conf docs lib ${name}.jar $out
+		mkdir -p $out/bin
+		cp -R bin/{zkCli,zkCleanup,zkEnv}.sh $out/bin
+		for i in $out/bin/{zkCli,zkCleanup}.sh; do
+			wrapProgram $i \
+				--set JAVA_HOME "${jre}" \
+				--prefix PATH : "${bash}/bin"
+		done
+                chmod -x $out/bin/zkEnv.sh
+	'';
+
+	meta = with stdenv.lib; {
+		homepage = "http://zookeeper.apache.org";
+		description = "Apache Zookeeper";
+		license = licenses.asl20;
+		maintainers = [ maintainers.nathan-gs ];	
+		platforms = platforms.unix;	
+	};		
+
+}
diff --git a/pkgs/shells/ipython/default.nix b/pkgs/shells/ipython/default.nix
index cb0cc95c4ced..990eb174bafc 100644
--- a/pkgs/shells/ipython/default.nix
+++ b/pkgs/shells/ipython/default.nix
@@ -13,12 +13,12 @@ assert qtconsoleSupport == true -> pyqt4 != null;
 assert pylabQtSupport == true -> pyqt4 != null && sip != null;
 
 buildPythonPackage rec {
-  name = "ipython-2.0.0";
+  name = "ipython-2.2.0";
   namePrefix = "";
 
   src = fetchurl {
     url = "http://pypi.python.org/packages/source/i/ipython/${name}.tar.gz";
-    sha256 = "0fl9sznx83y2ck8wh5zr8avzjm5hz6r0xz38ij2fil3gin7w10sf";
+    sha256 = "1qk44lmir24gnwb3gxh0mqcghc8ln1i5ygxpalh06bx0ajx7gjmp";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/shells/rush/default.nix b/pkgs/shells/rush/default.nix
index e9d0c61ee081..3232caf5848b 100644
--- a/pkgs/shells/rush/default.nix
+++ b/pkgs/shells/rush/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "GNU Rush, Restricted User Shell";
+    description = "Restricted User Shell";
 
     longDescription =
       '' GNU Rush is a Restricted User Shell, designed for sites
diff --git a/pkgs/tools/X11/hsetroot/default.nix b/pkgs/tools/X11/hsetroot/default.nix
index d91f4bfdf652..e226f1f93c43 100644
--- a/pkgs/tools/X11/hsetroot/default.nix
+++ b/pkgs/tools/X11/hsetroot/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
   buildInputs = [ imlib2 libX11 libXext ];
 
   meta = {
-    description = "hsetroot allows you to compose wallpapers ('root pixmaps') for X";
+    description = "Allows you to compose wallpapers ('root pixmaps') for X";
     homepage = http://thegraveyard.org/hsetroot.html;
     license = stdenv.lib.licenses.gpl2Plus;
   };
diff --git a/pkgs/tools/X11/obconf/default.nix b/pkgs/tools/X11/obconf/default.nix
new file mode 100644
index 000000000000..e1a2e0dd496d
--- /dev/null
+++ b/pkgs/tools/X11/obconf/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, pkgconfig, gtk, libglade, openbox,
+  imlib2, libstartup_notification, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "obconf-${version}";
+  version = "2.0.4";
+
+  src = fetchurl {
+    url = "http://openbox.org/dist/obconf/obconf-${version}.tar.gz";
+    sha256 = "1fanjdmd8727kk74x5404vi8v7s4kpq48l583d12fsi4xvsfb8vi";
+  };
+
+  buildInputs = [
+    pkgconfig gtk libglade openbox imlib2 libstartup_notification makeWrapper
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/obconf --prefix XDG_DATA_DIRS : ${openbox}/share/
+  '';
+
+  meta = {
+    description = "GUI configuration tool for openbox";
+    homepage = "http://openbox.org/wiki/ObConf";
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.lhvwb ];
+  };
+}
diff --git a/pkgs/tools/X11/wmctrl/default.nix b/pkgs/tools/X11/wmctrl/default.nix
index 3f691b8ecd45..2e23e7bd4de4 100644
--- a/pkgs/tools/X11/wmctrl/default.nix
+++ b/pkgs/tools/X11/wmctrl/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://tomas.styblo.name/wmctrl/;
-    description = "wmctrl is a UNIX/Linux command line tool to interact with an EWMH/NetWM compatible X Window Manager";
+    description = "Command line tool to interact with an EWMH/NetWM compatible X Window Manager";
     license = stdenv.lib.licenses.gpl2;
     platforms = with stdenv.lib.platforms; all;
   };
diff --git a/pkgs/tools/X11/xinput_calibrator/default.nix b/pkgs/tools/X11/xinput_calibrator/default.nix
new file mode 100644
index 000000000000..8f21f6558ffc
--- /dev/null
+++ b/pkgs/tools/X11/xinput_calibrator/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, libXi, inputproto, autoconf, automake, libtool, m4, x11, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  version = "0.7.5";
+  name = "xinput_calibrator";
+  src = fetchurl {
+    url = "https://github.com/tias/${name}/archive/v${version}.tar.gz";
+    sha256 = "d8edbf84523d60f52311d086a1e3ad0f3536f448360063dd8029bf6290aa65e9";
+  };
+
+  preConfigure = "./autogen.sh --with-gui=X11";
+
+  buildInputs = [ inputproto libXi autoconf automake libtool m4 x11 pkgconfig ];
+
+  meta = {
+    homepage = https://github.com/tias/xinput_calibrator;
+    description = "A generic touchscreen calibration program for X.Org";
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.flosse ];
+  };
+}
diff --git a/pkgs/tools/X11/xnee/default.nix b/pkgs/tools/X11/xnee/default.nix
index 0e92021b62c9..35c4ca06c6c5 100644
--- a/pkgs/tools/X11/xnee/default.nix
+++ b/pkgs/tools/X11/xnee/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "GNU Xnee, an X11 event recording and replay tool";
+    description = "X11 event recording and replay tool";
 
     longDescription =
       '' Xnee is a suite of programs that can record, replay and distribute
diff --git a/pkgs/tools/X11/xtrace/default.nix b/pkgs/tools/X11/xtrace/default.nix
index efc0647f5dbd..c3c9c70fe927 100644
--- a/pkgs/tools/X11/xtrace/default.nix
+++ b/pkgs/tools/X11/xtrace/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = http://xtrace.alioth.debian.org/;
-    description = "xtrace, a tool to trace X11 protocol connections";
+    description = "Tool to trace X11 protocol connections";
     license = stdenv.lib.licenses.gpl2;
     maintainers = with stdenv.lib.maintainers; [viric];
     platforms = with stdenv.lib.platforms; linux;
diff --git a/pkgs/tools/admin/tigervnc/default.nix b/pkgs/tools/admin/tigervnc/default.nix
index 7393336f2be4..a7ec73f55d73 100644
--- a/pkgs/tools/admin/tigervnc/default.nix
+++ b/pkgs/tools/admin/tigervnc/default.nix
@@ -53,7 +53,12 @@ stdenv.mkDerivation rec {
       patch -p1 < $a
     done
     autoreconf -vfi
-    ./configure $configureFlags --disable-xinerama --disable-xvfb --disable-xnest --disable-xorg --disable-dmx --disable-dri --disable-dri2 --disable-glx --prefix="$out" --disable-unit-tests
+    ./configure $configureFlags --disable-xinerama --disable-xvfb --disable-xnest \
+        --disable-xorg --disable-dmx --disable-dri --disable-dri2 --disable-glx \
+        --prefix="$out" --disable-unit-tests \
+        --with-xkb-path=${xkeyboard_config}/share/X11/xkb \
+        --with-xkb-bin-directory=${xkbcomp}/bin \
+        --with-xkb-output=$out/share/X11/xkb/compiled
     make TIGERVNC_SRCDIR=`pwd`/../..
     popd
   '';
diff --git a/pkgs/tools/admin/tightvnc/default.nix b/pkgs/tools/admin/tightvnc/default.nix
index acb8708ec14f..407242cf2d9b 100644
--- a/pkgs/tools/admin/tightvnc/default.nix
+++ b/pkgs/tools/admin/tightvnc/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
   meta = {
     license = stdenv.lib.licenses.gpl2Plus;
     homepage = "http://vnc-tight.sourceforge.net/";
-    description = "TightVNC is an improved version of VNC";
+    description = "Improved version of VNC";
 
     longDescription = ''
       TightVNC is an improved version of VNC, the great free
diff --git a/pkgs/tools/archivers/sharutils/default.nix b/pkgs/tools/archivers/sharutils/default.nix
index afd734fbae04..f19564e4ad91 100644
--- a/pkgs/tools/archivers/sharutils/default.nix
+++ b/pkgs/tools/archivers/sharutils/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "GNU Sharutils, tools for remote synchronization and `shell archives'";
+    description = "Tools for remote synchronization and `shell archives'";
 
     longDescription =
       '' GNU shar makes so-called shell archives out of many files, preparing
diff --git a/pkgs/tools/audio/pnmixer/default.nix b/pkgs/tools/audio/pnmixer/default.nix
new file mode 100644
index 000000000000..d7964c0961c6
--- /dev/null
+++ b/pkgs/tools/audio/pnmixer/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchgit, alsaLib, pkgconfig, gtk3, glibc, autoconf, automake, libnotify, libX11, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "pnmixer";
+
+  src = fetchgit {
+    url = "git://github.com/nicklan/pnmixer.git";
+    rev = "1e09a075c0c63d8b161b13ea92528a798bdb464a";
+    sha256 = "15k689xycpc6pvq9vgg9ak92b9sg09dh4yrh83kjcaws63alrzl5";
+  };
+
+  buildInputs = [
+    alsaLib pkgconfig gtk3 glibc autoconf automake libnotify libX11 gettext
+  ];
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  # work around a problem related to gtk3 updates
+  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+
+  meta = with stdenv.lib; {
+    description = "ALSA mixer for the system tray";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ campadrenalin ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/backup/partclone/default.nix b/pkgs/tools/backup/partclone/default.nix
index b446b06f987c..fe2b9e00aaaf 100644
--- a/pkgs/tools/backup/partclone/default.nix
+++ b/pkgs/tools/backup/partclone/default.nix
@@ -17,7 +17,13 @@ stdenv.mkDerivation {
   installPhase = ''make INSTPREFIX=$out install'';
 
   meta = {
-    description = "Partclone provides utilities to save and restore used blocks on a partition and is designed for higher compatibility of the file system by using existing libraries, e.g. e2fslibs is used to read and write the ext2 partition";
+    description = "Utilities to save and restore used blocks on a partition";
+    longDescription = ''
+      Partclone provides utilities to save and restore used blocks on a
+      partition and is designed for higher compatibility of the file system by
+      using existing libraries, e.g. e2fslibs is used to read and write the
+      ext2 partition.
+    '';
     homepage = http://partclone.org;
     license = stdenv.lib.licenses.gpl2;
     maintainers = [stdenv.lib.maintainers.marcweber];
diff --git a/pkgs/tools/cd-dvd/xorriso/default.nix b/pkgs/tools/cd-dvd/xorriso/default.nix
index 88cca66efb13..218ea9a1e7ff 100644
--- a/pkgs/tools/cd-dvd/xorriso/default.nix
+++ b/pkgs/tools/cd-dvd/xorriso/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional stdenv.isLinux acl;
 
   meta = {
-    description = "GNU xorriso, an ISO 9660 Rock Ridge file system manipulator";
+    description = "ISO 9660 Rock Ridge file system manipulator";
 
     longDescription =
       '' GNU xorriso copies file objects from POSIX compliant filesystems
diff --git a/pkgs/tools/compression/gzip/default.nix b/pkgs/tools/compression/gzip/default.nix
index b7bf9c59f494..cc304d9aa1e5 100644
--- a/pkgs/tools/compression/gzip/default.nix
+++ b/pkgs/tools/compression/gzip/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.gnu.org/software/gzip/;
-    description = "Gzip, the GNU zip compression program";
+    description = "GNU zip compression program";
 
     longDescription =
       ''gzip (GNU zip) is a popular data compression program written by
diff --git a/pkgs/tools/compression/rzip/default.nix b/pkgs/tools/compression/rzip/default.nix
index ca8d356abb3e..4460ae6edf3e 100644
--- a/pkgs/tools/compression/rzip/default.nix
+++ b/pkgs/tools/compression/rzip/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = http://rzip.samba.org/;
-    description = "The RZIP compression program";
+    description = "Compression program";
     license = stdenv.lib.licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/tools/filesystems/chunkfs/default.nix b/pkgs/tools/filesystems/chunkfs/default.nix
index d91525e348f7..f8c6942bad0e 100644
--- a/pkgs/tools/filesystems/chunkfs/default.nix
+++ b/pkgs/tools/filesystems/chunkfs/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "(Un)ChunkFS is a pair of FUSE filesystems for viewing chunksync-style directory trees as a block device and vice versa.";
+    description = "FUSE filesystems for viewing chunksync-style directory trees as a block device and vice versa";
     homepage = "http://chunkfs.florz.de/";
     license = stdenv.lib.licenses.gpl2;
     platforms = with stdenv.lib.platforms; linux;
diff --git a/pkgs/tools/filesystems/encfs/default.nix b/pkgs/tools/filesystems/encfs/default.nix
index 9ebab38984bc..ea96001a421b 100644
--- a/pkgs/tools/filesystems/encfs/default.nix
+++ b/pkgs/tools/filesystems/encfs/default.nix
@@ -14,6 +14,6 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = http://www.arg0.net/encfs;
-    description = "EncFS provides an encrypted filesystem in user-space via FUSE";
+    description = "Provides an encrypted filesystem in user-space via FUSE";
   };
 }
diff --git a/pkgs/tools/filesystems/mtools/default.nix b/pkgs/tools/filesystems/mtools/default.nix
index 0b666f389420..6b9631bfccfe 100644
--- a/pkgs/tools/filesystems/mtools/default.nix
+++ b/pkgs/tools/filesystems/mtools/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.gnu.org/software/mtools/;
-    description = "GNU mtools, utilities to access MS-DOS disks";
+    description = "Utilities to access MS-DOS disks";
     platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
     maintainers = [ ];
   };
diff --git a/pkgs/tools/filesystems/svnfs/default.nix b/pkgs/tools/filesystems/svnfs/default.nix
index b6a296e6bc7b..fba066d0f4cb 100644
--- a/pkgs/tools/filesystems/svnfs/default.nix
+++ b/pkgs/tools/filesystems/svnfs/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   NIX_LDFLAGS="-lsvn_client-1";
 
   meta = {
-    description = "SvnFs is a filesystem written using FUSE for accessing Subversion repositories";
+    description = "FUSE filesystem for accessing Subversion repositories";
     homepage = http://www.jmadden.eu/index.php/svnfs/;
     license = stdenv.lib.licenses.gpl2;
     maintainers = [stdenv.lib.maintainers.marcweber];
diff --git a/pkgs/tools/filesystems/wdfs/default.nix b/pkgs/tools/filesystems/wdfs/default.nix
index 68d978a2a554..a28d5394fc19 100644
--- a/pkgs/tools/filesystems/wdfs/default.nix
+++ b/pkgs/tools/filesystems/wdfs/default.nix
@@ -10,6 +10,6 @@ stdenv.mkDerivation rec
   buildInputs = [fuse glib neon pkgconfig];
   meta = {
     homepage = "http://noedler.de/projekte/wdfs/";
-    description = "wdfs a user-space filesystem that allows to mount a webdav share";
+    description = "User-space filesystem that allows to mount a webdav share";
   };
 }
diff --git a/pkgs/tools/filesystems/yandex-disk/default.nix b/pkgs/tools/filesystems/yandex-disk/default.nix
index 24dbae08fab3..c9078a0cb8be 100644
--- a/pkgs/tools/filesystems/yandex-disk/default.nix
+++ b/pkgs/tools/filesystems/yandex-disk/default.nix
@@ -1,4 +1,7 @@
 { stdenv, fetchurl, writeText, zlib, rpm, cpio, patchelf, which }:
+
+assert stdenv.isLinux;
+
 let
   p = if stdenv.is64bit then {
       arch = "x86_64";
diff --git a/pkgs/tools/graphics/cuneiform/default.nix b/pkgs/tools/graphics/cuneiform/default.nix
index 2638594903ab..0e94571503c3 100644
--- a/pkgs/tools/graphics/cuneiform/default.nix
+++ b/pkgs/tools/graphics/cuneiform/default.nix
@@ -37,6 +37,6 @@ rec {
   name = "cuneiform-" + version;
   meta = {
     inherit version;
-    description = "Cuneiform OCR";
+    description = "Multi-language OCR system";
   };
 }
diff --git a/pkgs/tools/graphics/plotutils/default.nix b/pkgs/tools/graphics/plotutils/default.nix
index ae0c4d197315..0f67de3c3ea1 100644
--- a/pkgs/tools/graphics/plotutils/default.nix
+++ b/pkgs/tools/graphics/plotutils/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "GNU Plotutils, a powerful C/C++ library for exporting 2D vector graphics";
+    description = "Powerful C/C++ library for exporting 2D vector graphics";
 
     longDescription =
       '' The GNU plotutils package contains software for both programmers and
diff --git a/pkgs/tools/inputmethods/anthy/default.nix b/pkgs/tools/inputmethods/anthy/default.nix
new file mode 100644
index 000000000000..34ffa1568b98
--- /dev/null
+++ b/pkgs/tools/inputmethods/anthy/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "anthy-9100h";
+
+  meta = with stdenv.lib; {
+    description = "Hiragana text to Kana Kanji mixed text Japanese input method";
+    homepace    = http://sourceforge.jp/projects/anthy/;
+    license     = licenses.gpl2Plus;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ iyzsong ];
+  };
+
+  src = fetchurl {
+    url = "http://dl.sourceforge.jp/anthy/37536/anthy-9100h.tar.gz";
+    sha256 = "0ism4zibcsa5nl77wwi12vdsfjys3waxcphn1p5s7d0qy1sz0mnj";
+  };
+}
diff --git a/pkgs/tools/inputmethods/uim/default.nix b/pkgs/tools/inputmethods/uim/default.nix
new file mode 100644
index 000000000000..b8ee95fae92c
--- /dev/null
+++ b/pkgs/tools/inputmethods/uim/default.nix
@@ -0,0 +1,44 @@
+{stdenv, fetchurl, intltool, pkgconfig, qt4, gtk2, gtk3, kdelibs, cmake, ... }:
+
+stdenv.mkDerivation rec {
+  version = "1.8.6";
+  name = "uim-${version}";
+
+  buildInputs = [
+    intltool
+    pkgconfig
+    qt4
+    gtk2
+    gtk3
+    kdelibs
+    cmake
+  ];
+
+  patches = [ ./immodules_cache.patch ];
+
+  configureFlags = [
+    "--with-gtk2"
+    "--with-gtk3"
+    "--enable-kde4-applet"
+    "--enable-notify=knotify4"
+    "--enable-pref"
+    "--with-qt4"
+    "--with-qt4-immodule"
+    "--with-skk"
+    "--with-x"
+  ];
+
+  dontUseCmakeConfigure = true;
+
+  src = fetchurl {
+    url = "http://uim.googlecode.com/files/uim-${version}.tar.bz2";
+    sha1 = "43b9dbdead6797880e6cfc9c032ecb2d37d42777";
+  };
+
+  meta = {
+    homepage = "http://code.google.com/p/uim/";
+    description = "A multilingual input method framework";
+    license = stdenv.lib.licenses.bsd3;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/inputmethods/uim/immodules_cache.patch b/pkgs/tools/inputmethods/uim/immodules_cache.patch
new file mode 100644
index 000000000000..c2d08b661e38
--- /dev/null
+++ b/pkgs/tools/inputmethods/uim/immodules_cache.patch
@@ -0,0 +1,231 @@
+diff -ru -x '*~' uim-1.8.6.orig/gtk2/immodule/Makefile.am uim-1.8.6/gtk2/immodule/Makefile.am
+--- uim-1.8.6.orig/gtk2/immodule/Makefile.am	2013-06-30 13:26:09.000000000 +0900
++++ uim-1.8.6/gtk2/immodule/Makefile.am	2014-07-13 21:51:26.538400004 +0900
+@@ -1,5 +1,5 @@
+ uim_gtk_im_module_path = $(libdir)/gtk-2.0
+-uim_gtk_im_module_file = $(DESTDIR)$(sysconfdir)/gtk-2.0/gtk.immodules
++uim_gtk_im_module_file = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules.cache
+ 
+ moduledir = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules
+ 
+@@ -38,48 +38,12 @@
+ 
+ install-data-hook: gtk-rc-get-immodule-file
+ 	if test -z $(DESTDIR); then \
+-	  if test $(libdir) = $(GTK_LIBDIR); then \
+-	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
+-	      $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \
+-	      echo "*** \"`$(GTK_RC_GET_IMMODULE_FILE)`\" is updated. ***";  \
+-	    else \
+-	      echo "********************** Warning ***********************"; \
+-	      echo " $(QUERY_COMMAND) not found"; \
+-	      echo " Please make sure to update"; \
+-	      echo " \"`$(GTK_RC_GET_IMMODULE_FILE)`\""; \
+-	      echo " manually."; \
+-	      echo "******************************************************"; \
+-	    fi \
+-	  else \
+-	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
+-	      $(mkinstalldirs) $(sysconfdir)/gtk-2.0; \
+-	      GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
+-	      echo "******************************************************"; \
+-	      echo " You need to set"; \
+-	      echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \
+-	      echo " environment variable to use this module."; \
+-	      echo "******************************************************"; \
+-	    else \
+-	      echo "********************** Warning ***********************"; \
+-	      echo " $(QUERY_COMMAND) not found"; \
+-	      echo " Please make sure to update"; \
+-	      echo " \"$(uim_gtk_im_module_file)\""; \
+-	      echo " manually, and set"; \
+-	      echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \
+-	      echo " environment variable to use this module."; \
+-	      echo "******************************************************"; \
+-	    fi \
+-	  fi \
++	  $(mkinstalldirs) $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@; \
++	  GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
+ 	fi
+ uninstall-hook:
+ 	if test -z $(DESTDIR); then \
+-	  if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
+-	    if test $(libdir) = $(GTK_LIBDIR); then \
+-	      $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \
+-	    else \
+-	      GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
+-	    fi \
+-	  fi \
++	  GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
+ 	fi
+ else
+ install-data-hook:
+diff -ru -x '*~' uim-1.8.6.orig/gtk2/immodule/Makefile.in uim-1.8.6/gtk2/immodule/Makefile.in
+--- uim-1.8.6.orig/gtk2/immodule/Makefile.in	2013-06-30 13:27:08.000000000 +0900
++++ uim-1.8.6/gtk2/immodule/Makefile.in	2014-07-13 22:12:27.947595507 +0900
+@@ -434,7 +434,7 @@
+ top_srcdir = @top_srcdir@
+ uim_pixmapsdir = @uim_pixmapsdir@
+ uim_gtk_im_module_path = $(libdir)/gtk-2.0
+-uim_gtk_im_module_file = $(DESTDIR)$(sysconfdir)/gtk-2.0/gtk.immodules
++uim_gtk_im_module_file = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules.cache
+ moduledir = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules
+ @GTK2_TRUE@im_uim_la = im-uim.la
+ @GTK2_TRUE@im_uim_la_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir)
+@@ -875,48 +875,12 @@
+ 
+ @GTK2_TRUE@install-data-hook: gtk-rc-get-immodule-file
+ @GTK2_TRUE@	if test -z $(DESTDIR); then \
+-@GTK2_TRUE@	  if test $(libdir) = $(GTK_LIBDIR); then \
+-@GTK2_TRUE@	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
+-@GTK2_TRUE@	      $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \
+-@GTK2_TRUE@	      echo "*** \"`$(GTK_RC_GET_IMMODULE_FILE)`\" is updated. ***";  \
+-@GTK2_TRUE@	    else \
+-@GTK2_TRUE@	      echo "********************** Warning ***********************"; \
+-@GTK2_TRUE@	      echo " $(QUERY_COMMAND) not found"; \
+-@GTK2_TRUE@	      echo " Please make sure to update"; \
+-@GTK2_TRUE@	      echo " \"`$(GTK_RC_GET_IMMODULE_FILE)`\""; \
+-@GTK2_TRUE@	      echo " manually."; \
+-@GTK2_TRUE@	      echo "******************************************************"; \
+-@GTK2_TRUE@	    fi \
+-@GTK2_TRUE@	  else \
+-@GTK2_TRUE@	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
+-@GTK2_TRUE@	      $(mkinstalldirs) $(sysconfdir)/gtk-2.0; \
+-@GTK2_TRUE@	      GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
+-@GTK2_TRUE@	      echo "******************************************************"; \
+-@GTK2_TRUE@	      echo " You need to set"; \
+-@GTK2_TRUE@	      echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \
+-@GTK2_TRUE@	      echo " environment variable to use this module."; \
+-@GTK2_TRUE@	      echo "******************************************************"; \
+-@GTK2_TRUE@	    else \
+-@GTK2_TRUE@	      echo "********************** Warning ***********************"; \
+-@GTK2_TRUE@	      echo " $(QUERY_COMMAND) not found"; \
+-@GTK2_TRUE@	      echo " Please make sure to update"; \
+-@GTK2_TRUE@	      echo " \"$(uim_gtk_im_module_file)\""; \
+-@GTK2_TRUE@	      echo " manually, and set"; \
+-@GTK2_TRUE@	      echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \
+-@GTK2_TRUE@	      echo " environment variable to use this module."; \
+-@GTK2_TRUE@	      echo "******************************************************"; \
+-@GTK2_TRUE@	    fi \
+-@GTK2_TRUE@	  fi \
++@GTK2_TRUE@	  $(mkinstalldirs) $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@; \
++@GTK2_TRUE@	  GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
+ @GTK2_TRUE@	fi
+ @GTK2_TRUE@uninstall-hook:
+ @GTK2_TRUE@	if test -z $(DESTDIR); then \
+-@GTK2_TRUE@	  if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
+-@GTK2_TRUE@	    if test $(libdir) = $(GTK_LIBDIR); then \
+-@GTK2_TRUE@	      $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \
+-@GTK2_TRUE@	    else \
+-@GTK2_TRUE@	      GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
+-@GTK2_TRUE@	    fi \
+-@GTK2_TRUE@	  fi \
++@GTK2_TRUE@	  GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
+ @GTK2_TRUE@	fi
+ @GTK2_FALSE@install-data-hook:
+ 
+diff -ru -x '*~' uim-1.8.6.orig/gtk3/immodule/Makefile.am uim-1.8.6/gtk3/immodule/Makefile.am
+--- uim-1.8.6.orig/gtk3/immodule/Makefile.am	2013-06-30 13:26:20.000000000 +0900
++++ uim-1.8.6/gtk3/immodule/Makefile.am	2014-07-13 21:55:38.114246503 +0900
+@@ -45,42 +45,11 @@
+ 
+ install-data-hook: gtk3-rc-get-immodule-file
+ 	if test -z $(DESTDIR); then \
+-	  if test $(libdir) = $(GTK3_LIBDIR); then \
+-	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
+-	      $(QUERY_COMMAND) --update-cache; \
+-	      echo "*** \"`$(GTK3_RC_GET_IMMODULE_FILE)`\" is updated. ***";  \
+-	    else \
+-	      echo "********************** Warning ***********************"; \
+-	      echo " $(QUERY_COMMAND) not found"; \
+-	      echo " Please make sure to update"; \
+-	      echo " \"`$(GTK3_RC_GET_IMMODULE_FILE)`\""; \
+-	      echo " manually."; \
+-	      echo "******************************************************"; \
+-	    fi \
+-	  else \
+-	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
+-	      GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \
+-	    else \
+-	      echo "********************** Warning ***********************"; \
+-	      echo " $(QUERY_COMMAND) not found"; \
+-	      echo " Please make sure to update"; \
+-	      echo " immodules.cache"; \
+-	      echo " manually, and set"; \
+-	      echo " GTK_IM_MODULE_FILE=PATH_TO/immodule.cache"; \
+-	      echo " environment variable to use this module."; \
+-	      echo "******************************************************"; \
+-	    fi \
+-	  fi \
++	  GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \
+ 	fi
+ uninstall-hook:
+ 	if test -z $(DESTDIR); then \
+-	  if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
+-	    if test $(libdir) = $(GTK3_LIBDIR); then \
+-	      $(QUERY_COMMAND) --update-cache; \
+-	    else \
+-	      GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \
+-	    fi \
+-	  fi \
++	  GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \
+ 	fi
+ else
+ install-data-hook:
+diff -ru -x '*~' uim-1.8.6.orig/gtk3/immodule/Makefile.in uim-1.8.6/gtk3/immodule/Makefile.in
+--- uim-1.8.6.orig/gtk3/immodule/Makefile.in	2013-06-30 13:27:08.000000000 +0900
++++ uim-1.8.6/gtk3/immodule/Makefile.in	2014-07-13 21:56:11.531225832 +0900
+@@ -893,42 +893,11 @@
+ 
+ @GTK3_TRUE@install-data-hook: gtk3-rc-get-immodule-file
+ @GTK3_TRUE@	if test -z $(DESTDIR); then \
+-@GTK3_TRUE@	  if test $(libdir) = $(GTK3_LIBDIR); then \
+-@GTK3_TRUE@	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
+-@GTK3_TRUE@	      $(QUERY_COMMAND) --update-cache; \
+-@GTK3_TRUE@	      echo "*** \"`$(GTK3_RC_GET_IMMODULE_FILE)`\" is updated. ***";  \
+-@GTK3_TRUE@	    else \
+-@GTK3_TRUE@	      echo "********************** Warning ***********************"; \
+-@GTK3_TRUE@	      echo " $(QUERY_COMMAND) not found"; \
+-@GTK3_TRUE@	      echo " Please make sure to update"; \
+-@GTK3_TRUE@	      echo " \"`$(GTK3_RC_GET_IMMODULE_FILE)`\""; \
+-@GTK3_TRUE@	      echo " manually."; \
+-@GTK3_TRUE@	      echo "******************************************************"; \
+-@GTK3_TRUE@	    fi \
+-@GTK3_TRUE@	  else \
+-@GTK3_TRUE@	    if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
+-@GTK3_TRUE@	      GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \
+-@GTK3_TRUE@	    else \
+-@GTK3_TRUE@	      echo "********************** Warning ***********************"; \
+-@GTK3_TRUE@	      echo " $(QUERY_COMMAND) not found"; \
+-@GTK3_TRUE@	      echo " Please make sure to update"; \
+-@GTK3_TRUE@	      echo " immodules.cache"; \
+-@GTK3_TRUE@	      echo " manually, and set"; \
+-@GTK3_TRUE@	      echo " GTK_IM_MODULE_FILE=PATH_TO/immodule.cache"; \
+-@GTK3_TRUE@	      echo " environment variable to use this module."; \
+-@GTK3_TRUE@	      echo "******************************************************"; \
+-@GTK3_TRUE@	    fi \
+-@GTK3_TRUE@	  fi \
++@GTK3_TRUE@	  GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \
+ @GTK3_TRUE@	fi
+ @GTK3_TRUE@uninstall-hook:
+ @GTK3_TRUE@	if test -z $(DESTDIR); then \
+-@GTK3_TRUE@	  if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
+-@GTK3_TRUE@	    if test $(libdir) = $(GTK3_LIBDIR); then \
+-@GTK3_TRUE@	      $(QUERY_COMMAND) --update-cache; \
+-@GTK3_TRUE@	    else \
+-@GTK3_TRUE@	      GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \
+-@GTK3_TRUE@	    fi \
+-@GTK3_TRUE@	  fi \
++@GTK3_TRUE@	  GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \
+ @GTK3_TRUE@	fi
+ @GTK3_FALSE@install-data-hook:
+ 
+diff -ru -x '*~' uim-1.8.6.orig/qt4/immodule/quiminputcontextplugin.pro.in uim-1.8.6/qt4/immodule/quiminputcontextplugin.pro.in
+--- uim-1.8.6.orig/qt4/immodule/quiminputcontextplugin.pro.in	2013-06-30 13:26:20.000000000 +0900
++++ uim-1.8.6/qt4/immodule/quiminputcontextplugin.pro.in	2014-03-09 11:31:19.388085048 +0900
+@@ -35,4 +35,4 @@
+ 
+ TARGET = uiminputcontextplugin
+ 
+-target.path += @DESTDIR@$$[QT_INSTALL_PLUGINS]/inputmethods
++target.path += @DESTDIR@@exec_prefix@/lib/qt4/plugins/inputmethods
diff --git a/pkgs/tools/misc/abduco/default.nix b/pkgs/tools/misc/abduco/default.nix
new file mode 100644
index 000000000000..a3f5c4a1d61e
--- /dev/null
+++ b/pkgs/tools/misc/abduco/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, writeText, conf? null}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+    name = "abduco-0.1";
+
+    meta = {
+        homepage = http://brain-dump.org/projects/abduco;
+        license = licenses.isc;
+        description = "Allows programs to be run independently from its controlling terminal";
+        platforms = with platforms; linux;
+    };
+
+    src = fetchurl {
+        url = "http://www.brain-dump.org/projects/abduco/${name}.tar.gz";
+        sha256 = "b4ef297cb7cc81170dc7edf75385cb1c55e024a52f90c1dd0bc0e9862e6f39b5";
+    };
+
+    configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
+    preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
+
+    buildInputs = [];
+
+    installPhase = ''
+      make PREFIX=$out install
+    '';
+}
diff --git a/pkgs/tools/misc/cpuminer-multi/default.nix b/pkgs/tools/misc/cpuminer-multi/default.nix
new file mode 100644
index 000000000000..c61e0ff00b3f
--- /dev/null
+++ b/pkgs/tools/misc/cpuminer-multi/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit, curl, jansson, autoconf, automake, openssl
+, aesni ? true }:
+
+let
+  rev = "4230012da5d1cc491976c6f5e45da36db6d9f576";
+  date = "20140619";
+in
+stdenv.mkDerivation rec {
+  name = "cpuminer-multi-${date}-${stdenv.lib.strings.substring 0 7 rev}";
+
+  src = fetchgit {
+    inherit rev;
+    url = https://github.com/wolf9466/cpuminer-multi.git;
+    sha256 = "c19a5dd1bfdbbaec3729f61248e858a5d8701424fffe67fdabf8179ced9c110b";
+  };
+
+  buildInputs = [ autoconf automake curl jansson openssl ];
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  configureFlags = if aesni then [ "--disable-aes-ni" ] else [ ];
+
+  meta = with stdenv.lib; {
+    description = "Multi-algo CPUMiner";
+    homepage = https://github.com/wolf9466/cpuminer-multi;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.emery ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/tools/misc/execline/default.nix b/pkgs/tools/misc/execline/default.nix
new file mode 100644
index 000000000000..ba0784138b31
--- /dev/null
+++ b/pkgs/tools/misc/execline/default.nix
@@ -0,0 +1,54 @@
+{stdenv, fetchurl, skalibs}:
+
+let
+
+  version = "1.3.1.1";
+
+in stdenv.mkDerivation rec {
+
+  name = "execline-${version}";
+
+  src = fetchurl {
+    url = "http://skarnet.org/software/execline/${name}.tar.gz";
+    sha256 = "1br3qzif166kbp4k813ljbyq058p7mfsp2lj88n8vi4dmj935nzg";
+  };
+
+  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
+    printf "$out/sysdeps" > conf-install-sysdeps
+
+    printf "${skalibs}/sysdeps" > import
+    printf "${skalibs}/include" > path-include
+    printf "${skalibs}/lib"     > path-library
+
+    # let nix builder strip things, cross-platform
+    truncate --size 0 conf-stripbins
+    truncate --size 0 conf-striplibs
+
+    rm -f flag-slashpackage
+    touch flag-allstatic
+
+    popd
+  '';
+
+  preBuild = ''
+    patchShebangs src/sys
+  '';
+
+  meta = {
+    homepage = http://skarnet.org/software/execline/;
+    description = "A small scripting language, to be used in place of a shell in non-interactive scripts.";
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.isc;
+  };
+
+}
diff --git a/pkgs/tools/misc/flashrom/default.nix b/pkgs/tools/misc/flashrom/default.nix
new file mode 100644
index 000000000000..c4e74359b15b
--- /dev/null
+++ b/pkgs/tools/misc/flashrom/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, libftdi, pciutils }:
+
+let version = "0.9.7"; in
+stdenv.mkDerivation rec {
+  name = "flashrom-${version}";
+
+  src = fetchurl {
+    url = "http://download.flashrom.org/releases/${name}.tar.bz2";
+    sha256 = "5a55212d00791981a9a1cb0cdca9d9e58bea6d399864251e7b410b4d3d6137e9";
+  };
+
+  buildInputs = [ pkgconfig libftdi pciutils ];
+
+  makeFlags = ["PREFIX=$out"];
+
+  meta = {
+    homepage = "http://www.flashrom.org";
+    description = "Utility for reading, writing, erasing and verifying flash ROM chips";
+    license = "GPLv2";
+    maintainers = [ stdenv.lib.maintainers.funfunctor ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/tools/misc/goaccess/default.nix b/pkgs/tools/misc/goaccess/default.nix
index 56e18227d661..0f8f82acaed0 100644
--- a/pkgs/tools/misc/goaccess/default.nix
+++ b/pkgs/tools/misc/goaccess/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "GoAccess is an open source real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems.";
+    description = "Real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems";
     homepage    = http://goaccess.prosoftcorp.com;
     license     = stdenv.lib.licenses.mit;
     platforms   = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
diff --git a/pkgs/tools/misc/grub/2.0x.nix b/pkgs/tools/misc/grub/2.0x.nix
index b1877bdcf98c..e3c07af759c9 100644
--- a/pkgs/tools/misc/grub/2.0x.nix
+++ b/pkgs/tools/misc/grub/2.0x.nix
@@ -1,30 +1,45 @@
-{ fetchurl, stdenv, flex, bison, gettext, ncurses, libusb, freetype, qemu
-, devicemapper, EFIsupport ? false }:
-
+{ stdenv, fetchurl, 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 ""}";
+
+  version = "2.02-beta2";
 
   unifont_bdf = fetchurl {
     url = "http://unifoundry.com/unifont-5.1.20080820.bdf.gz";
     sha256 = "0s0qfff6n6282q28nwwblp5x295zd6n71kl43xj40vgvdqxv0fxx";
   };
+in (
 
-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";
+    name = "grub-2.02-beta2.tar.xz";
+    url = "http://alpha.gnu.org/gnu/grub/grub-2.02~beta2.tar.xz";
+    sha256 = "13a13fhc0wf473dn73zhga15mjvkg6vqp4h25dxg4n7am2r05izn";
   };
 
-  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 +58,19 @@ 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"
+    '' 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 +79,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 +96,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/hdf5/default.nix b/pkgs/tools/misc/hdf5/default.nix
index a7d03d1335f0..5cdc468c2a5a 100644
--- a/pkgs/tools/misc/hdf5/default.nix
+++ b/pkgs/tools/misc/hdf5/default.nix
@@ -3,6 +3,8 @@
 , fetchurl
 , zlib ? null
 , szip ? null
+, mpi ? null
+, enableShared ? true
 }:
 stdenv.mkDerivation rec {
   version = "1.8.13";
@@ -12,11 +14,23 @@ stdenv.mkDerivation rec {
     sha256 = "1h9qdl321gzm3ihdhlijbl9sh9qcdrw94j7izg64yfqhxj7b7xl2";  			
   };
 
+  passthru = {
+    mpiSupport = (mpi != null);
+    inherit mpi;
+  };
+
   buildInputs = []
     ++ stdenv.lib.optional (zlib != null) zlib
     ++ stdenv.lib.optional (szip != null) szip;
 
-  configureFlags = if szip != null then "--with-szlib=${szip}" else "";
+  propagatedBuildInputs = []
+    ++ stdenv.lib.optional (mpi != null) mpi;
+
+  configureFlags = "
+    ${if szip != null then "--with-szlib=${szip}" else ""}
+    ${if mpi != null then "--enable-parallel" else ""}
+    ${if enableShared then "--enable-shared" else ""}
+  ";
   
   patches = [./bin-mv.patch];
   
diff --git a/pkgs/tools/misc/idutils/default.nix b/pkgs/tools/misc/idutils/default.nix
index 2b2f3aeaca3c..503beefa15af 100644
--- a/pkgs/tools/misc/idutils/default.nix
+++ b/pkgs/tools/misc/idutils/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   patches = [ ./nix-mapping.patch ];
 
   meta = {
-    description = "GNU Idutils, a text searching utility";
+    description = "Text searching utility";
 
     longDescription = ''
       An "ID database" is a binary file containing a list of file
diff --git a/pkgs/tools/misc/lbdb/default.nix b/pkgs/tools/misc/lbdb/default.nix
index 20830bad6bfa..6d03b09c588f 100644
--- a/pkgs/tools/misc/lbdb/default.nix
+++ b/pkgs/tools/misc/lbdb/default.nix
@@ -17,6 +17,6 @@ stdenv.mkDerivation {
     homepage = "http://www.spinnaker.de/lbdb/";
     license = stdenv.lib.licenses.gpl2;
     platforms = stdenv.lib.platforms.all;
-    description = "The Little Brother's Database (lbdb)";
+    description = "The Little Brother's Database";
   };
 }
diff --git a/pkgs/tools/misc/ldapvi/default.nix b/pkgs/tools/misc/ldapvi/default.nix
index 28d9b4863d4b..6dba834e8be5 100644
--- a/pkgs/tools/misc/ldapvi/default.nix
+++ b/pkgs/tools/misc/ldapvi/default.nix
@@ -21,7 +21,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "ldapvi is an interactive LDAP client for Unix terminals. Using it, you can update LDAP entries with a text editor";
+    description = "Interactive LDAP client for Unix terminals";
+    longDescription = ''
+      ldapvi is an interactive LDAP client for Unix terminals. Using it, you
+      can update LDAP entries with a text editor.
+    '';
     homepage = http://www.lichteblau.com/ldapvi/;
     license = licenses.gpl2;
     maintainers = with maintainers; [ iElectric ];
diff --git a/pkgs/tools/misc/logstash-forwarder/default.nix b/pkgs/tools/misc/logstash-forwarder/default.nix
index 52180c75c981..961dbc083352 100644
--- a/pkgs/tools/misc/logstash-forwarder/default.nix
+++ b/pkgs/tools/misc/logstash-forwarder/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, go }:
+{ stdenv, fetchgit, go_1_1 }:
 stdenv.mkDerivation {
   name = "logstash-forwarder-20140410";
   src = fetchgit {
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
     rev = "ec504792108ab6536b45bcf6dff6d26a6b56fef3";
     sha256 = "309545ceaec171bee997cad260bef1433e041b9f3bfe617d475bcf79924f943d";
   };
-  buildInputs = [ go ];
+  buildInputs = [ go_1_1 ];
   installPhase = ''
     mkdir -p $out/bin
     cp build/bin/logstash-forwarder $out/bin
@@ -15,5 +15,6 @@ stdenv.mkDerivation {
   meta = {
     license = stdenv.lib.licenses.asl20;
     homepage = https://github.com/elasticsearch/logstash-forwarder;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/minicom/default.nix b/pkgs/tools/misc/minicom/default.nix
index 8ede3aa918b1..d731e856790d 100644
--- a/pkgs/tools/misc/minicom/default.nix
+++ b/pkgs/tools/misc/minicom/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = {
-    description = "Minicom, a modem control and terminal emulation program";
+    description = "Modem control and terminal emulation program";
     homepage = http://alioth.debian.org/projects/minicom/;
 
     longDescription =
diff --git a/pkgs/tools/misc/most/default.nix b/pkgs/tools/misc/most/default.nix
index b7f7842680f6..b97d8f0b7199 100644
--- a/pkgs/tools/misc/most/default.nix
+++ b/pkgs/tools/misc/most/default.nix
@@ -20,7 +20,8 @@ stdenv.mkDerivation {
   buildInputs = [ slang ncurses ];
 
   meta = {
-    description = ''
+    description = "A terminal pager similar to 'more' and 'less'";
+    longDescription = ''
       MOST is a powerful paging program for Unix, VMS, MSDOS, and win32
       systems. Unlike other well-known paging programs most supports multiple
       windows and can scroll left and right. Why settle for less?
diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix
index df360bb9804d..727657ca6e8d 100644
--- a/pkgs/tools/misc/parallel/default.nix
+++ b/pkgs/tools/misc/parallel/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, perl }:
 
 stdenv.mkDerivation rec {
-  name = "parallel-20140222";
+  name = "parallel-20140822";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${name}.tar.bz2";
-    sha256 = "0zb3hg92br6a53jn0pzfl16ffc1hfw81jk7nzw5spkshsdrcqx3y";
+    sha256 = "8a146a59bc71218921d561f2c801b85e06fe3a21571083b58e6e0966dd397fd4";
   };
 
   patchPhase =
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "GNU Parallel, a shell tool for executing jobs in parallel";
+    description = "Shell tool for executing jobs in parallel";
 
     longDescription =
       '' GNU Parallel is a shell tool for executing jobs in parallel.  A job
diff --git a/pkgs/tools/misc/parted/default.nix b/pkgs/tools/misc/parted/default.nix
index 108d4d5e0400..01b9f391a443 100644
--- a/pkgs/tools/misc/parted/default.nix
+++ b/pkgs/tools/misc/parted/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
       "export PATH=\"${utillinux}/sbin:$PATH\"";
 
   meta = {
-    description = "GNU Parted, a tool to create, destroy, resize, check, and copy partitions";
+    description = "Create, destroy, resize, check, and copy partitions";
 
     longDescription = ''
       GNU Parted is an industrial-strength package for creating, destroying,
diff --git a/pkgs/tools/misc/pg_top/default.nix b/pkgs/tools/misc/pg_top/default.nix
index 392fcbcc8ff9..0d379cd11d4a 100644
--- a/pkgs/tools/misc/pg_top/default.nix
+++ b/pkgs/tools/misc/pg_top/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
   buildInputs = [ncurses postgresql]; 
 
   meta = {
-    description = "pg_top is 'top' for PostgreSQL";
+    description = "A 'top' like tool for PostgreSQL";
     longDescription = '' 
       pg_top allows you to: 
       <itemizedlist>
diff --git a/pkgs/tools/misc/recutils/default.nix b/pkgs/tools/misc/recutils/default.nix
index f2f5f37ebe44..4d6829e99a4c 100644
--- a/pkgs/tools/misc/recutils/default.nix
+++ b/pkgs/tools/misc/recutils/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ curl emacs ] ++ (stdenv.lib.optionals doCheck [ check bc ]);
 
   meta = {
-    description = "GNU Recutils, tools and libraries to access human-editable, text-based databases";
+    description = "Tools and libraries to access human-editable, text-based databases";
 
     longDescription =
       '' GNU Recutils is a set of tools and libraries to access
diff --git a/pkgs/tools/misc/time/default.nix b/pkgs/tools/misc/time/default.nix
index 3a35e9a9f1cc..737ba244fe8e 100644
--- a/pkgs/tools/misc/time/default.nix
+++ b/pkgs/tools/misc/time/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
   patches = [ ./max-resident.patch ];
 
   meta = {
-    description = "GNU Time, a tool that runs programs and summarizes the system resources they use";
+    description = "Tool that runs programs and summarizes the system resources they use";
 
     longDescription = ''
       The `time' command runs another program, then displays
diff --git a/pkgs/tools/misc/tmpwatch/default.nix b/pkgs/tools/misc/tmpwatch/default.nix
index c19d58b98162..760f56726fab 100644
--- a/pkgs/tools/misc/tmpwatch/default.nix
+++ b/pkgs/tools/misc/tmpwatch/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = https://fedorahosted.org/tmpwatch/;
-    description = "The tmpwatch utility recursively searches through specified directories and removes files which have not been accessed in a specified period of time.";
+    description = "Recursively searches through specified directories and removes files which have not been accessed in a specified period of time";
     license = licenses.gpl2;
     maintainers = with maintainers; [ vlstill ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/misc/tmux/default.nix b/pkgs/tools/misc/tmux/default.nix
index 4acbabb50f98..32f681dabebb 100644
--- a/pkgs/tools/misc/tmux/default.nix
+++ b/pkgs/tools/misc/tmux/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://tmux.sourceforge.net/;
-    description = "tmux is a terminal multiplexer";
+    description = "Terminal multiplexer";
 
     longDescription =
       '' tmux is intended to be a modern, BSD-licensed alternative to programs such as GNU screen. Major features include:
diff --git a/pkgs/tools/misc/yad/default.nix b/pkgs/tools/misc/yad/default.nix
index fcdf5095d70f..d884d48f5214 100644
--- a/pkgs/tools/misc/yad/default.nix
+++ b/pkgs/tools/misc/yad/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://code.google.com/p/yad/";
-    description = "Yad (yet another dialog) is a GUI dialog tool for shell scripts";
+    description = "GUI dialog tool for shell scripts";
     longDescription = ''
       Yad (yet another dialog) is a GUI dialog tool for shell scripts. It is a
       fork of Zenity with many improvements, such as custom buttons, additional
diff --git a/pkgs/tools/networking/atftp/default.nix b/pkgs/tools/networking/atftp/default.nix
index 225c3c04f7a4..acd71ea893df 100644
--- a/pkgs/tools/networking/atftp/default.nix
+++ b/pkgs/tools/networking/atftp/default.nix
@@ -1,59 +1,27 @@
-x@{builderDefsPackage
-  , readline, tcp_wrappers, pcre, runCommand
-  , ...}:
-builderDefsPackage
-(a :  
-let 
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
-    [];
+{ stdenv, fetchurl, pcre, readline }:
 
-  buildInputs = map (n: builtins.getAttr n x)
-    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
-  sourceInfo = rec {
-    baseName="atftp";
-    version="0.7";
-    name="${baseName}-${version}";
-    url="mirror://debian/pool/main/a/atftp/atftp_${version}.dfsg.orig.tar.gz";
-    hash="0nd5dl14d6z5abgcbxcn41rfn3syza6s57bbgh4aq3r9cxdmz08q";
-  };
-in
-rec {
-  src = a.fetchurl {
-    url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
-  };
-
-  inherit (sourceInfo) name version;
-  inherit buildInputs;
+stdenv.mkDerivation {
+  name = "atftp-0.7.1";
 
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["doPatch" "doConfigure" "doMakeInstall"];
-      
-  debianPatchGz = a.fetchurl {
-    url = ftp://ftp.ru.debian.org/pub/debian/pool/main/a/atftp/atftp_0.7.dfsg-11.diff.gz;
-    sha256 = "07g4qbmp0lnscg2dkj6nsj657jaghibvfysdm1cdxcn215n3zwqd";
+  src = fetchurl {
+    url = "mirror://sourceforge/atftp/atftp-0.7.1.tar.gz";
+    sha256 = "0bgr31gbnr3qx4ixf8hz47l58sh3367xhcnfqd8233fvr84nyk5f";
   };
 
-  debianPatch = a.runCommand "atftp-0.7.dfsg-11" {} ''
-    gunzip < "${debianPatchGz}" > "$out"
-  '';
+  buildInputs = [ pcre readline ];
 
-  patches = [debianPatch];
+  NIX_LDFLAGS = "-lgcc_s"; # for pthread_cancel
 
-  meta = {
-    description = "Advanced tftp tools";
-    maintainers = with a.lib.maintainers;
-    [
-      raskin
-    ];
-    platforms = with a.lib.platforms;
-      linux;
-    license = a.lib.licenses.gpl2Plus;
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://packages.debian.org/source/sid/atftp";
-    };
-  };
-}) x
+  configureFlags = [
+    "--enable-libreadline"
+    "--enable-libpcre"
+    "--enable-mtftp"
+  ];
 
+  meta = with stdenv.lib; {
+    description = "Advanced TFTP server and client";
+    homepage = http://sourceforge.net/projects/atftp/;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/cntlm/default.nix b/pkgs/tools/networking/cntlm/default.nix
index cd3ae12a11b8..f890bdddb693 100644
--- a/pkgs/tools/networking/cntlm/default.nix
+++ b/pkgs/tools/networking/cntlm/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "Cntlm is an NTLM/NTLMv2 authenticating HTTP proxy";
+    description = "NTLM/NTLMv2 authenticating HTTP proxy";
     homepage = http://cntlm.sourceforge.net/;
     license = stdenv.lib.licenses.gpl2;
     maintainers = [ stdenv.lib.maintainers.qknight ];
diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix
index c99af220a56c..7d955b449506 100644
--- a/pkgs/tools/networking/connman/default.nix
+++ b/pkgs/tools/networking/connman/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    description = "The ConnMan project provides a daemon for managing internet connections";
+    description = "Provides a daemon for managing internet connections";
     homepage = "https://connman.net/";
     maintainers = [ stdenv.lib.maintainers.matejc ];
     # tested only on linux, might work on others also
diff --git a/pkgs/tools/networking/dnsmasq/default.nix b/pkgs/tools/networking/dnsmasq/default.nix
index cec4057a284f..02f24ce4c003 100644
--- a/pkgs/tools/networking/dnsmasq/default.nix
+++ b/pkgs/tools/networking/dnsmasq/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ pkgconfig, dbus_libs, nettle, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   name = "dnsmasq-2.71";
@@ -8,13 +8,35 @@ stdenv.mkDerivation rec {
     sha256 = "1fpzpzja7qr8b4kfdhh4i4sijp62c634yf0xvq2n4p7d5xbzn6a9";
   };
 
+  # Can't rely on make flags because of space in one of the parameters
+  buildPhase = ''
+    make COPTS="-DHAVE_DNSSEC -DHAVE_DBUS"
+  '';
+
+  # make flags used for installation only
   makeFlags = "DESTDIR= BINDIR=$(out)/bin MANDIR=$(out)/man LOCALEDIR=$(out)/share/locale";
 
-  meta = {
+  postInstall = ''
+    install -Dm644 dbus/dnsmasq.conf $out/etc/dbus-1/system.d/dnsmasq.conf
+    install -Dm644 trust-anchors.conf $out/share/dnsmasq/trust-anchors.conf
+
+    ensureDir $out/share/dbus-1/system-services
+    cat <<END > $out/share/dbus-1/system-services/uk.org.thekelleys.dnsmasq.service
+    [D-BUS Service]
+    Name=uk.org.thekelleys.dnsmasq
+    Exec=$out/sbin/dnsmasq -k -1
+    User=root
+    SystemdService=dnsmasq.service
+    END
+  '';
+
+  buildInputs = [ pkgconfig dbus_libs nettle ];
+
+  meta = with stdenv.lib; {
     description = "An integrated DNS, DHCP and TFTP server for small networks";
     homepage = http://www.thekelleys.org.uk/dnsmasq/doc.html;
-    license = "GPL";
-    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
-    maintainers = [ stdenv.lib.maintainers.eelco ];
+    license = licenses.gpl2;
+    platforms = with platforms; linux ++ darwin;
+    maintainers = with maintainers; [ eelco ];
   };
 }
diff --git a/pkgs/tools/networking/flvstreamer/default.nix b/pkgs/tools/networking/flvstreamer/default.nix
index f93221296125..ab8e14fddd0b 100644
--- a/pkgs/tools/networking/flvstreamer/default.nix
+++ b/pkgs/tools/networking/flvstreamer/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "flvstreamer is an command-line RTMP client";
+    description = "Command-line RTMP client";
 
     longDescription =
       '' flvstreamer is an open source command-line RTMP client intended to 
diff --git a/pkgs/tools/networking/host/default.nix b/pkgs/tools/networking/host/default.nix
index c74dbe528290..54cb8b21aafa 100644
--- a/pkgs/tools/networking/host/default.nix
+++ b/pkgs/tools/networking/host/default.nix
@@ -18,7 +18,7 @@ let version = "20000331"; in
     installTargets = "install man";
 
     meta = {
-      description = "`host', a DNS resolution utility";
+      description = "DNS resolution utility";
       license = "BSD-style";
     };
   }
diff --git a/pkgs/tools/networking/inetutils/default.nix b/pkgs/tools/networking/inetutils/default.nix
index 20ee6da8a30c..a6a921f6f588 100644
--- a/pkgs/tools/networking/inetutils/default.nix
+++ b/pkgs/tools/networking/inetutils/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "GNU Inetutils, a collection of common network programs";
+    description = "Collection of common network programs";
 
     longDescription =
       '' The GNU network utilities suite provides the
diff --git a/pkgs/tools/networking/jnettop/default.nix b/pkgs/tools/networking/jnettop/default.nix
index 49753d189d63..cfeaf47fdf23 100644
--- a/pkgs/tools/networking/jnettop/default.nix
+++ b/pkgs/tools/networking/jnettop/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   preConfigure = '' autoconf '';
 
   meta = {
-    description = "Jnettop, a network traffic visualizer";
+    description = "Network traffic visualizer";
 
     longDescription = ''
       Jnettop is a traffic visualiser, which captures traffic going
diff --git a/pkgs/tools/networking/lsh/default.nix b/pkgs/tools/networking/lsh/default.nix
index 6be4119469ea..c86dba91f5e6 100644
--- a/pkgs/tools/networking/lsh/default.nix
+++ b/pkgs/tools/networking/lsh/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gperf guile gmp zlib liboop readline gnum4 pam ];
 
   meta = {
-    description = "GNU lsh, a GPL'd implementation of the SSH protocol";
+    description = "GPL'd implementation of the SSH protocol";
 
     longDescription = ''
       lsh is a free implementation (in the GNU sense) of the ssh
diff --git a/pkgs/tools/networking/mailutils/default.nix b/pkgs/tools/networking/mailutils/default.nix
index 4c1001310ae1..0ee490327042 100755
--- a/pkgs/tools/networking/mailutils/default.nix
+++ b/pkgs/tools/networking/mailutils/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = {
-    description = "GNU Mailutils is a rich and powerful protocol-independent mail framework";
+    description = "Rich and powerful protocol-independent mail framework";
 
     longDescription = ''
       GNU Mailutils is a rich and powerful protocol-independent mail
diff --git a/pkgs/tools/networking/minidlna/default.nix b/pkgs/tools/networking/minidlna/default.nix
index 02013d8ede6d..9db42f09d81a 100644
--- a/pkgs/tools/networking/minidlna/default.nix
+++ b/pkgs/tools/networking/minidlna/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ ffmpeg flac libvorbis libogg libid3tag libexif libjpeg sqlite ];
 
   meta = {
-    description = "MiniDLNA Media Server";
+    description = "Media server software";
     longDescription = ''
       MiniDLNA (aka ReadyDLNA) is server software with the aim of being fully
       compliant with DLNA/UPnP-AV clients.
diff --git a/pkgs/tools/networking/netboot/default.nix b/pkgs/tools/networking/netboot/default.nix
index ec49770d269b..dbf393094c8e 100644
--- a/pkgs/tools/networking/netboot/default.nix
+++ b/pkgs/tools/networking/netboot/default.nix
@@ -1,47 +1,18 @@
-x@{builderDefsPackage
-  , fetchurl, yacc, bison, ...}:
-builderDefsPackage
-(a :
-let
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
-    [];
+{ stdenv, fetchurl, yacc, lzo, db4 }:
 
-  buildInputs = map (n: builtins.getAttr n x)
-    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
-  sourceInfo = rec {
-    version="0.10.2";
-    baseName="netboot";
-    name="${baseName}-${version}";
-    url="mirror://sourceforge/netboot/${name}.tar.gz";
-    hash="09w09bvwgb0xzn8hjz5rhi3aibysdadbg693ahn8rylnqfq4hwg0";
+stdenv.mkDerivation rec {
+  name = "netboot-0.10.2";
+  src = fetchurl {
+    url = "mirror://sourceforge/netboot/${name}.tar.gz";
+    sha256 = "09w09bvwgb0xzn8hjz5rhi3aibysdadbg693ahn8rylnqfq4hwg0";
   };
-in
-rec {
-  src = a.fetchurl {
-    url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
-  };
-
-  inherit (sourceInfo) name version;
-  inherit buildInputs;
-
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["doUnpack" "doConfigure" "doMakeInstall"];
+  
+  buildInputs = [ yacc lzo db4 ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Mini PXE server";
-    maintainers = with a.lib.maintainers;
-    [
-      raskin
-    ];
-    platforms = with a.lib.platforms;
-      linux;
+    maintainers = [ maintainers.raskin ];
+    platforms = ["x86_64-linux"];
     license = "free-noncopyleft";
   };
-  passthru = {
-    updateInfo = {
-      downloadPage = "https://github.com/ITikhonov/netboot";
-    };
-  };
-}) x
-
+}
\ No newline at end of file
diff --git a/pkgs/tools/networking/ntopng/default.nix b/pkgs/tools/networking/ntopng/default.nix
index 3c33da1b6619..52554209d595 100644
--- a/pkgs/tools/networking/ntopng/default.nix
+++ b/pkgs/tools/networking/ntopng/default.nix
@@ -1,16 +1,36 @@
 { stdenv, fetchurl, libpcap, gnutls, libgcrypt, libxml2, glib, geoip, sqlite
-, which
+, which, autoreconfHook, subversion, pkgconfig, groff
 }:
 
 # ntopng includes LuaJIT, mongoose, rrdtool and zeromq in its third-party/
 # directory.
 
 stdenv.mkDerivation rec {
-  name = "ntopng-1.1_6932";
+  name = "ntopng-1.2.0_r8116";
+
+  geoLiteCity = fetchurl {
+    url = "http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz";
+    sha256 = "1rv5yx5xgz04ymicx9pilidm19wh01ql2klwjcdakv558ndxdzd5";
+  };
+
+  geoLiteCityV6 = fetchurl {
+    url = "http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz";
+    sha256 = "0j974qpi92wwnibq46h16vxpcz7yy8bbqc4k8kmby1yx994k33v4";
+  };
+
+  geoIPASNum = fetchurl {
+    url = "http://geolite.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz";
+    sha256 = "1msnbls66npq001nmf1wmkrh6vyacgi8g5phfm1c34cz7vqnh683";
+  };
+
+  geoIPASNumV6 = fetchurl {
+    url = "http://geolite.maxmind.com/download/geoip/database/asnum/GeoIPASNumv6.dat.gz";
+    sha256 = "126syia75mkxs6xfinfp70xcfq6a3rgfmh673pzzkwxya393lbdn";
+  };
 
   src = fetchurl {
     url = "mirror://sourceforge/project/ntop/ntopng/${name}.tgz";
-    sha256 = "0cdbmrsjp3bb7xzci0vfnnkmbyxwxbf47l4kbnk4ydd7xwhwdnzr";
+    sha256 = "0y7xc0l77k2qi2qalwfqiw2z361hdypirfv4k5gi652pb20jc9j6";
   };
 
   patches = [
@@ -18,19 +38,13 @@ stdenv.mkDerivation rec {
     ./0002-Remove-requirement-to-have-writeable-callback-dir.patch
   ];
 
-  buildInputs = [ libpcap gnutls libgcrypt libxml2 glib geoip sqlite which ];
-
-  preBuild = ''
-    sed -e "s|^SHELL=.*|SHELL=${stdenv.shell}|" \
-        -e "s|/usr/local|$out|g" \
-        -e "s|/bin/rm|rm|g" \
-        -i Makefile
+  buildInputs = [ libpcap gnutls libgcrypt libxml2 glib geoip sqlite which autoreconfHook subversion pkgconfig groff ];
 
-    sed -e "s|^SHELL=.*|SHELL=${stdenv.shell}|" \
-        -e "s|/usr/local|$out|g" \
-        -e "s|/opt/local|/non-existing-dir|g" \
-        -i configure
+  preConfigure = ''
+    find . -name Makefile.in | xargs sed -i "s|/bin/rm|rm|"
+  '';
 
+  preBuild = ''
     sed -e "s|/usr/local|$out|g" \
         -i Ntop.cpp
 
@@ -40,6 +54,11 @@ stdenv.mkDerivation rec {
         -e "s|\(#define CONST_DEFAULT_CALLBACKS_DIR\).*|\1 \"$out/share/ntopng/scripts/callbacks\"|g" \
         -e "s|\(#define CONST_DEFAULT_INSTALL_DIR\).*|\1 \"$out/share/ntopng\"|g" \
         -i ntop_defines.h
+
+    gunzip -c $geoLiteCity > httpdocs/geoip/GeoLiteCity.dat
+    gunzip -c $geoLiteCityV6 > httpdocs/geoip/GeoLiteCityv6.dat
+    gunzip -c $geoIPASNum > httpdocs/geoip/GeoIPASNum.dat
+    gunzip -c $geoIPASNumV6 > httpdocs/geoip/GeoIPASNumv6.dat
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/networking/radvd/default.nix b/pkgs/tools/networking/radvd/default.nix
index 14d0d99119dc..e74106ec67f4 100644
--- a/pkgs/tools/networking/radvd/default.nix
+++ b/pkgs/tools/networking/radvd/default.nix
@@ -1,16 +1,20 @@
-{ stdenv, fetchurl, bison, flex }:
+{ stdenv, fetchurl, pkgconfig, libdaemon, bison, flex, check }:
 
 stdenv.mkDerivation rec {
-  name = "radvd-1.8.1";
+  name = "radvd-2.5";
   
   src = fetchurl {
-    url = "http://www.litech.org/radvd/dist/${name}.tar.gz";
-    sha256 = "1sg3halppbz3vwr88lbcdv7mndzwl4nkqnrafkyf2a248wwz2cbc";
+    url = "http://www.litech.org/radvd/dist/${name}.tar.xz";
+    sha256 = "0hsa647l236q9rhrwjb44xqmjfz4fxzcixlbf2chk4lzh8lzwjp0";
   };
 
-  buildInputs = [ bison flex ];
+  buildInputs = [ pkgconfig libdaemon bison flex check ];
 
-  meta.homepage = http://www.litech.org/radvd/;
-  meta.description = "IPv6 Router Advertisement Daemon";
-  meta.platforms = stdenv.lib.platforms.linux;
+  meta = with stdenv.lib; {
+    homepage = http://www.litech.org/radvd/;
+    description = "IPv6 Router Advertisement Daemon";
+    platforms = platforms.linux;
+    license = licenses.bsdOriginal;
+    maintainers = with maintainers; [ wkennington ];
+  };
 }
diff --git a/pkgs/tools/networking/spiped/default.nix b/pkgs/tools/networking/spiped/default.nix
index ac2736ffb19e..f854b92b87e5 100644
--- a/pkgs/tools/networking/spiped/default.nix
+++ b/pkgs/tools/networking/spiped/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name    = "spiped-${version}";
-  version = "1.3.1";
+  version = "1.4.0";
 
   src = fetchurl {
     url    = "http://www.tarsnap.com/spiped/${name}.tgz";
-    sha256 = "1viglk61v1v2ga1n31r0h8rvib5gy2h02lhhbbnqh2s6ps1sjn4a";
+    sha256 = "0pyg1llnqgfx7n7mi3dq4ra9xg3vkxlf01z5jzn7ncq5d6ii7ynq";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/networking/tcpdump/default.nix b/pkgs/tools/networking/tcpdump/default.nix
index 2e27c2b2dc33..ed295e95a38b 100644
--- a/pkgs/tools/networking/tcpdump/default.nix
+++ b/pkgs/tools/networking/tcpdump/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "tcpdump, a famous network sniffer";
+    description = "Network sniffer";
     homepage = http://www.tcpdump.org/;
     license = "BSD-style";
     maintainers = stdenv.lib.maintainers.mornfall;
diff --git a/pkgs/tools/networking/wget/default.nix b/pkgs/tools/networking/wget/default.nix
index 6ff5439c4bc6..27d7fe2572a0 100644
--- a/pkgs/tools/networking/wget/default.nix
+++ b/pkgs/tools/networking/wget/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   doCheck = (perl != null);
 
   meta = {
-    description = "GNU Wget, a tool for retrieving files using HTTP, HTTPS, and FTP";
+    description = "Tool for retrieving files using HTTP, HTTPS, and FTP";
 
     longDescription =
       '' GNU Wget is a free software package for retrieving files using HTTP,
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index b2e86935b50d..6631214f39ab 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -66,7 +66,14 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "The Nix Deployment System";
+    description = "Powerful package manager that makes package management reliable and reproducible";
+    longDescription = ''
+      Nix is a powerful package manager for Linux and other Unix systems that
+      makes package management reliable and reproducible. It provides atomic
+      upgrades and rollbacks, side-by-side installation of multiple versions of
+      a package, multi-user package management and easy setup of build
+      environments.
+    '';
     homepage = http://nixos.org/;
     license = stdenv.lib.licenses.lgpl2Plus;
     maintainers = [ stdenv.lib.maintainers.eelco ];
diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix
index 731965d9a7cf..bba53b0002fc 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.8pre3748_02843ba";
+  name = "nix-1.8pre3766_809ca33";
 
   src = fetchurl {
-    url = "http://hydra.nixos.org/build/13483092/download/5/${name}.tar.xz";
-    sha256 = "074k5spq07bz6ljbiiwfzsnnnpqlwssigxirkyrcamcyjmig4v34";
+    url = "http://hydra.nixos.org/build/13584170/download/5/${name}.tar.xz";
+    sha256 = "e6d91e73aabf8e8912f9701bf87b66089c197c5b8c8fbcc1707b888c88b96dfd";
   };
 
   nativeBuildInputs = [ perl pkgconfig ];
diff --git a/pkgs/tools/security/chntpw/00-chntpw-build-arch-autodetect.patch b/pkgs/tools/security/chntpw/00-chntpw-build-arch-autodetect.patch
new file mode 100644
index 000000000000..9c379adb7dfb
--- /dev/null
+++ b/pkgs/tools/security/chntpw/00-chntpw-build-arch-autodetect.patch
@@ -0,0 +1,25 @@
+diff -urN chntpw-140201.orig/Makefile chntpw-140201/Makefile
+--- chntpw-140201.orig/Makefile	2014-02-01 20:54:37.000000000 +0400
++++ chntpw-140201/Makefile	2014-08-03 20:26:56.497161881 +0400
+@@ -12,14 +12,13 @@
+ 
+ CC=gcc
+ 
+-# Force 32 bit
+-CFLAGS= -DUSEOPENSSL -g -I. -I$(OSSLINC) -Wall -m32 
+-OSSLLIB=$(OSSLPATH)/lib
+-
+-# 64 bit if default for compiler setup
+-#CFLAGS= -DUSEOPENSSL -g -I. -I$(OSSLINC) -Wall
+-#OSSLLIB=$(OSSLPATH)/lib64
+-
++ifeq      '$(shell gcc -dumpmachine)' 'x86_64-unknown-linux-gnu'
++  CFLAGS= -DUSEOPENSSL -g -I. -I$(OSSLINC) -Wall
++  OSSLLIB=$(OSSLPATH)/lib64
++else ifeq '$(shell gcc -dumpmachine)' 'i686-unknown-linux-gnu'
++  CFLAGS= -DUSEOPENSSL -g -I. -I$(OSSLINC) -Wall -m32 
++  OSSLLIB=$(OSSLPATH)/lib
++endif
+ 
+ # This is to link with whatever we have, SSL crypto lib we put in static
+ #LIBS=-L$(OSSLLIB) $(OSSLLIB)/libcrypto.a
diff --git a/pkgs/tools/security/chntpw/01-chntpw-install-target.patch b/pkgs/tools/security/chntpw/01-chntpw-install-target.patch
new file mode 100644
index 000000000000..d3163a026f91
--- /dev/null
+++ b/pkgs/tools/security/chntpw/01-chntpw-install-target.patch
@@ -0,0 +1,26 @@
+diff -urN chntpw-140201.orig/Makefile chntpw-140201/Makefile
+--- chntpw-140201.orig/Makefile	2014-08-03 20:26:56.497161881 +0400
++++ chntpw-140201/Makefile	2014-08-04 12:57:16.563818342 +0400
+@@ -10,6 +10,8 @@
+ OSSLPATH=/usr
+ OSSLINC=$(OSSLPATH)/include
+ 
++PREFIX ?= /usr
++
+ CC=gcc
+ 
+ ifeq      '$(shell gcc -dumpmachine)' 'x86_64-unknown-linux-gnu'
+@@ -24,8 +26,12 @@
+ #LIBS=-L$(OSSLLIB) $(OSSLLIB)/libcrypto.a
+ LIBS=-L$(OSSLLIB)
+ 
++BINARIES := chntpw chntpw.static cpnt reged reged.static samusrgrp samusrgrp.static sampasswd sampasswd.static
+ 
+-all: chntpw chntpw.static cpnt reged reged.static samusrgrp samusrgrp.static sampasswd sampasswd.static
++all: $(BINARIES)
++install: $(BINARIES)
++	mkdir -p $(PREFIX)/bin
++	cp $^ $(PREFIX)/bin
+ 
+ chntpw: chntpw.o ntreg.o edlib.o libsam.o
+ 	$(CC) $(CFLAGS) -o chntpw chntpw.o ntreg.o edlib.o libsam.o $(LIBS)
diff --git a/pkgs/tools/security/chntpw/default.nix b/pkgs/tools/security/chntpw/default.nix
new file mode 100644
index 000000000000..a1aab355a3c3
--- /dev/null
+++ b/pkgs/tools/security/chntpw/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  name = "chntpw-${version}";
+
+  version = "140201";
+
+  src = fetchurl {
+    url = "http://pogostick.net/~pnh/ntpasswd/chntpw-source-${version}.zip";
+    sha256 = "1k1cxsj0221dpsqi5yibq2hr7n8xywnicl8yyaicn91y8h2hkqln";
+  };
+
+  buildInputs = [ unzip ];
+
+  patches = [
+    ./00-chntpw-build-arch-autodetect.patch
+    ./01-chntpw-install-target.patch
+  ];
+
+  installPhase = ''
+    make install PREFIX=$out
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://pogostick.net/~pnh/ntpasswd/;
+    description = "An utility to reset the password of any user that has a valid local account on a Windows system";
+    license = licenses.gpl2;
+  };
+}
diff --git a/pkgs/tools/security/gnupg/default.nix b/pkgs/tools/security/gnupg/default.nix
index 9b8d33b6b696..64e2be90d30d 100644
--- a/pkgs/tools/security/gnupg/default.nix
+++ b/pkgs/tools/security/gnupg/default.nix
@@ -13,11 +13,11 @@ assert useUsb -> (libusb != null);
 assert useCurl -> (curl != null);
 
 stdenv.mkDerivation rec {
-  name = "gnupg-2.0.24";
+  name = "gnupg-2.0.26";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha256 = "0ch2hbindk832cy7ca00a7whw84ndm0nhqrl24a5fw4ldkca2x6r";
+    sha256 = "1q5qcl5panrvcvpwvz6nl9gayl5a6vwvfhgdcxqpmbl2qc6y6n3p";
   };
 
   buildInputs
diff --git a/pkgs/tools/security/hashcat/default.nix b/pkgs/tools/security/hashcat/default.nix
index 5e1737241904..699901ad59e9 100644
--- a/pkgs/tools/security/hashcat/default.nix
+++ b/pkgs/tools/security/hashcat/default.nix
@@ -1,5 +1,7 @@
 { stdenv, fetchurl, p7zip, patchelf }:
 
+assert stdenv.isLinux;
+
 let
   bits    = if stdenv.system == "x86_64-linux" then "64" else "32";
   libPath = stdenv.lib.makeLibraryPath [ stdenv.gcc.libc ];
diff --git a/pkgs/tools/security/mfcuk/default.nix b/pkgs/tools/security/mfcuk/default.nix
new file mode 100644
index 000000000000..9d92482f68f1
--- /dev/null
+++ b/pkgs/tools/security/mfcuk/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, libnfc }:
+
+stdenv.mkDerivation rec {
+  name = "mfcuk-${version}";
+  version = "0.3.8";
+
+  src = fetchurl {
+    url = "http://mfcuk.googlecode.com/files/mfcuk-0.3.8.tar.gz";
+    sha256 = "0m9sy61rsbw63xk05jrrmnyc3xda0c3m1s8pg3sf8ijbbdv9axcp";
+  };
+
+  buildInputs = [ pkgconfig libnfc ];
+
+  meta = with stdenv.lib; {
+    description = "MiFare Classic Universal toolKit";
+    license = licenses.gpl2;
+    homepage = http://code.google.com/p/mfcuk/;
+    maintainers = with maintainers; [ offline ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/pkgs/tools/security/scrypt/default.nix b/pkgs/tools/security/scrypt/default.nix
index fe2a19491d99..668a76051153 100644
--- a/pkgs/tools/security/scrypt/default.nix
+++ b/pkgs/tools/security/scrypt/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ openssl ];
 
   meta = {
-    description = "The scrypt encryption utility";
+    description = "Encryption utility";
     homepage    = https://www.tarsnap.com/scrypt.html;
     license     = stdenv.lib.licenses.bsd2;
     platforms   = stdenv.lib.platforms.all;
diff --git a/pkgs/tools/security/steghide/default.nix b/pkgs/tools/security/steghide/default.nix
index bc87c091a58f..03e8c727022d 100644
--- a/pkgs/tools/security/steghide/default.nix
+++ b/pkgs/tools/security/steghide/default.nix
@@ -7,7 +7,7 @@
 
     meta = with stdenv.lib; {
         homepage = http://steghide.sourceforge.net/;
-        description = "Steghide is a steganography program that is able to hide data in various kinds of image- and audio-files.";
+        description = "Steganography program that is able to hide data in various kinds of image- and audio-files";
         license = licenses.gpl2;
     };
 
diff --git a/pkgs/tools/security/stricat/default.nix b/pkgs/tools/security/stricat/default.nix
new file mode 100644
index 000000000000..64ebb4c0ca26
--- /dev/null
+++ b/pkgs/tools/security/stricat/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name    = "stricat-${version}";
+  version = "20140609100300";
+
+  src = fetchurl {
+    url    = "http://www.stribob.com/dist/${name}.tgz";
+    sha256 = "1axg8r4g5n5kdqj5013pgck80nni3z172xkg506vz4zx1zcmrm4r";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv stricat $out/bin
+  '';
+
+  meta = {
+    description = "multi-use cryptographic tool based on the STRIBOB algorithm";
+    homepage    = "https://www.stribob.com/stricat/";
+    license     = stdenv.lib.licenses.bsd3;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/tools/security/tboot/default.nix b/pkgs/tools/security/tboot/default.nix
index 1c9967edc477..854f67f2aeec 100644
--- a/pkgs/tools/security/tboot/default.nix
+++ b/pkgs/tools/security/tboot/default.nix
@@ -21,9 +21,7 @@ stdenv.mkDerivation rec {
   installFlags = "DESTDIR=$(out)";
 
   meta = with stdenv.lib; {
-    description = ''Trusted Boot (tboot) is an open source, pre-kernel/VMM module that uses
-                    Intel(R) Trusted Execution Technology (Intel(R) TXT) to perform a measured
-                    and verified launch of an OS kernel/VMM.'';
+    description = "A pre-kernel/VMM module that uses Intel(R) TXT to perform a measured and verified launch of an OS kernel/VMM";
     homepage    = http://sourceforge.net/projects/tboot/;
     license     = licenses.bsd3;
     maintainers = [ maintainers.ak ];
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index d71bbd891f91..3318d0c1102d 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://www.torproject.org/;
     repositories.git = https://git.torproject.org/git/tor;
-    description = "Tor, an anonymous network router to improve privacy on the Internet";
+    description = "Anonymous network router to improve privacy on the Internet";
 
     longDescription=''
       Tor protects you by bouncing your communications around a distributed
diff --git a/pkgs/tools/security/tpm-tools/default.nix b/pkgs/tools/security/tpm-tools/default.nix
index 95b3b6b51f77..6e7ff75a6a48 100644
--- a/pkgs/tools/security/tpm-tools/default.nix
+++ b/pkgs/tools/security/tpm-tools/default.nix
@@ -14,9 +14,12 @@ stdenv.mkDerivation rec {
   buildInputs = [ trousers openssl ];
 
   meta = with stdenv.lib; {
-    description = ''tpm-tools is an open-source package designed to enable user and application
-                    enablement of Trusted Computing using a Trusted Platform Module (TPM),
-                    similar to a smart card environment.'';
+    description = "Management tools for TPM hardware";
+    longDescription = ''
+      tpm-tools is an open-source package designed to enable user and
+      application enablement of Trusted Computing using a Trusted Platform
+      Module (TPM), similar to a smart card environment.
+    '';
     homepage    = http://sourceforge.net/projects/trousers/files/tpm-tools/;
     license     = licenses.cpl10;
     maintainers = [ maintainers.ak ];
diff --git a/pkgs/tools/security/trousers/default.nix b/pkgs/tools/security/trousers/default.nix
index 4c2af359b964..fe797291f9ea 100644
--- a/pkgs/tools/security/trousers/default.nix
+++ b/pkgs/tools/security/trousers/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = "-lgcc_s";
 
   meta = with stdenv.lib; {
-    description = "TrouSerS is an CPL (Common Public License) licensed Trusted Computing Software Stack.";
+    description = "Trusted computing software stack";
     homepage    = http://trousers.sourceforge.net/;
     license     = licenses.cpl10;
     maintainers = [ maintainers.ak ];
diff --git a/pkgs/tools/system/cron/default.nix b/pkgs/tools/system/cron/default.nix
index 6132abc08790..0cf29a67b9da 100644
--- a/pkgs/tools/system/cron/default.nix
+++ b/pkgs/tools/system/cron/default.nix
@@ -22,6 +22,6 @@ stdenv.mkDerivation {
   preInstall = "mkdir -p $out/bin $out/sbin $out/share/man/man1 $out/share/man/man5 $out/share/man/man8";
   
   meta = {
-    description = "Vixie Cron, a daemon for running commands at specific times";
+    description = "Daemon for running commands at specific times (Vixie Cron)";
   };
 }
diff --git a/pkgs/tools/system/di/default.nix b/pkgs/tools/system/di/default.nix
new file mode 100644
index 000000000000..dc15ce13bccb
--- /dev/null
+++ b/pkgs/tools/system/di/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "di-4.35";
+
+  src = fetchurl {
+    url = "http://gentoo.com/di/${name}.tar.gz";
+    sha256 = "1lkiggvdm6wi14xy8845w6mqqr50j2q7g0i2rdcs7qw5gb7gmprc";
+  };
+
+  makeFlags = "INSTALL_DIR=$(out)";
+
+  meta = with stdenv.lib; {
+    description = "A disk information utility, displaying everything (and more) that your 'df' command does";
+    homepage = http://www.gentoo.com/di/;
+    license = licenses.zlib;
+    maintainers = with maintainers; [ manveru ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/system/freeipmi/default.nix b/pkgs/tools/system/freeipmi/default.nix
index 21a67dba305c..48562adffebe 100644
--- a/pkgs/tools/system/freeipmi/default.nix
+++ b/pkgs/tools/system/freeipmi/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "GNU FreeIPMI, an implementation of the Intelligent Platform Management Interface";
+    description = "Implementation of the Intelligent Platform Management Interface";
 
     longDescription =
       '' GNU FreeIPMI provides in-band and out-of-band IPMI software based on
diff --git a/pkgs/tools/system/hardlink/default.nix b/pkgs/tools/system/hardlink/default.nix
index 982aac3c9900..6ae92b685cc9 100644
--- a/pkgs/tools/system/hardlink/default.nix
+++ b/pkgs/tools/system/hardlink/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "http://pkgs.fedoraproject.org/cgit/hardlink.git/";
-    description = "consolidate duplicate files via hardlinks";
+    description = "Consolidate duplicate files via hardlinks";
     license = stdenv.lib.licenses.gpl2Plus;
 
     platforms = stdenv.lib.platforms.unix;
diff --git a/pkgs/tools/system/mcron/default.nix b/pkgs/tools/system/mcron/default.nix
index 4bf958959961..842529c573f1 100644
--- a/pkgs/tools/system/mcron/default.nix
+++ b/pkgs/tools/system/mcron/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "GNU mcron, a flexible implementation of `cron' in Guile";
+    description = "Flexible implementation of `cron' in Guile";
 
     longDescription = ''
       The GNU package mcron (Mellor's cron) is a 100% compatible
diff --git a/pkgs/tools/system/thermald/default.nix b/pkgs/tools/system/thermald/default.nix
new file mode 100644
index 000000000000..86d121f0c22f
--- /dev/null
+++ b/pkgs/tools/system/thermald/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, unzip, autoconf, automake, libtool, pkgconfig, dbus_libs, dbus_glib, libxml2 }:
+
+stdenv.mkDerivation rec {
+  version = "1.3";
+  name = "thermald-${version}";
+  src = fetchurl {
+    url = "https://github.com/01org/thermal_daemon/archive/v${version}.zip";
+    sha256 = "0jqxc8vvd4lx4z0kcdisk8lpdf823nysvjcfjxlr5wzla1xysqwc";
+  };
+  buildInputs = [ unzip autoconf automake libtool pkgconfig dbus_libs dbus_glib libxml2 ];
+
+  patchPhase = ''sed -e 's/upstartconfdir = \/etc\/init/upstartconfdir = $(out)\/etc\/init/' -i data/Makefile.am'';
+
+  preConfigure = ''
+                   export PKG_CONFIG_PATH="${dbus_libs}/lib/pkgconfig:$PKG_CONFIG_PATH"
+                   ./autogen.sh #--prefix="$out"
+                 '';
+
+  configureFlags = [
+    "--sysconfdir=$(out)/etc" "--localstatedir=/var"
+    "--with-dbus-sys-dir=$(out)/etc/dbus-1/system.d"
+    "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
+    ];
+
+  preInstall = "sysconfdir=$out/etc";
+
+
+  meta = {
+    description = "Thermal Daemon";
+    longDescription = ''
+         Thermal Daemon
+    '';
+    homepage = https://01.org/linux-thermal-daemon;
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/pkgs/tools/text/enscript/default.nix b/pkgs/tools/text/enscript/default.nix
index fe11ec592463..797f5b8b6922 100644
--- a/pkgs/tools/text/enscript/default.nix
+++ b/pkgs/tools/text/enscript/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "GNU Enscript, a converter from ASCII to PostScript, HTML, or RTF";
+    description = "Converter from ASCII to PostScript, HTML, or RTF";
 
     longDescription =
       '' GNU Enscript converts ASCII files to PostScript, HTML, or RTF and
diff --git a/pkgs/tools/text/mpage/default.nix b/pkgs/tools/text/mpage/default.nix
index 5b95c37c732d..c147b3ea301f 100644
--- a/pkgs/tools/text/mpage/default.nix
+++ b/pkgs/tools/text/mpage/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "Mpage, many-to-one page printing utility";
+    description = "Many-to-one page printing utility";
 
     longDescription = ''
       Mpage reads plain text files or PostScript documents and prints
diff --git a/pkgs/tools/text/namazu/default.nix b/pkgs/tools/text/namazu/default.nix
index fba52b69fbaf..72caa7ba5cb4 100644
--- a/pkgs/tools/text/namazu/default.nix
+++ b/pkgs/tools/text/namazu/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   doCheck = !stdenv.isLinux;
 
   meta = {
-    description = "Namazu, a full-text search engine";
+    description = "Full-text search engine";
 
     longDescription = ''
       Namazu is a full-text search engine intended for easy use.  Not
diff --git a/pkgs/tools/text/sgml/openjade/default.nix b/pkgs/tools/text/sgml/openjade/default.nix
index a2920345afa7..3427f62f15bc 100644
--- a/pkgs/tools/text/sgml/openjade/default.nix
+++ b/pkgs/tools/text/sgml/openjade/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1l92sfvx1f0wmkbvzv1385y1gb3hh010xksi1iyviyclrjb7jb8x";
   };
 
+  patches = [ ./msggen.patch ];
+
   buildInputs = [ opensp perl ];
 
   configureFlags = [
diff --git a/pkgs/tools/text/sgml/openjade/msggen.patch b/pkgs/tools/text/sgml/openjade/msggen.patch
new file mode 100644
index 000000000000..d59573fa49cf
--- /dev/null
+++ b/pkgs/tools/text/sgml/openjade/msggen.patch
@@ -0,0 +1,34 @@
+http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-text/openjade/files/openjade-1.3.2-msggen.pl.patch?revision=1.2
+
+Use Getopt::Std in place of getopts.pl.
+https://bugs.gentoo.org/show_bug.cgi?id=420083
+
+--- a/msggen.pl
++++ b/msggen.pl
+@@ -4,6 +4,7 @@
+ # See the file COPYING for copying permission.
+ 
+ use POSIX;
++use Getopt::Std;
+ 
+ # Package and version.
+ $package = 'openjade';
+@@ -18,8 +19,7 @@
+ undef $opt_l;
+ undef $opt_p;
+ undef $opt_t;
+-do 'getopts.pl';
+-&Getopts('l:p:t:');
++getopts('l:p:t:');
+ $module = $opt_l;
+ $pot_file = $opt_p;
+ 
+@@ -72,7 +72,7 @@
+     else {
+ 	$field[0] =~ /^[IWQXE][0-9]$/ || &error("invalid first field");;
+ 	$type[$num] = substr($field[0], 0, 1);
+-	$argc = int(substr($field[0], 1, 1));
++	$argc = substr($field[0], 1, 1);
+     }
+     $nargs[$num] = $argc;
+     $field[1] =~ /^[a-zA-Z_][a-zA-Z0-9_]+$/ || &error("invalid tag");
diff --git a/pkgs/tools/text/wdiff/default.nix b/pkgs/tools/text/wdiff/default.nix
index e6fc3510cd40..c07caad15a35 100644
--- a/pkgs/tools/text/wdiff/default.nix
+++ b/pkgs/tools/text/wdiff/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://www.gnu.org/software/wdiff/;
-    description = "GNU wdiff, comparing files on a word by word basis";
+    description = "Comparing files on a word by word basis";
     license = stdenv.lib.licenses.gpl3Plus;
     maintainers = [ stdenv.lib.maintainers.eelco ];
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/tools/text/wgetpaste/default.nix b/pkgs/tools/text/wgetpaste/default.nix
index 7635e0424993..3c0af0157a52 100644
--- a/pkgs/tools/text/wgetpaste/default.nix
+++ b/pkgs/tools/text/wgetpaste/default.nix
@@ -1,28 +1,29 @@
-{stdenv, fetchurl, wget, bash, coreutils}:
-  stdenv.mkDerivation rec {
-    version = "2.23";
-    name = "wgetpaste-${version}";
-      src = fetchurl {
-        url = "http://wgetpaste.zlin.dk/${name}.tar.bz2";
-        sha256 = "1xam745f5pmqi16br72a866117hnmcfwjyvsw1jhg3npbdnm9x6n";
-    };
-    # currently zsh-autocompletion support is not installed
+{ stdenv, fetchurl, wget, bash, coreutils }:
 
-    prePatch = ''
-      substituteInPlace wgetpaste --replace "/usr/bin/env bash" "${bash}/bin/bash"
-      substituteInPlace wgetpaste --replace "LC_ALL=C wget" "LC_ALL=C ${wget}/bin/wget"
-    '';
+stdenv.mkDerivation rec {
+  version = "2.25";
+  name = "wgetpaste-${version}";
+  src = fetchurl {
+    url = "http://wgetpaste.zlin.dk/${name}.tar.bz2";
+    sha256 = "1x209j85mryp3hxmv1gfsbvw03k306k5fa65ky0zxx07cs70fzka";
+  };
+  # currently zsh-autocompletion support is not installed
 
-    installPhase = ''
-      mkdir -p $out/bin;
-      cp wgetpaste $out/bin;
-    '';
+  prePatch = ''
+    substituteInPlace wgetpaste --replace "/usr/bin/env bash" "${bash}/bin/bash"
+    substituteInPlace wgetpaste --replace "LC_ALL=C wget" "LC_ALL=C ${wget}/bin/wget"
+  '';
 
-    meta = {
-      description = "Command-line interface to various pastebins";
-      homepage = http://wgetpaste.zlin.dk/;
-      license = "publicDomain";
-      maintainers = with stdenv.lib.maintainers; [qknight];
-      platforms = stdenv.lib.platforms.all;
-    };
-  }
+  installPhase = ''
+    mkdir -p $out/bin;
+    cp wgetpaste $out/bin;
+  '';
+
+  meta = {
+    description = "Command-line interface to various pastebins";
+    homepage = http://wgetpaste.zlin.dk/;
+    license = "publicDomain";
+    maintainers = with stdenv.lib.maintainers; [ qknight iElectric ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/typesetting/docbook2x/default.nix b/pkgs/tools/typesetting/docbook2x/default.nix
index 78dac0c6aa4e..b31c64e6936a 100644
--- a/pkgs/tools/typesetting/docbook2x/default.nix
+++ b/pkgs/tools/typesetting/docbook2x/default.nix
@@ -46,13 +46,14 @@ stdenv.mkDerivation rec {
       "${gnused}/bin"
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     longDescription = ''
       docbook2X is a software package that converts DocBook documents
       into the traditional Unix man page format and the GNU Texinfo
       format.
     '';
-    license = stdenv.lib.licenses.mit;
+    license = licenses.mit;
     homepage = http://docbook2x.sourceforge.net/;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/typesetting/lout/default.nix b/pkgs/tools/typesetting/lout/default.nix
index c0fc43362971..a2ebfa0a9fd4 100644
--- a/pkgs/tools/typesetting/lout/default.nix
+++ b/pkgs/tools/typesetting/lout/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   builder = ./builder.sh;
 
   meta = {
-    description = "Lout, a document layout system similar in style to LaTeX";
+    description = "Document layout system similar in style to LaTeX";
 
     longDescription = ''
       The Lout document formatting system is now reads a high-level
diff --git a/pkgs/tools/typesetting/rubber/default.nix b/pkgs/tools/typesetting/rubber/default.nix
index 8344735606ca..32545abaff2d 100644
--- a/pkgs/tools/typesetting/rubber/default.nix
+++ b/pkgs/tools/typesetting/rubber/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   patchPhase = "substituteInPlace configure --replace which \"type -P\"";
 
   meta = {
-    description = "Rubber, a wrapper for LaTeX and friends";
+    description = "Wrapper for LaTeX and friends";
 
     longDescription = ''
       Rubber is a program whose purpose is to handle all tasks related
diff --git a/pkgs/tools/typesetting/xmlto/default.nix b/pkgs/tools/typesetting/xmlto/default.nix
index 1b0602063e9e..a1eee51b34d5 100644
--- a/pkgs/tools/typesetting/xmlto/default.nix
+++ b/pkgs/tools/typesetting/xmlto/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "xmlto, a front-end to an XSL toolchain";
+    description = "Front-end to an XSL toolchain";
 
     longDescription = ''
       xmlto is a front-end to an XSL toolchain.  It chooses an
diff --git a/pkgs/tools/video/dvgrab/default.nix b/pkgs/tools/video/dvgrab/default.nix
index faaea6aaffc4..73986b5be05d 100644
--- a/pkgs/tools/video/dvgrab/default.nix
+++ b/pkgs/tools/video/dvgrab/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     ];
 
   meta = {
-    description = "dvgrab, receive and store audio & video over IEEE1394";
+    description = "Receive and store audio & video over IEEE1394";
 
     longDescription =
       '' dvgrab receives audio and video data from a digital camcorder via an
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 02f99c1f9690..48a4f8b1ba90 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -421,6 +421,8 @@ let
 
   ### TOOLS
 
+  abduco = callPackage ../tools/misc/abduco { };
+
   acct = callPackage ../tools/system/acct { };
 
   acoustidFingerprinter = callPackage ../tools/audio/acoustid-fingerprinter {
@@ -581,7 +583,7 @@ let
 
   bmon = callPackage ../tools/misc/bmon { };
 
-  bochs = callPackage ../applications/virtualization/bochs { };
+  bochs = callPackage ../applications/virtualization/bochs { wxSupport = false; };
 
   boomerang = callPackage ../development/tools/boomerang { };
 
@@ -606,6 +608,8 @@ let
   consul = callPackage ../servers/consul { };
   consul_ui = callPackage ../servers/consul/ui.nix { };
 
+  chntpw = callPackage ../tools/security/chntpw { };
+
   coprthr = callPackage ../development/libraries/coprthr {
     flex = flex_2_5_35;
   };
@@ -789,6 +793,8 @@ let
 
   cpuminer = callPackage ../tools/misc/cpuminer { };
 
+  cpuminer-multi = callPackage ../tools/misc/cpuminer-multi { };
+
   cuetools = callPackage ../tools/cd-dvd/cuetools { };
 
   unifdef = callPackage ../development/tools/misc/unifdef { };
@@ -797,6 +803,8 @@ let
 
   usb_modeswitch = callPackage ../development/tools/misc/usb-modeswitch { };
 
+  anthy = callPackage ../tools/inputmethods/anthy { };
+
   biosdevname = callPackage ../tools/networking/biosdevname { };
 
   clamav = callPackage ../tools/security/clamav { };
@@ -811,6 +819,8 @@ let
 
   convmv = callPackage ../tools/misc/convmv { };
 
+  cool-old-term = callPackage ../applications/misc/cool-old-term { };
+
   coreutils = callPackage ../tools/misc/coreutils
     {
       # TODO: Add ACL support for cross-Linux.
@@ -893,6 +903,8 @@ let
 
   dhcpcd = callPackage ../tools/networking/dhcpcd { };
 
+  di = callPackage ../tools/system/di { };
+
   diffstat = callPackage ../tools/text/diffstat { };
 
   diffutils = callPackage ../tools/text/diffutils { };
@@ -955,6 +967,10 @@ let
 
   edk2 = callPackage ../development/compilers/edk2 { };
 
+  emscripten = callPackage ../development/compilers/emscripten { };
+
+  emscriptenfastcomp = callPackage ../development/compilers/emscripten-fastcomp { };
+
   efibootmgr = callPackage ../tools/system/efibootmgr { };
 
   efivar = callPackage ../tools/system/efivar { };
@@ -985,6 +1001,8 @@ let
 
   exempi = callPackage ../development/libraries/exempi { };
 
+  execline = callPackage ../tools/misc/execline { };
+
   exercism = callPackage ../development/tools/exercism { };
 
   exif = callPackage ../tools/graphics/exif { };
@@ -1033,6 +1051,8 @@ let
     platformTools = androidenv.platformTools;
   };
 
+  flashrom = callPackage ../tools/misc/flashrom { };
+
   flpsed = callPackage ../applications/editors/flpsed { };
 
   flvstreamer = callPackage ../tools/networking/flvstreamer { };
@@ -1206,9 +1226,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;
@@ -1268,6 +1290,12 @@ let
 
   hdf5 = callPackage ../tools/misc/hdf5 {
     szip = null;
+    mpi = null;
+  };
+
+  hdf5-mpi = hdf5.override {
+    szip = null;
+    mpi = pkgs.openmpi;
   };
 
   heimdall = callPackage ../tools/misc/heimdall { };
@@ -1502,6 +1530,8 @@ let
 
   megatools = callPackage ../tools/networking/megatools { };
 
+  mfcuk = callPackage ../tools/security/mfcuk { };
+
   minecraft = callPackage ../games/minecraft { };
 
   minecraft-server = callPackage ../games/minecraft-server { };
@@ -1635,6 +1665,8 @@ let
 
   pa_applet = callPackage ../tools/audio/pa-applet { };
 
+  pnmixer = callPackage ../tools/audio/pnmixer { };
+
   nifskope = callPackage ../tools/graphics/nifskope { };
 
   nilfs_utils = callPackage ../tools/filesystems/nilfs-utils {};
@@ -1712,9 +1744,7 @@ let
 
   opendylan_bin = callPackage ../development/compilers/opendylan/bin.nix { };
 
-  openjade = callPackage ../tools/text/sgml/openjade {
-    perl = perl510;
-  };
+  openjade = callPackage ../tools/text/sgml/openjade { };
 
   openobex = callPackage ../tools/bluetooth/openobex { };
 
@@ -2169,6 +2199,8 @@ let
 
   sitecopy = callPackage ../tools/networking/sitecopy { };
 
+  stricat = callPackage ../tools/security/stricat { };
+
   privoxy = callPackage ../tools/networking/privoxy { };
 
   t1utils = callPackage ../tools/misc/t1utils { };
@@ -2363,6 +2395,10 @@ let
 
   ttmkfdir = callPackage ../tools/misc/ttmkfdir { };
 
+  uim = callPackage ../tools/inputmethods/uim {
+    inherit (pkgs.kde4) kdelibs;
+  };
+
   unclutter = callPackage ../tools/misc/unclutter { };
 
   unbound = callPackage ../tools/networking/unbound { };
@@ -3096,6 +3132,16 @@ let
     liblapack = liblapack.override {shared = true;};
     llvm = llvm_33;
   };
+  julia030 = let
+    liblapack = liblapack_3_5_0.override {shared = true;};
+  in callPackage ../development/compilers/julia/0.3.0.nix {
+    inherit liblapack;
+    suitesparse = suitesparse.override {
+      inherit liblapack;
+    };
+    openblas = openblas_0_2_10;
+    llvm = llvm_34;
+  };
   julia = julia021;
 
   lazarus = builderDefsPackage (import ../development/compilers/fpc/lazarus.nix) {
@@ -3212,12 +3258,18 @@ let
 
     cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
 
+    csv = callPackage ../development/ocaml-modules/csv { };
+
     deriving = callPackage ../development/tools/ocaml/deriving { };
 
     easy-format = callPackage ../development/ocaml-modules/easy-format { };
 
     findlib = callPackage ../development/tools/ocaml/findlib { };
 
+    javalib = callPackage ../development/ocaml-modules/javalib {
+      extlib = ocaml_extlib_maximal;
+    };
+
     dypgen = callPackage ../development/ocaml-modules/dypgen { };
 
     patoline = callPackage ../tools/typesetting/patoline { };
@@ -3293,6 +3345,9 @@ let
     ocaml_sexplib = callPackage ../development/ocaml-modules/sexplib { };
 
     ocaml_extlib = callPackage ../development/ocaml-modules/extlib { };
+    ocaml_extlib_maximal = callPackage ../development/ocaml-modules/extlib {
+      minimal = false;
+    };
 
     pycaml = callPackage ../development/ocaml-modules/pycaml { };
 
@@ -3300,6 +3355,13 @@ let
     opam_1_1 = callPackage ../development/tools/ocaml/opam/1.1.nix { };
     opam = opam_1_1;
 
+    sawja = callPackage ../development/ocaml-modules/sawja { };
+
+    uucd = callPackage ../development/ocaml-modules/uucd { };
+    uunf = callPackage ../development/ocaml-modules/uunf { };
+    uutf = callPackage ../development/ocaml-modules/uutf { };
+    xmlm = callPackage ../development/ocaml-modules/xmlm { };
+
     yojson = callPackage ../development/ocaml-modules/yojson { };
 
     zarith = callPackage ../development/ocaml-modules/zarith { };
@@ -3536,12 +3598,6 @@ let
 
   ocropus = callPackage ../applications/misc/ocropus { };
 
-  perl58 = callPackage ../development/interpreters/perl/5.8 {
-    impureLibcPath = if stdenv.isLinux then null else "/usr";
-  };
-
-  perl510 = callPackage ../development/interpreters/perl/5.10 { };
-
   perl514 = callPackage ../development/interpreters/perl/5.14 { };
 
   perl516 = callPackage ../development/interpreters/perl/5.16 {
@@ -3665,6 +3721,8 @@ let
 
   scheme48 = callPackage ../development/interpreters/scheme48 { };
 
+  self = callPackage_i686 ../development/interpreters/self { };
+
   spark = callPackage ../applications/networking/cluster/spark { };
 
   spidermonkey = callPackage ../development/interpreters/spidermonkey { };
@@ -3818,6 +3876,10 @@ let
   bison3 = callPackage ../development/tools/parsing/bison/3.x.nix { };
   bison = bison3;
 
+  bossa = callPackage ../development/tools/misc/bossa {
+    wxGTK = wxGTK30;
+  };
+
   buildbot = callPackage ../development/tools/build-managers/buildbot {
     inherit (pythonPackages) twisted jinja2 sqlalchemy sqlalchemy_migrate;
     dateutil = pythonPackages.dateutil_1_5;
@@ -4058,6 +4120,10 @@ let
 
   ninja = callPackage ../development/tools/build-managers/ninja { };
 
+  nixbang = callPackage ../development/tools/misc/nixbang {
+      pythonPackages = python3Packages;
+  };
+
   node_webkit = callPackage ../development/tools/node-webkit {
     gconf = pkgs.gnome.GConf;
   };
@@ -4678,36 +4744,10 @@ let
 
   glibcInfo = callPackage ../development/libraries/glibc/2.19/info.nix { };
 
-  glibc_multi =
-    runCommand "${glibc.name}-multi"
-      { glibc64 = glibc;
-        glibc32 = (import ./all-packages.nix {system = "i686-linux";}).glibc;
-      }
-      ''
-        mkdir -p $out
-        ln -s $glibc64/* $out/
-
-        rm $out/lib $out/lib64
-        mkdir -p $out/lib
-        ln -s $glibc64/lib/* $out/lib
-        ln -s $glibc32/lib $out/lib/32
-        ln -s lib $out/lib64
-
-        # fixing ldd RLTDLIST
-        rm $out/bin
-        cp -rs $glibc64/bin $out
-        chmod u+w $out/bin
-        rm $out/bin/ldd
-        sed -e "s|^RTLDLIST=.*$|RTLDLIST=\"$out/lib/ld-2.19.so $out/lib/32/ld-linux.so.2\"|g" \
-            $glibc64/bin/ldd > $out/bin/ldd
-        chmod 555 $out/bin/ldd
-
-        rm $out/include
-        cp -rs $glibc32/include $out
-        chmod -R u+w $out/include
-        cp -rsf $glibc64/include $out
-      '' # */
-      ;
+  glibc_multi = callPackage ../development/libraries/glibc/2.19/multi.nix {
+    inherit glibc;
+    glibc32 = (import ./all-packages.nix {system = "i686-linux";}).glibc;
+  };
 
   glm = callPackage ../development/libraries/glm { };
 
@@ -5275,6 +5315,8 @@ let
 
   libnatspec = callPackage ../development/libraries/libnatspec { };
 
+  libnfc = callPackage ../development/libraries/libnfc { };
+
   libnfsidmap = callPackage ../development/libraries/libnfsidmap { };
 
   libnice = callPackage ../development/libraries/libnice { };
@@ -5411,6 +5453,8 @@ let
 
   libnfnetlink = callPackage ../development/libraries/libnfnetlink { };
 
+  libnftnl = callPackage ../development/libraries/libnftnl { };
+
   libnih = callPackage ../development/libraries/libnih { };
 
   libnova = callPackage ../development/libraries/libnova { };
@@ -5505,6 +5549,8 @@ let
 
   libspatialite = callPackage ../development/libraries/libspatialite { };
 
+  libtar = callPackage ../development/libraries/libtar { };
+
   libtasn1 = callPackage ../development/libraries/libtasn1 { };
 
   libtheora = callPackage ../development/libraries/libtheora { };
@@ -5905,8 +5951,6 @@ let
 
   pdf2xml = callPackage ../development/libraries/pdf2xml {} ;
 
-  pdf2htmlex = callPackage ../development/libraries/pdf2htmlex {} ;
-
   phonon = callPackage ../development/libraries/phonon { };
 
   phonon_backend_gstreamer = callPackage ../development/libraries/phonon-backend-gstreamer { };
@@ -6143,6 +6187,8 @@ let
 
   SDL2_mixer = callPackage ../development/libraries/SDL2_mixer { };
 
+  SDL2_net = callPackage ../development/libraries/SDL2_net { };
+
   SDL2_gfx = callPackage ../development/libraries/SDL2_gfx { };
 
   serd = callPackage ../development/libraries/serd {};
@@ -6156,6 +6202,8 @@ let
 
   sfml_git = callPackage ../development/libraries/sfml { };
 
+  skalibs = callPackage ../development/libraries/skalibs { };
+
   slang = callPackage ../development/libraries/slang { };
 
   slibGuile = callPackage ../development/libraries/slib {
@@ -6552,14 +6600,6 @@ let
     overrides = (config.perlPackageOverrides or (p: {})) pkgs;
   });
 
-  perl510Packages = import ./perl-packages.nix {
-    pkgs = pkgs // {
-      perl = perl510;
-      buildPerlPackage = import ../development/perl-modules/generic perl510;
-    };
-    overrides = (config.perl510PackageOverrides or (p: {})) pkgs;
-  };
-
   perl514Packages = import ./perl-packages.nix {
     pkgs = pkgs // {
       perl = perl514;
@@ -6844,6 +6884,8 @@ let
 
   miniHttpd = callPackage ../servers/http/mini-httpd {};
 
+  mlmmj = callPackage ../servers/mail/mlmmj { };
+
   myserver = callPackage ../servers/http/myserver { };
 
   nginx = callPackage ../servers/http/nginx {
@@ -6923,8 +6965,12 @@ let
 
   nagiosPluginsOfficial = callPackage ../servers/monitoring/nagios/plugins/official-2.x.nix { };
 
+  neo4j = callPackage ../servers/nosql/neo4j { };
+
   net_snmp = callPackage ../servers/monitoring/net-snmp { };
 
+  riemann = callPackage ../servers/monitoring/riemann { };
+
   oidentd = callPackage ../servers/identd/oidentd { };
 
   openfire = callPackage ../servers/xmpp/openfire { };
@@ -6973,6 +7019,8 @@ let
 
   rippled = callPackage ../servers/rippled { };
 
+  s6 = callPackage ../servers/s6 { };
+
   spamassassin = callPackage ../servers/mail/spamassassin {
     inherit (perlPackages) HTMLParser NetDNS NetAddrIP DBFile
       HTTPDate MailDKIM LWP IOSocketSSL;
@@ -7034,12 +7082,14 @@ let
 
   xinetd = callPackage ../servers/xinetd { };
 
+  zookeeper = callPackage ../servers/zookeeper { };
+
   xquartz = callPackage ../servers/x11/xquartz { };
   quartz-wm = callPackage ../servers/x11/quartz-wm { stdenv = clangStdenv; };
 
   xorg = recurseIntoAttrs (import ../servers/x11/xorg/default.nix {
     inherit clangStdenv fetchurl fetchgit fetchpatch stdenv pkgconfig intltool freetype fontconfig
-      libxslt expat libpng zlib perl mesa_drivers
+      libxslt expat libpng zlib perl mesa_drivers spice_protocol
       dbus libuuid openssl gperf m4
       autoconf automake libtool xmlto asciidoc flex bison python mtdev pixman;
     mesa = mesa_noglu;
@@ -7635,6 +7685,8 @@ let
     libpng = libpng15;
   };
 
+  nftables = callPackage ../os-specific/linux/nftables { };
+
   numactl = callPackage ../os-specific/linux/numactl { };
 
   gocode = callPackage ../development/tools/gocode { };
@@ -7944,6 +7996,8 @@ let
 
   cantarell_fonts = callPackage ../data/fonts/cantarell-fonts { };
 
+  comic-neue = callPackage ../data/fonts/comic-neue { };
+
   corefonts = callPackage ../data/fonts/corefonts { };
 
   wrapFonts = paths : ((import ../data/fonts/fontWrap) {
@@ -7987,6 +8041,8 @@ let
 
   eb-garamond = callPackage ../data/fonts/eb-garamond { };
 
+  fira = callPackage ../data/fonts/fira { };
+
   freefont_ttf = callPackage ../data/fonts/freefont-ttf { };
 
   freepats = callPackage ../data/misc/freepats { };
@@ -8221,7 +8277,12 @@ let
 
   bibletime = callPackage ../applications/misc/bibletime { };
 
-  bitcoin = callPackage ../applications/misc/bitcoin { };
+  bitcoin = callPackage ../applications/misc/bitcoin {};
+  bitcoind = callPackage ../applications/misc/bitcoin { gui = false; };
+
+  altcoins = recurseIntoAttrs (
+    callPackage ../applications/misc/bitcoin/altcoins.nix {}
+  );
 
   bitlbee = callPackage ../applications/networking/instant-messengers/bitlbee {
     gnutls = gnutls;
@@ -8242,7 +8303,9 @@ let
       inherit (gnome) libglade;
   };
 
-  calibre = callPackage ../applications/misc/calibre { };
+  calibre = callPackage ../applications/misc/calibre {
+    inherit (pythonPackages) pyqt5 sip_4_16;
+  };
 
   camlistore = callPackage ../applications/misc/camlistore { };
 
@@ -8293,6 +8356,8 @@ let
 
   cinelerra = callPackage ../applications/video/cinelerra { };
 
+  clipit = callPackage ../applications/misc/clipit { };
+
   cmus = callPackage ../applications/audio/cmus { };
 
   compiz = callPackage ../applications/window-managers/compiz {
@@ -8342,7 +8407,7 @@ let
 
   d4x = callPackage ../applications/misc/d4x { };
 
-  darcs = with haskellPackages_ghc763; callPackage ../applications/version-management/darcs {
+  darcs = with haskellPackages_ghc783; callPackage ../applications/version-management/darcs {
     cabal = cabal.override {
       extension = self : super : {
         isLibrary = false;
@@ -8456,6 +8521,8 @@ let
 
     colorTheme = callPackage ../applications/editors/emacs-modes/color-theme { };
 
+    colorThemeSolarized = callPackage ../applications/editors/emacs-modes/color-theme-solarized { };
+
     cryptol = callPackage ../applications/editors/emacs-modes/cryptol { };
 
     cua = callPackage ../applications/editors/emacs-modes/cua { };
@@ -8588,6 +8655,10 @@ let
     inherit (gnome) gnomedocutils libgnome libglade libgnomeui scrollkeeper;
   };
 
+  evilvte = callPackage ../applications/misc/evilvte {
+    configH = config.evilvte.config or "";
+  };
+
   evopedia = callPackage ../applications/misc/evopedia { };
 
   keepassx = callPackage ../applications/misc/keepassx { };
@@ -8714,6 +8785,8 @@ let
     debug = config.flashplayer.debug or false;
   };
 
+  fluxbox = callPackage ../applications/window-managers/fluxbox { };
+
   freecad = callPackage ../applications/graphics/freecad {
     opencascade = opencascade_6_5;
     inherit (pythonPackages) matplotlib pycollada;
@@ -8943,26 +9016,6 @@ let
 
   i810switch = callPackage ../os-specific/linux/i810switch { };
 
-  icecat3 = lowPrio (callPackage ../applications/networking/browsers/icecat-3 {
-    inherit (gnome) libIDL libgnomeui gnome_vfs;
-    inherit (xlibs) pixman;
-    inherit (pythonPackages) ply;
-  });
-
-  icecatXulrunner3 = lowPrio (callPackage ../applications/networking/browsers/icecat-3 {
-    application = "xulrunner";
-    inherit (gnome) libIDL libgnomeui gnome_vfs;
-    inherit (xlibs) pixman;
-    inherit (pythonPackages) ply;
-  });
-
-  icecat3Xul =
-    (symlinkJoin "icecat-with-xulrunner-${icecat3.version}"
-       [ icecat3 icecatXulrunner3 ])
-    // { inherit (icecat3) gtk isFirefox3Like meta; };
-
-  icecat3Wrapper = wrapFirefox { browser = icecat3Xul; browserName = "icecat"; desktopName = "IceCat"; };
-
   icewm = callPackage ../applications/window-managers/icewm { };
 
   id3v2 = callPackage ../applications/audio/id3v2 { };
@@ -9146,6 +9199,11 @@ let
 
   handbrake = callPackage ../applications/video/handbrake { };
 
+  lilyterm = callPackage ../applications/misc/lilyterm {
+    inherit (gnome) vte;
+    gtk = gtk2;
+  };
+  
   lynx = callPackage ../applications/networking/browsers/lynx { };
 
   lyx = callPackage ../applications/misc/lyx { };
@@ -9282,9 +9340,10 @@ let
 
   mpv = callPackage ../applications/video/mpv {
     lua = lua5_1;
-    bs2bSupport = true;
-    quviSupport = true;
-    cacaSupport = true;
+    bs2bSupport = config.mpv.bs2bSupport or true;
+    quviSupport = config.mpv.quviSupport or false;
+    cacaSupport = config.mpv.cacaSupport or true;
+    vaapiSupport = config.mpv.vaapiSupport or false;
   };
 
   mrxvt = callPackage ../applications/misc/mrxvt { };
@@ -9328,8 +9387,11 @@ let
       cursesSupport = true;
     };
 
-    inherit gettext highline iconv locale lockfile rmail_sup
-      text trollop unicode xapian_ruby which;
+    inherit gettext highline iconv locale lockfile
+      text trollop xapian_ruby which;
+
+    rmail_sup = ""; # missing
+    unicode = "";
 
     # See https://github.com/NixOS/nixpkgs/issues/1804 and
     # https://github.com/NixOS/nixpkgs/issues/2146
@@ -9338,15 +9400,16 @@ let
         dontPatchShebangs = 1;
       }
     );
-
-    chronic      = chronic_0_9_1;
+    chronic      = chronic;
     gpgme        = ruby_gpgme;
-    mime_types   = mime_types_1_25;
+    mime_types   = mime_types;
     ncursesw_sup = ruby_ncursesw_sup;
-    rake         = rubyLibs.rake_10_1_0;
+    rake         = rake;
   };
 
-  synfigstudio = callPackage ../applications/graphics/synfigstudio { };
+  synfigstudio = callPackage ../applications/graphics/synfigstudio {
+    fontsConf = makeFontsConf { fontDirectories = [ freefont_ttf ]; };
+  };
 
   sxhkd = callPackage ../applications/window-managers/sxhkd { };
 
@@ -9400,6 +9463,10 @@ let
 
   nvpy = callPackage ../applications/editors/nvpy { };
 
+  obconf = callPackage ../tools/X11/obconf {
+    inherit (gnome) libglade;
+  };
+
   ocrad = callPackage ../applications/graphics/ocrad { };
 
   offrss = callPackage ../applications/networking/offrss { };
@@ -9631,6 +9698,8 @@ let
     conf = config.st.conf or null;
   };
 
+  linuxstopmotion = callPackage ../applications/video/linuxstopmotion { };
+
   sweethome3d = recurseIntoAttrs (  (callPackage ../applications/misc/sweethome3d { })
                                  // (callPackage ../applications/misc/sweethome3d/editors.nix {
                                       sweethome3dApp = sweethome3d.application;
@@ -9845,6 +9914,8 @@ let
 
   uucp = callPackage ../tools/misc/uucp { };
 
+  uvccapture = callPackage ../applications/video/uvccapture { };
+
   uwimap = callPackage ../tools/networking/uwimap { };
 
   uzbl = callPackage ../applications/networking/browsers/uzbl {
@@ -9946,6 +10017,8 @@ let
 
   vwm = callPackage ../applications/window-managers/vwm { };
 
+  vym = callPackage ../applications/misc/vym { };
+
   w3m = callPackage ../applications/networking/browsers/w3m {
     graphicsSupport = false;
   };
@@ -10512,6 +10585,8 @@ let
 
   xonotic = callPackage ../games/xonotic { };
 
+  xskat = callPackage ../games/xskat { };
+
   xsokoban = builderDefsPackage (import ../games/xsokoban) {
     inherit (xlibs) libX11 xproto libXpm libXt;
   };
@@ -10697,6 +10772,11 @@ let
 
       quassel = callPackage ../applications/networking/irc/quassel { dconf = gnome3.dconf; };
 
+      quasselWithoutKDE = (self.quassel.override {
+        withKDE = false;
+        tag = "-without-kde";
+      });
+
       quasselDaemon = (self.quassel.override {
         monolithic = false;
         daemon = true;
@@ -10709,6 +10789,11 @@ let
         tag = "-client";
       });
 
+      quasselClientWithoutKDE = (self.quasselClient.override {
+        withKDE = false;
+        tag = "-client-without-kde";
+      });
+
       rekonq = callPackage ../applications/networking/browsers/rekonq { };
 
       kwebkitpart = callPackage ../applications/networking/browsers/kwebkitpart { };
@@ -10821,10 +10906,14 @@ let
   jags = callPackage ../applications/science/math/jags { };
 
   liblapack = callPackage ../development/libraries/science/math/liblapack { };
+  liblapack_3_5_0 = callPackage ../development/libraries/science/math/liblapack/3.5.0.nix { };
 
   liblbfgs = callPackage ../development/libraries/science/math/liblbfgs { };
 
   openblas = callPackage ../development/libraries/science/math/openblas { };
+  openblas_0_2_10 = callPackage ../development/libraries/science/math/openblas/0.2.10.nix { 
+    liblapack = liblapack_3_5_0;
+  };
 
   mathematica = callPackage ../applications/science/math/mathematica { };
 
@@ -11096,6 +11185,8 @@ let
 
   ekiga = newScope pkgs.gnome ../applications/networking/instant-messengers/ekiga { };
 
+  emulationstation = callPackage ../misc/emulators/emulationstation { };
+
   electricsheep = callPackage ../misc/screensavers/electricsheep { };
 
   fakenes = callPackage ../misc/emulators/fakenes { };
@@ -11360,6 +11451,8 @@ let
     inherit texLive unzip;
   };
 
+  thermald = callPackage ../tools/system/thermald { };
+
   thinkfan = callPackage ../tools/system/thinkfan { };
 
   vice = callPackage ../misc/emulators/vice {
@@ -11412,6 +11505,10 @@ let
 
   xboxdrv = callPackage ../misc/drivers/xboxdrv { };
 
+  xinput_calibrator = callPackage ../tools/X11/xinput_calibrator {
+    inherit (xlibs) libXi inputproto;
+  };
+
   xosd = callPackage ../misc/xosd { };
 
   xsane = callPackage ../applications/graphics/sane/xsane.nix {
diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix
index 20f695a0d236..9a064212a40e 100644
--- a/pkgs/top-level/haskell-defaults.nix
+++ b/pkgs/top-level/haskell-defaults.nix
@@ -23,6 +23,7 @@
   ghc783Prefs = self : super : ghcHEADPrefs self super // {
     cabalInstall_1_20_0_3 = super.cabalInstall_1_20_0_3.override { Cabal = self.Cabal_1_20_0_2; };
     codex = super.codex.override { hackageDb = super.hackageDb.override { Cabal = self.Cabal_1_20_0_2; }; };
+    MonadRandom = self.MonadRandom_0_1_13; # requires transformers >= 0.4.x
     mtl = self.mtl_2_1_2;
   };
 
@@ -58,10 +59,15 @@
 
   ghc742Prefs = self : super : ghc763Prefs self super // {
     aeson = self.aeson_0_7_0_4.override { blazeBuilder = self.blazeBuilder; };
+    cabalInstall_0_14_0 = super.cabalInstall_0_14_0.override {
+      HTTP = self.HTTP.override { network = self.network_2_3_0_13; };
+      network = self.network_2_3_0_13;
+    };
     extensibleExceptions = null;        # core package in ghc <= 7.4.x
     hackageDb = super.hackageDb.override { Cabal = self.Cabal_1_16_0_3; };
     haddock = self.haddock_2_11_0;
     haskeline = super.haskeline.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
+    random = self.random_1_0_1_1;       # requires base >= 4.6.x
     shelly = self.shelly_0_15_4_1;
   };
 
@@ -95,6 +101,7 @@
     logict = super.logict.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
     monadPar = self.monadPar_0_1_0_3;
     nats = null;                        # none of our versions compile
+    networkUri = super.networkUri.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
     parallel = self.parallel_3_2_0_3;
     primitive = self.primitive_0_5_0_1;
     reflection = super.reflection.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
@@ -118,6 +125,7 @@
     happy = super.happy.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
     hashable = super.hashable.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
     hashtables = super.hashtables.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
+    hsyslog = super.hsyslog.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
     HTTP = super.HTTP.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
     HUnit = super.HUnit.override { cabal = self.cabal.override { Cabal = self.Cabal_1_16_0_3; }; };
     network = super.network_2_2_1_7.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 be427ec90e8a..7a4d4c4f10bd 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -751,6 +751,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   entropy = callPackage ../development/libraries/haskell/entropy {};
 
+  equationalReasoning = callPackage ../development/libraries/haskell/equational-reasoning {};
+
   equivalence_0_2_3 = callPackage ../development/libraries/haskell/equivalence/0.2.3.nix {};
   equivalence_0_2_5 = callPackage ../development/libraries/haskell/equivalence/0.2.5.nix {};
   equivalence = self.equivalence_0_2_5;
@@ -897,14 +899,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   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 = callPackage ../development/libraries/haskell/ghc-mod/5.0.1.nix {
-    inherit (pkgs) emacs;
-  };
-
+  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 = self.ghcMod_4_1_6;
 
   ghcMtl = callPackage ../development/libraries/haskell/ghc-mtl {};
@@ -1127,8 +1123,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   HTTP_4000_2_3 = callPackage ../development/libraries/haskell/HTTP/4000.2.3.nix {};
   HTTP_4000_2_5 = callPackage ../development/libraries/haskell/HTTP/4000.2.5.nix {};
   HTTP_4000_2_8 = callPackage ../development/libraries/haskell/HTTP/4000.2.8.nix {};
-  HTTP_4000_2_17 = callPackage ../development/libraries/haskell/HTTP/4000.2.17.nix {};
-  HTTP = self.HTTP_4000_2_17;
+  HTTP_4000_2_18 = callPackage ../development/libraries/haskell/HTTP/4000.2.18.nix {};
+  HTTP = self.HTTP_4000_2_18;
 
   httpAttoparsec = callPackage ../development/libraries/haskell/http-attoparsec {};
 
@@ -1386,6 +1382,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   ivor = callPackage ../development/libraries/haskell/ivor {};
 
+  ivory = callPackage ../development/libraries/haskell/ivory {};
+
   ixdopp = callPackage ../development/libraries/haskell/ixdopp {
     preprocessorTools = self.preprocessorTools_0_1_3;
   };
@@ -1459,6 +1457,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   lens = callPackage ../development/libraries/haskell/lens {};
 
+  lensAeson = callPackage ../development/libraries/haskell/lens-aeson {};
+
   lensDatetime = callPackage ../development/libraries/haskell/lens-datetime {};
 
   lensFamilyCore = callPackage ../development/libraries/haskell/lens-family-core {};
@@ -1537,6 +1537,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   machines = callPackage ../development/libraries/haskell/machines {};
 
+  markdown = callPackage ../development/libraries/haskell/markdown {};
+
   markdownUnlit = callPackage ../development/libraries/haskell/markdown-unlit {};
 
   mathFunctions = callPackage ../development/libraries/haskell/math-functions {};
@@ -1619,7 +1621,9 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   MonadPrompt = callPackage ../development/libraries/haskell/MonadPrompt {};
 
-  MonadRandom = callPackage ../development/libraries/haskell/MonadRandom {};
+  MonadRandom_0_1_13 = callPackage ../development/libraries/haskell/MonadRandom/0.1.13.nix {};
+  MonadRandom_0_2_0_1 = callPackage ../development/libraries/haskell/MonadRandom/0.2.0.1.nix {};
+  MonadRandom = self.MonadRandom_0_2_0_1;
 
   monadStm = callPackage ../development/libraries/haskell/monad-stm {};
 
@@ -1635,6 +1639,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   mongoDB = callPackage ../development/libraries/haskell/mongoDB {};
 
+  monomorphic = callPackage ../development/libraries/haskell/monomorphic {};
+
   monoTraversable = callPackage ../development/libraries/haskell/mono-traversable {};
 
   mmorph = callPackage ../development/libraries/haskell/mmorph {};
@@ -1705,13 +1711,16 @@ 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 = self.network_2_5_0_0;
+  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
 
   networkCarbon = callPackage ../development/libraries/haskell/network-carbon {};
 
   networkConduit = callPackage ../development/libraries/haskell/network-conduit {};
   networkConduitTls = callPackage ../development/libraries/haskell/network-conduit-tls {};
 
+  networkFancy = callPackage ../development/libraries/haskell/network-fancy {};
+
   networkInfo = callPackage ../development/libraries/haskell/network-info {};
 
   networkMetrics = callPackage ../development/libraries/haskell/network-metrics {};
@@ -1812,9 +1821,7 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   parsec_3_1_5   = callPackage ../development/libraries/haskell/parsec/3.1.5.nix {};
   parsec = self.parsec_3_1_5;
 
-  parsers_0_10_3 = callPackage ../development/libraries/haskell/parsers/0.10.3.nix {};
-  parsers_0_12_1 = callPackage ../development/libraries/haskell/parsers/0.12.1.nix {};
-  parsers = self.parsers_0_12_1;
+  parsers = callPackage ../development/libraries/haskell/parsers {};
 
   parsimony = callPackage ../development/libraries/haskell/parsimony {};
 
@@ -1994,7 +2001,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   RangedSets = callPackage ../development/libraries/haskell/Ranged-sets {};
 
   random_1_0_1_1 = callPackage ../development/libraries/haskell/random/1.0.1.1.nix {};
-  random = self.random_1_0_1_1;
+  random_1_0_1_3 = callPackage ../development/libraries/haskell/random/1.0.1.3.nix {};
+  random = self.random_1_0_1_3;
 
   randomFu = callPackage ../development/libraries/haskell/random-fu {};
 
@@ -2006,6 +2014,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   ranges = callPackage ../development/libraries/haskell/ranges {};
 
+  reserve = callPackage ../development/libraries/haskell/reserve {};
+
   rvar = callPackage ../development/libraries/haskell/rvar {};
 
   reactiveBanana = callPackage ../development/libraries/haskell/reactive-banana {};
@@ -2142,6 +2152,16 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   semigroupoidExtras = callPackage ../development/libraries/haskell/semigroupoid-extras {};
 
+  servant = callPackage ../development/libraries/haskell/servant {};
+
+  servantPool = callPackage ../development/libraries/haskell/servant-pool {};
+
+  servantPostgresql = callPackage ../development/libraries/haskell/servant-postgresql {};
+
+  servantResponse = callPackage ../development/libraries/haskell/servant-response {};
+
+  servantScotty = callPackage ../development/libraries/haskell/servant-scotty {};
+
   setenv = callPackage ../development/libraries/haskell/setenv {};
 
   setlocale = callPackage ../development/libraries/haskell/setlocale {};
@@ -2165,6 +2185,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   silently = callPackage ../development/libraries/haskell/silently {};
 
+  sized = callPackage ../development/libraries/haskell/sized {};
+
   sizedTypes = callPackage ../development/libraries/haskell/sized-types {};
 
   skein = callPackage ../development/libraries/haskell/skein {};
@@ -2544,6 +2566,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   typeEquality = callPackage ../development/libraries/haskell/type-equality {};
 
+  typeNatural = callPackage ../development/libraries/haskell/type-natural {};
+
   typeLevelNaturalNumber = callPackage ../development/libraries/haskell/type-level-natural-number {};
 
   tz = callPackage ../development/libraries/haskell/tz {
@@ -2651,8 +2675,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
   void = callPackage ../development/libraries/haskell/void {};
 
   vty_4_7_5 = callPackage ../development/libraries/haskell/vty/4.7.5.nix {};
-  vty_5_1_4 = callPackage ../development/libraries/haskell/vty/5.1.4.nix {};
-  vty = self.vty_5_1_4;
+  vty_5_2_1 = callPackage ../development/libraries/haskell/vty/5.2.1.nix {};
+  vty = self.vty_5_2_1;
 
   vtyUi = callPackage ../development/libraries/haskell/vty-ui {
     vty = self.vty_4_7_5;
@@ -2795,6 +2819,8 @@ self : let callPackage = x : y : modifyPrio (newScope self x y); in
 
   yesodAuth = callPackage ../development/libraries/haskell/yesod-auth {};
 
+  yesodAuthHashdb = callPackage ../development/libraries/haskell/yesod-auth-hashdb {};
+
   yesodBin = callPackage ../development/libraries/haskell/yesod-bin {};
 
   yesodCore = callPackage ../development/libraries/haskell/yesod-core {};
diff --git a/pkgs/top-level/make-tarball.nix b/pkgs/top-level/make-tarball.nix
index 70330f4304f1..356368d137d3 100644
--- a/pkgs/top-level/make-tarball.nix
+++ b/pkgs/top-level/make-tarball.nix
@@ -14,14 +14,7 @@ releaseTools.sourceTarball rec {
   version = builtins.readFile ../../.version;
   versionSuffix = "pre${toString nixpkgs.revCount}.${nixpkgs.shortRev}";
 
-  buildInputs = [
-    lzma
-    libxml2 # Needed for the release notes.
-    libxslt
-    w3m
-    nix # Needed to check whether the expressions are valid.
-    tetex dblatex
-  ];
+  buildInputs = [ nix ];
 
   configurePhase = ''
     eval "$preConfigure"
@@ -32,13 +25,6 @@ releaseTools.sourceTarball rec {
 
   dontBuild = false;
 
-  buildPhase = ''
-    echo "building docs..."
-    export VARTEXFONTS=$TMPDIR/texfonts
-    make -C doc docbookxsl=${docbook5_xsl}/xml/xsl/docbook
-    ln -s doc/NEWS.txt NEWS
-  '';
-
   doCheck = true;
 
   checkPhase = ''
@@ -66,7 +52,7 @@ releaseTools.sourceTarball rec {
     # Check that all-packages.nix evaluates on a number of platforms.
     for platform in i686-linux x86_64-linux x86_64-darwin i686-freebsd x86_64-freebsd; do
         header "checking pkgs/top-level/all-packages.nix on $platform"
-        nix-env -f pkgs/top-level/all-packages.nix \
+        NIXPKGS_ALLOW_BROKEN=1 nix-env -f pkgs/top-level/all-packages.nix \
             --show-trace --argstr system "$platform" \
             -qa \* --drv-path --system-filter \* --system --meta --xml > /dev/null
         stopNest
@@ -87,19 +73,6 @@ releaseTools.sourceTarball rec {
     cp -prd . ../$releaseName
     echo nixpkgs > ../$releaseName/channel-name
     (cd .. && tar cfa $out/tarballs/$releaseName.tar.xz $releaseName) || false
-
-    mkdir -p $out/release-notes
-    cp doc/NEWS.html $out/release-notes/index.html
-    cp doc/style.css $out/release-notes/
-    echo "doc release-notes $out/release-notes" >> $out/nix-support/hydra-build-products
-
-    mkdir -p $out/manual
-    cp doc/manual.html $out/manual/index.html
-    cp doc/style.css $out/manual/
-    echo "doc manual $out/manual" >> $out/nix-support/hydra-build-products
-
-    cp doc/manual.pdf $out/manual.pdf
-    echo "doc-pdf manual $out/manual.pdf" >> $out/nix-support/hydra-build-products
   '';
 
   meta = {
diff --git a/pkgs/top-level/node-packages-generated.nix b/pkgs/top-level/node-packages-generated.nix
index e250085f7307..fb12a10e5df3 100644
--- a/pkgs/top-level/node-packages-generated.nix
+++ b/pkgs/top-level/node-packages-generated.nix
@@ -20,99 +20,36 @@
     ];
     passthru.names = [ "Base64" ];
   };
-  by-spec."CSSselect"."0.x" =
-    self.by-version."CSSselect"."0.7.0";
-  by-version."CSSselect"."0.7.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-CSSselect-0.7.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/CSSselect/-/CSSselect-0.7.0.tgz";
-        name = "CSSselect-0.7.0.tgz";
-        sha1 = "e4054c67b467465f3c9500c0da0aa7878c4babd2";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."CSSselect" or []);
-    deps = [
-      self.by-version."CSSwhat"."0.4.5"
-      self.by-version."domutils"."1.4.3"
-      self.by-version."boolbase"."1.0.0"
-      self.by-version."nth-check"."1.0.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "CSSselect" ];
-  };
-  by-spec."CSSselect"."~0.4.0" =
-    self.by-version."CSSselect"."0.4.1";
-  by-version."CSSselect"."0.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-CSSselect-0.4.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/CSSselect/-/CSSselect-0.4.1.tgz";
-        name = "CSSselect-0.4.1.tgz";
-        sha1 = "f8ab7e1f8418ce63cda6eb7bd778a85d7ec492b2";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."CSSselect" or []);
-    deps = [
-      self.by-version."CSSwhat"."0.4.5"
-      self.by-version."domutils"."1.4.3"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "CSSselect" ];
-  };
-  by-spec."CSSwhat"."0.4" =
-    self.by-version."CSSwhat"."0.4.5";
-  by-version."CSSwhat"."0.4.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-CSSwhat-0.4.5";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/CSSwhat/-/CSSwhat-0.4.5.tgz";
-        name = "CSSwhat-0.4.5.tgz";
-        sha1 = "85d7b2799ff3d98055353c802949e39913e16a62";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."CSSwhat" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "CSSwhat" ];
-  };
-  by-spec."JSONStream"."~0.6.4" =
-    self.by-version."JSONStream"."0.6.4";
-  by-version."JSONStream"."0.6.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-JSONStream-0.6.4";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/JSONStream/-/JSONStream-0.6.4.tgz";
-        name = "JSONStream-0.6.4.tgz";
-        sha1 = "4b2c8063f8f512787b2375f7ee9db69208fa2dcb";
+        url = "http://registry.npmjs.org/JSONStream/-/JSONStream-0.7.4.tgz";
+        name = "JSONStream-0.7.4.tgz";
+        sha1 = "734290e41511eea7c2cfe151fbf9a563a97b9786";
       })
     ];
     buildInputs =
       (self.nativeDeps."JSONStream" or []);
     deps = [
       self.by-version."jsonparse"."0.0.5"
-      self.by-version."through"."2.2.7"
+      self.by-version."through"."2.3.4"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "JSONStream" ];
   };
-  by-spec."JSONStream"."~0.7.1" =
-    self.by-version."JSONStream"."0.7.2";
-  by-version."JSONStream"."0.7.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-JSONStream-0.7.2";
+  by-spec."JSONStream"."~0.8.3" =
+    self.by-version."JSONStream"."0.8.4";
+  by-version."JSONStream"."0.8.4" = lib.makeOverridable self.buildNodePackage {
+    name = "JSONStream-0.8.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/JSONStream/-/JSONStream-0.7.2.tgz";
-        name = "JSONStream-0.7.2.tgz";
-        sha1 = "27f4d7fe1918dc08ee72aed9c794e32ce80618f7";
+        url = "http://registry.npmjs.org/JSONStream/-/JSONStream-0.8.4.tgz";
+        name = "JSONStream-0.8.4.tgz";
+        sha1 = "91657dfe6ff857483066132b4618b62e8f4887bd";
       })
     ];
     buildInputs =
@@ -125,6 +62,8 @@
     ];
     passthru.names = [ "JSONStream" ];
   };
+  by-spec."JSONStream"."~0.8.4" =
+    self.by-version."JSONStream"."0.8.4";
   by-spec."StringScanner"."~0.0.3" =
     self.by-version."StringScanner"."0.0.3";
   by-version."StringScanner"."0.0.3" = lib.makeOverridable self.buildNodePackage {
@@ -165,7 +104,7 @@
   };
   by-spec."abbrev"."1.0.x" =
     self.by-version."abbrev"."1.0.5";
-  by-spec."abbrev"."~1.0.4" =
+  by-spec."abbrev"."~1.0.5" =
     self.by-version."abbrev"."1.0.5";
   by-spec."accepts"."1.0.0" =
     self.by-version."accepts"."1.0.0";
@@ -188,6 +127,33 @@
     ];
     passthru.names = [ "accepts" ];
   };
+  by-spec."accepts"."~1.0.0" =
+    self.by-version."accepts"."1.0.7";
+  by-version."accepts"."1.0.7" = lib.makeOverridable self.buildNodePackage {
+    name = "node-accepts-1.0.7";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/accepts/-/accepts-1.0.7.tgz";
+        name = "accepts-1.0.7.tgz";
+        sha1 = "5b501fb4f0704309964ccdb048172541208dab1a";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."accepts" or []);
+    deps = [
+      self.by-version."mime-types"."1.0.2"
+      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 {
@@ -208,7 +174,7 @@
     ];
     passthru.names = [ "active-x-obfuscator" ];
   };
-  by-spec."addressparser"."~0.2.0" =
+  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";
@@ -246,7 +212,7 @@
     ];
     passthru.names = [ "adm-zip" ];
   };
-  by-spec."adm-zip"."^0.4.3" =
+  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";
@@ -265,8 +231,6 @@
     ];
     passthru.names = [ "adm-zip" ];
   };
-  by-spec."adm-zip"."~0.4.3" =
-    self.by-version."adm-zip"."0.4.4";
   by-spec."almond"."*" =
     self.by-version."almond"."0.2.9";
   by-version."almond"."0.2.9" = lib.makeOverridable self.buildNodePackage {
@@ -309,15 +273,15 @@
   "amdefine" = self.by-version."amdefine"."0.1.0";
   by-spec."amdefine".">=0.0.4" =
     self.by-version."amdefine"."0.1.0";
-  by-spec."ansi"."~0.2.1" =
-    self.by-version."ansi"."0.2.1";
-  by-version."ansi"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "ansi-0.2.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/ansi/-/ansi-0.2.1.tgz";
-        name = "ansi-0.2.1.tgz";
-        sha1 = "3ab568ec18cd0ab7753c83117d57dad684a1c017";
+        url = "http://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz";
+        name = "ansi-0.3.0.tgz";
+        sha1 = "74b2f1f187c8553c7f95015bcb76009fb43d38e0";
       })
     ];
     buildInputs =
@@ -328,73 +292,75 @@
     ];
     passthru.names = [ "ansi" ];
   };
-  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";
+  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-remover/-/ansi-remover-0.0.2.tgz";
-        name = "ansi-remover-0.0.2.tgz";
-        sha1 = "7020086289f10e195d85d828de065ccdd50e6e66";
+        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-remover" or []);
+      (self.nativeDeps."ansi-regex" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "ansi-remover" ];
+    passthru.names = [ "ansi-regex" ];
   };
-  "ansi-remover" = self.by-version."ansi-remover"."0.0.2";
-  by-spec."ansi-styles"."~0.1.0" =
-    self.by-version."ansi-styles"."0.1.2";
-  by-version."ansi-styles"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ansi-styles-0.1.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/ansi-styles/-/ansi-styles-0.1.2.tgz";
-        name = "ansi-styles-0.1.2.tgz";
-        sha1 = "5bab27c2e0bbe944ee42057cf23adee970abc7c6";
+        url = "http://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz";
+        name = "ansi-regex-0.2.1.tgz";
+        sha1 = "0d8e946967a3d8143f93e24e298525fc1b2235f9";
       })
     ];
     buildInputs =
-      (self.nativeDeps."ansi-styles" or []);
+      (self.nativeDeps."ansi-regex" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "ansi-styles" ];
+    passthru.names = [ "ansi-regex" ];
   };
-  by-spec."ansi-styles"."~0.2.0" =
-    self.by-version."ansi-styles"."0.2.0";
-  by-version."ansi-styles"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ansi-styles-0.2.0";
+  by-spec."ansi-regex"."^0.2.1" =
+    self.by-version."ansi-regex"."0.2.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/ansi-styles/-/ansi-styles-0.2.0.tgz";
-        name = "ansi-styles-0.2.0.tgz";
-        sha1 = "359ab4b15dcd64ba6d74734b72c36360a9af2c19";
+        url = "http://registry.npmjs.org/ansi-remover/-/ansi-remover-0.0.2.tgz";
+        name = "ansi-remover-0.0.2.tgz";
+        sha1 = "7020086289f10e195d85d828de065ccdd50e6e66";
       })
     ];
     buildInputs =
-      (self.nativeDeps."ansi-styles" or []);
+      (self.nativeDeps."ansi-remover" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "ansi-styles" ];
+    passthru.names = [ "ansi-remover" ];
   };
-  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";
+  "ansi-remover" = self.by-version."ansi-remover"."0.0.2";
+  by-spec."ansi-styles"."^1.1.0" =
+    self.by-version."ansi-styles"."1.1.0";
+  by-version."ansi-styles"."1.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-ansi-styles-1.1.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz";
-        name = "ansi-styles-1.0.0.tgz";
-        sha1 = "cb102df1c56f5123eab8b67cd7b98027a0279178";
+        url = "http://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz";
+        name = "ansi-styles-1.1.0.tgz";
+        sha1 = "eaecbf66cd706882760b2f4691582b8f55d7a7de";
       })
     ];
     buildInputs =
@@ -405,24 +371,24 @@
     ];
     passthru.names = [ "ansi-styles" ];
   };
-  by-spec."ansicolors"."~0.2.1" =
-    self.by-version."ansicolors"."0.2.1";
-  by-version."ansicolors"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ansicolors-0.2.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz";
-        name = "ansicolors-0.2.1.tgz";
-        sha1 = "be089599097b74a5c9c4a84a0cdbcdb62bd87aef";
+        url = "http://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz";
+        name = "ansi-styles-1.0.0.tgz";
+        sha1 = "cb102df1c56f5123eab8b67cd7b98027a0279178";
       })
     ];
     buildInputs =
-      (self.nativeDeps."ansicolors" or []);
+      (self.nativeDeps."ansi-styles" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "ansicolors" ];
+    passthru.names = [ "ansi-styles" ];
   };
   by-spec."ansicolors"."~0.3.2" =
     self.by-version."ansicolors"."0.3.2";
@@ -482,24 +448,26 @@
     ];
     passthru.names = [ "apparatus" ];
   };
-  by-spec."archiver"."~0.5.2" =
-    self.by-version."archiver"."0.5.2";
-  by-version."archiver"."0.5.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-archiver-0.5.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/archiver/-/archiver-0.5.2.tgz";
-        name = "archiver-0.5.2.tgz";
-        sha1 = "4e021b1fea5d902201f4886fca6a19fcc760083b";
+        url = "http://registry.npmjs.org/archiver/-/archiver-0.10.1.tgz";
+        name = "archiver-0.10.1.tgz";
+        sha1 = "c88a50fe114f744d059a07dfc4690f3a204146e4";
       })
     ];
     buildInputs =
       (self.nativeDeps."archiver" or []);
     deps = [
-      self.by-version."readable-stream"."1.0.27-1"
-      self.by-version."zip-stream"."0.1.4"
+      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.1.5"
+      self.by-version."file-utils"."0.2.0"
       self.by-version."lodash"."2.4.1"
     ];
     peerDependencies = [
@@ -525,8 +493,6 @@
     ];
     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 {
@@ -550,63 +516,6 @@
   };
   by-spec."argparse"."~ 0.1.11" =
     self.by-version."argparse"."0.1.15";
-  by-spec."array-filter"."~0.0.0" =
-    self.by-version."array-filter"."0.0.1";
-  by-version."array-filter"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-array-filter-0.0.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz";
-        name = "array-filter-0.0.1.tgz";
-        sha1 = "7da8cf2e26628ed732803581fd21f67cacd2eeec";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."array-filter" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "array-filter" ];
-  };
-  by-spec."array-map"."~0.0.0" =
-    self.by-version."array-map"."0.0.0";
-  by-version."array-map"."0.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-array-map-0.0.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz";
-        name = "array-map-0.0.0.tgz";
-        sha1 = "88a2bab73d1cf7bcd5c1b118a003f66f665fa662";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."array-map" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "array-map" ];
-  };
-  by-spec."array-reduce"."~0.0.0" =
-    self.by-version."array-reduce"."0.0.0";
-  by-version."array-reduce"."0.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-array-reduce-0.0.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz";
-        name = "array-reduce-0.0.0.tgz";
-        sha1 = "173899d3ffd1c7d9383e4479525dbe278cab5f2b";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."array-reduce" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "array-reduce" ];
-  };
   by-spec."asap"."^1.0.0" =
     self.by-version."asap"."1.0.0";
   by-version."asap"."1.0.0" = lib.makeOverridable self.buildNodePackage {
@@ -645,27 +554,6 @@
     ];
     passthru.names = [ "ascii-json" ];
   };
-  by-spec."ascli"."*" =
-    self.by-version."ascli"."0.3.0";
-  by-version."ascli"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ascli-0.3.0";
-    src = [
-      (self.patchSource fetchurl {
-        url = "http://registry.npmjs.org/ascli/-/ascli-0.3.0.tgz";
-        name = "ascli-0.3.0.tgz";
-        sha1 = "5e66230e5219fe3e8952a4efb4f20fae596a813a";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."ascli" or []);
-    deps = [
-      self.by-version."colour"."0.7.1"
-      self.by-version."optjs"."3.2.1-boom"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "ascli" ];
-  };
   by-spec."asn1"."0.1.11" =
     self.by-version."asn1"."0.1.11";
   by-version."asn1"."0.1.11" = lib.makeOverridable self.buildNodePackage {
@@ -727,6 +615,25 @@
     ];
     passthru.names = [ "assert-plus" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/assert-plus/-/assert-plus-0.1.3.tgz";
+        name = "assert-plus-0.1.3.tgz";
+        sha1 = "32eba8ac83e50ae4f4b5babab1ae9aa0edec9fef";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."assert-plus" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "assert-plus" ];
+  };
   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 {
@@ -767,14 +674,14 @@
     passthru.names = [ "astw" ];
   };
   by-spec."async"."*" =
-    self.by-version."async"."0.7.0";
-  by-version."async"."0.7.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-async-0.7.0";
+    self.by-version."async"."0.9.0";
+  by-version."async"."0.9.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-async-0.9.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/async/-/async-0.7.0.tgz";
-        name = "async-0.7.0.tgz";
-        sha1 = "4429e0e62f5de0a54f37458c49f0b897eb52ada5";
+        url = "http://registry.npmjs.org/async/-/async-0.9.0.tgz";
+        name = "async-0.9.0.tgz";
+        sha1 = "ac3613b1da9bed1b47510bb4651b8931e47146c7";
       })
     ];
     buildInputs =
@@ -785,7 +692,7 @@
     ];
     passthru.names = [ "async" ];
   };
-  "async" = self.by-version."async"."0.7.0";
+  "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 {
@@ -864,29 +771,27 @@
     ];
     passthru.names = [ "async" ];
   };
+  by-spec."async"."0.9.x" =
+    self.by-version."async"."0.9.0";
   by-spec."async"."^0.2.10" =
     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.10" =
-    self.by-version."async"."0.2.10";
   by-spec."async"."~0.2.6" =
     self.by-version."async"."0.2.10";
   by-spec."async"."~0.2.7" =
     self.by-version."async"."0.2.10";
-  by-spec."async"."~0.2.8" =
-    self.by-version."async"."0.2.10";
   by-spec."async"."~0.2.9" =
     self.by-version."async"."0.2.10";
-  by-spec."async"."~0.4" =
-    self.by-version."async"."0.4.1";
-  by-version."async"."0.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-async-0.4.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/async/-/async-0.4.1.tgz";
-        name = "async-0.4.1.tgz";
-        sha1 = "1985abade017df906bfaa8d77d424b25366b3a5b";
+        url = "http://registry.npmjs.org/async/-/async-0.7.0.tgz";
+        name = "async-0.7.0.tgz";
+        sha1 = "4429e0e62f5de0a54f37458c49f0b897eb52ada5";
       })
     ];
     buildInputs =
@@ -897,15 +802,15 @@
     ];
     passthru.names = [ "async" ];
   };
-  by-spec."async"."~0.6.2" =
-    self.by-version."async"."0.6.2";
-  by-version."async"."0.6.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-async-0.6.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/async/-/async-0.6.2.tgz";
-        name = "async-0.6.2.tgz";
-        sha1 = "41fd038a3812c0a8bc1842ecf08ba63eb0392bef";
+        url = "http://registry.npmjs.org/async/-/async-0.8.0.tgz";
+        name = "async-0.8.0.tgz";
+        sha1 = "ee65ec77298c2ff1456bc4418a052d0f06435112";
       })
     ];
     buildInputs =
@@ -916,28 +821,51 @@
     ];
     passthru.names = [ "async" ];
   };
+  by-spec."async"."~0.9.0" =
+    self.by-version."async"."0.9.0";
+  by-spec."async-some"."~1.0.0" =
+    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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/async-some/-/async-some-1.0.1.tgz";
+        name = "async-some-1.0.1.tgz";
+        sha1 = "8b54f08d46f0f9babc72ea9d646c245d23a4d9e5";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."async-some" or []);
+    deps = [
+      self.by-version."dezalgo"."1.0.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "async-some" ];
+  };
   by-spec."aws-sdk"."*" =
-    self.by-version."aws-sdk"."2.0.0-rc9";
-  by-version."aws-sdk"."2.0.0-rc9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-aws-sdk-2.0.0-rc9";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/aws-sdk/-/aws-sdk-2.0.0-rc9.tgz";
-        name = "aws-sdk-2.0.0-rc9.tgz";
-        sha1 = "caa7653837f7886e7f9e4da5df3b3c8324d7d0ab";
+        url = "http://registry.npmjs.org/aws-sdk/-/aws-sdk-2.0.14.tgz";
+        name = "aws-sdk-2.0.14.tgz";
+        sha1 = "ee6668b97d62924b3d27d577658411c06ad7f2ad";
       })
     ];
     buildInputs =
       (self.nativeDeps."aws-sdk" or []);
     deps = [
-      self.by-version."xml2js"."0.2.4"
+      self.by-version."aws-sdk-apis"."3.1.6"
+      self.by-version."xml2js"."0.2.6"
       self.by-version."xmlbuilder"."0.4.2"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "aws-sdk" ];
   };
-  "aws-sdk" = self.by-version."aws-sdk"."2.0.0-rc9";
+  "aws-sdk" = self.by-version."aws-sdk"."2.0.14";
   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 {
@@ -959,6 +887,25 @@
     ];
     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";
+    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";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."aws-sdk-apis" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "aws-sdk-apis" ];
+  };
   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 {
@@ -1076,14 +1023,14 @@
     passthru.names = [ "base62" ];
   };
   by-spec."base64-js"."~0.0.4" =
-    self.by-version."base64-js"."0.0.6";
-  by-version."base64-js"."0.0.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-base64-js-0.0.6";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/base64-js/-/base64-js-0.0.6.tgz";
-        name = "base64-js-0.0.6.tgz";
-        sha1 = "7b859f79f0bbbd55867ba67a7fab397e24a20947";
+        url = "http://registry.npmjs.org/base64-js/-/base64-js-0.0.7.tgz";
+        name = "base64-js-0.0.7.tgz";
+        sha1 = "54400dc91d696cec32a8a47902f971522fee8f48";
       })
     ];
     buildInputs =
@@ -1094,6 +1041,25 @@
     ];
     passthru.names = [ "base64-js" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/base64-url/-/base64-url-1.0.0.tgz";
+        name = "base64-url-1.0.0.tgz";
+        sha1 = "ab694376f2801af6c9260899ffef02f86b40ee2c";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."base64-url" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "base64-url" ];
+  };
   by-spec."base64id"."0.1.0" =
     self.by-version."base64id"."0.1.0";
   by-version."base64id"."0.1.0" = lib.makeOverridable self.buildNodePackage {
@@ -1113,6 +1079,25 @@
     ];
     passthru.names = [ "base64id" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/basic-auth/-/basic-auth-1.0.0.tgz";
+        name = "basic-auth-1.0.0.tgz";
+        sha1 = "111b2d9ff8e4e6d136b8c84ea5e096cb87351637";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."basic-auth" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "basic-auth" ];
+  };
   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 {
@@ -1151,57 +1136,56 @@
     ];
     passthru.names = [ "batch" ];
   };
-  by-spec."bcrypt"."*" =
-    self.by-version."bcrypt"."0.7.7";
-  by-version."bcrypt"."0.7.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bcrypt-0.7.7";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/bcrypt/-/bcrypt-0.7.7.tgz";
-        name = "bcrypt-0.7.7.tgz";
-        sha1 = "966a2e709b8cf62c2e05408baf7c5ed663b3c868";
+        url = "http://registry.npmjs.org/batch/-/batch-0.5.1.tgz";
+        name = "batch-0.5.1.tgz";
+        sha1 = "36a4bab594c050fd7b507bca0db30c2d92af4ff2";
       })
     ];
     buildInputs =
-      (self.nativeDeps."bcrypt" or []);
+      (self.nativeDeps."batch" or []);
     deps = [
-      self.by-version."bindings"."1.0.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "bcrypt" ];
+    passthru.names = [ "batch" ];
   };
-  "bcrypt" = self.by-version."bcrypt"."0.7.7";
-  by-spec."binary"."~0.3.0" =
-    self.by-version."binary"."0.3.0";
-  by-version."binary"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-binary-0.3.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/binary/-/binary-0.3.0.tgz";
-        name = "binary-0.3.0.tgz";
-        sha1 = "9f60553bc5ce8c3386f3b553cff47462adecaa79";
+        url = "http://registry.npmjs.org/bcrypt/-/bcrypt-0.8.0.tgz";
+        name = "bcrypt-0.8.0.tgz";
+        sha1 = "b8f226406e5b78c838833a8468a4a0402cbc93c9";
       })
     ];
     buildInputs =
-      (self.nativeDeps."binary" or []);
+      (self.nativeDeps."bcrypt" or []);
     deps = [
-      self.by-version."chainsaw"."0.1.0"
-      self.by-version."buffers"."0.1.1"
+      self.by-version."bindings"."1.0.0"
+      self.by-version."nan"."1.3.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "binary" ];
+    passthru.names = [ "bcrypt" ];
   };
+  "bcrypt" = self.by-version."bcrypt"."0.8.0";
   by-spec."bindings"."*" =
-    self.by-version."bindings"."1.2.0";
-  by-version."bindings"."1.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bindings-1.2.0";
+    self.by-version."bindings"."1.2.1";
+  by-version."bindings"."1.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-bindings-1.2.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/bindings/-/bindings-1.2.0.tgz";
-        name = "bindings-1.2.0.tgz";
-        sha1 = "c224fc5b349a84043779f97a6271d9d70da7636f";
+        url = "http://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz";
+        name = "bindings-1.2.1.tgz";
+        sha1 = "14ad6113812d2d37d72e67b4cacb4bb726505f11";
       })
     ];
     buildInputs =
@@ -1231,6 +1215,49 @@
     ];
     passthru.names = [ "bindings" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/bindings/-/bindings-1.1.1.tgz";
+        name = "bindings-1.1.1.tgz";
+        sha1 = "951f7ae010302ffc50b265b124032017ed2bf6f3";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."bindings" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "bindings" ];
+  };
+  by-spec."bindings".">=1.2.1" =
+    self.by-version."bindings"."1.2.1";
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/bl/-/bl-0.9.1.tgz";
+        name = "bl-0.9.1.tgz";
+        sha1 = "d262c5b83aa5cf4386cea1d998c82b36d7ae2942";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."bl" or []);
+    deps = [
+      self.by-version."readable-stream"."1.0.31"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "bl" ];
+  };
   by-spec."block-stream"."*" =
     self.by-version."block-stream"."0.0.7";
   by-version."block-stream"."0.0.7" = lib.makeOverridable self.buildNodePackage {
@@ -1253,6 +1280,25 @@
   };
   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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/bluebird/-/bluebird-2.3.0.tgz";
+        name = "bluebird-2.3.0.tgz";
+        sha1 = "0d9260735ca30c8a28b3427a291fe2b9287da0f8";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."bluebird" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "bluebird" ];
+  };
   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 {
@@ -1272,46 +1318,58 @@
     ];
     passthru.names = [ "blueimp-md5" ];
   };
-  by-spec."body-parser"."~1.0.1" =
-    self.by-version."body-parser"."1.0.2";
-  by-version."body-parser"."1.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-body-parser-1.0.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/body-parser/-/body-parser-1.0.2.tgz";
-        name = "body-parser-1.0.2.tgz";
-        sha1 = "3461479a3278fe00fcaebec3314bb54fc4f7b47c";
+        url = "http://registry.npmjs.org/body-parser/-/body-parser-1.4.3.tgz";
+        name = "body-parser-1.4.3.tgz";
+        sha1 = "4727952cff4af0773eefa4b226c2f4122f5e234d";
       })
     ];
     buildInputs =
       (self.nativeDeps."body-parser" or []);
     deps = [
-      self.by-version."type-is"."1.1.0"
-      self.by-version."raw-body"."1.1.4"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "body-parser" ];
   };
-  by-spec."boolbase"."~1.0.0" =
-    self.by-version."boolbase"."1.0.0";
-  by-version."boolbase"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-boolbase-1.0.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz";
-        name = "boolbase-1.0.0.tgz";
-        sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
+        url = "http://registry.npmjs.org/body-parser/-/body-parser-1.6.5.tgz";
+        name = "body-parser-1.6.5.tgz";
+        sha1 = "536f01e08ee2b6df6a941d6c8c9647ee99ee4de7";
       })
     ];
     buildInputs =
-      (self.nativeDeps."boolbase" or []);
+      (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"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "boolbase" ];
+    passthru.names = [ "body-parser" ];
   };
   by-spec."boom"."0.3.x" =
     self.by-version."boom"."0.3.8";
@@ -1353,316 +1411,6 @@
     ];
     passthru.names = [ "boom" ];
   };
-  by-spec."bower"."*" =
-    self.by-version."bower"."1.3.2";
-  by-version."bower"."1.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "bower-1.3.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/bower/-/bower-1.3.2.tgz";
-        name = "bower-1.3.2.tgz";
-        sha1 = "ae1eeea5c3ba9300e10e55b193e9d2fd5407fb7b";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."bower" or []);
-    deps = [
-      self.by-version."abbrev"."1.0.5"
-      self.by-version."archy"."0.0.2"
-      self.by-version."bower-config"."0.5.0"
-      self.by-version."bower-endpoint-parser"."0.2.1"
-      self.by-version."bower-json"."0.4.0"
-      self.by-version."bower-logger"."0.2.2"
-      self.by-version."bower-registry-client"."0.1.6"
-      self.by-version."cardinal"."0.4.4"
-      self.by-version."chalk"."0.4.0"
-      self.by-version."chmodr"."0.1.0"
-      self.by-version."decompress-zip"."0.0.6"
-      self.by-version."fstream"."0.1.25"
-      self.by-version."fstream-ignore"."0.0.7"
-      self.by-version."glob"."3.2.9"
-      self.by-version."graceful-fs"."2.0.3"
-      self.by-version."handlebars"."1.3.0"
-      self.by-version."inquirer"."0.4.1"
-      self.by-version."junk"."0.2.2"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."mout"."0.9.1"
-      self.by-version."nopt"."2.1.2"
-      self.by-version."lru-cache"."2.5.0"
-      self.by-version."open"."0.0.5"
-      self.by-version."osenv"."0.0.3"
-      self.by-version."promptly"."0.2.0"
-      self.by-version."q"."1.0.1"
-      self.by-version."request"."2.33.0"
-      self.by-version."request-progress"."0.3.1"
-      self.by-version."retry"."0.6.0"
-      self.by-version."rimraf"."2.2.6"
-      self.by-version."semver"."2.2.1"
-      self.by-version."stringify-object"."0.2.0"
-      self.by-version."tar"."0.1.19"
-      self.by-version."tmp"."0.0.23"
-      self.by-version."update-notifier"."0.1.8"
-      self.by-version."which"."1.0.5"
-      self.by-version."p-throttler"."0.0.1"
-      self.by-version."insight"."0.3.1"
-      self.by-version."is-root"."0.1.0"
-      self.by-version."shell-quote"."1.4.1"
-      self.by-version."lockfile"."0.4.2"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "bower" ];
-  };
-  "bower" = self.by-version."bower"."1.3.2";
-  by-spec."bower".">=0.9.0" =
-    self.by-version."bower"."1.3.2";
-  by-spec."bower".">=1.2.8 <2" =
-    self.by-version."bower"."1.3.2";
-  by-spec."bower"."~1.2.0" =
-    self.by-version."bower"."1.2.8";
-  by-version."bower"."1.2.8" = lib.makeOverridable self.buildNodePackage {
-    name = "bower-1.2.8";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/bower/-/bower-1.2.8.tgz";
-        name = "bower-1.2.8.tgz";
-        sha1 = "f63c0804a267d5ffaf2fd3fd488367e73dce202f";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."bower" or []);
-    deps = [
-      self.by-version."abbrev"."1.0.5"
-      self.by-version."archy"."0.0.2"
-      self.by-version."bower-config"."0.5.0"
-      self.by-version."bower-endpoint-parser"."0.2.1"
-      self.by-version."bower-json"."0.4.0"
-      self.by-version."bower-logger"."0.2.2"
-      self.by-version."bower-registry-client"."0.1.6"
-      self.by-version."cardinal"."0.4.4"
-      self.by-version."chalk"."0.2.1"
-      self.by-version."chmodr"."0.1.0"
-      self.by-version."decompress-zip"."0.0.6"
-      self.by-version."fstream"."0.1.25"
-      self.by-version."fstream-ignore"."0.0.7"
-      self.by-version."glob"."3.2.9"
-      self.by-version."graceful-fs"."2.0.3"
-      self.by-version."handlebars"."1.0.12"
-      self.by-version."inquirer"."0.3.5"
-      self.by-version."junk"."0.2.2"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."mout"."0.7.1"
-      self.by-version."nopt"."2.1.2"
-      self.by-version."lru-cache"."2.3.1"
-      self.by-version."open"."0.0.5"
-      self.by-version."osenv"."0.0.3"
-      self.by-version."promptly"."0.2.0"
-      self.by-version."q"."0.9.7"
-      self.by-version."request"."2.27.0"
-      self.by-version."request-progress"."0.3.1"
-      self.by-version."retry"."0.6.0"
-      self.by-version."rimraf"."2.2.6"
-      self.by-version."semver"."2.1.0"
-      self.by-version."stringify-object"."0.1.8"
-      self.by-version."sudo-block"."0.2.1"
-      self.by-version."tar"."0.1.19"
-      self.by-version."tmp"."0.0.23"
-      self.by-version."update-notifier"."0.1.8"
-      self.by-version."which"."1.0.5"
-      self.by-version."p-throttler"."0.0.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "bower" ];
-  };
-  by-spec."bower-config"."~0.4.3" =
-    self.by-version."bower-config"."0.4.5";
-  by-version."bower-config"."0.4.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bower-config-0.4.5";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/bower-config/-/bower-config-0.4.5.tgz";
-        name = "bower-config-0.4.5.tgz";
-        sha1 = "baa7cee382f53b13bb62a4afaee7c05f20143c13";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."bower-config" or []);
-    deps = [
-      self.by-version."graceful-fs"."2.0.3"
-      self.by-version."mout"."0.6.0"
-      self.by-version."optimist"."0.6.1"
-      self.by-version."osenv"."0.0.3"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "bower-config" ];
-  };
-  by-spec."bower-config"."~0.5.0" =
-    self.by-version."bower-config"."0.5.0";
-  by-version."bower-config"."0.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bower-config-0.5.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/bower-config/-/bower-config-0.5.0.tgz";
-        name = "bower-config-0.5.0.tgz";
-        sha1 = "d081d43008816b1beb876dee272219851dd4c89c";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."bower-config" or []);
-    deps = [
-      self.by-version."graceful-fs"."2.0.3"
-      self.by-version."mout"."0.6.0"
-      self.by-version."optimist"."0.6.1"
-      self.by-version."osenv"."0.0.3"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "bower-config" ];
-  };
-  by-spec."bower-endpoint-parser"."0.2.1" =
-    self.by-version."bower-endpoint-parser"."0.2.1";
-  by-version."bower-endpoint-parser"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bower-endpoint-parser-0.2.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/bower-endpoint-parser/-/bower-endpoint-parser-0.2.1.tgz";
-        name = "bower-endpoint-parser-0.2.1.tgz";
-        sha1 = "8c4010a2900cdab07ea5d38f0bd03e9bbccef90f";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."bower-endpoint-parser" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "bower-endpoint-parser" ];
-  };
-  by-spec."bower-endpoint-parser"."~0.2.0" =
-    self.by-version."bower-endpoint-parser"."0.2.1";
-  by-spec."bower-json"."0.4.0" =
-    self.by-version."bower-json"."0.4.0";
-  by-version."bower-json"."0.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bower-json-0.4.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/bower-json/-/bower-json-0.4.0.tgz";
-        name = "bower-json-0.4.0.tgz";
-        sha1 = "a99c3ccf416ef0590ed0ded252c760f1c6d93766";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."bower-json" or []);
-    deps = [
-      self.by-version."deep-extend"."0.2.8"
-      self.by-version."graceful-fs"."2.0.3"
-      self.by-version."intersect"."0.0.3"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "bower-json" ];
-  };
-  by-spec."bower-json"."~0.4.0" =
-    self.by-version."bower-json"."0.4.0";
-  by-spec."bower-logger"."0.2.1" =
-    self.by-version."bower-logger"."0.2.1";
-  by-version."bower-logger"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bower-logger-0.2.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/bower-logger/-/bower-logger-0.2.1.tgz";
-        name = "bower-logger-0.2.1.tgz";
-        sha1 = "0c1817c48063a88d96cc3d516c55e57fff5d9ecb";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."bower-logger" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "bower-logger" ];
-  };
-  by-spec."bower-logger"."~0.2.1" =
-    self.by-version."bower-logger"."0.2.2";
-  by-version."bower-logger"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bower-logger-0.2.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/bower-logger/-/bower-logger-0.2.2.tgz";
-        name = "bower-logger-0.2.2.tgz";
-        sha1 = "39be07e979b2fc8e03a94634205ed9422373d381";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."bower-logger" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "bower-logger" ];
-  };
-  by-spec."bower-logger"."~0.2.2" =
-    self.by-version."bower-logger"."0.2.2";
-  by-spec."bower-registry-client"."~0.1.4" =
-    self.by-version."bower-registry-client"."0.1.6";
-  by-version."bower-registry-client"."0.1.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bower-registry-client-0.1.6";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/bower-registry-client/-/bower-registry-client-0.1.6.tgz";
-        name = "bower-registry-client-0.1.6.tgz";
-        sha1 = "c3ae74a98f24f50a373bbcb0ef443558be01d4b7";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."bower-registry-client" or []);
-    deps = [
-      self.by-version."async"."0.2.10"
-      self.by-version."bower-config"."0.4.5"
-      self.by-version."graceful-fs"."2.0.3"
-      self.by-version."lru-cache"."2.3.1"
-      self.by-version."request"."2.27.0"
-      self.by-version."request-replay"."0.2.0"
-      self.by-version."rimraf"."2.2.6"
-      self.by-version."mkdirp"."0.3.5"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "bower-registry-client" ];
-  };
-  by-spec."bower2nix"."*" =
-    self.by-version."bower2nix"."2.1.0";
-  by-version."bower2nix"."2.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "bower2nix-2.1.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/bower2nix/-/bower2nix-2.1.0.tgz";
-        name = "bower2nix-2.1.0.tgz";
-        sha1 = "213f507a729b20a1c3cb48f995a034f9c05f53e6";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."bower2nix" or []);
-    deps = [
-      self.by-version."temp"."0.6.0"
-      self.by-version."fs.extra"."1.2.1"
-      self.by-version."bower-json"."0.4.0"
-      self.by-version."bower-endpoint-parser"."0.2.1"
-      self.by-version."bower-logger"."0.2.1"
-      self.by-version."bower"."1.3.2"
-      self.by-version."argparse"."0.1.15"
-      self.by-version."clone"."0.1.11"
-      self.by-version."semver"."2.2.1"
-      self.by-version."fetch-bower"."2.0.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "bower2nix" ];
-  };
-  "bower2nix" = self.by-version."bower2nix"."2.1.0";
   by-spec."broadway"."0.2.9" =
     self.by-version."broadway"."0.2.9";
   by-version."broadway"."0.2.9" = lib.makeOverridable self.buildNodePackage {
@@ -1689,204 +1437,147 @@
   };
   by-spec."broadway"."0.2.x" =
     self.by-version."broadway"."0.2.9";
-  by-spec."browser-pack"."~2.0.0" =
-    self.by-version."browser-pack"."2.0.1";
-  by-version."browser-pack"."2.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "browser-pack-2.0.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/browser-pack/-/browser-pack-2.0.1.tgz";
-        name = "browser-pack-2.0.1.tgz";
-        sha1 = "5d1c527f56c582677411c4db2a128648ff6bf150";
+        url = "http://registry.npmjs.org/browser-pack/-/browser-pack-3.1.1.tgz";
+        name = "browser-pack-3.1.1.tgz";
+        sha1 = "b7600f080d2a7ef1a276ef4c0485a358ba9d1215";
       })
     ];
     buildInputs =
       (self.nativeDeps."browser-pack" or []);
     deps = [
-      self.by-version."JSONStream"."0.6.4"
-      self.by-version."through"."2.3.4"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "browser-pack" ];
   };
-  by-spec."browser-resolve"."~1.2.1" =
-    self.by-version."browser-resolve"."1.2.4";
-  by-version."browser-resolve"."1.2.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-browser-resolve-1.2.4";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/browser-resolve/-/browser-resolve-1.2.4.tgz";
-        name = "browser-resolve-1.2.4.tgz";
-        sha1 = "59ae7820a82955ecd32f5fb7c468ac21c4723806";
+        url = "http://registry.npmjs.org/browser-resolve/-/browser-resolve-1.3.2.tgz";
+        name = "browser-resolve-1.3.2.tgz";
+        sha1 = "028417dd85828eea872c1bbb3e6609534545d20c";
       })
     ];
     buildInputs =
       (self.nativeDeps."browser-resolve" or []);
     deps = [
-      self.by-version."resolve"."0.6.3"
+      self.by-version."resolve"."0.7.4"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "browser-resolve" ];
   };
-  by-spec."browser-resolve"."~1.2.2" =
-    self.by-version."browser-resolve"."1.2.4";
+  by-spec."browser-resolve"."^1.3.1" =
+    self.by-version."browser-resolve"."1.3.2";
   by-spec."browserchannel"."*" =
-    self.by-version."browserchannel"."1.2.0";
-  by-version."browserchannel"."1.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-browserchannel-1.2.0";
+    self.by-version."browserchannel"."2.0.0";
+  by-version."browserchannel"."2.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-browserchannel-2.0.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/browserchannel/-/browserchannel-1.2.0.tgz";
-        name = "browserchannel-1.2.0.tgz";
-        sha1 = "207ce6eb844e00febfdf32084f10d4757cbcf97c";
+        url = "http://registry.npmjs.org/browserchannel/-/browserchannel-2.0.0.tgz";
+        name = "browserchannel-2.0.0.tgz";
+        sha1 = "0f211b3cad9995e8729b2bacd46b53c027c0ea63";
       })
     ];
     buildInputs =
       (self.nativeDeps."browserchannel" or []);
     deps = [
       self.by-version."hat"."0.0.3"
-      self.by-version."connect"."2.14.4"
-      self.by-version."request"."2.34.0"
+      self.by-version."connect"."2.25.7"
+      self.by-version."request"."2.40.0"
       self.by-version."ascii-json"."0.2.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "browserchannel" ];
   };
-  "browserchannel" = self.by-version."browserchannel"."1.2.0";
+  "browserchannel" = self.by-version."browserchannel"."2.0.0";
   by-spec."browserify"."*" =
-    self.by-version."browserify"."3.44.2";
-  by-version."browserify"."3.44.2" = lib.makeOverridable self.buildNodePackage {
-    name = "browserify-3.44.2";
+    self.by-version."browserify"."5.10.1";
+  by-version."browserify"."5.10.1" = lib.makeOverridable self.buildNodePackage {
+    name = "browserify-5.10.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/browserify/-/browserify-3.44.2.tgz";
-        name = "browserify-3.44.2.tgz";
-        sha1 = "ffa2788d06e8073ffd734d94c3ae272ca3dd630a";
+        url = "http://registry.npmjs.org/browserify/-/browserify-5.10.1.tgz";
+        name = "browserify-5.10.1.tgz";
+        sha1 = "a79cc8b647d6bfe25f96434ff8ecaeb5c01f6bae";
       })
     ];
     buildInputs =
       (self.nativeDeps."browserify" or []);
     deps = [
-      self.by-version."JSONStream"."0.7.2"
+      self.by-version."JSONStream"."0.8.4"
       self.by-version."assert"."1.1.1"
-      self.by-version."browser-pack"."2.0.1"
-      self.by-version."browser-resolve"."1.2.4"
+      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.1.13"
-      self.by-version."builtins"."0.0.3"
+      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.5"
-      self.by-version."console-browserify"."1.0.3"
+      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"."1.0.9"
-      self.by-version."deep-equal"."0.1.2"
+      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"."0.1.1"
-      self.by-version."derequire"."0.8.0"
-      self.by-version."domain-browser"."1.1.1"
-      self.by-version."duplexer"."0.1.1"
-      self.by-version."events"."1.0.0"
-      self.by-version."glob"."3.2.9"
-      self.by-version."http-browserify"."1.3.2"
+      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"."5.0.1"
-      self.by-version."module-deps"."1.10.0"
+      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.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.0"
-      self.by-version."resolve"."0.6.3"
+      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"."0.1.3"
+      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.0"
-      self.by-version."through2"."0.4.1"
-      self.by-version."timers-browserify"."1.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.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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "browserify" ];
   };
-  "browserify" = self.by-version."browserify"."3.44.2";
-  by-spec."browserify"."~3.38.0" =
-    self.by-version."browserify"."3.38.1";
-  by-version."browserify"."3.38.1" = lib.makeOverridable self.buildNodePackage {
-    name = "browserify-3.38.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/browserify/-/browserify-3.38.1.tgz";
-        name = "browserify-3.38.1.tgz";
-        sha1 = "4790937ec5b01f1c340e83521e36c4e3aaf3d7ba";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."browserify" or []);
-    deps = [
-      self.by-version."JSONStream"."0.7.2"
-      self.by-version."assert"."1.1.1"
-      self.by-version."browser-pack"."2.0.1"
-      self.by-version."browser-resolve"."1.2.4"
-      self.by-version."buffer"."2.1.13"
-      self.by-version."builtins"."0.0.3"
-      self.by-version."commondir"."0.0.1"
-      self.by-version."concat-stream"."1.4.5"
-      self.by-version."console-browserify"."1.0.3"
-      self.by-version."constants-browserify"."0.0.1"
-      self.by-version."crypto-browserify"."1.0.9"
-      self.by-version."deep-equal"."0.1.2"
-      self.by-version."defined"."0.0.0"
-      self.by-version."deps-sort"."0.1.1"
-      self.by-version."derequire"."0.8.0"
-      self.by-version."domain-browser"."1.1.1"
-      self.by-version."duplexer"."0.1.1"
-      self.by-version."events"."1.0.0"
-      self.by-version."glob"."3.2.9"
-      self.by-version."http-browserify"."1.3.2"
-      self.by-version."https-browserify"."0.0.0"
-      self.by-version."inherits"."2.0.1"
-      self.by-version."insert-module-globals"."5.0.1"
-      self.by-version."module-deps"."1.8.1"
-      self.by-version."os-browserify"."0.1.2"
-      self.by-version."parents"."0.0.2"
-      self.by-version."path-browserify"."0.0.0"
-      self.by-version."punycode"."1.2.4"
-      self.by-version."querystring-es3"."0.2.0"
-      self.by-version."resolve"."0.6.3"
-      self.by-version."shallow-copy"."0.0.1"
-      self.by-version."shell-quote"."0.0.1"
-      self.by-version."stream-browserify"."0.1.3"
-      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.0"
-      self.by-version."through2"."0.4.1"
-      self.by-version."timers-browserify"."1.0.1"
-      self.by-version."tty-browserify"."0.0.0"
-      self.by-version."umd"."2.0.0"
-      self.by-version."url"."0.7.9"
-      self.by-version."util"."0.10.3"
-      self.by-version."vm-browserify"."0.0.4"
-      self.by-version."zlib-browserify"."0.0.3"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "browserify" ];
-  };
-  by-spec."browserify-zlib"."~0.1.2" =
+  "browserify" = self.by-version."browserify"."5.10.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";
@@ -1900,12 +1591,14 @@
     buildInputs =
       (self.nativeDeps."browserify-zlib" or []);
     deps = [
-      self.by-version."pako"."0.2.0"
+      self.by-version."pako"."0.2.5"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "browserify-zlib" ];
   };
+  by-spec."browserify-zlib"."~0.1.2" =
+    self.by-version."browserify-zlib"."0.1.4";
   by-spec."bson"."0.1.8" =
     self.by-version."bson"."0.1.8";
   by-version."bson"."0.1.8" = lib.makeOverridable self.buildNodePackage {
@@ -1925,6 +1618,26 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/bson/-/bson-0.2.11.tgz";
+        name = "bson-0.2.11.tgz";
+        sha1 = "7a1b9df70b36a247ada83d795e566a049f78bbb8";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."bson" or []);
+    deps = [
+      self.by-version."nan"."1.2.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "bson" ];
+  };
   by-spec."bson"."0.2.2" =
     self.by-version."bson"."0.2.2";
   by-version."bson"."0.2.2" = lib.makeOverridable self.buildNodePackage {
@@ -1963,41 +1676,62 @@
     ];
     passthru.names = [ "bson" ];
   };
-  by-spec."bson"."0.2.7" =
-    self.by-version."bson"."0.2.7";
-  by-version."bson"."0.2.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bson-0.2.7";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/bson/-/bson-0.2.7.tgz";
-        name = "bson-0.2.7.tgz";
-        sha1 = "6793161c40e5a9757091d7ee7d52a4717950236b";
+        url = "http://registry.npmjs.org/bson/-/bson-0.2.9.tgz";
+        name = "bson-0.2.9.tgz";
+        sha1 = "ee3716a52c985ff3074b6ece3257c75ee12f3a05";
       })
     ];
     buildInputs =
       (self.nativeDeps."bson" or []);
     deps = [
-      self.by-version."nan"."0.8.0"
+      self.by-version."nan"."1.0.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "bson" ];
   };
-  by-spec."buffer"."~2.1.4" =
-    self.by-version."buffer"."2.1.13";
-  by-version."buffer"."2.1.13" = lib.makeOverridable self.buildNodePackage {
-    name = "node-buffer-2.1.13";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/buffer/-/buffer-2.1.13.tgz";
-        name = "buffer-2.1.13.tgz";
-        sha1 = "c88838ebf79f30b8b4a707788470bea8a62c2355";
+        url = "http://registry.npmjs.org/buffer/-/buffer-2.5.0.tgz";
+        name = "buffer-2.5.0.tgz";
+        sha1 = "ee451ce8cd122dc922027674338dcef9e0eadd9a";
       })
     ];
     buildInputs =
       (self.nativeDeps."buffer" or []);
     deps = [
-      self.by-version."base64-js"."0.0.6"
+      self.by-version."base64-js"."0.0.7"
+      self.by-version."ieee754"."1.1.3"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "buffer" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/buffer/-/buffer-2.3.4.tgz";
+        name = "buffer-2.3.4.tgz";
+        sha1 = "7e4af5a23c15e13fcbfd5c5a1ec974cb61668a4c";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."buffer" or []);
+    deps = [
+      self.by-version."base64-js"."0.0.7"
       self.by-version."ieee754"."1.1.3"
     ];
     peerDependencies = [
@@ -2042,27 +1776,27 @@
     ];
     passthru.names = [ "buffer-crc32" ];
   };
-  by-spec."buffer-crc32"."~0.2.1" =
-    self.by-version."buffer-crc32"."0.2.1";
-  by-spec."buffers"."~0.1.1" =
-    self.by-version."buffers"."0.1.1";
-  by-version."buffers"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-buffers-0.1.1";
+  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/buffers/-/buffers-0.1.1.tgz";
-        name = "buffers-0.1.1.tgz";
-        sha1 = "b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb";
+        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."buffers" or []);
+      (self.nativeDeps."buffer-crc32" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "buffers" ];
+    passthru.names = [ "buffer-crc32" ];
   };
+  by-spec."buffer-crc32"."~0.2.1" =
+    self.by-version."buffer-crc32"."0.2.3";
   by-spec."buffertools"."*" =
     self.by-version."buffertools"."2.1.2";
   by-version."buffertools"."2.1.2" = lib.makeOverridable self.buildNodePackage {
@@ -2103,14 +1837,14 @@
     passthru.names = [ "buffertools" ];
   };
   by-spec."builtins"."~0.0.3" =
-    self.by-version."builtins"."0.0.3";
-  by-version."builtins"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/builtins/-/builtins-0.0.3.tgz";
-        name = "builtins-0.0.3.tgz";
-        sha1 = "5d006166da71610bc2bcf73019f0f0cc43309755";
+        url = "http://registry.npmjs.org/builtins/-/builtins-0.0.5.tgz";
+        name = "builtins-0.0.5.tgz";
+        sha1 = "86dd881f9862856e62fd7ed7767b438c4d79b7ab";
       })
     ];
     buildInputs =
@@ -2142,26 +1876,6 @@
     ];
     passthru.names = [ "bunyan" ];
   };
-  by-spec."bytebuffer".">=2.2 <3" =
-    self.by-version."bytebuffer"."2.3.1";
-  by-version."bytebuffer"."2.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bytebuffer-2.3.1";
-    src = [
-      (self.patchSource fetchurl {
-        url = "http://registry.npmjs.org/bytebuffer/-/bytebuffer-2.3.1.tgz";
-        name = "bytebuffer-2.3.1.tgz";
-        sha1 = "17c2c290bfed534b06aadd6513aa5a0096ca2639";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."bytebuffer" or []);
-    deps = [
-      self.by-version."long"."1.1.2"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "bytebuffer" ];
-  };
   by-spec."bytes"."0.1.0" =
     self.by-version."bytes"."0.1.0";
   by-version."bytes"."0.1.0" = lib.makeOverridable self.buildNodePackage {
@@ -2219,15 +1933,15 @@
     ];
     passthru.names = [ "bytes" ];
   };
-  by-spec."bytes"."0.3.0" =
-    self.by-version."bytes"."0.3.0";
-  by-version."bytes"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bytes-0.3.0";
+  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-0.3.0.tgz";
-        name = "bytes-0.3.0.tgz";
-        sha1 = "78e2e0e28c7f9c7b988ea8aee0db4d5fa9941935";
+        url = "http://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz";
+        name = "bytes-1.0.0.tgz";
+        sha1 = "3569ede8ba34315fab99c3e92cb04c7220de1fa8";
       })
     ];
     buildInputs =
@@ -2238,12 +1952,10 @@
     ];
     passthru.names = [ "bytes" ];
   };
-  by-spec."bytes"."~0.2.0" =
-    self.by-version."bytes"."0.2.1";
+  by-spec."bytes"."1.0.0" =
+    self.by-version."bytes"."1.0.0";
   by-spec."bytes"."~0.2.1" =
     self.by-version."bytes"."0.2.1";
-  by-spec."bytes"."~0.3.0" =
-    self.by-version."bytes"."0.3.0";
   by-spec."callsite"."~1.0.0" =
     self.by-version."callsite"."1.0.0";
   by-version."callsite"."1.0.0" = lib.makeOverridable self.buildNodePackage {
@@ -2263,27 +1975,6 @@
     ];
     passthru.names = [ "callsite" ];
   };
-  by-spec."cardinal"."~0.4.0" =
-    self.by-version."cardinal"."0.4.4";
-  by-version."cardinal"."0.4.4" = lib.makeOverridable self.buildNodePackage {
-    name = "cardinal-0.4.4";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/cardinal/-/cardinal-0.4.4.tgz";
-        name = "cardinal-0.4.4.tgz";
-        sha1 = "ca5bb68a5b511b90fe93b9acea49bdee5c32bfe2";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."cardinal" or []);
-    deps = [
-      self.by-version."redeyed"."0.4.4"
-      self.by-version."ansicolors"."0.2.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "cardinal" ];
-  };
   by-spec."chai"."*" =
     self.by-version."chai"."1.9.1";
   by-version."chai"."1.9.1" = lib.makeOverridable self.buildNodePackage {
@@ -2306,26 +1997,6 @@
     passthru.names = [ "chai" ];
   };
   "chai" = self.by-version."chai"."1.9.1";
-  by-spec."chainsaw"."~0.1.0" =
-    self.by-version."chainsaw"."0.1.0";
-  by-version."chainsaw"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-chainsaw-0.1.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz";
-        name = "chainsaw-0.1.0.tgz";
-        sha1 = "5eab50b28afe58074d0d58291388828b5e5fbc98";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."chainsaw" or []);
-    deps = [
-      self.by-version."traverse"."0.3.9"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "chainsaw" ];
-  };
   by-spec."chalk"."^0.4.0" =
     self.by-version."chalk"."0.4.0";
   by-version."chalk"."0.4.0" = lib.makeOverridable self.buildNodePackage {
@@ -2348,71 +2019,53 @@
     ];
     passthru.names = [ "chalk" ];
   };
-  by-spec."chalk"."~0.1.1" =
-    self.by-version."chalk"."0.1.1";
-  by-version."chalk"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-chalk-0.1.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/chalk/-/chalk-0.1.1.tgz";
-        name = "chalk-0.1.1.tgz";
-        sha1 = "fe6d90ae2c270424720c87ed92d36490b7d36ea0";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."chalk" or []);
-    deps = [
-      self.by-version."has-color"."0.1.7"
-      self.by-version."ansi-styles"."0.1.2"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "chalk" ];
-  };
-  by-spec."chalk"."~0.2.0" =
-    self.by-version."chalk"."0.2.1";
-  by-version."chalk"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-chalk-0.2.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/chalk/-/chalk-0.2.1.tgz";
-        name = "chalk-0.2.1.tgz";
-        sha1 = "7613e1575145b21386483f7f485aa5ffa8cbd10c";
+        url = "http://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz";
+        name = "chalk-0.5.1.tgz";
+        sha1 = "663b3a648b68b55d04690d49167aa837858f2174";
       })
     ];
     buildInputs =
       (self.nativeDeps."chalk" or []);
     deps = [
-      self.by-version."has-color"."0.1.7"
-      self.by-version."ansi-styles"."0.2.0"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "chalk" ];
   };
-  by-spec."chalk"."~0.3.0" =
-    self.by-version."chalk"."0.3.0";
-  by-version."chalk"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-chalk-0.3.0";
+  by-spec."chalk"."^0.5.1" =
+    self.by-version."chalk"."0.5.1";
+  by-spec."chalk"."~0.4.0" =
+    self.by-version."chalk"."0.4.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/chalk/-/chalk-0.3.0.tgz";
-        name = "chalk-0.3.0.tgz";
-        sha1 = "1c98437737f1199ebcc1d4c48fd41b9f9c8e8f23";
+        url = "http://registry.npmjs.org/char-spinner/-/char-spinner-1.0.1.tgz";
+        name = "char-spinner-1.0.1.tgz";
+        sha1 = "e6ea67bd247e107112983b7ab0479ed362800081";
       })
     ];
     buildInputs =
-      (self.nativeDeps."chalk" or []);
+      (self.nativeDeps."char-spinner" or []);
     deps = [
-      self.by-version."has-color"."0.1.7"
-      self.by-version."ansi-styles"."0.2.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "chalk" ];
+    passthru.names = [ "char-spinner" ];
   };
-  by-spec."chalk"."~0.4.0" =
-    self.by-version."chalk"."0.4.0";
   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 {
@@ -2432,72 +2085,6 @@
     ];
     passthru.names = [ "character-parser" ];
   };
-  by-spec."cheerio"."~0.12.0" =
-    self.by-version."cheerio"."0.12.4";
-  by-version."cheerio"."0.12.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cheerio-0.12.4";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/cheerio/-/cheerio-0.12.4.tgz";
-        name = "cheerio-0.12.4.tgz";
-        sha1 = "c199626e9e1eb0d4233a91a4793e7f8aaa69a18b";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."cheerio" or []);
-    deps = [
-      self.by-version."cheerio-select"."0.0.3"
-      self.by-version."htmlparser2"."3.1.4"
-      self.by-version."underscore"."1.4.4"
-      self.by-version."entities"."0.5.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "cheerio" ];
-  };
-  by-spec."cheerio"."~0.13.0" =
-    self.by-version."cheerio"."0.13.1";
-  by-version."cheerio"."0.13.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cheerio-0.13.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/cheerio/-/cheerio-0.13.1.tgz";
-        name = "cheerio-0.13.1.tgz";
-        sha1 = "48af1134561b3527f83d9156c4f9a8ebd82b06ec";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."cheerio" or []);
-    deps = [
-      self.by-version."htmlparser2"."3.4.0"
-      self.by-version."underscore"."1.5.2"
-      self.by-version."entities"."0.5.0"
-      self.by-version."CSSselect"."0.4.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "cheerio" ];
-  };
-  by-spec."cheerio-select"."*" =
-    self.by-version."cheerio-select"."0.0.3";
-  by-version."cheerio-select"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cheerio-select-0.0.3";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/cheerio-select/-/cheerio-select-0.0.3.tgz";
-        name = "cheerio-select-0.0.3.tgz";
-        sha1 = "3f2420114f3ccb0b1b075c245ccfaae5d617a388";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."cheerio-select" or []);
-    deps = [
-      self.by-version."CSSselect"."0.7.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "cheerio-select" ];
-  };
   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 {
@@ -2537,20 +2124,20 @@
     passthru.names = [ "chmodr" ];
   };
   by-spec."chokidar".">=0.8.2" =
-    self.by-version."chokidar"."0.8.2";
-  by-version."chokidar"."0.8.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/chokidar/-/chokidar-0.8.2.tgz";
-        name = "chokidar-0.8.2.tgz";
-        sha1 = "767e2509aaa040fd8a23cc46225a783dc1bfc899";
+        url = "http://registry.npmjs.org/chokidar/-/chokidar-0.8.4.tgz";
+        name = "chokidar-0.8.4.tgz";
+        sha1 = "3b2b5066817086534ba81a092bdcf4be25b8bee0";
       })
     ];
     buildInputs =
       (self.nativeDeps."chokidar" or []);
     deps = [
-      self.by-version."fsevents"."0.2.0"
+      self.by-version."fsevents"."0.2.1"
       self.by-version."recursive-readdir"."0.0.2"
     ];
     peerDependencies = [
@@ -2576,46 +2163,6 @@
     ];
     passthru.names = [ "chownr" ];
   };
-  by-spec."circular-json"."0.1.x" =
-    self.by-version."circular-json"."0.1.6";
-  by-version."circular-json"."0.1.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-circular-json-0.1.6";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/circular-json/-/circular-json-0.1.6.tgz";
-        name = "circular-json-0.1.6.tgz";
-        sha1 = "fd692b65f8bce4f2900bea14f74ad681ab294c7f";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."circular-json" or []);
-    deps = [
-      self.by-version."wru"."0.2.7"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "circular-json" ];
-  };
-  by-spec."class-extend"."~0.1.0" =
-    self.by-version."class-extend"."0.1.1";
-  by-version."class-extend"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-class-extend-0.1.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/class-extend/-/class-extend-0.1.1.tgz";
-        name = "class-extend-0.1.1.tgz";
-        sha1 = "0feb1e59f4ace7bc163b509745f3282c4c7e528a";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."class-extend" or []);
-    deps = [
-      self.by-version."lodash"."2.4.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "class-extend" ];
-  };
   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 {
@@ -2636,72 +2183,46 @@
     ];
     passthru.names = [ "clean-css" ];
   };
-  by-spec."clean-css"."~2.1.0" =
-    self.by-version."clean-css"."2.1.8";
-  by-spec."cli"."0.4.x" =
-    self.by-version."cli"."0.4.5";
-  by-version."cli"."0.4.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cli-0.4.5";
+  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/cli/-/cli-0.4.5.tgz";
-        name = "cli-0.4.5.tgz";
-        sha1 = "78f9485cd161b566e9a6c72d7170c4270e81db61";
+        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."cli" or []);
-    deps = [
-      self.by-version."glob"."3.2.9"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "cli" ];
-  };
-  by-spec."cli-color"."*" =
-    self.by-version."cli-color"."0.2.3";
-  by-version."cli-color"."0.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cli-color-0.2.3";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/cli-color/-/cli-color-0.2.3.tgz";
-        name = "cli-color-0.2.3.tgz";
-        sha1 = "0a25ceae5a6a1602be7f77d28563c36700274e88";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."cli-color" or []);
+      (self.nativeDeps."clean-css" or []);
     deps = [
-      self.by-version."es5-ext"."0.9.2"
-      self.by-version."memoizee"."0.2.6"
+      self.by-version."commander"."2.2.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "cli-color" ];
+    passthru.names = [ "clean-css" ];
   };
-  by-spec."cli-color"."~0.2.2" =
-    self.by-version."cli-color"."0.2.3";
-  by-spec."cli-color"."~0.2.3" =
-    self.by-version."cli-color"."0.2.3";
-  by-spec."cli-log"."~0.0.8" =
-    self.by-version."cli-log"."0.0.8";
-  by-version."cli-log"."0.0.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cli-log-0.0.8";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/cli-log/-/cli-log-0.0.8.tgz";
-        name = "cli-log-0.0.8.tgz";
-        sha1 = "af738d7f5fcda8aab21bd4dbcd904ee5137c1ad0";
+        url = "http://registry.npmjs.org/cli/-/cli-0.6.3.tgz";
+        name = "cli-0.6.3.tgz";
+        sha1 = "31418ed08d60a1b02cf180c6d6fee3204bfe65cd";
       })
     ];
     buildInputs =
-      (self.nativeDeps."cli-log" or []);
+      (self.nativeDeps."cli" or []);
     deps = [
-      self.by-version."cli-color"."0.2.3"
+      self.by-version."glob"."3.2.11"
+      self.by-version."exit"."0.1.2"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "cli-log" ];
+    passthru.names = [ "cli" ];
   };
   by-spec."cliff"."0.1.8" =
     self.by-version."cliff"."0.1.8";
@@ -2725,25 +2246,6 @@
     ];
     passthru.names = [ "cliff" ];
   };
-  by-spec."clone"."0.1.11" =
-    self.by-version."clone"."0.1.11";
-  by-version."clone"."0.1.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-clone-0.1.11";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/clone/-/clone-0.1.11.tgz";
-        name = "clone-0.1.11.tgz";
-        sha1 = "408b7d1773eb0dfbf2ddb156c1c47170c17e3a96";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."clone" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "clone" ];
-  };
   by-spec."clone"."0.1.5" =
     self.by-version."clone"."0.1.5";
   by-version."clone"."0.1.5" = lib.makeOverridable self.buildNodePackage {
@@ -2782,27 +2284,88 @@
     ];
     passthru.names = [ "clone" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz";
+        name = "clone-stats-0.0.1.tgz";
+        sha1 = "b88f94a82cf38b8791d58046ea4029ad88ca99d1";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."clone-stats" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "clone-stats" ];
+  };
   by-spec."cmd-shim"."~1.1.1" =
-    self.by-version."cmd-shim"."1.1.1";
-  by-version."cmd-shim"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/cmd-shim/-/cmd-shim-1.1.1.tgz";
-        name = "cmd-shim-1.1.1.tgz";
-        sha1 = "348b292db32ed74c8283fcf6c48549b84c6658a7";
+        url = "http://registry.npmjs.org/cmd-shim/-/cmd-shim-1.1.2.tgz";
+        name = "cmd-shim-1.1.2.tgz";
+        sha1 = "e4f9198802e361e8eb43b591959ef4dc6cdb6754";
       })
     ];
     buildInputs =
       (self.nativeDeps."cmd-shim" or []);
     deps = [
-      self.by-version."mkdirp"."0.3.5"
+      self.by-version."mkdirp"."0.5.0"
       self.by-version."graceful-fs"."2.0.3"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "cmd-shim" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/cmdln/-/cmdln-1.3.2.tgz";
+        name = "cmdln-1.3.2.tgz";
+        sha1 = "46a7b362166875cdafe7bc3fe6c73e4644dc6884";
+      })
+    ];
+    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"
+    ];
+    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 {
@@ -2891,7 +2454,7 @@
     ];
     passthru.names = [ "coffee-script-redux" ];
   };
-  by-spec."collections"."^2.0.0" =
+  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";
@@ -2905,21 +2468,21 @@
     buildInputs =
       (self.nativeDeps."collections" or []);
     deps = [
-      self.by-version."weak-map"."1.0.4"
+      self.by-version."weak-map"."1.0.5"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "collections" ];
   };
-  by-spec."color"."~0.5.0" =
-    self.by-version."color"."0.5.0";
-  by-version."color"."0.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-color-0.5.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/color/-/color-0.5.0.tgz";
-        name = "color-0.5.0.tgz";
-        sha1 = "4d283d8bfe4cbc7006de6b6d25a3c26f00e3ee6d";
+        url = "http://registry.npmjs.org/color/-/color-0.6.0.tgz";
+        name = "color-0.6.0.tgz";
+        sha1 = "53f4b27698e1fe42a19423dc092dd8ee529b4267";
       })
     ];
     buildInputs =
@@ -3011,43 +2574,24 @@
   };
   by-spec."colors"."0.x.x" =
     self.by-version."colors"."0.6.2";
-  by-spec."colors"."~0.6.0-1" =
-    self.by-version."colors"."0.6.2";
   by-spec."colors"."~0.6.2" =
     self.by-version."colors"."0.6.2";
-  by-spec."colour"."*" =
-    self.by-version."colour"."0.7.1";
-  by-version."colour"."0.7.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-colour-0.7.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/colour/-/colour-0.7.1.tgz";
-        name = "colour-0.7.1.tgz";
-        sha1 = "9cb169917ec5d12c0736d3e8685746df1cadf778";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."colour" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "colour" ];
-  };
-  by-spec."columnify"."0.1.2" =
-    self.by-version."columnify"."0.1.2";
-  by-version."columnify"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-columnify-0.1.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/columnify/-/columnify-0.1.2.tgz";
-        name = "columnify-0.1.2.tgz";
-        sha1 = "ab1a1f1e37b26ba4b87c6920fb717fe51c827042";
+        url = "http://registry.npmjs.org/columnify/-/columnify-1.1.0.tgz";
+        name = "columnify-1.1.0.tgz";
+        sha1 = "0b908e6d4f1c80194358a1933aaf9dc49271c679";
       })
     ];
     buildInputs =
       (self.nativeDeps."columnify" or []);
     deps = [
+      self.by-version."strip-ansi"."0.2.2"
+      self.by-version."wcwidth.js"."0.0.4"
     ];
     peerDependencies = [
     ];
@@ -3068,22 +2612,22 @@
       (self.nativeDeps."combine-source-map" or []);
     deps = [
       self.by-version."inline-source-map"."0.3.0"
-      self.by-version."convert-source-map"."0.3.3"
-      self.by-version."source-map"."0.1.33"
+      self.by-version."convert-source-map"."0.3.5"
+      self.by-version."source-map"."0.1.38"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "combine-source-map" ];
   };
   by-spec."combined-stream"."~0.0.4" =
-    self.by-version."combined-stream"."0.0.4";
-  by-version."combined-stream"."0.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/combined-stream/-/combined-stream-0.0.4.tgz";
-        name = "combined-stream-0.0.4.tgz";
-        sha1 = "2d1a43347dbe9515a4a2796732e5b88473840b22";
+        url = "http://registry.npmjs.org/combined-stream/-/combined-stream-0.0.5.tgz";
+        name = "combined-stream-0.0.5.tgz";
+        sha1 = "29ed76e5c9aad07c4acf9ca3d32601cce28697a2";
       })
     ];
     buildInputs =
@@ -3114,26 +2658,6 @@
     ];
     passthru.names = [ "commander" ];
   };
-  by-spec."commander"."1.2.x" =
-    self.by-version."commander"."1.2.0";
-  by-version."commander"."1.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-commander-1.2.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/commander/-/commander-1.2.0.tgz";
-        name = "commander-1.2.0.tgz";
-        sha1 = "fd5713bfa153c7d6cc599378a5ab4c45c535029e";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."commander" or []);
-    deps = [
-      self.by-version."keypress"."0.1.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "commander" ];
-  };
   by-spec."commander"."1.3.1" =
     self.by-version."commander"."1.3.1";
   by-version."commander"."1.3.1" = lib.makeOverridable self.buildNodePackage {
@@ -3214,8 +2738,46 @@
   };
   by-spec."commander"."2.1.x" =
     self.by-version."commander"."2.1.0";
-  by-spec."commander"."~0.6.1" =
-    self.by-version."commander"."0.6.1";
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/commander/-/commander-2.2.0.tgz";
+        name = "commander-2.2.0.tgz";
+        sha1 = "175ad4b9317f3ff615f201c1e57224f55a3e91df";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."commander" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "commander" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/commander/-/commander-2.3.0.tgz";
+        name = "commander-2.3.0.tgz";
+        sha1 = "fd430e889832ec353b9acd1de217c11cb3eef873";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."commander" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "commander" ];
+  };
+  by-spec."commander"."~2.0.0" =
+    self.by-version."commander"."2.0.0";
   by-spec."commander"."~2.1.0" =
     self.by-version."commander"."2.1.0";
   by-spec."commondir"."0.0.1" =
@@ -3237,15 +2799,34 @@
     ];
     passthru.names = [ "commondir" ];
   };
-  by-spec."compressible"."1.0.0" =
-    self.by-version."compressible"."1.0.0";
-  by-version."compressible"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-compressible-1.0.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/compressible/-/compressible-1.0.0.tgz";
-        name = "compressible-1.0.0.tgz";
-        sha1 = "f83e49c1cb61421753545125a8011d68b492427d";
+        url = "http://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz";
+        name = "component-emitter-1.1.2.tgz";
+        sha1 = "296594f2753daa63996d2af08d15a95116c9aec3";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."component-emitter" or []);
+    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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/compressible/-/compressible-1.1.1.tgz";
+        name = "compressible-1.1.1.tgz";
+        sha1 = "23b71ea90ea6c6a66289701a918182c24d0729ef";
       })
     ];
     buildInputs =
@@ -3256,52 +2837,57 @@
     ];
     passthru.names = [ "compressible" ];
   };
-  by-spec."compression"."1.0.0" =
-    self.by-version."compression"."1.0.0";
-  by-version."compression"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-compression-1.0.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/compression/-/compression-1.0.0.tgz";
-        name = "compression-1.0.0.tgz";
-        sha1 = "8aeb85d48db5145d38bc8b181b6352d8eab26020";
+        url = "http://registry.npmjs.org/compression/-/compression-1.0.11.tgz";
+        name = "compression-1.0.11.tgz";
+        sha1 = "69700cf1ee8963454356ac192a6e5e91e232bffb";
       })
     ];
     buildInputs =
       (self.nativeDeps."compression" or []);
     deps = [
-      self.by-version."bytes"."0.2.1"
-      self.by-version."negotiator"."0.3.0"
-      self.by-version."compressible"."1.0.0"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "compression" ];
   };
   by-spec."concat-stream"."^1.4.1" =
-    self.by-version."concat-stream"."1.4.5";
-  by-version."concat-stream"."1.4.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-concat-stream-1.4.5";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/concat-stream/-/concat-stream-1.4.5.tgz";
-        name = "concat-stream-1.4.5.tgz";
-        sha1 = "cbf6ffd17c15d58f0baeacbb47d927cf566446a6";
+        url = "http://registry.npmjs.org/concat-stream/-/concat-stream-1.4.6.tgz";
+        name = "concat-stream-1.4.6.tgz";
+        sha1 = "8cb736a556a32f020f1ddc82fa3448381c5e5cce";
       })
     ];
     buildInputs =
       (self.nativeDeps."concat-stream" or []);
     deps = [
       self.by-version."inherits"."2.0.1"
-      self.by-version."typedarray"."0.0.5"
-      self.by-version."readable-stream"."1.1.13-1"
+      self.by-version."typedarray"."0.0.6"
+      self.by-version."readable-stream"."1.1.13"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "concat-stream" ];
   };
   by-spec."concat-stream"."~1.4.1" =
-    self.by-version."concat-stream"."1.4.5";
+    self.by-version."concat-stream"."1.4.6";
+  by-spec."concat-stream"."~1.4.5" =
+    self.by-version."concat-stream"."1.4.6";
   by-spec."config"."0.4.15" =
     self.by-version."config"."0.4.15";
   by-version."config"."0.4.15" = lib.makeOverridable self.buildNodePackage {
@@ -3338,8 +2924,8 @@
     buildInputs =
       (self.nativeDeps."config-chain" or []);
     deps = [
-      self.by-version."proto-list"."1.2.2"
-      self.by-version."ini"."1.1.0"
+      self.by-version."proto-list"."1.2.3"
+      self.by-version."ini"."1.2.1"
     ];
     peerDependencies = [
     ];
@@ -3347,33 +2933,54 @@
   };
   by-spec."config-chain"."~1.1.8" =
     self.by-version."config-chain"."1.1.8";
-  by-spec."configstore"."~0.2.1" =
-    self.by-version."configstore"."0.2.3";
-  by-version."configstore"."0.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-configstore-0.2.3";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/configstore/-/configstore-0.2.3.tgz";
-        name = "configstore-0.2.3.tgz";
-        sha1 = "b1bdc4ad823a25423dc15d220fcc1ae1d7efab02";
+        url = "http://registry.npmjs.org/configstore/-/configstore-0.3.1.tgz";
+        name = "configstore-0.3.1.tgz";
+        sha1 = "e1b4715994fe5f8e22e69b21d54c7a448339314d";
       })
     ];
     buildInputs =
       (self.nativeDeps."configstore" or []);
     deps = [
-      self.by-version."mkdirp"."0.3.5"
+      self.by-version."graceful-fs"."3.0.2"
       self.by-version."js-yaml"."3.0.2"
-      self.by-version."osenv"."0.0.3"
-      self.by-version."graceful-fs"."2.0.3"
+      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"
-      self.by-version."object-assign"."0.1.2"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "configstore" ];
   };
-  by-spec."configstore"."~0.2.2" =
-    self.by-version."configstore"."0.2.3";
+  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 {
@@ -3388,9 +2995,9 @@
     buildInputs =
       (self.nativeDeps."connect" or []);
     deps = [
-      self.by-version."qs"."0.6.6"
+      self.by-version."qs"."1.2.2"
       self.by-version."mime"."1.2.11"
-      self.by-version."formidable"."1.0.14"
+      self.by-version."formidable"."1.0.15"
     ];
     peerDependencies = [
     ];
@@ -3419,7 +3026,7 @@
       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."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"
@@ -3429,42 +3036,49 @@
     ];
     passthru.names = [ "connect" ];
   };
-  by-spec."connect"."2.14.1" =
-    self.by-version."connect"."2.14.1";
-  by-version."connect"."2.14.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-2.14.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/connect/-/connect-2.14.1.tgz";
-        name = "connect-2.14.1.tgz";
-        sha1 = "e6fd676a5735ca703a89eb970f3d283fadecc2c7";
+        url = "http://registry.npmjs.org/connect/-/connect-2.25.7.tgz";
+        name = "connect-2.25.7.tgz";
+        sha1 = "22a29ebf710c6379ca0e20f0974c268a15ec4d29";
       })
     ];
     buildInputs =
       (self.nativeDeps."connect" or []);
     deps = [
       self.by-version."basic-auth-connect"."1.0.0"
-      self.by-version."cookie-parser"."1.0.1"
-      self.by-version."cookie-signature"."1.0.3"
-      self.by-version."compression"."1.0.0"
-      self.by-version."connect-timeout"."1.0.0"
-      self.by-version."csurf"."1.0.0"
-      self.by-version."errorhandler"."1.0.0"
-      self.by-version."express-session"."1.0.2"
+      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."method-override"."1.0.0"
-      self.by-version."morgan"."1.0.0"
-      self.by-version."qs"."0.6.6"
-      self.by-version."response-time"."1.0.0"
-      self.by-version."serve-index"."1.0.1"
-      self.by-version."serve-static"."1.0.2"
-      self.by-version."static-favicon"."1.0.0"
-      self.by-version."vhost"."1.0.0"
-      self.by-version."bytes"."0.2.1"
+      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"
-      self.by-version."debug"."0.8.1"
-      self.by-version."raw-body"."1.1.3"
-      self.by-version."multiparty"."2.2.0"
     ];
     peerDependencies = [
     ];
@@ -3491,7 +3105,7 @@
       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"."0.8.1"
+      self.by-version."debug"."1.0.4"
     ];
     peerDependencies = [
     ];
@@ -3520,7 +3134,7 @@
       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"."0.8.1"
+      self.by-version."debug"."1.0.4"
     ];
     peerDependencies = [
     ];
@@ -3549,54 +3163,14 @@
       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"."0.8.1"
+      self.by-version."debug"."1.0.4"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "connect" ];
   };
   by-spec."connect"."~2" =
-    self.by-version."connect"."2.14.4";
-  by-version."connect"."2.14.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-2.14.4";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/connect/-/connect-2.14.4.tgz";
-        name = "connect-2.14.4.tgz";
-        sha1 = "40e74de3947a5278035c12f21535604555609a5a";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."connect" or []);
-    deps = [
-      self.by-version."basic-auth-connect"."1.0.0"
-      self.by-version."cookie-parser"."1.0.1"
-      self.by-version."cookie-signature"."1.0.3"
-      self.by-version."compression"."1.0.0"
-      self.by-version."connect-timeout"."1.0.0"
-      self.by-version."csurf"."1.1.0"
-      self.by-version."errorhandler"."1.0.0"
-      self.by-version."express-session"."1.0.2"
-      self.by-version."fresh"."0.2.2"
-      self.by-version."method-override"."1.0.0"
-      self.by-version."morgan"."1.0.0"
-      self.by-version."qs"."0.6.6"
-      self.by-version."response-time"."1.0.0"
-      self.by-version."setimmediate"."1.0.1"
-      self.by-version."serve-index"."1.0.1"
-      self.by-version."serve-static"."1.0.4"
-      self.by-version."static-favicon"."1.0.2"
-      self.by-version."vhost"."1.0.0"
-      self.by-version."bytes"."0.3.0"
-      self.by-version."pause"."0.0.1"
-      self.by-version."debug"."0.8.1"
-      self.by-version."raw-body"."1.1.3"
-      self.by-version."multiparty"."2.2.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "connect" ];
-  };
+    self.by-version."connect"."2.25.7";
   by-spec."connect"."~2.12.0" =
     self.by-version."connect"."2.12.0";
   by-version."connect"."2.12.0" = lib.makeOverridable self.buildNodePackage {
@@ -3684,7 +3258,7 @@
     buildInputs =
       (self.nativeDeps."connect-jade-static" or []);
     deps = [
-      self.by-version."jade"."1.3.1"
+      self.by-version."jade"."1.5.0"
     ];
     peerDependencies = [
     ];
@@ -3692,14 +3266,14 @@
   };
   "connect-jade-static" = self.by-version."connect-jade-static"."0.1.3";
   by-spec."connect-mongo"."*" =
-    self.by-version."connect-mongo"."0.4.0";
-  by-version."connect-mongo"."0.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-mongo-0.4.0";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/connect-mongo/-/connect-mongo-0.4.0.tgz";
-        name = "connect-mongo-0.4.0.tgz";
-        sha1 = "4cb33728334a8f10f2d9e43d31369dbc2f856336";
+        url = "http://registry.npmjs.org/connect-mongo/-/connect-mongo-0.4.1.tgz";
+        name = "connect-mongo-0.4.1.tgz";
+        sha1 = "01ed3e71558fb3f0fdc97b784ef974f9909ddd11";
       })
     ];
     buildInputs =
@@ -3711,22 +3285,24 @@
     ];
     passthru.names = [ "connect-mongo" ];
   };
-  "connect-mongo" = self.by-version."connect-mongo"."0.4.0";
-  by-spec."connect-timeout"."1.0.0" =
-    self.by-version."connect-timeout"."1.0.0";
-  by-version."connect-timeout"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-timeout-1.0.0";
+  "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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/connect-timeout/-/connect-timeout-1.0.0.tgz";
-        name = "connect-timeout-1.0.0.tgz";
-        sha1 = "12054799f90bb9566f8b274efe7842d6465d10bb";
+        url = "http://registry.npmjs.org/connect-timeout/-/connect-timeout-1.2.2.tgz";
+        name = "connect-timeout-1.2.2.tgz";
+        sha1 = "5953602bb66abfd5fa21ae911a7221c5e825a1c0";
       })
     ];
     buildInputs =
       (self.nativeDeps."connect-timeout" or []);
     deps = [
-      self.by-version."debug"."0.8.1"
+      self.by-version."debug"."1.0.4"
+      self.by-version."ms"."0.6.2"
+      self.by-version."on-headers"."1.0.0"
     ];
     peerDependencies = [
     ];
@@ -3751,44 +3327,28 @@
     ];
     passthru.names = [ "connection-parse" ];
   };
-  by-spec."console-browserify"."0.1.x" =
-    self.by-version."console-browserify"."0.1.6";
-  by-version."console-browserify"."0.1.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-console-browserify-0.1.6";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/console-browserify/-/console-browserify-0.1.6.tgz";
-        name = "console-browserify-0.1.6.tgz";
-        sha1 = "d128a3c0bb88350eb5626c6e7c71a6f0fd48983c";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."console-browserify" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "console-browserify" ];
-  };
-  by-spec."console-browserify"."~1.0.1" =
-    self.by-version."console-browserify"."1.0.3";
-  by-version."console-browserify"."1.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-console-browserify-1.0.3";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/console-browserify/-/console-browserify-1.0.3.tgz";
-        name = "console-browserify-1.0.3.tgz";
-        sha1 = "d3898d2c3a93102f364197f8874b4f92b5286a8e";
+        url = "http://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz";
+        name = "console-browserify-1.1.0.tgz";
+        sha1 = "f0241c45730a9fc6323b206dbf38edc741d0bb10";
       })
     ];
     buildInputs =
       (self.nativeDeps."console-browserify" or []);
     deps = [
+      self.by-version."date-now"."0.1.4"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "console-browserify" ];
   };
+  by-spec."console-browserify"."^1.1.0" =
+    self.by-version."console-browserify"."1.1.0";
   by-spec."constantinople"."~1.0.1" =
     self.by-version."constantinople"."1.0.2";
   by-version."constantinople"."1.0.2" = lib.makeOverridable self.buildNodePackage {
@@ -3803,7 +3363,7 @@
     buildInputs =
       (self.nativeDeps."constantinople" or []);
     deps = [
-      self.by-version."uglify-js"."2.4.13"
+      self.by-version."uglify-js"."2.4.15"
     ];
     peerDependencies = [
     ];
@@ -3812,20 +3372,20 @@
   by-spec."constantinople"."~1.0.2" =
     self.by-version."constantinople"."1.0.2";
   by-spec."constantinople"."~2.0.0" =
-    self.by-version."constantinople"."2.0.0";
-  by-version."constantinople"."2.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/constantinople/-/constantinople-2.0.0.tgz";
-        name = "constantinople-2.0.0.tgz";
-        sha1 = "0558c3f340095a43acf2386149e5537074330e49";
+        url = "http://registry.npmjs.org/constantinople/-/constantinople-2.0.1.tgz";
+        name = "constantinople-2.0.1.tgz";
+        sha1 = "5829f856f301a9bdb107d935f77d8eb8ccec4c79";
       })
     ];
     buildInputs =
       (self.nativeDeps."constantinople" or []);
     deps = [
-      self.by-version."uglify-js"."2.4.13"
+      self.by-version."uglify-js"."2.4.15"
     ];
     peerDependencies = [
     ];
@@ -3851,14 +3411,14 @@
     passthru.names = [ "constants-browserify" ];
   };
   by-spec."convert-source-map"."~0.3.0" =
-    self.by-version."convert-source-map"."0.3.3";
-  by-version."convert-source-map"."0.3.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-convert-source-map-0.3.3";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.3.tgz";
-        name = "convert-source-map-0.3.3.tgz";
-        sha1 = "f77f130ded4e611d313a1bcf78f988990831c69b";
+        url = "http://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz";
+        name = "convert-source-map-0.3.5.tgz";
+        sha1 = "f1d802950af7dd2631a1febe0596550c86ab3190";
       })
     ];
     buildInputs =
@@ -3926,25 +3486,6 @@
     ];
     passthru.names = [ "cookie" ];
   };
-  by-spec."cookie"."0.1.1" =
-    self.by-version."cookie"."0.1.1";
-  by-version."cookie"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookie-0.1.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/cookie/-/cookie-0.1.1.tgz";
-        name = "cookie-0.1.1.tgz";
-        sha1 = "cbd4b537aa65f800b6c66ead2520ba8d6afbdf54";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."cookie" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "cookie" ];
-  };
   by-spec."cookie"."0.1.2" =
     self.by-version."cookie"."0.1.2";
   by-version."cookie"."0.1.2" = lib.makeOverridable self.buildNodePackage {
@@ -4002,29 +3543,29 @@
     ];
     passthru.names = [ "cookie-jar" ];
   };
-  by-spec."cookie-parser"."1.0.1" =
-    self.by-version."cookie-parser"."1.0.1";
-  by-version."cookie-parser"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookie-parser-1.0.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/cookie-parser/-/cookie-parser-1.0.1.tgz";
-        name = "cookie-parser-1.0.1.tgz";
-        sha1 = "17bd622c9717cd0858a912a9fef4c0362360a7b0";
+        url = "http://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.2.tgz";
+        name = "cookie-parser-1.3.2.tgz";
+        sha1 = "52211cc82c955d79ff0c088954407724e19cf562";
       })
     ];
     buildInputs =
       (self.nativeDeps."cookie-parser" or []);
     deps = [
-      self.by-version."cookie"."0.1.0"
-      self.by-version."cookie-signature"."1.0.3"
+      self.by-version."cookie"."0.1.2"
+      self.by-version."cookie-signature"."1.0.4"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "cookie-parser" ];
   };
-  by-spec."cookie-parser"."~1.0.1" =
-    self.by-version."cookie-parser"."1.0.1";
+  by-spec."cookie-parser"."~1.3.2" =
+    self.by-version."cookie-parser"."1.3.2";
   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 {
@@ -4082,6 +3623,25 @@
     ];
     passthru.names = [ "cookie-signature" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.4.tgz";
+        name = "cookie-signature-1.0.4.tgz";
+        sha1 = "0edd22286e3a111b9a2a70db363e925e867f6aca";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."cookie-signature" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "cookie-signature" ];
+  };
   by-spec."cookiejar"."1.3.0" =
     self.by-version."cookiejar"."1.3.0";
   by-version."cookiejar"."1.3.0" = lib.makeOverridable self.buildNodePackage {
@@ -4101,46 +3661,66 @@
     ];
     passthru.names = [ "cookiejar" ];
   };
-  by-spec."cookies".">= 0.2.2" =
-    self.by-version."cookies"."0.4.0";
-  by-version."cookies"."0.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-cookies-0.4.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/cookies/-/cookies-0.4.0.tgz";
-        name = "cookies-0.4.0.tgz";
-        sha1 = "c5d1f8b76217ed653135afe32bdad747c2fa9190";
+        url = "http://registry.npmjs.org/cookiejar/-/cookiejar-1.3.2.tgz";
+        name = "cookiejar-1.3.2.tgz";
+        sha1 = "61d3229e2da20c859032233502958a9b7df58249";
       })
     ];
     buildInputs =
-      (self.nativeDeps."cookies" or []);
+      (self.nativeDeps."cookiejar" or []);
     deps = [
-      self.by-version."keygrip"."1.0.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "cookies" ];
+    passthru.names = [ "cookiejar" ];
   };
-  by-spec."copy-paste"."~0.2.0" =
-    self.by-version."copy-paste"."0.2.0";
-  by-version."copy-paste"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-copy-paste-0.2.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/copy-paste/-/copy-paste-0.2.0.tgz";
-        name = "copy-paste-0.2.0.tgz";
-        sha1 = "6a83a3a073fc144adfa83cd03adb8db35953c424";
+        url = "http://registry.npmjs.org/cookiejar/-/cookiejar-2.0.1.tgz";
+        name = "cookiejar-2.0.1.tgz";
+        sha1 = "3d12752f6adf68a892f332433492bd5812bb668f";
       })
     ];
     buildInputs =
-      (self.nativeDeps."copy-paste" or []);
+      (self.nativeDeps."cookiejar" or []);
     deps = [
-      self.by-version."execSync"."1.0.1-pre"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "copy-paste" ];
+    passthru.names = [ "cookiejar" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/cookies/-/cookies-0.5.0.tgz";
+        name = "cookies-0.5.0.tgz";
+        sha1 = "164cac46a1d3ca3b3b87427414c24931d8381025";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."cookies" or []);
+    deps = [
+      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 {
@@ -4174,36 +3754,36 @@
     buildInputs =
       (self.nativeDeps."couch-login" or []);
     deps = [
-      self.by-version."request"."2.34.0"
+      self.by-version."request"."2.40.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "couch-login" ];
   };
   by-spec."coveralls"."*" =
-    self.by-version."coveralls"."2.10.0";
-  by-version."coveralls"."2.10.0" = lib.makeOverridable self.buildNodePackage {
-    name = "coveralls-2.10.0";
+    self.by-version."coveralls"."2.11.1";
+  by-version."coveralls"."2.11.1" = lib.makeOverridable self.buildNodePackage {
+    name = "coveralls-2.11.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/coveralls/-/coveralls-2.10.0.tgz";
-        name = "coveralls-2.10.0.tgz";
-        sha1 = "03f0c54070f30e0d336c79ef2b16a5c53728a7e5";
+        url = "http://registry.npmjs.org/coveralls/-/coveralls-2.11.1.tgz";
+        name = "coveralls-2.11.1.tgz";
+        sha1 = "fedc951296207cc5eb545476923e64f20cf7854d";
       })
     ];
     buildInputs =
       (self.nativeDeps."coveralls" or []);
     deps = [
       self.by-version."js-yaml"."3.0.1"
-      self.by-version."request"."2.16.2"
       self.by-version."lcov-parse"."0.0.6"
-      self.by-version."log-driver"."1.2.1"
+      self.by-version."log-driver"."1.2.4"
+      self.by-version."request"."2.36.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "coveralls" ];
   };
-  "coveralls" = self.by-version."coveralls"."2.10.0";
+  "coveralls" = self.by-version."coveralls"."2.11.1";
   by-spec."crc"."0.2.0" =
     self.by-version."crc"."0.2.0";
   by-version."crc"."0.2.0" = lib.makeOverridable self.buildNodePackage {
@@ -4223,6 +3803,27 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/crc32-stream/-/crc32-stream-0.2.0.tgz";
+        name = "crc32-stream-0.2.0.tgz";
+        sha1 = "5c80d480c8682f904b6f15530dbbe0b8c063dbbe";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."crc32-stream" or []);
+    deps = [
+      self.by-version."readable-stream"."1.0.31"
+      self.by-version."buffer-crc32"."0.2.3"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "crc32-stream" ];
+  };
   by-spec."crossroads"."~0.12.0" =
     self.by-version."crossroads"."0.12.0";
   by-version."crossroads"."0.12.0" = lib.makeOverridable self.buildNodePackage {
@@ -4302,20 +3903,22 @@
     ];
     passthru.names = [ "crypto" ];
   };
-  by-spec."crypto-browserify"."~1.0.9" =
-    self.by-version."crypto-browserify"."1.0.9";
-  by-version."crypto-browserify"."1.0.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-crypto-browserify-1.0.9";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz";
-        name = "crypto-browserify-1.0.9.tgz";
-        sha1 = "cc5449685dfb85eb11c9828acc7cb87ab5bbfcc0";
+        url = "http://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.0.1.tgz";
+        name = "crypto-browserify-3.0.1.tgz";
+        sha1 = "770fd68e8422f9b1e53d6812f1c2ce2ea7ab917c";
       })
     ];
     buildInputs =
       (self.nativeDeps."crypto-browserify" or []);
     deps = [
+      self.by-version."ripemd160"."0.2.0"
+      self.by-version."sha.js"."2.1.7"
     ];
     peerDependencies = [
     ];
@@ -4340,6 +3943,29 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/csrf-tokens/-/csrf-tokens-2.0.0.tgz";
+        name = "csrf-tokens-2.0.0.tgz";
+        sha1 = "c821003fb8b6ad17bc977d6fd1a84bedc3ed619b";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "csrf-tokens" ];
+  };
   by-spec."css"."~1.0.8" =
     self.by-version."css"."1.0.8";
   by-version."css"."1.0.8" = lib.makeOverridable self.buildNodePackage {
@@ -4418,42 +4044,23 @@
     ];
     passthru.names = [ "css-stringify" ];
   };
-  by-spec."csurf"."1.0.0" =
-    self.by-version."csurf"."1.0.0";
-  by-version."csurf"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-csurf-1.0.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/csurf/-/csurf-1.0.0.tgz";
-        name = "csurf-1.0.0.tgz";
-        sha1 = "a68d5718b988032e270abf1f4b34f272753d745b";
+        url = "http://registry.npmjs.org/csurf/-/csurf-1.4.0.tgz";
+        name = "csurf-1.4.0.tgz";
+        sha1 = "035628ab6644d7709ac9d1adc78ef05a2d576efe";
       })
     ];
     buildInputs =
       (self.nativeDeps."csurf" or []);
     deps = [
-      self.by-version."uid2"."0.0.3"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "csurf" ];
-  };
-  by-spec."csurf"."1.1.0" =
-    self.by-version."csurf"."1.1.0";
-  by-version."csurf"."1.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-csurf-1.1.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/csurf/-/csurf-1.1.0.tgz";
-        name = "csurf-1.1.0.tgz";
-        sha1 = "5dd459df40df43b9eb828284d6d03132f42cb8b2";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."csurf" or []);
-    deps = [
-      self.by-version."uid2"."0.0.3"
-      self.by-version."scmp"."0.0.3"
+      self.by-version."cookie"."0.1.2"
+      self.by-version."cookie-signature"."1.0.4"
+      self.by-version."csrf-tokens"."2.0.0"
     ];
     peerDependencies = [
     ];
@@ -4516,24 +4123,64 @@
     ];
     passthru.names = [ "cycle" ];
   };
-  by-spec."dargs"."~0.1.0" =
-    self.by-version."dargs"."0.1.0";
-  by-version."dargs"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-dargs-0.1.0";
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/dashdash/-/dashdash-1.3.2.tgz";
+        name = "dashdash-1.3.2.tgz";
+        sha1 = "1e76d13fadf25f8f50e70212c98a25beb1b3b8eb";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."dashdash" or []);
+    deps = [
+      self.by-version."assert-plus"."0.1.2"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "dashdash" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/dashdash/-/dashdash-1.5.0.tgz";
+        name = "dashdash-1.5.0.tgz";
+        sha1 = "fa5aa8a9415a7c5c3928be18bd4975458e666452";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."dashdash" or []);
+    deps = [
+      self.by-version."assert-plus"."0.1.2"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "dashdash" ];
+  };
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/dargs/-/dargs-0.1.0.tgz";
-        name = "dargs-0.1.0.tgz";
-        sha1 = "2364ad9f441f976dcd5fe9961e21715665a5e3c3";
+        url = "http://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz";
+        name = "date-now-0.1.4.tgz";
+        sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b";
       })
     ];
     buildInputs =
-      (self.nativeDeps."dargs" or []);
+      (self.nativeDeps."date-now" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "dargs" ];
+    passthru.names = [ "date-now" ];
   };
   by-spec."dateformat"."1.0.2-1.2.3" =
     self.by-version."dateformat"."1.0.2-1.2.3";
@@ -4555,14 +4202,14 @@
     passthru.names = [ "dateformat" ];
   };
   by-spec."dateformat"."~1.0.6" =
-    self.by-version."dateformat"."1.0.7-1.2.3";
-  by-version."dateformat"."1.0.7-1.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/dateformat/-/dateformat-1.0.7-1.2.3.tgz";
-        name = "dateformat-1.0.7-1.2.3.tgz";
-        sha1 = "ebb561bb7214ee57a8dc2687adab1d555de9419c";
+        url = "http://registry.npmjs.org/dateformat/-/dateformat-1.0.8-1.2.3.tgz";
+        name = "dateformat-1.0.8-1.2.3.tgz";
+        sha1 = "5d60c5d574dc778a7f98139156c6cfc9d851d1e7";
       })
     ];
     buildInputs =
@@ -4574,19 +4221,20 @@
     passthru.names = [ "dateformat" ];
   };
   by-spec."debug"."*" =
-    self.by-version."debug"."0.8.1";
-  by-version."debug"."0.8.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-debug-0.8.1";
+    self.by-version."debug"."1.0.4";
+  by-version."debug"."1.0.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-debug-1.0.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/debug/-/debug-0.8.1.tgz";
-        name = "debug-0.8.1.tgz";
-        sha1 = "20ff4d26f5e422cb68a1bacbbb61039ad8c1c130";
+        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"
     ];
     peerDependencies = [
     ];
@@ -4630,68 +4278,77 @@
     ];
     passthru.names = [ "debug" ];
   };
-  by-spec."debug".">= 0.7.3 < 1" =
-    self.by-version."debug"."0.8.1";
-  by-spec."debug"."~0.7.0" =
-    self.by-version."debug"."0.7.4";
-  by-spec."debug"."~0.7.2" =
-    self.by-version."debug"."0.7.4";
-  by-spec."debug"."~0.8" =
-    self.by-version."debug"."0.8.1";
-  by-spec."decompress"."^0.2.0" =
-    self.by-version."decompress"."0.2.3";
-  by-version."decompress"."0.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "decompress-0.2.3";
+  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/decompress/-/decompress-0.2.3.tgz";
-        name = "decompress-0.2.3.tgz";
-        sha1 = "ad471a0fc51b7193b72f60c9e040ce1a7a4b9fcc";
+        url = "http://registry.npmjs.org/debug/-/debug-1.0.2.tgz";
+        name = "debug-1.0.2.tgz";
+        sha1 = "3849591c10cce648476c3c7c2e2e3416db5963c4";
       })
     ];
     buildInputs =
-      (self.nativeDeps."decompress" or []);
+      (self.nativeDeps."debug" or []);
     deps = [
-      self.by-version."adm-zip"."0.4.4"
-      self.by-version."extname"."0.1.2"
-      self.by-version."get-stdin"."0.1.0"
-      self.by-version."map-key"."0.1.1"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."nopt"."2.2.0"
-      self.by-version."rimraf"."2.2.6"
-      self.by-version."stream-combiner"."0.0.4"
-      self.by-version."tar"."0.1.19"
-      self.by-version."tempfile"."0.1.3"
+      self.by-version."ms"."0.6.2"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "decompress" ];
+    passthru.names = [ "debug" ];
   };
-  by-spec."decompress-zip"."~0.0.3" =
-    self.by-version."decompress-zip"."0.0.6";
-  by-version."decompress-zip"."0.0.6" = lib.makeOverridable self.buildNodePackage {
-    name = "decompress-zip-0.0.6";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/decompress-zip/-/decompress-zip-0.0.6.tgz";
-        name = "decompress-zip-0.0.6.tgz";
-        sha1 = "263ef05b304cdcd1172858af453561c53ae017bb";
+        url = "http://registry.npmjs.org/debug/-/debug-1.0.3.tgz";
+        name = "debug-1.0.3.tgz";
+        sha1 = "fc8c6b2d6002804b4081c0208e0f6460ba1fa3e4";
       })
     ];
     buildInputs =
-      (self.nativeDeps."decompress-zip" or []);
+      (self.nativeDeps."debug" or []);
+    deps = [
+      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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/debug/-/debug-0.8.1.tgz";
+        name = "debug-0.8.1.tgz";
+        sha1 = "20ff4d26f5e422cb68a1bacbbb61039ad8c1c130";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."debug" or []);
     deps = [
-      self.by-version."q"."1.0.1"
-      self.by-version."mkpath"."0.1.0"
-      self.by-version."binary"."0.3.0"
-      self.by-version."touch"."0.0.2"
-      self.by-version."readable-stream"."1.1.13-1"
-      self.by-version."nopt"."2.2.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "decompress-zip" ];
+    passthru.names = [ "debug" ];
   };
+  by-spec."debug"."^1.0.2" =
+    self.by-version."debug"."1.0.4";
+  by-spec."debug"."~0.7.2" =
+    self.by-version."debug"."0.7.4";
+  by-spec."debug"."~0.8" =
+    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."deep-eql"."0.1.3" =
     self.by-version."deep-eql"."0.1.3";
   by-version."deep-eql"."0.1.3" = lib.makeOverridable self.buildNodePackage {
@@ -4752,34 +4409,17 @@
   };
   by-spec."deep-equal"."~0.0.0" =
     self.by-version."deep-equal"."0.0.0";
-  by-spec."deep-equal"."~0.1.0" =
-    self.by-version."deep-equal"."0.1.2";
-  by-version."deep-equal"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-deep-equal-0.1.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/deep-equal/-/deep-equal-0.1.2.tgz";
-        name = "deep-equal-0.1.2.tgz";
-        sha1 = "b246c2b80a570a47c11be1d9bd1070ec878b87ce";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."deep-equal" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "deep-equal" ];
-  };
-  by-spec."deep-extend"."~0.2.5" =
-    self.by-version."deep-extend"."0.2.8";
-  by-version."deep-extend"."0.2.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-deep-extend-0.2.8";
+  by-spec."deep-equal"."~0.2.1" =
+    self.by-version."deep-equal"."0.2.1";
+  by-spec."deep-extend"."~0.2.10" =
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/deep-extend/-/deep-extend-0.2.8.tgz";
-        name = "deep-extend-0.2.8.tgz";
-        sha1 = "6d2893a805286e46d8243137c32fb991b50f4299";
+        url = "http://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz";
+        name = "deep-extend-0.2.11.tgz";
+        sha1 = "7a16ba69729132340506170494bc83f7076fe08f";
       })
     ];
     buildInputs =
@@ -4790,8 +4430,8 @@
     ];
     passthru.names = [ "deep-extend" ];
   };
-  by-spec."deep-extend"."~0.2.8" =
-    self.by-version."deep-extend"."0.2.8";
+  by-spec."deep-extend"."~0.2.5" =
+    self.by-version."deep-extend"."0.2.11";
   by-spec."deepmerge"."*" =
     self.by-version."deepmerge"."0.2.7";
   by-version."deepmerge"."0.2.7" = lib.makeOverridable self.buildNodePackage {
@@ -4831,6 +4471,26 @@
     ];
     passthru.names = [ "defined" ];
   };
+  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";
+    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";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."deflate-crc32-stream" or []);
+    deps = [
+      self.by-version."buffer-crc32"."0.2.3"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "deflate-crc32-stream" ];
+  };
   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 {
@@ -4850,51 +4510,107 @@
     ];
     passthru.names = [ "delayed-stream" ];
   };
-  by-spec."deps-sort"."~0.1.1" =
-    self.by-version."deps-sort"."0.1.1";
-  by-version."deps-sort"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "deps-sort-0.1.1";
+  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/deps-sort/-/deps-sort-0.1.1.tgz";
-        name = "deps-sort-0.1.1.tgz";
-        sha1 = "940d9da1f84a3891c7218ad240ec5ed6084bc8d6";
+        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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/depd/-/depd-0.3.0.tgz";
+        name = "depd-0.3.0.tgz";
+        sha1 = "11c9bc28e425325fbd8b38940beff69fa5326883";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."depd" or []);
+    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";
+    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."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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/deps-sort/-/deps-sort-1.3.5.tgz";
+        name = "deps-sort-1.3.5.tgz";
+        sha1 = "89dc3c323504080558f9909bf57df1f7837c5c6f";
       })
     ];
     buildInputs =
       (self.nativeDeps."deps-sort" or []);
     deps = [
-      self.by-version."through"."2.3.4"
-      self.by-version."JSONStream"."0.6.4"
-      self.by-version."minimist"."0.0.8"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "deps-sort" ];
   };
-  by-spec."derequire"."~0.8.0" =
-    self.by-version."derequire"."0.8.0";
-  by-version."derequire"."0.8.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-derequire-0.8.0";
+  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/derequire/-/derequire-0.8.0.tgz";
-        name = "derequire-0.8.0.tgz";
-        sha1 = "c1f7f1da2cede44adede047378f03f444e9c4c0d";
+        url = "http://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz";
+        name = "destroy-1.0.3.tgz";
+        sha1 = "b433b4724e71fd8551d9885174851c5fc377e2c9";
       })
     ];
     buildInputs =
-      (self.nativeDeps."derequire" or []);
+      (self.nativeDeps."destroy" or []);
     deps = [
-      self.by-version."estraverse"."1.5.0"
-      self.by-version."esrefactor"."0.1.0"
-      self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "derequire" ];
+    passthru.names = [ "destroy" ];
   };
-  by-spec."detective"."~3.1.0" =
+  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";
@@ -4915,6 +4631,45 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/dezalgo/-/dezalgo-1.0.0.tgz";
+        name = "dezalgo-1.0.0.tgz";
+        sha1 = "050bb723f18b5617b309f26c2dc8fe6f2573b6fc";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."dezalgo" or []);
+    deps = [
+      self.by-version."asap"."1.0.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "dezalgo" ];
+  };
   by-spec."di"."~0.0.1" =
     self.by-version."di"."0.0.1";
   by-version."di"."0.0.1" = lib.makeOverridable self.buildNodePackage {
@@ -4972,8 +4727,6 @@
     ];
     passthru.names = [ "diff" ];
   };
-  by-spec."diff"."~1.0.4" =
-    self.by-version."diff"."1.0.8";
   by-spec."diff"."~1.0.7" =
     self.by-version."diff"."1.0.8";
   by-spec."director"."1.1.10" =
@@ -4995,36 +4748,36 @@
     ];
     passthru.names = [ "director" ];
   };
-  by-spec."dkim-signer"."~0.1.0" =
-    self.by-version."dkim-signer"."0.1.0";
-  by-version."dkim-signer"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-dkim-signer-0.1.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/dkim-signer/-/dkim-signer-0.1.0.tgz";
-        name = "dkim-signer-0.1.0.tgz";
-        sha1 = "c57c29b238029fbb08622afc2729ad596bcb417b";
+        url = "http://registry.npmjs.org/dkim-signer/-/dkim-signer-0.1.2.tgz";
+        name = "dkim-signer-0.1.2.tgz";
+        sha1 = "2ff5d61c87d8fbff5a8b131cffc5ec3ba1c25553";
       })
     ];
     buildInputs =
       (self.nativeDeps."dkim-signer" or []);
     deps = [
       self.by-version."punycode"."1.2.4"
-      self.by-version."mimelib"."0.2.14"
+      self.by-version."mimelib"."0.2.17"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "dkim-signer" ];
   };
   by-spec."domain-browser"."~1.1.0" =
-    self.by-version."domain-browser"."1.1.1";
-  by-version."domain-browser"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-domain-browser-1.1.1";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/domain-browser/-/domain-browser-1.1.1.tgz";
-        name = "domain-browser-1.1.1.tgz";
-        sha1 = "0123c1b9afe3bb7c8a9e856177b2059440957de0";
+        url = "http://registry.npmjs.org/domain-browser/-/domain-browser-1.1.2.tgz";
+        name = "domain-browser-1.1.2.tgz";
+        sha1 = "5a21f30a29a9891533915061426974dc2f14e56b";
       })
     ];
     buildInputs =
@@ -5054,46 +4807,6 @@
     ];
     passthru.names = [ "domelementtype" ];
   };
-  by-spec."domhandler"."2.0" =
-    self.by-version."domhandler"."2.0.3";
-  by-version."domhandler"."2.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-domhandler-2.0.3";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/domhandler/-/domhandler-2.0.3.tgz";
-        name = "domhandler-2.0.3.tgz";
-        sha1 = "889f8df626403af0788e29d66d5d5c6f7ebf0fd6";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."domhandler" or []);
-    deps = [
-      self.by-version."domelementtype"."1.1.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "domhandler" ];
-  };
-  by-spec."domhandler"."2.1" =
-    self.by-version."domhandler"."2.1.0";
-  by-version."domhandler"."2.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-domhandler-2.1.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz";
-        name = "domhandler-2.1.0.tgz";
-        sha1 = "d2646f5e57f6c3bab11cf6cb05d3c0acf7412594";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."domhandler" or []);
-    deps = [
-      self.by-version."domelementtype"."1.1.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "domhandler" ];
-  };
   by-spec."domhandler"."2.2" =
     self.by-version."domhandler"."2.2.0";
   by-version."domhandler"."2.2.0" = lib.makeOverridable self.buildNodePackage {
@@ -5114,55 +4827,15 @@
     ];
     passthru.names = [ "domhandler" ];
   };
-  by-spec."domutils"."1.1" =
-    self.by-version."domutils"."1.1.6";
-  by-version."domutils"."1.1.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-domutils-1.1.6";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz";
-        name = "domutils-1.1.6.tgz";
-        sha1 = "bddc3de099b9a2efacc51c623f28f416ecc57485";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."domutils" or []);
-    deps = [
-      self.by-version."domelementtype"."1.1.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "domutils" ];
-  };
-  by-spec."domutils"."1.3" =
-    self.by-version."domutils"."1.3.0";
-  by-version."domutils"."1.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-domutils-1.3.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/domutils/-/domutils-1.3.0.tgz";
-        name = "domutils-1.3.0.tgz";
-        sha1 = "9ad4d59b5af6ca684c62fe6d768ef170e70df192";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."domutils" or []);
-    deps = [
-      self.by-version."domelementtype"."1.1.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "domutils" ];
-  };
-  by-spec."domutils"."1.4" =
-    self.by-version."domutils"."1.4.3";
-  by-version."domutils"."1.4.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-domutils-1.4.3";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz";
-        name = "domutils-1.4.3.tgz";
-        sha1 = "0865513796c6b306031850e175516baf80b72a6f";
+        url = "http://registry.npmjs.org/domutils/-/domutils-1.5.0.tgz";
+        name = "domutils-1.5.0.tgz";
+        sha1 = "bfa4ceb8b7ab6f9423fe59154e04da6cc3ff3949";
       })
     ];
     buildInputs =
@@ -5174,48 +4847,21 @@
     ];
     passthru.names = [ "domutils" ];
   };
-  by-spec."download"."~0.1.6" =
-    self.by-version."download"."0.1.16";
-  by-version."download"."0.1.16" = lib.makeOverridable self.buildNodePackage {
-    name = "download-0.1.16";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/download/-/download-0.1.16.tgz";
-        name = "download-0.1.16.tgz";
-        sha1 = "46783e7f590d1c0d49eb1915ab8941c74cb45e99";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."download" or []);
-    deps = [
-      self.by-version."decompress"."0.2.3"
-      self.by-version."each-async"."0.1.2"
-      self.by-version."get-stdin"."0.1.0"
-      self.by-version."get-urls"."0.1.1"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."nopt"."2.2.0"
-      self.by-version."request"."2.34.0"
-      self.by-version."through2"."0.4.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "download" ];
-  };
   by-spec."dox"."~0.4.4" =
-    self.by-version."dox"."0.4.4";
-  by-version."dox"."0.4.4" = lib.makeOverridable self.buildNodePackage {
-    name = "dox-0.4.4";
+    self.by-version."dox"."0.4.6";
+  by-version."dox"."0.4.6" = lib.makeOverridable self.buildNodePackage {
+    name = "dox-0.4.6";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/dox/-/dox-0.4.4.tgz";
-        name = "dox-0.4.4.tgz";
-        sha1 = "4f898abbb88cd879c7c49a4973abc95b7f384823";
+        url = "http://registry.npmjs.org/dox/-/dox-0.4.6.tgz";
+        name = "dox-0.4.6.tgz";
+        sha1 = "b1f53ccd1aa0d7f712fdca22124a666e3ed37215";
       })
     ];
     buildInputs =
       (self.nativeDeps."dox" or []);
     deps = [
-      self.by-version."github-flavored-markdown"."1.0.1"
+      self.by-version."marked"."0.3.2"
       self.by-version."commander"."0.6.1"
     ];
     peerDependencies = [
@@ -5260,34 +4906,37 @@
     ];
     passthru.names = [ "duplexer" ];
   };
-  by-spec."each-async"."^0.1.1" =
-    self.by-version."each-async"."0.1.2";
-  by-version."each-async"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-each-async-0.1.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/each-async/-/each-async-0.1.2.tgz";
-        name = "each-async-0.1.2.tgz";
-        sha1 = "d5b900bd92705ed5b8cad3307a6536adb0f134c6";
+        url = "http://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz";
+        name = "duplexer2-0.0.2.tgz";
+        sha1 = "c614dcf67e2fb14995a91711e5a617e8a60a31db";
       })
     ];
     buildInputs =
-      (self.nativeDeps."each-async" or []);
+      (self.nativeDeps."duplexer2" or []);
     deps = [
+      self.by-version."readable-stream"."1.1.13"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "each-async" ];
+    passthru.names = [ "duplexer2" ];
   };
-  by-spec."editor"."0.0.5" =
-    self.by-version."editor"."0.0.5";
-  by-version."editor"."0.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-editor-0.0.5";
+  by-spec."duplexer2"."~0.0.2" =
+    self.by-version."duplexer2"."0.0.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/editor/-/editor-0.0.5.tgz";
-        name = "editor-0.0.5.tgz";
-        sha1 = "8c38877781f2547011c1aeffdbe50cafcc59794a";
+        url = "http://registry.npmjs.org/editor/-/editor-0.1.0.tgz";
+        name = "editor-0.1.0.tgz";
+        sha1 = "542f4662c6a8c88e862fc11945e204e51981b9a1";
       })
     ];
     buildInputs =
@@ -5298,6 +4947,44 @@
     ];
     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";
+    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."ejs"."0.8.3" =
     self.by-version."ejs"."0.8.3";
   by-version."ejs"."0.8.3" = lib.makeOverridable self.buildNodePackage {
@@ -5336,54 +5023,55 @@
     ];
     passthru.names = [ "emitter-component" ];
   };
-  by-spec."emitter-component"."1.0.0" =
-    self.by-version."emitter-component"."1.0.0";
-  by-version."emitter-component"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-emitter-component-1.0.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/emitter-component/-/emitter-component-1.0.0.tgz";
-        name = "emitter-component-1.0.0.tgz";
-        sha1 = "f04dd18fc3dc3e9a74cbc0f310b088666e4c016f";
+        url = "http://registry.npmjs.org/encoding/-/encoding-0.1.8.tgz";
+        name = "encoding-0.1.8.tgz";
+        sha1 = "3c48d355f6f4da0545de88c6f2673ccf70df11e7";
       })
     ];
     buildInputs =
-      (self.nativeDeps."emitter-component" or []);
+      (self.nativeDeps."encoding" or []);
     deps = [
+      self.by-version."iconv-lite"."0.4.4"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "emitter-component" ];
+    passthru.names = [ "encoding" ];
   };
-  by-spec."encoding"."~0.1" =
-    self.by-version."encoding"."0.1.7";
-  by-version."encoding"."0.1.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-encoding-0.1.7";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/encoding/-/encoding-0.1.7.tgz";
-        name = "encoding-0.1.7.tgz";
-        sha1 = "25cc19b34e9225d120c2ea769f9136c91cecc908";
+        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";
       })
     ];
     buildInputs =
-      (self.nativeDeps."encoding" or []);
+      (self.nativeDeps."end-of-stream" or []);
     deps = [
-      self.by-version."iconv-lite"."0.2.11"
+      self.by-version."once"."1.3.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "encoding" ];
+    passthru.names = [ "end-of-stream" ];
   };
-  by-spec."entities"."0.x" =
-    self.by-version."entities"."0.5.0";
-  by-version."entities"."0.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-entities-0.5.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/entities/-/entities-0.5.0.tgz";
-        name = "entities-0.5.0.tgz";
-        sha1 = "f611cb5ae221050e0012c66979503fd7ae19cc49";
+        url = "http://registry.npmjs.org/entities/-/entities-1.0.0.tgz";
+        name = "entities-1.0.0.tgz";
+        sha1 = "b2987aa3821347fcde642b24fdfc9e4fb712bf26";
       })
     ];
     buildInputs =
@@ -5394,15 +5082,15 @@
     ];
     passthru.names = [ "entities" ];
   };
-  by-spec."envify"."~1.2.0" =
-    self.by-version."envify"."1.2.1";
-  by-version."envify"."1.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "envify-1.2.1";
+  by-spec."envify"."^2.0.0" =
+    self.by-version."envify"."2.0.1";
+  by-version."envify"."2.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "envify-2.0.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/envify/-/envify-1.2.1.tgz";
-        name = "envify-1.2.1.tgz";
-        sha1 = "ac34e3676f9035d59518fef57d9914a24a18767a";
+        url = "http://registry.npmjs.org/envify/-/envify-2.0.1.tgz";
+        name = "envify-2.0.1.tgz";
+        sha1 = "abab827e063efd8e6f4d485aa82b66688dd056b2";
       })
     ];
     buildInputs =
@@ -5417,43 +5105,45 @@
     ];
     passthru.names = [ "envify" ];
   };
-  by-spec."errorhandler"."1.0.0" =
-    self.by-version."errorhandler"."1.0.0";
-  by-version."errorhandler"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-errorhandler-1.0.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/errorhandler/-/errorhandler-1.0.0.tgz";
-        name = "errorhandler-1.0.0.tgz";
-        sha1 = "d74b37e8dc38c99afb3f5a79edcebaea022d042a";
+        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."errorhandler" or []);
+      (self.nativeDeps."error-inject" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "errorhandler" ];
+    passthru.names = [ "error-inject" ];
   };
-  by-spec."es5-ext"."~0.9.2" =
-    self.by-version."es5-ext"."0.9.2";
-  by-version."es5-ext"."0.9.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-es5-ext-0.9.2";
+  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/es5-ext/-/es5-ext-0.9.2.tgz";
-        name = "es5-ext-0.9.2.tgz";
-        sha1 = "d2e309d1f223b0718648835acf5b8823a8061f8a";
+        url = "http://registry.npmjs.org/errorhandler/-/errorhandler-1.1.1.tgz";
+        name = "errorhandler-1.1.1.tgz";
+        sha1 = "18defd436d8ca2efe0a2d886c5c4d6ee6d76d691";
       })
     ];
     buildInputs =
-      (self.nativeDeps."es5-ext" or []);
+      (self.nativeDeps."errorhandler" or []);
     deps = [
+      self.by-version."accepts"."1.0.7"
+      self.by-version."escape-html"."1.0.1"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "es5-ext" ];
+    passthru.names = [ "errorhandler" ];
   };
   by-spec."escape-html"."*" =
     self.by-version."escape-html"."1.0.1";
@@ -5477,24 +5167,45 @@
   "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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.1.tgz";
+        name = "escape-string-regexp-1.0.1.tgz";
+        sha1 = "78c76393afb84f102230d949a6125c7f3cf65904";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."escape-string-regexp" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "escape-string-regexp" ];
+  };
   by-spec."escodegen"."1.3.x" =
-    self.by-version."escodegen"."1.3.2";
-  by-version."escodegen"."1.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "escodegen-1.3.2";
+    self.by-version."escodegen"."1.3.3";
+  by-version."escodegen"."1.3.3" = lib.makeOverridable self.buildNodePackage {
+    name = "escodegen-1.3.3";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/escodegen/-/escodegen-1.3.2.tgz";
-        name = "escodegen-1.3.2.tgz";
-        sha1 = "bb0f434dbd594f2060639a79b4b06259dd5372de";
+        url = "http://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz";
+        name = "escodegen-1.3.3.tgz";
+        sha1 = "f024016f5a88e046fd12005055e939802e6c5f23";
       })
     ];
     buildInputs =
       (self.nativeDeps."escodegen" or []);
     deps = [
       self.by-version."esutils"."1.0.0"
-      self.by-version."estraverse"."1.5.0"
+      self.by-version."estraverse"."1.5.1"
       self.by-version."esprima"."1.1.1"
-      self.by-version."source-map"."0.1.33"
+      self.by-version."source-map"."0.1.38"
     ];
     peerDependencies = [
     ];
@@ -5516,7 +5227,7 @@
     deps = [
       self.by-version."esprima"."1.0.4"
       self.by-version."estraverse"."1.3.2"
-      self.by-version."source-map"."0.1.33"
+      self.by-version."source-map"."0.1.38"
     ];
     peerDependencies = [
     ];
@@ -5539,9 +5250,9 @@
       (self.nativeDeps."escodegen" or []);
     deps = [
       self.by-version."esprima"."1.0.4"
-      self.by-version."estraverse"."1.5.0"
+      self.by-version."estraverse"."1.5.1"
       self.by-version."esutils"."1.0.0"
-      self.by-version."source-map"."0.1.33"
+      self.by-version."source-map"."0.1.38"
     ];
     peerDependencies = [
     ];
@@ -5561,27 +5272,7 @@
     buildInputs =
       (self.nativeDeps."escope" or []);
     deps = [
-      self.by-version."estraverse"."1.5.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "escope" ];
-  };
-  by-spec."escope"."~0.0.13" =
-    self.by-version."escope"."0.0.16";
-  by-version."escope"."0.0.16" = lib.makeOverridable self.buildNodePackage {
-    name = "node-escope-0.0.16";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/escope/-/escope-0.0.16.tgz";
-        name = "escope-0.0.16.tgz";
-        sha1 = "418c7a0afca721dafe659193fd986283e746538f";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."escope" or []);
-    deps = [
-      self.by-version."estraverse"."1.5.0"
+      self.by-version."estraverse"."1.5.1"
     ];
     peerDependencies = [
     ];
@@ -5605,7 +5296,7 @@
       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.33"
+      self.by-version."source-map"."0.1.38"
       self.by-version."esshorten"."0.0.2"
       self.by-version."optimist"."0.6.1"
     ];
@@ -5613,15 +5304,15 @@
     ];
     passthru.names = [ "esmangle" ];
   };
-  by-spec."esprima"."1.1.x" =
-    self.by-version."esprima"."1.1.1";
-  by-version."esprima"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "esprima-1.1.1";
+  by-spec."esprima"."1.2.x" =
+    self.by-version."esprima"."1.2.2";
+  by-version."esprima"."1.2.2" = lib.makeOverridable self.buildNodePackage {
+    name = "esprima-1.2.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz";
-        name = "esprima-1.1.1.tgz";
-        sha1 = "5b6f1547f4d102e670e140c509be6771d6aeb549";
+        url = "http://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz";
+        name = "esprima-1.2.2.tgz";
+        sha1 = "76a0fd66fcfe154fd292667dc264019750b1657b";
       })
     ];
     buildInputs =
@@ -5657,51 +5348,44 @@
     self.by-version."esprima"."1.0.4";
   by-spec."esprima"."~1.1.1" =
     self.by-version."esprima"."1.1.1";
-  by-spec."esprima-fb"."3001.1.0-dev-harmony-fb" =
-    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";
+  by-version."esprima"."1.1.1" = lib.makeOverridable self.buildNodePackage {
+    name = "esprima-1.1.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz";
-        name = "esprima-fb-3001.1.0-dev-harmony-fb.tgz";
-        sha1 = "b77d37abcd38ea0b77426bb8bc2922ce6b426411";
+        url = "http://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz";
+        name = "esprima-1.1.1.tgz";
+        sha1 = "5b6f1547f4d102e670e140c509be6771d6aeb549";
       })
     ];
     buildInputs =
-      (self.nativeDeps."esprima-fb" or []);
+      (self.nativeDeps."esprima" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "esprima-fb" ];
+    passthru.names = [ "esprima" ];
   };
-  by-spec."esprima-fb"."^3001.1.0-dev-harmony-fb" =
-    self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb";
-  by-spec."esprima-fb"."~3001.1.0-dev-harmony-fb" =
+  by-spec."esprima-fb"."3001.1.0-dev-harmony-fb" =
     self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb";
-  by-spec."esrefactor"."~0.1.0" =
-    self.by-version."esrefactor"."0.1.0";
-  by-version."esrefactor"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-esrefactor-0.1.0";
+  by-version."esprima-fb"."3001.1.0-dev-harmony-fb" = lib.makeOverridable self.buildNodePackage {
+    name = "esprima-fb-3001.1.0-dev-harmony-fb";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/esrefactor/-/esrefactor-0.1.0.tgz";
-        name = "esrefactor-0.1.0.tgz";
-        sha1 = "d142795a282339ab81e936b5b7a21b11bf197b13";
+        url = "http://registry.npmjs.org/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz";
+        name = "esprima-fb-3001.1.0-dev-harmony-fb.tgz";
+        sha1 = "b77d37abcd38ea0b77426bb8bc2922ce6b426411";
       })
     ];
     buildInputs =
-      (self.nativeDeps."esrefactor" or []);
+      (self.nativeDeps."esprima-fb" or []);
     deps = [
-      self.by-version."esprima"."1.0.4"
-      self.by-version."estraverse"."0.0.4"
-      self.by-version."escope"."0.0.16"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "esrefactor" ];
+    passthru.names = [ "esprima-fb" ];
   };
+  by-spec."esprima-fb"."~3001.1.0-dev-harmony-fb" =
+    self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb";
   by-spec."esshorten"."~ 0.0.2" =
     self.by-version."esshorten"."0.0.2";
   by-version."esshorten"."0.0.2" = lib.makeOverridable self.buildNodePackage {
@@ -5724,14 +5408,14 @@
     passthru.names = [ "esshorten" ];
   };
   by-spec."estraverse".">= 0.0.2" =
-    self.by-version."estraverse"."1.5.0";
-  by-version."estraverse"."1.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-estraverse-1.5.0";
+    self.by-version."estraverse"."1.5.1";
+  by-version."estraverse"."1.5.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-estraverse-1.5.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/estraverse/-/estraverse-1.5.0.tgz";
-        name = "estraverse-1.5.0.tgz";
-        sha1 = "248ec3f0d4bf39a940109c92a05ceb56d59e53ee";
+        url = "http://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz";
+        name = "estraverse-1.5.1.tgz";
+        sha1 = "867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71";
       })
     ];
     buildInputs =
@@ -5780,29 +5464,10 @@
     ];
     passthru.names = [ "estraverse" ];
   };
-  by-spec."estraverse"."~0.0.4" =
-    self.by-version."estraverse"."0.0.4";
-  by-version."estraverse"."0.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-estraverse-0.0.4";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/estraverse/-/estraverse-0.0.4.tgz";
-        name = "estraverse-0.0.4.tgz";
-        sha1 = "01a0932dfee574684a598af5a67c3bf9b6428db2";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."estraverse" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "estraverse" ];
-  };
   by-spec."estraverse"."~1.3.0" =
     self.by-version."estraverse"."1.3.2";
   by-spec."estraverse"."~1.5.0" =
-    self.by-version."estraverse"."1.5.0";
+    self.by-version."estraverse"."1.5.1";
   by-spec."esutils"."~1.0.0" =
     self.by-version."esutils"."1.0.0";
   by-version."esutils"."1.0.0" = lib.makeOverridable self.buildNodePackage {
@@ -5822,26 +5487,6 @@
     ];
     passthru.names = [ "esutils" ];
   };
-  by-spec."event-emitter"."~0.2.2" =
-    self.by-version."event-emitter"."0.2.2";
-  by-version."event-emitter"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-event-emitter-0.2.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/event-emitter/-/event-emitter-0.2.2.tgz";
-        name = "event-emitter-0.2.2.tgz";
-        sha1 = "c81e3724eb55407c5a0d5ee3299411f700f54291";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."event-emitter" or []);
-    deps = [
-      self.by-version."es5-ext"."0.9.2"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "event-emitter" ];
-  };
   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 {
@@ -5882,14 +5527,14 @@
     passthru.names = [ "eventemitter2" ];
   };
   by-spec."eventemitter2"."~0.4.11" =
-    self.by-version."eventemitter2"."0.4.13";
-  by-version."eventemitter2"."0.4.13" = lib.makeOverridable self.buildNodePackage {
-    name = "node-eventemitter2-0.4.13";
+    self.by-version."eventemitter2"."0.4.14";
+  by-version."eventemitter2"."0.4.14" = lib.makeOverridable self.buildNodePackage {
+    name = "node-eventemitter2-0.4.14";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.13.tgz";
-        name = "eventemitter2-0.4.13.tgz";
-        sha1 = "0a8ab97f9c1b563361b8927f9e80606277509153";
+        url = "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz";
+        name = "eventemitter2-0.4.14.tgz";
+        sha1 = "8f61b75cde012b2e9eb284d4545583b5643b61ab";
       })
     ];
     buildInputs =
@@ -5901,16 +5546,35 @@
     passthru.names = [ "eventemitter2" ];
   };
   by-spec."eventemitter2"."~0.4.13" =
-    self.by-version."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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/eventemitter3/-/eventemitter3-0.1.4.tgz";
+        name = "eventemitter3-0.1.4.tgz";
+        sha1 = "da2be74b7a1a4760272e1390f975503be5cb7e24";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."eventemitter3" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "eventemitter3" ];
+  };
   by-spec."events"."~1.0.0" =
-    self.by-version."events"."1.0.0";
-  by-version."events"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/events/-/events-1.0.0.tgz";
-        name = "events-1.0.0.tgz";
-        sha1 = "63c0f80c74d1435e8eb03b54306a9d8e8f6f9da0";
+        url = "http://registry.npmjs.org/events/-/events-1.0.1.tgz";
+        name = "events-1.0.1.tgz";
+        sha1 = "386f6471cbb609e7925e7bfe7468634b9e069ac2";
       })
     ];
     buildInputs =
@@ -5957,38 +5621,18 @@
       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.8"
-      self.by-version."xml2js"."0.4.2"
+      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.5.1"
+      self.by-version."express"."3.16.7"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "everyauth" ];
   };
-  by-spec."execSync"."~1.0.0" =
-    self.by-version."execSync"."1.0.1-pre";
-  by-version."execSync"."1.0.1-pre" = lib.makeOverridable self.buildNodePackage {
-    name = "node-execSync-1.0.1-pre";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/execSync/-/execSync-1.0.1-pre.tgz";
-        name = "execSync-1.0.1-pre.tgz";
-        sha1 = "8fa8deb748eecdafe61feea49921bb9b7a410d1e";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."execSync" or []);
-    deps = [
-      self.by-version."temp"."0.5.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "execSync" ];
-  };
-  by-spec."exit"."0.1.x" =
+  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";
@@ -6007,45 +5651,52 @@
     ];
     passthru.names = [ "exit" ];
   };
+  by-spec."exit"."0.1.x" =
+    self.by-version."exit"."0.1.2";
   by-spec."exit"."~0.1.1" =
     self.by-version."exit"."0.1.2";
   by-spec."express"."*" =
-    self.by-version."express"."4.0.0";
-  by-version."express"."4.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-express-4.0.0";
+    self.by-version."express"."4.8.5";
+  by-version."express"."4.8.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-express-4.8.5";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/express/-/express-4.0.0.tgz";
-        name = "express-4.0.0.tgz";
-        sha1 = "274dc82933c9f574cc38a0ce5ea8172be9c6b094";
+        url = "http://registry.npmjs.org/express/-/express-4.8.5.tgz";
+        name = "express-4.8.5.tgz";
+        sha1 = "59cf7666c29bf7cb8545a1acd43dd81a52cb26d9";
       })
     ];
     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."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."cookie"."0.1.0"
-      self.by-version."buffer-crc32"."0.2.1"
+      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."methods"."0.1.0"
-      self.by-version."send"."0.2.0"
-      self.by-version."cookie-signature"."1.0.3"
+      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."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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "express" ];
   };
-  "express" = self.by-version."express"."4.0.0";
+  "express" = self.by-version."express"."4.8.5";
   by-spec."express"."2.5.11" =
     self.by-version."express"."2.5.11";
   by-version."express"."2.5.11" = lib.makeOverridable self.buildNodePackage {
@@ -6088,12 +5739,12 @@
       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.1"
+      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"."0.8.1"
+      self.by-version."debug"."1.0.4"
     ];
     peerDependencies = [
     ];
@@ -6123,45 +5774,52 @@
       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"."0.8.1"
+      self.by-version."debug"."1.0.4"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "express" ];
   };
   by-spec."express"."3.x" =
-    self.by-version."express"."3.5.1";
-  by-version."express"."3.5.1" = lib.makeOverridable self.buildNodePackage {
-    name = "express-3.5.1";
+    self.by-version."express"."3.16.7";
+  by-version."express"."3.16.7" = lib.makeOverridable self.buildNodePackage {
+    name = "express-3.16.7";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/express/-/express-3.5.1.tgz";
-        name = "express-3.5.1.tgz";
-        sha1 = "4b333e1117faca336a538f4c724140b9ce1a87e7";
+        url = "http://registry.npmjs.org/express/-/express-3.16.7.tgz";
+        name = "express-3.16.7.tgz";
+        sha1 = "788aab5d66e85060211d6fea08eb2986f2f2631c";
       })
     ];
     buildInputs =
       (self.nativeDeps."express" or []);
     deps = [
-      self.by-version."connect"."2.14.1"
+      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."mkdirp"."0.3.5"
-      self.by-version."cookie"."0.1.1"
-      self.by-version."buffer-crc32"."0.2.1"
+      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."methods"."0.1.0"
-      self.by-version."send"."0.2.0"
-      self.by-version."cookie-signature"."1.0.3"
+      self.by-version."cookie-signature"."1.0.4"
       self.by-version."merge-descriptors"."0.0.2"
-      self.by-version."debug"."0.8.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "express" ];
   };
   by-spec."express".">=3.0.0" =
-    self.by-version."express"."4.0.0";
+    self.by-version."express"."4.8.5";
   by-spec."express"."~3.1.1" =
     self.by-version."express"."3.1.2";
   by-version."express"."3.1.2" = lib.makeOverridable self.buildNodePackage {
@@ -6181,30 +5839,100 @@
       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.1"
+      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"."0.8.1"
+      self.by-version."debug"."1.0.4"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "express" ];
   };
-  by-spec."express"."~3.5" =
-    self.by-version."express"."3.5.1";
-  by-spec."express"."~4.0.0-rc4" =
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/express/-/express-4.0.0.tgz";
+        name = "express-4.0.0.tgz";
+        sha1 = "274dc82933c9f574cc38a0ce5ea8172be9c6b094";
+      })
+    ];
+    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"
+    ];
+    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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/express/-/express-4.4.5.tgz";
+        name = "express-4.4.5.tgz";
+        sha1 = "5f2f302f277187abd721c3a36e44d86c5e3f03eb";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "express" ];
+  };
   by-spec."express-form"."*" =
-    self.by-version."express-form"."0.12.2";
-  by-version."express-form"."0.12.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-express-form-0.12.2";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/express-form/-/express-form-0.12.2.tgz";
-        name = "express-form-0.12.2.tgz";
-        sha1 = "c23ed4f233df09a1c61bcc698b8e4089dda54c1a";
+        url = "http://registry.npmjs.org/express-form/-/express-form-0.12.3.tgz";
+        name = "express-form-0.12.3.tgz";
+        sha1 = "e3d944b892b621524925837bee0d658f84833139";
       })
     ];
     buildInputs =
@@ -6212,14 +5940,14 @@
     deps = [
       self.by-version."validator"."0.4.28"
       self.by-version."object-additions"."0.5.1"
-      self.by-version."async"."0.2.10"
+      self.by-version."async"."0.7.0"
     ];
     peerDependencies = [
-      self.by-version."express"."4.0.0"
+      self.by-version."express"."4.8.5"
     ];
     passthru.names = [ "express-form" ];
   };
-  "express-form" = self.by-version."express-form"."0.12.2";
+  "express-form" = self.by-version."express-form"."0.12.3";
   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 {
@@ -6239,76 +5967,82 @@
     ];
     passthru.names = [ "express-partials" ];
   };
-  by-spec."express-session"."1.0.2" =
-    self.by-version."express-session"."1.0.2";
-  by-version."express-session"."1.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-express-session-1.0.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/express-session/-/express-session-1.0.2.tgz";
-        name = "express-session-1.0.2.tgz";
-        sha1 = "004478c742561774411ceb79733155a56b6d49eb";
+        url = "http://registry.npmjs.org/express-session/-/express-session-1.6.5.tgz";
+        name = "express-session-1.6.5.tgz";
+        sha1 = "c4ca7740025fe4561f88041157931071f91e957b";
       })
     ];
     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"
-      self.by-version."cookie"."0.1.0"
-      self.by-version."cookie-signature"."1.0.3"
-      self.by-version."uid2"."0.0.3"
-      self.by-version."buffer-crc32"."0.2.1"
-      self.by-version."debug"."0.7.4"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "express-session" ];
   };
-  by-spec."express-session"."~1.0.2" =
-    self.by-version."express-session"."1.0.3";
-  by-version."express-session"."1.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-express-session-1.0.3";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/express-session/-/express-session-1.0.3.tgz";
-        name = "express-session-1.0.3.tgz";
-        sha1 = "a45ec65dda263f74f3b5b9c6da0ac74c36ac0639";
+        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."utils-merge"."1.0.0"
+      self.by-version."buffer-crc32"."0.2.3"
       self.by-version."cookie"."0.1.2"
-      self.by-version."cookie-signature"."1.0.3"
-      self.by-version."uid2"."0.0.3"
-      self.by-version."buffer-crc32"."0.2.1"
-      self.by-version."debug"."0.7.4"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "express-session" ];
   };
-  by-spec."ext-list"."^0.1.0" =
-    self.by-version."ext-list"."0.1.0";
-  by-version."ext-list"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ext-list-0.1.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/ext-list/-/ext-list-0.1.0.tgz";
-        name = "ext-list-0.1.0.tgz";
-        sha1 = "a266915887ed6b87056eeb76b8c29e61d84ebc39";
+        url = "http://registry.npmjs.org/extend/-/extend-1.3.0.tgz";
+        name = "extend-1.3.0.tgz";
+        sha1 = "d1516fb0ff5624d2ebf9123ea1dac5a1994004f8";
       })
     ];
     buildInputs =
-      (self.nativeDeps."ext-list" or []);
+      (self.nativeDeps."extend" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "ext-list" ];
+    passthru.names = [ "extend" ];
   };
-  by-spec."extend"."*" =
+  "extend" = self.by-version."extend"."1.3.0";
+  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";
@@ -6327,31 +6061,6 @@
     ];
     passthru.names = [ "extend" ];
   };
-  "extend" = self.by-version."extend"."1.2.1";
-  by-spec."extend"."~1.2.1" =
-    self.by-version."extend"."1.2.1";
-  by-spec."extname"."^0.1.1" =
-    self.by-version."extname"."0.1.2";
-  by-version."extname"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "extname-0.1.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/extname/-/extname-0.1.2.tgz";
-        name = "extname-0.1.2.tgz";
-        sha1 = "de821aa0f01449d4b4043d4aeefa89a456bf3239";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."extname" or []);
-    deps = [
-      self.by-version."ext-list"."0.1.0"
-      self.by-version."map-key"."0.1.1"
-      self.by-version."underscore.string"."2.3.3"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "extname" ];
-  };
   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 {
@@ -6445,59 +6154,15 @@
     buildInputs =
       (self.nativeDeps."faye-websocket" or []);
     deps = [
-      self.by-version."websocket-driver"."0.3.2"
+      self.by-version."websocket-driver"."0.3.5"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "faye-websocket" ];
   };
   "faye-websocket" = self.by-version."faye-websocket"."0.7.2";
-  by-spec."faye-websocket"."0.7.0" =
-    self.by-version."faye-websocket"."0.7.0";
-  by-version."faye-websocket"."0.7.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-faye-websocket-0.7.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/faye-websocket/-/faye-websocket-0.7.0.tgz";
-        name = "faye-websocket-0.7.0.tgz";
-        sha1 = "c16c50ec0d483357a8eafd1ec6fcc313d027f5be";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."faye-websocket" or []);
-    deps = [
-      self.by-version."websocket-driver"."0.3.2"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "faye-websocket" ];
-  };
-  by-spec."fetch-bower"."*" =
-    self.by-version."fetch-bower"."2.0.0";
-  by-version."fetch-bower"."2.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "fetch-bower-2.0.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/fetch-bower/-/fetch-bower-2.0.0.tgz";
-        name = "fetch-bower-2.0.0.tgz";
-        sha1 = "c027feb75a512001d1287bbfb3ffaafba67eb92f";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."fetch-bower" or []);
-    deps = [
-      self.by-version."bower-endpoint-parser"."0.2.1"
-      self.by-version."bower-logger"."0.2.1"
-      self.by-version."bower"."1.3.2"
-      self.by-version."glob"."3.2.9"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "fetch-bower" ];
-  };
-  "fetch-bower" = self.by-version."fetch-bower"."2.0.0";
-  by-spec."fetch-bower".">=2 <3" =
-    self.by-version."fetch-bower"."2.0.0";
+  by-spec."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 {
@@ -6514,40 +6179,57 @@
     deps = [
       self.by-version."colors"."0.6.2"
       self.by-version."keypress"."0.1.0"
-      self.by-version."sprintf"."0.1.3"
+      self.by-version."sprintf"."0.1.4"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "fields" ];
   };
-  by-spec."file-utils"."~0.1.1" =
-    self.by-version."file-utils"."0.1.5";
-  by-version."file-utils"."0.1.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-file-utils-0.1.5";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/file-utils/-/file-utils-0.1.5.tgz";
-        name = "file-utils-0.1.5.tgz";
-        sha1 = "dc8153c855387cb4dacb0a1725531fa444a6b48c";
+        url = "http://registry.npmjs.org/figures/-/figures-1.3.2.tgz";
+        name = "figures-1.3.2.tgz";
+        sha1 = "3ea3915639485d960acff99810086c161db82051";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."figures" or []);
+    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.1.0"
+      self.by-version."lodash"."2.4.1"
       self.by-version."iconv-lite"."0.2.11"
-      self.by-version."rimraf"."2.2.6"
-      self.by-version."glob"."3.2.9"
+      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"."0.1.9"
+      self.by-version."isbinaryfile"."2.0.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "file-utils" ];
   };
-  by-spec."file-utils"."~0.1.5" =
-    self.by-version."file-utils"."0.1.5";
   by-spec."fileset"."0.1.x" =
     self.by-version."fileset"."0.1.5";
   by-version."fileset"."0.1.5" = lib.makeOverridable self.buildNodePackage {
@@ -6562,52 +6244,52 @@
     buildInputs =
       (self.nativeDeps."fileset" or []);
     deps = [
-      self.by-version."minimatch"."0.2.14"
-      self.by-version."glob"."3.2.9"
+      self.by-version."minimatch"."0.4.0"
+      self.by-version."glob"."3.2.11"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "fileset" ];
   };
-  by-spec."findit".">=1.1.0 <2.0.0" =
-    self.by-version."findit"."1.1.1";
-  by-version."findit"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-findit-1.1.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/findit/-/findit-1.1.1.tgz";
-        name = "findit-1.1.1.tgz";
-        sha1 = "b460e2f7633d78ed2c217c77c4209ecacaf8262a";
+        url = "http://registry.npmjs.org/finalhandler/-/finalhandler-0.1.0.tgz";
+        name = "finalhandler-0.1.0.tgz";
+        sha1 = "da05bbc4f5f4a30c84ce1d91f3c154007c4e9daa";
       })
     ];
     buildInputs =
-      (self.nativeDeps."findit" or []);
+      (self.nativeDeps."finalhandler" or []);
     deps = [
+      self.by-version."debug"."1.0.4"
+      self.by-version."escape-html"."1.0.1"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "findit" ];
+    passthru.names = [ "finalhandler" ];
   };
-  by-spec."findup"."~0.1.3" =
-    self.by-version."findup"."0.1.5";
-  by-version."findup"."0.1.5" = lib.makeOverridable self.buildNodePackage {
-    name = "findup-0.1.5";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/findup/-/findup-0.1.5.tgz";
-        name = "findup-0.1.5.tgz";
-        sha1 = "8ad929a3393bac627957a7e5de4623b06b0e2ceb";
+        url = "http://registry.npmjs.org/findit/-/findit-1.2.0.tgz";
+        name = "findit-1.2.0.tgz";
+        sha1 = "f571a3a840749ae8b0cbf4bf43ced7659eec3ce8";
       })
     ];
     buildInputs =
-      (self.nativeDeps."findup" or []);
+      (self.nativeDeps."findit" or []);
     deps = [
-      self.by-version."colors"."0.6.2"
-      self.by-version."commander"."2.1.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "findup" ];
+    passthru.names = [ "findit" ];
   };
   by-spec."findup-sync"."~0.1.0" =
     self.by-version."findup-sync"."0.1.3";
@@ -6623,7 +6305,7 @@
     buildInputs =
       (self.nativeDeps."findup-sync" or []);
     deps = [
-      self.by-version."glob"."3.2.9"
+      self.by-version."glob"."3.2.11"
       self.by-version."lodash"."2.4.1"
     ];
     peerDependencies = [
@@ -6632,6 +6314,47 @@
   };
   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";
+    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";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."first-chunk-stream" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "first-chunk-stream" ];
+  };
   by-spec."flatiron"."*" =
     self.by-version."flatiron"."0.3.11";
   by-version."flatiron"."0.3.11" = lib.makeOverridable self.buildNodePackage {
@@ -6698,15 +6421,34 @@
     ];
     passthru.names = [ "forEachAsync" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/foreachasync/-/foreachasync-3.0.0.tgz";
+        name = "foreachasync-3.0.0.tgz";
+        sha1 = "5502987dc8714be3392097f32e0071c9dee07cf6";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."foreachasync" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "foreachasync" ];
+  };
   by-spec."forever"."*" =
-    self.by-version."forever"."0.11.0";
-  by-version."forever"."0.11.0" = lib.makeOverridable self.buildNodePackage {
-    name = "forever-0.11.0";
+    self.by-version."forever"."0.11.1";
+  by-version."forever"."0.11.1" = lib.makeOverridable self.buildNodePackage {
+    name = "forever-0.11.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/forever/-/forever-0.11.0.tgz";
-        name = "forever-0.11.0.tgz";
-        sha1 = "97de678915c64dacce2ccbfb94620723b308d44f";
+        url = "http://registry.npmjs.org/forever/-/forever-0.11.1.tgz";
+        name = "forever-0.11.1.tgz";
+        sha1 = "50ac8744c0a6e0c266524c4746397f74d6b09c5b";
       })
     ];
     buildInputs =
@@ -6729,7 +6471,7 @@
     ];
     passthru.names = [ "forever" ];
   };
-  "forever" = self.by-version."forever"."0.11.0";
+  "forever" = self.by-version."forever"."0.11.1";
   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 {
@@ -6769,14 +6511,14 @@
     passthru.names = [ "forever-agent" ];
   };
   by-spec."forever-monitor"."*" =
-    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";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/forever-monitor/-/forever-monitor-1.2.3.tgz";
-        name = "forever-monitor-1.2.3.tgz";
-        sha1 = "b27ac3acb6fdcc7315d6cd85830f2d004733028b";
+        url = "http://registry.npmjs.org/forever-monitor/-/forever-monitor-1.3.0.tgz";
+        name = "forever-monitor-1.3.0.tgz";
+        sha1 = "57e883da03ec0eb690ad4259afbccf22f609d52e";
       })
     ];
     buildInputs =
@@ -6793,7 +6535,7 @@
     ];
     passthru.names = [ "forever-monitor" ];
   };
-  "forever-monitor" = self.by-version."forever-monitor"."1.2.3";
+  "forever-monitor" = self.by-version."forever-monitor"."1.3.0";
   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 {
@@ -6821,6 +6563,73 @@
   };
   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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/forever-monitor/-/forever-monitor-1.2.3.tgz";
+        name = "forever-monitor-1.2.3.tgz";
+        sha1 = "b27ac3acb6fdcc7315d6cd85830f2d004733028b";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "forever-monitor" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/form-data/-/form-data-0.1.2.tgz";
+        name = "form-data-0.1.2.tgz";
+        sha1 = "1143c21357911a78dd7913b189b4bab5d5d57445";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "form-data" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/form-data/-/form-data-0.1.3.tgz";
+        name = "form-data-0.1.3.tgz";
+        sha1 = "4ee4346e6eb5362e8344a02075bd8dbd8c7373ea";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "form-data" ];
+  };
   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 {
@@ -6835,7 +6644,7 @@
     buildInputs =
       (self.nativeDeps."form-data" or []);
     deps = [
-      self.by-version."combined-stream"."0.0.4"
+      self.by-version."combined-stream"."0.0.5"
       self.by-version."mime"."1.2.11"
       self.by-version."async"."0.2.10"
     ];
@@ -6844,22 +6653,22 @@
     passthru.names = [ "form-data" ];
   };
   by-spec."form-data"."~0.1.0" =
-    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";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/form-data/-/form-data-0.1.2.tgz";
-        name = "form-data-0.1.2.tgz";
-        sha1 = "1143c21357911a78dd7913b189b4bab5d5d57445";
+        url = "http://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz";
+        name = "form-data-0.1.4.tgz";
+        sha1 = "91abd788aba9702b1aabfa8bc01031a2ac9e3b12";
       })
     ];
     buildInputs =
       (self.nativeDeps."form-data" or []);
     deps = [
-      self.by-version."combined-stream"."0.0.4"
+      self.by-version."combined-stream"."0.0.5"
       self.by-version."mime"."1.2.11"
-      self.by-version."async"."0.2.10"
+      self.by-version."async"."0.9.0"
     ];
     peerDependencies = [
     ];
@@ -6962,7 +6771,24 @@
     passthru.names = [ "formidable" ];
   };
   by-spec."formidable"."1.0.x" =
-    self.by-version."formidable"."1.0.14";
+    self.by-version."formidable"."1.0.15";
+  by-version."formidable"."1.0.15" = lib.makeOverridable self.buildNodePackage {
+    name = "node-formidable-1.0.15";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/formidable/-/formidable-1.0.15.tgz";
+        name = "formidable-1.0.15.tgz";
+        sha1 = "91363d59cc51ddca2be84ca0336ec0135606c155";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."formidable" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "formidable" ];
+  };
   by-spec."fresh"."0.1.0" =
     self.by-version."fresh"."0.1.0";
   by-version."fresh"."0.1.0" = lib.makeOverridable self.buildNodePackage {
@@ -7039,12 +6865,33 @@
       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.6"
+      self.by-version."rimraf"."2.2.8"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "fs-extra" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.1.tgz";
+        name = "fs-vacuum-1.2.1.tgz";
+        sha1 = "1bc3c62da30d6272569b8b9089c9811abb0a600b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."fs-vacuum" or []);
+    deps = [
+      self.by-version."graceful-fs"."3.0.2"
+      self.by-version."rimraf"."2.2.8"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "fs-vacuum" ];
+  };
   by-spec."fs-walk"."*" =
     self.by-version."fs-walk"."0.0.1";
   by-version."fs-walk"."0.0.1" = lib.makeOverridable self.buildNodePackage {
@@ -7059,7 +6906,7 @@
     buildInputs =
       (self.nativeDeps."fs-walk" or []);
     deps = [
-      self.by-version."async"."0.7.0"
+      self.by-version."async"."0.9.0"
     ];
     peerDependencies = [
     ];
@@ -7088,17 +6935,15 @@
     ];
     passthru.names = [ "fs.extra" ];
   };
-  by-spec."fs.extra".">=1.2.1 <2" =
-    self.by-version."fs.extra"."1.2.1";
-  by-spec."fsevents"."0.2.0" =
-    self.by-version."fsevents"."0.2.0";
-  by-version."fsevents"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fsevents-0.2.0";
+  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";
     src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/fsevents/-/fsevents-0.2.0.tgz";
-        name = "fsevents-0.2.0.tgz";
-        sha1 = "1de161da042818f45bfbe11a853da8e5c6ca5d83";
+      (fetchgit {
+        url = "git://github.com/pipobscure/fsevents.git";
+        rev = "7dcdf9fa3f8956610fd6f69f72c67bace2de7138";
+        sha256 = "cc89ed7e31ee7e387326c4f9a3668306bdb98ff9cbaff9d7f29e258e56584bfb";
       })
     ];
     buildInputs =
@@ -7111,210 +6956,121 @@
     passthru.names = [ "fsevents" ];
   };
   by-spec."fstream"."0" =
-    self.by-version."fstream"."0.1.25";
-  by-version."fstream"."0.1.25" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fstream-0.1.25";
+    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.25.tgz";
-        name = "fstream-0.1.25.tgz";
-        sha1 = "deef2db7c7898357c2b37202212a9e5b36abc732";
+        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."rimraf"."2.2.6"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."graceful-fs"."2.0.3"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "fstream" ];
   };
-  by-spec."fstream"."~0.1.17" =
-    self.by-version."fstream"."0.1.25";
-  by-spec."fstream"."~0.1.22" =
-    self.by-version."fstream"."0.1.25";
-  by-spec."fstream"."~0.1.25" =
-    self.by-version."fstream"."0.1.25";
-  by-spec."fstream"."~0.1.8" =
-    self.by-version."fstream"."0.1.25";
-  by-spec."fstream-ignore"."~0.0.5" =
-    self.by-version."fstream-ignore"."0.0.7";
-  by-version."fstream-ignore"."0.0.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fstream-ignore-0.0.7";
+  by-spec."fstream"."^1.0.0" =
+    self.by-version."fstream"."1.0.2";
+  by-version."fstream"."1.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-fstream-1.0.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.7.tgz";
-        name = "fstream-ignore-0.0.7.tgz";
-        sha1 = "eea3033f0c3728139de7b57ab1b0d6d89c353c63";
+        url = "http://registry.npmjs.org/fstream/-/fstream-1.0.2.tgz";
+        name = "fstream-1.0.2.tgz";
+        sha1 = "56930ff1b4d4d7b1a689c8656b3a11e744ab92c6";
       })
     ];
     buildInputs =
-      (self.nativeDeps."fstream-ignore" or []);
+      (self.nativeDeps."fstream" or []);
     deps = [
-      self.by-version."minimatch"."0.2.14"
-      self.by-version."fstream"."0.1.25"
+      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"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "fstream-ignore" ];
+    passthru.names = [ "fstream" ];
   };
-  by-spec."fstream-ignore"."~0.0.6" =
-    self.by-version."fstream-ignore"."0.0.7";
-  by-spec."fstream-npm"."~0.1.6" =
-    self.by-version."fstream-npm"."0.1.6";
-  by-version."fstream-npm"."0.1.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-fstream-npm-0.1.6";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/fstream-npm/-/fstream-npm-0.1.6.tgz";
-        name = "fstream-npm-0.1.6.tgz";
-        sha1 = "1369323075d9bd85cfcc9409f33f0d6fe5be104d";
+        url = "http://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.1.tgz";
+        name = "fstream-ignore-1.0.1.tgz";
+        sha1 = "153df36c4fa2cb006fb915dc71ac9d75f6a17c82";
       })
     ];
     buildInputs =
-      (self.nativeDeps."fstream-npm" or []);
+      (self.nativeDeps."fstream-ignore" or []);
     deps = [
-      self.by-version."fstream-ignore"."0.0.7"
+      self.by-version."fstream"."1.0.2"
       self.by-version."inherits"."2.0.1"
+      self.by-version."minimatch"."1.0.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "fstream-npm" ];
-  };
-  by-spec."generator-angular"."*" =
-    self.by-version."generator-angular"."0.8.0";
-  by-version."generator-angular"."0.8.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-generator-angular-0.8.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/generator-angular/-/generator-angular-0.8.0.tgz";
-        name = "generator-angular-0.8.0.tgz";
-        sha1 = "c2115b1a7a304b884b7f8857cade77dc36b63d13";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."generator-angular" or []);
-    deps = [
-      self.by-version."chalk"."0.4.0"
-      self.by-version."wiredep"."1.0.0"
-      self.by-version."yeoman-generator"."0.16.0"
-    ];
-    peerDependencies = [
-      self.by-version."generator-karma"."0.7.0"
-      self.by-version."yo"."1.1.2"
-    ];
-    passthru.names = [ "generator-angular" ];
-  };
-  "generator-angular" = self.by-version."generator-angular"."0.8.0";
-  by-spec."generator-karma".">=0.6.0" =
-    self.by-version."generator-karma"."0.7.0";
-  by-version."generator-karma"."0.7.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-generator-karma-0.7.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/generator-karma/-/generator-karma-0.7.0.tgz";
-        name = "generator-karma-0.7.0.tgz";
-        sha1 = "aaa2b6d8905b687343fe6a10b15279afd984048d";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."generator-karma" or []);
-    deps = [
-      self.by-version."yeoman-generator"."0.16.0"
-    ];
-    peerDependencies = [
-      self.by-version."yo"."1.1.2"
-    ];
-    passthru.names = [ "generator-karma" ];
-  };
-  by-spec."generator-mocha".">=0.1.0" =
-    self.by-version."generator-mocha"."0.1.3";
-  by-version."generator-mocha"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-generator-mocha-0.1.3";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/generator-mocha/-/generator-mocha-0.1.3.tgz";
-        name = "generator-mocha-0.1.3.tgz";
-        sha1 = "d54977bc0839b30c9b15fdd900e0ecd42afe14c8";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."generator-mocha" or []);
-    deps = [
-      self.by-version."yeoman-generator"."0.14.2"
-    ];
-    peerDependencies = [
-      self.by-version."yo"."1.1.2"
-    ];
-    passthru.names = [ "generator-mocha" ];
-  };
-  by-spec."generator-webapp"."*" =
-    self.by-version."generator-webapp"."0.4.9";
-  by-version."generator-webapp"."0.4.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-generator-webapp-0.4.9";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/generator-webapp/-/generator-webapp-0.4.9.tgz";
-        name = "generator-webapp-0.4.9.tgz";
-        sha1 = "df8aa10af9bac7fd59f4072b9cdf0f120e8bb611";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."generator-webapp" or []);
-    deps = [
-      self.by-version."yeoman-generator"."0.16.0"
-      self.by-version."cheerio"."0.13.1"
-      self.by-version."chalk"."0.4.0"
-    ];
-    peerDependencies = [
-      self.by-version."yo"."1.1.2"
-      self.by-version."generator-mocha"."0.1.3"
-    ];
-    passthru.names = [ "generator-webapp" ];
+    passthru.names = [ "fstream-ignore" ];
   };
-  "generator-webapp" = self.by-version."generator-webapp"."0.4.9";
-  by-spec."get-stdin"."^0.1.0" =
-    self.by-version."get-stdin"."0.1.0";
-  by-version."get-stdin"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-get-stdin-0.1.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/get-stdin/-/get-stdin-0.1.0.tgz";
-        name = "get-stdin-0.1.0.tgz";
-        sha1 = "5998af24aafc802d15c82c685657eeb8b10d4a91";
+        url = "http://registry.npmjs.org/fstream-npm/-/fstream-npm-0.1.8.tgz";
+        name = "fstream-npm-0.1.8.tgz";
+        sha1 = "38a70fdeb510a443e1a5378d90413403fc724fa8";
       })
     ];
     buildInputs =
-      (self.nativeDeps."get-stdin" or []);
+      (self.nativeDeps."fstream-npm" or []);
     deps = [
+      self.by-version."fstream-ignore"."1.0.1"
+      self.by-version."inherits"."2.0.1"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "get-stdin" ];
+    passthru.names = [ "fstream-npm" ];
   };
-  by-spec."get-urls"."^0.1.1" =
-    self.by-version."get-urls"."0.1.1";
-  by-version."get-urls"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "get-urls-0.1.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/get-urls/-/get-urls-0.1.1.tgz";
-        name = "get-urls-0.1.1.tgz";
-        sha1 = "f94aa79c9e5d99cb843e44c5f67e24954e08fb59";
+        url = "http://registry.npmjs.org/gaze/-/gaze-0.5.1.tgz";
+        name = "gaze-0.5.1.tgz";
+        sha1 = "22e731078ef3e49d1c4ab1115ac091192051824c";
       })
     ];
     buildInputs =
-      (self.nativeDeps."get-urls" or []);
+      (self.nativeDeps."gaze" or []);
     deps = [
+      self.by-version."globule"."0.1.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "get-urls" ];
+    passthru.names = [ "gaze" ];
   };
   by-spec."getmac"."~1.0.6" =
     self.by-version."getmac"."1.0.6";
@@ -7355,135 +7111,123 @@
     ];
     passthru.names = [ "getobject" ];
   };
-  by-spec."gh"."*" =
-    self.by-version."gh"."1.9.1";
-  by-version."gh"."1.9.1" = lib.makeOverridable self.buildNodePackage {
-    name = "gh-1.9.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/gh/-/gh-1.9.1.tgz";
-        name = "gh-1.9.1.tgz";
-        sha1 = "1862071cddc13cfd31545c64256ab731bb334194";
+        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";
       })
     ];
     buildInputs =
-      (self.nativeDeps."gh" or []);
+      (self.nativeDeps."github-url-from-git" or []);
     deps = [
-      self.by-version."async"."0.2.10"
-      self.by-version."cli-color"."0.2.3"
-      self.by-version."cli-log"."0.0.8"
-      self.by-version."github"."0.1.16"
-      self.by-version."copy-paste"."0.2.0"
-      self.by-version."handlebars"."1.3.0"
-      self.by-version."inquirer"."0.4.1"
-      self.by-version."moment"."2.5.1"
-      self.by-version."nopt"."2.2.0"
-      self.by-version."open"."0.0.5"
-      self.by-version."truncate"."1.0.2"
-      self.by-version."update-notifier"."0.1.8"
-      self.by-version."userhome"."0.1.0"
-      self.by-version."which"."1.0.5"
-      self.by-version."wordwrap"."0.0.2"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "gh" ];
+    passthru.names = [ "github-url-from-git" ];
   };
-  "gh" = self.by-version."gh"."1.9.1";
-  by-spec."github"."~0.1.15" =
-    self.by-version."github"."0.1.16";
-  by-version."github"."0.1.16" = lib.makeOverridable self.buildNodePackage {
-    name = "node-github-0.1.16";
+  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/-/github-0.1.16.tgz";
-        name = "github-0.1.16.tgz";
-        sha1 = "895d2a85b0feb7980d89ac0ce4f44dcaa03f17b5";
+        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" or []);
+      (self.nativeDeps."github-url-from-git" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "github" ];
+    passthru.names = [ "github-url-from-git" ];
   };
-  by-spec."github-flavored-markdown".">= 0.0.1" =
-    self.by-version."github-flavored-markdown"."1.0.1";
-  by-version."github-flavored-markdown"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-github-flavored-markdown-1.0.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/github-flavored-markdown/-/github-flavored-markdown-1.0.1.tgz";
-        name = "github-flavored-markdown-1.0.1.tgz";
-        sha1 = "93361b87a31c25790d9c81a1b798214a737eab38";
+        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";
       })
     ];
     buildInputs =
-      (self.nativeDeps."github-flavored-markdown" or []);
+      (self.nativeDeps."github-url-from-git" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "github-flavored-markdown" ];
+    passthru.names = [ "github-url-from-git" ];
   };
-  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";
+  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";
     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";
+        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";
       })
     ];
     buildInputs =
-      (self.nativeDeps."github-url-from-git" or []);
+      (self.nativeDeps."github-url-from-username-repo" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "github-url-from-git" ];
+    passthru.names = [ "github-url-from-username-repo" ];
   };
-  by-spec."github-url-from-git"."~1.1.1" =
-    self.by-version."github-url-from-git"."1.1.1";
-  by-spec."github-url-from-username-repo"."0.0.2" =
-    self.by-version."github-url-from-username-repo"."0.0.2";
-  by-version."github-url-from-username-repo"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-github-url-from-username-repo-0.0.2";
+  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/github-url-from-username-repo/-/github-url-from-username-repo-0.0.2.tgz";
-        name = "github-url-from-username-repo-0.0.2.tgz";
-        sha1 = "0d9ee8e2bca36d5f065a1bcd23eb3f1fa3d636bd";
+        url = "http://registry.npmjs.org/glob/-/glob-3.2.11.tgz";
+        name = "glob-3.2.11.tgz";
+        sha1 = "4a973f635b9190f715d10987d5c00fd2815ebe3d";
       })
     ];
     buildInputs =
-      (self.nativeDeps."github-url-from-username-repo" or []);
+      (self.nativeDeps."glob" or []);
     deps = [
+      self.by-version."inherits"."2.0.1"
+      self.by-version."minimatch"."0.3.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "github-url-from-username-repo" ];
+    passthru.names = [ "glob" ];
   };
-  by-spec."glob"."3" =
-    self.by-version."glob"."3.2.9";
-  by-version."glob"."3.2.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-glob-3.2.9";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/glob/-/glob-3.2.9.tgz";
-        name = "glob-3.2.9.tgz";
-        sha1 = "56af2289aa43d07d7702666480373eb814d91d40";
+        url = "http://registry.npmjs.org/glob/-/glob-4.0.5.tgz";
+        name = "glob-4.0.5.tgz";
+        sha1 = "95e42c9efdb3ab1f4788fd7793dfded4a3378063";
       })
     ];
     buildInputs =
       (self.nativeDeps."glob" or []);
     deps = [
-      self.by-version."minimatch"."0.2.14"
       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"
     ];
     peerDependencies = [
     ];
@@ -7512,13 +7256,19 @@
     passthru.names = [ "glob" ];
   };
   by-spec."glob"."3.2.x" =
-    self.by-version."glob"."3.2.9";
+    self.by-version."glob"."3.2.11";
   by-spec."glob"."3.x" =
-    self.by-version."glob"."3.2.9";
-  by-spec."glob".">= 3.1.4" =
-    self.by-version."glob"."3.2.9";
-  by-spec."glob".">=3.2.7 <4" =
-    self.by-version."glob"."3.2.9";
+    self.by-version."glob"."3.2.11";
+  by-spec."glob"."4.x" =
+    self.by-version."glob"."4.0.5";
+  by-spec."glob"."^4.0.0" =
+    self.by-version."glob"."4.0.5";
+  by-spec."glob"."^4.0.2" =
+    self.by-version."glob"."4.0.5";
+  by-spec."glob"."^4.0.5" =
+    self.by-version."glob"."4.0.5";
+  by-spec."glob"."~ 3.2.1" =
+    self.by-version."glob"."3.2.11";
   by-spec."glob"."~3.1.21" =
     self.by-version."glob"."3.1.21";
   by-version."glob"."3.1.21" = lib.makeOverridable self.buildNodePackage {
@@ -7541,18 +7291,103 @@
     ];
     passthru.names = [ "glob" ];
   };
-  by-spec."glob"."~3.2.0" =
-    self.by-version."glob"."3.2.9";
   by-spec."glob"."~3.2.1" =
-    self.by-version."glob"."3.2.9";
+    self.by-version."glob"."3.2.11";
   by-spec."glob"."~3.2.6" =
-    self.by-version."glob"."3.2.9";
+    self.by-version."glob"."3.2.11";
   by-spec."glob"."~3.2.7" =
-    self.by-version."glob"."3.2.9";
-  by-spec."glob"."~3.2.8" =
-    self.by-version."glob"."3.2.9";
+    self.by-version."glob"."3.2.11";
   by-spec."glob"."~3.2.9" =
-    self.by-version."glob"."3.2.9";
+    self.by-version."glob"."3.2.11";
+  by-spec."glob"."~4.0.3" =
+    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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/glob-stream/-/glob-stream-3.1.15.tgz";
+        name = "glob-stream-3.1.15.tgz";
+        sha1 = "084bdbe9d8203fbb48bcf05c382dbb7e6666f8f5";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "glob-stream" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz";
+        name = "glob-watcher-0.0.6.tgz";
+        sha1 = "b95b4a8df74b39c83298b0c05c978b4d9a3b710b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."glob-watcher" or []);
+    deps = [
+      self.by-version."gaze"."0.5.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "glob-watcher" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/glob2base/-/glob2base-0.0.11.tgz";
+        name = "glob2base-0.0.11.tgz";
+        sha1 = "e56904ae5292c2d9cefbc5b97f419614fb56b660";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."glob2base" or []);
+    deps = [
+      self.by-version."lodash"."2.4.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "glob2base" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/globule/-/globule-0.1.0.tgz";
+        name = "globule-0.1.0.tgz";
+        sha1 = "d9c8edde1da79d125a151b79533b978676346ae5";
+      })
+    ];
+    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"
+    ];
+    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 {
@@ -7572,15 +7407,15 @@
     ];
     passthru.names = [ "graceful-fs" ];
   };
-  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";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz";
-        name = "graceful-fs-1.2.3.tgz";
-        sha1 = "15a4806a57547cb2d2dbf27f42e89a8c3451b364";
+        url = "http://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz";
+        name = "graceful-fs-3.0.2.tgz";
+        sha1 = "2cb5bf7f742bea8ad47c754caeee032b7e71a577";
       })
     ];
     buildInputs =
@@ -7591,15 +7426,21 @@
     ];
     passthru.names = [ "graceful-fs" ];
   };
-  by-spec."graceful-fs"."~1.1" =
-    self.by-version."graceful-fs"."1.1.14";
-  by-version."graceful-fs"."1.1.14" = lib.makeOverridable self.buildNodePackage {
-    name = "node-graceful-fs-1.1.14";
+  by-spec."graceful-fs"."3" =
+    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" =
+    self.by-version."graceful-fs"."3.0.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/graceful-fs/-/graceful-fs-1.1.14.tgz";
-        name = "graceful-fs-1.1.14.tgz";
-        sha1 = "07078db5f6377f6321fceaaedf497de124dc9465";
+        url = "http://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz";
+        name = "graceful-fs-1.2.3.tgz";
+        sha1 = "15a4806a57547cb2d2dbf27f42e89a8c3451b364";
       })
     ];
     buildInputs =
@@ -7612,23 +7453,27 @@
   };
   by-spec."graceful-fs"."~1.2.0" =
     self.by-version."graceful-fs"."1.2.3";
-  by-spec."graceful-fs"."~2" =
-    self.by-version."graceful-fs"."2.0.3";
   by-spec."graceful-fs"."~2.0.0" =
     self.by-version."graceful-fs"."2.0.3";
   by-spec."graceful-fs"."~2.0.1" =
     self.by-version."graceful-fs"."2.0.3";
-  by-spec."graceful-fs"."~2.0.2" =
+  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" =
+    self.by-version."graceful-fs"."3.0.2";
+  by-spec."graceful-fs"."~3.0.2" =
+    self.by-version."graceful-fs"."3.0.2";
   by-spec."gridfs-stream"."*" =
-    self.by-version."gridfs-stream"."0.4.1";
-  by-version."gridfs-stream"."0.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-gridfs-stream-0.4.1";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/gridfs-stream/-/gridfs-stream-0.4.1.tgz";
-        name = "gridfs-stream-0.4.1.tgz";
-        sha1 = "1bcccb1b05b57946363b5e53fbe2bc95dd8877bb";
+        url = "http://registry.npmjs.org/gridfs-stream/-/gridfs-stream-0.5.1.tgz";
+        name = "gridfs-stream-0.5.1.tgz";
+        sha1 = "5fd94b0da4df1a602f7b0a02fb2365460d91b90c";
       })
     ];
     buildInputs =
@@ -7639,7 +7484,7 @@
     ];
     passthru.names = [ "gridfs-stream" ];
   };
-  "gridfs-stream" = self.by-version."gridfs-stream"."0.4.1";
+  "gridfs-stream" = self.by-version."gridfs-stream"."0.5.1";
   by-spec."growl"."1.7.x" =
     self.by-version."growl"."1.7.0";
   by-version."growl"."1.7.0" = lib.makeOverridable self.buildNodePackage {
@@ -7659,15 +7504,34 @@
     ];
     passthru.names = [ "growl" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/growl/-/growl-1.8.1.tgz";
+        name = "growl-1.8.1.tgz";
+        sha1 = "4b2dec8d907e93db336624dcec0183502f8c9428";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."growl" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "growl" ];
+  };
   by-spec."grunt"."0.4.x" =
-    self.by-version."grunt"."0.4.4";
-  by-version."grunt"."0.4.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-0.4.4";
+    self.by-version."grunt"."0.4.5";
+  by-version."grunt"."0.4.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-grunt-0.4.5";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/grunt/-/grunt-0.4.4.tgz";
-        name = "grunt-0.4.4.tgz";
-        sha1 = "f37fa46e2e52e37f9a0370542a74281c09c73f53";
+        url = "http://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz";
+        name = "grunt-0.4.5.tgz";
+        sha1 = "56937cd5194324adff6d207631832a9d6ba4e7f0";
       })
     ];
     buildInputs =
@@ -7677,60 +7541,33 @@
       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.13"
+      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.6"
+      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.1.2"
+      self.by-version."grunt-legacy-util"."0.2.0"
+      self.by-version."grunt-legacy-log"."0.1.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "grunt" ];
   };
-  by-spec."grunt"."^0.4.0" =
-    self.by-version."grunt"."0.4.4";
   by-spec."grunt"."~0.4" =
-    self.by-version."grunt"."0.4.4";
+    self.by-version."grunt"."0.4.5";
   by-spec."grunt"."~0.4.0" =
-    self.by-version."grunt"."0.4.4";
+    self.by-version."grunt"."0.4.5";
   by-spec."grunt"."~0.4.1" =
-    self.by-version."grunt"."0.4.4";
-  by-spec."grunt-bower-task"."*" =
-    self.by-version."grunt-bower-task"."0.3.4";
-  by-version."grunt-bower-task"."0.3.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-bower-task-0.3.4";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/grunt-bower-task/-/grunt-bower-task-0.3.4.tgz";
-        name = "grunt-bower-task-0.3.4.tgz";
-        sha1 = "6f713725ae96bb22ed60b1173cf4c522bbb8583b";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."grunt-bower-task" or []);
-    deps = [
-      self.by-version."bower"."1.2.8"
-      self.by-version."lodash"."0.10.0"
-      self.by-version."rimraf"."2.0.3"
-      self.by-version."wrench"."1.4.4"
-      self.by-version."colors"."0.6.2"
-      self.by-version."async"."0.1.22"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "grunt-bower-task" ];
-  };
-  "grunt-bower-task" = self.by-version."grunt-bower-task"."0.3.4";
+    self.by-version."grunt"."0.4.5";
   by-spec."grunt-cli"."*" =
     self.by-version."grunt-cli"."0.1.13";
   by-version."grunt-cli"."0.1.13" = lib.makeOverridable self.buildNodePackage {
@@ -7754,32 +7591,30 @@
     passthru.names = [ "grunt-cli" ];
   };
   "grunt-cli" = self.by-version."grunt-cli"."0.1.13";
-  by-spec."grunt-cli"."~0.1.7" =
-    self.by-version."grunt-cli"."0.1.13";
   by-spec."grunt-contrib-cssmin"."*" =
-    self.by-version."grunt-contrib-cssmin"."0.9.0";
-  by-version."grunt-contrib-cssmin"."0.9.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-contrib-cssmin-0.9.0";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-0.9.0.tgz";
-        name = "grunt-contrib-cssmin-0.9.0.tgz";
-        sha1 = "27241f0160a8866659dab40dc8c2776c01ec7ce2";
+        url = "http://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-0.10.0.tgz";
+        name = "grunt-contrib-cssmin-0.10.0.tgz";
+        sha1 = "e05f341e753a9674b2b1070220fdcbac22079418";
       })
     ];
     buildInputs =
       (self.nativeDeps."grunt-contrib-cssmin" or []);
     deps = [
       self.by-version."chalk"."0.4.0"
-      self.by-version."clean-css"."2.1.8"
-      self.by-version."maxmin"."0.1.0"
+      self.by-version."clean-css"."2.2.13"
+      self.by-version."maxmin"."0.2.2"
     ];
     peerDependencies = [
-      self.by-version."grunt"."0.4.4"
+      self.by-version."grunt"."0.4.5"
     ];
     passthru.names = [ "grunt-contrib-cssmin" ];
   };
-  "grunt-contrib-cssmin" = self.by-version."grunt-contrib-cssmin"."0.9.0";
+  "grunt-contrib-cssmin" = self.by-version."grunt-contrib-cssmin"."0.10.0";
   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 {
@@ -7794,96 +7629,97 @@
     buildInputs =
       (self.nativeDeps."grunt-contrib-jshint" or []);
     deps = [
-      self.by-version."jshint"."2.5.0"
+      self.by-version."jshint"."2.5.4"
       self.by-version."hooker"."0.2.3"
     ];
     peerDependencies = [
-      self.by-version."grunt"."0.4.4"
+      self.by-version."grunt"."0.4.5"
     ];
     passthru.names = [ "grunt-contrib-jshint" ];
   };
   "grunt-contrib-jshint" = self.by-version."grunt-contrib-jshint"."0.10.0";
   by-spec."grunt-contrib-less"."*" =
-    self.by-version."grunt-contrib-less"."0.11.0";
-  by-version."grunt-contrib-less"."0.11.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-contrib-less-0.11.0";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-0.11.0.tgz";
-        name = "grunt-contrib-less-0.11.0.tgz";
-        sha1 = "601cbdda0591f7fde7fe50278cd904fedede90ed";
+        url = "http://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-0.11.4.tgz";
+        name = "grunt-contrib-less-0.11.4.tgz";
+        sha1 = "5667475ac4517f32ca623b9a4d81d6cf4aed2b51";
       })
     ];
     buildInputs =
       (self.nativeDeps."grunt-contrib-less" or []);
     deps = [
-      self.by-version."less"."1.7.0"
-      self.by-version."chalk"."0.4.0"
-      self.by-version."maxmin"."0.1.0"
-      self.by-version."lodash"."2.4.1"
       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"
     ];
     peerDependencies = [
-      self.by-version."grunt"."0.4.4"
+      self.by-version."grunt"."0.4.5"
     ];
     passthru.names = [ "grunt-contrib-less" ];
   };
-  "grunt-contrib-less" = self.by-version."grunt-contrib-less"."0.11.0";
+  "grunt-contrib-less" = self.by-version."grunt-contrib-less"."0.11.4";
   by-spec."grunt-contrib-requirejs"."*" =
-    self.by-version."grunt-contrib-requirejs"."0.4.3";
-  by-version."grunt-contrib-requirejs"."0.4.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-contrib-requirejs-0.4.3";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/grunt-contrib-requirejs/-/grunt-contrib-requirejs-0.4.3.tgz";
-        name = "grunt-contrib-requirejs-0.4.3.tgz";
-        sha1 = "ac243dc312af5c85cd095169da1b3177bfe89c59";
+        url = "http://registry.npmjs.org/grunt-contrib-requirejs/-/grunt-contrib-requirejs-0.4.4.tgz";
+        name = "grunt-contrib-requirejs-0.4.4.tgz";
+        sha1 = "87f2165a981e48a45d22f8cc5299d0934031b972";
       })
     ];
     buildInputs =
       (self.nativeDeps."grunt-contrib-requirejs" or []);
     deps = [
-      self.by-version."requirejs"."2.1.11"
+      self.by-version."requirejs"."2.1.14"
     ];
     peerDependencies = [
-      self.by-version."grunt"."0.4.4"
+      self.by-version."grunt"."0.4.5"
     ];
     passthru.names = [ "grunt-contrib-requirejs" ];
   };
-  "grunt-contrib-requirejs" = self.by-version."grunt-contrib-requirejs"."0.4.3";
+  "grunt-contrib-requirejs" = self.by-version."grunt-contrib-requirejs"."0.4.4";
   by-spec."grunt-contrib-uglify"."*" =
-    self.by-version."grunt-contrib-uglify"."0.4.0";
-  by-version."grunt-contrib-uglify"."0.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-contrib-uglify-0.4.0";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-0.4.0.tgz";
-        name = "grunt-contrib-uglify-0.4.0.tgz";
-        sha1 = "6a4df3e85ccf4bbae484b0328cc71c9f102e80be";
+        url = "http://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-0.5.1.tgz";
+        name = "grunt-contrib-uglify-0.5.1.tgz";
+        sha1 = "15f0aa5e8e8ba421aea980879ee505bc712b6cde";
       })
     ];
     buildInputs =
       (self.nativeDeps."grunt-contrib-uglify" or []);
     deps = [
-      self.by-version."uglify-js"."2.4.13"
-      self.by-version."chalk"."0.4.0"
-      self.by-version."maxmin"."0.1.0"
+      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"
     ];
     peerDependencies = [
-      self.by-version."grunt"."0.4.4"
+      self.by-version."grunt"."0.4.5"
     ];
     passthru.names = [ "grunt-contrib-uglify" ];
   };
-  "grunt-contrib-uglify" = self.by-version."grunt-contrib-uglify"."0.4.0";
+  "grunt-contrib-uglify" = self.by-version."grunt-contrib-uglify"."0.5.1";
   by-spec."grunt-karma"."*" =
-    self.by-version."grunt-karma"."0.8.2";
-  by-version."grunt-karma"."0.8.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-karma-0.8.2";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/grunt-karma/-/grunt-karma-0.8.2.tgz";
-        name = "grunt-karma-0.8.2.tgz";
-        sha1 = "0f422d357e4556fb96ab68c6d9a2be46908f1c84";
+        url = "http://registry.npmjs.org/grunt-karma/-/grunt-karma-0.8.3.tgz";
+        name = "grunt-karma-0.8.3.tgz";
+        sha1 = "e9ecf718153af1914aa53602a37f85de04310e7f";
       })
     ];
     buildInputs =
@@ -7892,21 +7728,44 @@
       self.by-version."lodash"."2.4.1"
     ];
     peerDependencies = [
-      self.by-version."grunt"."0.4.4"
-      self.by-version."karma"."0.12.9"
+      self.by-version."grunt"."0.4.5"
+      self.by-version."karma"."0.12.22"
     ];
     passthru.names = [ "grunt-karma" ];
   };
-  "grunt-karma" = self.by-version."grunt-karma"."0.8.2";
-  by-spec."grunt-legacy-util"."~0.1.2" =
-    self.by-version."grunt-legacy-util"."0.1.2";
-  by-version."grunt-legacy-util"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-legacy-util-0.1.2";
+  "grunt-karma" = self.by-version."grunt-karma"."0.8.3";
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.1.tgz";
+        name = "grunt-legacy-log-0.1.1.tgz";
+        sha1 = "d41f1a6abc9b0b1256a2b5ff02f4c3298dfcd57a";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "grunt-legacy-log" ];
+  };
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.1.2.tgz";
-        name = "grunt-legacy-util-0.1.2.tgz";
-        sha1 = "be84d337ef4a0137dc8566092a46528fd8957ebd";
+        url = "http://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz";
+        name = "grunt-legacy-util-0.2.0.tgz";
+        sha1 = "93324884dbf7e37a9ff7c026dff451d94a9e554b";
       })
     ];
     buildInputs =
@@ -7941,7 +7800,7 @@
       self.by-version."replace"."0.2.9"
     ];
     peerDependencies = [
-      self.by-version."grunt"."0.4.4"
+      self.by-version."grunt"."0.4.5"
     ];
     passthru.names = [ "grunt-sed" ];
   };
@@ -7961,10 +7820,10 @@
       (self.nativeDeps."guifi-earth" or []);
     deps = [
       self.by-version."coffee-script"."1.7.1"
-      self.by-version."jade"."1.3.1"
-      self.by-version."q"."2.0.1"
-      self.by-version."xml2js"."0.4.2"
-      self.by-version."msgpack"."0.2.3"
+      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"
     ];
     peerDependencies = [
     ];
@@ -7985,13 +7844,34 @@
     buildInputs =
       (self.nativeDeps."gzip-size" or []);
     deps = [
-      self.by-version."concat-stream"."1.4.5"
+      self.by-version."concat-stream"."1.4.6"
       self.by-version."zlib-browserify"."0.0.3"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "gzip-size" ];
   };
+  by-spec."gzip-size"."^0.2.0" =
+    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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/gzip-size/-/gzip-size-0.2.0.tgz";
+        name = "gzip-size-0.2.0.tgz";
+        sha1 = "e3a2a191205fe56ee326f5c271435dfaecfb3e1c";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."gzip-size" or []);
+    deps = [
+      self.by-version."concat-stream"."1.4.6"
+      self.by-version."browserify-zlib"."0.1.4"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "gzip-size" ];
+  };
   by-spec."gzippo"."*" =
     self.by-version."gzippo"."0.2.0";
   by-version."gzippo"."0.2.0" = lib.makeOverridable self.buildNodePackage {
@@ -8006,14 +7886,14 @@
     buildInputs =
       (self.nativeDeps."gzippo" or []);
     deps = [
-      self.by-version."send"."0.2.0"
+      self.by-version."send"."0.8.3"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "gzippo" ];
   };
   "gzippo" = self.by-version."gzippo"."0.2.0";
-  by-spec."handlebars"."1.3.0" =
+  by-spec."handlebars"."1.3.x" =
     self.by-version."handlebars"."1.3.0";
   by-version."handlebars"."1.3.0" = lib.makeOverridable self.buildNodePackage {
     name = "handlebars-1.3.0";
@@ -8034,31 +7914,26 @@
     ];
     passthru.names = [ "handlebars" ];
   };
-  by-spec."handlebars"."1.3.x" =
-    self.by-version."handlebars"."1.3.0";
-  by-spec."handlebars"."~1.0.11" =
-    self.by-version."handlebars"."1.0.12";
-  by-version."handlebars"."1.0.12" = lib.makeOverridable self.buildNodePackage {
-    name = "handlebars-1.0.12";
+  by-spec."has-ansi"."^0.1.0" =
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/handlebars/-/handlebars-1.0.12.tgz";
-        name = "handlebars-1.0.12.tgz";
-        sha1 = "18c6d3440c35e91b19b3ff582b9151ab4985d4fc";
+        url = "http://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz";
+        name = "has-ansi-0.1.0.tgz";
+        sha1 = "84f265aae8c0e6a88a12d7022894b7568894c62e";
       })
     ];
     buildInputs =
-      (self.nativeDeps."handlebars" or []);
+      (self.nativeDeps."has-ansi" or []);
     deps = [
-      self.by-version."optimist"."0.3.7"
-      self.by-version."uglify-js"."2.3.6"
+      self.by-version."ansi-regex"."0.2.1"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "handlebars" ];
+    passthru.names = [ "has-ansi" ];
   };
-  by-spec."handlebars"."~1.3.0" =
-    self.by-version."handlebars"."1.3.0";
   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 {
@@ -8138,7 +8013,30 @@
     ];
     passthru.names = [ "hat" ];
   };
-  by-spec."hawk"."~0.10.0" =
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz";
+        name = "hawk-1.1.1.tgz";
+        sha1 = "87cd491f9b46e4e2aeaca335416766885d2d1ed9";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "hawk" ];
+  };
+  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";
@@ -8161,8 +8059,6 @@
     ];
     passthru.names = [ "hawk" ];
   };
-  by-spec."hawk"."~0.10.2" =
-    self.by-version."hawk"."0.10.2";
   by-spec."hawk"."~1.0.0" =
     self.by-version."hawk"."1.0.0";
   by-version."hawk"."1.0.0" = lib.makeOverridable self.buildNodePackage {
@@ -8206,44 +8102,45 @@
     passthru.names = [ "he" ];
   };
   by-spec."hipache"."*" =
-    self.by-version."hipache"."0.2.9";
-  by-version."hipache"."0.2.9" = lib.makeOverridable self.buildNodePackage {
-    name = "hipache-0.2.9";
+    self.by-version."hipache"."0.3.1";
+  by-version."hipache"."0.3.1" = lib.makeOverridable self.buildNodePackage {
+    name = "hipache-0.3.1";
     src = [
-      (self.patchSource fetchurl {
-        url = "http://registry.npmjs.org/hipache/-/hipache-0.2.9.tgz";
-        name = "hipache-0.2.9.tgz";
-        sha1 = "48a7fa7170be328b264d6e413bfb76d130e03b2a";
+      (fetchurl {
+        url = "http://registry.npmjs.org/hipache/-/hipache-0.3.1.tgz";
+        name = "hipache-0.3.1.tgz";
+        sha1 = "e21764eafe6429ec8dc9377b55e1ca86799704d5";
       })
     ];
     buildInputs =
       (self.nativeDeps."hipache" or []);
     deps = [
-      self.by-version."http-proxy"."0.10.3"
-      self.by-version."redis"."0.8.6"
-      self.by-version."lru-cache"."2.2.4"
-      self.by-version."optimist"."0.3.7"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "hipache" ];
   };
-  "hipache" = self.by-version."hipache"."0.2.9";
+  "hipache" = self.by-version."hipache"."0.3.1";
   by-spec."hiredis"."*" =
-    self.by-version."hiredis"."0.1.16";
-  by-version."hiredis"."0.1.16" = lib.makeOverridable self.buildNodePackage {
-    name = "node-hiredis-0.1.16";
+    self.by-version."hiredis"."0.1.17";
+  by-version."hiredis"."0.1.17" = lib.makeOverridable self.buildNodePackage {
+    name = "node-hiredis-0.1.17";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/hiredis/-/hiredis-0.1.16.tgz";
-        name = "hiredis-0.1.16.tgz";
-        sha1 = "f6cee1add2589b8b71cef3c4d3936a9fcd638640";
+        url = "http://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz";
+        name = "hiredis-0.1.17.tgz";
+        sha1 = "60a33a968efc9a974e7ebb832f33aa965d3d354e";
       })
     ];
     buildInputs =
       (self.nativeDeps."hiredis" or []);
     deps = [
-      self.by-version."bindings"."1.2.0"
+      self.by-version."bindings"."1.2.1"
+      self.by-version."nan"."1.1.2"
     ];
     peerDependencies = [
     ];
@@ -8325,70 +8222,25 @@
     ];
     passthru.names = [ "hooks" ];
   };
-  by-spec."htmlparser2"."3.1.4" =
-    self.by-version."htmlparser2"."3.1.4";
-  by-version."htmlparser2"."3.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-htmlparser2-3.1.4";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.1.4.tgz";
-        name = "htmlparser2-3.1.4.tgz";
-        sha1 = "72cbe7d5d56c01acf61fcf7b933331f4e45b36f0";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."htmlparser2" or []);
-    deps = [
-      self.by-version."domhandler"."2.0.3"
-      self.by-version."domutils"."1.1.6"
-      self.by-version."domelementtype"."1.1.1"
-      self.by-version."readable-stream"."1.0.27-1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "htmlparser2" ];
-  };
-  by-spec."htmlparser2"."3.3.x" =
-    self.by-version."htmlparser2"."3.3.0";
-  by-version."htmlparser2"."3.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-htmlparser2-3.3.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz";
-        name = "htmlparser2-3.3.0.tgz";
-        sha1 = "cc70d05a59f6542e43f0e685c982e14c924a9efe";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."htmlparser2" or []);
-    deps = [
-      self.by-version."domhandler"."2.1.0"
-      self.by-version."domutils"."1.1.6"
-      self.by-version."domelementtype"."1.1.1"
-      self.by-version."readable-stream"."1.0.27-1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "htmlparser2" ];
-  };
-  by-spec."htmlparser2"."~3.4.0" =
-    self.by-version."htmlparser2"."3.4.0";
-  by-version."htmlparser2"."3.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-htmlparser2-3.4.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.4.0.tgz";
-        name = "htmlparser2-3.4.0.tgz";
-        sha1 = "a1cd65f5823ad285e19d63b085ad722d0a51eae7";
+        url = "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.7.3.tgz";
+        name = "htmlparser2-3.7.3.tgz";
+        sha1 = "6a64c77637c08c6f30ec2a8157a53333be7cb05e";
       })
     ];
     buildInputs =
       (self.nativeDeps."htmlparser2" or []);
     deps = [
       self.by-version."domhandler"."2.2.0"
-      self.by-version."domutils"."1.3.0"
+      self.by-version."domutils"."1.5.0"
       self.by-version."domelementtype"."1.1.1"
-      self.by-version."readable-stream"."1.1.13-1"
+      self.by-version."readable-stream"."1.1.13"
+      self.by-version."entities"."1.0.0"
     ];
     peerDependencies = [
     ];
@@ -8415,15 +8267,15 @@
     ];
     passthru.names = [ "http-auth" ];
   };
-  by-spec."http-browserify"."~1.3.1" =
-    self.by-version."http-browserify"."1.3.2";
-  by-version."http-browserify"."1.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-http-browserify-1.3.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/http-browserify/-/http-browserify-1.3.2.tgz";
-        name = "http-browserify-1.3.2.tgz";
-        sha1 = "b562c34479349a690d7a6597df495aefa8c604f5";
+        url = "http://registry.npmjs.org/http-browserify/-/http-browserify-1.5.0.tgz";
+        name = "http-browserify-1.5.0.tgz";
+        sha1 = "9ecc18daa92289793fed28f9f14b0a0ce6f98040";
       })
     ];
     buildInputs =
@@ -8436,24 +8288,21 @@
     ];
     passthru.names = [ "http-browserify" ];
   };
-  by-spec."http-proxy"."git+https://github.com/samalba/node-http-proxy.git" =
-    self.by-version."http-proxy"."0.10.3";
-  by-version."http-proxy"."0.10.3" = lib.makeOverridable self.buildNodePackage {
-    name = "http-proxy-0.10.3";
+  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";
     src = [
-      (fetchgit {
-        url = "https://github.com/samalba/node-http-proxy.git";
-        rev = "8e277989d2d05edaee65e524fb4fba9142c52aa5";
-        sha256 = "8ce0e05c73e517eefc6d9bf8b61349351aee119c2fb60763f23170607cc0e41f";
+      (fetchurl {
+        url = "http://registry.npmjs.org/http-proxy/-/http-proxy-1.0.2.tgz";
+        name = "http-proxy-1.0.2.tgz";
+        sha1 = "08060ff2edb2189e57aa3a152d3ac63ed1af7254";
       })
     ];
     buildInputs =
       (self.nativeDeps."http-proxy" or []);
     deps = [
-      self.by-version."colors"."0.6.2"
-      self.by-version."optimist"."0.3.7"
-      self.by-version."pkginfo"."0.2.3"
-      self.by-version."utile"."0.1.7"
+      self.by-version."eventemitter3"."0.1.4"
     ];
     peerDependencies = [
     ];
@@ -8584,26 +8433,26 @@
     passthru.names = [ "i" ];
   };
   by-spec."i18next"."*" =
-    self.by-version."i18next"."1.7.3";
-  by-version."i18next"."1.7.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-i18next-1.7.3";
+    self.by-version."i18next"."1.7.4";
+  by-version."i18next"."1.7.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-i18next-1.7.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/i18next/-/i18next-1.7.3.tgz";
-        name = "i18next-1.7.3.tgz";
-        sha1 = "8a064866c8e6e87b4664a32fe81b9be34b4a3894";
+        url = "http://registry.npmjs.org/i18next/-/i18next-1.7.4.tgz";
+        name = "i18next-1.7.4.tgz";
+        sha1 = "b61629c9de95a5c076acb2f954f8a882ac0772af";
       })
     ];
     buildInputs =
       (self.nativeDeps."i18next" or []);
     deps = [
-      self.by-version."cookies"."0.4.0"
+      self.by-version."cookies"."0.5.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "i18next" ];
   };
-  "i18next" = self.by-version."i18next"."1.7.3";
+  "i18next" = self.by-version."i18next"."1.7.4";
   by-spec."ibrik"."~1.1.1" =
     self.by-version."ibrik"."1.1.1";
   by-version."ibrik"."1.1.1" = lib.makeOverridable self.buildNodePackage {
@@ -8620,8 +8469,8 @@
     deps = [
       self.by-version."lodash"."2.4.1"
       self.by-version."coffee-script-redux"."2.0.0-beta8"
-      self.by-version."istanbul"."0.2.7"
-      self.by-version."estraverse"."1.5.0"
+      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"
@@ -8631,7 +8480,45 @@
     ];
     passthru.names = [ "ibrik" ];
   };
-  by-spec."iconv-lite"."~0.2.10" =
+  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";
+    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."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";
@@ -8650,8 +8537,8 @@
     ];
     passthru.names = [ "iconv-lite" ];
   };
-  by-spec."iconv-lite"."~0.2.11" =
-    self.by-version."iconv-lite"."0.2.11";
+  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 {
@@ -8690,6 +8577,26 @@
     ];
     passthru.names = [ "indexof" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/inflight/-/inflight-1.0.1.tgz";
+        name = "inflight-1.0.1.tgz";
+        sha1 = "01f6911821535243c790ac0f998f54e9023ffb6f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."inflight" or []);
+    deps = [
+      self.by-version."once"."1.3.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "inflight" ];
+  };
   by-spec."inherits"."1" =
     self.by-version."inherits"."1.0.0";
   by-version."inherits"."1.0.0" = lib.makeOverridable self.buildNodePackage {
@@ -8732,6 +8639,8 @@
   };
   by-spec."inherits"."2.0.1" =
     self.by-version."inherits"."2.0.1";
+  by-spec."inherits"."^2.0.1" =
+    self.by-version."inherits"."2.0.1";
   by-spec."inherits"."~1.0.0" =
     self.by-version."inherits"."1.0.0";
   by-spec."inherits"."~2.0.0" =
@@ -8739,6 +8648,29 @@
   by-spec."inherits"."~2.0.1" =
     self.by-version."inherits"."2.0.1";
   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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/ini/-/ini-1.2.1.tgz";
+        name = "ini-1.2.1.tgz";
+        sha1 = "7f774e2f22752cd1dacbf9c63323df2a164ebca3";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."ini" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "ini" ];
+  };
+  by-spec."ini"."1.x.x" =
+    self.by-version."ini"."1.2.1";
+  by-spec."ini"."^1.2.0" =
+    self.by-version."ini"."1.2.1";
+  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";
@@ -8757,29 +8689,27 @@
     ];
     passthru.names = [ "ini" ];
   };
-  by-spec."ini"."1.x.x" =
-    self.by-version."ini"."1.1.0";
-  by-spec."ini"."~1.1.0" =
-    self.by-version."ini"."1.1.0";
-  by-spec."init-package-json"."0.0.15" =
-    self.by-version."init-package-json"."0.0.15";
-  by-version."init-package-json"."0.0.15" = lib.makeOverridable self.buildNodePackage {
-    name = "node-init-package-json-0.0.15";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/init-package-json/-/init-package-json-0.0.15.tgz";
-        name = "init-package-json-0.0.15.tgz";
-        sha1 = "d40f0201e4de6aa2b3fdc4208ae162766703ebed";
+        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";
       })
     ];
     buildInputs =
       (self.nativeDeps."init-package-json" or []);
     deps = [
-      self.by-version."promzard"."0.2.1"
+      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.1.8"
-      self.by-version."semver"."2.2.1"
-      self.by-version."glob"."3.2.9"
+      self.by-version."read-package-json"."1.2.6"
+      self.by-version."semver"."3.0.1"
     ];
     peerDependencies = [
     ];
@@ -8799,142 +8729,65 @@
     buildInputs =
       (self.nativeDeps."inline-source-map" or []);
     deps = [
-      self.by-version."source-map"."0.1.33"
+      self.by-version."source-map"."0.1.38"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "inline-source-map" ];
   };
-  by-spec."inquirer"."~0.3.0" =
-    self.by-version."inquirer"."0.3.5";
-  by-version."inquirer"."0.3.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-inquirer-0.3.5";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/inquirer/-/inquirer-0.3.5.tgz";
-        name = "inquirer-0.3.5.tgz";
-        sha1 = "a78be064ac9abf168147c02169a931d9a483a9f6";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."inquirer" or []);
-    deps = [
-      self.by-version."lodash"."1.2.1"
-      self.by-version."async"."0.2.10"
-      self.by-version."cli-color"."0.2.3"
-      self.by-version."mute-stream"."0.0.3"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "inquirer" ];
-  };
-  by-spec."inquirer"."~0.3.1" =
-    self.by-version."inquirer"."0.3.5";
-  by-spec."inquirer"."~0.4.0" =
-    self.by-version."inquirer"."0.4.1";
-  by-version."inquirer"."0.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-inquirer-0.4.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/inquirer/-/inquirer-0.4.1.tgz";
-        name = "inquirer-0.4.1.tgz";
-        sha1 = "6cf74eb1a347f97a1a207bea8ad1c987d0ff4b81";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."inquirer" or []);
-    deps = [
-      self.by-version."lodash"."2.4.1"
-      self.by-version."async"."0.2.10"
-      self.by-version."cli-color"."0.2.3"
-      self.by-version."mute-stream"."0.0.4"
-      self.by-version."through"."2.3.4"
-      self.by-version."readline2"."0.1.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "inquirer" ];
-  };
-  by-spec."inquirer"."~0.4.1" =
-    self.by-version."inquirer"."0.4.1";
-  by-spec."insert-module-globals"."~5.0.1" =
-    self.by-version."insert-module-globals"."5.0.1";
-  by-version."insert-module-globals"."5.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "insert-module-globals-5.0.1";
+  by-spec."insert-module-globals"."^6.1.0" =
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/insert-module-globals/-/insert-module-globals-5.0.1.tgz";
-        name = "insert-module-globals-5.0.1.tgz";
-        sha1 = "eec9c0dfad30380e8eda313a094165dc2f2350d2";
+        url = "http://registry.npmjs.org/insert-module-globals/-/insert-module-globals-6.1.0.tgz";
+        name = "insert-module-globals-6.1.0.tgz";
+        sha1 = "b0ee36d97057e9eda133ad6d4b00a8821cd63663";
       })
     ];
     buildInputs =
       (self.nativeDeps."insert-module-globals" or []);
     deps = [
-      self.by-version."JSONStream"."0.7.2"
-      self.by-version."concat-stream"."1.4.5"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "insert-module-globals" ];
   };
-  by-spec."insight"."~0.3.0" =
-    self.by-version."insight"."0.3.1";
-  by-version."insight"."0.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-insight-0.3.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/insight/-/insight-0.3.1.tgz";
-        name = "insight-0.3.1.tgz";
-        sha1 = "1a14f32c06115c0850338c38a253d707b611d448";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."insight" or []);
-    deps = [
-      self.by-version."chalk"."0.4.0"
-      self.by-version."request"."2.27.0"
-      self.by-version."configstore"."0.2.3"
-      self.by-version."async"."0.2.10"
-      self.by-version."inquirer"."0.4.1"
-      self.by-version."object-assign"."0.1.2"
-      self.by-version."lodash.debounce"."2.4.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "insight" ];
-  };
-  by-spec."intersect"."~0.0.3" =
-    self.by-version."intersect"."0.0.3";
-  by-version."intersect"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-intersect-0.0.3";
+  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/intersect/-/intersect-0.0.3.tgz";
-        name = "intersect-0.0.3.tgz";
-        sha1 = "c1a4a5e5eac6ede4af7504cc07e0ada7bc9f4920";
+        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."intersect" or []);
+      (self.nativeDeps."ipaddr.js" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "intersect" ];
+    passthru.names = [ "ipaddr.js" ];
   };
   by-spec."ironhorse"."*" =
-    self.by-version."ironhorse"."0.0.9";
-  by-version."ironhorse"."0.0.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-ironhorse-0.0.9";
+    self.by-version."ironhorse"."0.0.10";
+  by-version."ironhorse"."0.0.10" = lib.makeOverridable self.buildNodePackage {
+    name = "node-ironhorse-0.0.10";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/ironhorse/-/ironhorse-0.0.9.tgz";
-        name = "ironhorse-0.0.9.tgz";
-        sha1 = "9cfaf75e464a0bf394d511a05c0a8b8de080a1d9";
+        url = "http://registry.npmjs.org/ironhorse/-/ironhorse-0.0.10.tgz";
+        name = "ironhorse-0.0.10.tgz";
+        sha1 = "98c1c9e29889fabbaaea0ce558501c47f9319856";
       })
     ];
     buildInputs =
@@ -8944,33 +8797,33 @@
       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.7.0"
-      self.by-version."express"."4.0.0"
-      self.by-version."jade"."1.3.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.0.2"
-      self.by-version."mongoose"."3.8.8"
-      self.by-version."gridfs-stream"."0.4.1"
-      self.by-version."temp"."0.7.0"
-      self.by-version."kue"."0.7.5"
-      self.by-version."redis"."0.10.1"
-      self.by-version."hiredis"."0.1.16"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "ironhorse" ];
   };
-  "ironhorse" = self.by-version."ironhorse"."0.0.9";
+  "ironhorse" = self.by-version."ironhorse"."0.0.10";
   by-spec."is-promise"."~1" =
-    self.by-version."is-promise"."1.0.0";
-  by-version."is-promise"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-is-promise-1.0.0";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/is-promise/-/is-promise-1.0.0.tgz";
-        name = "is-promise-1.0.0.tgz";
-        sha1 = "b998d17551f16f69f7bd4828f58f018cc81e064f";
+        url = "http://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz";
+        name = "is-promise-1.0.1.tgz";
+        sha1 = "31573761c057e33c2e91aab9e96da08cefbe76e5";
       })
     ];
     buildInputs =
@@ -8981,24 +8834,24 @@
     ];
     passthru.names = [ "is-promise" ];
   };
-  by-spec."is-root"."~0.1.0" =
-    self.by-version."is-root"."0.1.0";
-  by-version."is-root"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-is-root-0.1.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/is-root/-/is-root-0.1.0.tgz";
-        name = "is-root-0.1.0.tgz";
-        sha1 = "825e394ab593df2d73c5d0092fce507270b53dcb";
+        url = "http://registry.npmjs.org/is-utf8/-/is-utf8-0.2.0.tgz";
+        name = "is-utf8-0.2.0.tgz";
+        sha1 = "b8aa54125ae626bfe4e3beb965f16a89c58a1137";
       })
     ];
     buildInputs =
-      (self.nativeDeps."is-root" or []);
+      (self.nativeDeps."is-utf8" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "is-root" ];
+    passthru.names = [ "is-utf8" ];
   };
   by-spec."isarray"."0.0.1" =
     self.by-version."isarray"."0.0.1";
@@ -9019,15 +8872,17 @@
     ];
     passthru.names = [ "isarray" ];
   };
-  by-spec."isbinaryfile"."~0.1.8" =
-    self.by-version."isbinaryfile"."0.1.9";
-  by-version."isbinaryfile"."0.1.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-isbinaryfile-0.1.9";
+  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-0.1.9.tgz";
-        name = "isbinaryfile-0.1.9.tgz";
-        sha1 = "15eece35c4ab708d8924da99fb874f2b5cc0b6c4";
+        url = "http://registry.npmjs.org/isbinaryfile/-/isbinaryfile-2.0.1.tgz";
+        name = "isbinaryfile-2.0.1.tgz";
+        sha1 = "b92369bfdaf616027133e077c5ba145f36699d55";
       })
     ];
     buildInputs =
@@ -9038,90 +8893,99 @@
     ];
     passthru.names = [ "isbinaryfile" ];
   };
-  by-spec."isbinaryfile"."~0.1.9" =
-    self.by-version."isbinaryfile"."0.1.9";
-  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";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/isbinaryfile/-/isbinaryfile-2.0.1.tgz";
-        name = "isbinaryfile-2.0.1.tgz";
-        sha1 = "b92369bfdaf616027133e077c5ba145f36699d55";
+        url = "http://registry.npmjs.org/istanbul/-/istanbul-0.3.0.tgz";
+        name = "istanbul-0.3.0.tgz";
+        sha1 = "5b7179104942adbb0ec3e140d5e3d071db55abbd";
       })
     ];
     buildInputs =
-      (self.nativeDeps."isbinaryfile" or []);
+      (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"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "isbinaryfile" ];
+    passthru.names = [ "istanbul" ];
   };
-  by-spec."istanbul"."*" =
-    self.by-version."istanbul"."0.2.7";
-  by-version."istanbul"."0.2.7" = lib.makeOverridable self.buildNodePackage {
-    name = "istanbul-0.2.7";
+  "istanbul" = self.by-version."istanbul"."0.3.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/istanbul/-/istanbul-0.2.7.tgz";
-        name = "istanbul-0.2.7.tgz";
-        sha1 = "bb482e1d06a0fea00993a10b2ee266fc740642bc";
+        url = "http://registry.npmjs.org/istanbul/-/istanbul-0.2.16.tgz";
+        name = "istanbul-0.2.16.tgz";
+        sha1 = "870545a0d4f4b4ce161039e9e805a98c2c700bd9";
       })
     ];
     buildInputs =
       (self.nativeDeps."istanbul" or []);
     deps = [
-      self.by-version."esprima"."1.1.1"
-      self.by-version."escodegen"."1.3.2"
+      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.3.5"
-      self.by-version."nopt"."2.2.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.2.10"
+      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.6.3"
-      self.by-version."js-yaml"."3.0.2"
+      self.by-version."resolve"."0.7.4"
+      self.by-version."js-yaml"."3.1.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "istanbul" ];
   };
-  "istanbul" = self.by-version."istanbul"."0.2.7";
-  by-spec."istanbul"."~0.2.3" =
-    self.by-version."istanbul"."0.2.7";
-  by-spec."istanbul"."~0.2.4" =
-    self.by-version."istanbul"."0.2.7";
+  by-spec."istanbul"."~0.3.0" =
+    self.by-version."istanbul"."0.3.0";
   by-spec."jade"."*" =
-    self.by-version."jade"."1.3.1";
-  by-version."jade"."1.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "jade-1.3.1";
+    self.by-version."jade"."1.5.0";
+  by-version."jade"."1.5.0" = lib.makeOverridable self.buildNodePackage {
+    name = "jade-1.5.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/jade/-/jade-1.3.1.tgz";
-        name = "jade-1.3.1.tgz";
-        sha1 = "7483d848b8714dc50a40da98b0409790b374216b";
+        url = "http://registry.npmjs.org/jade/-/jade-1.5.0.tgz";
+        name = "jade-1.5.0.tgz";
+        sha1 = "74a93a5a290e11296c8b919b7a4d72301739b27e";
       })
     ];
     buildInputs =
       (self.nativeDeps."jade" or []);
     deps = [
       self.by-version."commander"."2.1.0"
-      self.by-version."mkdirp"."0.3.5"
+      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.0"
-      self.by-version."constantinople"."2.0.0"
+      self.by-version."with"."3.0.1"
+      self.by-version."constantinople"."2.0.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "jade" ];
   };
-  "jade" = self.by-version."jade"."1.3.1";
+  "jade" = self.by-version."jade"."1.5.0";
   by-spec."jade"."0.26.3" =
     self.by-version."jade"."0.26.3";
   by-version."jade"."0.26.3" = lib.makeOverridable self.buildNodePackage {
@@ -9191,7 +9055,7 @@
     passthru.names = [ "jade" ];
   };
   by-spec."jade".">= 0.0.1" =
-    self.by-version."jade"."1.3.1";
+    self.by-version."jade"."1.5.0";
   by-spec."jade"."~0.35.0" =
     self.by-version."jade"."0.35.0";
   by-version."jade"."0.35.0" = lib.makeOverridable self.buildNodePackage {
@@ -9219,14 +9083,14 @@
     passthru.names = [ "jade" ];
   };
   by-spec."jayschema"."*" =
-    self.by-version."jayschema"."0.2.7";
-  by-version."jayschema"."0.2.7" = lib.makeOverridable self.buildNodePackage {
-    name = "jayschema-0.2.7";
+    self.by-version."jayschema"."0.2.8";
+  by-version."jayschema"."0.2.8" = lib.makeOverridable self.buildNodePackage {
+    name = "jayschema-0.2.8";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/jayschema/-/jayschema-0.2.7.tgz";
-        name = "jayschema-0.2.7.tgz";
-        sha1 = "99d653a0c6ceec4f2c5932c5d73c835bb8911062";
+        url = "http://registry.npmjs.org/jayschema/-/jayschema-0.2.8.tgz";
+        name = "jayschema-0.2.8.tgz";
+        sha1 = "ea7883f501a4cdc7b91f48889f5774ea43159f17";
       })
     ];
     buildInputs =
@@ -9238,16 +9102,16 @@
     ];
     passthru.names = [ "jayschema" ];
   };
-  "jayschema" = self.by-version."jayschema"."0.2.7";
+  "jayschema" = self.by-version."jayschema"."0.2.8";
   by-spec."js-yaml"."*" =
-    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";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/js-yaml/-/js-yaml-3.0.2.tgz";
-        name = "js-yaml-3.0.2.tgz";
-        sha1 = "9937865f8e897a5e894e73c2c5cf2e89b32eb771";
+        url = "http://registry.npmjs.org/js-yaml/-/js-yaml-3.1.0.tgz";
+        name = "js-yaml-3.1.0.tgz";
+        sha1 = "36ba02e618c50748e772dd352428904cbbadcf44";
       })
     ];
     buildInputs =
@@ -9260,7 +9124,7 @@
     ];
     passthru.names = [ "js-yaml" ];
   };
-  "js-yaml" = self.by-version."js-yaml"."3.0.2";
+  "js-yaml" = self.by-version."js-yaml"."3.1.0";
   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 {
@@ -9323,7 +9187,7 @@
     passthru.names = [ "js-yaml" ];
   };
   by-spec."js-yaml"."3.x" =
-    self.by-version."js-yaml"."3.0.2";
+    self.by-version."js-yaml"."3.1.0";
   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 {
@@ -9347,6 +9211,25 @@
   };
   by-spec."js-yaml"."~3.0.1" =
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/js-yaml/-/js-yaml-3.0.2.tgz";
+        name = "js-yaml-3.0.2.tgz";
+        sha1 = "9937865f8e897a5e894e73c2c5cf2e89b32eb771";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."js-yaml" or []);
+    deps = [
+      self.by-version."argparse"."0.1.15"
+      self.by-version."esprima"."1.0.4"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "js-yaml" ];
+  };
   by-spec."jsesc"."0.4.3" =
     self.by-version."jsesc"."0.4.3";
   by-version."jsesc"."0.4.3" = lib.makeOverridable self.buildNodePackage {
@@ -9369,35 +9252,35 @@
   by-spec."jsesc"."~0.4.3" =
     self.by-version."jsesc"."0.4.3";
   by-spec."jshint"."*" =
-    self.by-version."jshint"."2.5.0";
-  by-version."jshint"."2.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "jshint-2.5.0";
+    self.by-version."jshint"."2.5.4";
+  by-version."jshint"."2.5.4" = lib.makeOverridable self.buildNodePackage {
+    name = "jshint-2.5.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/jshint/-/jshint-2.5.0.tgz";
-        name = "jshint-2.5.0.tgz";
-        sha1 = "82fd1a235ffce75fad1b40b2a38bef47beac8c54";
+        url = "http://registry.npmjs.org/jshint/-/jshint-2.5.4.tgz";
+        name = "jshint-2.5.4.tgz";
+        sha1 = "3dc82cb37b381b65f0e95ec7a616d39b4e95faef";
       })
     ];
     buildInputs =
       (self.nativeDeps."jshint" or []);
     deps = [
-      self.by-version."shelljs"."0.1.4"
-      self.by-version."underscore"."1.4.4"
-      self.by-version."cli"."0.4.5"
-      self.by-version."minimatch"."0.2.14"
-      self.by-version."htmlparser2"."3.3.0"
-      self.by-version."console-browserify"."0.1.6"
+      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.1"
+      self.by-version."strip-json-comments"."0.1.3"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "jshint" ];
   };
-  "jshint" = self.by-version."jshint"."2.5.0";
+  "jshint" = self.by-version."jshint"."2.5.4";
   by-spec."jshint"."~2.5.0" =
-    self.by-version."jshint"."2.5.0";
+    self.by-version."jshint"."2.5.4";
   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 {
@@ -9417,6 +9300,26 @@
     ];
     passthru.names = [ "json-schema" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz";
+        name = "json-stable-stringify-0.0.1.tgz";
+        sha1 = "611c23e814db375527df851193db59dd2af27f45";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."json-stable-stringify" or []);
+    deps = [
+      self.by-version."jsonify"."0.0.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "json-stable-stringify" ];
+  };
   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 {
@@ -9576,79 +9479,62 @@
     ];
     passthru.names = [ "jstransform" ];
   };
-  by-spec."junk"."~0.2.0" =
-    self.by-version."junk"."0.2.2";
-  by-version."junk"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-junk-0.2.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/junk/-/junk-0.2.2.tgz";
-        name = "junk-0.2.2.tgz";
-        sha1 = "d595eb199b37930cecd1f2c52820847e80e48ae7";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."junk" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "junk" ];
-  };
   by-spec."karma"."*" =
-    self.by-version."karma"."0.12.9";
-  by-version."karma"."0.12.9" = lib.makeOverridable self.buildNodePackage {
-    name = "karma-0.12.9";
+    self.by-version."karma"."0.12.22";
+  by-version."karma"."0.12.22" = lib.makeOverridable self.buildNodePackage {
+    name = "karma-0.12.22";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma/-/karma-0.12.9.tgz";
-        name = "karma-0.12.9.tgz";
-        sha1 = "9431735e50fcbd8ca04963a0e4da0b6550b41998";
+        url = "http://registry.npmjs.org/karma/-/karma-0.12.22.tgz";
+        name = "karma-0.12.22.tgz";
+        sha1 = "05073db2a1ba0638f15cb76a515563be34460dc7";
       })
     ];
     buildInputs =
       (self.nativeDeps."karma" or []);
     deps = [
       self.by-version."di"."0.0.1"
-      self.by-version."socket.io"."0.9.16"
-      self.by-version."chokidar"."0.8.2"
-      self.by-version."glob"."3.2.9"
+      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.6"
+      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.14"
-      self.by-version."useragent"."2.0.8"
+      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.33"
+      self.by-version."source-map"."0.1.38"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "karma" ];
   };
-  "karma" = self.by-version."karma"."0.12.9";
+  "karma" = self.by-version."karma"."0.12.22";
   by-spec."karma".">=0.11.11" =
-    self.by-version."karma"."0.12.9";
+    self.by-version."karma"."0.12.22";
+  by-spec."karma".">=0.12.8" =
+    self.by-version."karma"."0.12.22";
   by-spec."karma".">=0.9" =
-    self.by-version."karma"."0.12.9";
+    self.by-version."karma"."0.12.22";
   by-spec."karma".">=0.9.3" =
-    self.by-version."karma"."0.12.9";
+    self.by-version."karma"."0.12.22";
   by-spec."karma"."~0.12.0" =
-    self.by-version."karma"."0.12.9";
+    self.by-version."karma"."0.12.22";
   by-spec."karma-chrome-launcher"."*" =
-    self.by-version."karma-chrome-launcher"."0.1.3";
-  by-version."karma-chrome-launcher"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-karma-chrome-launcher-0.1.3";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-0.1.3.tgz";
-        name = "karma-chrome-launcher-0.1.3.tgz";
-        sha1 = "b7f82dd9c83c84d26355bf31159739706973a3ec";
+        url = "http://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-0.1.4.tgz";
+        name = "karma-chrome-launcher-0.1.4.tgz";
+        sha1 = "492f6b8ceed3dacb829b147514c9106660f1b185";
       })
     ];
     buildInputs =
@@ -9656,35 +9542,36 @@
     deps = [
     ];
     peerDependencies = [
-      self.by-version."karma"."0.12.9"
+      self.by-version."karma"."0.12.22"
     ];
     passthru.names = [ "karma-chrome-launcher" ];
   };
-  "karma-chrome-launcher" = self.by-version."karma-chrome-launcher"."0.1.3";
+  "karma-chrome-launcher" = self.by-version."karma-chrome-launcher"."0.1.4";
   by-spec."karma-coverage"."*" =
-    self.by-version."karma-coverage"."0.2.1";
-  by-version."karma-coverage"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-karma-coverage-0.2.1";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-coverage/-/karma-coverage-0.2.1.tgz";
-        name = "karma-coverage-0.2.1.tgz";
-        sha1 = "3b1bce268711a631e008e108930906eceae0a623";
+        url = "http://registry.npmjs.org/karma-coverage/-/karma-coverage-0.2.6.tgz";
+        name = "karma-coverage-0.2.6.tgz";
+        sha1 = "6ab53e69a03a6e0fe2a0563216895a720040fca9";
       })
     ];
     buildInputs =
       (self.nativeDeps."karma-coverage" or []);
     deps = [
-      self.by-version."istanbul"."0.2.7"
+      self.by-version."istanbul"."0.3.0"
       self.by-version."ibrik"."1.1.1"
-      self.by-version."dateformat"."1.0.7-1.2.3"
+      self.by-version."dateformat"."1.0.8-1.2.3"
+      self.by-version."minimatch"."0.3.0"
     ];
     peerDependencies = [
-      self.by-version."karma"."0.12.9"
+      self.by-version."karma"."0.12.22"
     ];
     passthru.names = [ "karma-coverage" ];
   };
-  "karma-coverage" = self.by-version."karma-coverage"."0.2.1";
+  "karma-coverage" = self.by-version."karma-coverage"."0.2.6";
   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 {
@@ -9702,20 +9589,20 @@
       self.by-version."xmlbuilder"."0.4.2"
     ];
     peerDependencies = [
-      self.by-version."karma"."0.12.9"
+      self.by-version."karma"."0.12.22"
     ];
     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.3";
-  by-version."karma-mocha"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-karma-mocha-0.1.3";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-mocha/-/karma-mocha-0.1.3.tgz";
-        name = "karma-mocha-0.1.3.tgz";
-        sha1 = "396e44be8ddb4abf28bfca0387924c3aeddbce1a";
+        url = "http://registry.npmjs.org/karma-mocha/-/karma-mocha-0.1.8.tgz";
+        name = "karma-mocha-0.1.8.tgz";
+        sha1 = "7f086bd06ab6151cbd5b0cf1614c15344963fdf6";
       })
     ];
     buildInputs =
@@ -9723,21 +9610,21 @@
     deps = [
     ];
     peerDependencies = [
-      self.by-version."karma"."0.12.9"
-      self.by-version."mocha"."1.18.2"
+      self.by-version."karma"."0.12.22"
+      self.by-version."mocha"."1.21.4"
     ];
     passthru.names = [ "karma-mocha" ];
   };
-  "karma-mocha" = self.by-version."karma-mocha"."0.1.3";
+  "karma-mocha" = self.by-version."karma-mocha"."0.1.8";
   by-spec."karma-requirejs"."*" =
-    self.by-version."karma-requirejs"."0.2.1";
-  by-version."karma-requirejs"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-karma-requirejs-0.2.1";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-requirejs/-/karma-requirejs-0.2.1.tgz";
-        name = "karma-requirejs-0.2.1.tgz";
-        sha1 = "7f3ac5df67bccd9d832a928ec658d733ec983c5d";
+        url = "http://registry.npmjs.org/karma-requirejs/-/karma-requirejs-0.2.2.tgz";
+        name = "karma-requirejs-0.2.2.tgz";
+        sha1 = "e497ca0868e2e09a9b8e3f646745c31a935fe8b6";
       })
     ];
     buildInputs =
@@ -9745,46 +9632,46 @@
     deps = [
     ];
     peerDependencies = [
-      self.by-version."karma"."0.12.9"
-      self.by-version."requirejs"."2.1.11"
+      self.by-version."karma"."0.12.22"
+      self.by-version."requirejs"."2.1.14"
     ];
     passthru.names = [ "karma-requirejs" ];
   };
-  "karma-requirejs" = self.by-version."karma-requirejs"."0.2.1";
+  "karma-requirejs" = self.by-version."karma-requirejs"."0.2.2";
   by-spec."karma-sauce-launcher"."*" =
-    self.by-version."karma-sauce-launcher"."0.2.7";
-  by-version."karma-sauce-launcher"."0.2.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-karma-sauce-launcher-0.2.7";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-sauce-launcher/-/karma-sauce-launcher-0.2.7.tgz";
-        name = "karma-sauce-launcher-0.2.7.tgz";
-        sha1 = "a87a0b2e3612b298f3f6c2a96839940af85ac849";
+        url = "http://registry.npmjs.org/karma-sauce-launcher/-/karma-sauce-launcher-0.2.10.tgz";
+        name = "karma-sauce-launcher-0.2.10.tgz";
+        sha1 = "9aed0df47934c630d2ceb7faa954f5c454deddb0";
       })
     ];
     buildInputs =
       (self.nativeDeps."karma-sauce-launcher" or []);
     deps = [
-      self.by-version."wd"."0.2.19"
-      self.by-version."sauce-connect-launcher"."0.4.2"
+      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"
     ];
     peerDependencies = [
-      self.by-version."karma"."0.12.9"
+      self.by-version."karma"."0.12.22"
     ];
     passthru.names = [ "karma-sauce-launcher" ];
   };
-  "karma-sauce-launcher" = self.by-version."karma-sauce-launcher"."0.2.7";
-  by-spec."keen.io"."~0.0.4" =
-    self.by-version."keen.io"."0.0.4";
-  by-version."keen.io"."0.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-keen.io-0.0.4";
+  "karma-sauce-launcher" = self.by-version."karma-sauce-launcher"."0.2.10";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/keen.io/-/keen.io-0.0.4.tgz";
-        name = "keen.io-0.0.4.tgz";
-        sha1 = "041caa79371a6bec51288e222f3bb2e05c7e6b25";
+        url = "http://registry.npmjs.org/keen.io/-/keen.io-0.1.2.tgz";
+        name = "keen.io-0.1.2.tgz";
+        sha1 = "a55b9d1d8b4354a8845f2a224eb3a6f7271378b2";
       })
     ];
     buildInputs =
@@ -9855,14 +9742,14 @@
     passthru.names = [ "kew" ];
   };
   by-spec."keygrip"."~1.0.0" =
-    self.by-version."keygrip"."1.0.0";
-  by-version."keygrip"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/keygrip/-/keygrip-1.0.0.tgz";
-        name = "keygrip-1.0.0.tgz";
-        sha1 = "b771120e8e697b8692b76866a84cdff3912fc379";
+        url = "http://registry.npmjs.org/keygrip/-/keygrip-1.0.1.tgz";
+        name = "keygrip-1.0.1.tgz";
+        sha1 = "b02fa4816eef21a8c4b35ca9e52921ffc89a30e9";
       })
     ];
     buildInputs =
@@ -9914,47 +9801,126 @@
     passthru.names = [ "knockout" ];
   };
   by-spec."knox"."*" =
-    self.by-version."knox"."0.8.9";
-  by-version."knox"."0.8.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-knox-0.8.9";
+    self.by-version."knox"."0.9.0";
+  by-version."knox"."0.9.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-knox-0.9.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/knox/-/knox-0.8.9.tgz";
-        name = "knox-0.8.9.tgz";
-        sha1 = "b96ec0b4ec1be75d8006f80cb302bfa818d7001c";
+        url = "http://registry.npmjs.org/knox/-/knox-0.9.0.tgz";
+        name = "knox-0.9.0.tgz";
+        sha1 = "8810e1dfe4332db505a796f5c9a11aee8b393e2c";
       })
     ];
     buildInputs =
       (self.nativeDeps."knox" or []);
     deps = [
       self.by-version."mime"."1.2.11"
-      self.by-version."xml2js"."0.2.8"
-      self.by-version."debug"."0.7.4"
-      self.by-version."stream-counter"."0.1.0"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "knox" ];
   };
-  "knox" = self.by-version."knox"."0.8.9";
+  "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" ];
+  };
   by-spec."kue"."*" =
-    self.by-version."kue"."0.7.5";
-  by-version."kue"."0.7.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-kue-0.7.5";
+    self.by-version."kue"."0.8.5";
+  by-version."kue"."0.8.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-kue-0.8.5";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/kue/-/kue-0.7.5.tgz";
-        name = "kue-0.7.5.tgz";
-        sha1 = "d815a8a35b22dd28df3f54f0b874403a257dc807";
+        url = "http://registry.npmjs.org/kue/-/kue-0.8.5.tgz";
+        name = "kue-0.8.5.tgz";
+        sha1 = "253d7a9a0bdd086100e48bbcce6c7dfad3381ed4";
       })
     ];
     buildInputs =
       (self.nativeDeps."kue" or []);
     deps = [
-      self.by-version."redis"."0.10.1"
+      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"
     ];
@@ -9962,7 +9928,29 @@
     ];
     passthru.names = [ "kue" ];
   };
-  "kue" = self.by-version."kue"."0.7.5";
+  "kue" = self.by-version."kue"."0.8.5";
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-1.0.0.tgz";
+        name = "labeled-stream-splicer-1.0.0.tgz";
+        sha1 = "cb1282bc2d8e9a4bfb3bcda184e8f017deea7c1d";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "labeled-stream-splicer" ];
+  };
   by-spec."lazy"."~1.0.11" =
     self.by-version."lazy"."1.0.11";
   by-version."lazy"."1.0.11" = lib.makeOverridable self.buildNodePackage {
@@ -9996,7 +9984,7 @@
     buildInputs =
       (self.nativeDeps."lazystream" or []);
     deps = [
-      self.by-version."readable-stream"."1.0.27-1"
+      self.by-version."readable-stream"."1.0.31"
     ];
     peerDependencies = [
     ];
@@ -10022,55 +10010,56 @@
     passthru.names = [ "lcov-parse" ];
   };
   by-spec."lcov-result-merger"."*" =
-    self.by-version."lcov-result-merger"."0.0.2";
-  by-version."lcov-result-merger"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "lcov-result-merger-0.0.2";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/lcov-result-merger/-/lcov-result-merger-0.0.2.tgz";
-        name = "lcov-result-merger-0.0.2.tgz";
-        sha1 = "72a538c09f76e5c79b511bcd1053948d4aa98f10";
+        url = "http://registry.npmjs.org/lcov-result-merger/-/lcov-result-merger-1.0.0.tgz";
+        name = "lcov-result-merger-1.0.0.tgz";
+        sha1 = "c0afba9711b1cd8ef6a43e71254a39a9882f6ff5";
       })
     ];
     buildInputs =
       (self.nativeDeps."lcov-result-merger" or []);
     deps = [
-      self.by-version."glob"."3.2.9"
+      self.by-version."through2"."0.5.1"
+      self.by-version."vinyl"."0.2.3"
+      self.by-version."vinyl-fs"."0.3.6"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "lcov-result-merger" ];
   };
-  "lcov-result-merger" = self.by-version."lcov-result-merger"."0.0.2";
+  "lcov-result-merger" = self.by-version."lcov-result-merger"."1.0.0";
   by-spec."less"."*" =
-    self.by-version."less"."1.7.0";
-  by-version."less"."1.7.0" = lib.makeOverridable self.buildNodePackage {
-    name = "less-1.7.0";
+    self.by-version."less"."1.7.4";
+  by-version."less"."1.7.4" = lib.makeOverridable self.buildNodePackage {
+    name = "less-1.7.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/less/-/less-1.7.0.tgz";
-        name = "less-1.7.0.tgz";
-        sha1 = "6f1293bac1f402c932c2ce21ba7337f7c635ba84";
+        url = "http://registry.npmjs.org/less/-/less-1.7.4.tgz";
+        name = "less-1.7.4.tgz";
+        sha1 = "1db03afd0d1b848d898d10d2690d79ee3834026d";
       })
     ];
     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.33"
+      self.by-version."source-map"."0.1.38"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "less" ];
   };
-  "less" = self.by-version."less"."1.7.0";
-  by-spec."less"."^1.7.0" =
-    self.by-version."less"."1.7.0";
-  by-spec."less"."~1.7.0" =
-    self.by-version."less"."1.7.0";
+  "less" = self.by-version."less"."1.7.4";
+  by-spec."less"."^1.7.2" =
+    self.by-version."less"."1.7.4";
   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 {
@@ -10091,35 +10080,36 @@
     ];
     passthru.names = [ "lexical-scope" ];
   };
-  by-spec."libxmljs"."~0.8.1" =
-    self.by-version."libxmljs"."0.8.1";
-  by-version."libxmljs"."0.8.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-libxmljs-0.8.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/libxmljs/-/libxmljs-0.8.1.tgz";
-        name = "libxmljs-0.8.1.tgz";
-        sha1 = "b8b1d3962a92dbc5be9dc798bac028e09db8d630";
+        url = "http://registry.npmjs.org/libxmljs/-/libxmljs-0.10.0.tgz";
+        name = "libxmljs-0.10.0.tgz";
+        sha1 = "847eb4b0545b02d1c235e1f8371818cf709d3256";
       })
     ];
     buildInputs =
       (self.nativeDeps."libxmljs" or []);
     deps = [
-      self.by-version."bindings"."1.0.0"
+      self.by-version."bindings"."1.1.1"
+      self.by-version."nan"."1.1.2"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "libxmljs" ];
   };
   by-spec."libyaml"."*" =
-    self.by-version."libyaml"."0.2.3";
-  by-version."libyaml"."0.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-libyaml-0.2.3";
+    self.by-version."libyaml"."0.2.4";
+  by-version."libyaml"."0.2.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-libyaml-0.2.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/libyaml/-/libyaml-0.2.3.tgz";
-        name = "libyaml-0.2.3.tgz";
-        sha1 = "c07e7fefcad6e09218ebf9ff814bbd520172add6";
+        url = "http://registry.npmjs.org/libyaml/-/libyaml-0.2.4.tgz";
+        name = "libyaml-0.2.4.tgz";
+        sha1 = "46b6abe00ef0bc0ac60ca599c0e7c80ff920e959";
       })
     ];
     buildInputs =
@@ -10130,16 +10120,16 @@
     ];
     passthru.names = [ "libyaml" ];
   };
-  "libyaml" = self.by-version."libyaml"."0.2.3";
+  "libyaml" = self.by-version."libyaml"."0.2.4";
   by-spec."lockfile"."~0.4.0" =
-    self.by-version."lockfile"."0.4.2";
-  by-version."lockfile"."0.4.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lockfile-0.4.2";
+    self.by-version."lockfile"."0.4.3";
+  by-version."lockfile"."0.4.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-lockfile-0.4.3";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/lockfile/-/lockfile-0.4.2.tgz";
-        name = "lockfile-0.4.2.tgz";
-        sha1 = "ab91f5d3745bc005ae4fa34d078910d1f2b9612d";
+        url = "http://registry.npmjs.org/lockfile/-/lockfile-0.4.3.tgz";
+        name = "lockfile-0.4.3.tgz";
+        sha1 = "79b965ee9b32d9dd24b59cf81205e6dcb6d3b224";
       })
     ];
     buildInputs =
@@ -10150,9 +10140,7 @@
     ];
     passthru.names = [ "lockfile" ];
   };
-  by-spec."lockfile"."~0.4.2" =
-    self.by-version."lockfile"."0.4.2";
-  by-spec."lodash"."^2.4.1" =
+  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";
@@ -10171,25 +10159,10 @@
     ];
     passthru.names = [ "lodash" ];
   };
-  by-spec."lodash"."~0.10.0" =
-    self.by-version."lodash"."0.10.0";
-  by-version."lodash"."0.10.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lodash-0.10.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/lodash/-/lodash-0.10.0.tgz";
-        name = "lodash-0.10.0.tgz";
-        sha1 = "5254bbc2c46c827f535a27d631fd4f2bff374ce7";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."lodash" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "lodash" ];
-  };
+  by-spec."lodash".">=2.4.1" =
+    self.by-version."lodash"."2.4.1";
+  by-spec."lodash"."^2.4.1" =
+    self.by-version."lodash"."2.4.1";
   by-spec."lodash"."~0.9.2" =
     self.by-version."lodash"."0.9.2";
   by-version."lodash"."0.9.2" = lib.makeOverridable self.buildNodePackage {
@@ -10209,55 +10182,15 @@
     ];
     passthru.names = [ "lodash" ];
   };
-  by-spec."lodash"."~1.2.1" =
-    self.by-version."lodash"."1.2.1";
-  by-version."lodash"."1.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lodash-1.2.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/lodash/-/lodash-1.2.1.tgz";
-        name = "lodash-1.2.1.tgz";
-        sha1 = "ed47b16e46f06b2b40309b68e9163c17e93ea304";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."lodash" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "lodash" ];
-  };
-  by-spec."lodash"."~1.3.0" =
-    self.by-version."lodash"."1.3.1";
-  by-version."lodash"."1.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lodash-1.3.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/lodash/-/lodash-1.3.1.tgz";
-        name = "lodash-1.3.1.tgz";
-        sha1 = "a4663b53686b895ff074e2ba504dfb76a8e2b770";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."lodash" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "lodash" ];
-  };
-  by-spec."lodash"."~1.3.1" =
-    self.by-version."lodash"."1.3.1";
-  by-spec."lodash"."~2.1.0" =
-    self.by-version."lodash"."2.1.0";
-  by-version."lodash"."2.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lodash-2.1.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/lodash/-/lodash-2.1.0.tgz";
-        name = "lodash-2.1.0.tgz";
-        sha1 = "0637eaaa36a8a1cfc865c3adfb942189bfb0998d";
+        url = "http://registry.npmjs.org/lodash/-/lodash-1.0.1.tgz";
+        name = "lodash-1.0.1.tgz";
+        sha1 = "57945732498d92310e5bd4b1ff4f273a79e6c9fc";
       })
     ];
     buildInputs =
@@ -10268,27 +10201,28 @@
     ];
     passthru.names = [ "lodash" ];
   };
-  by-spec."lodash"."~2.2.1" =
-    self.by-version."lodash"."2.2.1";
-  by-version."lodash"."2.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lodash-2.2.1";
+  by-spec."lodash"."~2.4.1" =
+    self.by-version."lodash"."2.4.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/lodash/-/lodash-2.2.1.tgz";
-        name = "lodash-2.2.1.tgz";
-        sha1 = "ca935fd14ab3c0c872abacf198b9cda501440867";
+        url = "http://registry.npmjs.org/lodash-deep/-/lodash-deep-1.2.1.tgz";
+        name = "lodash-deep-1.2.1.tgz";
+        sha1 = "04ea62f43112151388de983f7e07c3e6ded07225";
       })
     ];
     buildInputs =
-      (self.nativeDeps."lodash" or []);
+      (self.nativeDeps."lodash-deep" or []);
     deps = [
+      self.by-version."lodash"."2.4.1"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "lodash" ];
+    passthru.names = [ "lodash-deep" ];
   };
-  by-spec."lodash"."~2.4.1" =
-    self.by-version."lodash"."2.4.1";
   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 {
@@ -10308,197 +10242,15 @@
     ];
     passthru.names = [ "lodash-node" ];
   };
-  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 = "node-lodash._isnative-2.4.1";
-    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 = "node-lodash._objecttypes-2.4.1";
-    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._shimkeys"."~2.4.1" =
-    self.by-version."lodash._shimkeys"."2.4.1";
-  by-version."lodash._shimkeys"."2.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lodash._shimkeys-2.4.1";
-    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 = [
-      self.by-version."lodash._objecttypes"."2.4.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "lodash._shimkeys" ];
-  };
-  by-spec."lodash.debounce"."~2.4.1" =
-    self.by-version."lodash.debounce"."2.4.1";
-  by-version."lodash.debounce"."2.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lodash.debounce-2.4.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/lodash.debounce/-/lodash.debounce-2.4.1.tgz";
-        name = "lodash.debounce-2.4.1.tgz";
-        sha1 = "d8cead246ec4b926e8b85678fc396bfeba8cc6fc";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."lodash.debounce" or []);
-    deps = [
-      self.by-version."lodash.isfunction"."2.4.1"
-      self.by-version."lodash.isobject"."2.4.1"
-      self.by-version."lodash.now"."2.4.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "lodash.debounce" ];
-  };
-  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 = "node-lodash.defaults-2.4.1";
-    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 = [
-      self.by-version."lodash.keys"."2.4.1"
-      self.by-version."lodash._objecttypes"."2.4.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "lodash.defaults" ];
-  };
-  by-spec."lodash.isfunction"."~2.4.1" =
-    self.by-version."lodash.isfunction"."2.4.1";
-  by-version."lodash.isfunction"."2.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lodash.isfunction-2.4.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-2.4.1.tgz";
-        name = "lodash.isfunction-2.4.1.tgz";
-        sha1 = "2cfd575c73e498ab57e319b77fa02adef13a94d1";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."lodash.isfunction" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "lodash.isfunction" ];
-  };
-  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 = "node-lodash.isobject-2.4.1";
-    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 = [
-      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 = "node-lodash.keys-2.4.1";
-    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 = [
-      self.by-version."lodash._isnative"."2.4.1"
-      self.by-version."lodash.isobject"."2.4.1"
-      self.by-version."lodash._shimkeys"."2.4.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "lodash.keys" ];
-  };
-  by-spec."lodash.now"."~2.4.1" =
-    self.by-version."lodash.now"."2.4.1";
-  by-version."lodash.now"."2.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lodash.now-2.4.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/lodash.now/-/lodash.now-2.4.1.tgz";
-        name = "lodash.now-2.4.1.tgz";
-        sha1 = "6872156500525185faf96785bb7fe7fe15b562c6";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."lodash.now" or []);
-    deps = [
-      self.by-version."lodash._isnative"."2.4.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "lodash.now" ];
-  };
-  by-spec."log-driver"."1.2.1" =
-    self.by-version."log-driver"."1.2.1";
-  by-version."log-driver"."1.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-log-driver-1.2.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/log-driver/-/log-driver-1.2.1.tgz";
-        name = "log-driver-1.2.1.tgz";
-        sha1 = "ada8202a133e99764306652e195e28268b0bea5b";
+        url = "http://registry.npmjs.org/log-driver/-/log-driver-1.2.4.tgz";
+        name = "log-driver-1.2.4.tgz";
+        sha1 = "2d62d7faef45d8a71341961a04b0761eca99cfa3";
       })
     ];
     buildInputs =
@@ -10510,14 +10262,14 @@
     passthru.names = [ "log-driver" ];
   };
   by-spec."log4js"."~0.6.3" =
-    self.by-version."log4js"."0.6.14";
-  by-version."log4js"."0.6.14" = lib.makeOverridable self.buildNodePackage {
-    name = "node-log4js-0.6.14";
+    self.by-version."log4js"."0.6.18";
+  by-version."log4js"."0.6.18" = lib.makeOverridable self.buildNodePackage {
+    name = "node-log4js-0.6.18";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/log4js/-/log4js-0.6.14.tgz";
-        name = "log4js-0.6.14.tgz";
-        sha1 = "7c26a0a25536b42bafa17fd937b87536fad3b229";
+        url = "http://registry.npmjs.org/log4js/-/log4js-0.6.18.tgz";
+        name = "log4js-0.6.18.tgz";
+        sha1 = "b362d629b02e111434839502b5a24b3201f5d805";
       })
     ];
     buildInputs =
@@ -10525,31 +10277,12 @@
     deps = [
       self.by-version."async"."0.1.15"
       self.by-version."semver"."1.1.4"
-      self.by-version."readable-stream"."1.0.27-1"
+      self.by-version."readable-stream"."1.0.31"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "log4js" ];
   };
-  by-spec."long"."*" =
-    self.by-version."long"."1.1.2";
-  by-version."long"."1.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-long-1.1.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/long/-/long-1.1.2.tgz";
-        name = "long-1.1.2.tgz";
-        sha1 = "eaef5951ca7551d96926b82da242db9d6b28fb53";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."long" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "long" ];
-  };
   by-spec."longjohn"."~0.2.2" =
     self.by-version."longjohn"."0.2.4";
   by-version."longjohn"."0.2.4" = lib.makeOverridable self.buildNodePackage {
@@ -10645,6 +10378,8 @@
     ];
     passthru.names = [ "lru-cache" ];
   };
+  by-spec."lru-cache"."2.5.x" =
+    self.by-version."lru-cache"."2.5.0";
   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 {
@@ -10664,25 +10399,6 @@
     ];
     passthru.names = [ "lru-cache" ];
   };
-  by-spec."lru-cache"."~2.3.0" =
-    self.by-version."lru-cache"."2.3.1";
-  by-version."lru-cache"."2.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lru-cache-2.3.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/lru-cache/-/lru-cache-2.3.1.tgz";
-        name = "lru-cache-2.3.1.tgz";
-        sha1 = "b3adf6b3d856e954e2c390e6cef22081245a53d6";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."lru-cache" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "lru-cache" ];
-  };
   by-spec."lru-cache"."~2.5.0" =
     self.by-version."lru-cache"."2.5.0";
   by-spec."lsmod"."~0.0.3" =
@@ -10705,50 +10421,29 @@
     passthru.names = [ "lsmod" ];
   };
   by-spec."mailcomposer".">= 0.1.27" =
-    self.by-version."mailcomposer"."0.2.9";
-  by-version."mailcomposer"."0.2.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mailcomposer-0.2.9";
+    self.by-version."mailcomposer"."0.2.12";
+  by-version."mailcomposer"."0.2.12" = lib.makeOverridable self.buildNodePackage {
+    name = "node-mailcomposer-0.2.12";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/mailcomposer/-/mailcomposer-0.2.9.tgz";
-        name = "mailcomposer-0.2.9.tgz";
-        sha1 = "2b6417a4fb5de8ffcaf1a27e1b024463903f908e";
+        url = "http://registry.npmjs.org/mailcomposer/-/mailcomposer-0.2.12.tgz";
+        name = "mailcomposer-0.2.12.tgz";
+        sha1 = "4d02a604616adcb45fb36d37513f4c1bd0b75681";
       })
     ];
     buildInputs =
       (self.nativeDeps."mailcomposer" or []);
     deps = [
-      self.by-version."mimelib"."0.2.14"
+      self.by-version."mimelib"."0.2.17"
       self.by-version."mime"."1.2.11"
       self.by-version."he"."0.3.6"
-      self.by-version."punycode"."1.2.4"
       self.by-version."follow-redirects"."0.0.3"
-      self.by-version."dkim-signer"."0.1.0"
+      self.by-version."dkim-signer"."0.1.2"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "mailcomposer" ];
   };
-  by-spec."map-key"."^0.1.1" =
-    self.by-version."map-key"."0.1.1";
-  by-version."map-key"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-map-key-0.1.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/map-key/-/map-key-0.1.1.tgz";
-        name = "map-key-0.1.1.tgz";
-        sha1 = "cf0d6ad80ae145477d25904c9eb44b23ac471c8b";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."map-key" or []);
-    deps = [
-      self.by-version."mout"."0.9.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "map-key" ];
-  };
   by-spec."marked"."*" =
     self.by-version."marked"."0.3.2";
   by-version."marked"."0.3.2" = lib.makeOverridable self.buildNodePackage {
@@ -10769,6 +10464,8 @@
     passthru.names = [ "marked" ];
   };
   "marked" = self.by-version."marked"."0.3.2";
+  by-spec."marked".">=0.3.1" =
+    self.by-version."marked"."0.3.2";
   by-spec."maxmin"."^0.1.0" =
     self.by-version."maxmin"."0.1.0";
   by-version."maxmin"."0.1.0" = lib.makeOverridable self.buildNodePackage {
@@ -10784,15 +10481,38 @@
       (self.nativeDeps."maxmin" or []);
     deps = [
       self.by-version."gzip-size"."0.1.1"
-      self.by-version."pretty-bytes"."0.1.0"
+      self.by-version."pretty-bytes"."0.1.2"
       self.by-version."chalk"."0.4.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "maxmin" ];
   };
-  by-spec."maxmin"."~0.1.0" =
-    self.by-version."maxmin"."0.1.0";
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/maxmin/-/maxmin-0.2.2.tgz";
+        name = "maxmin-0.2.2.tgz";
+        sha1 = "a36ced8cc22e3abcd108cfb797a3a4b40275593f";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "maxmin" ];
+  };
+  by-spec."maxmin"."~0.2.0" =
+    self.by-version."maxmin"."0.2.2";
   by-spec."meat"."*" =
     self.by-version."meat"."0.2.5";
   by-version."meat"."0.2.5" = lib.makeOverridable self.buildNodePackage {
@@ -10819,28 +10539,27 @@
     passthru.names = [ "meat" ];
   };
   "meat" = self.by-version."meat"."0.2.5";
-  by-spec."memoizee"."~0.2.5" =
-    self.by-version."memoizee"."0.2.6";
-  by-version."memoizee"."0.2.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-memoizee-0.2.6";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/memoizee/-/memoizee-0.2.6.tgz";
-        name = "memoizee-0.2.6.tgz";
-        sha1 = "bb45a7ad02530082f1612671dab35219cd2e0741";
+        url = "http://registry.npmjs.org/media-typer/-/media-typer-0.2.0.tgz";
+        name = "media-typer-0.2.0.tgz";
+        sha1 = "d8a065213adfeaa2e76321a2b6dda36ff6335984";
       })
     ];
     buildInputs =
-      (self.nativeDeps."memoizee" or []);
+      (self.nativeDeps."media-typer" or []);
     deps = [
-      self.by-version."es5-ext"."0.9.2"
-      self.by-version."event-emitter"."0.2.2"
-      self.by-version."next-tick"."0.1.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "memoizee" ];
+    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 {
@@ -10860,27 +10579,49 @@
     ];
     passthru.names = [ "merge-descriptors" ];
   };
-  by-spec."method-override"."1.0.0" =
-    self.by-version."method-override"."1.0.0";
-  by-version."method-override"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-method-override-1.0.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/method-override/-/method-override-1.0.0.tgz";
-        name = "method-override-1.0.0.tgz";
-        sha1 = "9e5bfbd80f3b9e043801dd3fe60bbab0f15b5f61";
+        url = "http://registry.npmjs.org/method-override/-/method-override-2.1.3.tgz";
+        name = "method-override-2.1.3.tgz";
+        sha1 = "511f41c4fb1dccdb6ab1844da5dc6ea81b7c1135";
       })
     ];
     buildInputs =
       (self.nativeDeps."method-override" or []);
     deps = [
-      self.by-version."methods"."0.1.0"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "method-override" ];
   };
-  by-spec."methods"."*" =
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/methods/-/methods-0.0.1.tgz";
+        name = "methods-0.0.1.tgz";
+        sha1 = "277c90f8bef39709645a8371c51c3b6c648e068c";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."methods" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "methods" ];
+  };
+  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";
@@ -10899,15 +10640,53 @@
     ];
     passthru.names = [ "methods" ];
   };
-  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";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/methods/-/methods-0.0.1.tgz";
-        name = "methods-0.0.1.tgz";
-        sha1 = "277c90f8bef39709645a8371c51c3b6c648e068c";
+        url = "http://registry.npmjs.org/methods/-/methods-1.0.0.tgz";
+        name = "methods-1.0.0.tgz";
+        sha1 = "9a73d86375dfcef26ef61ca3e4b8a2e2538a80e3";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."methods" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "methods" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/methods/-/methods-1.0.1.tgz";
+        name = "methods-1.0.1.tgz";
+        sha1 = "75bc91943dffd7da037cf3eeb0ed73a0037cd14b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."methods" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "methods" ];
+  };
+  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 =
@@ -10918,8 +10697,6 @@
     ];
     passthru.names = [ "methods" ];
   };
-  by-spec."methods"."0.1.0" =
-    self.by-version."methods"."0.1.0";
   by-spec."mime"."*" =
     self.by-version."mime"."1.2.11";
   by-version."mime"."1.2.11" = lib.makeOverridable self.buildNodePackage {
@@ -11017,8 +10794,6 @@
     ];
     passthru.names = [ "mime" ];
   };
-  by-spec."mime"."1.2.x" =
-    self.by-version."mime"."1.2.11";
   by-spec."mime".">= 0.0.1" =
     self.by-version."mime"."1.2.11";
   by-spec."mime"."~1.2.11" =
@@ -11029,21 +10804,61 @@
     self.by-version."mime"."1.2.11";
   by-spec."mime"."~1.2.9" =
     self.by-version."mime"."1.2.11";
-  by-spec."mimelib"."~0.2.14" =
-    self.by-version."mimelib"."0.2.14";
-  by-version."mimelib"."0.2.14" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mimelib-0.2.14";
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/mime-types/-/mime-types-1.0.0.tgz";
+        name = "mime-types-1.0.0.tgz";
+        sha1 = "6a7b4a6af2e7d92f97afe03f047c7801e8f001d2";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."mime-types" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "mime-types" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz";
+        name = "mime-types-1.0.2.tgz";
+        sha1 = "995ae1392ab8affcbfcb2641dd054e943c0d5dce";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."mime-types" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "mime-types" ];
+  };
+  by-spec."mime-types"."~1.0.1" =
+    self.by-version."mime-types"."1.0.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/mimelib/-/mimelib-0.2.14.tgz";
-        name = "mimelib-0.2.14.tgz";
-        sha1 = "2a1aa724bd190b85bd526e6317ab6106edfd6831";
+        url = "http://registry.npmjs.org/mimelib/-/mimelib-0.2.17.tgz";
+        name = "mimelib-0.2.17.tgz";
+        sha1 = "6b0cb91a6451b92649e4cc98c5b64eed2d19a4aa";
       })
     ];
     buildInputs =
       (self.nativeDeps."mimelib" or []);
     deps = [
-      self.by-version."encoding"."0.1.7"
+      self.by-version."encoding"."0.1.8"
       self.by-version."addressparser"."0.2.1"
     ];
     peerDependencies = [
@@ -11051,14 +10866,14 @@
     passthru.names = [ "mimelib" ];
   };
   by-spec."minimatch"."0" =
-    self.by-version."minimatch"."0.2.14";
-  by-version."minimatch"."0.2.14" = lib.makeOverridable self.buildNodePackage {
-    name = "node-minimatch-0.2.14";
+    self.by-version."minimatch"."0.4.0";
+  by-version."minimatch"."0.4.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-minimatch-0.4.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz";
-        name = "minimatch-0.2.14.tgz";
-        sha1 = "c74e780574f63c6f9a090e90efbe6ef53a6a756a";
+        url = "http://registry.npmjs.org/minimatch/-/minimatch-0.4.0.tgz";
+        name = "minimatch-0.4.0.tgz";
+        sha1 = "bd2c7d060d2c8c8fd7cde7f1f2ed2d5b270fdb1b";
       })
     ];
     buildInputs =
@@ -11093,25 +10908,86 @@
   };
   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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz";
+        name = "minimatch-0.2.14.tgz";
+        sha1 = "c74e780574f63c6f9a090e90efbe6ef53a6a756a";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."minimatch" or []);
+    deps = [
+      self.by-version."lru-cache"."2.5.0"
+      self.by-version."sigmund"."1.0.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "minimatch" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz";
+        name = "minimatch-0.3.0.tgz";
+        sha1 = "275d8edaac4f1bb3326472089e7949c8394699dd";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."minimatch" or []);
+    deps = [
+      self.by-version."lru-cache"."2.5.0"
+      self.by-version."sigmund"."1.0.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "minimatch" ];
+  };
   by-spec."minimatch"."0.x" =
-    self.by-version."minimatch"."0.2.14";
+    self.by-version."minimatch"."0.4.0";
   by-spec."minimatch"."0.x.x" =
-    self.by-version."minimatch"."0.2.14";
+    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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz";
+        name = "minimatch-1.0.0.tgz";
+        sha1 = "e0dd2120b49e1b724ce8d714c520822a9438576d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."minimatch" or []);
+    deps = [
+      self.by-version."lru-cache"."2.5.0"
+      self.by-version."sigmund"."1.0.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "minimatch" ];
+  };
   by-spec."minimatch".">=0.2.4" =
-    self.by-version."minimatch"."0.2.14";
+    self.by-version."minimatch"."1.0.0";
+  by-spec."minimatch"."^1.0.0" =
+    self.by-version."minimatch"."1.0.0";
   by-spec."minimatch"."~0.2" =
     self.by-version."minimatch"."0.2.14";
-  by-spec."minimatch"."~0.2.0" =
-    self.by-version."minimatch"."0.2.14";
   by-spec."minimatch"."~0.2.11" =
     self.by-version."minimatch"."0.2.14";
   by-spec."minimatch"."~0.2.12" =
     self.by-version."minimatch"."0.2.14";
-  by-spec."minimatch"."~0.2.14" =
-    self.by-version."minimatch"."0.2.14";
   by-spec."minimatch"."~0.2.9" =
     self.by-version."minimatch"."0.2.14";
-  by-spec."minimist"."~0.0.1" =
+  by-spec."minimatch"."~0.3.0" =
+    self.by-version."minimatch"."0.3.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";
@@ -11130,19 +11006,74 @@
     ];
     passthru.names = [ "minimist" ];
   };
-  by-spec."minimist"."~0.0.5" =
-    self.by-version."minimist"."0.0.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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz";
+        name = "minimist-0.1.0.tgz";
+        sha1 = "99df657a52574c21c9057497df742790b2b4c0de";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."minimist" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "minimist" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz";
+        name = "minimist-0.0.10.tgz";
+        sha1 = "de3f98543dbf96082be48ad1a0c7cda836301dcf";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."minimist" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "minimist" ];
+  };
   by-spec."minimist"."~0.0.7" =
-    self.by-version."minimist"."0.0.8";
+    self.by-version."minimist"."0.0.10";
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/minimist/-/minimist-0.2.0.tgz";
+        name = "minimist-0.2.0.tgz";
+        sha1 = "4dffe525dae2b864c66c2e23c6271d7afdecefce";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."minimist" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "minimist" ];
+  };
   by-spec."ministyle"."~0.1.3" =
-    self.by-version."ministyle"."0.1.3";
-  by-version."ministyle"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/ministyle/-/ministyle-0.1.3.tgz";
-        name = "ministyle-0.1.3.tgz";
-        sha1 = "d7a639f29e9450b9d5ebf2255d1fa8d1d9d89900";
+        url = "http://registry.npmjs.org/ministyle/-/ministyle-0.1.4.tgz";
+        name = "ministyle-0.1.4.tgz";
+        sha1 = "b10481eb16aa8f7b6cd983817393a44da0e5a0cd";
       })
     ];
     buildInputs =
@@ -11174,29 +11105,28 @@
     passthru.names = [ "miniwrite" ];
   };
   by-spec."mkdirp"."*" =
-    self.by-version."mkdirp"."0.3.5";
-  by-version."mkdirp"."0.3.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mkdirp-0.3.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.3.5.tgz";
-        name = "mkdirp-0.3.5.tgz";
-        sha1 = "de3e5f8961c88c787ee1368df849ac4413eca8d7";
+        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" ];
   };
-  "mkdirp" = self.by-version."mkdirp"."0.3.5";
+  "mkdirp" = self.by-version."mkdirp"."0.5.0";
   by-spec."mkdirp"."0" =
-    self.by-version."mkdirp"."0.3.5";
-  by-spec."mkdirp"."0.3" =
-    self.by-version."mkdirp"."0.3.5";
+    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 {
@@ -11218,56 +11148,64 @@
   };
   by-spec."mkdirp"."0.3.5" =
     self.by-version."mkdirp"."0.3.5";
-  by-spec."mkdirp"."0.3.x" =
-    self.by-version."mkdirp"."0.3.5";
-  by-spec."mkdirp"."0.x.x" =
-    self.by-version."mkdirp"."0.3.5";
-  by-spec."mkdirp"."^0.3.5" =
-    self.by-version."mkdirp"."0.3.5";
-  by-spec."mkdirp"."~0.3.3" =
-    self.by-version."mkdirp"."0.3.5";
-  by-spec."mkdirp"."~0.3.4" =
-    self.by-version."mkdirp"."0.3.5";
-  by-spec."mkdirp"."~0.3.5" =
-    self.by-version."mkdirp"."0.3.5";
-  by-spec."mkpath"."~0.1.0" =
-    self.by-version."mkpath"."0.1.0";
-  by-version."mkpath"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mkpath-0.1.0";
+  by-version."mkdirp"."0.3.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-mkdirp-0.3.5";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/mkpath/-/mkpath-0.1.0.tgz";
-        name = "mkpath-0.1.0.tgz";
-        sha1 = "7554a6f8d871834cc97b5462b122c4c124d6de91";
+        url = "http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz";
+        name = "mkdirp-0.3.5.tgz";
+        sha1 = "de3e5f8961c88c787ee1368df849ac4413eca8d7";
       })
     ];
     buildInputs =
-      (self.nativeDeps."mkpath" or []);
+      (self.nativeDeps."mkdirp" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "mkpath" ];
+    passthru.names = [ "mkdirp" ];
   };
+  by-spec."mkdirp"."0.3.x" =
+    self.by-version."mkdirp"."0.3.5";
+  by-spec."mkdirp"."0.5" =
+    self.by-version."mkdirp"."0.5.0";
+  by-spec."mkdirp"."0.5.0" =
+    self.by-version."mkdirp"."0.5.0";
+  by-spec."mkdirp"."0.5.x" =
+    self.by-version."mkdirp"."0.5.0";
+  by-spec."mkdirp"."0.x.x" =
+    self.by-version."mkdirp"."0.5.0";
+  by-spec."mkdirp".">=0.5 0" =
+    self.by-version."mkdirp"."0.5.0";
+  by-spec."mkdirp"."^0.5.0" =
+    self.by-version."mkdirp"."0.5.0";
+  by-spec."mkdirp"."~0.3.3" =
+    self.by-version."mkdirp"."0.3.5";
+  by-spec."mkdirp"."~0.3.4" =
+    self.by-version."mkdirp"."0.3.5";
+  by-spec."mkdirp"."~0.3.5" =
+    self.by-version."mkdirp"."0.3.5";
+  by-spec."mkdirp"."~0.5.0" =
+    self.by-version."mkdirp"."0.5.0";
   by-spec."mocha"."*" =
-    self.by-version."mocha"."1.18.2";
-  by-version."mocha"."1.18.2" = lib.makeOverridable self.buildNodePackage {
-    name = "mocha-1.18.2";
+    self.by-version."mocha"."1.21.4";
+  by-version."mocha"."1.21.4" = lib.makeOverridable self.buildNodePackage {
+    name = "mocha-1.21.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/mocha/-/mocha-1.18.2.tgz";
-        name = "mocha-1.18.2.tgz";
-        sha1 = "800848f8f7884c61eefcfa2a27304ba9e5446d0b";
+        url = "http://registry.npmjs.org/mocha/-/mocha-1.21.4.tgz";
+        name = "mocha-1.21.4.tgz";
+        sha1 = "e77d69c3773ba3e2b4fe6b628c28b5dd43880adc";
       })
     ];
     buildInputs =
       (self.nativeDeps."mocha" or []);
     deps = [
       self.by-version."commander"."2.0.0"
-      self.by-version."growl"."1.7.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"."0.8.1"
+      self.by-version."debug"."1.0.4"
       self.by-version."mkdirp"."0.3.5"
       self.by-version."glob"."3.2.3"
     ];
@@ -11275,26 +11213,26 @@
     ];
     passthru.names = [ "mocha" ];
   };
-  "mocha" = self.by-version."mocha"."1.18.2";
-  by-spec."mocha"."1.13.x" =
-    self.by-version."mocha"."1.13.0";
-  by-version."mocha"."1.13.0" = lib.makeOverridable self.buildNodePackage {
-    name = "mocha-1.13.0";
+  "mocha" = self.by-version."mocha"."1.21.4";
+  by-spec."mocha"."~1.20.1" =
+    self.by-version."mocha"."1.20.1";
+  by-version."mocha"."1.20.1" = lib.makeOverridable self.buildNodePackage {
+    name = "mocha-1.20.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/mocha/-/mocha-1.13.0.tgz";
-        name = "mocha-1.13.0.tgz";
-        sha1 = "8d8fa4e310b94cc6efeb3ed26aeca96dea93307c";
+        url = "http://registry.npmjs.org/mocha/-/mocha-1.20.1.tgz";
+        name = "mocha-1.20.1.tgz";
+        sha1 = "f343832d9fe0c7d97c64fc70448f5136df9fed5b";
       })
     ];
     buildInputs =
       (self.nativeDeps."mocha" or []);
     deps = [
-      self.by-version."commander"."0.6.1"
+      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"."0.8.1"
+      self.by-version."debug"."1.0.4"
       self.by-version."mkdirp"."0.3.5"
       self.by-version."glob"."3.2.3"
     ];
@@ -11303,28 +11241,28 @@
     passthru.names = [ "mocha" ];
   };
   by-spec."mocha-phantomjs"."*" =
-    self.by-version."mocha-phantomjs"."3.3.2";
-  by-version."mocha-phantomjs"."3.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "mocha-phantomjs-3.3.2";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/mocha-phantomjs/-/mocha-phantomjs-3.3.2.tgz";
-        name = "mocha-phantomjs-3.3.2.tgz";
-        sha1 = "2d7cc9926f0fbbeb341697d7f2a031151c601722";
+        url = "http://registry.npmjs.org/mocha-phantomjs/-/mocha-phantomjs-3.5.0.tgz";
+        name = "mocha-phantomjs-3.5.0.tgz";
+        sha1 = "56fb4072122b4061b21e9c3901e35f4a7c58a93e";
       })
     ];
     buildInputs =
       (self.nativeDeps."mocha-phantomjs" or []);
     deps = [
-      self.by-version."mocha"."1.13.0"
-      self.by-version."commander"."1.2.0"
-      self.by-version."which"."1.0.5"
+      self.by-version."mocha"."1.20.1"
+      self.by-version."commander"."2.0.0"
     ];
     peerDependencies = [
+      self.by-version."phantomjs"."1.9.7-15"
     ];
     passthru.names = [ "mocha-phantomjs" ];
   };
-  "mocha-phantomjs" = self.by-version."mocha-phantomjs"."3.3.2";
+  "mocha-phantomjs" = self.by-version."mocha-phantomjs"."3.5.0";
   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 {
@@ -11342,62 +11280,41 @@
       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.3"
+      self.by-version."ministyle"."0.1.4"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "mocha-unfunk-reporter" ];
   };
   "mocha-unfunk-reporter" = self.by-version."mocha-unfunk-reporter"."0.4.0";
-  by-spec."module-deps"."~1.10.0" =
-    self.by-version."module-deps"."1.10.0";
-  by-version."module-deps"."1.10.0" = lib.makeOverridable self.buildNodePackage {
-    name = "module-deps-1.10.0";
+  by-spec."module-deps"."^3.5.0" =
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/module-deps/-/module-deps-1.10.0.tgz";
-        name = "module-deps-1.10.0.tgz";
-        sha1 = "57a9cac9dbd092428ec5249f6cf37fb249d77db6";
+        url = "http://registry.npmjs.org/module-deps/-/module-deps-3.5.5.tgz";
+        name = "module-deps-3.5.5.tgz";
+        sha1 = "08e52113552fe72a6f912b1bbe58e9e84ff1ac4a";
       })
     ];
     buildInputs =
       (self.nativeDeps."module-deps" or []);
     deps = [
-      self.by-version."JSONStream"."0.7.2"
-      self.by-version."browser-resolve"."1.2.4"
-      self.by-version."concat-stream"."1.4.5"
+      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."minimist"."0.0.8"
-      self.by-version."parents"."0.0.2"
-      self.by-version."resolve"."0.6.3"
-      self.by-version."through"."2.3.4"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "module-deps" ];
-  };
-  by-spec."module-deps"."~1.8.0" =
-    self.by-version."module-deps"."1.8.1";
-  by-version."module-deps"."1.8.1" = lib.makeOverridable self.buildNodePackage {
-    name = "module-deps-1.8.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/module-deps/-/module-deps-1.8.1.tgz";
-        name = "module-deps-1.8.1.tgz";
-        sha1 = "9d603b286f87cf62aad9e3f7b65a2f8bfa21de5b";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."module-deps" or []);
-    deps = [
-      self.by-version."JSONStream"."0.7.2"
-      self.by-version."browser-resolve"."1.2.4"
-      self.by-version."concat-stream"."1.4.5"
-      self.by-version."detective"."3.1.0"
-      self.by-version."minimist"."0.0.8"
-      self.by-version."parents"."0.0.2"
-      self.by-version."resolve"."0.6.3"
-      self.by-version."through"."2.3.4"
+      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"
     ];
     peerDependencies = [
     ];
@@ -11441,15 +11358,15 @@
     ];
     passthru.names = [ "moment" ];
   };
-  by-spec."moment"."~2.5.1" =
-    self.by-version."moment"."2.5.1";
-  by-version."moment"."2.5.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-moment-2.5.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/moment/-/moment-2.5.1.tgz";
-        name = "moment-2.5.1.tgz";
-        sha1 = "7146a3900533064ca799d5e792f4e480ee0e82bc";
+        url = "http://registry.npmjs.org/moment/-/moment-2.7.0.tgz";
+        name = "moment-2.7.0.tgz";
+        sha1 = "359a19ec634cda3c706c8709adda54c0329aaec4";
       })
     ];
     buildInputs =
@@ -11461,27 +11378,28 @@
     passthru.names = [ "moment" ];
   };
   by-spec."mongodb"."*" =
-    self.by-version."mongodb"."1.4.2";
-  by-version."mongodb"."1.4.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mongodb-1.4.2";
+    self.by-version."mongodb"."1.4.8";
+  by-version."mongodb"."1.4.8" = lib.makeOverridable self.buildNodePackage {
+    name = "node-mongodb-1.4.8";
     src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/mongodb/-/mongodb-1.4.2.tgz";
-        name = "mongodb-1.4.2.tgz";
-        sha1 = "68b5a5ac7ee146dcbdf17d01f60ffe88e61e76aa";
+      (self.patchSource fetchurl {
+        url = "http://registry.npmjs.org/mongodb/-/mongodb-1.4.8.tgz";
+        name = "mongodb-1.4.8.tgz";
+        sha1 = "808802e296f78e5062ef46a87a90abd68031552f";
       })
     ];
     buildInputs =
       (self.nativeDeps."mongodb" or []);
     deps = [
-      self.by-version."bson"."0.2.7"
+      self.by-version."bson"."0.2.11"
       self.by-version."kerberos"."0.0.3"
+      self.by-version."readable-stream"."1.1.13"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "mongodb" ];
   };
-  "mongodb" = self.by-version."mongodb"."1.4.2";
+  "mongodb" = self.by-version."mongodb"."1.4.8";
   by-spec."mongodb"."1.2.14" =
     self.by-version."mongodb"."1.2.14";
   by-version."mongodb"."1.2.14" = lib.makeOverridable self.buildNodePackage {
@@ -11523,7 +11441,7 @@
     ];
     passthru.names = [ "mongodb" ];
   };
-  by-spec."mongodb"."1.3.23" =
+  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";
@@ -11544,35 +11462,27 @@
     ];
     passthru.names = [ "mongodb" ];
   };
-  by-spec."mongodb"."1.3.x" =
-    self.by-version."mongodb"."1.3.23";
-  by-spec."mongoose"."*" =
-    self.by-version."mongoose"."3.8.8";
-  by-version."mongoose"."3.8.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mongoose-3.8.8";
+  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";
     src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/mongoose/-/mongoose-3.8.8.tgz";
-        name = "mongoose-3.8.8.tgz";
-        sha1 = "ab046f1fa17b0bdf090a04b6d034d87d240a47c2";
+      (self.patchSource fetchurl {
+        url = "http://registry.npmjs.org/mongodb/-/mongodb-1.4.7.tgz";
+        name = "mongodb-1.4.7.tgz";
+        sha1 = "f605b5d43c6c018c7d56d2fb53984dd60a7be128";
       })
     ];
     buildInputs =
-      (self.nativeDeps."mongoose" or []);
+      (self.nativeDeps."mongodb" or []);
     deps = [
-      self.by-version."hooks"."0.2.1"
-      self.by-version."mongodb"."1.3.23"
-      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.5.3"
+      self.by-version."bson"."0.2.9"
+      self.by-version."kerberos"."0.0.3"
+      self.by-version."readable-stream"."1.1.13"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "mongoose" ];
+    passthru.names = [ "mongodb" ];
   };
   by-spec."mongoose"."3.6.7" =
     self.by-version."mongoose"."3.6.7";
@@ -11628,6 +11538,34 @@
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/mongoose/-/mongoose-3.8.15.tgz";
+        name = "mongoose-3.8.15.tgz";
+        sha1 = "2bc089d011f9e4e662e3aa2aab00771ef43847c1";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "mongoose" ];
+  };
   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 {
@@ -11708,85 +11646,29 @@
     ];
     passthru.names = [ "monocle" ];
   };
-  by-spec."morgan"."1.0.0" =
-    self.by-version."morgan"."1.0.0";
-  by-version."morgan"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-morgan-1.0.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/morgan/-/morgan-1.0.0.tgz";
-        name = "morgan-1.0.0.tgz";
-        sha1 = "83cf74b9f2d841901f1a9a6b8fa7a468d2e47a8d";
+        url = "http://registry.npmjs.org/morgan/-/morgan-1.2.3.tgz";
+        name = "morgan-1.2.3.tgz";
+        sha1 = "3b0f1704df90255a542591abacd797891a8c40a1";
       })
     ];
     buildInputs =
       (self.nativeDeps."morgan" or []);
     deps = [
-      self.by-version."bytes"."0.2.1"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "morgan" ];
   };
-  by-spec."mout"."^0.9.0" =
-    self.by-version."mout"."0.9.1";
-  by-version."mout"."0.9.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mout-0.9.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/mout/-/mout-0.9.1.tgz";
-        name = "mout-0.9.1.tgz";
-        sha1 = "84f0f3fd6acc7317f63de2affdcc0cee009b0477";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."mout" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "mout" ];
-  };
-  by-spec."mout"."~0.6.0" =
-    self.by-version."mout"."0.6.0";
-  by-version."mout"."0.6.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mout-0.6.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/mout/-/mout-0.6.0.tgz";
-        name = "mout-0.6.0.tgz";
-        sha1 = "ce7abad8130d796b09d7fb509bcc73b09be024a6";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."mout" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "mout" ];
-  };
-  by-spec."mout"."~0.7.0" =
-    self.by-version."mout"."0.7.1";
-  by-version."mout"."0.7.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mout-0.7.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/mout/-/mout-0.7.1.tgz";
-        name = "mout-0.7.1.tgz";
-        sha1 = "218de2b0880b220d99f4fbaee3fc0c3a5310bda8";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."mout" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "mout" ];
-  };
-  by-spec."mout"."~0.9.0" =
-    self.by-version."mout"."0.9.1";
   by-spec."mpath"."0.1.1" =
     self.by-version."mpath"."0.1.1";
   by-version."mpath"."0.1.1" = lib.makeOverridable self.buildNodePackage {
@@ -11845,15 +11727,15 @@
     ];
     passthru.names = [ "mpromise" ];
   };
-  by-spec."mquery"."0.5.3" =
-    self.by-version."mquery"."0.5.3";
-  by-version."mquery"."0.5.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mquery-0.5.3";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/mquery/-/mquery-0.5.3.tgz";
-        name = "mquery-0.5.3.tgz";
-        sha1 = "b8a04d096ecf90bf17a81cc39b80dd4e5abcecec";
+        url = "http://registry.npmjs.org/mquery/-/mquery-0.8.0.tgz";
+        name = "mquery-0.8.0.tgz";
+        sha1 = "1e5b8c2a5a52f5583bd08932700b85440ee25f60";
       })
     ];
     buildInputs =
@@ -11886,20 +11768,40 @@
     ];
     passthru.names = [ "ms" ];
   };
+  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."msgpack".">= 0.0.1" =
-    self.by-version."msgpack"."0.2.3";
-  by-version."msgpack"."0.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "msgpack-0.2.3";
+    self.by-version."msgpack"."0.2.4";
+  by-version."msgpack"."0.2.4" = lib.makeOverridable self.buildNodePackage {
+    name = "msgpack-0.2.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/msgpack/-/msgpack-0.2.3.tgz";
-        name = "msgpack-0.2.3.tgz";
-        sha1 = "0739ab7eaa0a5ba0ff7da2061c72ab806b6afe5f";
+        url = "http://registry.npmjs.org/msgpack/-/msgpack-0.2.4.tgz";
+        name = "msgpack-0.2.4.tgz";
+        sha1 = "17ac333ea5320b45059f80c992d7465fed4fe706";
       })
     ];
     buildInputs =
       (self.nativeDeps."msgpack" or []);
     deps = [
+      self.by-version."nan"."1.0.0"
     ];
     peerDependencies = [
     ];
@@ -11919,52 +11821,54 @@
     buildInputs =
       (self.nativeDeps."multiparty" or []);
     deps = [
-      self.by-version."readable-stream"."1.1.13-1"
+      self.by-version."readable-stream"."1.1.13"
       self.by-version."stream-counter"."0.2.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "multiparty" ];
   };
-  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";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/muri/-/muri-0.3.1.tgz";
-        name = "muri-0.3.1.tgz";
-        sha1 = "861889c5c857f1a43700bee85d50731f61727c9a";
+        url = "http://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz";
+        name = "multiparty-3.3.2.tgz";
+        sha1 = "35de6804dc19643e5249f3d3e3bdc6c8ce301d3f";
       })
     ];
     buildInputs =
-      (self.nativeDeps."muri" or []);
+      (self.nativeDeps."multiparty" or []);
     deps = [
+      self.by-version."readable-stream"."1.1.13"
+      self.by-version."stream-counter"."0.2.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "muri" ];
+    passthru.names = [ "multiparty" ];
   };
-  by-spec."mute-stream"."0.0.3" =
-    self.by-version."mute-stream"."0.0.3";
-  by-version."mute-stream"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mute-stream-0.0.3";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/mute-stream/-/mute-stream-0.0.3.tgz";
-        name = "mute-stream-0.0.3.tgz";
-        sha1 = "f09c090d333b3063f615cbbcca71b349893f0152";
+        url = "http://registry.npmjs.org/muri/-/muri-0.3.1.tgz";
+        name = "muri-0.3.1.tgz";
+        sha1 = "861889c5c857f1a43700bee85d50731f61727c9a";
       })
     ];
     buildInputs =
-      (self.nativeDeps."mute-stream" or []);
+      (self.nativeDeps."muri" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "mute-stream" ];
+    passthru.names = [ "muri" ];
   };
-  by-spec."mute-stream"."0.0.4" =
+  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";
@@ -11983,8 +11887,6 @@
     ];
     passthru.names = [ "mute-stream" ];
   };
-  by-spec."mute-stream"."~0.0.4" =
-    self.by-version."mute-stream"."0.0.4";
   by-spec."mv"."0.0.5" =
     self.by-version."mv"."0.0.5";
   by-version."mv"."0.0.5" = lib.makeOverridable self.buildNodePackage {
@@ -12004,15 +11906,35 @@
     ];
     passthru.names = [ "mv" ];
   };
-  by-spec."nan"."~0.3.0" =
-    self.by-version."nan"."0.3.2";
-  by-version."nan"."0.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-nan-0.3.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/nan/-/nan-0.3.2.tgz";
-        name = "nan-0.3.2.tgz";
-        sha1 = "0df1935cab15369075ef160ad2894107aa14dc2d";
+        url = "http://registry.npmjs.org/mz/-/mz-1.0.1.tgz";
+        name = "mz-1.0.1.tgz";
+        sha1 = "5ce1d3fe5cb3267c9c3141fb6a070f8d17f215d8";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."mz" or []);
+    deps = [
+      self.by-version."native-or-bluebird"."1.0.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "mz" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/nan/-/nan-1.1.2.tgz";
+        name = "nan-1.1.2.tgz";
+        sha1 = "bbd48552fc0758673ebe8fada360b60278a6636b";
       })
     ];
     buildInputs =
@@ -12023,15 +11945,15 @@
     ];
     passthru.names = [ "nan" ];
   };
-  by-spec."nan"."~0.6.0" =
-    self.by-version."nan"."0.6.0";
-  by-version."nan"."0.6.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-nan-0.6.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/nan/-/nan-0.6.0.tgz";
-        name = "nan-0.6.0.tgz";
-        sha1 = "a54ebe59717b467c77425302bd7c17574c887aaa";
+        url = "http://registry.npmjs.org/nan/-/nan-1.2.0.tgz";
+        name = "nan-1.2.0.tgz";
+        sha1 = "9c4d63ce9e4f8e95de2d574e18f7925554a8a8ef";
       })
     ];
     buildInputs =
@@ -12042,6 +11964,27 @@
     ];
     passthru.names = [ "nan" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/nan/-/nan-1.3.0.tgz";
+        name = "nan-1.3.0.tgz";
+        sha1 = "9a5b8d5ef97a10df3050e59b2c362d3baf779742";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."nan" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "nan" ];
+  };
+  by-spec."nan".">=1.1.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 {
@@ -12061,6 +12004,48 @@
     ];
     passthru.names = [ "nan" ];
   };
+  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."nan"."~1.1.0" =
+    self.by-version."nan"."1.1.2";
+  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";
+    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";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."native-or-bluebird" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "native-or-bluebird" ];
+  };
   by-spec."natural"."0.1.17" =
     self.by-version."natural"."0.1.17";
   by-version."natural"."0.1.17" = lib.makeOverridable self.buildNodePackage {
@@ -12098,7 +12083,7 @@
       (self.nativeDeps."nconf" or []);
     deps = [
       self.by-version."async"."0.2.9"
-      self.by-version."ini"."1.1.0"
+      self.by-version."ini"."1.2.1"
       self.by-version."optimist"."0.6.0"
     ];
     peerDependencies = [
@@ -12190,15 +12175,15 @@
     ];
     passthru.names = [ "negotiator" ];
   };
-  by-spec."negotiator"."0.4.2" =
-    self.by-version."negotiator"."0.4.2";
-  by-version."negotiator"."0.4.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-negotiator-0.4.2";
+  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.2.tgz";
-        name = "negotiator-0.4.2.tgz";
-        sha1 = "8c43ea7e4c40ddfe40c3c0234c4ef77500b8fd37";
+        url = "http://registry.npmjs.org/negotiator/-/negotiator-0.4.7.tgz";
+        name = "negotiator-0.4.7.tgz";
+        sha1 = "a4160f7177ec806738631d0d3052325da42abdc8";
       })
     ];
     buildInputs =
@@ -12231,25 +12216,6 @@
     ];
     passthru.names = [ "net-ping" ];
   };
-  by-spec."next-tick"."0.1.x" =
-    self.by-version."next-tick"."0.1.0";
-  by-version."next-tick"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-next-tick-0.1.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/next-tick/-/next-tick-0.1.0.tgz";
-        name = "next-tick-0.1.0.tgz";
-        sha1 = "1912cce8eb9b697d640fbba94f8f00dec3b94259";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."next-tick" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "next-tick" ];
-  };
   by-spec."nib"."0.5.0" =
     self.by-version."nib"."0.5.0";
   by-version."nib"."0.5.0" = lib.makeOverridable self.buildNodePackage {
@@ -12309,13 +12275,13 @@
       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.4"
+      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.3"
+      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"
@@ -12326,111 +12292,144 @@
     passthru.names = [ "node-appc" ];
   };
   by-spec."node-expat"."*" =
-    self.by-version."node-expat"."2.1.4";
-  by-version."node-expat"."2.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-node-expat-2.1.4";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/node-expat/-/node-expat-2.1.4.tgz";
-        name = "node-expat-2.1.4.tgz";
-        sha1 = "e55a82249b71afbce09ffa880705ec37553c5121";
+        url = "http://registry.npmjs.org/node-expat/-/node-expat-2.3.1.tgz";
+        name = "node-expat-2.3.1.tgz";
+        sha1 = "32c515a4d1cf747fb655d3ad4374696537592413";
       })
     ];
     buildInputs =
       (self.nativeDeps."node-expat" or []);
     deps = [
-      self.by-version."nan"."0.6.0"
+      self.by-version."bindings"."1.2.1"
+      self.by-version."nan"."1.2.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "node-expat" ];
   };
-  "node-expat" = self.by-version."node-expat"."2.1.4";
+  "node-expat" = self.by-version."node-expat"."2.3.1";
   by-spec."node-gyp"."*" =
-    self.by-version."node-gyp"."0.13.0";
-  by-version."node-gyp"."0.13.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-gyp-0.13.0";
+    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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/node-gyp/-/node-gyp-1.0.1.tgz";
+        name = "node-gyp-1.0.1.tgz";
+        sha1 = "d5e364145ff10b259be9986855c83b5a76a2d975";
+      })
+    ];
+    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.0.tgz";
-        name = "node-gyp-0.13.0.tgz";
-        sha1 = "84e216991a64ce5f03d50c95518bd72ca9e10f1e";
+        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.9"
+      self.by-version."glob"."3.2.11"
       self.by-version."graceful-fs"."2.0.3"
-      self.by-version."fstream"."0.1.25"
-      self.by-version."minimatch"."0.2.14"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."nopt"."2.2.0"
-      self.by-version."npmlog"."0.0.6"
-      self.by-version."osenv"."0.0.3"
-      self.by-version."request"."2.34.0"
-      self.by-version."rimraf"."2.2.6"
+      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.19"
+      self.by-version."tar"."0.1.20"
       self.by-version."which"."1.0.5"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "node-gyp" ];
   };
-  "node-gyp" = self.by-version."node-gyp"."0.13.0";
-  by-spec."node-gyp"."~0.13.0" =
-    self.by-version."node-gyp"."0.13.0";
   by-spec."node-inspector"."*" =
-    self.by-version."node-inspector"."0.7.3";
-  by-version."node-inspector"."0.7.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-inspector-0.7.3";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/node-inspector/-/node-inspector-0.7.3.tgz";
-        name = "node-inspector-0.7.3.tgz";
-        sha1 = "988317f9a7e645d1bb78e40bb2289db82a077e73";
+        url = "http://registry.npmjs.org/node-inspector/-/node-inspector-0.7.4.tgz";
+        name = "node-inspector-0.7.4.tgz";
+        sha1 = "3d07234f0834e7f1e21a1669eceaa224a7be43f2";
       })
     ];
     buildInputs =
       (self.nativeDeps."node-inspector" or []);
     deps = [
-      self.by-version."express"."3.5.1"
-      self.by-version."async"."0.4.1"
-      self.by-version."glob"."3.2.9"
+      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.31"
+      self.by-version."ws"."0.4.32"
       self.by-version."opener"."1.3.0"
-      self.by-version."yargs"."1.1.3"
+      self.by-version."yargs"."1.2.6"
       self.by-version."which"."1.0.5"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "node-inspector" ];
   };
-  "node-inspector" = self.by-version."node-inspector"."0.7.3";
+  "node-inspector" = self.by-version."node-inspector"."0.7.4";
   by-spec."node-protobuf"."*" =
-    self.by-version."node-protobuf"."1.0.10";
-  by-version."node-protobuf"."1.0.10" = lib.makeOverridable self.buildNodePackage {
-    name = "node-node-protobuf-1.0.10";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/node-protobuf/-/node-protobuf-1.0.10.tgz";
-        name = "node-protobuf-1.0.10.tgz";
-        sha1 = "a8a02d55129efe1776bc3e038d7e6c676c001fcd";
+        url = "http://registry.npmjs.org/node-protobuf/-/node-protobuf-1.2.0.tgz";
+        name = "node-protobuf-1.2.0.tgz";
+        sha1 = "c69ca29f149431b6b6ec8079ec2ee01aa0590bcc";
       })
     ];
     buildInputs =
       (self.nativeDeps."node-protobuf" or []);
     deps = [
+      self.by-version."bindings"."1.2.1"
+      self.by-version."nan"."1.3.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "node-protobuf" ];
   };
-  "node-protobuf" = self.by-version."node-protobuf"."1.0.10";
+  "node-protobuf" = self.by-version."node-protobuf"."1.2.0";
   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 {
@@ -12581,7 +12580,7 @@
     buildInputs =
       (self.nativeDeps."node-wsfederation" or []);
     deps = [
-      self.by-version."xml2js"."0.4.2"
+      self.by-version."xml2js"."0.4.4"
     ];
     peerDependencies = [
     ];
@@ -12620,8 +12619,8 @@
     buildInputs =
       (self.nativeDeps."nodemailer" or []);
     deps = [
-      self.by-version."mailcomposer"."0.2.9"
-      self.by-version."simplesmtp"."0.3.25"
+      self.by-version."mailcomposer"."0.2.12"
+      self.by-version."simplesmtp"."0.3.32"
       self.by-version."optimist"."0.6.1"
     ];
     peerDependencies = [
@@ -12629,27 +12628,28 @@
     passthru.names = [ "nodemailer" ];
   };
   by-spec."nodemon"."*" =
-    self.by-version."nodemon"."1.0.17";
-  by-version."nodemon"."1.0.17" = lib.makeOverridable self.buildNodePackage {
-    name = "nodemon-1.0.17";
+    self.by-version."nodemon"."1.2.1";
+  by-version."nodemon"."1.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "nodemon-1.2.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/nodemon/-/nodemon-1.0.17.tgz";
-        name = "nodemon-1.0.17.tgz";
-        sha1 = "910a3f3cb66c06a3499498455cf4e0119f75799c";
+        url = "http://registry.npmjs.org/nodemon/-/nodemon-1.2.1.tgz";
+        name = "nodemon-1.2.1.tgz";
+        sha1 = "02a288045652e92350e7d752a8054472ed2c4824";
       })
     ];
     buildInputs =
       (self.nativeDeps."nodemon" or []);
     deps = [
-      self.by-version."update-notifier"."0.1.8"
-      self.by-version."minimatch"."0.2.14"
+      self.by-version."update-notifier"."0.1.10"
+      self.by-version."minimatch"."0.3.0"
+      self.by-version."ps-tree"."0.0.3"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "nodemon" ];
   };
-  "nodemon" = self.by-version."nodemon"."1.0.17";
+  "nodemon" = self.by-version."nodemon"."1.2.1";
   by-spec."nomnom"."1.6.x" =
     self.by-version."nomnom"."1.6.2";
   by-version."nomnom"."1.6.2" = lib.makeOverridable self.buildNodePackage {
@@ -12672,14 +12672,34 @@
     passthru.names = [ "nomnom" ];
   };
   by-spec."nopt"."2" =
-    self.by-version."nopt"."2.2.0";
-  by-version."nopt"."2.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "nopt-2.2.0";
+    self.by-version."nopt"."2.2.1";
+  by-version."nopt"."2.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "nopt-2.2.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/nopt/-/nopt-2.2.0.tgz";
-        name = "nopt-2.2.0.tgz";
-        sha1 = "3d106676f3607ac466af9bf82bd707b1501d3bd5";
+        url = "http://registry.npmjs.org/nopt/-/nopt-2.2.1.tgz";
+        name = "nopt-2.2.1.tgz";
+        sha1 = "2aa09b7d1768487b3b89a9c5aa52335bff0baea7";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."nopt" or []);
+    deps = [
+      self.by-version."abbrev"."1.0.5"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "nopt" ];
+  };
+  by-spec."nopt"."2 || 3" =
+    self.by-version."nopt"."3.0.1";
+  by-version."nopt"."3.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "nopt-3.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz";
+        name = "nopt-3.0.1.tgz";
+        sha1 = "bce5c42446a3291f47622a370abbf158fbbacbfd";
       })
     ];
     buildInputs =
@@ -12711,10 +12731,8 @@
     ];
     passthru.names = [ "nopt" ];
   };
-  by-spec."nopt"."2.2.x" =
-    self.by-version."nopt"."2.2.0";
-  by-spec."nopt"."^2.2.0" =
-    self.by-version."nopt"."2.2.0";
+  by-spec."nopt"."3.x" =
+    self.by-version."nopt"."3.0.1";
   by-spec."nopt"."~1.0.10" =
     self.by-version."nopt"."1.0.10";
   by-version."nopt"."1.0.10" = lib.makeOverridable self.buildNodePackage {
@@ -12735,7 +12753,7 @@
     ];
     passthru.names = [ "nopt" ];
   };
-  by-spec."nopt"."~2.1.1" =
+  by-spec."nopt"."~2.1.2" =
     self.by-version."nopt"."2.1.2";
   by-version."nopt"."2.1.2" = lib.makeOverridable self.buildNodePackage {
     name = "nopt-2.1.2";
@@ -12755,92 +12773,118 @@
     ];
     passthru.names = [ "nopt" ];
   };
-  by-spec."nopt"."~2.1.2" =
-    self.by-version."nopt"."2.1.2";
-  by-spec."nopt"."~2.2.0" =
-    self.by-version."nopt"."2.2.0";
-  by-spec."normalize-package-data"."~0.2.9" =
-    self.by-version."normalize-package-data"."0.2.12";
-  by-version."normalize-package-data"."0.2.12" = lib.makeOverridable self.buildNodePackage {
-    name = "node-normalize-package-data-0.2.12";
+  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.2.12.tgz";
-        name = "normalize-package-data-0.2.12.tgz";
-        sha1 = "c8284cf0cb0466ea60ee64276b9070722c1da768";
+        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."semver"."2.2.1"
       self.by-version."github-url-from-git"."1.1.1"
-      self.by-version."github-url-from-username-repo"."0.0.2"
+      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";
+    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";
+      })
+    ];
+    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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "normalize-package-data" ];
   };
   by-spec."npm"."*" =
-    self.by-version."npm"."1.4.7";
-  by-version."npm"."1.4.7" = lib.makeOverridable self.buildNodePackage {
-    name = "npm-1.4.7";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npm/-/npm-1.4.7.tgz";
-        name = "npm-1.4.7.tgz";
-        sha1 = "7e3c4385973ffb58c9bf15eebe2668c0ce3fafe0";
+        url = "http://registry.npmjs.org/npm/-/npm-2.0.0-alpha-5.tgz";
+        name = "npm-2.0.0-alpha-5.tgz";
+        sha1 = "5135b111cb6b8e56ab1bdc4e486b87c295862ca8";
       })
     ];
     buildInputs =
       (self.nativeDeps."npm" or []);
     deps = [
       self.by-version."abbrev"."1.0.5"
-      self.by-version."ansi"."0.2.1"
+      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.1"
-      self.by-version."columnify"."0.1.2"
-      self.by-version."editor"."0.0.5"
-      self.by-version."fstream"."0.1.25"
-      self.by-version."fstream-npm"."0.1.6"
-      self.by-version."github-url-from-git"."1.1.1"
-      self.by-version."github-url-from-username-repo"."0.0.2"
-      self.by-version."glob"."3.2.9"
-      self.by-version."graceful-fs"."2.0.3"
-      self.by-version."ini"."1.1.0"
-      self.by-version."init-package-json"."0.0.15"
-      self.by-version."lockfile"."0.4.2"
+      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.2.14"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."node-gyp"."0.13.0"
-      self.by-version."nopt"."2.2.0"
-      self.by-version."npm-install-checks"."1.0.0"
-      self.by-version."npm-registry-client"."0.4.7"
-      self.by-version."npm-user-validate"."0.0.3"
-      self.by-version."npmconf"."0.1.14"
-      self.by-version."npmlog"."0.0.6"
+      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.0.3"
+      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.2"
-      self.by-version."read-package-json"."1.1.8"
+      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.0"
-      self.by-version."rimraf"."2.2.6"
-      self.by-version."semver"."2.2.1"
-      self.by-version."sha"."1.2.3"
+      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.19"
+      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"
@@ -12849,28 +12893,69 @@
     ];
     passthru.names = [ "npm" ];
   };
-  "npm" = self.by-version."npm"."1.4.7";
-  by-spec."npm-install-checks"."~1.0.0" =
-    self.by-version."npm-install-checks"."1.0.0";
-  by-version."npm-install-checks"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npm-install-checks-1.0.0";
+  "npm" = self.by-version."npm"."2.0.0-alpha-5";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npm-install-checks/-/npm-install-checks-1.0.0.tgz";
-        name = "npm-install-checks-1.0.0.tgz";
-        sha1 = "7e1469b5e0c693b2ae2a8830b5fc4e7bf76c88fd";
+        url = "http://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.1.tgz";
+        name = "npm-cache-filename-1.0.1.tgz";
+        sha1 = "9b640f0c1a5ba1145659685372a9ff71f70c4323";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."npm-cache-filename" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "npm-cache-filename" ];
+  };
+  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";
+    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";
       })
     ];
     buildInputs =
       (self.nativeDeps."npm-install-checks" or []);
     deps = [
-      self.by-version."npmlog"."0.0.6"
-      self.by-version."semver"."2.2.1"
+      self.by-version."npmlog"."0.1.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";
+    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";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."npm-package-arg" or []);
+    deps = [
+      self.by-version."semver"."3.0.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "npm-package-arg" ];
+  };
   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 {
@@ -12885,58 +12970,62 @@
     buildInputs =
       (self.nativeDeps."npm-registry-client" or []);
     deps = [
-      self.by-version."request"."2.34.0"
+      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.6"
+      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.0.6"
+      self.by-version."npmlog"."0.1.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "npm-registry-client" ];
   };
-  by-spec."npm-registry-client"."~0.4.7" =
-    self.by-version."npm-registry-client"."0.4.7";
-  by-version."npm-registry-client"."0.4.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npm-registry-client-0.4.7";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npm-registry-client/-/npm-registry-client-0.4.7.tgz";
-        name = "npm-registry-client-0.4.7.tgz";
-        sha1 = "f4369b59890da7882527eb7c427dd95d43707afb";
+        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";
       })
     ];
     buildInputs =
       (self.nativeDeps."npm-registry-client" or []);
     deps = [
-      self.by-version."request"."2.34.0"
-      self.by-version."graceful-fs"."2.0.3"
-      self.by-version."semver"."2.2.1"
-      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.6"
+      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."npmlog"."0.0.6"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "npm-registry-client" ];
   };
-  by-spec."npm-user-validate"."0.0.3" =
-    self.by-version."npm-user-validate"."0.0.3";
-  by-version."npm-user-validate"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npm-user-validate-0.0.3";
+  by-spec."npm-registry-client"."~3.0.2" =
+    self.by-version."npm-registry-client"."3.0.6";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npm-user-validate/-/npm-user-validate-0.0.3.tgz";
-        name = "npm-user-validate-0.0.3.tgz";
-        sha1 = "818eca4312d13da648f9bc1d7f80bb4f151e0c2e";
+        url = "http://registry.npmjs.org/npm-user-validate/-/npm-user-validate-0.1.0.tgz";
+        name = "npm-user-validate-0.1.0.tgz";
+        sha1 = "358a5b5148ed3f79771d980388c6e34c4a61f638";
       })
     ];
     buildInputs =
@@ -12948,33 +13037,33 @@
     passthru.names = [ "npm-user-validate" ];
   };
   by-spec."npm2nix"."*" =
-    self.by-version."npm2nix"."5.6.0";
-  by-version."npm2nix"."5.6.0" = lib.makeOverridable self.buildNodePackage {
-    name = "npm2nix-5.6.0";
+    self.by-version."npm2nix"."5.7.0";
+  by-version."npm2nix"."5.7.0" = lib.makeOverridable self.buildNodePackage {
+    name = "npm2nix-5.7.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npm2nix/-/npm2nix-5.6.0.tgz";
-        name = "npm2nix-5.6.0.tgz";
-        sha1 = "75680a36a24fe7f434a18199552cd3e7a576e875";
+        url = "http://registry.npmjs.org/npm2nix/-/npm2nix-5.7.0.tgz";
+        name = "npm2nix-5.7.0.tgz";
+        sha1 = "ac4547c4ee35fd19fd8dfcf1b1f47eccfb6b6dfa";
       })
     ];
     buildInputs =
       (self.nativeDeps."npm2nix" or []);
     deps = [
-      self.by-version."semver"."2.2.1"
+      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.1.1"
+      self.by-version."findit"."1.2.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "npm2nix" ];
   };
-  "npm2nix" = self.by-version."npm2nix"."5.6.0";
+  "npm2nix" = self.by-version."npm2nix"."5.7.0";
   by-spec."npmconf"."0.0.24" =
     self.by-version."npmconf"."0.0.24";
   by-version."npmconf"."0.0.24" = lib.makeOverridable self.buildNodePackage {
@@ -12994,7 +13083,7 @@
       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.0"
+      self.by-version."nopt"."2.2.1"
       self.by-version."semver"."1.1.4"
       self.by-version."ini"."1.1.0"
     ];
@@ -13021,23 +13110,23 @@
       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.0"
-      self.by-version."semver"."2.2.1"
+      self.by-version."nopt"."2.2.1"
+      self.by-version."semver"."2.3.2"
       self.by-version."ini"."1.1.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "npmconf" ];
   };
-  by-spec."npmconf"."~0.1.13" =
-    self.by-version."npmconf"."0.1.14";
-  by-version."npmconf"."0.1.14" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npmconf-0.1.14";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npmconf/-/npmconf-0.1.14.tgz";
-        name = "npmconf-0.1.14.tgz";
-        sha1 = "aea4bc12c5a84191a32cd350e325da4fe8b127e7";
+        url = "http://registry.npmjs.org/npmconf/-/npmconf-0.1.16.tgz";
+        name = "npmconf-0.1.16.tgz";
+        sha1 = "0bdca78b8551419686b3a98004f06f0819edcd2a";
       })
     ];
     buildInputs =
@@ -13048,42 +13137,70 @@
       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.0"
-      self.by-version."semver"."2.2.1"
+      self.by-version."nopt"."2.2.1"
+      self.by-version."semver"."2.3.2"
       self.by-version."ini"."1.1.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "npmconf" ];
   };
-  by-spec."npmconf"."~0.1.14" =
-    self.by-version."npmconf"."0.1.14";
-  by-spec."npmconf"."~0.1.2" =
-    self.by-version."npmconf"."0.1.14";
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/npmconf/-/npmconf-2.0.5.tgz";
+        name = "npmconf-2.0.5.tgz";
+        sha1 = "70ad9975cd8d855e198a2deec8df6d04d932035c";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "npmconf" ];
+  };
+  by-spec."npmconf"."~2.0.3" =
+    self.by-version."npmconf"."2.0.5";
   by-spec."npmlog"."*" =
-    self.by-version."npmlog"."0.0.6";
-  by-version."npmlog"."0.0.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npmlog-0.0.6";
+    self.by-version."npmlog"."0.1.1";
+  by-version."npmlog"."0.1.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-npmlog-0.1.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npmlog/-/npmlog-0.0.6.tgz";
-        name = "npmlog-0.0.6.tgz";
-        sha1 = "685043fe71aa1665d6e3b2acef180640caf40873";
+        url = "http://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz";
+        name = "npmlog-0.1.1.tgz";
+        sha1 = "8b9b9e4405d7ec48c31c2346965aadc7abaecaa5";
       })
     ];
     buildInputs =
       (self.nativeDeps."npmlog" or []);
     deps = [
-      self.by-version."ansi"."0.2.1"
+      self.by-version."ansi"."0.3.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "npmlog" ];
   };
   by-spec."npmlog"."0" =
-    self.by-version."npmlog"."0.0.6";
-  by-spec."npmlog"."0.0.6" =
-    self.by-version."npmlog"."0.0.6";
+    self.by-version."npmlog"."0.1.1";
+  by-spec."npmlog"."0.1" =
+    self.by-version."npmlog"."0.1.1";
+  by-spec."npmlog"."~0.1.1" =
+    self.by-version."npmlog"."0.1.1";
   by-spec."nssocket"."~0.5.1" =
     self.by-version."nssocket"."0.5.1";
   by-version."nssocket"."0.5.1" = lib.makeOverridable self.buildNodePackage {
@@ -13098,33 +13215,13 @@
     buildInputs =
       (self.nativeDeps."nssocket" or []);
     deps = [
-      self.by-version."eventemitter2"."0.4.13"
+      self.by-version."eventemitter2"."0.4.14"
       self.by-version."lazy"."1.0.11"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "nssocket" ];
   };
-  by-spec."nth-check"."~1.0.0" =
-    self.by-version."nth-check"."1.0.0";
-  by-version."nth-check"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-nth-check-1.0.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/nth-check/-/nth-check-1.0.0.tgz";
-        name = "nth-check-1.0.0.tgz";
-        sha1 = "02fc1277aa2bf8e6083be456104d6a646101a49d";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."nth-check" or []);
-    deps = [
-      self.by-version."boolbase"."1.0.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "nth-check" ];
-  };
   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 {
@@ -13133,7 +13230,7 @@
       (fetchurl {
         url = "https://github.com/ciaranj/node-oauth/tarball/master";
         name = "oauth-0.9.11.tgz";
-        sha256 = "14cc7a064e3eda0948ac8db72fae140cb7b0fdbe031375d02cd6d0359c8b8faa";
+        sha256 = "81deda1451b8103f278cbede8aab0a929a63882dbc604214fd7690d72390d083";
       })
     ];
     buildInputs =
@@ -13201,15 +13298,15 @@
     ];
     passthru.names = [ "object-additions" ];
   };
-  by-spec."object-assign"."~0.1.1" =
-    self.by-version."object-assign"."0.1.2";
-  by-version."object-assign"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-object-assign-0.1.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/object-assign/-/object-assign-0.1.2.tgz";
-        name = "object-assign-0.1.2.tgz";
-        sha1 = "036992f073aff7b2db83d06b3fb3155a5ccac37f";
+        url = "http://registry.npmjs.org/object-assign/-/object-assign-0.3.1.tgz";
+        name = "object-assign-0.3.1.tgz";
+        sha1 = "060e2a2a27d7c0d77ec77b78f11aa47fd88008d2";
       })
     ];
     buildInputs =
@@ -13220,8 +13317,6 @@
     ];
     passthru.names = [ "object-assign" ];
   };
-  by-spec."object-assign"."~0.1.2" =
-    self.by-version."object-assign"."0.1.2";
   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 {
@@ -13241,6 +13336,64 @@
     ];
     passthru.names = [ "object-keys" ];
   };
+  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-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-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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/on-headers/-/on-headers-1.0.0.tgz";
+        name = "on-headers-1.0.0.tgz";
+        sha1 = "2c75b5da4375513d0161c6052e7fcbe4953fca5d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."on-headers" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "on-headers" ];
+  };
   by-spec."once"."1.1.1" =
     self.by-version."once"."1.1.1";
   by-version."once"."1.1.1" = lib.makeOverridable self.buildNodePackage {
@@ -13260,9 +13413,7 @@
     ];
     passthru.names = [ "once" ];
   };
-  by-spec."once"."~1.1.1" =
-    self.by-version."once"."1.1.1";
-  by-spec."once"."~1.3.0" =
+  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";
@@ -13281,34 +13432,40 @@
     ];
     passthru.names = [ "once" ];
   };
-  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";
+  by-spec."once"."^1.3.0" =
+    self.by-version."once"."1.3.0";
+  by-spec."once"."~1.1.1" =
+    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/open/-/open-0.0.2.tgz";
-        name = "open-0.0.2.tgz";
-        sha1 = "0a620ba2574464742f51e69f8ba8eccfd97b5dfc";
+        url = "http://registry.npmjs.org/only/-/only-0.0.2.tgz";
+        name = "only-0.0.2.tgz";
+        sha1 = "2afde84d03e50b9a8edc444e30610a70295edfb4";
       })
     ];
     buildInputs =
-      (self.nativeDeps."open" or []);
+      (self.nativeDeps."only" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "open" ];
+    passthru.names = [ "only" ];
   };
-  by-spec."open"."0.0.4" =
-    self.by-version."open"."0.0.4";
-  by-version."open"."0.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-open-0.0.4";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/open/-/open-0.0.4.tgz";
-        name = "open-0.0.4.tgz";
-        sha1 = "5de46a0858b9f49f9f211aa8f26628550657f262";
+        url = "http://registry.npmjs.org/open/-/open-0.0.2.tgz";
+        name = "open-0.0.2.tgz";
+        sha1 = "0a620ba2574464742f51e69f8ba8eccfd97b5dfc";
       })
     ];
     buildInputs =
@@ -13319,7 +13476,7 @@
     ];
     passthru.names = [ "open" ];
   };
-  by-spec."open"."~0.0.3" =
+  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";
@@ -13338,8 +13495,6 @@
     ];
     passthru.names = [ "open" ];
   };
-  by-spec."open"."~0.0.4" =
-    self.by-version."open"."0.0.5";
   by-spec."opener"."~1.3.0" =
     self.by-version."opener"."1.3.0";
   by-version."opener"."1.3.0" = lib.makeOverridable self.buildNodePackage {
@@ -13360,14 +13515,14 @@
     passthru.names = [ "opener" ];
   };
   by-spec."openid".">=0.2.0" =
-    self.by-version."openid"."0.5.8";
-  by-version."openid"."0.5.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-openid-0.5.8";
+    self.by-version."openid"."0.5.9";
+  by-version."openid"."0.5.9" = lib.makeOverridable self.buildNodePackage {
+    name = "node-openid-0.5.9";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/openid/-/openid-0.5.8.tgz";
-        name = "openid-0.5.8.tgz";
-        sha1 = "e1e3b26235cb8964ef850c074529b9d031550e85";
+        url = "http://registry.npmjs.org/openid/-/openid-0.5.9.tgz";
+        name = "openid-0.5.9.tgz";
+        sha1 = "f44dd2609764c458c65fb22c03db068579e4bfa8";
       })
     ];
     buildInputs =
@@ -13393,7 +13548,7 @@
       (self.nativeDeps."optimist" or []);
     deps = [
       self.by-version."wordwrap"."0.0.2"
-      self.by-version."minimist"."0.0.8"
+      self.by-version."minimist"."0.0.10"
     ];
     peerDependencies = [
     ];
@@ -13420,51 +13575,49 @@
     ];
     passthru.names = [ "optimist" ];
   };
-  by-spec."optimist"."0.3.x" =
-    self.by-version."optimist"."0.3.7";
-  by-version."optimist"."0.3.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-optimist-0.3.7";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz";
-        name = "optimist-0.3.7.tgz";
-        sha1 = "c90941ad59e4273328923074d2cf2e7cbc6ec0d9";
+        url = "http://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz";
+        name = "optimist-0.6.0.tgz";
+        sha1 = "69424826f3405f79f142e6fc3d9ae58d4dbb9200";
       })
     ];
     buildInputs =
       (self.nativeDeps."optimist" or []);
     deps = [
       self.by-version."wordwrap"."0.0.2"
+      self.by-version."minimist"."0.0.10"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "optimist" ];
   };
-  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";
+  by-spec."optimist"."0.6.x" =
+    self.by-version."optimist"."0.6.1";
+  by-spec."optimist"."~0.3" =
+    self.by-version."optimist"."0.3.7";
+  by-version."optimist"."0.3.7" = lib.makeOverridable self.buildNodePackage {
+    name = "node-optimist-0.3.7";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz";
-        name = "optimist-0.6.0.tgz";
-        sha1 = "69424826f3405f79f142e6fc3d9ae58d4dbb9200";
+        url = "http://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz";
+        name = "optimist-0.3.7.tgz";
+        sha1 = "c90941ad59e4273328923074d2cf2e7cbc6ec0d9";
       })
     ];
     buildInputs =
       (self.nativeDeps."optimist" or []);
     deps = [
       self.by-version."wordwrap"."0.0.2"
-      self.by-version."minimist"."0.0.8"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "optimist" ];
   };
-  by-spec."optimist"."0.6.x" =
-    self.by-version."optimist"."0.6.1";
-  by-spec."optimist"."~0.3" =
-    self.by-version."optimist"."0.3.7";
   by-spec."optimist"."~0.3.5" =
     self.by-version."optimist"."0.3.7";
   by-spec."optimist"."~0.6.0" =
@@ -13490,25 +13643,6 @@
     ];
     passthru.names = [ "options" ];
   };
-  by-spec."optjs"."*" =
-    self.by-version."optjs"."3.2.1-boom";
-  by-version."optjs"."3.2.1-boom" = lib.makeOverridable self.buildNodePackage {
-    name = "node-optjs-3.2.1-boom";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/optjs/-/optjs-3.2.1-boom.tgz";
-        name = "optjs-3.2.1-boom.tgz";
-        sha1 = "bc0af6c8647db5eec511c4ca2d264f9646add758";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."optjs" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "optjs" ];
-  };
   by-spec."optparse"."*" =
     self.by-version."optparse"."1.0.5";
   by-version."optparse"."1.0.5" = lib.makeOverridable self.buildNodePackage {
@@ -13531,6 +13665,25 @@
   "optparse" = self.by-version."optparse"."1.0.5";
   by-spec."optparse".">= 1.0.3" =
     self.by-version."optparse"."1.0.5";
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.0.8.tgz";
+        name = "ordered-read-streams-0.0.8.tgz";
+        sha1 = "fd921331b1a130b66aeef711b219aee01d89e0c5";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."ordered-read-streams" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "ordered-read-streams" ];
+  };
   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 {
@@ -13551,6 +13704,25 @@
     passthru.names = [ "os-browserify" ];
   };
   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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/osenv/-/osenv-0.1.0.tgz";
+        name = "osenv-0.1.0.tgz";
+        sha1 = "61668121eec584955030b9f470b1d2309504bfcb";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."osenv" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "osenv" ];
+  };
+  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";
@@ -13569,10 +13741,10 @@
     ];
     passthru.names = [ "osenv" ];
   };
-  by-spec."osenv"."0.0.3" =
-    self.by-version."osenv"."0.0.3";
-  by-spec."osenv"."~0.0.3" =
-    self.by-version."osenv"."0.0.3";
+  by-spec."osenv"."^0.1.0" =
+    self.by-version."osenv"."0.1.0";
+  by-spec."osenv"."~0.1.0" =
+    self.by-version."osenv"."0.1.0";
   by-spec."owl-deepcopy"."*" =
     self.by-version."owl-deepcopy"."0.0.4";
   by-version."owl-deepcopy"."0.0.4" = lib.makeOverridable self.buildNodePackage {
@@ -13595,66 +13767,65 @@
   "owl-deepcopy" = self.by-version."owl-deepcopy"."0.0.4";
   by-spec."owl-deepcopy"."~0.0.1" =
     self.by-version."owl-deepcopy"."0.0.4";
-  by-spec."p-throttler"."~0.0.1" =
-    self.by-version."p-throttler"."0.0.1";
-  by-version."p-throttler"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-p-throttler-0.0.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/p-throttler/-/p-throttler-0.0.1.tgz";
-        name = "p-throttler-0.0.1.tgz";
-        sha1 = "c341e3589ec843852a035e6f88e6c1e96150029b";
+        url = "http://registry.npmjs.org/pako/-/pako-0.2.5.tgz";
+        name = "pako-0.2.5.tgz";
+        sha1 = "36df19467a3879152e9adcc44784f07d0a80c525";
       })
     ];
     buildInputs =
-      (self.nativeDeps."p-throttler" or []);
+      (self.nativeDeps."pako" or []);
     deps = [
-      self.by-version."q"."0.9.7"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "p-throttler" ];
+    passthru.names = [ "pako" ];
   };
-  by-spec."pako"."~0.2.0" =
-    self.by-version."pako"."0.2.0";
-  by-version."pako"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-pako-0.2.0";
+  by-spec."parents"."^1.0.0" =
+    self.by-version."parents"."1.0.0";
+  by-version."parents"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "parents-1.0.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/pako/-/pako-0.2.0.tgz";
-        name = "pako-0.2.0.tgz";
-        sha1 = "bb93787e8c60587c8b13cd3cd8802e9d6f5dd8d5";
+        url = "http://registry.npmjs.org/parents/-/parents-1.0.0.tgz";
+        name = "parents-1.0.0.tgz";
+        sha1 = "05726fdb61b60d8c9e3d5d9c595aa78c881c8479";
       })
     ];
     buildInputs =
-      (self.nativeDeps."pako" or []);
+      (self.nativeDeps."parents" or []);
     deps = [
+      self.by-version."path-platform"."0.0.1"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "pako" ];
+    passthru.names = [ "parents" ];
   };
-  by-spec."parents"."0.0.2" =
-    self.by-version."parents"."0.0.2";
-  by-version."parents"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "parents-0.0.2";
+  by-spec."parents"."~0.0.1" =
+    self.by-version."parents"."0.0.3";
+  by-version."parents"."0.0.3" = lib.makeOverridable self.buildNodePackage {
+    name = "parents-0.0.3";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/parents/-/parents-0.0.2.tgz";
-        name = "parents-0.0.2.tgz";
-        sha1 = "67147826e497d40759aaf5ba4c99659b6034d302";
+        url = "http://registry.npmjs.org/parents/-/parents-0.0.3.tgz";
+        name = "parents-0.0.3.tgz";
+        sha1 = "fa212f024d9fa6318dbb6b4ce676c8be493b9c43";
       })
     ];
     buildInputs =
       (self.nativeDeps."parents" or []);
     deps = [
+      self.by-version."path-platform"."0.0.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "parents" ];
   };
-  by-spec."parents"."~0.0.1" =
-    self.by-version."parents"."0.0.2";
   by-spec."parseurl"."1.0.1" =
     self.by-version."parseurl"."1.0.1";
   by-version."parseurl"."1.0.1" = lib.makeOverridable self.buildNodePackage {
@@ -13674,6 +13845,63 @@
     ];
     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 = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "parseurl" ];
+  };
+  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."passport"."*" =
     self.by-version."passport"."0.2.0";
   by-version."passport"."0.2.0" = lib.makeOverridable self.buildNodePackage {
@@ -13821,6 +14049,25 @@
     ];
     passthru.names = [ "path-is-inside" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/path-platform/-/path-platform-0.0.1.tgz";
+        name = "path-platform-0.0.1.tgz";
+        sha1 = "b5585d7c3c463d89aa0060d86611cf1afd617e2a";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."path-platform" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "path-platform" ];
+  };
   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 {
@@ -13840,6 +14087,25 @@
     ];
     passthru.names = [ "path-to-regexp" ];
   };
+  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."pause"."0.0.1" =
     self.by-version."pause"."0.0.1";
   by-version."pause"."0.0.1" = lib.makeOverridable self.buildNodePackage {
@@ -13860,14 +14126,14 @@
     passthru.names = [ "pause" ];
   };
   by-spec."phantomjs"."*" =
-    self.by-version."phantomjs"."1.9.7-4";
-  by-version."phantomjs"."1.9.7-4" = lib.makeOverridable self.buildNodePackage {
-    name = "phantomjs-1.9.7-4";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/phantomjs/-/phantomjs-1.9.7-4.tgz";
-        name = "phantomjs-1.9.7-4.tgz";
-        sha1 = "975b84f17b4b3bb28161d28303cb793b98c9d0dd";
+        url = "http://registry.npmjs.org/phantomjs/-/phantomjs-1.9.7-15.tgz";
+        name = "phantomjs-1.9.7-15.tgz";
+        sha1 = "0b3a7ce630486a83be91ff4e832eee20e971115b";
       })
     ];
     buildInputs =
@@ -13878,16 +14144,21 @@
       self.by-version."ncp"."0.4.2"
       self.by-version."npmconf"."0.0.24"
       self.by-version."mkdirp"."0.3.5"
-      self.by-version."rimraf"."2.2.6"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "phantomjs" ];
   };
-  "phantomjs" = self.by-version."phantomjs"."1.9.7-4";
-  by-spec."phantomjs"."~1.9.1-2" =
-    self.by-version."phantomjs"."1.9.7-4";
+  "phantomjs" = self.by-version."phantomjs"."1.9.7-15";
+  by-spec."phantomjs"."~1.9.1" =
+    self.by-version."phantomjs"."1.9.7-15";
+  by-spec."phantomjs"."~1.9.7" =
+    self.by-version."phantomjs"."1.9.7-15";
   by-spec."pkginfo"."0.2.x" =
     self.by-version."pkginfo"."0.2.3";
   by-version."pkginfo"."0.2.3" = lib.makeOverridable self.buildNodePackage {
@@ -13931,26 +14202,26 @@
   by-spec."pkginfo"."0.x.x" =
     self.by-version."pkginfo"."0.3.0";
   by-spec."plist-native"."*" =
-    self.by-version."plist-native"."0.2.3";
-  by-version."plist-native"."0.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-plist-native-0.2.3";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/plist-native/-/plist-native-0.2.3.tgz";
-        name = "plist-native-0.2.3.tgz";
-        sha1 = "76843a2da80d587b75dcbcc1634c6f3968a2af17";
+        url = "http://registry.npmjs.org/plist-native/-/plist-native-0.3.1.tgz";
+        name = "plist-native-0.3.1.tgz";
+        sha1 = "c9cd71ae2ac6aa16c315dde213c65d6cc53dee1a";
       })
     ];
     buildInputs =
       (self.nativeDeps."plist-native" or []);
     deps = [
-      self.by-version."libxmljs"."0.8.1"
+      self.by-version."libxmljs"."0.10.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "plist-native" ];
   };
-  "plist-native" = self.by-version."plist-native"."0.2.3";
+  "plist-native" = self.by-version."plist-native"."0.3.1";
   by-spec."policyfile"."0.0.4" =
     self.by-version."policyfile"."0.0.4";
   by-version."policyfile"."0.0.4" = lib.makeOverridable self.buildNodePackage {
@@ -14010,14 +14281,14 @@
     passthru.names = [ "posix-getopt" ];
   };
   by-spec."pretty-bytes"."^0.1.0" =
-    self.by-version."pretty-bytes"."0.1.0";
-  by-version."pretty-bytes"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "pretty-bytes-0.1.0";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/pretty-bytes/-/pretty-bytes-0.1.0.tgz";
-        name = "pretty-bytes-0.1.0.tgz";
-        sha1 = "2cad1cdd7838fe59018ae5e0ccf7cae741942f8e";
+        url = "http://registry.npmjs.org/pretty-bytes/-/pretty-bytes-0.1.2.tgz";
+        name = "pretty-bytes-0.1.2.tgz";
+        sha1 = "cd90294d58a1ca4e8a5d0fb9c8225998881acf00";
       })
     ];
     buildInputs =
@@ -14028,6 +14299,25 @@
     ];
     passthru.names = [ "pretty-bytes" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/process/-/process-0.7.0.tgz";
+        name = "process-0.7.0.tgz";
+        sha1 = "c52208161a34adf3812344ae85d3e6150469389d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."process" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "process" ];
+  };
   by-spec."process"."~0.5.1" =
     self.by-version."process"."0.5.2";
   by-version."process"."0.5.2" = lib.makeOverridable self.buildNodePackage {
@@ -14066,6 +14356,25 @@
     ];
     passthru.names = [ "process" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/progress/-/progress-1.1.8.tgz";
+        name = "progress-1.1.8.tgz";
+        sha1 = "e260c78f6161cdd9b0e56cc3e0a85de17c7a57be";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."progress" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "progress" ];
+  };
   by-spec."promise"."~2.0" =
     self.by-version."promise"."2.0.0";
   by-version."promise"."2.0.0" = lib.makeOverridable self.buildNodePackage {
@@ -14080,7 +14389,7 @@
     buildInputs =
       (self.nativeDeps."promise" or []);
     deps = [
-      self.by-version."is-promise"."1.0.0"
+      self.by-version."is-promise"."1.0.1"
     ];
     peerDependencies = [
     ];
@@ -14102,7 +14411,7 @@
     deps = [
       self.by-version."pkginfo"."0.3.0"
       self.by-version."read"."1.0.5"
-      self.by-version."revalidator"."0.1.7"
+      self.by-version."revalidator"."0.1.8"
       self.by-version."utile"."0.2.1"
       self.by-version."winston"."0.6.2"
     ];
@@ -14110,35 +14419,15 @@
     ];
     passthru.names = [ "prompt" ];
   };
-  by-spec."promptly"."~0.2.0" =
-    self.by-version."promptly"."0.2.0";
-  by-version."promptly"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-promptly-0.2.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/promptly/-/promptly-0.2.0.tgz";
-        name = "promptly-0.2.0.tgz";
-        sha1 = "73ef200fa8329d5d3a8df41798950b8646ca46d9";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."promptly" or []);
-    deps = [
-      self.by-version."read"."1.0.5"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "promptly" ];
-  };
   by-spec."promzard"."~0.2.0" =
-    self.by-version."promzard"."0.2.1";
-  by-version."promzard"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-promzard-0.2.1";
+    self.by-version."promzard"."0.2.2";
+  by-version."promzard"."0.2.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-promzard-0.2.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/promzard/-/promzard-0.2.1.tgz";
-        name = "promzard-0.2.1.tgz";
-        sha1 = "c4c7cbe5182465c13b43540be9daf47098b4e75b";
+        url = "http://registry.npmjs.org/promzard/-/promzard-0.2.2.tgz";
+        name = "promzard-0.2.2.tgz";
+        sha1 = "918b9f2b29458cb001781a8856502e4a79b016e0";
       })
     ];
     buildInputs =
@@ -14151,14 +14440,14 @@
     passthru.names = [ "promzard" ];
   };
   by-spec."proto-list"."~1.2.1" =
-    self.by-version."proto-list"."1.2.2";
-  by-version."proto-list"."1.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-proto-list-1.2.2";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/proto-list/-/proto-list-1.2.2.tgz";
-        name = "proto-list-1.2.2.tgz";
-        sha1 = "48b88798261ec2c4a785720cdfec6200d57d3326";
+        url = "http://registry.npmjs.org/proto-list/-/proto-list-1.2.3.tgz";
+        name = "proto-list-1.2.3.tgz";
+        sha1 = "6235554a1bca1f0d15e3ca12ca7329d5def42bd9";
       })
     ];
     buildInputs =
@@ -14169,26 +14458,25 @@
     ];
     passthru.names = [ "proto-list" ];
   };
-  by-spec."protobufjs".">= 1.1.4" =
-    self.by-version."protobufjs"."2.0.5";
-  by-version."protobufjs"."2.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "protobufjs-2.0.5";
+  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 = [
-      (self.patchSource fetchurl {
-        url = "http://registry.npmjs.org/protobufjs/-/protobufjs-2.0.5.tgz";
-        name = "protobufjs-2.0.5.tgz";
-        sha1 = "7f351178c959b333d2327b773325ca4b2627a242";
+      (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."protobufjs" or []);
+      (self.nativeDeps."proxy-addr" or []);
     deps = [
-      self.by-version."bytebuffer"."2.3.1"
-      self.by-version."ascli"."0.3.0"
+      self.by-version."ipaddr.js"."0.1.2"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "protobufjs" ];
+    passthru.names = [ "proxy-addr" ];
   };
   by-spec."ps-tree"."0.0.x" =
     self.by-version."ps-tree"."0.0.3";
@@ -14210,6 +14498,8 @@
     ];
     passthru.names = [ "ps-tree" ];
   };
+  by-spec."ps-tree"."~0.0.3" =
+    self.by-version."ps-tree"."0.0.3";
   by-spec."punycode"."1.2.4" =
     self.by-version."punycode"."1.2.4";
   by-version."punycode"."1.2.4" = lib.makeOverridable self.buildNodePackage {
@@ -14230,16 +14520,14 @@
     passthru.names = [ "punycode" ];
   };
   by-spec."punycode".">=0.2.0" =
-    self.by-version."punycode"."1.2.4";
-  by-spec."punycode".">=1.0.0 <1.1.0" =
-    self.by-version."punycode"."1.0.0";
-  by-version."punycode"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-punycode-1.0.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.0.0.tgz";
-        name = "punycode-1.0.0.tgz";
-        sha1 = "ce9e6c6e9c1db5827174fceb12ff4938700a1bd3";
+        url = "http://registry.npmjs.org/punycode/-/punycode-1.3.1.tgz";
+        name = "punycode-1.3.1.tgz";
+        sha1 = "710afe5123c20a1530b712e3e682b9118fe8058e";
       })
     ];
     buildInputs =
@@ -14252,6 +14540,8 @@
   };
   by-spec."punycode"."~1.2.3" =
     self.by-version."punycode"."1.2.4";
+  by-spec."punycode"."~1.2.4" =
+    self.by-version."punycode"."1.2.4";
   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 {
@@ -14273,14 +14563,14 @@
   };
   "pure-css" = self.by-version."pure-css"."0.5.0-rc-1";
   by-spec."q".">= 0.0.1" =
-    self.by-version."q"."2.0.1";
-  by-version."q"."2.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-q-2.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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/q/-/q-2.0.1.tgz";
-        name = "q-2.0.1.tgz";
-        sha1 = "ae9dc1edd970e72820a1ca716ecc1b0fc96c1c5a";
+        url = "http://registry.npmjs.org/q/-/q-2.0.2.tgz";
+        name = "q-2.0.2.tgz";
+        sha1 = "4629e6cc668ff8554cfa775dab5aba50bad8f56d";
       })
     ];
     buildInputs =
@@ -14293,7 +14583,7 @@
     ];
     passthru.names = [ "q" ];
   };
-  by-spec."q"."~0.9.2" =
+  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";
@@ -14312,11 +14602,9 @@
     ];
     passthru.names = [ "q" ];
   };
-  by-spec."q"."~0.9.6" =
-    self.by-version."q"."0.9.7";
   by-spec."q"."~0.9.7" =
     self.by-version."q"."0.9.7";
-  by-spec."q"."~1.0.0" =
+  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";
@@ -14335,8 +14623,6 @@
     ];
     passthru.names = [ "q" ];
   };
-  by-spec."q"."~1.0.1" =
-    self.by-version."q"."1.0.1";
   by-spec."qs"."0.4.2" =
     self.by-version."qs"."0.4.2";
   by-version."qs"."0.4.2" = lib.makeOverridable self.buildNodePackage {
@@ -14453,9 +14739,28 @@
     ];
     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";
+    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" ];
+  };
   by-spec."qs".">= 0.4.0" =
-    self.by-version."qs"."0.6.6";
-  by-spec."qs"."~0.5.0" =
+    self.by-version."qs"."1.2.2";
+  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";
@@ -14474,40 +14779,36 @@
     ];
     passthru.names = [ "qs" ];
   };
-  by-spec."qs"."~0.5.4" =
-    self.by-version."qs"."0.5.6";
   by-spec."qs"."~0.6.0" =
     self.by-version."qs"."0.6.6";
-  by-spec."qs"."~0.6.6" =
-    self.by-version."qs"."0.6.6";
-  by-spec."querystring".">=0.1.0 <0.2.0" =
-    self.by-version."querystring"."0.1.0";
-  by-version."querystring"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-querystring-0.1.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/querystring/-/querystring-0.1.0.tgz";
-        name = "querystring-0.1.0.tgz";
-        sha1 = "cb76a26cda0a10a94163fcdb3e132827f04b7b10";
+        url = "http://registry.npmjs.org/qs/-/qs-1.0.2.tgz";
+        name = "qs-1.0.2.tgz";
+        sha1 = "50a93e2b5af6691c31bcea5dae78ee6ea1903768";
       })
     ];
     buildInputs =
-      (self.nativeDeps."querystring" or []);
+      (self.nativeDeps."qs" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "querystring" ];
+    passthru.names = [ "qs" ];
   };
-  by-spec."querystring-es3"."0.2.0" =
-    self.by-version."querystring-es3"."0.2.0";
-  by-version."querystring-es3"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-querystring-es3-0.2.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.0.tgz";
-        name = "querystring-es3-0.2.0.tgz";
-        sha1 = "c365a08a69c443accfeb3a9deab35e3f0abaa476";
+        url = "http://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1-0.tgz";
+        name = "querystring-es3-0.2.1-0.tgz";
+        sha1 = "bd38cbd701040e7ef66c94a93db4a5b45be39565";
       })
     ];
     buildInputs =
@@ -14518,15 +14819,15 @@
     ];
     passthru.names = [ "querystring-es3" ];
   };
-  by-spec."rai"."~0.1" =
-    self.by-version."rai"."0.1.9";
-  by-version."rai"."0.1.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-rai-0.1.9";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/rai/-/rai-0.1.9.tgz";
-        name = "rai-0.1.9.tgz";
-        sha1 = "0f71aac1b8787828b0e0bdae73ec4fe64bad11fc";
+        url = "http://registry.npmjs.org/rai/-/rai-0.1.11.tgz";
+        name = "rai-0.1.11.tgz";
+        sha1 = "ea0ba30ceecfb77a46d3b2d849e3d4249d056228";
       })
     ];
     buildInputs =
@@ -14577,24 +14878,27 @@
   };
   by-spec."range-parser"."~1.0.0" =
     self.by-version."range-parser"."1.0.0";
-  by-spec."raven"."~0.6.3" =
-    self.by-version."raven"."0.6.3";
-  by-version."raven"."0.6.3" = lib.makeOverridable self.buildNodePackage {
-    name = "raven-0.6.3";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/raven/-/raven-0.6.3.tgz";
-        name = "raven-0.6.3.tgz";
-        sha1 = "3e7c72d45e0dff93ecc54978661331755c637320";
+        url = "http://registry.npmjs.org/raven/-/raven-0.7.0.tgz";
+        name = "raven-0.7.0.tgz";
+        sha1 = "ec7fea6c0b87c59b252a9491c93d5bcf8d0c7ba0";
       })
     ];
     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."lsmod"."0.0.3"
-      self.by-version."cookie"."0.1.0"
+      self.by-version."connect"."3.1.1"
+      self.by-version."express"."4.8.5"
+      self.by-version."koa"."0.10.0"
     ];
     peerDependencies = [
     ];
@@ -14639,41 +14943,43 @@
     ];
     passthru.names = [ "raw-body" ];
   };
-  by-spec."raw-body"."1.1.3" =
-    self.by-version."raw-body"."1.1.3";
-  by-version."raw-body"."1.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-raw-body-1.1.3";
+  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.1.3.tgz";
-        name = "raw-body-1.1.3.tgz";
-        sha1 = "3d2f91e2449259cc67b8c3ce9f061db5b987935b";
+        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"."0.2.1"
+      self.by-version."bytes"."1.0.0"
+      self.by-version."iconv-lite"."0.4.3"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "raw-body" ];
   };
-  by-spec."raw-body"."~1.1.2" =
-    self.by-version."raw-body"."1.1.4";
-  by-version."raw-body"."1.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-raw-body-1.1.4";
+  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.1.4.tgz";
-        name = "raw-body-1.1.4.tgz";
-        sha1 = "f0b5624388d031f63da07f870c86cb9ccadcb67d";
+        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"."0.3.0"
+      self.by-version."bytes"."1.0.0"
+      self.by-version."iconv-lite"."0.4.4"
     ];
     peerDependencies = [
     ];
@@ -14699,14 +15005,14 @@
     passthru.names = [ "raw-socket" ];
   };
   by-spec."rbytes"."*" =
-    self.by-version."rbytes"."1.0.0";
-  by-version."rbytes"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-rbytes-1.0.0";
+    self.by-version."rbytes"."1.1.0";
+  by-version."rbytes"."1.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-rbytes-1.1.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/rbytes/-/rbytes-1.0.0.tgz";
-        name = "rbytes-1.0.0.tgz";
-        sha1 = "4eeb85c457f710d8147329d5eed5cd02c798fa4d";
+        url = "http://registry.npmjs.org/rbytes/-/rbytes-1.1.0.tgz";
+        name = "rbytes-1.1.0.tgz";
+        sha1 = "50234097e70c079bcdf5227494311b1038f3d619";
       })
     ];
     buildInputs =
@@ -14717,7 +15023,7 @@
     ];
     passthru.names = [ "rbytes" ];
   };
-  "rbytes" = self.by-version."rbytes"."1.0.0";
+  "rbytes" = self.by-version."rbytes"."1.1.0";
   by-spec."rc"."~0.3.0" =
     self.by-version."rc"."0.3.5";
   by-version."rc"."0.3.5" = lib.makeOverridable self.buildNodePackage {
@@ -14732,37 +15038,58 @@
     buildInputs =
       (self.nativeDeps."rc" or []);
     deps = [
-      self.by-version."minimist"."0.0.8"
-      self.by-version."deep-extend"."0.2.8"
+      self.by-version."minimist"."0.0.10"
+      self.by-version."deep-extend"."0.2.11"
+      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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/rc/-/rc-0.4.0.tgz";
+        name = "rc-0.4.0.tgz";
+        sha1 = "ce24a2029ad94c3a40d09604a87227027d7210d3";
+      })
+    ];
+    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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "rc" ];
   };
-  by-spec."rc"."~0.3.4" =
-    self.by-version."rc"."0.3.5";
   by-spec."react"."*" =
-    self.by-version."react"."0.10.0";
-  by-version."react"."0.10.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-react-0.10.0";
+    self.by-version."react"."0.11.1";
+  by-version."react"."0.11.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-react-0.11.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/react/-/react-0.10.0.tgz";
-        name = "react-0.10.0.tgz";
-        sha1 = "8c82753593d3f325ca99d820f7400ab02f1ee1f8";
+        url = "http://registry.npmjs.org/react/-/react-0.11.1.tgz";
+        name = "react-0.11.1.tgz";
+        sha1 = "201190712f69bc451e2c83946653384d7448aaff";
       })
     ];
     buildInputs =
       (self.nativeDeps."react" or []);
     deps = [
+      self.by-version."envify"."2.0.1"
     ];
     peerDependencies = [
-      self.by-version."envify"."1.2.1"
     ];
     passthru.names = [ "react" ];
   };
-  "react" = self.by-version."react"."0.10.0";
+  "react" = self.by-version."react"."0.11.1";
   by-spec."read"."1" =
     self.by-version."read"."1.0.5";
   by-version."read"."1.0.5" = lib.makeOverridable self.buildNodePackage {
@@ -14789,64 +15116,88 @@
     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.1" =
-    self.by-version."read-installed"."2.0.2";
-  by-version."read-installed"."2.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-read-installed-2.0.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/read-installed/-/read-installed-2.0.2.tgz";
-        name = "read-installed-2.0.2.tgz";
-        sha1 = "e69e7e1946af932b2fa454465639ebea4d63773c";
+        url = "http://registry.npmjs.org/read-installed/-/read-installed-2.0.7.tgz";
+        name = "read-installed-2.0.7.tgz";
+        sha1 = "a82157a5e273576c57f230ecec3702ab215a6d6c";
       })
     ];
     buildInputs =
       (self.nativeDeps."read-installed" or []);
     deps = [
-      self.by-version."read-package-json"."1.1.8"
-      self.by-version."semver"."2.2.1"
+      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"."2.0.3"
+      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.1.8";
-  by-version."read-package-json"."1.1.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-read-package-json-1.1.8";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/read-package-json/-/read-package-json-1.1.8.tgz";
-        name = "read-package-json-1.1.8.tgz";
-        sha1 = "234928819444283fd63f9d93ce03ba00668e94f9";
+        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";
       })
     ];
     buildInputs =
       (self.nativeDeps."read-package-json" or []);
     deps = [
-      self.by-version."glob"."3.2.9"
+      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"."0.2.12"
-      self.by-version."graceful-fs"."2.0.3"
+      self.by-version."normalize-package-data"."1.0.0"
+      self.by-version."graceful-fs"."3.0.2"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "read-package-json" ];
   };
-  by-spec."read-package-json"."~1.1.8" =
-    self.by-version."read-package-json"."1.1.8";
+  by-spec."read-package-json"."~1.2.3" =
+    self.by-version."read-package-json"."1.2.6";
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz";
+        name = "readable-stream-1.1.13.tgz";
+        sha1 = "f6eef764f514c89e2b9e23146a75ba106756d23e";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "readable-stream" ];
+  };
   by-spec."readable-stream"."1.0" =
-    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";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz";
-        name = "readable-stream-1.0.27-1.tgz";
-        sha1 = "6b67983c20357cefd07f0165001a16d710d91078";
+        url = "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.31.tgz";
+        name = "readable-stream-1.0.31.tgz";
+        sha1 = "8f2502e0bc9e3b0da1b94520aabb4e2603ecafae";
       })
     ];
     buildInputs =
@@ -14861,15 +15212,15 @@
     ];
     passthru.names = [ "readable-stream" ];
   };
-  by-spec."readable-stream"."1.1" =
-    self.by-version."readable-stream"."1.1.13-1";
-  by-version."readable-stream"."1.1.13-1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-readable-stream-1.1.13-1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13-1.tgz";
-        name = "readable-stream-1.1.13-1.tgz";
-        sha1 = "fc6f04f3366bf37bae21bec2e411c1b4d2cf1a46";
+        url = "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz";
+        name = "readable-stream-1.0.27-1.tgz";
+        sha1 = "6b67983c20357cefd07f0165001a16d710d91078";
       })
     ];
     buildInputs =
@@ -14884,57 +15235,67 @@
     ];
     passthru.names = [ "readable-stream" ];
   };
+  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" =
+    self.by-version."readable-stream"."1.0.31";
+  by-spec."readable-stream".">=1.1.13-1 <1.2.0-0" =
+    self.by-version."readable-stream"."1.1.13";
+  by-spec."readable-stream"."^1.0.27-1" =
+    self.by-version."readable-stream"."1.1.13";
+  by-spec."readable-stream"."^1.1.13-1" =
+    self.by-version."readable-stream"."1.1.13";
   by-spec."readable-stream"."~1.0.17" =
-    self.by-version."readable-stream"."1.0.27-1";
+    self.by-version."readable-stream"."1.0.31";
   by-spec."readable-stream"."~1.0.2" =
-    self.by-version."readable-stream"."1.0.27-1";
+    self.by-version."readable-stream"."1.0.31";
   by-spec."readable-stream"."~1.0.24" =
-    self.by-version."readable-stream"."1.0.27-1";
+    self.by-version."readable-stream"."1.0.31";
+  by-spec."readable-stream"."~1.0.26" =
+    self.by-version."readable-stream"."1.0.31";
   by-spec."readable-stream"."~1.1.8" =
-    self.by-version."readable-stream"."1.1.13-1";
+    self.by-version."readable-stream"."1.1.13";
   by-spec."readable-stream"."~1.1.9" =
-    self.by-version."readable-stream"."1.1.13-1";
-  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";
+    self.by-version."readable-stream"."1.1.13";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/readdirp/-/readdirp-0.2.5.tgz";
-        name = "readdirp-0.2.5.tgz";
-        sha1 = "c4c276e52977ae25db5191fe51d008550f15d9bb";
+        url = "http://registry.npmjs.org/readable-wrap/-/readable-wrap-1.0.0.tgz";
+        name = "readable-wrap-1.0.0.tgz";
+        sha1 = "3b5a211c631e12303a54991c806c17e7ae206bff";
       })
     ];
     buildInputs =
-      (self.nativeDeps."readdirp" or []);
+      (self.nativeDeps."readable-wrap" or []);
     deps = [
-      self.by-version."minimatch"."0.2.14"
+      self.by-version."readable-stream"."1.1.13"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "readdirp" ];
+    passthru.names = [ "readable-wrap" ];
   };
-  by-spec."readline2"."~0.1.0" =
-    self.by-version."readline2"."0.1.0";
-  by-version."readline2"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-readline2-0.1.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/readline2/-/readline2-0.1.0.tgz";
-        name = "readline2-0.1.0.tgz";
-        sha1 = "6a272ef89731225b448e4c6799b6e50d5be12b98";
+        url = "http://registry.npmjs.org/readdirp/-/readdirp-0.2.5.tgz";
+        name = "readdirp-0.2.5.tgz";
+        sha1 = "c4c276e52977ae25db5191fe51d008550f15d9bb";
       })
     ];
     buildInputs =
-      (self.nativeDeps."readline2" or []);
+      (self.nativeDeps."readdirp" or []);
     deps = [
-      self.by-version."mute-stream"."0.0.4"
-      self.by-version."lodash"."2.4.1"
-      self.by-version."chalk"."0.4.0"
+      self.by-version."minimatch"."1.0.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "readline2" ];
+    passthru.names = [ "readdirp" ];
   };
   by-spec."recursive-readdir"."0.0.2" =
     self.by-version."recursive-readdir"."0.0.2";
@@ -14955,35 +15316,35 @@
     ];
     passthru.names = [ "recursive-readdir" ];
   };
-  by-spec."redeyed"."~0.4.0" =
-    self.by-version."redeyed"."0.4.4";
-  by-version."redeyed"."0.4.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-redeyed-0.4.4";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/redeyed/-/redeyed-0.4.4.tgz";
-        name = "redeyed-0.4.4.tgz";
-        sha1 = "37e990a6f2b21b2a11c2e6a48fd4135698cba97f";
+        url = "http://registry.npmjs.org/redis/-/redis-0.12.1.tgz";
+        name = "redis-0.12.1.tgz";
+        sha1 = "64df76ad0fc8acebaebd2a0645e8a48fac49185e";
       })
     ];
     buildInputs =
-      (self.nativeDeps."redeyed" or []);
+      (self.nativeDeps."redis" or []);
     deps = [
-      self.by-version."esprima"."1.0.4"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "redeyed" ];
+    passthru.names = [ "redis" ];
   };
-  by-spec."redis"."*" =
-    self.by-version."redis"."0.10.1";
-  by-version."redis"."0.10.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-redis-0.10.1";
+  "redis" = self.by-version."redis"."0.12.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/redis/-/redis-0.10.1.tgz";
-        name = "redis-0.10.1.tgz";
-        sha1 = "4f09258931d961377239fdbd495e1d99a263a8ec";
+        url = "http://registry.npmjs.org/redis/-/redis-0.10.3.tgz";
+        name = "redis-0.10.3.tgz";
+        sha1 = "8927fe2110ee39617bcf3fd37b89d8e123911bb6";
       })
     ];
     buildInputs =
@@ -14994,7 +15355,6 @@
     ];
     passthru.names = [ "redis" ];
   };
-  "redis" = self.by-version."redis"."0.10.1";
   by-spec."redis"."0.7.2" =
     self.by-version."redis"."0.7.2";
   by-version."redis"."0.7.2" = lib.makeOverridable self.buildNodePackage {
@@ -15009,7 +15369,7 @@
     buildInputs =
       (self.nativeDeps."redis" or []);
     deps = [
-      self.by-version."hiredis"."0.1.16"
+      self.by-version."hiredis"."0.1.17"
     ];
     peerDependencies = [
     ];
@@ -15034,27 +15394,8 @@
     ];
     passthru.names = [ "redis" ];
   };
-  by-spec."redis"."0.8.x" =
-    self.by-version."redis"."0.8.6";
-  by-version."redis"."0.8.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-redis-0.8.6";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/redis/-/redis-0.8.6.tgz";
-        name = "redis-0.8.6.tgz";
-        sha1 = "a7ae8f0d6fad24bdeaffe28158d6cd1f1c9d30b8";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."redis" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "redis" ];
-  };
   by-spec."redis"."~0.10.0" =
-    self.by-version."redis"."0.10.1";
+    self.by-version."redis"."0.10.3";
   by-spec."reds"."~0.2.4" =
     self.by-version."reds"."0.2.4";
   by-version."reds"."0.2.4" = lib.makeOverridable self.buildNodePackage {
@@ -15137,49 +15478,50 @@
     passthru.names = [ "replace" ];
   };
   by-spec."request"."2" =
-    self.by-version."request"."2.34.0";
-  by-version."request"."2.34.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-request-2.34.0";
+    self.by-version."request"."2.40.0";
+  by-version."request"."2.40.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-request-2.40.0";
     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."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."mime"."1.2.11"
       self.by-version."tough-cookie"."0.12.1"
-      self.by-version."form-data"."0.1.2"
-      self.by-version."tunnel-agent"."0.3.0"
+      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."hawk"."1.1.1"
       self.by-version."aws-sign2"."0.5.0"
+      self.by-version."stringstream"."0.0.4"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "request" ];
   };
   by-spec."request"."2 >=2.20.0" =
-    self.by-version."request"."2.34.0";
+    self.by-version."request"."2.40.0";
   by-spec."request"."2 >=2.25.0" =
-    self.by-version."request"."2.34.0";
-  by-spec."request"."2.16.2" =
-    self.by-version."request"."2.16.2";
-  by-version."request"."2.16.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-request-2.16.2";
+    self.by-version."request"."2.40.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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/request/-/request-2.16.2.tgz";
-        name = "request-2.16.2.tgz";
-        sha1 = "83a028be61be4a05163e7e2e7a4b40e35df1bcb9";
+        url = "http://registry.npmjs.org/request/-/request-2.16.6.tgz";
+        name = "request-2.16.6.tgz";
+        sha1 = "872fe445ae72de266b37879d6ad7dc948fa01cad";
       })
     ];
     buildInputs =
@@ -15201,31 +15543,32 @@
     ];
     passthru.names = [ "request" ];
   };
-  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";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/request/-/request-2.16.6.tgz";
-        name = "request-2.16.6.tgz";
-        sha1 = "872fe445ae72de266b37879d6ad7dc948fa01cad";
+        url = "http://registry.npmjs.org/request/-/request-2.36.0.tgz";
+        name = "request-2.36.0.tgz";
+        sha1 = "28c6c04262c7b9ffdd21b9255374517ee6d943f5";
       })
     ];
     buildInputs =
       (self.nativeDeps."request" or []);
     deps = [
-      self.by-version."form-data"."0.0.10"
+      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."hawk"."0.10.2"
+      self.by-version."forever-agent"."0.5.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"
+      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"
     ];
     peerDependencies = [
     ];
@@ -15250,12 +15593,10 @@
     ];
     passthru.names = [ "request" ];
   };
-  by-spec."request".">=2.33.0" =
-    self.by-version."request"."2.34.0";
-  by-spec."request"."^2.34.0" =
-    self.by-version."request"."2.34.0";
+  by-spec."request"."^2.36.0" =
+    self.by-version."request"."2.40.0";
   by-spec."request"."~2" =
-    self.by-version."request"."2.34.0";
+    self.by-version."request"."2.40.0";
   by-spec."request"."~2.27.0" =
     self.by-version."request"."2.27.0";
   by-version."request"."2.27.0" = lib.makeOverridable self.buildNodePackage {
@@ -15281,7 +15622,7 @@
       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.2"
+      self.by-version."form-data"."0.1.4"
     ];
     peerDependencies = [
     ];
@@ -15307,7 +15648,7 @@
       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.2"
+      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"
@@ -15318,15 +15659,15 @@
     ];
     passthru.names = [ "request" ];
   };
-  by-spec."request"."~2.33.0" =
-    self.by-version."request"."2.33.0";
-  by-version."request"."2.33.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-request-2.33.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/request/-/request-2.33.0.tgz";
-        name = "request-2.33.0.tgz";
-        sha1 = "5167878131726070ec633752ea230a2379dc65ff";
+        url = "http://registry.npmjs.org/request/-/request-2.34.0.tgz";
+        name = "request-2.34.0.tgz";
+        sha1 = "b5d8b9526add4a2d4629f4d417124573996445ae";
       })
     ];
     buildInputs =
@@ -15338,7 +15679,7 @@
       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.2"
+      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"
@@ -15349,55 +15690,66 @@
     ];
     passthru.names = [ "request" ];
   };
-  by-spec."request-progress"."~0.3.0" =
-    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";
+  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-progress/-/request-progress-0.3.1.tgz";
-        name = "request-progress-0.3.1.tgz";
-        sha1 = "0721c105d8a96ac6b2ce8b2c89ae2d5ecfcf6b3a";
+        url = "http://registry.npmjs.org/request/-/request-2.37.0.tgz";
+        name = "request-2.37.0.tgz";
+        sha1 = "6c04c1f0f34af0c8b7408f1c1e30d4d6bd852d46";
       })
     ];
     buildInputs =
-      (self.nativeDeps."request-progress" or []);
+      (self.nativeDeps."request" or []);
     deps = [
-      self.by-version."throttleit"."0.0.2"
+      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"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "request-progress" ];
+    passthru.names = [ "request" ];
   };
-  by-spec."request-replay"."~0.2.0" =
-    self.by-version."request-replay"."0.2.0";
-  by-version."request-replay"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-request-replay-0.2.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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/request-replay/-/request-replay-0.2.0.tgz";
-        name = "request-replay-0.2.0.tgz";
-        sha1 = "9b693a5d118b39f5c596ead5ed91a26444057f60";
+        url = "http://registry.npmjs.org/request-progress/-/request-progress-0.3.1.tgz";
+        name = "request-progress-0.3.1.tgz";
+        sha1 = "0721c105d8a96ac6b2ce8b2c89ae2d5ecfcf6b3a";
       })
     ];
     buildInputs =
-      (self.nativeDeps."request-replay" or []);
+      (self.nativeDeps."request-progress" or []);
     deps = [
-      self.by-version."retry"."0.6.0"
+      self.by-version."throttleit"."0.0.2"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "request-replay" ];
+    passthru.names = [ "request-progress" ];
   };
   by-spec."requirejs"."~2.1" =
-    self.by-version."requirejs"."2.1.11";
-  by-version."requirejs"."2.1.11" = lib.makeOverridable self.buildNodePackage {
-    name = "requirejs-2.1.11";
+    self.by-version."requirejs"."2.1.14";
+  by-version."requirejs"."2.1.14" = lib.makeOverridable self.buildNodePackage {
+    name = "requirejs-2.1.14";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/requirejs/-/requirejs-2.1.11.tgz";
-        name = "requirejs-2.1.11.tgz";
-        sha1 = "0eafaa6b46ca9b5b1e13406f119c020190a24442";
+        url = "http://registry.npmjs.org/requirejs/-/requirejs-2.1.14.tgz";
+        name = "requirejs-2.1.14.tgz";
+        sha1 = "de00290aa526192ff8df4dc0ba9370ce399a76b0";
       })
     ];
     buildInputs =
@@ -15409,16 +15761,16 @@
     passthru.names = [ "requirejs" ];
   };
   by-spec."requirejs"."~2.1.0" =
-    self.by-version."requirejs"."2.1.11";
-  by-spec."resolve"."0.6.3" =
-    self.by-version."resolve"."0.6.3";
-  by-version."resolve"."0.6.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-resolve-0.6.3";
+    self.by-version."requirejs"."2.1.14";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz";
-        name = "resolve-0.6.3.tgz";
-        sha1 = "dd957982e7e736debdf53b58a4dd91754575dd46";
+        url = "http://registry.npmjs.org/resolve/-/resolve-0.7.4.tgz";
+        name = "resolve-0.7.4.tgz";
+        sha1 = "395a9ef9e873fbfe12bd14408bd91bb936003d69";
       })
     ];
     buildInputs =
@@ -15429,8 +15781,8 @@
     ];
     passthru.names = [ "resolve" ];
   };
-  by-spec."resolve"."0.6.x" =
-    self.by-version."resolve"."0.6.3";
+  by-spec."resolve"."0.7.x" =
+    self.by-version."resolve"."0.7.4";
   by-spec."resolve"."~0.3.0" =
     self.by-version."resolve"."0.3.1";
   by-version."resolve"."0.3.1" = lib.makeOverridable self.buildNodePackage {
@@ -15452,24 +15804,25 @@
   };
   by-spec."resolve"."~0.3.1" =
     self.by-version."resolve"."0.3.1";
-  by-spec."resolve"."~0.6.0" =
-    self.by-version."resolve"."0.6.3";
-  by-spec."resolve"."~0.6.1" =
-    self.by-version."resolve"."0.6.3";
-  by-spec."response-time"."1.0.0" =
-    self.by-version."response-time"."1.0.0";
-  by-version."response-time"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-response-time-1.0.0";
+  by-spec."resolve"."~0.7.1" =
+    self.by-version."resolve"."0.7.4";
+  by-spec."resolve"."~0.7.2" =
+    self.by-version."resolve"."0.7.4";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/response-time/-/response-time-1.0.0.tgz";
-        name = "response-time-1.0.0.tgz";
-        sha1 = "c2bc8d08f3c359f97eae1d6da86eead175fabdc9";
+        url = "http://registry.npmjs.org/response-time/-/response-time-2.0.1.tgz";
+        name = "response-time-2.0.1.tgz";
+        sha1 = "c6d2cbadeac4cb251b21016fe182640c02aff343";
       })
     ];
     buildInputs =
       (self.nativeDeps."response-time" or []);
     deps = [
+      self.by-version."on-headers"."1.0.0"
     ];
     peerDependencies = [
     ];
@@ -15512,26 +15865,26 @@
     passthru.names = [ "restify" ];
   };
   by-spec."rethinkdb"."*" =
-    self.by-version."rethinkdb"."1.12.0-0";
-  by-version."rethinkdb"."1.12.0-0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-rethinkdb-1.12.0-0";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/rethinkdb/-/rethinkdb-1.12.0-0.tgz";
-        name = "rethinkdb-1.12.0-0.tgz";
-        sha1 = "cad01e869bd12dcd09f235c5ec8f5ccf26cc6f81";
+        url = "http://registry.npmjs.org/rethinkdb/-/rethinkdb-1.13.0-3.tgz";
+        name = "rethinkdb-1.13.0-3.tgz";
+        sha1 = "67db23e23ac3ff40fd4738414fc14d1935e6009e";
       })
     ];
     buildInputs =
       (self.nativeDeps."rethinkdb" or []);
     deps = [
-      self.by-version."protobufjs"."2.0.5"
+      self.by-version."bluebird"."2.3.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "rethinkdb" ];
   };
-  "rethinkdb" = self.by-version."rethinkdb"."1.12.0-0";
+  "rethinkdb" = self.by-version."rethinkdb"."1.13.0-3";
   by-spec."retry"."0.6.0" =
     self.by-version."retry"."0.6.0";
   by-version."retry"."0.6.0" = lib.makeOverridable self.buildNodePackage {
@@ -15552,16 +15905,33 @@
     passthru.names = [ "retry" ];
   };
   by-spec."retry"."~0.6.0" =
-    self.by-version."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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/retry/-/retry-0.6.1.tgz";
+        name = "retry-0.6.1.tgz";
+        sha1 = "fdc90eed943fde11b893554b8cc63d0e899ba918";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."retry" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "retry" ];
+  };
   by-spec."revalidator"."0.1.x" =
-    self.by-version."revalidator"."0.1.7";
-  by-version."revalidator"."0.1.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-revalidator-0.1.7";
+    self.by-version."revalidator"."0.1.8";
+  by-version."revalidator"."0.1.8" = lib.makeOverridable self.buildNodePackage {
+    name = "node-revalidator-0.1.8";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/revalidator/-/revalidator-0.1.7.tgz";
-        name = "revalidator-0.1.7.tgz";
-        sha1 = "f0b68b01bc5c5e0e9e6d864154d7098f24fec1db";
+        url = "http://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz";
+        name = "revalidator-0.1.8.tgz";
+        sha1 = "fece61bfa0c1b52a206bd6b18198184bdd523a3b";
       })
     ];
     buildInputs =
@@ -15615,14 +15985,14 @@
     passthru.names = [ "rimraf" ];
   };
   by-spec."rimraf"."2" =
-    self.by-version."rimraf"."2.2.6";
-  by-version."rimraf"."2.2.6" = lib.makeOverridable self.buildNodePackage {
-    name = "rimraf-2.2.6";
+    self.by-version."rimraf"."2.2.8";
+  by-version."rimraf"."2.2.8" = lib.makeOverridable self.buildNodePackage {
+    name = "rimraf-2.2.8";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/rimraf/-/rimraf-2.2.6.tgz";
-        name = "rimraf-2.2.6.tgz";
-        sha1 = "c59597569b14d956ad29cacc42bdddf5f0ea4f4c";
+        url = "http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz";
+        name = "rimraf-2.2.8.tgz";
+        sha1 = "e439be2aaee327321952730f99a8929e4fc50582";
       })
     ];
     buildInputs =
@@ -15634,31 +16004,11 @@
     passthru.names = [ "rimraf" ];
   };
   by-spec."rimraf"."2.x.x" =
-    self.by-version."rimraf"."2.2.6";
-  by-spec."rimraf"."^2.2.2" =
-    self.by-version."rimraf"."2.2.6";
+    self.by-version."rimraf"."2.2.8";
+  by-spec."rimraf"."^2.2.8" =
+    self.by-version."rimraf"."2.2.8";
   by-spec."rimraf"."~2" =
-    self.by-version."rimraf"."2.2.6";
-  by-spec."rimraf"."~2.0.2" =
-    self.by-version."rimraf"."2.0.3";
-  by-version."rimraf"."2.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-rimraf-2.0.3";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/rimraf/-/rimraf-2.0.3.tgz";
-        name = "rimraf-2.0.3.tgz";
-        sha1 = "f50a2965e7144e9afd998982f15df706730f56a9";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."rimraf" or []);
-    deps = [
-      self.by-version."graceful-fs"."1.1.14"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "rimraf" ];
-  };
+    self.by-version."rimraf"."2.2.8";
   by-spec."rimraf"."~2.1.4" =
     self.by-version."rimraf"."2.1.4";
   by-version."rimraf"."2.1.4" = lib.makeOverridable self.buildNodePackage {
@@ -15680,13 +16030,53 @@
     passthru.names = [ "rimraf" ];
   };
   by-spec."rimraf"."~2.2.0" =
-    self.by-version."rimraf"."2.2.6";
+    self.by-version."rimraf"."2.2.8";
   by-spec."rimraf"."~2.2.2" =
-    self.by-version."rimraf"."2.2.6";
+    self.by-version."rimraf"."2.2.8";
   by-spec."rimraf"."~2.2.5" =
-    self.by-version."rimraf"."2.2.6";
+    self.by-version."rimraf"."2.2.8";
   by-spec."rimraf"."~2.2.6" =
-    self.by-version."rimraf"."2.2.6";
+    self.by-version."rimraf"."2.2.8";
+  by-spec."rimraf"."~2.2.8" =
+    self.by-version."rimraf"."2.2.8";
+  by-spec."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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz";
+        name = "ripemd160-0.2.0.tgz";
+        sha1 = "2bf198bde167cacfa51c0a928e84b68bbe171fce";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."ripemd160" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "ripemd160" ];
+  };
+  by-spec."rndm"."1" =
+    self.by-version."rndm"."1.0.0";
+  by-version."rndm"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-rndm-1.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/rndm/-/rndm-1.0.0.tgz";
+        name = "rndm-1.0.0.tgz";
+        sha1 = "dcb6eb485b9b416d15e097f39c31458e4cfda2da";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."rndm" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "rndm" ];
+  };
   by-spec."ruglify"."~1.0.0" =
     self.by-version."ruglify"."1.0.0";
   by-version."ruglify"."1.0.0" = lib.makeOverridable self.buildNodePackage {
@@ -15755,24 +16145,24 @@
     ];
     passthru.names = [ "samsam" ];
   };
-  by-spec."sauce-connect-launcher"."~0.4.0" =
-    self.by-version."sauce-connect-launcher"."0.4.2";
-  by-version."sauce-connect-launcher"."0.4.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sauce-connect-launcher-0.4.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/sauce-connect-launcher/-/sauce-connect-launcher-0.4.2.tgz";
-        name = "sauce-connect-launcher-0.4.2.tgz";
-        sha1 = "a24b9fde59e3b29ca2011174c5c08ef8f74e44b9";
+        url = "http://registry.npmjs.org/sauce-connect-launcher/-/sauce-connect-launcher-0.6.1.tgz";
+        name = "sauce-connect-launcher-0.6.1.tgz";
+        sha1 = "a770184d8d9860cbb1e76c344af28cdf5d0e247a";
       })
     ];
     buildInputs =
       (self.nativeDeps."sauce-connect-launcher" or []);
     deps = [
-      self.by-version."lodash"."1.3.1"
-      self.by-version."async"."0.2.10"
+      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.6"
+      self.by-version."rimraf"."2.2.8"
     ];
     peerDependencies = [
     ];
@@ -15797,6 +16187,25 @@
     ];
     passthru.names = [ "saucelabs" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/sax/-/sax-0.4.2.tgz";
+        name = "sax-0.4.2.tgz";
+        sha1 = "39f3b601733d6bec97105b242a2a40fd6978ac3c";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."sax" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "sax" ];
+  };
   by-spec."sax"."0.5.x" =
     self.by-version."sax"."0.5.8";
   by-version."sax"."0.5.8" = lib.makeOverridable self.buildNodePackage {
@@ -15816,7 +16225,7 @@
     ];
     passthru.names = [ "sax" ];
   };
-  by-spec."sax".">=0.4.2" =
+  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";
@@ -15835,6 +16244,8 @@
     ];
     passthru.names = [ "sax" ];
   };
+  by-spec."sax".">=0.4.2" =
+    self.by-version."sax"."0.6.0";
   by-spec."scmp"."~0.0.3" =
     self.by-version."scmp"."0.0.3";
   by-version."scmp"."0.0.3" = lib.makeOverridable self.buildNodePackage {
@@ -15855,14 +16266,14 @@
     passthru.names = [ "scmp" ];
   };
   by-spec."selenium-webdriver"."*" =
-    self.by-version."selenium-webdriver"."2.41.0";
-  by-version."selenium-webdriver"."2.41.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-selenium-webdriver-2.41.0";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-2.41.0.tgz";
-        name = "selenium-webdriver-2.41.0.tgz";
-        sha1 = "d084dfbc73bdf33aedc7d731eaab028affad7f16";
+        url = "http://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-2.42.1.tgz";
+        name = "selenium-webdriver-2.42.1.tgz";
+        sha1 = "61984d1583b89c80a9f3bf31623d00bcc82a8d0e";
       })
     ];
     buildInputs =
@@ -15873,16 +16284,16 @@
     ];
     passthru.names = [ "selenium-webdriver" ];
   };
-  "selenium-webdriver" = self.by-version."selenium-webdriver"."2.41.0";
+  "selenium-webdriver" = self.by-version."selenium-webdriver"."2.42.1";
   by-spec."semver"."*" =
-    self.by-version."semver"."2.2.1";
-  by-version."semver"."2.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "semver-2.2.1";
+    self.by-version."semver"."3.0.1";
+  by-version."semver"."3.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "semver-3.0.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/semver/-/semver-2.2.1.tgz";
-        name = "semver-2.2.1.tgz";
-        sha1 = "7941182b3ffcc580bff1c17942acdf7951c0d213";
+        url = "http://registry.npmjs.org/semver/-/semver-3.0.1.tgz";
+        name = "semver-3.0.1.tgz";
+        sha1 = "720ac012515a252f91fb0dd2e99a56a70d6cf078";
       })
     ];
     buildInputs =
@@ -15893,7 +16304,7 @@
     ];
     passthru.names = [ "semver" ];
   };
-  "semver" = self.by-version."semver"."2.2.1";
+  "semver" = self.by-version."semver"."3.0.1";
   by-spec."semver"."1.1.0" =
     self.by-version."semver"."1.1.0";
   by-version."semver"."1.1.0" = lib.makeOverridable self.buildNodePackage {
@@ -15933,15 +16344,38 @@
     passthru.names = [ "semver" ];
   };
   by-spec."semver"."2" =
-    self.by-version."semver"."2.2.1";
+    self.by-version."semver"."2.3.2";
+  by-version."semver"."2.3.2" = lib.makeOverridable self.buildNodePackage {
+    name = "semver-2.3.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/semver/-/semver-2.3.2.tgz";
+        name = "semver-2.3.2.tgz";
+        sha1 = "b9848f25d6cf36333073ec9ef8856d42f1233e52";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."semver" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "semver" ];
+  };
+  by-spec."semver"."2 >=2.2.1 || 3.x" =
+    self.by-version."semver"."3.0.1";
+  by-spec."semver"."2 || 3" =
+    self.by-version."semver"."3.0.1";
   by-spec."semver"."2.x" =
-    self.by-version."semver"."2.2.1";
+    self.by-version."semver"."2.3.2";
+  by-spec."semver"."2.x || 3.x" =
+    self.by-version."semver"."3.0.1";
   by-spec."semver".">=2.0.10 <3.0.0" =
-    self.by-version."semver"."2.2.1";
-  by-spec."semver".">=2.2.1 <3" =
-    self.by-version."semver"."2.2.1";
-  by-spec."semver"."^2.2.1" =
-    self.by-version."semver"."2.2.1";
+    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" =
+    self.by-version."semver"."3.0.1";
   by-spec."semver"."~1.1.0" =
     self.by-version."semver"."1.1.4";
   by-spec."semver"."~1.1.4" =
@@ -15986,23 +16420,49 @@
   };
   by-spec."semver"."~2.2.1" =
     self.by-version."semver"."2.2.1";
+  by-version."semver"."2.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "semver-2.2.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/semver/-/semver-2.2.1.tgz";
+        name = "semver-2.2.1.tgz";
+        sha1 = "7941182b3ffcc580bff1c17942acdf7951c0d213";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."semver" or []);
+    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."send"."*" =
-    self.by-version."send"."0.2.0";
-  by-version."send"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-send-0.2.0";
+    self.by-version."send"."0.8.3";
+  by-version."send"."0.8.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-send-0.8.3";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/send/-/send-0.2.0.tgz";
-        name = "send-0.2.0.tgz";
-        sha1 = "067abf45cff8bffb29cbdb7439725b32388a2c58";
+        url = "http://registry.npmjs.org/send/-/send-0.8.3.tgz";
+        name = "send-0.8.3.tgz";
+        sha1 = "593886004fcb968a1b5727814a32b388b3b99083";
       })
     ];
     buildInputs =
       (self.nativeDeps."send" or []);
     deps = [
-      self.by-version."debug"."0.8.1"
-      self.by-version."mime"."1.2.11"
+      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"
     ];
     peerDependencies = [
@@ -16023,7 +16483,7 @@
     buildInputs =
       (self.nativeDeps."send" or []);
     deps = [
-      self.by-version."debug"."0.8.1"
+      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"
@@ -16046,7 +16506,7 @@
     buildInputs =
       (self.nativeDeps."send" or []);
     deps = [
-      self.by-version."debug"."0.8.1"
+      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"
@@ -16069,7 +16529,7 @@
     buildInputs =
       (self.nativeDeps."send" or []);
     deps = [
-      self.by-version."debug"."0.8.1"
+      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"
@@ -16080,6 +16540,81 @@
   };
   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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/send/-/send-0.2.0.tgz";
+        name = "send-0.2.0.tgz";
+        sha1 = "067abf45cff8bffb29cbdb7439725b32388a2c58";
+      })
+    ];
+    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"
+    ];
+    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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/send/-/send-0.6.0.tgz";
+        name = "send-0.6.0.tgz";
+        sha1 = "a59da9265db7c35141e1079cf1f368ee0d59b3ab";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "send" ];
+  };
+  by-spec."send"."0.8.3" =
+    self.by-version."send"."0.8.3";
   by-spec."sequence"."2.2.1" =
     self.by-version."sequence"."2.2.1";
   by-version."sequence"."2.2.1" = lib.makeOverridable self.buildNodePackage {
@@ -16101,22 +16636,43 @@
   };
   by-spec."sequence"."2.x" =
     self.by-version."sequence"."2.2.1";
-  by-spec."serve-index"."1.0.1" =
-    self.by-version."serve-index"."1.0.1";
-  by-version."serve-index"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-serve-index-1.0.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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/serve-favicon/-/serve-favicon-2.0.1.tgz";
+        name = "serve-favicon-2.0.1.tgz";
+        sha1 = "4826975d9f173ca3a4158e9698161f75dec7afec";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."serve-favicon" or []);
+    deps = [
+      self.by-version."fresh"."0.2.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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/serve-index/-/serve-index-1.0.1.tgz";
-        name = "serve-index-1.0.1.tgz";
-        sha1 = "2782ee8ede6cccaae54957962c4715e8ce1921a6";
+        url = "http://registry.npmjs.org/serve-index/-/serve-index-1.1.6.tgz";
+        name = "serve-index-1.1.6.tgz";
+        sha1 = "b758318fe781628383f66ac80dd447712ea7781f";
       })
     ];
     buildInputs =
       (self.nativeDeps."serve-index" or []);
     deps = [
-      self.by-version."batch"."0.5.0"
-      self.by-version."negotiator"."0.4.2"
+      self.by-version."accepts"."1.0.7"
+      self.by-version."batch"."0.5.1"
+      self.by-version."parseurl"."1.3.0"
     ];
     peerDependencies = [
     ];
@@ -16142,89 +16698,114 @@
     ];
     passthru.names = [ "serve-static" ];
   };
-  by-spec."serve-static"."1.0.2" =
-    self.by-version."serve-static"."1.0.2";
-  by-version."serve-static"."1.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-serve-static-1.0.2";
+  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.0.2.tgz";
-        name = "serve-static-1.0.2.tgz";
-        sha1 = "4129f6727b09fb031134fa6d185683e30bfbef54";
+        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."send"."0.2.0"
+      self.by-version."escape-html"."1.0.1"
+      self.by-version."parseurl"."1.0.1"
+      self.by-version."send"."0.4.3"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "serve-static" ];
   };
-  by-spec."serve-static"."1.0.4" =
-    self.by-version."serve-static"."1.0.4";
-  by-version."serve-static"."1.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-serve-static-1.0.4";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/serve-static/-/serve-static-1.0.4.tgz";
-        name = "serve-static-1.0.4.tgz";
-        sha1 = "426fedebe77bad21f373f1efcae09746639fba06";
+        url = "http://registry.npmjs.org/serve-static/-/serve-static-1.3.2.tgz";
+        name = "serve-static-1.3.2.tgz";
+        sha1 = "d904a6cbf55f511c78138f6f45ee6e69d9d105ca";
       })
     ];
     buildInputs =
       (self.nativeDeps."serve-static" or []);
     deps = [
-      self.by-version."parseurl"."1.0.1"
-      self.by-version."send"."0.2.0"
+      self.by-version."escape-html"."1.0.1"
+      self.by-version."parseurl"."1.1.3"
+      self.by-version."send"."0.6.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "serve-static" ];
   };
-  by-spec."serve-static"."~1.0.3" =
-    self.by-version."serve-static"."1.0.4";
-  by-spec."setimmediate"."1.0.1" =
-    self.by-version."setimmediate"."1.0.1";
-  by-version."setimmediate"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-setimmediate-1.0.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/setimmediate/-/setimmediate-1.0.1.tgz";
-        name = "setimmediate-1.0.1.tgz";
-        sha1 = "a9ca56ccbd6a4c3334855f060abcdece5c42ebb7";
+        url = "http://registry.npmjs.org/serve-static/-/serve-static-1.5.3.tgz";
+        name = "serve-static-1.5.3.tgz";
+        sha1 = "2e28efa5899686fd3ccdb97a80aa464002244581";
       })
     ];
     buildInputs =
-      (self.nativeDeps."setimmediate" or []);
+      (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"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "setimmediate" ];
+    passthru.names = [ "serve-static" ];
   };
   by-spec."sha"."~1.2.1" =
-    self.by-version."sha"."1.2.3";
-  by-version."sha"."1.2.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sha-1.2.3";
+    self.by-version."sha"."1.2.4";
+  by-version."sha"."1.2.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-sha-1.2.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/sha/-/sha-1.2.3.tgz";
-        name = "sha-1.2.3.tgz";
-        sha1 = "3a96ef3054a0fe0b87c9aa985824a6a736fc0329";
+        url = "http://registry.npmjs.org/sha/-/sha-1.2.4.tgz";
+        name = "sha-1.2.4.tgz";
+        sha1 = "1f9a377f27b6fdee409b9b858e43da702be48a4d";
       })
     ];
     buildInputs =
       (self.nativeDeps."sha" or []);
     deps = [
-      self.by-version."graceful-fs"."2.0.3"
-      self.by-version."readable-stream"."1.0.27-1"
+      self.by-version."graceful-fs"."3.0.2"
+      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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/sha.js/-/sha.js-2.1.7.tgz";
+        name = "sha.js-2.1.7.tgz";
+        sha1 = "4ab5d386d5c1a26183e61bcc446a9370a3eb8859";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."sha.js" or []);
+    deps = [
+      self.by-version."buffer"."2.3.4"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "sha.js" ];
+  };
   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 {
@@ -16244,77 +16825,54 @@
     ];
     passthru.names = [ "shallow-copy" ];
   };
-  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";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/shell-quote/-/shell-quote-0.0.1.tgz";
-        name = "shell-quote-0.0.1.tgz";
-        sha1 = "1a41196f3c0333c482323593d6886ecf153dd986";
+        url = "http://registry.npmjs.org/shasum/-/shasum-1.0.0.tgz";
+        name = "shasum-1.0.0.tgz";
+        sha1 = "26e3f2cef88577da2d976c7c160a5f297eb2ea36";
       })
     ];
     buildInputs =
-      (self.nativeDeps."shell-quote" or []);
+      (self.nativeDeps."shasum" or []);
     deps = [
+      self.by-version."json-stable-stringify"."0.0.1"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "shell-quote" ];
+    passthru.names = [ "shasum" ];
   };
-  by-spec."shell-quote"."~1.4.1" =
-    self.by-version."shell-quote"."1.4.1";
-  by-version."shell-quote"."1.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-shell-quote-1.4.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/shell-quote/-/shell-quote-1.4.1.tgz";
-        name = "shell-quote-1.4.1.tgz";
-        sha1 = "ae18442b536a08c720239b079d2f228acbedee40";
+        url = "http://registry.npmjs.org/shell-quote/-/shell-quote-0.0.1.tgz";
+        name = "shell-quote-0.0.1.tgz";
+        sha1 = "1a41196f3c0333c482323593d6886ecf153dd986";
       })
     ];
     buildInputs =
       (self.nativeDeps."shell-quote" or []);
     deps = [
-      self.by-version."jsonify"."0.0.0"
-      self.by-version."array-filter"."0.0.1"
-      self.by-version."array-reduce"."0.0.0"
-      self.by-version."array-map"."0.0.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "shell-quote" ];
   };
   by-spec."shelljs"."*" =
-    self.by-version."shelljs"."0.2.6";
-  by-version."shelljs"."0.2.6" = lib.makeOverridable self.buildNodePackage {
-    name = "shelljs-0.2.6";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/shelljs/-/shelljs-0.2.6.tgz";
-        name = "shelljs-0.2.6.tgz";
-        sha1 = "90492d72ffcc8159976baba62fb0f6884f0c3378";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."shelljs" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "shelljs" ];
-  };
-  "shelljs" = self.by-version."shelljs"."0.2.6";
-  by-spec."shelljs"."0.1.x" =
-    self.by-version."shelljs"."0.1.4";
-  by-version."shelljs"."0.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "shelljs-0.1.4";
+    self.by-version."shelljs"."0.3.0";
+  by-version."shelljs"."0.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "shelljs-0.3.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/shelljs/-/shelljs-0.1.4.tgz";
-        name = "shelljs-0.1.4.tgz";
-        sha1 = "dfbbe78d56c3c0168d2fb79e10ecd1dbcb07ec0e";
+        url = "http://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz";
+        name = "shelljs-0.3.0.tgz";
+        sha1 = "3596e6307a781544f591f37da618360f31db57b1";
       })
     ];
     buildInputs =
@@ -16325,17 +16883,18 @@
     ];
     passthru.names = [ "shelljs" ];
   };
-  by-spec."shelljs"."~0.2.6" =
-    self.by-version."shelljs"."0.2.6";
+  "shelljs" = self.by-version."shelljs"."0.3.0";
+  by-spec."shelljs"."0.3.x" =
+    self.by-version."shelljs"."0.3.0";
   by-spec."should"."*" =
-    self.by-version."should"."3.3.1";
-  by-version."should"."3.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-should-3.3.1";
+    self.by-version."should"."4.0.4";
+  by-version."should"."4.0.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-should-4.0.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/should/-/should-3.3.1.tgz";
-        name = "should-3.3.1.tgz";
-        sha1 = "28c93a522ba001146af96078f0a88bf5ac929522";
+        url = "http://registry.npmjs.org/should/-/should-4.0.4.tgz";
+        name = "should-4.0.4.tgz";
+        sha1 = "8efaa304f1f148cf3d2e955862990f9ab9ea628f";
       })
     ];
     buildInputs =
@@ -16346,7 +16905,7 @@
     ];
     passthru.names = [ "should" ];
   };
-  "should" = self.by-version."should"."3.3.1";
+  "should" = self.by-version."should"."4.0.4";
   by-spec."sigmund"."~1.0.0" =
     self.by-version."sigmund"."1.0.0";
   by-version."sigmund"."1.0.0" = lib.makeOverridable self.buildNodePackage {
@@ -16409,20 +16968,20 @@
     passthru.names = [ "simple-lru-cache" ];
   };
   by-spec."simplesmtp".">= 0.1.22" =
-    self.by-version."simplesmtp"."0.3.25";
-  by-version."simplesmtp"."0.3.25" = lib.makeOverridable self.buildNodePackage {
-    name = "node-simplesmtp-0.3.25";
+    self.by-version."simplesmtp"."0.3.32";
+  by-version."simplesmtp"."0.3.32" = lib.makeOverridable self.buildNodePackage {
+    name = "node-simplesmtp-0.3.32";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/simplesmtp/-/simplesmtp-0.3.25.tgz";
-        name = "simplesmtp-0.3.25.tgz";
-        sha1 = "09b6ac292b7dae8053cfba11da09a0458eb8af39";
+        url = "http://registry.npmjs.org/simplesmtp/-/simplesmtp-0.3.32.tgz";
+        name = "simplesmtp-0.3.32.tgz";
+        sha1 = "b3589b4cbf90624e712ab0ec1a7480ec14fd1c12";
       })
     ];
     buildInputs =
       (self.nativeDeps."simplesmtp" or []);
     deps = [
-      self.by-version."rai"."0.1.9"
+      self.by-version."rai"."0.1.11"
       self.by-version."xoauth2"."0.1.8"
     ];
     peerDependencies = [
@@ -16430,14 +16989,14 @@
     passthru.names = [ "simplesmtp" ];
   };
   by-spec."sinon"."*" =
-    self.by-version."sinon"."1.9.1";
-  by-version."sinon"."1.9.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sinon-1.9.1";
+    self.by-version."sinon"."1.10.3";
+  by-version."sinon"."1.10.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-sinon-1.10.3";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/sinon/-/sinon-1.9.1.tgz";
-        name = "sinon-1.9.1.tgz";
-        sha1 = "0dac622bd3f0e6f9662a7431baf65f58c3459d69";
+        url = "http://registry.npmjs.org/sinon/-/sinon-1.10.3.tgz";
+        name = "sinon-1.10.3.tgz";
+        sha1 = "c063e0e99d8327dc199113aab52eb83a2e9e3c2c";
       })
     ];
     buildInputs =
@@ -16450,7 +17009,7 @@
     ];
     passthru.names = [ "sinon" ];
   };
-  "sinon" = self.by-version."sinon"."1.9.1";
+  "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 {
@@ -16530,7 +17089,7 @@
     ];
     passthru.names = [ "sliced" ];
   };
-  by-spec."slide"."~1.1.3" =
+  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";
@@ -16549,17 +17108,19 @@
     ];
     passthru.names = [ "slide" ];
   };
+  by-spec."slide"."~1.1.3" =
+    self.by-version."slide"."1.1.5";
   by-spec."slide"."~1.1.5" =
     self.by-version."slide"."1.1.5";
   by-spec."smartdc"."*" =
-    self.by-version."smartdc"."7.2.1";
-  by-version."smartdc"."7.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "smartdc-7.2.1";
+    self.by-version."smartdc"."7.3.0";
+  by-version."smartdc"."7.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "smartdc-7.3.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/smartdc/-/smartdc-7.2.1.tgz";
-        name = "smartdc-7.2.1.tgz";
-        sha1 = "6fce690557f6b563c061d6adee161d6b33d06148";
+        url = "http://registry.npmjs.org/smartdc/-/smartdc-7.3.0.tgz";
+        name = "smartdc-7.3.0.tgz";
+        sha1 = "d932196df2d75599fcb98a628803e83c8f9fbe45";
       })
     ];
     buildInputs =
@@ -16572,12 +17133,15 @@
       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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "smartdc" ];
   };
-  "smartdc" = self.by-version."smartdc"."7.2.1";
+  "smartdc" = self.by-version."smartdc"."7.3.0";
   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 {
@@ -16666,14 +17230,14 @@
     passthru.names = [ "socket.io" ];
   };
   by-spec."socket.io"."~0.9.13" =
-    self.by-version."socket.io"."0.9.16";
-  by-version."socket.io"."0.9.16" = lib.makeOverridable self.buildNodePackage {
-    name = "node-socket.io-0.9.16";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/socket.io/-/socket.io-0.9.16.tgz";
-        name = "socket.io-0.9.16.tgz";
-        sha1 = "3bab0444e49b55fbbc157424dbd41aa375a51a76";
+        url = "http://registry.npmjs.org/socket.io/-/socket.io-0.9.17.tgz";
+        name = "socket.io-0.9.17.tgz";
+        sha1 = "ca389268fb2cd5df4b59218490a08c907581c9ec";
       })
     ];
     buildInputs =
@@ -16689,7 +17253,7 @@
     passthru.names = [ "socket.io" ];
   };
   by-spec."socket.io"."~0.9.16" =
-    self.by-version."socket.io"."0.9.16";
+    self.by-version."socket.io"."0.9.17";
   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 {
@@ -16705,7 +17269,7 @@
       (self.nativeDeps."socket.io-client" or []);
     deps = [
       self.by-version."uglify-js"."1.2.5"
-      self.by-version."ws"."0.4.31"
+      self.by-version."ws"."0.4.32"
       self.by-version."xmlhttprequest"."1.4.2"
       self.by-version."active-x-obfuscator"."0.0.1"
     ];
@@ -16728,7 +17292,7 @@
       (self.nativeDeps."socket.io-client" or []);
     deps = [
       self.by-version."uglify-js"."1.2.5"
-      self.by-version."ws"."0.4.31"
+      self.by-version."ws"."0.4.32"
       self.by-version."xmlhttprequest"."1.4.2"
       self.by-version."active-x-obfuscator"."0.0.1"
     ];
@@ -16737,27 +17301,27 @@
     passthru.names = [ "socket.io-client" ];
   };
   by-spec."sockjs"."*" =
-    self.by-version."sockjs"."0.3.8";
-  by-version."sockjs"."0.3.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sockjs-0.3.8";
+    self.by-version."sockjs"."0.3.9";
+  by-version."sockjs"."0.3.9" = lib.makeOverridable self.buildNodePackage {
+    name = "node-sockjs-0.3.9";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/sockjs/-/sockjs-0.3.8.tgz";
-        name = "sockjs-0.3.8.tgz";
-        sha1 = "c083cb0505db1ea1a949d3bd12d8a1ea385a456c";
+        url = "http://registry.npmjs.org/sockjs/-/sockjs-0.3.9.tgz";
+        name = "sockjs-0.3.9.tgz";
+        sha1 = "5ae2c732dac07f6d7e9e8a9a60ec86ec4fc3ffc7";
       })
     ];
     buildInputs =
       (self.nativeDeps."sockjs" or []);
     deps = [
       self.by-version."node-uuid"."1.3.3"
-      self.by-version."faye-websocket"."0.7.0"
+      self.by-version."faye-websocket"."0.7.2"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "sockjs" ];
   };
-  "sockjs" = self.by-version."sockjs"."0.3.8";
+  "sockjs" = self.by-version."sockjs"."0.3.9";
   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 {
@@ -16778,14 +17342,14 @@
     passthru.names = [ "sorted-object" ];
   };
   by-spec."source-map"."*" =
-    self.by-version."source-map"."0.1.33";
-  by-version."source-map"."0.1.33" = lib.makeOverridable self.buildNodePackage {
-    name = "node-source-map-0.1.33";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/source-map/-/source-map-0.1.33.tgz";
-        name = "source-map-0.1.33.tgz";
-        sha1 = "c659297a73af18c073b0aa2e7cc91e316b5c570c";
+        url = "http://registry.npmjs.org/source-map/-/source-map-0.1.38.tgz";
+        name = "source-map-0.1.38.tgz";
+        sha1 = "f93a6f9d96a5b9cf5494c043497d9542f9fa6b33";
       })
     ];
     buildInputs =
@@ -16797,7 +17361,7 @@
     ];
     passthru.names = [ "source-map" ];
   };
-  "source-map" = self.by-version."source-map"."0.1.33";
+  "source-map" = self.by-version."source-map"."0.1.38";
   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 {
@@ -16838,20 +17402,40 @@
     ];
     passthru.names = [ "source-map" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz";
+        name = "source-map-0.1.34.tgz";
+        sha1 = "a7cfe89aec7b1682c3b198d0acfb47d7d090566b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."source-map" or []);
+    deps = [
+      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.33";
+    self.by-version."source-map"."0.1.38";
   by-spec."source-map".">= 0.1.2" =
-    self.by-version."source-map"."0.1.33";
+    self.by-version."source-map"."0.1.38";
   by-spec."source-map"."~ 0.1.8" =
-    self.by-version."source-map"."0.1.33";
+    self.by-version."source-map"."0.1.38";
   by-spec."source-map"."~0.1.30" =
-    self.by-version."source-map"."0.1.33";
+    self.by-version."source-map"."0.1.38";
   by-spec."source-map"."~0.1.31" =
-    self.by-version."source-map"."0.1.33";
+    self.by-version."source-map"."0.1.38";
   by-spec."source-map"."~0.1.33" =
-    self.by-version."source-map"."0.1.33";
+    self.by-version."source-map"."0.1.38";
   by-spec."source-map"."~0.1.7" =
-    self.by-version."source-map"."0.1.33";
+    self.by-version."source-map"."0.1.38";
   by-spec."spdy"."1.7.1" =
     self.by-version."spdy"."1.7.1";
   by-version."spdy"."1.7.1" = lib.makeOverridable self.buildNodePackage {
@@ -16872,14 +17456,14 @@
     passthru.names = [ "spdy" ];
   };
   by-spec."sprintf"."~0.1.2" =
-    self.by-version."sprintf"."0.1.3";
-  by-version."sprintf"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sprintf-0.1.3";
+    self.by-version."sprintf"."0.1.4";
+  by-version."sprintf"."0.1.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-sprintf-0.1.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/sprintf/-/sprintf-0.1.3.tgz";
-        name = "sprintf-0.1.3.tgz";
-        sha1 = "530fc31405d47422f6edb40f29bdafac599ede11";
+        url = "http://registry.npmjs.org/sprintf/-/sprintf-0.1.4.tgz";
+        name = "sprintf-0.1.4.tgz";
+        sha1 = "6f870a8f4aae1c7fe53eee02b6ca31aa2d78863b";
       })
     ];
     buildInputs =
@@ -16891,7 +17475,7 @@
     passthru.names = [ "sprintf" ];
   };
   by-spec."sprintf"."~0.1.3" =
-    self.by-version."sprintf"."0.1.3";
+    self.by-version."sprintf"."0.1.4";
   by-spec."ssh-agent"."0.2.1" =
     self.by-version."ssh-agent"."0.2.1";
   by-version."ssh-agent"."0.2.1" = lib.makeOverridable self.buildNodePackage {
@@ -16952,14 +17536,14 @@
     passthru.names = [ "stack-trace" ];
   };
   by-spec."stackdriver-statsd-backend"."*" =
-    self.by-version."stackdriver-statsd-backend"."0.2.1";
-  by-version."stackdriver-statsd-backend"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-stackdriver-statsd-backend-0.2.1";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/stackdriver-statsd-backend/-/stackdriver-statsd-backend-0.2.1.tgz";
-        name = "stackdriver-statsd-backend-0.2.1.tgz";
-        sha1 = "3109661288821e79259b4d750a25d7159265dd8e";
+        url = "http://registry.npmjs.org/stackdriver-statsd-backend/-/stackdriver-statsd-backend-0.2.2.tgz";
+        name = "stackdriver-statsd-backend-0.2.2.tgz";
+        sha1 = "15bdc95adf083cfbfa20d7ff8f67277d7eba38f8";
       })
     ];
     buildInputs =
@@ -16970,45 +17554,7 @@
     ];
     passthru.names = [ "stackdriver-statsd-backend" ];
   };
-  "stackdriver-statsd-backend" = self.by-version."stackdriver-statsd-backend"."0.2.1";
-  by-spec."static-favicon"."1.0.0" =
-    self.by-version."static-favicon"."1.0.0";
-  by-version."static-favicon"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-static-favicon-1.0.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/static-favicon/-/static-favicon-1.0.0.tgz";
-        name = "static-favicon-1.0.0.tgz";
-        sha1 = "2e58dcfe58957a2d53337ef7a38cf9ad6c13c0d0";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."static-favicon" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "static-favicon" ];
-  };
-  by-spec."static-favicon"."1.0.2" =
-    self.by-version."static-favicon"."1.0.2";
-  by-version."static-favicon"."1.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-static-favicon-1.0.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/static-favicon/-/static-favicon-1.0.2.tgz";
-        name = "static-favicon-1.0.2.tgz";
-        sha1 = "7c15920dda2bf33f414b0e60aebbd65cdd2a1d2f";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."static-favicon" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "static-favicon" ];
-  };
+  "stackdriver-statsd-backend" = self.by-version."stackdriver-statsd-backend"."0.2.2";
   by-spec."statsd"."*" =
     self.by-version."statsd"."0.7.1";
   by-version."statsd"."0.7.1" = lib.makeOverridable self.buildNodePackage {
@@ -17033,14 +17579,14 @@
   };
   "statsd" = self.by-version."statsd"."0.7.1";
   by-spec."statsd-librato-backend"."*" =
-    self.by-version."statsd-librato-backend"."0.1.2";
-  by-version."statsd-librato-backend"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-statsd-librato-backend-0.1.2";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/statsd-librato-backend/-/statsd-librato-backend-0.1.2.tgz";
-        name = "statsd-librato-backend-0.1.2.tgz";
-        sha1 = "228718018361ef352109bb69e2e6b3af9ab7d12d";
+        url = "http://registry.npmjs.org/statsd-librato-backend/-/statsd-librato-backend-0.1.3.tgz";
+        name = "statsd-librato-backend-0.1.3.tgz";
+        sha1 = "a72b885f6114a1d8ad460aff6a8319631b8c4e08";
       })
     ];
     buildInputs =
@@ -17051,29 +17597,48 @@
     ];
     passthru.names = [ "statsd-librato-backend" ];
   };
-  "statsd-librato-backend" = self.by-version."statsd-librato-backend"."0.1.2";
-  by-spec."stream-browserify"."~0.1.0" =
-    self.by-version."stream-browserify"."0.1.3";
-  by-version."stream-browserify"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-stream-browserify-0.1.3";
+  "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/stream-browserify/-/stream-browserify-0.1.3.tgz";
-        name = "stream-browserify-0.1.3.tgz";
-        sha1 = "95cf1b369772e27adaf46352265152689c6c4be9";
+        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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz";
+        name = "stream-browserify-1.0.0.tgz";
+        sha1 = "bf9b4abfb42b274d751479e44e0ff2656b6f1193";
       })
     ];
     buildInputs =
       (self.nativeDeps."stream-browserify" or []);
     deps = [
       self.by-version."inherits"."2.0.1"
-      self.by-version."process"."0.5.2"
+      self.by-version."readable-stream"."1.1.13"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "stream-browserify" ];
   };
-  by-spec."stream-combiner"."^0.0.4" =
+  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";
@@ -17093,23 +17658,41 @@
     ];
     passthru.names = [ "stream-combiner" ];
   };
-  by-spec."stream-combiner"."~0.0.2" =
-    self.by-version."stream-combiner"."0.0.4";
-  by-spec."stream-counter"."~0.1.0" =
-    self.by-version."stream-counter"."0.1.0";
-  by-version."stream-counter"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-stream-counter-0.1.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/stream-counter/-/stream-counter-0.1.0.tgz";
-        name = "stream-counter-0.1.0.tgz";
-        sha1 = "a035e429361fb57f361606e17fcd8a8b9677327b";
+        url = "http://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.0.1.tgz";
+        name = "stream-combiner2-1.0.1.tgz";
+        sha1 = "e992881737c754a999431134f4f3f5b45ca0a97a";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."stream-combiner2" or []);
+    deps = [
+      self.by-version."duplexer2"."0.0.2"
+      self.by-version."through2"."0.5.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "stream-combiner2" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz";
+        name = "stream-counter-1.0.0.tgz";
+        sha1 = "91cf2569ce4dc5061febcd7acb26394a5a114751";
       })
     ];
     buildInputs =
       (self.nativeDeps."stream-counter" or []);
     deps = [
-      self.by-version."readable-stream"."1.0.27-1"
     ];
     peerDependencies = [
     ];
@@ -17129,12 +17712,37 @@
     buildInputs =
       (self.nativeDeps."stream-counter" or []);
     deps = [
-      self.by-version."readable-stream"."1.1.13-1"
+      self.by-version."readable-stream"."1.1.13"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "stream-counter" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/stream-splicer/-/stream-splicer-1.3.0.tgz";
+        name = "stream-splicer-1.3.0.tgz";
+        sha1 = "4839f2f03c4137b3896d064a4d927807a3b95b21";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "stream-splicer" ];
+  };
   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 {
@@ -17213,43 +17821,64 @@
     ];
     passthru.names = [ "string_decoder" ];
   };
-  by-spec."stringify-object"."~0.1.4" =
-    self.by-version."stringify-object"."0.1.8";
-  by-version."stringify-object"."0.1.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-stringify-object-0.1.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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/stringify-object/-/stringify-object-0.1.8.tgz";
-        name = "stringify-object-0.1.8.tgz";
-        sha1 = "463348f38fdcd4fec1c011084c24a59ac653c1ee";
+        url = "http://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz";
+        name = "stringstream-0.0.4.tgz";
+        sha1 = "0f0e3423f942960b5692ac324a57dd093bc41a92";
       })
     ];
     buildInputs =
-      (self.nativeDeps."stringify-object" or []);
+      (self.nativeDeps."stringstream" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "stringify-object" ];
+    passthru.names = [ "stringstream" ];
   };
-  by-spec."stringify-object"."~0.2.0" =
-    self.by-version."stringify-object"."0.2.0";
-  by-version."stringify-object"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-stringify-object-0.2.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/stringify-object/-/stringify-object-0.2.0.tgz";
-        name = "stringify-object-0.2.0.tgz";
-        sha1 = "832996ea55ab2aaa7570cc9bc0d5774adfc2c585";
+        url = "http://registry.npmjs.org/strip-ansi/-/strip-ansi-0.2.2.tgz";
+        name = "strip-ansi-0.2.2.tgz";
+        sha1 = "854d290c981525fc8c397a910b025ae2d54ffc08";
       })
     ];
     buildInputs =
-      (self.nativeDeps."stringify-object" or []);
+      (self.nativeDeps."strip-ansi" or []);
     deps = [
+      self.by-version."ansi-regex"."0.1.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "stringify-object" ];
+    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";
+    src = [
+      (fetchurl {
+        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.2.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "strip-ansi" ];
   };
   by-spec."strip-ansi"."~0.1.0" =
     self.by-version."strip-ansi"."0.1.1";
@@ -17270,15 +17899,36 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/strip-bom/-/strip-bom-0.3.1.tgz";
+        name = "strip-bom-0.3.1.tgz";
+        sha1 = "9e8a39eff456ff9abc2f059f5f2225bb0f3f7ca5";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."strip-bom" or []);
+    deps = [
+      self.by-version."first-chunk-stream"."0.1.0"
+      self.by-version."is-utf8"."0.2.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "strip-bom" ];
+  };
   by-spec."strip-json-comments"."0.1.x" =
-    self.by-version."strip-json-comments"."0.1.1";
-  by-version."strip-json-comments"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "strip-json-comments-0.1.1";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.1.tgz";
-        name = "strip-json-comments-0.1.1.tgz";
-        sha1 = "eb5a750bd4e8dc82817295a115dc11b63f01d4b0";
+        url = "http://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz";
+        name = "strip-json-comments-0.1.3.tgz";
+        sha1 = "164c64e370a8a3cc00c9e01b539e569823f0ee54";
       })
     ];
     buildInputs =
@@ -17310,14 +17960,14 @@
     passthru.names = [ "strong-data-uri" ];
   };
   by-spec."stylus"."*" =
-    self.by-version."stylus"."0.44.0-beta3";
-  by-version."stylus"."0.44.0-beta3" = lib.makeOverridable self.buildNodePackage {
-    name = "stylus-0.44.0-beta3";
+    self.by-version."stylus"."0.48.0";
+  by-version."stylus"."0.48.0" = lib.makeOverridable self.buildNodePackage {
+    name = "stylus-0.48.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/stylus/-/stylus-0.44.0-beta3.tgz";
-        name = "stylus-0.44.0-beta3.tgz";
-        sha1 = "a602b30f57f1692cf0f1fb664e60a14e26102cff";
+        url = "http://registry.npmjs.org/stylus/-/stylus-0.48.0.tgz";
+        name = "stylus-0.48.0.tgz";
+        sha1 = "a8de8341b1cd89efb9161050bf87a72d65485795";
       })
     ];
     buildInputs =
@@ -17325,16 +17975,16 @@
     deps = [
       self.by-version."css-parse"."1.7.0"
       self.by-version."mkdirp"."0.3.5"
-      self.by-version."debug"."0.8.1"
+      self.by-version."debug"."1.0.4"
       self.by-version."sax"."0.5.8"
-      self.by-version."glob"."3.2.9"
-      self.by-version."circular-json"."0.1.6"
+      self.by-version."glob"."3.2.11"
+      self.by-version."source-map"."0.1.38"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "stylus" ];
   };
-  "stylus" = self.by-version."stylus"."0.44.0-beta3";
+  "stylus" = self.by-version."stylus"."0.48.0";
   by-spec."stylus"."0.42.2" =
     self.by-version."stylus"."0.42.2";
   by-version."stylus"."0.42.2" = lib.makeOverridable self.buildNodePackage {
@@ -17351,9 +18001,9 @@
     deps = [
       self.by-version."css-parse"."1.7.0"
       self.by-version."mkdirp"."0.3.5"
-      self.by-version."debug"."0.8.1"
+      self.by-version."debug"."1.0.4"
       self.by-version."sax"."0.5.8"
-      self.by-version."glob"."3.2.9"
+      self.by-version."glob"."3.2.11"
     ];
     peerDependencies = [
     ];
@@ -17373,75 +18023,37 @@
     buildInputs =
       (self.nativeDeps."subarg" or []);
     deps = [
-      self.by-version."minimist"."0.0.8"
+      self.by-version."minimist"."0.0.10"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "subarg" ];
   };
-  by-spec."sudo-block"."~0.2.0" =
-    self.by-version."sudo-block"."0.2.1";
-  by-version."sudo-block"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sudo-block-0.2.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/sudo-block/-/sudo-block-0.2.1.tgz";
-        name = "sudo-block-0.2.1.tgz";
-        sha1 = "b394820741b66c0fe06f97b334f0674036837ba5";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."sudo-block" or []);
-    deps = [
-      self.by-version."chalk"."0.1.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "sudo-block" ];
-  };
-  by-spec."sudo-block"."~0.3.0" =
-    self.by-version."sudo-block"."0.3.0";
-  by-version."sudo-block"."0.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sudo-block-0.3.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/sudo-block/-/sudo-block-0.3.0.tgz";
-        name = "sudo-block-0.3.0.tgz";
-        sha1 = "aec27fbde8763ee32e3e47b8ba3c70584da7eb9c";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."sudo-block" or []);
-    deps = [
-      self.by-version."chalk"."0.3.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "sudo-block" ];
-  };
-  by-spec."superagent"."0.17.0" =
-    self.by-version."superagent"."0.17.0";
-  by-version."superagent"."0.17.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-superagent-0.17.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/superagent/-/superagent-0.17.0.tgz";
-        name = "superagent-0.17.0.tgz";
-        sha1 = "aadcd50fbe5a93e71991118d79bf0714d625bba8";
+        url = "http://registry.npmjs.org/superagent/-/superagent-0.18.0.tgz";
+        name = "superagent-0.18.0.tgz";
+        sha1 = "9d4375a3ae2c4fbd55fd20d5b12a2470d2fc8f62";
       })
     ];
     buildInputs =
       (self.nativeDeps."superagent" or []);
     deps = [
-      self.by-version."qs"."0.6.5"
+      self.by-version."qs"."0.6.6"
       self.by-version."formidable"."1.0.14"
       self.by-version."mime"."1.2.5"
-      self.by-version."emitter-component"."1.0.0"
+      self.by-version."component-emitter"."1.1.2"
       self.by-version."methods"."0.0.1"
-      self.by-version."cookiejar"."1.3.0"
+      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"
     ];
     peerDependencies = [
     ];
@@ -17472,30 +18084,77 @@
     ];
     passthru.names = [ "superagent" ];
   };
-  by-spec."superagent"."~0.17.0" =
-    self.by-version."superagent"."0.17.0";
+  by-spec."superagent"."~0.18.0" =
+    self.by-version."superagent"."0.18.2";
+  by-version."superagent"."0.18.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-superagent-0.18.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/superagent/-/superagent-0.18.2.tgz";
+        name = "superagent-0.18.2.tgz";
+        sha1 = "9afc6276a9475f4bdcd535ac6a0685ebc4b560eb";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "superagent" ];
+  };
   by-spec."supertest"."*" =
-    self.by-version."supertest"."0.11.0";
-  by-version."supertest"."0.11.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-supertest-0.11.0";
+    self.by-version."supertest"."0.13.0";
+  by-version."supertest"."0.13.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-supertest-0.13.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/supertest/-/supertest-0.11.0.tgz";
-        name = "supertest-0.11.0.tgz";
-        sha1 = "f8496b9f05cac1ea2fcec1d21adeca7167f42460";
+        url = "http://registry.npmjs.org/supertest/-/supertest-0.13.0.tgz";
+        name = "supertest-0.13.0.tgz";
+        sha1 = "4892bafd9beaa9bbcc95fd5a9f04949aef1ce06f";
       })
     ];
     buildInputs =
       (self.nativeDeps."supertest" or []);
     deps = [
-      self.by-version."superagent"."0.17.0"
-      self.by-version."methods"."0.1.0"
+      self.by-version."superagent"."0.18.0"
+      self.by-version."methods"."1.0.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "supertest" ];
   };
-  "supertest" = self.by-version."supertest"."0.11.0";
+  "supertest" = self.by-version."supertest"."0.13.0";
+  by-spec."supports-color"."^0.2.0" =
+    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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz";
+        name = "supports-color-0.2.0.tgz";
+        sha1 = "d92de2694eb3f67323973d7ae3d8b55b4c22190a";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."supports-color" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "supports-color" ];
+  };
   by-spec."swig"."0.14.x" =
     self.by-version."swig"."0.14.0";
   by-version."swig"."0.14.0" = lib.makeOverridable self.buildNodePackage {
@@ -17538,15 +18197,15 @@
   };
   by-spec."sylvester".">= 0.0.8" =
     self.by-version."sylvester"."0.0.21";
-  by-spec."syntax-error"."~1.1.0" =
-    self.by-version."syntax-error"."1.1.0";
-  by-version."syntax-error"."1.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-syntax-error-1.1.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/syntax-error/-/syntax-error-1.1.0.tgz";
-        name = "syntax-error-1.1.0.tgz";
-        sha1 = "8bc3b08141b4e5084dfc66c74e15928db9f34e85";
+        url = "http://registry.npmjs.org/syntax-error/-/syntax-error-1.1.1.tgz";
+        name = "syntax-error-1.1.1.tgz";
+        sha1 = "50a4f836356f3803a8e954ce5dfd4a0f95ba6a87";
       })
     ];
     buildInputs =
@@ -17581,30 +18240,50 @@
     passthru.names = [ "tape" ];
   };
   by-spec."tar"."*" =
-    self.by-version."tar"."0.1.19";
-  by-version."tar"."0.1.19" = lib.makeOverridable self.buildNodePackage {
-    name = "node-tar-0.1.19";
+    self.by-version."tar"."1.0.1";
+  by-version."tar"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-tar-1.0.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/tar/-/tar-0.1.19.tgz";
-        name = "tar-0.1.19.tgz";
-        sha1 = "fe45941799e660ce1ea52d875d37481b4bf13eac";
+        url = "http://registry.npmjs.org/tar/-/tar-1.0.1.tgz";
+        name = "tar-1.0.1.tgz";
+        sha1 = "6075b5a1f236defe0c7e3756d3d9b3ebdad0f19a";
       })
     ];
     buildInputs =
       (self.nativeDeps."tar" or []);
     deps = [
-      self.by-version."inherits"."2.0.1"
       self.by-version."block-stream"."0.0.7"
-      self.by-version."fstream"."0.1.25"
+      self.by-version."fstream"."1.0.2"
+      self.by-version."inherits"."2.0.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "tar" ];
   };
-  "tar" = self.by-version."tar"."0.1.19";
+  "tar" = self.by-version."tar"."1.0.1";
   by-spec."tar"."0" =
-    self.by-version."tar"."0.1.19";
+    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 {
@@ -17621,75 +18300,76 @@
     deps = [
       self.by-version."inherits"."1.0.0"
       self.by-version."block-stream"."0.0.7"
-      self.by-version."fstream"."0.1.25"
+      self.by-version."fstream"."0.1.31"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "tar" ];
   };
-  by-spec."tar"."^0.1.18" =
-    self.by-version."tar"."0.1.19";
-  by-spec."tar"."~0.1.17" =
-    self.by-version."tar"."0.1.19";
-  by-spec."tar"."~0.1.19" =
-    self.by-version."tar"."0.1.19";
-  by-spec."temp"."*" =
-    self.by-version."temp"."0.7.0";
-  by-version."temp"."0.7.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-temp-0.7.0";
+  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-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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/temp/-/temp-0.7.0.tgz";
-        name = "temp-0.7.0.tgz";
-        sha1 = "d34bdc8e7f955da2a6a473fea07ad601d68ba78f";
+        url = "http://registry.npmjs.org/tar-stream/-/tar-stream-0.4.5.tgz";
+        name = "tar-stream-0.4.5.tgz";
+        sha1 = "a5e0a7521f57974c919b2b99fdae55589aeefa46";
       })
     ];
     buildInputs =
-      (self.nativeDeps."temp" or []);
+      (self.nativeDeps."tar-stream" or []);
     deps = [
-      self.by-version."rimraf"."2.2.6"
+      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"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "temp" ];
+    passthru.names = [ "tar-stream" ];
   };
-  "temp" = self.by-version."temp"."0.7.0";
-  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";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/temp/-/temp-0.6.0.tgz";
-        name = "temp-0.6.0.tgz";
-        sha1 = "6b13df5cddf370f2e3a606ca40f202c419173f07";
+        url = "http://registry.npmjs.org/temp/-/temp-0.8.1.tgz";
+        name = "temp-0.8.1.tgz";
+        sha1 = "4b7b4ffde85bb09f2dd6ba6cc43b44213c94fd3a";
       })
     ];
     buildInputs =
       (self.nativeDeps."temp" or []);
     deps = [
-      self.by-version."rimraf"."2.1.4"
-      self.by-version."osenv"."0.0.3"
+      self.by-version."rimraf"."2.2.8"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "temp" ];
   };
-  by-spec."temp"."~0.5.1" =
-    self.by-version."temp"."0.5.1";
-  by-version."temp"."0.5.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-temp-0.5.1";
+  "temp" = self.by-version."temp"."0.8.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/temp/-/temp-0.5.1.tgz";
-        name = "temp-0.5.1.tgz";
-        sha1 = "77ab19c79aa7b593cbe4fac2441768cad987b8df";
+        url = "http://registry.npmjs.org/temp/-/temp-0.6.0.tgz";
+        name = "temp-0.6.0.tgz";
+        sha1 = "6b13df5cddf370f2e3a606ca40f202c419173f07";
       })
     ];
     buildInputs =
       (self.nativeDeps."temp" or []);
     deps = [
       self.by-version."rimraf"."2.1.4"
+      self.by-version."osenv"."0.0.3"
     ];
     peerDependencies = [
     ];
@@ -17697,28 +18377,8 @@
   };
   by-spec."temp"."~0.6.0" =
     self.by-version."temp"."0.6.0";
-  by-spec."temp"."~0.7.0" =
-    self.by-version."temp"."0.7.0";
-  by-spec."tempfile"."^0.1.2" =
-    self.by-version."tempfile"."0.1.3";
-  by-version."tempfile"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-tempfile-0.1.3";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/tempfile/-/tempfile-0.1.3.tgz";
-        name = "tempfile-0.1.3.tgz";
-        sha1 = "7d6b710047339d39f847327a056dadf183103010";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."tempfile" or []);
-    deps = [
-      self.by-version."uuid"."1.4.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "tempfile" ];
-  };
+  by-spec."temp"."~0.8.0" =
+    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 {
@@ -17776,59 +18436,103 @@
     ];
     passthru.names = [ "through" ];
   };
-  by-spec."through"."~2.2.7" =
-    self.by-version."through"."2.2.7";
-  by-version."through"."2.2.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-through-2.2.7";
+  by-spec."through"."~2.3.4" =
+    self.by-version."through"."2.3.4";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/through/-/through-2.2.7.tgz";
-        name = "through-2.2.7.tgz";
-        sha1 = "6e8e21200191d4eb6a99f6f010df46aa1c6eb2bd";
+        url = "http://registry.npmjs.org/through2/-/through2-0.5.1.tgz";
+        name = "through2-0.5.1.tgz";
+        sha1 = "dfdd012eb9c700e2323fd334f38ac622ab372da7";
       })
     ];
     buildInputs =
-      (self.nativeDeps."through" or []);
+      (self.nativeDeps."through2" or []);
     deps = [
+      self.by-version."readable-stream"."1.0.31"
+      self.by-version."xtend"."3.0.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "through" ];
+    passthru.names = [ "through2" ];
   };
-  by-spec."through"."~2.3.4" =
-    self.by-version."through"."2.3.4";
-  by-spec."through2"."^0.4.0" =
-    self.by-version."through2"."0.4.1";
-  by-version."through2"."0.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-through2-0.4.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/through2/-/through2-0.4.1.tgz";
-        name = "through2-0.4.1.tgz";
-        sha1 = "afd849c65af513c2541a98a7cfbcfec3a15a9686";
+        url = "http://registry.npmjs.org/through2/-/through2-0.6.1.tgz";
+        name = "through2-0.6.1.tgz";
+        sha1 = "f742b32893e8bd26146e789e4fd2ccb2c07a717e";
       })
     ];
     buildInputs =
       (self.nativeDeps."through2" or []);
     deps = [
-      self.by-version."readable-stream"."1.0.27-1"
-      self.by-version."xtend"."2.1.2"
+      self.by-version."readable-stream"."1.0.31"
+      self.by-version."xtend"."4.0.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "through2" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/through2/-/through2-1.1.1.tgz";
+        name = "through2-1.1.1.tgz";
+        sha1 = "0847cbc4449f3405574dbdccd9bb841b83ac3545";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."through2" or []);
+    deps = [
+      self.by-version."readable-stream"."1.1.13"
+      self.by-version."xtend"."4.0.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "through2" ];
   };
   by-spec."through2"."~0.4.1" =
-    self.by-version."through2"."0.4.1";
-  by-spec."timers-browserify"."~1.0.1" =
-    self.by-version."timers-browserify"."1.0.1";
-  by-version."timers-browserify"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-timers-browserify-1.0.1";
+    self.by-version."through2"."0.4.2";
+  by-version."through2"."0.4.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-through2-0.4.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/through2/-/through2-0.4.2.tgz";
+        name = "through2-0.4.2.tgz";
+        sha1 = "dbf5866031151ec8352bb6c4db64a2292a840b9b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."through2" or []);
+    deps = [
+      self.by-version."readable-stream"."1.0.31"
+      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."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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/timers-browserify/-/timers-browserify-1.0.1.tgz";
-        name = "timers-browserify-1.0.1.tgz";
-        sha1 = "7c93257b543cb1e3003d3663b57d560ee1d27057";
+        url = "http://registry.npmjs.org/timers-browserify/-/timers-browserify-1.0.3.tgz";
+        name = "timers-browserify-1.0.3.tgz";
+        sha1 = "ffba70c9c12eed916fd67318e629ac6f32295551";
       })
     ];
     buildInputs =
@@ -17860,14 +18564,14 @@
     passthru.names = [ "timespan" ];
   };
   by-spec."timezone"."*" =
-    self.by-version."timezone"."0.0.30";
-  by-version."timezone"."0.0.30" = lib.makeOverridable self.buildNodePackage {
-    name = "node-timezone-0.0.30";
+    self.by-version."timezone"."0.0.34";
+  by-version."timezone"."0.0.34" = lib.makeOverridable self.buildNodePackage {
+    name = "node-timezone-0.0.34";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/timezone/-/timezone-0.0.30.tgz";
-        name = "timezone-0.0.30.tgz";
-        sha1 = "f83e46d35c017a33a684a4d8bb8fac3debed49bf";
+        url = "http://registry.npmjs.org/timezone/-/timezone-0.0.34.tgz";
+        name = "timezone-0.0.34.tgz";
+        sha1 = "be56c3259448897b7e2eab6e2aeac46d5ab718d4";
       })
     ];
     buildInputs =
@@ -17878,7 +18582,7 @@
     ];
     passthru.names = [ "timezone" ];
   };
-  "timezone" = self.by-version."timezone"."0.0.30";
+  "timezone" = self.by-version."timezone"."0.0.34";
   by-spec."tinycolor"."0.x" =
     self.by-version."tinycolor"."0.0.1";
   by-version."tinycolor"."0.0.1" = lib.makeOverridable self.buildNodePackage {
@@ -17923,7 +18627,7 @@
       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.3"
+      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"
@@ -17934,14 +18638,14 @@
   };
   "titanium" = self.by-version."titanium"."3.2.1";
   by-spec."tmp"."~0.0.20" =
-    self.by-version."tmp"."0.0.23";
-  by-version."tmp"."0.0.23" = lib.makeOverridable self.buildNodePackage {
-    name = "node-tmp-0.0.23";
+    self.by-version."tmp"."0.0.24";
+  by-version."tmp"."0.0.24" = lib.makeOverridable self.buildNodePackage {
+    name = "node-tmp-0.0.24";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/tmp/-/tmp-0.0.23.tgz";
-        name = "tmp-0.0.23.tgz";
-        sha1 = "de874aa5e974a85f0a32cdfdbd74663cb3bd9c74";
+        url = "http://registry.npmjs.org/tmp/-/tmp-0.0.24.tgz";
+        name = "tmp-0.0.24.tgz";
+        sha1 = "d6a5e198d14a9835cc6f2d7c3d9e302428c8cf12";
       })
     ];
     buildInputs =
@@ -17952,26 +18656,6 @@
     ];
     passthru.names = [ "tmp" ];
   };
-  by-spec."touch"."0.0.2" =
-    self.by-version."touch"."0.0.2";
-  by-version."touch"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-touch-0.0.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/touch/-/touch-0.0.2.tgz";
-        name = "touch-0.0.2.tgz";
-        sha1 = "a65a777795e5cbbe1299499bdc42281ffb21b5f4";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."touch" or []);
-    deps = [
-      self.by-version."nopt"."1.0.10"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "touch" ];
-  };
   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 {
@@ -17986,7 +18670,7 @@
     buildInputs =
       (self.nativeDeps."tough-cookie" or []);
     deps = [
-      self.by-version."punycode"."1.2.4"
+      self.by-version."punycode"."1.3.1"
     ];
     peerDependencies = [
     ];
@@ -18006,12 +18690,34 @@
     buildInputs =
       (self.nativeDeps."tough-cookie" or []);
     deps = [
-      self.by-version."punycode"."1.2.4"
+      self.by-version."punycode"."1.3.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "tough-cookie" ];
   };
+  by-spec."traceur"."0.0.55" =
+    self.by-version."traceur"."0.0.55";
+  by-version."traceur"."0.0.55" = lib.makeOverridable self.buildNodePackage {
+    name = "traceur-0.0.55";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/traceur/-/traceur-0.0.55.tgz";
+        name = "traceur-0.0.55.tgz";
+        sha1 = "b1a44b69bfbabb9db2c7c284713f4ebacf46f733";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "traceur" ];
+  };
   by-spec."transformers"."2.1.0" =
     self.by-version."transformers"."2.1.0";
   by-version."transformers"."2.1.0" = lib.makeOverridable self.buildNodePackage {
@@ -18034,25 +18740,6 @@
     ];
     passthru.names = [ "transformers" ];
   };
-  by-spec."traverse".">=0.3.0 <0.4" =
-    self.by-version."traverse"."0.3.9";
-  by-version."traverse"."0.3.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-traverse-0.3.9";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz";
-        name = "traverse-0.3.9.tgz";
-        sha1 = "717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."traverse" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "traverse" ];
-  };
   by-spec."truncate"."~1.0.2" =
     self.by-version."truncate"."1.0.2";
   by-version."truncate"."1.0.2" = lib.makeOverridable self.buildNodePackage {
@@ -18129,6 +18816,25 @@
     ];
     passthru.names = [ "tunnel-agent" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz";
+        name = "tunnel-agent-0.4.0.tgz";
+        sha1 = "b1184e312ffbcf70b3b4c78e8c219de7ebb1c550";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."tunnel-agent" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "tunnel-agent" ];
+  };
   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 {
@@ -18168,26 +18874,70 @@
     ];
     passthru.names = [ "type-is" ];
   };
-  by-spec."type-is"."~1.1.0" =
-    self.by-version."type-is"."1.1.0";
-  by-version."type-is"."1.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-type-is-1.1.0";
+  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.1.0.tgz";
-        name = "type-is-1.1.0.tgz";
-        sha1 = "d0245ec8b2676668d59dd0cf3255060676a57db6";
+        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"."1.2.11"
+      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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/type-is/-/type-is-1.3.1.tgz";
+        name = "type-is-1.3.1.tgz";
+        sha1 = "a6789b5a52138289ade1ef8f6d9f2874ffd70b6b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."type-is" or []);
+    deps = [
+      self.by-version."media-typer"."0.2.0"
+      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.2";
+  by-version."type-is"."1.3.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-type-is-1.3.2";
+    src = [
+      (fetchurl {
+        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.2"
+    ];
+    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 {
@@ -18208,14 +18958,14 @@
     passthru.names = [ "typechecker" ];
   };
   by-spec."typedarray"."~0.0.5" =
-    self.by-version."typedarray"."0.0.5";
-  by-version."typedarray"."0.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/typedarray/-/typedarray-0.0.5.tgz";
-        name = "typedarray-0.0.5.tgz";
-        sha1 = "c4158fcd96c8ef91ef03cc72584c95e032877664";
+        url = "http://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
+        name = "typedarray-0.0.6.tgz";
+        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
       })
     ];
     buildInputs =
@@ -18247,21 +18997,21 @@
   };
   "typescript" = self.by-version."typescript"."1.0.1";
   by-spec."uglify-js"."*" =
-    self.by-version."uglify-js"."2.4.13";
-  by-version."uglify-js"."2.4.13" = lib.makeOverridable self.buildNodePackage {
-    name = "uglify-js-2.4.13";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/uglify-js/-/uglify-js-2.4.13.tgz";
-        name = "uglify-js-2.4.13.tgz";
-        sha1 = "18debc9e6ecfc20db1a5ea035f839d436a605aba";
+        url = "http://registry.npmjs.org/uglify-js/-/uglify-js-2.4.15.tgz";
+        name = "uglify-js-2.4.15.tgz";
+        sha1 = "12bc6d84345fbc306e13f7075d6437a8bf64d7e3";
       })
     ];
     buildInputs =
       (self.nativeDeps."uglify-js" or []);
     deps = [
       self.by-version."async"."0.2.10"
-      self.by-version."source-map"."0.1.33"
+      self.by-version."source-map"."0.1.34"
       self.by-version."optimist"."0.3.7"
       self.by-version."uglify-to-browserify"."1.0.2"
     ];
@@ -18269,7 +19019,7 @@
     ];
     passthru.names = [ "uglify-js" ];
   };
-  "uglify-js" = self.by-version."uglify-js"."2.4.13";
+  "uglify-js" = self.by-version."uglify-js"."2.4.15";
   by-spec."uglify-js"."1.2.5" =
     self.by-version."uglify-js"."1.2.5";
   by-version."uglify-js"."1.2.5" = lib.makeOverridable self.buildNodePackage {
@@ -18304,7 +19054,7 @@
       (self.nativeDeps."uglify-js" or []);
     deps = [
       self.by-version."async"."0.2.10"
-      self.by-version."source-map"."0.1.33"
+      self.by-version."source-map"."0.1.38"
       self.by-version."optimist"."0.3.7"
       self.by-version."uglify-to-browserify"."1.0.2"
     ];
@@ -18313,7 +19063,7 @@
     passthru.names = [ "uglify-js" ];
   };
   by-spec."uglify-js"."^2.4.0" =
-    self.by-version."uglify-js"."2.4.13";
+    self.by-version."uglify-js"."2.4.15";
   by-spec."uglify-js"."~2.2" =
     self.by-version."uglify-js"."2.2.5";
   by-version."uglify-js"."2.2.5" = lib.makeOverridable self.buildNodePackage {
@@ -18328,7 +19078,7 @@
     buildInputs =
       (self.nativeDeps."uglify-js" or []);
     deps = [
-      self.by-version."source-map"."0.1.33"
+      self.by-version."source-map"."0.1.38"
       self.by-version."optimist"."0.3.7"
     ];
     peerDependencies = [
@@ -18352,7 +19102,7 @@
       (self.nativeDeps."uglify-js" or []);
     deps = [
       self.by-version."async"."0.2.10"
-      self.by-version."source-map"."0.1.33"
+      self.by-version."source-map"."0.1.38"
       self.by-version."optimist"."0.3.7"
     ];
     peerDependencies = [
@@ -18362,9 +19112,9 @@
   by-spec."uglify-js"."~2.3.6" =
     self.by-version."uglify-js"."2.3.6";
   by-spec."uglify-js"."~2.4.0" =
-    self.by-version."uglify-js"."2.4.13";
+    self.by-version."uglify-js"."2.4.15";
   by-spec."uglify-js"."~2.4.12" =
-    self.by-version."uglify-js"."2.4.13";
+    self.by-version."uglify-js"."2.4.15";
   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 {
@@ -18403,6 +19153,29 @@
     ];
     passthru.names = [ "uid-number" ];
   };
+  by-spec."uid-safe"."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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/uid-safe/-/uid-safe-1.0.1.tgz";
+        name = "uid-safe-1.0.1.tgz";
+        sha1 = "5bd148460a2e84f54f193fd20352c8c3d7de6ac8";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."uid-safe" or []);
+    deps = [
+      self.by-version."mz"."1.0.1"
+      self.by-version."base64-url"."1.0.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "uid-safe" ];
+  };
+  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 {
@@ -18422,17 +19195,15 @@
     ];
     passthru.names = [ "uid2" ];
   };
-  by-spec."uid2"."~0.0.2" =
-    self.by-version."uid2"."0.0.3";
-  by-spec."umd"."~2.0.0" =
-    self.by-version."umd"."2.0.0";
-  by-version."umd"."2.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "umd-2.0.0";
+  by-spec."umd"."^2.1.0" =
+    self.by-version."umd"."2.1.0";
+  by-version."umd"."2.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "umd-2.1.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/umd/-/umd-2.0.0.tgz";
-        name = "umd-2.0.0.tgz";
-        sha1 = "749683b0d514728ae0e1b6195f5774afc0ad4f8f";
+        url = "http://registry.npmjs.org/umd/-/umd-2.1.0.tgz";
+        name = "umd-2.1.0.tgz";
+        sha1 = "4a6307b762f17f02d201b5fa154e673396c263cf";
       })
     ];
     buildInputs =
@@ -18441,12 +19212,14 @@
       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.13"
+      self.by-version."uglify-js"."2.4.15"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "umd" ];
   };
+  by-spec."umd"."~2.1.0" =
+    self.by-version."umd"."2.1.0";
   by-spec."underscore"."*" =
     self.by-version."underscore"."1.6.0";
   by-version."underscore"."1.6.0" = lib.makeOverridable self.buildNodePackage {
@@ -18467,7 +19240,17 @@
     passthru.names = [ "underscore" ];
   };
   "underscore" = self.by-version."underscore"."1.6.0";
-  by-spec."underscore"."1.4.x" =
+  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";
+  by-spec."underscore".">=1.3.1" =
+    self.by-version."underscore"."1.6.0";
+  by-spec."underscore".">=1.5.0" =
+    self.by-version."underscore"."1.6.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";
@@ -18486,19 +19269,9 @@
     ];
     passthru.names = [ "underscore" ];
   };
-  by-spec."underscore".">=1.1.7" =
-    self.by-version."underscore"."1.6.0";
-  by-spec."underscore".">=1.3.1" =
-    self.by-version."underscore"."1.6.0";
-  by-spec."underscore".">=1.5.0" =
-    self.by-version."underscore"."1.6.0";
-  by-spec."underscore"."~1.4" =
-    self.by-version."underscore"."1.4.4";
-  by-spec."underscore"."~1.4.3" =
-    self.by-version."underscore"."1.4.4";
   by-spec."underscore"."~1.4.4" =
     self.by-version."underscore"."1.4.4";
-  by-spec."underscore"."~1.5" =
+  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";
@@ -18517,8 +19290,6 @@
     ];
     passthru.names = [ "underscore" ];
   };
-  by-spec."underscore"."~1.5.2" =
-    self.by-version."underscore"."1.5.2";
   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 {
@@ -18575,92 +19346,107 @@
     deps = [
       self.by-version."diff"."1.0.8"
       self.by-version."jsesc"."0.4.3"
-      self.by-version."ministyle"."0.1.3"
+      self.by-version."ministyle"."0.1.4"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "unfunk-diff" ];
   };
   by-spec."ungit"."*" =
-    self.by-version."ungit"."0.8.0";
-  by-version."ungit"."0.8.0" = lib.makeOverridable self.buildNodePackage {
-    name = "ungit-0.8.0";
+    self.by-version."ungit"."0.8.2";
+  by-version."ungit"."0.8.2" = lib.makeOverridable self.buildNodePackage {
+    name = "ungit-0.8.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/ungit/-/ungit-0.8.0.tgz";
-        name = "ungit-0.8.0.tgz";
-        sha1 = "ca1f166ee65fbfe54469459d51f77ca502f1c6a4";
+        url = "http://registry.npmjs.org/ungit/-/ungit-0.8.2.tgz";
+        name = "ungit-0.8.2.tgz";
+        sha1 = "11fe51329ab2aaafaccd155eb0c911a90036b27f";
       })
     ];
     buildInputs =
       (self.nativeDeps."ungit" or []);
     deps = [
-      self.by-version."express"."4.0.0"
-      self.by-version."superagent"."0.17.0"
+      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.7.0"
-      self.by-version."socket.io"."0.9.16"
-      self.by-version."moment"."2.5.1"
-      self.by-version."async"."0.6.2"
-      self.by-version."rc"."0.3.5"
+      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.2.1"
+      self.by-version."semver"."2.3.2"
       self.by-version."forever-monitor"."1.1.0"
-      self.by-version."open"."0.0.4"
+      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.5.0"
-      self.by-version."keen.io"."0.0.4"
+      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.8"
-      self.by-version."raven"."0.6.3"
+      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"."0.4.7"
-      self.by-version."npmconf"."0.1.14"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."less"."1.7.0"
-      self.by-version."browserify"."3.38.1"
-      self.by-version."body-parser"."1.0.2"
-      self.by-version."cookie-parser"."1.0.1"
-      self.by-version."express-session"."1.0.3"
-      self.by-version."serve-static"."1.0.4"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "ungit" ];
   };
-  "ungit" = self.by-version."ungit"."0.8.0";
-  by-spec."update-notifier"."~0.1.3" =
-    self.by-version."update-notifier"."0.1.8";
-  by-version."update-notifier"."0.1.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-update-notifier-0.1.8";
+  "ungit" = self.by-version."ungit"."0.8.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/update-notifier/-/update-notifier-0.1.8.tgz";
-        name = "update-notifier-0.1.8.tgz";
-        sha1 = "ebf5c698375f5c232031a419634fab66cc0322a6";
+        url = "http://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz";
+        name = "unique-stream-1.0.0.tgz";
+        sha1 = "d59a4a75427447d9aa6c91e70263f8d26a4b104b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."unique-stream" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "unique-stream" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/update-notifier/-/update-notifier-0.1.10.tgz";
+        name = "update-notifier-0.1.10.tgz";
+        sha1 = "215cbe1053369f0d4a44f84b51eba7cb80484695";
       })
     ];
     buildInputs =
       (self.nativeDeps."update-notifier" or []);
     deps = [
-      self.by-version."request"."2.27.0"
-      self.by-version."configstore"."0.2.3"
-      self.by-version."semver"."2.1.0"
       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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "update-notifier" ];
   };
-  by-spec."update-notifier"."~0.1.7" =
-    self.by-version."update-notifier"."0.1.8";
   by-spec."url"."~0.10.1" =
     self.by-version."url"."0.10.1";
   by-version."url"."0.10.1" = lib.makeOverridable self.buildNodePackage {
@@ -18681,36 +19467,15 @@
     ];
     passthru.names = [ "url" ];
   };
-  by-spec."url"."~0.7.9" =
-    self.by-version."url"."0.7.9";
-  by-version."url"."0.7.9" = lib.makeOverridable self.buildNodePackage {
-    name = "node-url-0.7.9";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/url/-/url-0.7.9.tgz";
-        name = "url-0.7.9.tgz";
-        sha1 = "1959b1a8b361fc017b59513a7c7fa9827f5e4ed0";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."url" or []);
-    deps = [
-      self.by-version."querystring"."0.1.0"
-      self.by-version."punycode"."1.0.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "url" ];
-  };
   by-spec."useragent"."~2.0.4" =
-    self.by-version."useragent"."2.0.8";
-  by-version."useragent"."2.0.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-useragent-2.0.8";
+    self.by-version."useragent"."2.0.9";
+  by-version."useragent"."2.0.9" = lib.makeOverridable self.buildNodePackage {
+    name = "node-useragent-2.0.9";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/useragent/-/useragent-2.0.8.tgz";
-        name = "useragent-2.0.8.tgz";
-        sha1 = "32caa86d3f404e92d7d4183831dd103ebc1a3125";
+        url = "http://registry.npmjs.org/useragent/-/useragent-2.0.9.tgz";
+        name = "useragent-2.0.9.tgz";
+        sha1 = "98c53e8b1c0191a3e4d0ad9d8153f19a5d453ac5";
       })
     ];
     buildInputs =
@@ -18722,25 +19487,6 @@
     ];
     passthru.names = [ "useragent" ];
   };
-  by-spec."userhome"."~0.1.0" =
-    self.by-version."userhome"."0.1.0";
-  by-version."userhome"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-userhome-0.1.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/userhome/-/userhome-0.1.0.tgz";
-        name = "userhome-0.1.0.tgz";
-        sha1 = "bd2067d90b3f7ac6c026d87612c579d88fb89f86";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."userhome" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "userhome" ];
-  };
   by-spec."util"."0.10.2" =
     self.by-version."util"."0.10.2";
   by-version."util"."0.10.2" = lib.makeOverridable self.buildNodePackage {
@@ -18839,7 +19585,7 @@
       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.3.5"
+      self.by-version."mkdirp"."0.5.0"
       self.by-version."ncp"."0.2.7"
       self.by-version."rimraf"."1.0.9"
     ];
@@ -18864,9 +19610,9 @@
       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.3.5"
+      self.by-version."mkdirp"."0.5.0"
       self.by-version."ncp"."0.4.2"
-      self.by-version."rimraf"."2.2.6"
+      self.by-version."rimraf"."2.2.8"
     ];
     peerDependencies = [
     ];
@@ -18874,8 +19620,6 @@
   };
   by-spec."utile"."0.2.x" =
     self.by-version."utile"."0.2.1";
-  by-spec."utile"."~0.1.7" =
-    self.by-version."utile"."0.1.7";
   by-spec."utile"."~0.2.1" =
     self.by-version."utile"."0.2.1";
   by-spec."utils-merge"."1.0.0" =
@@ -18916,8 +19660,6 @@
     ];
     passthru.names = [ "uuid" ];
   };
-  by-spec."uuid"."~1.4.0" =
-    self.by-version."uuid"."1.4.1";
   by-spec."uuid"."~1.4.1" =
     self.by-version."uuid"."1.4.1";
   by-spec."validator"."0.4.x" =
@@ -18958,6 +19700,46 @@
     ];
     passthru.names = [ "vargs" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/vary/-/vary-0.1.0.tgz";
+        name = "vary-0.1.0.tgz";
+        sha1 = "df0945899e93c0cc5bd18cc8321d9d21e74f6176";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."vary" or []);
+    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";
+    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."vasync"."1.3.3" =
     self.by-version."vasync"."1.3.3";
   by-version."vasync"."1.3.3" = lib.makeOverridable self.buildNodePackage {
@@ -18979,6 +19761,27 @@
     ];
     passthru.names = [ "vasync" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/vasync/-/vasync-1.4.3.tgz";
+        name = "vasync-1.4.3.tgz";
+        sha1 = "c86d52e2b71613d29eedf159f3135dbe749cee37";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."vasync" or []);
+    deps = [
+      self.by-version."jsprim"."0.3.0"
+      self.by-version."verror"."1.1.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "vasync" ];
+  };
   by-spec."verror"."1.1.0" =
     self.by-version."verror"."1.1.0";
   by-version."verror"."1.1.0" = lib.makeOverridable self.buildNodePackage {
@@ -19039,15 +19842,15 @@
     ];
     passthru.names = [ "verror" ];
   };
-  by-spec."vhost"."1.0.0" =
-    self.by-version."vhost"."1.0.0";
-  by-version."vhost"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-vhost-1.0.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/vhost/-/vhost-1.0.0.tgz";
-        name = "vhost-1.0.0.tgz";
-        sha1 = "654513f289a4f898aab745bbd633e40180c9c4c0";
+        url = "http://registry.npmjs.org/vhost/-/vhost-2.0.0.tgz";
+        name = "vhost-2.0.0.tgz";
+        sha1 = "1e26770bd0fce86c40945591e6f284c6891791e2";
       })
     ];
     buildInputs =
@@ -19059,14 +19862,14 @@
     passthru.names = [ "vhost" ];
   };
   by-spec."view-helpers"."*" =
-    self.by-version."view-helpers"."0.1.4";
-  by-version."view-helpers"."0.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-view-helpers-0.1.4";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/view-helpers/-/view-helpers-0.1.4.tgz";
-        name = "view-helpers-0.1.4.tgz";
-        sha1 = "aeadfbcc2c21343d2b0ef4d4f20f805764286cee";
+        url = "http://registry.npmjs.org/view-helpers/-/view-helpers-0.1.5.tgz";
+        name = "view-helpers-0.1.5.tgz";
+        sha1 = "175d220a6afeca8e3b497b003e2337bcc596f761";
       })
     ];
     buildInputs =
@@ -19077,7 +19880,75 @@
     ];
     passthru.names = [ "view-helpers" ];
   };
-  "view-helpers" = self.by-version."view-helpers"."0.1.4";
+  "view-helpers" = self.by-version."view-helpers"."0.1.5";
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/vinyl/-/vinyl-0.2.3.tgz";
+        name = "vinyl-0.2.3.tgz";
+        sha1 = "bca938209582ec5a49ad538a00fa1f125e513252";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."vinyl" or []);
+    deps = [
+      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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/vinyl/-/vinyl-0.3.2.tgz";
+        name = "vinyl-0.3.2.tgz";
+        sha1 = "2b422d7c5ff0abc0d22d90ed2275e409dab5e174";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."vinyl" or []);
+    deps = [
+      self.by-version."clone-stats"."0.0.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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.6.tgz";
+        name = "vinyl-fs-0.3.6.tgz";
+        sha1 = "c96985527cd53eb4a3eeb8ffb3180bda3084ecfc";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "vinyl-fs" ];
+  };
   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 {
@@ -19120,26 +19991,26 @@
     passthru.names = [ "vows" ];
   };
   by-spec."walk"."*" =
-    self.by-version."walk"."2.3.1";
-  by-version."walk"."2.3.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-walk-2.3.1";
+    self.by-version."walk"."2.3.3";
+  by-version."walk"."2.3.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-walk-2.3.3";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/walk/-/walk-2.3.1.tgz";
-        name = "walk-2.3.1.tgz";
-        sha1 = "015e0ef7a636ac43185661a9673d459572a44050";
+        url = "http://registry.npmjs.org/walk/-/walk-2.3.3.tgz";
+        name = "walk-2.3.3.tgz";
+        sha1 = "b4c0e8c42464c16dbbe1d71666765eac07819e5f";
       })
     ];
     buildInputs =
       (self.nativeDeps."walk" or []);
     deps = [
-      self.by-version."forEachAsync"."2.2.1"
+      self.by-version."foreachasync"."3.0.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "walk" ];
   };
-  "walk" = self.by-version."walk"."2.3.1";
+  "walk" = self.by-version."walk"."2.3.3";
   by-spec."walk"."~2.2.1" =
     self.by-version."walk"."2.2.1";
   by-version."walk"."2.2.1" = lib.makeOverridable self.buildNodePackage {
@@ -19198,41 +20069,62 @@
     ];
     passthru.names = [ "watch" ];
   };
-  by-spec."wd"."~0.2.12" =
-    self.by-version."wd"."0.2.19";
-  by-version."wd"."0.2.19" = lib.makeOverridable self.buildNodePackage {
-    name = "wd-0.2.19";
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/wcwidth.js/-/wcwidth.js-0.0.4.tgz";
+        name = "wcwidth.js-0.0.4.tgz";
+        sha1 = "44298a7c899c17501990fdaddd76ef6bd081be75";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."wcwidth.js" or []);
+    deps = [
+      self.by-version."underscore"."1.6.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "wcwidth.js" ];
+  };
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/wd/-/wd-0.2.19.tgz";
-        name = "wd-0.2.19.tgz";
-        sha1 = "347ae75adebc15ad642baec118742344d749f169";
+        url = "http://registry.npmjs.org/wd/-/wd-0.3.4.tgz";
+        name = "wd-0.3.4.tgz";
+        sha1 = "da95a0998eb8acfd297e3a9baf28f610b6345543";
       })
     ];
     buildInputs =
       (self.nativeDeps."wd" or []);
     deps = [
-      self.by-version."async"."0.2.10"
-      self.by-version."vargs"."0.1.0"
-      self.by-version."q"."1.0.1"
-      self.by-version."request"."2.33.0"
-      self.by-version."archiver"."0.5.2"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "wd" ];
   };
   by-spec."weak-map"."^1.0.4" =
-    self.by-version."weak-map"."1.0.4";
-  by-version."weak-map"."1.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/weak-map/-/weak-map-1.0.4.tgz";
-        name = "weak-map-1.0.4.tgz";
-        sha1 = "1acddee2cc90eb30950860b7415c79cefc5f07c9";
+        url = "http://registry.npmjs.org/weak-map/-/weak-map-1.0.5.tgz";
+        name = "weak-map-1.0.5.tgz";
+        sha1 = "79691584d98607f5070bd3b70a40e6bb22e401eb";
       })
     ];
     buildInputs =
@@ -19244,14 +20136,14 @@
     passthru.names = [ "weak-map" ];
   };
   by-spec."webdrvr"."*" =
-    self.by-version."webdrvr"."2.40.0";
-  by-version."webdrvr"."2.40.0" = lib.makeOverridable self.buildNodePackage {
-    name = "webdrvr-2.40.0";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/webdrvr/-/webdrvr-2.40.0.tgz";
-        name = "webdrvr-2.40.0.tgz";
-        sha1 = "689f5d3fad5008ffc7b273d607eea9dd7d26ca42";
+        url = "http://registry.npmjs.org/webdrvr/-/webdrvr-2.41.0-0.tgz";
+        name = "webdrvr-2.41.0-0.tgz";
+        sha1 = "c74f22b27f0778d0c2b7e5cbda1edd113d782884";
       })
     ];
     buildInputs =
@@ -19260,25 +20152,25 @@
       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.14"
-      self.by-version."phantomjs"."1.9.7-4"
-      self.by-version."tmp"."0.0.23"
+      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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "webdrvr" ];
   };
-  "webdrvr" = self.by-version."webdrvr"."2.40.0";
-  by-spec."websocket-driver".">=0.3.0" =
-    self.by-version."websocket-driver"."0.3.2";
-  by-version."websocket-driver"."0.3.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-websocket-driver-0.3.2";
+  "webdrvr" = self.by-version."webdrvr"."2.41.0-0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/websocket-driver/-/websocket-driver-0.3.2.tgz";
-        name = "websocket-driver-0.3.2.tgz";
-        sha1 = "f177ef6611390e2401ae47f35e8386dda987daca";
+        url = "http://registry.npmjs.org/websocket-driver/-/websocket-driver-0.3.5.tgz";
+        name = "websocket-driver-0.3.5.tgz";
+        sha1 = "e3a51ff538f1653a49e62d78ecfc1eb1bde9e5a0";
       })
     ];
     buildInputs =
@@ -19289,8 +20181,6 @@
     ];
     passthru.names = [ "websocket-driver" ];
   };
-  by-spec."websocket-driver".">=0.3.1" =
-    self.by-version."websocket-driver"."0.3.2";
   by-spec."when"."~3.1.0" =
     self.by-version."when"."3.1.0";
   by-version."when"."3.1.0" = lib.makeOverridable self.buildNodePackage {
@@ -19439,28 +20329,6 @@
     self.by-version."winston"."0.7.3";
   by-spec."winston"."~0.7.3" =
     self.by-version."winston"."0.7.3";
-  by-spec."wiredep"."~1.0.0" =
-    self.by-version."wiredep"."1.0.0";
-  by-version."wiredep"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-wiredep-1.0.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/wiredep/-/wiredep-1.0.0.tgz";
-        name = "wiredep-1.0.0.tgz";
-        sha1 = "2e570465657b97e7494abf62978a3e52fc37ac52";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."wiredep" or []);
-    deps = [
-      self.by-version."lodash"."1.3.1"
-      self.by-version."chalk"."0.1.1"
-      self.by-version."glob"."3.2.9"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "wiredep" ];
-  };
   by-spec."with"."~1.1.0" =
     self.by-version."with"."1.1.1";
   by-version."with"."1.1.1" = lib.makeOverridable self.buildNodePackage {
@@ -19502,20 +20370,20 @@
     passthru.names = [ "with" ];
   };
   by-spec."with"."~3.0.0" =
-    self.by-version."with"."3.0.0";
-  by-version."with"."3.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/with/-/with-3.0.0.tgz";
-        name = "with-3.0.0.tgz";
-        sha1 = "38f5d5859bb974c9dad8812372b51dae4b9594cc";
+        url = "http://registry.npmjs.org/with/-/with-3.0.1.tgz";
+        name = "with-3.0.1.tgz";
+        sha1 = "08354da410243cf6173fb142bb04e6c66f96f854";
       })
     ];
     buildInputs =
       (self.nativeDeps."with" or []);
     deps = [
-      self.by-version."uglify-js"."2.4.13"
+      self.by-version."uglify-js"."2.4.15"
     ];
     peerDependencies = [
     ];
@@ -19544,25 +20412,6 @@
     self.by-version."wordwrap"."0.0.2";
   by-spec."wordwrap"."~0.0.2" =
     self.by-version."wordwrap"."0.0.2";
-  by-spec."wrench"."~1.4.3" =
-    self.by-version."wrench"."1.4.4";
-  by-version."wrench"."1.4.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-wrench-1.4.4";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/wrench/-/wrench-1.4.4.tgz";
-        name = "wrench-1.4.4.tgz";
-        sha1 = "7f523efdb71b0100e77dce834c06523cbe3d54e0";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."wrench" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "wrench" ];
-  };
   by-spec."wrench"."~1.5.0" =
     self.by-version."wrench"."1.5.8";
   by-version."wrench"."1.5.8" = lib.makeOverridable self.buildNodePackage {
@@ -19584,41 +20433,22 @@
   };
   by-spec."wrench"."~1.5.4" =
     self.by-version."wrench"."1.5.8";
-  by-spec."wru".">= 0.0.0" =
-    self.by-version."wru"."0.2.7";
-  by-version."wru"."0.2.7" = lib.makeOverridable self.buildNodePackage {
-    name = "wru-0.2.7";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/wru/-/wru-0.2.7.tgz";
-        name = "wru-0.2.7.tgz";
-        sha1 = "f6fa4fc7d54f44bec19d55c66c4667078d73062d";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."wru" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "wru" ];
-  };
   by-spec."ws"."0.4.x" =
-    self.by-version."ws"."0.4.31";
-  by-version."ws"."0.4.31" = lib.makeOverridable self.buildNodePackage {
-    name = "ws-0.4.31";
+    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.31.tgz";
-        name = "ws-0.4.31.tgz";
-        sha1 = "5a4849e7a9ccd1ed5a81aeb4847c9fedf3122927";
+        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"."0.6.1"
-      self.by-version."nan"."0.3.2"
+      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"
     ];
@@ -19627,27 +20457,28 @@
     passthru.names = [ "ws" ];
   };
   by-spec."ws"."~0.4.31" =
-    self.by-version."ws"."0.4.31";
+    self.by-version."ws"."0.4.32";
   by-spec."wu"."*" =
-    self.by-version."wu"."0.1.8";
-  by-version."wu"."0.1.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-wu-0.1.8";
+    self.by-version."wu"."2.0.0";
+  by-version."wu"."2.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-wu-2.0.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/wu/-/wu-0.1.8.tgz";
-        name = "wu-0.1.8.tgz";
-        sha1 = "619bcdf64974a487894a25755ae095c5208b4a22";
+        url = "http://registry.npmjs.org/wu/-/wu-2.0.0.tgz";
+        name = "wu-2.0.0.tgz";
+        sha1 = "abda06a014dd1c54c2163862f5c2c5230721bc27";
       })
     ];
     buildInputs =
       (self.nativeDeps."wu" or []);
     deps = [
+      self.by-version."traceur"."0.0.55"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "wu" ];
   };
-  "wu" = self.by-version."wu"."0.1.8";
+  "wu" = self.by-version."wu"."2.0.0";
   by-spec."x509"."*" =
     self.by-version."x509"."0.0.7";
   by-version."x509"."0.0.7" = lib.makeOverridable self.buildNodePackage {
@@ -19688,49 +20519,51 @@
     ];
     passthru.names = [ "xml2js" ];
   };
-  by-spec."xml2js"."0.2.x" =
-    self.by-version."xml2js"."0.2.8";
-  by-version."xml2js"."0.2.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-xml2js-0.2.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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/xml2js/-/xml2js-0.2.8.tgz";
-        name = "xml2js-0.2.8.tgz";
-        sha1 = "9b81690931631ff09d1957549faf54f4f980b3c2";
+        url = "http://registry.npmjs.org/xml2js/-/xml2js-0.2.6.tgz";
+        name = "xml2js-0.2.6.tgz";
+        sha1 = "d209c4e4dda1fc9c452141ef41c077f5adfdf6c4";
       })
     ];
     buildInputs =
       (self.nativeDeps."xml2js" or []);
     deps = [
-      self.by-version."sax"."0.5.8"
+      self.by-version."sax"."0.4.2"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "xml2js" ];
   };
   by-spec."xml2js".">= 0.0.1" =
-    self.by-version."xml2js"."0.4.2";
-  by-version."xml2js"."0.4.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-xml2js-0.4.2";
+    self.by-version."xml2js"."0.4.4";
+  by-version."xml2js"."0.4.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-xml2js-0.4.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/xml2js/-/xml2js-0.4.2.tgz";
-        name = "xml2js-0.4.2.tgz";
-        sha1 = "93911c393c4a332a2dce1222801eb571453b2f90";
+        url = "http://registry.npmjs.org/xml2js/-/xml2js-0.4.4.tgz";
+        name = "xml2js-0.4.4.tgz";
+        sha1 = "3111010003008ae19240eba17497b57c729c555d";
       })
     ];
     buildInputs =
       (self.nativeDeps."xml2js" or []);
     deps = [
-      self.by-version."sax"."0.5.8"
-      self.by-version."xmlbuilder"."2.2.1"
+      self.by-version."sax"."0.6.0"
+      self.by-version."xmlbuilder"."2.4.3"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "xml2js" ];
   };
   by-spec."xml2js".">=0.1.7" =
-    self.by-version."xml2js"."0.4.2";
+    self.by-version."xml2js"."0.4.4";
+  by-spec."xml2js"."^0.4.4" =
+    self.by-version."xml2js"."0.4.4";
   by-spec."xmlbuilder"."0.4.2" =
     self.by-version."xmlbuilder"."0.4.2";
   by-version."xmlbuilder"."0.4.2" = lib.makeOverridable self.buildNodePackage {
@@ -19750,15 +20583,15 @@
     ];
     passthru.names = [ "xmlbuilder" ];
   };
-  by-spec."xmlbuilder".">=0.4.2" =
-    self.by-version."xmlbuilder"."2.2.1";
-  by-version."xmlbuilder"."2.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-xmlbuilder-2.2.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-2.2.1.tgz";
-        name = "xmlbuilder-2.2.1.tgz";
-        sha1 = "9326430f130d87435d4c4086643aa2926e105a32";
+        url = "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-2.4.3.tgz";
+        name = "xmlbuilder-2.4.3.tgz";
+        sha1 = "0589eeee0986adf0af605e878f24ff6557d7697f";
       })
     ];
     buildInputs =
@@ -19808,7 +20641,7 @@
     ];
     passthru.names = [ "xmlhttprequest" ];
   };
-  by-spec."xoauth2"."~0.1" =
+  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";
@@ -19827,166 +20660,90 @@
     ];
     passthru.names = [ "xoauth2" ];
   };
-  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";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz";
-        name = "xtend-2.1.2.tgz";
-        sha1 = "6efecc2a4dad8e6962c4901b337ce7ba87b5d28b";
+        url = "http://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz";
+        name = "xtend-4.0.0.tgz";
+        sha1 = "8bc36ff87aedbe7ce9eaf0bca36b2354a743840f";
       })
     ];
     buildInputs =
       (self.nativeDeps."xtend" or []);
     deps = [
-      self.by-version."object-keys"."0.4.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "xtend" ];
   };
-  by-spec."xtend"."~2.1.2" =
-    self.by-version."xtend"."2.1.2";
-  by-spec."yargs"."~1.1.2" =
-    self.by-version."yargs"."1.1.3";
-  by-version."yargs"."1.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-yargs-1.1.3";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/yargs/-/yargs-1.1.3.tgz";
-        name = "yargs-1.1.3.tgz";
-        sha1 = "c44ed2bb9c86d55b557f2179fea7c7013fe4c42a";
+        url = "http://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz";
+        name = "xtend-3.0.0.tgz";
+        sha1 = "5cce7407baf642cba7becda568111c493f59665a";
       })
     ];
     buildInputs =
-      (self.nativeDeps."yargs" or []);
+      (self.nativeDeps."xtend" or []);
     deps = [
-      self.by-version."minimist"."0.0.8"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "yargs" ];
-  };
-  by-spec."yeoman-generator"."~0.14.0" =
-    self.by-version."yeoman-generator"."0.14.2";
-  by-version."yeoman-generator"."0.14.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-yeoman-generator-0.14.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/yeoman-generator/-/yeoman-generator-0.14.2.tgz";
-        name = "yeoman-generator-0.14.2.tgz";
-        sha1 = "6d3e306d1118c83c25ac12a9d3dcb7870aa53397";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."yeoman-generator" or []);
-    deps = [
-      self.by-version."cheerio"."0.12.4"
-      self.by-version."rimraf"."2.2.6"
-      self.by-version."diff"."1.0.8"
-      self.by-version."mime"."1.2.11"
-      self.by-version."underscore.string"."2.3.3"
-      self.by-version."lodash"."2.2.1"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."glob"."3.2.9"
-      self.by-version."debug"."0.7.4"
-      self.by-version."isbinaryfile"."0.1.9"
-      self.by-version."dargs"."0.1.0"
-      self.by-version."async"."0.2.10"
-      self.by-version."inquirer"."0.3.5"
-      self.by-version."iconv-lite"."0.2.11"
-      self.by-version."shelljs"."0.2.6"
-      self.by-version."findup-sync"."0.1.3"
-      self.by-version."chalk"."0.3.0"
-      self.by-version."text-table"."0.2.0"
-      self.by-version."download"."0.1.16"
-      self.by-version."request"."2.27.0"
-      self.by-version."file-utils"."0.1.5"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "yeoman-generator" ];
+    passthru.names = [ "xtend" ];
   };
-  by-spec."yeoman-generator"."~0.16.0" =
-    self.by-version."yeoman-generator"."0.16.0";
-  by-version."yeoman-generator"."0.16.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-yeoman-generator-0.16.0";
+  by-spec."xtend"."^4.0.0" =
+    self.by-version."xtend"."4.0.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/yeoman-generator/-/yeoman-generator-0.16.0.tgz";
-        name = "yeoman-generator-0.16.0.tgz";
-        sha1 = "0d1b655ea31660ab66837af1e686b795eae57c59";
+        url = "http://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz";
+        name = "xtend-2.1.2.tgz";
+        sha1 = "6efecc2a4dad8e6962c4901b337ce7ba87b5d28b";
       })
     ];
     buildInputs =
-      (self.nativeDeps."yeoman-generator" or []);
+      (self.nativeDeps."xtend" or []);
     deps = [
-      self.by-version."cheerio"."0.13.1"
-      self.by-version."rimraf"."2.2.6"
-      self.by-version."diff"."1.0.8"
-      self.by-version."mime"."1.2.11"
-      self.by-version."underscore.string"."2.3.3"
-      self.by-version."lodash"."2.4.1"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."glob"."3.2.9"
-      self.by-version."debug"."0.7.4"
-      self.by-version."isbinaryfile"."2.0.1"
-      self.by-version."dargs"."0.1.0"
-      self.by-version."async"."0.2.10"
-      self.by-version."inquirer"."0.4.1"
-      self.by-version."iconv-lite"."0.2.11"
-      self.by-version."shelljs"."0.2.6"
-      self.by-version."findup-sync"."0.1.3"
-      self.by-version."chalk"."0.4.0"
-      self.by-version."text-table"."0.2.0"
-      self.by-version."download"."0.1.16"
-      self.by-version."request"."2.30.0"
-      self.by-version."file-utils"."0.1.5"
-      self.by-version."class-extend"."0.1.1"
+      self.by-version."object-keys"."0.4.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "yeoman-generator" ];
+    passthru.names = [ "xtend" ];
   };
-  by-spec."yo"."*" =
-    self.by-version."yo"."1.1.2";
-  by-version."yo"."1.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "yo-1.1.2";
+  by-spec."xtend"."~2.1.2" =
+    self.by-version."xtend"."2.1.2";
+  by-spec."xtend"."~3.0.0" =
+    self.by-version."xtend"."3.0.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/yo/-/yo-1.1.2.tgz";
-        name = "yo-1.1.2.tgz";
-        sha1 = "a0d4da72e83fa0e0dbfe1d0ba258881b240ab854";
+        url = "http://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz";
+        name = "yargs-1.2.6.tgz";
+        sha1 = "9c7b4a82fd5d595b2bf17ab6dcc43135432fe34b";
       })
     ];
     buildInputs =
-      (self.nativeDeps."yo" or []);
+      (self.nativeDeps."yargs" or []);
     deps = [
-      self.by-version."yeoman-generator"."0.16.0"
-      self.by-version."nopt"."2.1.2"
-      self.by-version."lodash"."2.4.1"
-      self.by-version."update-notifier"."0.1.8"
-      self.by-version."insight"."0.3.1"
-      self.by-version."sudo-block"."0.3.0"
-      self.by-version."async"."0.2.10"
-      self.by-version."open"."0.0.4"
-      self.by-version."chalk"."0.4.0"
-      self.by-version."findup"."0.1.5"
-      self.by-version."shelljs"."0.2.6"
+      self.by-version."minimist"."0.1.0"
     ];
     peerDependencies = [
-      self.by-version."grunt-cli"."0.1.13"
-      self.by-version."bower"."1.3.2"
     ];
-    passthru.names = [ "yo" ];
+    passthru.names = [ "yargs" ];
   };
-  "yo" = self.by-version."yo"."1.1.2";
-  by-spec."yo".">=1.0.0" =
-    self.by-version."yo"."1.1.2";
-  by-spec."yo".">=1.0.0-rc.1.1" =
-    self.by-version."yo"."1.1.2";
   by-spec."zeparser"."0.0.5" =
     self.by-version."zeparser"."0.0.5";
   by-version."zeparser"."0.0.5" = lib.makeOverridable self.buildNodePackage {
@@ -20006,22 +20763,26 @@
     ];
     passthru.names = [ "zeparser" ];
   };
-  by-spec."zip-stream"."~0.1.0" =
-    self.by-version."zip-stream"."0.1.4";
-  by-version."zip-stream"."0.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-zip-stream-0.1.4";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/zip-stream/-/zip-stream-0.1.4.tgz";
-        name = "zip-stream-0.1.4.tgz";
-        sha1 = "fe5b565bc366b8d73d5d4c1606e07c8947de1654";
+        url = "http://registry.npmjs.org/zip-stream/-/zip-stream-0.3.7.tgz";
+        name = "zip-stream-0.3.7.tgz";
+        sha1 = "c84d057eb0bcc0139747bd3c6c97280bcf5f2bb2";
       })
     ];
     buildInputs =
       (self.nativeDeps."zip-stream" or []);
     deps = [
-      self.by-version."readable-stream"."1.0.27-1"
-      self.by-version."lodash.defaults"."2.4.1"
+      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"
     ];
     peerDependencies = [
     ];
@@ -20047,6 +20808,4 @@
     ];
     passthru.names = [ "zlib-browserify" ];
   };
-  by-spec."zlib-browserify"."~0.0.3" =
-    self.by-version."zlib-browserify"."0.0.3";
 }
diff --git a/pkgs/top-level/node-packages.json b/pkgs/top-level/node-packages.json
index 4d220a008290..fec7884eb251 100644
--- a/pkgs/top-level/node-packages.json
+++ b/pkgs/top-level/node-packages.json
@@ -69,16 +69,12 @@
 , "flatiron"
 , "ironhorse"
 , "fs-walk"
-, "yo"
-, "generator-webapp"
-, "generator-angular"
 , "statsd"
 , "statsd-librato-backend"
 , "stackdriver-statsd-backend"
 , "ungit"
 , { "node-uptime": "https://github.com/fzaninotto/uptime/tarball/1c65756575f90f563a752e2a22892ba2981c79b7" }
 , { "guifi-earth": "https://github.com/jmendeth/guifi-earth/tarball/f3ee96835fd4fb0e3e12fadbd2cb782770d64854 " }
-, "bower"
 , "grunt-cli"
 , "grunt-contrib-jshint"
 , "grunt-contrib-requirejs"
@@ -86,7 +82,6 @@
 , "grunt-contrib-cssmin"
 , "grunt-contrib-uglify"
 , "grunt-karma"
-, "grunt-bower-task"
 , "grunt-sed"
 , "karma"
 , "karma-mocha"
@@ -114,10 +109,7 @@
 , "posix"
 , "node-protobuf"
 , "rethinkdb"
-, "bower2nix"
-, "fetch-bower"
 , { "titanium": "3.2.1" }
-, "gh"
 , "deepmerge"
 , "slasp"
 , "react"
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 8895d4d093b2..a50a56177947 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -4246,6 +4246,7 @@ let self = _self // overrides; _self = with self; {
       url = mirror://cpan/authors/id/C/CF/CFRANKS/HTML-Widget-1.11.tar.gz;
       sha256 = "02w21rd30cza094m5xs9clzw8ayigbhg2ddzl6jycp4jam0dyhmy";
     };
+    doCheck = false;
     propagatedBuildInputs = [
       TestNoWarnings ClassAccessor ClassAccessorChained
       ClassDataAccessor ModulePluggableFast HTMLTree
@@ -5698,8 +5699,8 @@ let self = _self // overrides; _self = with self; {
       url = mirror://cpan/authors/id/H/HA/HAARG/Moo-1.006000.tar.gz;
       sha256 = "0gjh6dyz825cwjibq2wlpx14drjqx4pxxh931p4x3jd2617hax17";
     };
-    buildInputs = [ TestFatal ImportInto ];
-    propagatedBuildInputs = [ ClassMethodModifiers DevelGlobalDestruction ModuleRuntime RoleTiny strictures ];
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ ClassMethodModifiers DevelGlobalDestruction ImportInto ModuleRuntime RoleTiny strictures ];
     meta = {
       description = "Minimalist Object Orientation (with Moose compatiblity)";
       license = "perl5";
@@ -6467,7 +6468,7 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  NetAMQP = buildPerlPackage {
+  NetAMQP = buildPerlModule {
     name = "Net-AMQP-0.06";
     src = fetchurl {
       url = mirror://cpan/authors/id/C/CH/CHIPS/Net-AMQP-0.06.tar.gz;
@@ -6481,13 +6482,6 @@ let self = _self // overrides; _self = with self; {
       maintainers = with maintainers; [ ocharles ];
       platforms   = stdenv.lib.platforms.unix;
     };
-    preConfigure =
-      ''
-        substituteInPlace META.json \
-          '"Module::Build" : "0.40"' '"Module::Build" : "0.39"'
-        substituteInPlace META.yml \
-          'Module::Build: 0.40' 'Module::Build: 0.39'
-      '';
   };
 
   NetCoverArtArchive = buildPerlPackage {
@@ -8168,6 +8162,7 @@ let self = _self // overrides; _self = with self; {
       CatalystPluginSession CatalystPluginAuthentication
       CatalystAuthenticationStoreDBIxClass
       CatalystPluginAuthorizationRoles
+      CatalystPluginSessionStateCookie
       CatalystPluginAuthorizationACL
       CatalystPluginHTMLWidget
       CatalystPluginSessionStoreFastMmap
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index 1225021ad377..700547450ec2 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -39,6 +39,12 @@ let self = with self; {
     sha256 = "1gcsh9iar5qa1yzpjki9bb5rivcb6yjp45lmjmp98wlyf83vmy2y";
   };
 
+  zendopcache = buildPecl {
+    name = "zendopcache-7.0.3";
+
+    sha256 = "0qpfbkfy4wlnsfq4vc4q5wvaia83l89ky33s08gqrcfp3p1adn88";
+  };
+
   zmq = buildPecl {
     name = "zmq-1.1.2";
 
diff --git a/pkgs/top-level/python-packages-generated.nix b/pkgs/top-level/python-packages-generated.nix
index e76cf4988d02..247d18680d96 100644
--- a/pkgs/top-level/python-packages-generated.nix
+++ b/pkgs/top-level/python-packages-generated.nix
@@ -2666,7 +2666,7 @@ in
         md5 = "09dcec70f623a9ef774f1aef75690995";
     };
     doCheck = false;
-    buildInputs = [  ];
+    buildInputs = [ pkgs.postgresql ];
     propagatedBuildInputs = [  ];
     installCommand = ''easy_install --always-unzip --prefix="$out" .'';
     meta = {
@@ -5242,6 +5242,7 @@ in
     doCheck = true;
     buildInputs = [ self."nose-1.3.3" self."unittest2-0.5.1" self."pyquery-1.2.8" self."WSGIProxy2-0.4.1" self."PasteDeploy-1.5.2" self."mock-1.0.1" self."coverage-3.7.1" pkgs.unzip ];
     propagatedBuildInputs = [ self."beautifulsoup4-4.3.2" self."six-1.6.1" self."waitress-0.8.9" self."WebOb-1.4" ];
+    preConfigure = ''substituteInPlace setup.py --replace "nose<1.3.0" "nose"'';
     installCommand = ''easy_install --always-unzip --prefix="$out" .'';
     meta = {
       description = ''
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 0e93505f0e93..533f59b78d81 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -7,6 +7,7 @@ let
   isPy33 = python.majorVersion == "3.3";
   isPy34 = python.majorVersion == "3.4";
   isPyPy = python.executable == "pypy";
+  isPy3k = strings.substring 0 1 python.majorVersion == "3";
 
   # Unique python version identifier
   pythonName =
@@ -27,7 +28,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 # Python packages for all python versions
 rec {
 
-  inherit python isPy26 isPy27 isPy33 isPy34 isPyPy pythonName;
+  inherit python isPy26 isPy27 isPy33 isPy34 isPyPy isPy3k pythonName;
   inherit (pkgs) fetchurl fetchsvn fetchgit stdenv unzip;
 
   # helpers
@@ -89,6 +90,19 @@ rec {
     '';
   };
 
+  h5py = callPackage ../development/python-modules/h5py {
+    inherit (pkgs) stdenv fetchurl;
+    inherit python buildPythonPackage cython numpy;
+    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 = import ../shells/ipython {
     inherit (pkgs) stdenv fetchurl sip pyqt4;
     inherit buildPythonPackage pythonPackages;
@@ -105,17 +119,18 @@ rec {
     pylabQtSupport = false;
   });
 
+  mpi4py = callPackage ../development/python-modules/mpi4py {
+    inherit (pkgs) stdenv fetchurl openssh;
+    inherit python buildPythonPackage;
+    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;
 
-  pil = import ../development/python-modules/pil {
-    inherit (pkgs) fetchurl stdenv libjpeg zlib freetype;
-    inherit python buildPythonPackage;
-  };
-
   pitz = import ../applications/misc/pitz {
     inherit (pkgs) stdenv fetchurl;
     inherit buildPythonPackage tempita jinja2 pyyaml clepy mock nose decorator docutils;
@@ -143,8 +158,8 @@ rec {
 
   pygtk = import ../development/python-modules/pygtk {
     inherit (pkgs) fetchurl stdenv pkgconfig gtk;
-    inherit python buildPythonPackage pygobject pycairo;
-  };
+    inherit python buildPythonPackage pygobject pycairo isPy3k;
+  }; 
 
   # XXX: how can we get an override here?
   #pyGtkGlade = pygtk.override {
@@ -153,7 +168,7 @@ rec {
   pyGtkGlade = import ../development/python-modules/pygtk {
     inherit (pkgs) fetchurl stdenv pkgconfig gtk;
     inherit (pkgs.gnome) libglade;
-    inherit python buildPythonPackage pygobject pycairo;
+    inherit python buildPythonPackage pygobject pycairo isPy3k;
   };
 
   pyqt4 = import ../development/python-modules/pyqt/4.x.nix {
@@ -259,9 +274,8 @@ rec {
 
     propagatedBuildInputs = [
       pythonPackages.notmuch
-      pythonPackages.subprocess32
       pythonPackages.chardet
-    ];
+    ] ++ optional (!isPy3k) pythonPackages.subprocess32;
 
     doCheck = false;
 
@@ -283,15 +297,15 @@ rec {
 
 
   alembic = buildPythonPackage rec {
-    name = "alembic-0.6.0";
+    name = "alembic-0.6.6";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/a/alembic/${name}.tar.gz";
-      md5 = "084fe81b48ebae43b0f6031af68a03d6";
+      md5 = "71e4a8f6849e1527abfc4ea33d51f37c";
     };
 
-    buildInputs = [ nose ];
-    propagatedBuildInputs = [ Mako sqlalchemy ];
+    buildInputs = [ nose mock ];
+    propagatedBuildInputs = [ Mako sqlalchemy9 ];
 
     meta = {
       homepage = http://bitbucket.org/zzzeek/alembic;
@@ -389,11 +403,12 @@ rec {
 
 
   anyjson = buildPythonPackage rec {
-    name = "anyjson-0.3.1";
+    name = "anyjson-0.3.3";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/a/anyjson/${name}.tar.gz";
-      md5 = "2b53b5d53fc40af4da7268d3c3e35a50";
+      md5 = "2ea28d6ec311aeeebaf993cb3008b27c";
     };
 
     buildInputs = [ pythonPackages.nose ];
@@ -443,6 +458,24 @@ rec {
   };
 
 
+  apscheduler = buildPythonPackage rec {
+    name = "APScheduler-2.1.2";
+
+    propagatedBuildInputs = with pythonPackages; [ futures tzlocal six pytest mock];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/A/APScheduler/APScheduler-2.1.2.tar.gz";
+      md5 = "6862959d460c16ef325d63e1fc3a6684";
+    };
+
+    meta = with pkgs.stdenv.lib; {
+      description = "Advanced Python Scheduler (APScheduler) is a Python library that lets you schedule your Python code to be executed";
+      homepage = http://pypi.python.org/pypi/APScheduler/;
+      license = licenses.mit;
+    };
+  };
+
+
   area53 = buildPythonPackage (rec {
     name = "area53-b2c9cdcabd";
 
@@ -462,6 +495,7 @@ rec {
 
   async = buildPythonPackage rec {
     name = "async-0.6.1";
+    disabled = isPy3k;
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
 
     buildInputs = [ pkgs.zlib ];
@@ -512,11 +546,11 @@ rec {
   });
 
   autopep8 = buildPythonPackage (rec {
-    name = "autopep8-1.0";
+    name = "autopep8-1.0.3";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/a/autopep8/${name}.tar.gz";
-      md5 = "41782e66efcbaf9d761bb45a2d2929bb";
+      md5 = "7c16d385cf9ad7c1d7fbcfcea2588a56";
     };
 
     propagatedBuildInputs = [ pep8 ];
@@ -537,6 +571,8 @@ rec {
   avro = buildPythonPackage (rec {
     name = "avro-1.7.6";
 
+    disabled = isPy3k;
+    
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/a/avro/${name}.tar.gz";
       md5 = "7f4893205e5ad69ac86f6b44efb7df72";
@@ -550,7 +586,9 @@ rec {
 
   avro3k = pkgs.lowPrio (buildPythonPackage (rec {
     name = "avro3k-1.7.7-SNAPSHOT";
-
+    
+    disabled = (!isPy3k);
+    
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/a/avro3k/${name}.tar.gz";
       sha256 = "15ahl0irwwj558s964abdxg4vp6iwlabri7klsm2am6q5r0ngsky";
@@ -597,6 +635,7 @@ rec {
 
   beautifulsoup = buildPythonPackage (rec {
     name = "beautifulsoup-3.2.1";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.2.1.tar.gz";
@@ -635,6 +674,8 @@ rec {
 
   beaker = buildPythonPackage rec {
     name = "Beaker-1.6.4";
+    
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/B/Beaker/${name}.tar.gz";
@@ -663,16 +704,16 @@ rec {
 
 
   bedup = buildPythonPackage rec {
-    name = "bedup-20140206";
+    name = "bedup-20140413";
 
     src = fetchgit {
       url = "https://github.com/g2p/bedup.git";
-      rev = "80cb217d4819a03e159e42850a9a3f14e2b278a3";
-      sha256 = "1rik7a62v708ivfcy0pawhfnrb84b7gm3qr54x6jsxl0iqz078h6";
+      rev = "5189e166145b8954ac41883f81ef3c3b50dc96ab";
+      sha256 = "e61768fa19934bd176799f90bda3ea9f49a5def21fa2523a8e47df8a48e730e9";
     };
 
     buildInputs = [ pkgs.btrfsProgs ];
-    propagatedBuildInputs = with pkgs; [ contextlib2 sqlalchemy pyxdg pycparser cffi alembic ];
+    propagatedBuildInputs = with pkgs; [ contextlib2 sqlalchemy9 pyxdg pycparser cffi alembic ];
 
     meta = {
       description = "Deduplication for Btrfs";
@@ -879,33 +920,6 @@ rec {
    };
 
 
-  # euca2ools (and maybe Nova) needs boto 1.9, 2.0 doesn't work.
-  boto_1_9 = buildPythonPackage (rec {
-    name = "boto-1.9b";
-
-    src = fetchurl {
-      url = "http://boto.googlecode.com/files/${name}.tar.gz";
-      sha1 = "00a033b0a593c3ca82927867950f73d88b831155";
-    };
-
-    patches = [ ../development/python-modules/boto-1.9-python-2.7.patch ];
-
-    meta = {
-      homepage = http://code.google.com/p/boto/;
-
-      license = "bsd";
-
-      description = "Python interface to Amazon Web Services";
-
-      longDescription = ''
-        The boto module is an integrated interface to current and
-        future infrastructural services offered by Amazon Web
-        Services.  This includes S3, SQS, EC2, among others.
-      '';
-    };
-  });
-
-
   boto = buildPythonPackage rec {
     name = "boto-${version}";
     version = "2.32.0";
@@ -1003,8 +1017,11 @@ rec {
       maintainers = [ stdenv.lib.maintainers.garbas ];
     };
   };
+  
   zc_buildout171 = buildPythonPackage rec {
     name = "zc.buildout-1.7.1";
+    
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zc.buildout/${name}.tar.gz";
@@ -1018,8 +1035,11 @@ rec {
       maintainers = [ stdenv.lib.maintainers.garbas ];
     };
   };
+  
   zc_buildout152 = buildPythonPackage rec {
     name = "zc.buildout-1.5.2";
+    
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zc.buildout/${name}.tar.gz";
@@ -1102,6 +1122,7 @@ rec {
   cheetah = buildPythonPackage rec {
     version = "2.4.4";
     name = "cheetah-${version}";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/C/Cheetah/Cheetah-${version}.tar.gz";
@@ -1169,6 +1190,7 @@ rec {
 
   clientform = buildPythonPackage (rec {
     name = "clientform-0.2.10";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/C/ClientForm/ClientForm-0.2.10.tar.gz";
@@ -1284,7 +1306,7 @@ rec {
     };
 
     buildInputs = [ unittest2 ];
-    propagatedBuildInputs = [ colander sqlalchemy8 ];
+    propagatedBuildInputs = [ colander sqlalchemy9 ];
 
     # string: argument name cannot be overridden via info kwarg.
     doCheck = false;
@@ -1298,11 +1320,11 @@ rec {
 
 
   configobj = buildPythonPackage (rec {
-    name = "configobj-4.7.2";
+    name = "configobj-5.0.6";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/c/configobj/${name}.tar.gz";
-      md5 = "201dbaa732a9049c839f9bb6c27fc7b5";
+      md5 = "e472a3a1c2a67bb0ec9b5d54c13a47d6";
     };
 
     # error: invalid command 'test'
@@ -1489,7 +1511,7 @@ rec {
       md5 = "d329f5cb2053fd31dafc02e2c9ef0299";
     };
 
-    buildInputs = [ pkgs.libffi pycparser ];
+    propagatedBuildInputs = [ pkgs.libffi pycparser ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -1618,6 +1640,7 @@ rec {
 
   darcsver = buildPythonPackage (rec {
     name = "darcsver-1.7.4";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/d/darcsver/${name}.tar.gz";
@@ -1723,6 +1746,36 @@ rec {
       platforms = stdenv.lib.platforms.all;
     };
   };
+  
+  deform2 = buildPythonPackage rec {
+    name = "deform-2.0a2";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/d/deform/${name}.tar.gz";
+      sha256 = "1gfaf1d8zp0mp4h229srlffxdp86w1nni9g4aqsshxysr23x591z";
+    };
+
+    buildInputs = [] ++ optional isPy26 unittest2;
+
+    propagatedBuildInputs =
+      [ pythonPackages.beautifulsoup4
+        pythonPackages.peppercorn
+        pythonPackages.colander
+        pythonPackages.translationstring
+        pythonPackages.chameleon
+        pythonPackages.zope_deprecation
+        pythonPackages.coverage
+        pythonPackages.nose
+      ];
+
+    meta = {
+      maintainers = [
+        stdenv.lib.maintainers.garbas
+        stdenv.lib.maintainers.iElectric
+      ];
+      platforms = stdenv.lib.platforms.all;
+    };
+  };
 
 
   deform_bootstrap = buildPythonPackage rec {
@@ -1821,6 +1874,7 @@ rec {
 
   dpkt = buildPythonPackage rec {
     name = "dpkt-1.8";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "https://dpkt.googlecode.com/files/${name}.tar.gz";
@@ -1884,12 +1938,13 @@ rec {
 
 
   evdev = buildPythonPackage rec {
-    version = "0.3.2";
+    version = "0.4.5";
     name = "evdev-${version}";
+    disabled = isPy34;  # see http://bugs.python.org/issue21121
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/e/evdev/${name}.tar.gz";
-      sha256 = "07gmynz764sln2sq18aafx13yawkv5nkqrkk06rj71sq71fsr9h9";
+      sha256 = "0w8ib3ab4mpfc1rvd335l8xkd41qbh3iyb0vfiiapgcfvqk74aq7";
     };
 
     buildInputs = [ pkgs.linuxHeaders ];
@@ -1909,12 +1964,12 @@ rec {
 
 
   eyeD3 = buildPythonPackage rec {
-    version = "0.7.2";
+    version = "0.7.4";
     name    = "eyeD3-${version}";
 
     src = fetchurl {
-      url = http://eyed3.nicfit.net/releases/eyeD3-0.7.2.tgz;
-      sha256 = "1r0vxdflrj83s8jc5f2qg4p00k37pskn3djym0w73bvq167vkxar";
+      url = "http://eyed3.nicfit.net/releases/${name}.tgz";
+      sha256 = "001hzgqqnf2ig432mq78jsxidpky2rl2ilm28xwjp32vzphycf51";
     };
 
     buildInputs = [ paver ];
@@ -1950,14 +2005,34 @@ rec {
       md5 = "be885ccd9612966bb81839670d2da099";
     };
 
+    doCheck = !isPy3k;  # failures..
+
     meta = {
       description = "rapid multi-Python deployment";
       license = stdenv.lib.licenses.gpl2;
     };
   };
 
+  facebook-sdk = buildPythonPackage rec {
+    name = "facebook-sdk-0.4.0";
+    
+    disabled = isPy3k;
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/f/facebook-sdk/facebook-sdk-0.4.0.tar.gz";
+      md5 = "ac9f38e197e54b8ba9f3a61988cc33b7";
+    };
+
+    meta = with pkgs.stdenv.lib; {
+      description = "Client library that supports the Facebook Graph API and the official Facebook JavaScript SDK.";
+      homepage = https://github.com/pythonforfacebook/facebook-sdk;
+      license = licenses.asl20 ;
+    };
+  };
+
   faker = buildPythonPackage rec {
     name = "faker-0.0.4";
+    disabled = isPy3k;
     src = fetchurl {
       url = https://pypi.python.org/packages/source/F/Faker/Faker-0.0.4.tar.gz;
       sha256 = "09q5jna3j8di0gw5yjx0dvlndkrk2x9vvqzwyfsvg3nlp8h38js1";
@@ -1988,11 +2063,13 @@ rec {
   };
 
   fabric = buildPythonPackage rec {
-    name = "fabric-1.6.1";
+    name = "fabric-${version}";
+    version = "1.9.1";
     src = fetchurl {
-      url = https://pypi.python.org/packages/source/F/Fabric/Fabric-1.6.1.tar.gz;
-      sha256 = "058psbhqbfm3n214wkyfpgm069yqmdqw1hql9bac1yv9pza3bzx1";
+      url = "https://pypi.python.org/packages/source/F/Fabric/Fabric-${version}.tar.gz";
+      sha256 = "103mzf0l15kyvw5nmf7bsdrqg6y3wpyxmkyl2h9lk7jxb5gdc9s1";
     };
+    disabled = isPy3k;
     propagatedBuildInputs = [ paramiko pycrypto ];
     buildInputs = [ fudge nose ];
   };
@@ -2094,6 +2171,7 @@ rec {
   googlecl = buildPythonPackage rec {
     version = "0.9.14";
     name    = "googlecl-${version}";
+    disabled = isPy3k;
 
     src = fetchurl {
       url    = "https://googlecl.googlecode.com/files/${name}.tar.gz";
@@ -2113,19 +2191,34 @@ rec {
 
   gtimelog = buildPythonPackage rec {
     name = "gtimelog-${version}";
-    version = "0.8.1";
+    version = "0.9.1";
+    
+    disabled = isPy26;
 
     src = fetchurl {
       url = "https://github.com/gtimelog/gtimelog/archive/${version}.tar.gz";
-      sha256 = "0nwpfv284b26q97mfpagqkqb4n2ilw46cx777qsyi3plnywk1xa0";
+      sha256 = "0qk8fv8cszzqpdi3wl9vvkym1jil502ycn6sic4jrxckw5s9jsfj";
     };
+    
+    preBuild = ''
+      export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive
+      export LC_ALL="en_US.UTF-8"
+    '';
 
-    propagatedBuildInputs = [ pygtk ];
+    # TODO: AppIndicator
+    propagatedBuildInputs = [ pkgs.gobjectIntrospection pygobject3 pkgs.makeWrapper pkgs.gtk3 ];
 
     checkPhase = ''
-      patchShebangs ./runtests
+      substituteInPlace runtests --replace "/usr/bin/env python" "${python}/bin/${python.executable}"
       ./runtests
     '';
+    
+    preFixup = ''
+        wrapProgram $out/bin/gtimelog \
+          --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+          --prefix LD_LIBRARY_PATH ":" "${pkgs.gtk3}/lib" \
+     
+    '';
 
     meta = with stdenv.lib; {
       description = "A small Gtk+ app for keeping track of your time. It's main goal is to be as unintrusive as possible";
@@ -2154,6 +2247,7 @@ rec {
   koji = buildPythonPackage (rec {
     name = "koji-1.8";
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "https://fedorahosted.org/released/koji/koji-1.8.0.tar.bz2";
@@ -2269,12 +2363,17 @@ rec {
 
 
   pyramid = buildPythonPackage rec {
-    name = "pyramid-1.5";
+    name = "pyramid-1.5.1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyramid/${name}.tar.gz";
-      md5 = "8747658dcbab709a9c491e43d3b0d58b";
+      md5 = "8a1ab3b773d8e22437828f7df22852c1";
     };
+    
+    preCheck = ''
+      # test is failing, see https://github.com/Pylons/pyramid/issues/1405
+      rm pyramid/tests/test_response.py
+    '';
 
     buildInputs = [
       docutils
@@ -2323,11 +2422,11 @@ rec {
 
 
   pyramid_chameleon = buildPythonPackage rec {
-    name = "pyramid_chameleon-0.1";
+    name = "pyramid_chameleon-0.3";
 
     src = pkgs.fetchurl {
       url = "https://pypi.python.org/packages/source/p/pyramid_chameleon/${name}.tar.gz";
-      md5 = "39b1327a9890f382200bbfde943833d7";
+      md5 = "5bb5938356dfd13fce06e095f132e137";
     };
 
     propagatedBuildInputs = [
@@ -2498,14 +2597,14 @@ rec {
 
 
   hypatia = buildPythonPackage rec {
-    name = "hypatia-0.1a6";
+    name = "hypatia-0.3";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/h/hypatia/${name}.tar.gz";
-      md5 = "3a67683c578754cd8f23317db6d28ffd";
+      md5 = "d74c6dda31ff459a39fa5da9e98f2425";
     };
 
-    buildInputs = [ zope_interface zodb3 ];
+    buildInputs = [ zope_interface zodb ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -2546,15 +2645,18 @@ rec {
 
 
   pyramid_zodbconn = buildPythonPackage rec {
-    name = "pyramid_zodbconn-0.4";
+    name = "pyramid_zodbconn-0.7";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyramid_zodbconn/${name}.tar.gz";
-      md5 = "22e88cc82cafbbe00274e7378434e5fe";
+      md5 = "3c7746a227fbcda3e138ab8bfab7700b";
     };
+    
+    # should be fixed in next release
+    doCheck = false;
 
     buildInputs = [ pyramid mock ];
-    propagatedBuildInputs = [ zodb3 zodburi ];
+    propagatedBuildInputs = [ zodb zodburi ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
@@ -2617,30 +2719,54 @@ rec {
 
 
   zodburi = buildPythonPackage rec {
-    name = "zodburi-2.0b1";
+    name = "zodburi-2.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zodburi/${name}.tar.gz";
-      md5 = "52cc13c32ffe4ee7b5f5abc79f70f3c2";
+      md5 = "7876893829c2f784506c80d49f861b67";
     };
 
-    buildInputs = [ zodb3 mock ];
+    buildInputs = [ zodb mock ZEO ];
 
     meta = {
       maintainers = [ stdenv.lib.maintainers.iElectric ];
     };
   };
+  
+  ZEO = pythonPackages.buildPythonPackage rec {
+    name = "ZEO-4.0.0";
+
+    propagatedBuildInputs = [ random2 zodb six transaction persistent zc_lockfile zconfig zdaemon zope_interface ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/Z/ZEO/${name}.tar.gz";
+      md5 = "494d8320549185097ba4a6b6b76017d6";
+    };
+
+    meta = with stdenv.lib; {
+      homepage = https://pypi.python.org/pypi/ZEO;
+    };
+  };
+  
+  random2 = pythonPackages.buildPythonPackage rec {
+    name = "random2-1.0.1";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/r/random2/${name}.zip";
+      md5 = "48a0a86fe00e447212d0095de8cf3e21";
+    };
+  };
 
 
   substanced = buildPythonPackage rec {
     # no release yet
-    rev = "bd8822be62f0f356e4e44d5c614fe14d3fa08f45";
+    rev = "089818bc61c3dc5eca023254e37a280b041ea8cc";
     name = "substanced-${rev}";
 
     src = fetchgit {
       inherit rev;
       url = "https://github.com/Pylons/substanced.git";
-      sha256 = "eded6468563328af37a07aeb88ef81ed78ccaff2ab687cac34ad2b36e19abcb4";
+      sha256 = "17s7sdvydw9a9d2d36c70lq962ryny3dv9nzdxqpfvwiry9iy3jx";
     };
 
     buildInputs = [ mock ];
@@ -2648,11 +2774,10 @@ rec {
     propagatedBuildInputs = [
       pyramid
       pytz
-      zodb3
+      zodb
       venusian
       colander
-      deform
-      deform_bootstrap
+      deform2
       python_magic
       pyyaml
       cryptacular
@@ -2663,6 +2788,8 @@ rec {
       statsd
       pyramid_zodbconn
       pyramid_mailer
+      pyramid_chameleon
+      ZEO
     ];
 
     meta = with stdenv.lib; {
@@ -2730,7 +2857,16 @@ rec {
     };
   };
 
+  zope_tales = buildPythonPackage rec {
+    name = "zope.tales-4.0.2";
+
+    propagatedBuildInputs = [ zope_interface six zope_testrunner ];
 
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/z/zope.tales/${name}.zip";
+      md5 = "902b03a5f9774f6e2decf3f06d18a09d";
+    };
+  };
 
 
   zope_deprecation = buildPythonPackage rec {
@@ -2876,11 +3012,11 @@ rec {
 
   django_1_6 = buildPythonPackage rec {
     name = "Django-${version}";
-    version = "1.6.3";
+    version = "1.6.6";
 
     src = fetchurl {
       url = "http://www.djangoproject.com/m/releases/1.6/${name}.tar.gz";
-      sha256 = "1wdqb2x0w0c10annbyz7rrrgrv9mpa9f8pz8006lf2csix33r7bd";
+      sha256 = "143yp984n8a2bs1dflxjp1s7skmji0cwkw05s9ikbfikwmabsv2k";
     };
 
     # error: invalid command 'test'
@@ -2894,11 +3030,11 @@ rec {
 
   django_1_5 = buildPythonPackage rec {
     name = "Django-${version}";
-    version = "1.5.6";
+    version = "1.5.9";
 
     src = fetchurl {
       url = "http://www.djangoproject.com/m/releases/1.5/${name}.tar.gz";
-      sha256 = "1bxzz71sfvh0zgdzv4x3wdr4ffzd5cfnvq7iq2g1i282sacwnzwv";
+      sha256 = "1lm0pa6m9f4cd6pv239lqj32z1snf8xjbvlbh8bqihs6a1f51kj7";
     };
 
     # error: invalid command 'test'
@@ -2912,11 +3048,11 @@ rec {
 
   django_1_4 = buildPythonPackage rec {
     name = "Django-${version}";
-    version = "1.4.11";
+    version = "1.4.14";
 
     src = fetchurl {
       url = "http://www.djangoproject.com/m/releases/1.4/${name}.tar.gz";
-      sha256 = "00f2jlls3fhddrg7q4sjkwj6dmclh28n0vqm1m7kzcq5fjrxh6a8";
+      sha256 = "173ci9ml2vs1z2x51wahssfn8mrmhd02varmg9kibm8z460svvc1";
     };
 
     # error: invalid command 'test'
@@ -2948,13 +3084,14 @@ rec {
 
   django_evolution = buildPythonPackage rec {
     name = "django_evolution-0.6.9";
+    disabled = isPy3k;
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/d/django_evolution/${name}.tar.gz";
+      url = "http://downloads.reviewboard.org/releases/django-evolution/${name}.tar.gz";
       md5 = "c0d7d10bc41898c88b14d434c48766ff";
     };
 
-    propagatedBuildInputs = [ django_1_3 ];
+    propagatedBuildInputs = [ django_1_5 ];
 
     meta = {
       description = "A database schema evolution tool for the Django web framework";
@@ -3002,6 +3139,7 @@ rec {
 
   dulwich = buildPythonPackage rec {
     name = "dulwich-0.8.7";
+    disabled = isPy3k || isPyPy;
 
     src = fetchurl {
       url = "http://samba.org/~jelmer/dulwich/${name}.tar.gz";
@@ -3128,11 +3266,14 @@ rec {
 
   enum = buildPythonPackage rec {
     name = "enum-0.4.4";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/e/enum/${name}.tar.gz";
       md5 = "ce75c7c3c86741175a84456cc5bd531e";
     };
+    
+    doCheck = !isPyPy;
 
     buildInputs = [ ];
 
@@ -3172,11 +3313,11 @@ rec {
 
 
   eventlet = buildPythonPackage rec {
-    name = "eventlet-0.9.16";
+    name = "eventlet-0.15.1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/e/eventlet/${name}.tar.gz";
-      md5 = "4728e3bd7f72763c1e5dccac0296f8ea";
+      md5 = "7155780824bb6344651a573838416f21";
     };
 
     buildInputs = [ nose httplib2  ];
@@ -3253,6 +3394,7 @@ rec {
 
   flexget = buildPythonPackage rec {
     name = "FlexGet-1.2.161";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/F/FlexGet/${name}.tar.gz";
@@ -3301,15 +3443,19 @@ rec {
   });
 
   jsonschema = buildPythonPackage (rec {
-    version = "2.0.0";
+    version = "2.4.0";
     name = "jsonschema-${version}";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/j/jsonschema/jsonschema-${version}.tar.gz";
-      md5 = "1793d97a668760ef540fadd342aa08e5";
+      md5 = "661f85c3d23094afbb9ac3c0673840bf";
     };
 
     buildInputs = [ nose mock ];
+    
+    patchPhase = ''
+      substituteInPlace jsonschema/tests/test_jsonschema_test_suite.py --replace "python" "${python}/bin/${python.executable}"
+    '';
 
     checkPhase = ''
       nosetests
@@ -3325,6 +3471,7 @@ rec {
 
   flup = buildPythonPackage (rec {
     name = "flup-1.0.2";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://www.saddi.com/software/flup/dist/${name}.tar.gz";
@@ -3368,11 +3515,11 @@ rec {
   });
 
   fs = buildPythonPackage rec {
-    name = "fs-0.4.0";
+    name = "fs-0.5.0";
 
     src = fetchurl {
-      url    = "https://pyfilesystem.googlecode.com/files/fs-0.4.0.tar.gz";
-      sha256 = "1fk7ilwd01qgj4anw9k1vjp0amxswzzxbp6bk4nncp7210cxp3vz";
+      url    = "https://pypi.python.org/packages/source/f/fs/${name}.tar.gz";
+      sha256 = "144f4yn2nvnxh2vrnmiabpwx3s637np0d1j1w95zym790d66shir";
     };
 
     meta = with stdenv.lib; {
@@ -3391,6 +3538,7 @@ rec {
     baseName = "fuse";
     version = "0.2.1";
     name = "${baseName}-${version}";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "mirror://sourceforge/fuse/fuse-python-${version}.tar.gz";
@@ -3405,6 +3553,23 @@ rec {
     };
   });
 
+  futures = buildPythonPackage rec {
+    name = "futures-2.1.6";
+
+    propagatedBuildInputs = with pythonPackages; [  ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/f/futures/futures-2.1.6.tar.gz";
+      md5 = "cfab9ac3cd55d6c7ddd0546a9f22f453";
+    };
+
+    meta = with pkgs.stdenv.lib; {
+      description = "Backport of the concurrent.futures package from Python 3.2";
+      homepage = http://code.google.com/p/pythonfutures;
+      license = licenses.bsd2;
+    };
+  };
+
   gcovr = buildPythonPackage rec {
     name = "gcovr-2.4";
 
@@ -3447,14 +3612,15 @@ rec {
   };
 
   gevent = buildPythonPackage rec {
-    name = "gevent-0.13.8";
-
+    name = "gevent-1.0.1";
+    disabled = isPy3k;
+    
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/g/gevent/${name}.tar.gz";
-      sha256 = "0plmxnb53qbxxf6macq84dvclsiyrpv3xrm32q4qqh6f01ix5f2l";
+      sha256 = "0hyzfb0gcx9pm5c2igan8y57hqy2wixrwvdjwsaivxsqs0ay49s6";
     };
 
-    buildInputs = [ pkgs.libevent ];
+    buildInputs = [ pkgs.libev ];
     propagatedBuildInputs = [ greenlet ];
 
     meta = with stdenv.lib; {
@@ -3574,12 +3740,15 @@ rec {
 
   goobook = buildPythonPackage rec {
     name = "goobook-1.5";
+    disabled = isPy3k;
 
     src = fetchurl {
       url    = "https://pypi.python.org/packages/source/g/goobook/${name}.tar.gz";
       sha256 = "05vpriy391l5i05ckl5ja5bswqyvl3rwrbmks9pi46w1813j7p5z";
     };
 
+    buildInputs = [ six ];
+
     preConfigure = ''
       sed -i '/distribute/d' setup.py
     '';
@@ -3615,6 +3784,7 @@ rec {
 
    google_apputils = buildPythonPackage rec {
     name = "google-apputils-0.4.0";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = http://pypi.python.org/packages/source/g/google-apputils/google-apputils-0.4.0.tar.gz;
@@ -3630,11 +3800,11 @@ rec {
   };
 
   greenlet = buildPythonPackage rec {
-    name = "greenlet-0.3.1";
+    name = "greenlet-0.4.3";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/g/greenlet/${name}.tar.gz";
-      md5 = "8d75d7f3f659e915e286e1b0fa0e1c4d";
+      url = "http://pypi.python.org/packages/source/g/greenlet/${name}.zip";
+      md5 = "a5e467a5876c415cd357c1ab9027e06c";
     };
 
     meta = {
@@ -3682,13 +3852,20 @@ rec {
   };
 
   hcs_utils = buildPythonPackage rec {
-    name = "hcs_utils-1.3";
+    name = "hcs_utils-1.5";
 
     src = fetchurl {
-      url    = "https://pypi.python.org/packages/source/h/hcs_utils/hcs_utils-1.3.tar.gz";
-      sha256 = "0mcjfc0ssil86i74dg323z7mikkw1xazqyr92347x1y33zyffgxh";
+      url    = "https://pypi.python.org/packages/source/h/hcs_utils/${name}.tar.gz";
+      sha256 = "1d2za9crkgzildx610w3zif2i8phcqhh6n8nzg3yvy2mg0s18mkl";
     };
 
+    preBuild = ''
+      export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive
+      export LC_ALL="en_US.UTF-8"
+    '';
+
+    buildInputs = [ six ];
+
     meta = with stdenv.lib; {
       description = "Library collecting some useful snippets";
       homepage    = https://pypi.python.org/pypi/hcs_utils/1.3;
@@ -3761,6 +3938,7 @@ rec {
 
   http_signature = buildPythonPackage (rec {
     name = "http_signature-0.1.4";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/h/http_signature/${name}.tar.gz";
@@ -3795,11 +3973,11 @@ rec {
   };
 
   httplib2 = buildPythonPackage rec {
-    name = "httplib2-0.9";
+    name = "httplib2-0.8";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/h/httplib2/${name}.tar.gz";
-      sha256 = "1asi5wpncnc6ki3bz33mhb9xh2lrkb24y4qng8bmqnczdmm8rsir";
+      sha256 = "174w6rz4na1sdlfz37h95l0pkfm9igf9nqmhbd8aqh3sm7d9zrff";
     };
 
     meta = {
@@ -3813,6 +3991,7 @@ rec {
   httpretty = buildPythonPackage rec {
     name = "httpretty-${version}";
     version = "0.8.3";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/h/httpretty/${name}.tar.gz";
@@ -3852,13 +4031,15 @@ rec {
   }) else null;
 
   iptools = buildPythonPackage rec {
-    version = "0.4.0";
+    version = "0.6.1";
     name = "iptools-${version}";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/i/iptools/iptools-${version}.tar.gz";
-      md5 = "de60e5fab861f29dbf5f4446f8576532";
+      md5 = "aed4045638fd40c16f8d9bb04606f700";
     };
+    
+    buildInputs = [ nose ];
 
     meta = {
       description = "Utilities for manipulating IP addresses including a class that can be used to include CIDR network blocks in Django's INTERNAL_IPS setting.";
@@ -3886,10 +4067,12 @@ rec {
   };
 
 
-  ipaddr = buildPythonPackage {
+  ipaddr = buildPythonPackage rec {
     name = "ipaddr-2.1.10";
+    disabled = isPy3k;
+
     src = fetchurl {
-      url = "http://ipaddr-py.googlecode.com/files/ipaddr-2.1.10.tar.gz";
+      url = "http://pypi.python.org/packages/source/i/ipaddr/${name}.tar.gz";
       sha256 = "18ycwkfk3ypb1yd09wg20r7j7zq2a73d7j6j10qpgra7a7abzhyj";
     };
 
@@ -3996,6 +4179,9 @@ rec {
       sha256 = "1flccphpyrb8y8dra2fq2s2v3fg615d77kjjmzl0gmiidabkkdqf";
     };
 
+    buildInputs =
+      [ fs gdata python_keyczar mock pyasn1 pycrypto pytest six ];
+
     meta = with stdenv.lib; {
       description = "Store and access your passwords safely";
       homepage    = "https://pypi.python.org/pypi/keyring";
@@ -4003,13 +4189,12 @@ rec {
       maintainers = with maintainers; [ lovek323 ];
       platforms   = platforms.unix;
     };
-
-    buildInputs =
-      [ fs gdata python_keyczar mock pyasn1 pycrypto pytest ];
   };
 
   kitchen = buildPythonPackage (rec {
     name = "kitchen-1.1.1";
+    disabled = isPy3k;
+
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
 
     src = fetchurl {
@@ -4148,11 +4333,11 @@ rec {
 
 
   python_magic = buildPythonPackage rec {
-    name = "python-magic-0.4.3";
+    name = "python-magic-0.4.6";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/python-magic/${name}.tar.gz";
-      md5 = "eec9e2b1bcaf43308b7dacb3f2ecd8c1";
+      md5 = "07e7a0fea78dd81ed609414c3484df58";
     };
 
     propagatedBuildInputs = [ pkgs.file ];
@@ -4160,6 +4345,8 @@ rec {
     patchPhase = ''
       substituteInPlace magic.py --replace "ctypes.CDLL(dll)" "ctypes.CDLL('${pkgs.file}/lib/libmagic.so')"
     '';
+    
+    doCheck = false;
 
     # TODO: tests are failing
     #checkPhase = ''
@@ -4249,11 +4436,11 @@ rec {
 
   manuel = buildPythonPackage rec {
     name = "manuel-${version}";
-    version = "1.6.1";
+    version = "1.8.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/m/manuel/${name}.tar.gz";
-      sha256 = "1h35ys31zkjd9jssqn9lzwmw8s17ikr4jn2xp5zby1v771ibbbqr";
+      sha256 = "1diyj6a8bvz2cdf9m0g2bbx9z2yjjnn3ylbg1zinpcjj6vldfx59";
     };
 
     propagatedBuildInputs = [ six zope_testing ];
@@ -4296,7 +4483,7 @@ rec {
 
     propagatedBuildInputs =
       [ dateutil nose numpy pyparsing tornado pkgs.freetype pkgs.libpng pkgs.pkgconfig
-        pygtk ];
+      ];
 
     meta = with stdenv.lib; {
       description = "python plotting library, making publication quality plots";
@@ -4328,6 +4515,7 @@ rec {
 
   mechanize = buildPythonPackage (rec {
     name = "mechanize-0.1.11";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://wwwsearch.sourceforge.net/mechanize/src/${name}.tar.gz";
@@ -4365,11 +4553,14 @@ rec {
 
 
   memcached = buildPythonPackage rec {
-    name = "memcached-1.48";
+    name = "memcached-1.51";
 
-    src = fetchurl {
-      url = "ftp://ftp.tummy.com/pub/python-memcached/old-releases/python-memcached-1.48.tar.gz";
-      sha256 = "1i0h05z9j0zl65rgvw86p4f54pigkxynhzppn4qxby8rjlnwdfv6";
+    src = if isPy3k then fetchurl {
+      url = "https://pypi.python.org/packages/source/p/python3-memcached/python3-${name}.tar.gz";
+      sha256 = "0na8b369q8fivh3y0nvzbvhh3lgvxiyyv9xp93cnkvwfsr8mkgkw";
+    } else fetchurl {
+      url = "http://ftp.tummy.com/pub/python-memcached/old-releases/python-${name}.tar.gz";
+      sha256 = "124s98m6hvxj6x90d7aynsjfz878zli771q96ns767r2mbqn7192";
     };
 
     meta = {
@@ -4464,8 +4655,10 @@ rec {
     };
   });
 
-  moinmoin = let ver="1.9.7"; in buildPythonPackage (rec {
+  moinmoin = buildPythonPackage (rec {
     name = "moinmoin-${ver}";
+    disabled = isPy3k;
+    ver = "1.9.7";
 
     src = fetchurl {
       url = "http://static.moinmo.in/files/moin-${ver}.tar.gz";
@@ -4521,6 +4714,23 @@ rec {
   };
 
 
+  mpd = buildPythonPackage rec {
+    name = "python-mpd-0.3.0";
+
+    disabled = isPy3k;
+    
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/p/python-mpd/python-mpd-0.3.0.tar.gz";
+      md5 = "5b3849b131e2fb12f251434597d65635";
+    };
+
+    meta = with pkgs.stdenv.lib; {
+      description = "An MPD (Music Player Daemon) client library written in pure Python.";
+      homepage = http://jatreuman.indefero.net/p/python-mpd/;
+      license = licenses.gpl3;
+    };
+  };
+
   mrbob = buildPythonPackage rec {
     name = "mrbob-${version}";
     version = "0.1.1";
@@ -4547,11 +4757,11 @@ rec {
 
 
   munkres = buildPythonPackage rec {
-    name = "munkres-1.0.5.4";
+    name = "munkres-1.0.6";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/m/munkres/${name}.tar.gz";
-      md5 = "cb9d114fb523428bab4742e88bc83696";
+      md5 = "d7ba3b8c5001578ae229a2d5a655872f";
     };
 
     # error: invalid command 'test'
@@ -4573,6 +4783,11 @@ rec {
       url = "http://pypi.python.org/packages/source/m/musicbrainzngs/${name}.tar.gz";
       md5 = "9e17a181af72d04a291c9a960bc73d44";
     };
+    
+    preCheck = ''
+      export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive
+      export LC_ALL="en_US.UTF-8"
+    '';
 
     meta = {
       homepage = http://alastair/python-musicbrainz-ngs;
@@ -4604,6 +4819,7 @@ rec {
 
   muttils = buildPythonPackage (rec {
     name = "muttils-1.3";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = http://www.blacktrash.org/hg/muttils/archive/8bb26094df06.tar.bz2;
@@ -4623,6 +4839,8 @@ rec {
 
   MySQL_python = buildPythonPackage {
     name = "MySQL-python-1.2.3";
+    
+    disabled = isPy3k;
 
     # plenty of failing tests
     doCheck = false;
@@ -4664,6 +4882,7 @@ rec {
 
   namebench = buildPythonPackage (rec {
     name = "namebench-1.0.5";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://namebench.googlecode.com/files/${name}.tgz";
@@ -4732,12 +4951,12 @@ rec {
   };
 
   netifaces = buildPythonPackage rec {
-    version = "0.8";
+    version = "0.10.4";
     name = "netifaces-${version}";
 
     src = fetchurl {
-      url = "http://alastairs-place.net/projects/netifaces/${name}.tar.gz";
-      sha256 = "1v5i39kx4yz1pwgjfbzi63w55l2z318zgmi9f77ybmmkil1i39sk";
+      url = "http://pypi.python.org/packages/source/n/netifaces/${name}.tar.gz";
+      sha256 = "1plw237a4zib4z8s62g0mrs8gm3kjfrp5sxh6bbk9nl3rdls2mln";
     };
 
     meta = {
@@ -4749,6 +4968,7 @@ rec {
   netlib = buildPythonPackage rec {
     baseName = "netlib";
     name = "${baseName}-${meta.version}";
+    disabled = (!isPy27);
 
     src = fetchurl {
       url = "https://github.com/cortesi/netlib/archive/v${meta.version}.tar.gz";
@@ -4866,18 +5086,6 @@ rec {
     doCheck = false;
   });
 
-  nose2Cov = if isPy26 then null else (buildPythonPackage rec {
-    name = "nose2-cov-1.0a4";
-    src = fetchurl {
-      url = "http://pypi.python.org/packages/source/n/nose2-cov/nose2-cov-1.0a4.tar.gz";
-      md5 = "6442f03e2ea732b0e38eb5b00fbe0b31";
-    };
-    meta = {
-      description = "nose2 plugin for coverage reporting, including subprocesses and multiprocessing";
-    };
-    propagatedBuildInputs = [ covCore nose2 ];
-  });
-
   nosejs = buildPythonPackage {
     name = "nosejs-0.9.4";
     src = fetchurl {
@@ -4889,6 +5097,7 @@ rec {
 
   nose-cprof = buildPythonPackage rec {
     name = "nose-cprof-0.1-0";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/n/nose-cprof/${name}.tar.gz";
@@ -5070,6 +5279,7 @@ rec {
 
   oauth2 = buildPythonPackage (rec {
     name = "oauth2-1.5.211";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/o/oauth2/oauth2-1.5.211.tar.gz";
@@ -5205,6 +5415,7 @@ rec {
 
   osc = buildPythonPackage (rec {
     name = "osc-0.133+git";
+    disabled = isPy3k;
 
     src = fetchgit {
       url = git://gitorious.org/opensuse/osc.git;
@@ -5212,7 +5423,7 @@ rec {
       sha256 = "a39ce0e321e40e9758bf7b9128d316c71b35b80eabc84f13df492083bb6f1cc6";
     };
 
-    buildPhase = "python setup.py build";
+    buildPhase = "${python}/bin/${python.executable} setup.py build";
     doCheck = false;
     postInstall = "ln -s $out/bin/osc-wrapper.py $out/bin/osc";
 
@@ -5244,16 +5455,19 @@ rec {
   };
 
   paramiko = buildPythonPackage rec {
-    name = "paramiko-1.12.1";
+    name = "paramiko-1.14.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/paramiko/${name}.tar.gz";
-      md5 = "ae4544dc0a1419b141342af89fcf0dd9";
+      md5 = "e26324fd398af68ad506fe98853835c3";
     };
 
     propagatedBuildInputs = [ pycrypto ecdsa ];
 
-    checkPhase = "python test.py";
+    # tests failures since 1.14.0 release..
+    doCheck = false;
+    
+    checkPhase = "${python}/bin/${python.executable} test.py";
 
     meta = {
       homepage = "https://github.com/paramiko/paramiko/";
@@ -5273,6 +5487,7 @@ rec {
 
   paste = buildPythonPackage rec {
     name = "paste-1.7.5.1";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = http://pypi.python.org/packages/source/P/Paste/Paste-1.7.5.1.tar.gz;
@@ -5291,12 +5506,12 @@ rec {
 
 
   paste_deploy = buildPythonPackage rec {
-    version = "1.5.0";
+    version = "1.5.2";
     name = "paste-deploy-${version}";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/P/PasteDeploy/PasteDeploy-${version}.tar.gz";
-      md5 = "f1a068a0b680493b6eaff3dd7690690f";
+      md5 = "352b7205c78c8de4987578d19431af3b";
     };
 
     buildInputs = [ nose ];
@@ -5401,11 +5616,11 @@ rec {
 
 
   pg8000 = buildPythonPackage rec {
-    name = "pg8000-1.09";
+    name = "pg8000-1.9.14";
 
     src = fetchurl {
-      url = "http://pg8000.googlecode.com/files/${name}.zip";
-      sha256 = "0kdc4rg47k1qkq22inghd50xlxjdkfcilym8mxff8wy4h091xykw";
+      url = "http://pypi.python.org/packages/source/p/pg8000/${name}.tar.gz";
+      sha256 = "1vandvfaf1m3a1fbc7nbm6syfqr9bazhzsnmai0jpjkbmb349izs";
     };
 
     propagatedBuildInputs = [ pytz ];
@@ -5432,6 +5647,7 @@ rec {
 
   pika = buildPythonPackage {
     name = "pika-0.9.12";
+    disabled = isPy3k;
     src = fetchurl {
       url = https://pypi.python.org/packages/source/p/pika/pika-0.9.12.tar.gz;
       md5 = "7174fc7cc5570314fa3cfaa729106482";
@@ -5440,6 +5656,49 @@ rec {
 
     propagatedBuildInputs = [ unittest2 ];
   };
+  
+  pil = buildPythonPackage rec {
+    name = "PIL-${version}";
+    version = "1.1.7";
+    
+    src = fetchurl {
+      url = "http://effbot.org/downloads/Imaging-${version}.tar.gz";
+      sha256 = "04aj80jhfbmxqzvmq40zfi4z3cw6vi01m3wkk6diz3lc971cfnw9";
+    };
+  
+    buildInputs = [ python pkgs.libjpeg pkgs.zlib pkgs.freetype ];
+  
+    disabled = isPy3k;
+  
+    doCheck = true;
+  
+    preConfigure = ''
+      sed -i "setup.py" \
+          -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = libinclude("${pkgs.freetype}")|g ;
+              s|^JPEG_ROOT =.*$|JPEG_ROOT = libinclude("${pkgs.libjpeg}")|g ;
+              s|^ZLIB_ROOT =.*$|ZLIB_ROOT = libinclude("${pkgs.zlib}")|g ;'
+    '';
+  
+    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
+    '';
+  
+    meta = {
+      homepage = http://www.pythonware.com/products/pil/;
+      description = "The Python Imaging Library (PIL)";
+      longDescription = ''
+        The Python Imaging Library (PIL) adds image processing
+        capabilities to your Python interpreter.  This library
+        supports many file formats, and provides powerful image
+        processing and graphics capabilities.
+      '';
+      license = "http://www.pythonware.com/products/pil/license.htm";
+    };
+  };
 
 
   pillow = buildPythonPackage rec {
@@ -5496,11 +5755,11 @@ rec {
 
   polib = buildPythonPackage rec {
     name = "polib-${version}";
-    version = "1.0.1";
+    version = "1.0.4";
 
     src = fetchurl {
       url = "http://bitbucket.org/izi/polib/downloads/${name}.tar.gz";
-      sha256 = "1sr2bb3g7rl7gr6156j5qv71kg06q1x01r1lbps9ksnyz37djn2q";
+      sha256 = "16klwlswfbgmkzrra80fgzhic9447pk3mnr75r2fkz72bkvpcclb";
     };
 
     # error: invalid command 'test'
@@ -5562,6 +5821,11 @@ rec {
       url = "http://pypi.python.org/packages/source/P/PrettyTable/${name}.tar.bz2";
       sha1 = "ad346a18d92c1d95f2295397c7a8a4f489e48851";
     };
+    
+    preCheck = ''
+      export LANG="en_US.UTF-8"
+      export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive
+    '';
 
     meta = {
       description = "Simple Python library for easily displaying tabular data in a visually appealing ASCII table format";
@@ -5573,8 +5837,9 @@ rec {
   protobuf = buildPythonPackage rec {
     inherit (pkgs.protobuf) name src;
 
-    propagatedBuildInputs = [ pkgs.protobuf setuptools ];
+    propagatedBuildInputs = [ pkgs.protobuf google_apputils  ];
     sourceRoot = "${name}/python";
+    
 
     meta = {
       description = "Protocol Buffers are Google's data interchange format.";
@@ -5602,14 +5867,14 @@ rec {
 
 
   psycopg2 = buildPythonPackage rec {
-    name = "psycopg2-2.5.2";
+    name = "psycopg2-2.5.3";
 
     # error: invalid command 'test'
     doCheck = false;
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/p/psycopg2/${name}.tar.gz";
-      sha256 = "0bmxlmi9k995n6pz16awjaap0y02y1v2d31jbxhkqv510f3jsf2h";
+      sha256 = "02h33barxigsczpympnwa0yvw9hgdv8d63bxm5x251ri26xz6b9s";
     };
 
     propagatedBuildInputs = [ pkgs.postgresql ];
@@ -5693,18 +5958,24 @@ rec {
 
 
   pygit2 = buildPythonPackage rec {
-    name = "pygit2-0.20.0";
+    name = "pygit2-0.21.2";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/p/pygit2/${name}.tar.gz";
-      sha256 = "04132q7bn8k7q7ky7nj3bkza8r9xkzkdpfv462b6rgjsd1x6h340";
+      sha256 = "0lya4v91d4y5fwrb55n8m8avgmz0l81jml2spvx6r7j1czcx3zic";
     };
 
     preConfigure = ( if stdenv.isDarwin then ''
       export DYLD_LIBRARY_PATH="${pkgs.libgit2}/lib"
     '' else "" );
 
-    propagatedBuildInputs = [ pkgs.libgit2 ];
+    propagatedBuildInputs = [ pkgs.libgit2 cffi ];
+
+    preCheck = ''
+      # disable tests that require networking
+      rm test/test_repository.py
+      rm test/test_credentials.py
+    '';
 
     meta = {
       homepage = https://pypi.python.org/pypi/pygit2;
@@ -5815,20 +6086,21 @@ rec {
 
 
   pycurl = buildPythonPackage (rec {
-    name = "pycurl-7.19.0";
+    name = "pycurl-7.19.5";
 
     src = fetchurl {
       url = "http://pycurl.sourceforge.net/download/${name}.tar.gz";
-      sha256 = "0hh6icdbp7svcq0p57zf520ifzhn7jw64x07k99j7h57qpy2sy7b";
+      sha256 = "0hqsap82zklhi5fxhc69kxrwzb0g9566f7sdpz7f9gyxkmyam839";
     };
 
-    buildInputs = [ pkgs.curl ];
+    propagatedBuildInputs = [ pkgs.curl pkgs.openssl ];
 
     # error: invalid command 'test'
     doCheck = false;
 
     preConfigure = ''
       substituteInPlace setup.py --replace '--static-libs' '--libs'
+      export PYCURL_SSL_LIBRARY=openssl
     '';
 
     meta = {
@@ -5841,6 +6113,7 @@ rec {
 
   pycurl2 = buildPythonPackage (rec {
     name = "pycurl2-7.20.0";
+    disabled = isPy3k;
 
     src = fetchgit {
       url = "https://github.com/Lispython/pycurl.git";
@@ -5863,6 +6136,7 @@ rec {
 
   pydot = buildPythonPackage rec {
     name = "pydot-1.0.2";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pydot/${name}.tar.gz";
@@ -5902,6 +6176,8 @@ rec {
     };
 
     buildInputs = [ unittest2 ];
+    
+    doCheck = !isPyPy;
 
     meta = {
       homepage = "https://launchpad.net/pyflakes";
@@ -6121,6 +6397,7 @@ rec {
 
   pyro3 = buildPythonPackage (rec {
     name = "Pyro-3.16";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/P/Pyro/${name}.tar.gz";
@@ -6246,6 +6523,7 @@ rec {
 
   ldap = buildPythonPackage rec {
     name = "ldap-2.4.15";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/python-ldap/python-${name}.tar.gz";
@@ -6370,6 +6648,7 @@ rec {
 
   pyreport = buildPythonPackage (rec {
     name = "pyreport-0.3.4c";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pyreport/${name}.tar.gz";
@@ -6421,6 +6700,7 @@ rec {
 
   pysqlite = buildPythonPackage (rec {
     name = "pysqlite-2.6.3";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/p/pysqlite/${name}.tar.gz";
@@ -6645,11 +6925,11 @@ rec {
   reportlab =
    let freetype = overrideDerivation pkgs.freetype (args: { configureFlags = "--enable-static --enable-shared"; });
    in buildPythonPackage rec {
-    name = "reportlab-2.5";
+    name = "reportlab-3.1.8";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/r/reportlab/${name}.tar.gz";
-      md5 = "cdf8b87a6cf1501de1b0a8d341a217d3";
+      md5 = "820a9fda647078503597b85cdba7ed7f";
     };
 
     buildInputs = [freetype];
@@ -6711,6 +6991,21 @@ rec {
   };
 
 
+  quantities = buildPythonPackage rec {
+    name = "quantities-0.10.1";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/q/quantities/quantities-0.10.1.tar.gz";
+      md5 = "e924e21c0a5ddc9ebcdacbbe511b8ec7";
+    };
+
+    meta = with pkgs.stdenv.lib; {
+      description = "Quantities is designed to handle arithmetic and";
+      homepage = http://packages.python.org/quantities;
+      license = licenses.bsd2;
+    };
+  };
+
   qutip = buildPythonPackage rec {
     name = "qutip-2.2.0";
 
@@ -6720,7 +7015,7 @@ rec {
     };
 
     propagatedBuildInputs = [ numpy scipy matplotlib pkgs.pyqt4
-      pkgs.cython ];
+      cython ];
 
     buildInputs = with pkgs; [ gcc qt4 blas ] ++ [ nose ];
 
@@ -6785,34 +7080,51 @@ rec {
     };
 
     propagatedBuildInputs =
-      [ recaptcha_client pytz memcached dateutil_1_5 paramiko flup pygments
-        djblets django_1_3 django_evolution pycrypto modules.sqlite3
-        pysvn pil psycopg2
+      [ django_1_3 recaptcha_client pytz memcached dateutil_1_5 paramiko flup pygments
+        djblets django_evolution pycrypto modules.sqlite3
+        pysvn pil psycopg2 
       ];
   };
 
 
   rdflib = buildPythonPackage (rec {
-    name = "rdflib-3.0.0";
+    name = "rdflib-4.1.2";
 
     src = fetchurl {
-      url = "http://www.rdflib.net/${name}.tar.gz";
-      sha256 = "1c7ipk5vwqnln83rmai5jzyxkjdajdzbk5cgy1z83nyr5hbkgkqr";
+      url = "https://pypi.python.org/packages/source/r/rdflib/${name}.tar.gz";
+      sha256 = "0kvaf332cqbi47rqzlpdx4mbkvw12mkrzkj8n9l19wk713d4py9w";
     };
 
     # error: invalid command 'test'
     doCheck = false;
+    
+    propagatedBuildInputs = [ isodate ];
 
     meta = {
       description = "RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information.";
       homepage = http://www.rdflib.net/;
     };
   });
+  
+  isodate = buildPythonPackage rec {
+    name = "isodate-0.5.0";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/i/isodate/${name}.tar.gz";
+      md5 = "9a267e9327feb3d021cae26002ba6e0e";
+    };
+
+    meta = with stdenv.lib; {
+      description = "ISO 8601 date/time parser";
+      homepage = http://cheeseshop.python.org/pypi/isodate;
+    };
+  };
 
 
   robotframework = buildPythonPackage rec {
     version = "2.8.5";
     name = "robotframework-${version}";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/r/robotframework/${name}.tar.gz";
@@ -6880,6 +7192,7 @@ rec {
   robotframework-ride = buildPythonPackage rec {
     version = "1.2.3";
     name = "robotframework-ride-${version}";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "https://robotframework-ride.googlecode.com/files/${name}.tar.gz";
@@ -6911,6 +7224,8 @@ rec {
   rope = buildPythonPackage rec {
     version = "0.9.4";
     name = "rope-${version}";
+    
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/r/rope/${name}.tar.gz";
@@ -7222,11 +7537,11 @@ rec {
   });
 
   sigal = buildPythonPackage rec {
-    name = "sigal-0.5.0";
+    name = "sigal-0.7.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/s/sigal/${name}.tar.gz";
-      md5 = "93c93725674c0702583a638f5a09c9e4";
+      md5 = "d2386706ac8543378aebde1ea4edeba4";
     };
 
     propagatedBuildInputs = [ jinja2 markdown pillow pilkit clint argh pytest ];
@@ -7304,6 +7619,7 @@ rec {
 
   pydns = buildPythonPackage rec {
     name = "pydns-2.3.6";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/p/pydns/${name}.tar.gz";
@@ -7312,17 +7628,20 @@ rec {
 
     doCheck = false;
 
-    meta = with stdenv.lib; {
-    };
   };
 
   sympy = buildPythonPackage rec {
-    name = "sympy-0.7.3";
+    name = "sympy-0.7.4";
 
     src = fetchurl {
       url    = "https://github.com/sympy/sympy/releases/download/${name}/${name}.tar.gz";
-      sha256 = "081g9gs2d1d41ipn8zr034d98cnrxvc4zsmihqmfwzirwzpcii5x";
+      sha256 = "0h1b9mx0snyyybj1x1ga69qssgjzkkgx2rw6nddjhyz1fknf8ywh";
     };
+    
+    preCheck = ''
+      export LANG="en_US.UTF-8"
+      export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive
+    '';
 
     meta = with stdenv.lib; {
       description = "A Python library for symbolic mathematics";
@@ -7428,6 +7747,28 @@ rec {
     };
   };
 
+  semantic = buildPythonPackage rec {
+    name = "semantic-1.0.3";
+    
+    disabled = isPy3k;
+
+    propagatedBuildInputs = [ quantities numpy ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/s/semantic/semantic-1.0.3.tar.gz";
+      md5 = "78a150190e3e7d0f6f357b4c828e5f0d";
+    };
+
+    # strange setuptools error (can not import semantic.test)
+    doCheck = false;
+
+    meta = with pkgs.stdenv.lib; {
+      description = "Common Natural Language Processing Tasks for Python";
+      homepage = https://github.com/crm416/semantic;
+      license = licenses.mit;
+    };
+  };
+
   sexpdata = buildPythonPackage rec {
     name = "sexpdata-0.0.2";
     src = fetchurl {
@@ -7481,6 +7822,7 @@ rec {
 
   skype4py = buildPythonPackage (rec {
     name = "Skype4Py-1.0.32.0";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = mirror://sourceforge/skype4py/Skype4Py-1.0.32.0.tar.gz;
@@ -7546,11 +7888,13 @@ rec {
   };
 
   supervisor = buildPythonPackage rec {
-    name = "supervisor-3.0";
+    name = "supervisor-3.1.1";
+    
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/s/supervisor/${name}.tar.gz";
-      md5 = "94ff3cf09618c36889425a8e002cd51a";
+      md5 = "8c9714feaa63902f03871317e3ebf62e";
     };
 
     buildInputs = [ mock ];
@@ -7567,6 +7911,7 @@ rec {
 
   subprocess32 = buildPythonPackage rec {
     name = "subprocess32-3.2.6";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/s/subprocess32/${name}.tar.gz";
@@ -7642,6 +7987,7 @@ rec {
 
   sqlalchemy = pkgs.lib.overrideDerivation sqlalchemy9 (args: rec {
     name = "SQLAlchemy-0.7.10";
+    disabled = isPy3k;
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz";
       sha256 = "0rhxgr85xdhjn467qfs0dkyj8x46zxcv6ad3dfx3w14xbkb3kakp";
@@ -7653,21 +7999,20 @@ rec {
     ];
   });
 
-
   sqlalchemy8 = pkgs.lib.overrideDerivation sqlalchemy9 (args: rec {
-    name = "SQLAlchemy-0.8.5";
+    name = "SQLAlchemy-0.8.7";
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz";
-      md5 = "ecf0738eaf1229bae27ad2be0f9978a8";
+      md5 = "4f3377306309e46739696721b1785335";
     };
   });
 
   sqlalchemy9 = buildPythonPackage rec {
-    name = "SQLAlchemy-0.9.3";
+    name = "SQLAlchemy-0.9.4";
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/S/SQLAlchemy/${name}.tar.gz";
-      md5 = "a27989b9d4b3f14ea0b1600aa45559c4";
+      md5 = "c008ea5e2565ec1418ee8461393a99b1";
     };
 
     buildInputs = [ nose mock ];
@@ -7741,9 +8086,10 @@ rec {
   };
 
 
-  statd = buildPythonPackage rec {
+  python_statsd = buildPythonPackage rec {
     name = "python-statsd-${version}";
     version = "1.6.0";
+    disabled = isPy3k;  # next release will be py3k compatible
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/p/python-statsd/${name}.tar.gz";
@@ -7762,6 +8108,7 @@ rec {
 
   stompclient = buildPythonPackage (rec {
     name = "stompclient-0.3.2";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/s/stompclient/${name}.tar.gz";
@@ -7802,6 +8149,11 @@ rec {
   sure = buildPythonPackage rec {
     name = "sure-${version}";
     version = "1.2.7";
+    
+    preBuild = ''
+      export LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale/locale-archive
+      export LC_ALL="en_US.UTF-8"
+    '';
 
     # Not picking up from PyPI because it doesn't contain tests.
     src = fetchgit {
@@ -7809,6 +8161,8 @@ rec {
       rev = "86ab9faa97aa9c1720c7d090deac2be385ed3d7a";
       sha256 = "02vffcdgr6vbj80lhl925w7zqy6cqnfvs088i0rbkjs5lxc511b3";
     };
+    
+    
 
     buildInputs = [ nose ];
 
@@ -7860,6 +8214,7 @@ rec {
 
   tarsnapper = buildPythonPackage rec {
     name = "tarsnapper-0.2.1";
+    disabled = isPy3k;
 
     src = fetchgit {
       url = https://github.com/miracle2k/tarsnapper.git;
@@ -7879,6 +8234,7 @@ rec {
 
   taskcoach = buildPythonPackage rec {
     name = "TaskCoach-1.3.22";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "mirror://sourceforge/taskcoach/${name}.tar.gz";
@@ -7906,14 +8262,16 @@ rec {
   };
 
   tempita = buildPythonPackage rec {
-    version = "0.4";
+    version = "0.5.2";
     name = "tempita-${version}";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/T/Tempita/Tempita-${version}.tar.gz";
-      md5 = "0abe015a72e748d0c6284679a497426c";
+      md5 = "4c2f17bb9d481821c41b6fbee904cea1";
     };
-
+    
+    disabled = isPy3k;
+    
     buildInputs = [ nose ];
 
     meta = {
@@ -8018,6 +8376,7 @@ rec {
 
   smmap = buildPythonPackage rec {
     name = "smmap-0.8.2";
+    disabled = isPy3k;  # next release will have py3k support
     meta.maintainers = [ stdenv.lib.maintainers.mornfall ];
 
     src = fetchurl {
@@ -8028,6 +8387,7 @@ rec {
 
   trac = buildPythonPackage {
     name = "trac-1.0.1";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = http://ftp.edgewall.com/pub/trac/Trac-1.0.1.tar.gz;
@@ -8051,11 +8411,11 @@ rec {
 
   transaction = buildPythonPackage rec {
     name = "transaction-${version}";
-    version = "1.4.0";
+    version = "1.4.3";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/t/transaction/${name}.tar.gz";
-      md5 = "b7c2ff135939f605a8c54e1c13cd5d66";
+      md5 = "b4ca5983c9e3a0808ff5ff7648092c76";
     };
 
     propagatedBuildInputs = [ zope_interface ];
@@ -8131,6 +8491,7 @@ rec {
 
   tweepy = buildPythonPackage (rec {
     name = "tweepy-2.3.0";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/t/tweepy/${name}.tar.gz";
@@ -8149,7 +8510,8 @@ rec {
   twisted = buildPythonPackage rec {
     # NOTE: When updating please check if new versions still cause issues
     # to packages like carbon (http://stackoverflow.com/questions/19894708/cant-start-carbon-12-04-python-error-importerror-cannot-import-name-daem)
-
+    disabled = isPy3k;
+ 
     name = "Twisted-11.1.0";
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/T/Twisted/${name}.tar.bz2";
@@ -8180,6 +8542,25 @@ rec {
     };
   };
 
+  tzlocal = buildPythonPackage rec {
+    name = "tzlocal-1.1.1";
+
+    propagatedBuildInputs = with pythonPackages; [ pytz ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/t/tzlocal/tzlocal-1.1.1.zip";
+      md5 = "56c2a04501b98f2a1188d003fd6d3dba";
+    };
+
+     # test fail (timezone test fail)
+     doCheck = false;
+
+    meta = with pkgs.stdenv.lib; {
+      description = "Tzinfo object for the local timezone.";
+      homepage = https://github.com/regebro/tzlocal;
+      license = licenses.cddl;
+    };
+  };
 
   unittest2 = buildPythonPackage rec {
     version = "0.5.1";
@@ -8208,6 +8589,7 @@ rec {
 
   urlgrabber =  buildPythonPackage rec {
     name = "urlgrabber-3.9.1";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://urlgrabber.baseurl.org/download/${name}.tar.gz";
@@ -8248,6 +8630,26 @@ rec {
     };
   });
 
+  pyuv = buildPythonPackage rec {
+    name = "pyuv-0.11.5";
+
+    src = fetchurl {
+      url = "https://github.com/saghul/pyuv/archive/${name}.tar.gz";
+      sha256 = "c251952cb4e54c92ab0e871decd13cf73d11ca5dba9f92962de51d12e3a310a9";
+    };
+
+    patches = [ ../development/python-modules/pyuv-external-libuv.patch ];
+
+    buildInputs = [ pkgs.libuvVersions.v0_11_29 ];
+
+    meta = {
+      description = "Python interface for libuv";
+      homepage = https://github.com/saghul/pyuv;
+      repositories.git = git://github.com/saghul/pyuv.git;
+      license = licenses.mit;
+    };
+  };
+
   virtualenv = buildPythonPackage rec {
     name = "virtualenv-1.11.6";
     src = fetchurl {
@@ -8438,13 +8840,17 @@ rec {
 
 
   webtest = buildPythonPackage rec {
-    version = "2.0.11";
+    version = "2.0.15";
     name = "webtest-${version}";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/W/WebTest/WebTest-${version}.zip";
-      md5 = "e51da21da8815cef07f543d8688effea";
+      md5 = "49314bdba23f4d0bd807facb2a6d3f90";
     };
+    
+    preConfigure = ''
+      substituteInPlace setup.py --replace "nose<1.3.0" "nose"
+    '';
 
     # XXX: skipping two tests fails in python2.6
     doCheck = ! isPy26;
@@ -8647,14 +9053,17 @@ rec {
 
   zdaemon = buildPythonPackage rec {
     name = "zdaemon-${version}";
-    version = "3.0.5";
+    version = "4.0.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zdaemon/${name}.tar.gz";
-      md5 = "975f770544bb4352c5cf32fec22e63c9";
+      md5 = "4056e2ea35855695ed15389d9c168b92";
     };
 
     propagatedBuildInputs  = [ zconfig ];
+    
+    # too many deps..
+    doCheck = false;
 
     meta = {
       description = "A daemon process control library and tools for Unix-based systems";
@@ -8694,17 +9103,16 @@ rec {
     };
   });
 
-
   zodb3 = buildPythonPackage rec {
     name = "zodb3-${version}";
-    version = "3.10.5";
+    version = "3.11.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/Z/ZODB3/ZODB3-${version}.tar.gz";
-      md5 = "6f180c6897a1820948fee2a6290503cd";
+      md5 = "21975c1609296e7834e8cf4025af3039";
     };
 
-    propagatedBuildInputs = [ manuel transaction zc_lockfile zconfig zdaemon zope_interface zope_event ];
+    propagatedBuildInputs = [ manuel transaction zc_lockfile zconfig zdaemon zope_interface zope_event BTrees persistent ZEO ];
 
     meta = {
       description = "An object-oriented database for Python";
@@ -8713,6 +9121,83 @@ rec {
       maintainers = [ stdenv.lib.maintainers.goibhniu ];
     };
   };
+  
+  zodb = buildPythonPackage rec {
+    name = "zodb-${version}";
+    version = "4.0.1";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/Z/ZODB/ZODB-${version}.tar.gz";
+      md5 = "092d787524b095164231742c96b32f50";
+    };
+
+    propagatedBuildInputs = [ manuel transaction zc_lockfile zconfig zdaemon zope_interface persistent BTrees ]
+      ++ optionals isPy3k [ zodbpickle ];
+
+    preCheck = if isPy3k then ''
+      # test failure on py3.4
+      rm src/ZODB/tests/testDB.py
+    '' else "";
+    
+    meta = {
+      description = "An object-oriented database for Python";
+      homepage = http://pypi.python.org/pypi/ZODB;
+      license = "ZPL";
+      maintainers = [ stdenv.lib.maintainers.goibhniu ];
+    };
+  };
+  
+  zodbpickle = pythonPackages.buildPythonPackage rec {
+    name = "zodbpickle-0.5.2";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/z/zodbpickle/${name}.tar.gz";
+      md5 = "d401bd89f99ec8d56c22493e6f8c0443";
+    };
+    
+    # fails..
+    doCheck = false;
+
+    meta = with stdenv.lib; {
+      homepage = http://pypi.python.org/pypi/zodbpickle;
+    };
+  };
+
+  
+  BTrees = pythonPackages.buildPythonPackage rec {
+    name = "BTrees-4.0.8";
+    
+    patches = [ ./../development/python-modules/btrees_interger_overflow.patch ];
+
+    propagatedBuildInputs = [ persistent zope_interface transaction ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/B/BTrees/${name}.tar.gz";
+      md5 = "7f5df4cf8dd50fb0c584c0929a406c92";
+    };
+
+    meta = with stdenv.lib; {
+      description = "scalable persistent components";
+      homepage = http://packages.python.org/BTrees;
+    };
+  };
+
+  
+  persistent = pythonPackages.buildPythonPackage rec {
+    name = "persistent-4.0.8";
+
+    propagatedBuildInputs = [ zope_interface ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/p/persistent/${name}.tar.gz";
+      md5 = "2942f1ca7764b1bef8d48fa0d9a236b7";
+    };
+
+    meta = with stdenv.lib; {
+      description = "automatic persistence for Python objects";
+      homepage = http://www.zope.org/Products/ZODB;
+    };
+  };
 
 
   zope_broken = buildPythonPackage rec {
@@ -8745,6 +9230,24 @@ rec {
         maintainers = [ stdenv.lib.maintainers.goibhniu ];
     };
   };
+  
+  zope_browserresource = buildPythonPackage rec {
+    name = "zope.browserresource-4.0.1";
+
+    propagatedBuildInputs = [
+      zope_component zope_configuration zope_contenttype zope_i18n
+      zope_interface zope_location zope_publisher zope_schema zope_traversing
+    ];
+
+    # all tests fail
+    doCheck = false;
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/z/zope.browserresource/zope.browserresource-4.0.1.zip";
+      md5 = "81bbe92c1f04725561470f89d73222c5";
+    };
+  };
+
 
 
   zope_component = buildPythonPackage rec {
@@ -8786,13 +9289,16 @@ rec {
 
 
   zope_container = buildPythonPackage rec {
-    name = "zope.container-3.11.2";
+    name = "zope.container-4.0.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.container/${name}.tar.gz";
-      md5 = "fc66d85a17b8ffb701091c9328983dcc";
+      md5 = "b24d2303ece65a2d9ce23a5bd074c335";
     };
 
+    # a test is failing
+    doCheck = false;
+
     propagatedBuildInputs = [
       zodb3 zope_broken zope_dottedname zope_publisher
       zope_filerepresentation zope_lifecycleevent zope_size
@@ -8806,11 +9312,11 @@ rec {
 
 
   zope_contenttype = buildPythonPackage rec {
-    name = "zope.contenttype-3.5.5";
+    name = "zope.contenttype-4.0.1";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/z/zope.contenttype/${name}.zip";
-      md5 = "c6ac80e6887de4108a383f349fbdf332";
+      url = "http://pypi.python.org/packages/source/z/zope.contenttype/${name}.tar.gz";
+      md5 = "171be44753e86742da8c81b3ad008ce0";
     };
 
     meta = {
@@ -8956,11 +9462,11 @@ rec {
 
 
   zope_proxy = buildPythonPackage rec {
-    name = "zope.proxy-4.1.1";
+    name = "zope.proxy-4.1.4";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/z/zope.proxy/zope.proxy-4.1.1.tar.gz";
-      md5 = "c36691f0abee7573f4ddcc378603cefd";
+      url = "http://pypi.python.org/packages/source/z/zope.proxy/${name}.tar.gz";
+      md5 = "3bcaf8b8512a99649ecf2f158c11d05b";
     };
 
     propagatedBuildInputs = [ zope_interface ];
@@ -8993,7 +9499,7 @@ rec {
     name = "zope.schema-4.2.2";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/z/zope.schema/zope.schema-4.2.2.tar.gz";
+      url = "http://pypi.python.org/packages/source/z/zope.schema/${name}.tar.gz";
       md5 = "e7e581af8193551831560a736a53cf58";
     };
 
@@ -9006,20 +9512,20 @@ rec {
 
 
   zope_security = buildPythonPackage rec {
-    name = "zope.security-3.7.4";
+    name = "zope.security-4.0.1";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/z/zope.security/zope.security-3.7.4.tar.gz";
-      md5 = "072ab8d11adc083eace11262da08630c";
+      url = "http://pypi.python.org/packages/source/z/zope.security/${name}.tar.gz";
+      md5 = "27d1f2873a0ee9c1f485f7b8f22d8e1c";
     };
 
     propagatedBuildInputs = [
       zope_component zope_configuration zope_i18nmessageid zope_schema
-      zope_proxy
+      zope_proxy zope_testrunner
     ];
 
     meta = {
-        maintainers = [ stdenv.lib.maintainers.goibhniu ];
+      maintainers = [ stdenv.lib.maintainers.goibhniu ];
     };
   };
 
@@ -9048,8 +9554,8 @@ rec {
       md5 = "8b317b41244fc2e67f2f286890ba59a0";
     };
 
-    buildInputs = [ sqlalchemy zope_testing zope_interface setuptools ];
-    propagatedBuildInputs = [ sqlalchemy transaction ];
+    buildInputs = [ zope_testing zope_interface ];
+    propagatedBuildInputs = [ sqlalchemy9 transaction ];
 
     meta = {
       maintainers = [
@@ -9063,12 +9569,14 @@ rec {
 
   zope_testing = buildPythonPackage rec {
     name = "zope.testing-${version}";
-    version = "4.1.2";
+    version = "4.1.3";
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/z/zope.testing/${name}.zip";
-      md5 = "01c30c342c6a18002a762bd5d320a6e9";
+      url = "http://pypi.python.org/packages/source/z/zope.testing/${name}.tar.gz";
+      md5 = "6c73c5b668a67fdc116a25b884058ed9";
     };
+    
+    doCheck = !(python.isPypy or false);
 
     propagatedBuildInputs = [ zope_interface zope_exceptions zope_location ];
 
@@ -9105,14 +9613,17 @@ rec {
 
 
   zope_traversing = buildPythonPackage rec {
-    name = "zope.traversing-3.13.2";
+    name = "zope.traversing-4.0.0";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.traversing/${name}.zip";
-      md5 = "eaad8fc7bbef126f9f8616b074ec00aa";
+      md5 = "5cc40c552f953939f7c597ebbedd586f";
     };
 
-    propagatedBuildInputs = [ zope_location zope_security zope_publisher ];
+    propagatedBuildInputs = [ zope_location zope_security zope_publisher transaction zope_tales ];
+
+    # circular dependency on zope_browserresource
+    doCheck = false;
 
     meta = {
         maintainers = [ stdenv.lib.maintainers.goibhniu ];
@@ -9121,11 +9632,11 @@ rec {
 
 
   zope_interface = buildPythonPackage rec {
-    name = "zope.interface-4.0.3";
+    name = "zope.interface-4.1.1";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zope.interface/${name}.tar.gz";
-      md5 = "1ddd308f2c83703accd1696158c300eb";
+      md5 = "edcd5f719c5eb2e18894c4d06e29b6c6";
     };
 
     propagatedBuildInputs = [ zope_event ];
@@ -9160,6 +9671,7 @@ rec {
   cliapp = buildPythonPackage rec {
     name = "cliapp-${version}";
     version = "1.20140719";
+    disabled = isPy3k;
 
     src = fetchurl rec {
       url = "http://code.liw.fi/debian/pool/main/p/python-cliapp/python-cliapp_${version}.orig.tar.gz";
@@ -9214,6 +9726,8 @@ rec {
   tarman = buildPythonPackage rec {
     version = "0.1.3";
     name = "tarman-${version}";
+    
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/t/tarman/tarman-${version}.zip";
@@ -9231,6 +9745,7 @@ rec {
   libarchive = buildPythonPackage rec {
     version = "3.1.2-1";
     name = "libarchive-${version}";
+    disabled = isPy3k;
 
     src = fetchurl {
       url = "http://python-libarchive.googlecode.com/files/python-libarchive-${version}.tar.gz";
@@ -9315,6 +9830,7 @@ rec {
   ttystatus = buildPythonPackage rec {
     name = "ttystatus-${version}";
     version = "0.23";
+    disabled = isPy3k;
 
     src = fetchurl rec {
       url = "http://code.liw.fi/debian/pool/main/p/python-ttystatus/python-ttystatus_${version}.orig.tar.gz";
@@ -9500,6 +10016,7 @@ rec {
 
   versiontools = buildPythonPackage rec {
     name = "versiontools-1.9.1";
+    doCheck = (!isPy3k);
 
     src = fetchurl {
       url = "https://pypi.python.org/packages/source/v/versiontools/${name}.tar.gz";
@@ -9648,15 +10165,19 @@ rec {
 
   IMAPClient = buildPythonPackage rec {
     name = "IMAPClient-${version}";
-    version = "0.9.2";
+    version = "0.11";
+    disabled = isPy34;
 
     src = fetchurl {
       url = "http://freshfoo.com/projects/IMAPClient/${name}.tar.gz";
-      sha256 = "10alpj7074djs048xjc4j7ggd1nrqdqpy0fzl7fj9hddp0rbchs9";
+      sha256 = "1w54h8gz25qf6ggazzp6xf7kvsyiadsjfkkk17gm0p6pmzvvccbn";
     };
+    
+    buildInputs = [ mock ];
 
     preConfigure = ''
       sed -i '/distribute_setup/d' setup.py
+      substituteInPlace setup.py --replace "mock==0.8.0" "mock"
     '';
 
     meta = {
@@ -9685,11 +10206,11 @@ rec {
 
   libvirt = pkgs.stdenv.mkDerivation rec {
     name = "libvirt-python-${version}";
-    version = "1.2.5";
+    version = "1.2.7";
 
     src = fetchurl {
       url = "http://libvirt.org/sources/python/${name}.tar.gz";
-      sha256 = "0r0v48nkkxfagckizbcf67xkmyd1bnq36d30b58zmhvl0abryz7p";
+      sha256 = "0wg0pnvrwfjdl8haxr2dyfhdasddq97zy6l27xwrvd1hnh1394f1";
     };
 
     buildInputs = [ python pkgs.pkgconfig pkgs.libvirt lxml ];
diff --git a/pkgs/top-level/release-small.nix b/pkgs/top-level/release-small.nix
index c447587e36e8..cfb14429a764 100644
--- a/pkgs/top-level/release-small.nix
+++ b/pkgs/top-level/release-small.nix
@@ -74,7 +74,6 @@ with import ./release-lib.nix { inherit supportedSystems; };
   hello = all;
   host = linux;
   iana_etc = linux;
-  icecat3Xul = linux;
   icewm = linux;
   idutils = all;
   ifplugd = linux;
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index ff66756aa8b4..9970c2789ac1 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -22,11 +22,14 @@ let
   jobs =
     { tarball = import ./make-tarball.nix { inherit nixpkgs officialRelease; };
 
+      manual = import ../../doc;
+
       unstable = pkgs.releaseTools.aggregate
         { name = "nixpkgs-${jobs.tarball.version}";
           meta.description = "Release-critical builds for the Nixpkgs unstable channel";
           constituents =
             [ jobs.tarball
+              jobs.manual
               jobs.stdenv.x86_64-linux
               jobs.stdenv.i686-linux
               jobs.stdenv.x86_64-darwin
@@ -157,7 +160,6 @@ let
       htmlTidy = all;
       hugin = linux;
       iana_etc = linux;
-      icecat3Xul = linux;
       icewm = linux;
       idutils = all;
       ifplugd = linux;