summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/audacious/default.nix2
-rw-r--r--pkgs/applications/audio/drumkv1/default.nix4
-rw-r--r--pkgs/applications/audio/ekho/default.nix39
-rwxr-xr-xpkgs/applications/audio/ncmpc/default.nix22
-rw-r--r--pkgs/applications/audio/pamixer/default.nix38
-rw-r--r--pkgs/applications/audio/qmmp/default.nix4
-rw-r--r--pkgs/applications/audio/qtractor/default.nix4
-rw-r--r--pkgs/applications/audio/samplv1/default.nix4
-rw-r--r--pkgs/applications/audio/synthv1/default.nix4
-rw-r--r--pkgs/applications/audio/yoshimi/default.nix4
-rw-r--r--pkgs/applications/display-managers/slim/default.nix6
-rw-r--r--pkgs/applications/display-managers/slim/runtime-paths.patch49
-rw-r--r--pkgs/applications/editors/emacs-modes/cryptol/default.nix27
-rw-r--r--pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix4
-rw-r--r--pkgs/applications/editors/emacs-modes/idris/default.nix6
-rw-r--r--pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix3
-rw-r--r--pkgs/applications/editors/idea/default.nix38
-rw-r--r--pkgs/applications/editors/kdevelop/default.nix18
-rw-r--r--pkgs/applications/editors/vim/wrapper.nix6
-rw-r--r--pkgs/applications/editors/yi/yi-contrib.nix10
-rw-r--r--pkgs/applications/editors/yi/yi.nix27
-rw-r--r--pkgs/applications/graphics/shotwell/default.nix62
-rw-r--r--pkgs/applications/ike/default.nix4
-rw-r--r--pkgs/applications/misc/audio/sox/default.nix57
-rw-r--r--pkgs/applications/misc/bitcoin/default.nix35
-rw-r--r--pkgs/applications/misc/blender/default.nix4
-rw-r--r--pkgs/applications/misc/calibre/default.nix4
-rw-r--r--pkgs/applications/misc/cura/default.nix71
-rw-r--r--pkgs/applications/misc/curaengine/default.nix22
-rw-r--r--pkgs/applications/misc/electrum/default.nix32
-rw-r--r--pkgs/applications/misc/gnuradio/default.nix4
-rw-r--r--pkgs/applications/misc/ikiwiki/default.nix4
-rw-r--r--pkgs/applications/misc/keepassx/2.0.nix2
-rw-r--r--pkgs/applications/misc/mupdf/default.nix1
-rw-r--r--pkgs/applications/misc/printrun/default.nix36
-rw-r--r--pkgs/applications/misc/spacefm/default.nix8
-rw-r--r--pkgs/applications/misc/surf/default.nix7
-rw-r--r--pkgs/applications/misc/synergy/cryptopp.patch51
-rw-r--r--pkgs/applications/misc/synergy/default.nix20
-rw-r--r--pkgs/applications/misc/xmobar/default.nix4
-rw-r--r--pkgs/applications/networking/bittorrentsync/default.nix43
-rw-r--r--pkgs/applications/networking/browsers/chromium/browser.nix39
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix201
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix305
-rw-r--r--pkgs/applications/networking/browsers/chromium/plugins.nix78
-rw-r--r--pkgs/applications/networking/browsers/chromium/sandbox.nix9
-rw-r--r--pkgs/applications/networking/browsers/chromium/source/default.nix79
-rw-r--r--pkgs/applications/networking/browsers/chromium/source/sandbox_userns_31.patch (renamed from pkgs/applications/networking/browsers/chromium/sandbox_userns_31.patch)0
-rw-r--r--pkgs/applications/networking/browsers/chromium/source/sandbox_userns_36.patch293
-rw-r--r--pkgs/applications/networking/browsers/chromium/source/sources.nix21
-rw-r--r--pkgs/applications/networking/browsers/chromium/source/update.nix118
-rw-r--r--pkgs/applications/networking/browsers/chromium/sources.nix18
-rwxr-xr-xpkgs/applications/networking/browsers/chromium/update.sh78
-rw-r--r--pkgs/applications/networking/browsers/conkeror/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/dwb/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/midori/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/uzbl/default.nix65
-rw-r--r--pkgs/applications/networking/browsers/vimb/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/vimprobable2/default.nix11
-rw-r--r--pkgs/applications/networking/esniper/default.nix7
-rw-r--r--pkgs/applications/networking/feedreaders/newsbeuter/default.nix11
-rw-r--r--pkgs/applications/networking/feedreaders/newsbeuter/dev.nix7
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/sflphone/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix9
-rw-r--r--pkgs/applications/networking/irc/konversation/default.nix1
-rw-r--r--pkgs/applications/networking/irc/quassel/default.nix4
-rw-r--r--pkgs/applications/networking/irc/weechat/default.nix7
-rw-r--r--pkgs/applications/networking/irc/weechat/devel.nix35
-rw-r--r--pkgs/applications/networking/irc/weechat/fix-gnutls-32.diff16
-rw-r--r--pkgs/applications/networking/mailreaders/sup/default.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix264
-rw-r--r--pkgs/applications/networking/newsreaders/liferea/default.nix11
-rw-r--r--pkgs/applications/networking/newsreaders/slrn/default.nix31
-rw-r--r--pkgs/applications/networking/p2p/gnunet/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/mldonkey/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/ncdc/default.nix21
-rw-r--r--pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix9
-rw-r--r--pkgs/applications/networking/p2p/transmission/default.nix4
-rw-r--r--pkgs/applications/networking/remote/teamviewer/default.nix9
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/default.nix4
-rw-r--r--pkgs/applications/networking/sync/rsync/default.nix13
-rw-r--r--pkgs/applications/networking/sync/unison/default.nix6
-rw-r--r--pkgs/applications/networking/syncthing/default.nix51
-rw-r--r--pkgs/applications/networking/yafc/default.nix10
-rw-r--r--pkgs/applications/office/gnumeric/default.nix9
-rw-r--r--pkgs/applications/office/ledger/3.0.nix18
-rw-r--r--pkgs/applications/office/zotero/default.nix41
-rw-r--r--pkgs/applications/office/zotero/zotero.sh3
-rw-r--r--pkgs/applications/science/logic/boolector/default.nix47
-rw-r--r--pkgs/applications/science/logic/z3/default.nix46
-rw-r--r--pkgs/applications/science/math/R/default.nix4
-rw-r--r--pkgs/applications/science/math/maxima/default.nix4
-rw-r--r--pkgs/applications/science/math/sloane/default.nix21
-rw-r--r--pkgs/applications/science/misc/megam/default.nix46
-rw-r--r--pkgs/applications/science/misc/megam/ocaml-3.12.patch12
-rw-r--r--pkgs/applications/science/misc/megam/ocaml-includes.patch21
-rw-r--r--pkgs/applications/version-management/git-and-tools/cgit/default.nix9
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-annex/default.nix42
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/cert-path.patch12
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix22
-rw-r--r--pkgs/applications/version-management/git-and-tools/stgit/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/svn2git/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/tig/default.nix2
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix4
-rw-r--r--pkgs/applications/video/aegisub/default.nix17
-rw-r--r--pkgs/applications/video/avidemux/default.nix15
-rw-r--r--pkgs/applications/video/kazam/default.nix1
-rw-r--r--pkgs/applications/video/miro/default.nix13
-rw-r--r--pkgs/applications/video/mpv/default.nix11
-rw-r--r--pkgs/applications/video/pitivi/default.nix56
-rw-r--r--pkgs/applications/video/simplescreenrecorder/default.nix26
-rw-r--r--pkgs/applications/video/vlc/default.nix5
-rw-r--r--pkgs/applications/virtualization/8086tiny/default.nix13
-rw-r--r--pkgs/applications/virtualization/bochs/default.nix17
-rw-r--r--pkgs/applications/virtualization/docker/default.nix21
-rw-r--r--pkgs/applications/virtualization/qemu/default.nix20
-rw-r--r--pkgs/applications/virtualization/virt-manager/default.nix91
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix14
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix2
-rw-r--r--pkgs/applications/window-managers/openbox/default.nix11
-rw-r--r--pkgs/applications/window-managers/xmonad/default.nix3
-rw-r--r--pkgs/build-support/build-fhs-chrootenv/default.nix28
-rw-r--r--pkgs/build-support/build-pecl.nix9
-rw-r--r--pkgs/build-support/cabal/default.nix4
-rw-r--r--pkgs/build-support/fetchgit/builder.sh4
-rw-r--r--pkgs/build-support/fetchgit/default.nix4
-rwxr-xr-xpkgs/build-support/fetchgit/nix-prefetch-git7
-rw-r--r--pkgs/build-support/gcc-cross-wrapper/builder.sh2
-rw-r--r--pkgs/build-support/gcc-wrapper/builder.sh2
-rw-r--r--pkgs/build-support/gcc-wrapper/default.nix2
-rw-r--r--pkgs/build-support/kernel/cpio-clean.pl17
-rw-r--r--pkgs/build-support/kernel/make-initrd.nix5
-rw-r--r--pkgs/build-support/kernel/make-initrd.sh2
-rw-r--r--pkgs/build-support/trivial-builders.nix1
-rw-r--r--pkgs/build-support/vm/default.nix7
-rw-r--r--pkgs/data/documentation/man-pages-posix/default.nix6
-rw-r--r--pkgs/data/documentation/man-pages/default.nix5
-rw-r--r--pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl-ns/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/automount-plugin.patch448
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-control-center.nix40
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-desktop.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-session.nix8
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-settings-daemon.nix52
-rw-r--r--pkgs/desktops/cinnamon/dpms.patch30
-rw-r--r--pkgs/desktops/cinnamon/keyboard.patch4729
-rw-r--r--pkgs/desktops/cinnamon/region.patch5314
-rw-r--r--pkgs/desktops/cinnamon/systemd-support.patch536
-rw-r--r--pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/at-spi2-core/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/baobab/default.nix15
-rw-r--r--pkgs/desktops/gnome-3/core/dconf/default.nix13
-rw-r--r--pkgs/desktops/gnome-3/core/empathy/default.nix15
-rw-r--r--pkgs/desktops/gnome-3/core/eog/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/epiphany/default.nix15
-rw-r--r--pkgs/desktops/gnome-3/core/evince/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/default.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/folks/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gcr/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-calculator/default.nix36
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-contacts/configure_dbus_glib.patch10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-contacts/default.nix51
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-contacts/fix_row_selected.patch11
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-control-center/default.nix47
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-control-center/search_providers_dir.patch17
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix42
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix37
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-keyring/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix37
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-session/default.nix5
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix26
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/default.nix15
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/fix_background_corruption.patch147
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-system-log/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-terminal/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-user-share/default.nix52
-rw-r--r--pkgs/desktops/gnome-3/core/grilo/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/core/gucharmap/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/libgnomekbd/default.nix24
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/core/nautilus/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/sushi/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/core/totem/default.nix48
-rw-r--r--pkgs/desktops/gnome-3/core/tracker/default.nix49
-rw-r--r--pkgs/desktops/gnome-3/core/vino/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/vte/default.nix23
-rw-r--r--pkgs/desktops/gnome-3/core/yelp/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/default.nix41
-rw-r--r--pkgs/desktops/gnome-3/desktop/file-roller/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/misc/gexiv2/default.nix25
-rw-r--r--pkgs/desktops/gnome-3/misc/gitg/default.nix11
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-tweak-tool/default.nix46
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-tweak-tool/find_gsettings.patch22
-rw-r--r--pkgs/desktops/kde-4.10/applications/kate.nix11
-rw-r--r--pkgs/desktops/kde-4.10/applications/konsole.nix11
-rw-r--r--pkgs/desktops/kde-4.10/default.nix71
-rw-r--r--pkgs/desktops/kde-4.10/files/kde-wallpapers-buildsystem.patch17
-rw-r--r--pkgs/desktops/kde-4.10/files/polkit-install.patch12
-rw-r--r--pkgs/desktops/kde-4.10/kactivities.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kde-base-artwork.nix14
-rw-r--r--pkgs/desktops/kde-4.10/kde-baseapps/kde-baseapps.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kde-package/4.10.5.nix399
-rw-r--r--pkgs/desktops/kde-4.10/kde-package/default.nix129
-rwxr-xr-xpkgs/desktops/kde-4.10/kde-package/kde-manifest.sh146
-rw-r--r--pkgs/desktops/kde-4.10/kde-package/kde-submodules.xslt22
-rw-r--r--pkgs/desktops/kde-4.10/kde-runtime.nix23
-rw-r--r--pkgs/desktops/kde-4.10/kde-wallpapers.nix17
-rw-r--r--pkgs/desktops/kde-4.10/kde-workspace.nix45
-rw-r--r--pkgs/desktops/kde-4.10/kdeaccessibility/jovie.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeaccessibility/kaccessible.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeaccessibility/kmag.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdeaccessibility/kmousetool.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeaccessibility/kmouth.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeadmin/kcron.nix5
-rw-r--r--pkgs/desktops/kde-4.10/kdeadmin/ksystemlog.nix5
-rw-r--r--pkgs/desktops/kde-4.10/kdeadmin/kuser.nix5
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/ColorSchemes.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/FindXscreensaver.cmake73
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/HighResolutionWallpapers.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/IconThemes.nix13
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/WeatherWallpapers.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/desktopthemes.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/emoticons.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/kscreensaver.nix15
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/kwin-styles.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/sounds.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/styles.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeartwork/wallpapers.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/perlqt.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/pykde4-hardcode-lib-python.patch18
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/pykde4.nix34
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/qtruby-install-prefix.patch15
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/qtruby.nix15
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/smokegen-CMakeLists.txt-nix.patch14
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/smokegen-SmokeConfig.cmake.in-nix.patch13
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/smokegen.nix13
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/smokekde.nix16
-rw-r--r--pkgs/desktops/kde-4.10/kdebindings/smokeqt.nix13
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/analitza.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/blinken.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/cantor.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kalgebra.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kalzium.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kanagram.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kbruch.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kgeography.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/khangman.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kig.nix12
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kiten.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/klettres.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kmplot.nix12
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kstars.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/ktouch.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kturtle.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/kwordquiz.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/libkdeedu.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/marble.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/pairs.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/parley.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/rocs.nix14
-rw-r--r--pkgs/desktops/kde-4.10/kdeedu/step.nix12
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/bomber.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/bovo.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/granatier.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kajongg.nix13
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kapman.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/katomic.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kblackbox.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kblocks.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kbounce.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kbreakout.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kdiamond.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kfourinline.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kgoldrunner.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kigo.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/killbots.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kiriki.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kjumpingcube.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/klickety.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/klines.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kmahjongg.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kmines.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/knavalbattle.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/knetwalk.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kolf.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kollision.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/konquest.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kpat.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kreversi.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kshisen.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/ksirk.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/ksnakeduel.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kspaceduel.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/ksquares.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/ksudoku.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/ktuberling.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/kubrick.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/libkdegames.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/libkmahjongg.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/lskat.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/palapeli.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdegames/picmi.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/gwenview.nix15
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/kamera.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/kcolorchooser.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-mobipocket.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-strigi-analyzer.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-thumbnailers.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/kgamma.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/kolourpaint.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/kruler.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/ksaneplugin.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/ksnapshot.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/libkdcraw.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/libkexiv2.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/libkipi.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/libksane.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/okular.nix17
-rw-r--r--pkgs/desktops/kde-4.10/kdegraphics/svgpart.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdelibs/kdelibs.nix43
-rw-r--r--pkgs/desktops/kde-4.10/kdelibs/nepomuk-core.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdelibs/nepomuk-widgets.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/audiocd-kio.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/dragon.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/ffmpegthumbs.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/juk.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/kmix.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/kscd.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/libkcddb.nix8
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/libkcompactdisc.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdemultimedia/mplayerthumbs.nix7
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/FindmsiLBC.cmake19
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/kdenetwork-filesharing.nix5
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/kdenetwork-strigi-analyzers.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/kdnssd.nix5
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/kget.nix14
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/kopete-4.10.4-kopete-linphonemediaengine.patch22
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/kopete-4.10.4-kopete-stun.patch47
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/kopete-giflib5.patch70
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/kopete.nix31
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/kppp.nix5
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/krdc.nix5
-rw-r--r--pkgs/desktops/kde-4.10/kdenetwork/krfb.nix5
-rw-r--r--pkgs/desktops/kde-4.10/kdepim-runtime.nix14
-rw-r--r--pkgs/desktops/kde-4.10/kdepim.nix22
-rw-r--r--pkgs/desktops/kde-4.10/kdepimlibs.nix19
-rw-r--r--pkgs/desktops/kde-4.10/kdeplasma-addons.nix22
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/cervisia.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-bazaar.nix15
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-git.nix15
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-hg.nix15
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-svn.nix15
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kapptemplate.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kcachegrind.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kde-dev-scripts.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kde-dev-utils.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kdesdk-strigi-analyzers.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kdesdk-thumbnailers.nix12
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kioslave-perldoc.nix12
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kioslave-svn.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/kompare.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/lokalize.nix13
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/okteta.nix13
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/poxml.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/thumbnailers-add-subdirectory.patch12
-rw-r--r--pkgs/desktops/kde-4.10/kdesdk/umbrello.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdetoys/amor.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdetoys/kteatime.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdetoys/ktux.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/ark.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/filelight.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/kcalc.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/kcharselect.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/kdf.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/kfloppy.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/kgpg.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/kremotecontrol.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/ktimer.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/kwallet.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/print-manager.nix28
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/superkaramba.nix11
-rw-r--r--pkgs/desktops/kde-4.10/kdeutils/sweeper.nix9
-rw-r--r--pkgs/desktops/kde-4.10/kdewebdev/kfilereplace.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdewebdev/kimagemapeditor.nix10
-rw-r--r--pkgs/desktops/kde-4.10/kdewebdev/klinkstatus.nix12
-rw-r--r--pkgs/desktops/kde-4.10/kdewebdev/kommander.nix9
-rw-r--r--pkgs/desktops/kde-4.10/l10n/default.nix46
-rwxr-xr-xpkgs/desktops/kde-4.10/l10n/l10n-manifest.sh32
-rw-r--r--pkgs/desktops/kde-4.10/l10n/manifest-4.10.4.nix282
-rw-r--r--pkgs/desktops/kde-4.10/l10n/manifest-4.10.5.nix282
-rw-r--r--pkgs/desktops/kde-4.10/oxygen-icons.nix15
-rw-r--r--pkgs/desktops/kde-4.10/support/akonadi/default.nix24
-rw-r--r--pkgs/desktops/xfce/applications/gigolo.nix8
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-taskmanager.nix4
-rw-r--r--pkgs/desktops/xfce/core/tumbler.nix4
-rw-r--r--pkgs/development/compilers/aldor/default.nix6
-rw-r--r--pkgs/development/compilers/ats/default.nix41
-rw-r--r--pkgs/development/compilers/ats/install-atsdoc-hats-files.patch38
-rw-r--r--pkgs/development/compilers/ats2/default.nix6
-rw-r--r--pkgs/development/compilers/elm/elm-server.nix13
-rw-r--r--pkgs/development/compilers/elm/elm.nix8
-rw-r--r--pkgs/development/compilers/fsharp/default.nix36
-rw-r--r--pkgs/development/compilers/gcc-arm-embedded/default.nix46
-rw-r--r--pkgs/development/compilers/gcc/4.4/default.nix3
-rw-r--r--pkgs/development/compilers/ghc/7.4.2.nix1
-rw-r--r--pkgs/development/compilers/ghc/7.8.2.nix (renamed from pkgs/development/compilers/ghc/7.8.1.nix)7
-rw-r--r--pkgs/development/compilers/ghc/head.nix1
-rw-r--r--pkgs/development/compilers/ghdl/default.nix64
-rw-r--r--pkgs/development/compilers/go/1.2.nix9
-rw-r--r--pkgs/development/compilers/icedtea-web/default.nix39
-rw-r--r--pkgs/development/compilers/icedtea/build-fix-2.4.6.patch58
-rw-r--r--pkgs/development/compilers/icedtea/cppflags-include-fix.patch16
-rw-r--r--pkgs/development/compilers/icedtea/default.nix181
-rw-r--r--pkgs/development/compilers/icedtea/fix-java-home.patch17
-rw-r--r--pkgs/development/compilers/icedtea/generate-cacerts.pl366
-rw-r--r--pkgs/development/compilers/icedtea/sources.nix56
-rwxr-xr-xpkgs/development/compilers/icedtea/update.py275
-rw-r--r--pkgs/development/compilers/idris/default.nix24
-rw-r--r--pkgs/development/compilers/jdk/jdk7-linux.nix4
-rw-r--r--pkgs/development/compilers/julia/0.2.1.nix140
-rw-r--r--pkgs/development/compilers/julia/git-20131013.nix (renamed from pkgs/development/compilers/julia/default.nix)0
-rw-r--r--pkgs/development/compilers/llvm/3.4/clang.nix6
-rw-r--r--pkgs/development/compilers/llvm/3.4/llvm.nix1
-rw-r--r--pkgs/development/compilers/mono/build-fix-llvm.patch12
-rw-r--r--pkgs/development/compilers/mono/default.nix25
-rw-r--r--pkgs/development/compilers/mono/llvm.nix59
-rw-r--r--pkgs/development/compilers/pakcs/default.nix2
-rw-r--r--pkgs/development/compilers/sdcc/default.nix4
-rw-r--r--pkgs/development/compilers/swi-prolog/default.nix4
-rw-r--r--pkgs/development/interpreters/lua-5/5.1.darwin.patch52
-rw-r--r--pkgs/development/interpreters/lua-5/5.1.nix9
-rw-r--r--pkgs/development/interpreters/lua-5/5.2.darwin.patch52
-rw-r--r--pkgs/development/interpreters/lua-5/5.2.nix9
-rw-r--r--pkgs/development/interpreters/luajit/default.nix45
-rw-r--r--pkgs/development/interpreters/perl/5.16/default.nix2
-rw-r--r--pkgs/development/interpreters/python/2.7/CVE-2014-1912.patch57
-rw-r--r--pkgs/development/interpreters/python/2.7/default.nix4
-rw-r--r--pkgs/development/interpreters/python/3.2/CVE-2014-1912.patch57
-rw-r--r--pkgs/development/interpreters/python/3.2/default.nix6
-rw-r--r--pkgs/development/interpreters/python/3.3/default.nix3
-rw-r--r--pkgs/development/interpreters/python/3.4/default.nix7
-rw-r--r--pkgs/development/libraries/SDL2/default.nix4
-rw-r--r--pkgs/development/libraries/accountservice/default.nix7
-rw-r--r--pkgs/development/libraries/aspell/default.nix7
-rw-r--r--pkgs/development/libraries/aspell/dictionaries.nix17
-rw-r--r--pkgs/development/libraries/atk/default.nix4
-rw-r--r--pkgs/development/libraries/capstone/default.nix27
-rw-r--r--pkgs/development/libraries/clutter-gtk/default.nix6
-rw-r--r--pkgs/development/libraries/concurrencykit/default.nix19
-rw-r--r--pkgs/development/libraries/db/generic.nix4
-rw-r--r--pkgs/development/libraries/faac/default.nix2
-rw-r--r--pkgs/development/libraries/facile/default.nix8
-rw-r--r--pkgs/development/libraries/facile/ocaml_4.xx.patch12
-rw-r--r--pkgs/development/libraries/ffmpeg/0.10.nix4
-rw-r--r--pkgs/development/libraries/fmod/default.nix44
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/default.nix4
-rw-r--r--pkgs/development/libraries/geoip/default.nix29
-rw-r--r--pkgs/development/libraries/geoip/src-for-default.nix8
-rw-r--r--pkgs/development/libraries/geoip/src-info-for-default.nix6
-rw-r--r--pkgs/development/libraries/giflib/4.1.nix3
-rw-r--r--pkgs/development/libraries/glib/default.nix8
-rw-r--r--pkgs/development/libraries/glib/setup-hook.sh17
-rw-r--r--pkgs/development/libraries/glibc/2.18/cve-2012-4412+4424.patch1006
-rw-r--r--pkgs/development/libraries/glibc/2.18/cve-2013-4237.patch302
-rw-r--r--pkgs/development/libraries/glibc/2.18/cve-2013-4332.patch56
-rw-r--r--pkgs/development/libraries/glibc/2.18/cve-2013-4458.patch50
-rw-r--r--pkgs/development/libraries/glibc/2.18/cve-2013-4788.patch222
-rw-r--r--pkgs/development/libraries/glibc/2.18/glibc-rh739743.patch55
-rw-r--r--pkgs/development/libraries/glibc/2.18/scanf.patch21
-rw-r--r--pkgs/development/libraries/glibc/2.18/strstr-sse42-hack.patch14
-rw-r--r--pkgs/development/libraries/glibc/2.19/builder.sh (renamed from pkgs/development/libraries/glibc/2.18/builder.sh)0
-rw-r--r--pkgs/development/libraries/glibc/2.19/common.nix (renamed from pkgs/development/libraries/glibc/2.18/common.nix)23
-rw-r--r--pkgs/development/libraries/glibc/2.19/default.nix (renamed from pkgs/development/libraries/glibc/2.18/default.nix)0
-rw-r--r--pkgs/development/libraries/glibc/2.19/dont-use-system-ld-so-cache.patch (renamed from pkgs/development/libraries/glibc/2.18/dont-use-system-ld-so-cache.patch)0
-rw-r--r--pkgs/development/libraries/glibc/2.19/dont-use-system-ld-so-preload.patch12
-rw-r--r--pkgs/development/libraries/glibc/2.19/fix-math.patch336
-rw-r--r--pkgs/development/libraries/glibc/2.19/fix_path_attribute_in_getconf.patch (renamed from pkgs/development/libraries/glibc/2.18/fix_path_attribute_in_getconf.patch)0
-rw-r--r--pkgs/development/libraries/glibc/2.19/glibc-crypt-blowfish.patch (renamed from pkgs/development/libraries/glibc/2.18/glibc-crypt-blowfish.patch)0
-rw-r--r--pkgs/development/libraries/glibc/2.19/info.nix (renamed from pkgs/development/libraries/glibc/2.18/info.nix)0
-rw-r--r--pkgs/development/libraries/glibc/2.19/locales-builder.sh (renamed from pkgs/development/libraries/glibc/2.18/locales-builder.sh)0
-rw-r--r--pkgs/development/libraries/glibc/2.19/locales.nix (renamed from pkgs/development/libraries/glibc/2.18/locales.nix)0
-rw-r--r--pkgs/development/libraries/glibc/2.19/nix-locale-archive.patch (renamed from pkgs/development/libraries/glibc/2.18/nix-locale-archive.patch)0
-rw-r--r--pkgs/development/libraries/glibc/2.19/rpcgen-path.patch (renamed from pkgs/development/libraries/glibc/2.18/rpcgen-path.patch)0
-rw-r--r--pkgs/development/libraries/gnutls/3.2.nix4
-rw-r--r--pkgs/development/libraries/gobject-introspection/default.nix4
-rw-r--r--pkgs/development/libraries/gsasl/default.nix5
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix26
-rw-r--r--pkgs/development/libraries/gstreamer/core/setup-hook.sh4
-rw-r--r--pkgs/development/libraries/gstreamer/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/ges/default.nix24
-rw-r--r--pkgs/development/libraries/gstreamer/gnonlin/default.nix29
-rw-r--r--pkgs/development/libraries/gstreamer/good/default.nix16
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/python/default.nix6
-rw-r--r--pkgs/development/libraries/gstreamer/python/different-path-with-pygobject.patch20
-rw-r--r--pkgs/development/libraries/gstreamer/ugly/default.nix17
-rw-r--r--pkgs/development/libraries/gtk+/2.x.nix4
-rw-r--r--pkgs/development/libraries/gtk+/3.x.nix13
-rw-r--r--pkgs/development/libraries/gtkmm/3.x.nix6
-rw-r--r--pkgs/development/libraries/gvfs/default.nix6
-rw-r--r--pkgs/development/libraries/harfbuzz/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/Chart-cairo/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/Chart-diagrams/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/Chart-gtk/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/Chart/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/DAV/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/Extra/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/Glob/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/HDBC/HDBC.nix4
-rw-r--r--pkgs/development/libraries/haskell/HList/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/HStringTemplate/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/HTF/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/HTTP/4000.2.12.nix (renamed from pkgs/development/libraries/haskell/HTTP/4000.2.11.nix)4
-rw-r--r--pkgs/development/libraries/haskell/HaXml/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/HandsomeSoup/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/Hipmunk/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/JuicyPixels/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/2.7.3.nix16
-rw-r--r--pkgs/development/libraries/haskell/TypeCompose/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/Unixutils/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/active/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/adjunctions/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/aeson-lens/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/alsa-mixer/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/alsa-pcm/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/arithmoi/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/attempt/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/attoparsec-conduit/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/authenticate-oauth/RSA2.patch57
-rw-r--r--pkgs/development/libraries/haskell/authenticate-oauth/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/authenticate/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/aws/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/base64-conduit/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/basic-prelude/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/bert/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/binary-conduit/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/blaze-builder-conduit/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/bmp/1.2.2.1.nix15
-rw-r--r--pkgs/development/libraries/haskell/bmp/default.nix (renamed from pkgs/development/libraries/haskell/bmp/1.2.5.2.nix)0
-rw-r--r--pkgs/development/libraries/haskell/bytestring-lexing/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/bytestring-show/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/bzlib/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/c2hs/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/c2hsc/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/case-insensitive/1.2.0.0.nix17
-rw-r--r--pkgs/development/libraries/haskell/cereal-conduit/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/cheapskate/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/checkers/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/chell-quickcheck/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/chell/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/chunked-data/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cipher-aes/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/classy-prelude/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/comonad/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/conduit-combinators/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/conduit-extra/default.nix26
-rw-r--r--pkgs/development/libraries/haskell/conduit/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/constraints/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/convertible/1.0.11.1.nix (renamed from pkgs/development/libraries/haskell/convertible/default.nix)0
-rw-r--r--pkgs/development/libraries/haskell/convertible/1.1.0.0.nix17
-rw-r--r--pkgs/development/libraries/haskell/criterion/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/crypto-conduit/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/cryptohash-conduit/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/cryptohash-cryptoapi/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cryptohash/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/css-text/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/data-accessor/data-accessor-template.nix4
-rw-r--r--pkgs/development/libraries/haskell/data-accessor/data-accessor.nix4
-rw-r--r--pkgs/development/libraries/haskell/data-hash/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/data-lens-template/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/data-ordlist/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/dataenc/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/dbmigrations/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/dbus/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/derive/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/diagrams/cairo.nix4
-rw-r--r--pkgs/development/libraries/haskell/diagrams/contrib.nix4
-rw-r--r--pkgs/development/libraries/haskell/diagrams/core.nix4
-rw-r--r--pkgs/development/libraries/haskell/diagrams/diagrams.nix4
-rw-r--r--pkgs/development/libraries/haskell/diagrams/lib.nix4
-rw-r--r--pkgs/development/libraries/haskell/diagrams/postscript.nix4
-rw-r--r--pkgs/development/libraries/haskell/diagrams/svg.nix4
-rw-r--r--pkgs/development/libraries/haskell/digestive-functors-aeson/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/digestive-functors/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/direct-sqlite/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/distributive/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/dlist-instances/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/dlist/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/dns/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/doctest/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/dsp/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/dual-tree/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/dyre/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/errors/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/esqueleto/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/exceptions/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/failure/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/fay-base/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/fay/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/fb/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/fdo-notify/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/filepath/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/filestore/default.nix2
-rw-r--r--pkgs/development/libraries/haskell/filesystem-conduit/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/foldl/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/force-layout/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/free/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/fsnotify/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/ftphs/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/generic-deriving/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/ghc-events/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/ghc-mod/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/ghc-mtl/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/ghcjs-dom/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/git-date/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/github/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/gnuplot/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hakyll/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/hashed-storage/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/haskell-names/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/haskell-platform/2013.2.0.0.nix1
-rw-r--r--pkgs/development/libraries/haskell/haskell-src/1.0.1.6.nix15
-rw-r--r--pkgs/development/libraries/haskell/hastache/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/heist/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hfsevents/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/hint/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hjsmin/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/hledger-web/build-fix.patch47
-rw-r--r--pkgs/development/libraries/haskell/hledger-web/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/hmatrix/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hoogle/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/hsimport/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hspec-meta/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/hspec/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/html-conduit/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/http-client-conduit/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/http-client-multipart/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/http-client/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/http-conduit/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/http-reverse-proxy/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/http-types/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/hxt-http/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/hxt-unicode/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hxt-xpath/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/hxt/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hybrid-vectors/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/intervals/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/ipprint/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/json-assertions/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/language-c-inline/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/language-c-quote/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/language-c/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/language-ecmascript/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/language-javascript/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/lens-aeson/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/lens-datetime/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/lens/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/libjenkins/default.nix2
-rw-r--r--pkgs/development/libraries/haskell/libjenkins/new-conduit.patch23
-rw-r--r--pkgs/development/libraries/haskell/libsystemd-journal/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/linear/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/list-tries/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/llvm-general-pure/3.4.2.2.nix (renamed from pkgs/development/libraries/haskell/llvm-general-pure/3.4.1.0.nix)4
-rw-r--r--pkgs/development/libraries/haskell/llvm-general/3.4.2.2.nix (renamed from pkgs/development/libraries/haskell/llvm-general/3.4.1.0.nix)4
-rw-r--r--pkgs/development/libraries/haskell/logging/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/ltk/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/lzma-enumerator/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/math-functions/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/midi/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/mime-mail/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/mime-types/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/missing-foreign/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/monad-extras/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/monad-logger/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/monadloc/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/mono-traversable/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/monoid-extras/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/mtl/2.1.3.1.nix15
-rw-r--r--pkgs/development/libraries/haskell/network-conduit-tls/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/network-conduit/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/network-simple/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/numeric-prelude/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/options/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/optparse-applicative/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/parsers/0.10.3.nix (renamed from pkgs/development/libraries/haskell/parsers/default.nix)0
-rw-r--r--pkgs/development/libraries/haskell/parsers/0.11.nix19
-rw-r--r--pkgs/development/libraries/haskell/persistent-mysql/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/persistent-postgresql/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/persistent-sqlite/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/persistent-template/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/persistent/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/pipes-attoparsec/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/pipes-network/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/pipes-safe/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/pool-conduit/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/postgresql-simple/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/process-conduit/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/profunctors/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/project-template/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/quickcheck-instances/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/quickcheck-io/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/random-fu/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/recaptcha/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/resourcet/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/retry/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/sample-frame/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/sbv/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/scotty-hastache/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/scotty/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/semigroupoids/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/semigroups/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/shake/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/shakespeare-css/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/shelly/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/singletons/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/smtps-gmail/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/snap-cors/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/snap/core.nix4
-rw-r--r--pkgs/development/libraries/haskell/snap/loader-dynamic.nix4
-rw-r--r--pkgs/development/libraries/haskell/snap/server.nix4
-rw-r--r--pkgs/development/libraries/haskell/snap/snap.nix4
-rw-r--r--pkgs/development/libraries/haskell/statistics/0.10.5.2.nix (renamed from pkgs/development/libraries/haskell/statistics/default.nix)0
-rw-r--r--pkgs/development/libraries/haskell/statistics/0.11.0.0.nix28
-rw-r--r--pkgs/development/libraries/haskell/stm-chans/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/stm-conduit/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/stm/2.4.3.nix13
-rw-r--r--pkgs/development/libraries/haskell/streaming-commons/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/syntactic/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/system-filepath/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/tagged/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/tagshare/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/tagstream-conduit/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/tasty-quickcheck/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/tasty/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/temporary/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/testing-feat/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/texmath/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/text-icu/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/text-stream-decode/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/tf-random/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/th-desugar/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/thyme/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/time-recurrence/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/timeparsers/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/timezone-olson/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/tls/1.2.6.nix (renamed from pkgs/development/libraries/haskell/tls/1.2.2.nix)15
-rw-r--r--pkgs/development/libraries/haskell/tree-view/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/trifecta/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/twitter-conduit/default.nix28
-rw-r--r--pkgs/development/libraries/haskell/twitter-types/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/type-level-natural-number/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/unbounded-delays/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/unix-bytestring/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/unix-process-conduit/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/unix-time/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/uri/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/vacuum-graphviz/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/vty/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/wai-app-static/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/wai-extra/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/wai-handler-launch/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/wai-middleware-static/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/wai-test/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/wai-websockets/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/wai/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/warp-tls/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/warp/default.nix28
-rw-r--r--pkgs/development/libraries/haskell/websockets/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/wxHaskell/fix-bogus-pointer-assignment.patch13
-rw-r--r--pkgs/development/libraries/haskell/wxHaskell/wx.nix5
-rw-r--r--pkgs/development/libraries/haskell/wxHaskell/wxc.nix7
-rw-r--r--pkgs/development/libraries/haskell/wxHaskell/wxcore.nix7
-rw-r--r--pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix11
-rw-r--r--pkgs/development/libraries/haskell/xml-conduit/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/xml-hamlet/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/xss-sanitize/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yaml/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/yesod-auth/default.nix28
-rw-r--r--pkgs/development/libraries/haskell/yesod-bin/default.nix26
-rw-r--r--pkgs/development/libraries/haskell/yesod-core/default.nix36
-rw-r--r--pkgs/development/libraries/haskell/yesod-form/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/yesod-persistent/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/yesod-static/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/yesod-test/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/yesod/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/zlib-bindings/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/zlib-conduit/default.nix14
-rw-r--r--pkgs/development/libraries/ibus/default.nix4
-rw-r--r--pkgs/development/libraries/kdevplatform/default.nix10
-rw-r--r--pkgs/development/libraries/libarchive/default.nix4
-rw-r--r--pkgs/development/libraries/libav/default.nix4
-rw-r--r--pkgs/development/libraries/libdvdread/default.nix6
-rw-r--r--pkgs/development/libraries/libgsf/default.nix4
-rw-r--r--pkgs/development/libraries/libjpeg-turbo/default.nix6
-rw-r--r--pkgs/development/libraries/libjpeg-turbo/libjpeg-turbo-1.3.0-CVE-2013-6629-and-6630.patch40
-rw-r--r--pkgs/development/libraries/libmsgpack/default.nix30
-rw-r--r--pkgs/development/libraries/libmusicbrainz/5.x.nix25
-rw-r--r--pkgs/development/libraries/libnotify/default.nix17
-rw-r--r--pkgs/development/libraries/liboauth/default.nix5
-rw-r--r--pkgs/development/libraries/libopus/default.nix5
-rw-r--r--pkgs/development/libraries/libpwquality/default.nix12
-rw-r--r--pkgs/development/libraries/libresample/default.nix27
-rw-r--r--pkgs/development/libraries/libseccomp/default.nix31
-rw-r--r--pkgs/development/libraries/libsigcxx/default.nix6
-rw-r--r--pkgs/development/libraries/libtasn1/default.nix8
-rw-r--r--pkgs/development/libraries/libtorrent-rasterbar/default.nix6
-rw-r--r--pkgs/development/libraries/libtxc_dxtn_s2tc/default.nix23
-rw-r--r--pkgs/development/libraries/liburcu/default.nix4
-rw-r--r--pkgs/development/libraries/libvirt-glib/default.nix48
-rw-r--r--pkgs/development/libraries/libvirt/default.nix9
-rw-r--r--pkgs/development/libraries/libwebp/default.nix16
-rw-r--r--pkgs/development/libraries/libxklavier/default.nix13
-rw-r--r--pkgs/development/libraries/libyaml/default.nix4
-rw-r--r--pkgs/development/libraries/mesa/default.nix17
-rw-r--r--pkgs/development/libraries/mesa/dricore-gallium.patch216
-rw-r--r--pkgs/development/libraries/mesa/rtti.patch72
-rw-r--r--pkgs/development/libraries/mesa/static-gallium.patch9
-rw-r--r--pkgs/development/libraries/mesa/werror-wundef.patch12
-rw-r--r--pkgs/development/libraries/minizip/default.nix14
-rw-r--r--pkgs/development/libraries/mps/default.nix24
-rw-r--r--pkgs/development/libraries/ncurses/default.nix2
-rw-r--r--pkgs/development/libraries/npapi-sdk/default.nix22
-rw-r--r--pkgs/development/libraries/openldap/default.nix4
-rw-r--r--pkgs/development/libraries/openssl/default.nix4
-rw-r--r--pkgs/development/libraries/pango/default.nix6
-rw-r--r--pkgs/development/libraries/readline/readline6.3.nix49
-rw-r--r--pkgs/development/libraries/ruby_ncursesw_sup/default.nix11
-rw-r--r--pkgs/development/libraries/spice-gtk/default.nix11
-rw-r--r--pkgs/development/libraries/sqlite/default.nix6
-rw-r--r--pkgs/development/libraries/telepathy/glib/default.nix4
-rw-r--r--pkgs/development/libraries/thrift/default.nix4
-rw-r--r--pkgs/development/libraries/usbredir/default.nix23
-rw-r--r--pkgs/development/libraries/v8/3.14.nix65
-rw-r--r--pkgs/development/libraries/v8/default.nix101
-rw-r--r--pkgs/development/libraries/webkit/bison26.patch515
-rw-r--r--pkgs/development/libraries/webkit/default.nix106
-rw-r--r--pkgs/development/libraries/webkit/gtk2.nix109
-rw-r--r--pkgs/development/libraries/webkit/src-for-default.nix10
-rw-r--r--pkgs/development/libraries/webkit/src-for-gtk2.nix10
-rw-r--r--pkgs/development/libraries/webkit/src-for-svn.nix9
-rw-r--r--pkgs/development/libraries/webkit/src-info-for-default.nix6
-rw-r--r--pkgs/development/libraries/webkit/src-info-for-svn.nix6
-rw-r--r--pkgs/development/libraries/webkitgtk/default.nix24
-rw-r--r--pkgs/development/libraries/wildmidi/default.nix20
-rw-r--r--pkgs/development/libraries/xmlrpc-c/default.nix4
-rw-r--r--pkgs/development/libraries/zlib/default.nix2
-rw-r--r--pkgs/development/mobile/titaniumenv/examples/default.nix13
-rw-r--r--pkgs/development/ocaml-modules/ocamlnet/default.nix12
-rw-r--r--pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix6
-rw-r--r--pkgs/development/perl-modules/DBD-Pg/default.nix6
-rw-r--r--pkgs/development/perl-modules/DBD-SQLite/default.nix6
-rw-r--r--pkgs/development/perl-modules/maatkit/default.nix4
-rw-r--r--pkgs/development/python-modules/ecdsa/default.nix18
-rw-r--r--pkgs/development/python-modules/generic/default.nix1
-rw-r--r--pkgs/development/python-modules/slowaes/default.nix16
-rw-r--r--pkgs/development/python-modules/virtualenv-change-prefix.patch37
-rw-r--r--pkgs/development/python-modules/wxPython/3.0.nix25
-rw-r--r--pkgs/development/python-modules/wxPython/builder3.0.sh22
-rw-r--r--pkgs/development/tools/analysis/valgrind/default.nix4
-rw-r--r--pkgs/development/tools/analysis/valgrind/glibc-2.19.patch39
-rw-r--r--pkgs/development/tools/build-managers/buildbot-slave/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/buildbot/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/ninja/default.nix2
-rw-r--r--pkgs/development/tools/documentation/haddock/2.14.2.nix22
-rw-r--r--pkgs/development/tools/haskell/BNFC/default.nix4
-rw-r--r--pkgs/development/tools/haskell/HaRe/default.nix4
-rw-r--r--pkgs/development/tools/haskell/cabal-delete/default.nix34
-rw-r--r--pkgs/development/tools/haskell/cabal-meta/default.nix18
-rw-r--r--pkgs/development/tools/haskell/cabal2nix/default.nix4
-rw-r--r--pkgs/development/tools/haskell/cake3/default.nix23
-rw-r--r--pkgs/development/tools/haskell/hlint/default.nix11
-rw-r--r--pkgs/development/tools/haskell/keter/default.nix23
-rw-r--r--pkgs/development/tools/haskell/rehoo/default.nix19
-rw-r--r--pkgs/development/tools/haskell/timeplot/default.nix4
-rw-r--r--pkgs/development/tools/haskell/una/default.nix16
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.12.x.nix4
-rw-r--r--pkgs/development/tools/misc/babeltrace/default.nix4
-rw-r--r--pkgs/development/tools/misc/cpphs/default.nix4
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix6
-rw-r--r--pkgs/development/tools/misc/gdb/edit-signals.patch25
-rw-r--r--pkgs/development/tools/misc/global/default.nix6
-rw-r--r--pkgs/development/tools/misc/lsof/default.nix4
-rw-r--r--pkgs/development/tools/misc/ltrace/default.nix9
-rw-r--r--pkgs/development/tools/misc/lttng-tools/default.nix4
-rw-r--r--pkgs/development/tools/misc/lttng-ust/default.nix4
-rw-r--r--pkgs/development/tools/misc/texinfo/5.2.nix5
-rw-r--r--pkgs/development/tools/misc/uhd/default.nix10
-rw-r--r--pkgs/development/tools/neoload/default.nix13
-rw-r--r--pkgs/development/tools/parsing/flex/2.5.35.nix (renamed from pkgs/development/tools/parsing/flex/default.nix)0
-rw-r--r--pkgs/development/tools/parsing/flex/2.5.39.nix30
-rw-r--r--pkgs/development/web/nodejs/default.nix4
-rw-r--r--pkgs/games/minecraft-server/default.nix35
-rw-r--r--pkgs/games/minecraft/default.nix6
-rw-r--r--pkgs/games/mnemosyne/default.nix57
-rw-r--r--pkgs/games/openttd/default.nix4
-rwxr-xr-xpkgs/games/planetaryannihilation/default.nix54
-rw-r--r--pkgs/games/spring/springlobby.nix11
-rw-r--r--pkgs/games/spring/unitsync_path_find.patch10
-rw-r--r--pkgs/games/super-tux-kart/default.nix1
-rw-r--r--pkgs/games/widelands/boost_and_cmake_die_die_die.patch11
-rw-r--r--pkgs/games/widelands/default.nix103
-rw-r--r--pkgs/misc/themes/gtk2/oxygen-gtk/default.nix4
-rw-r--r--pkgs/os-specific/linux/acpid/default.nix4
-rw-r--r--pkgs/os-specific/linux/bluez/bluez5.nix9
-rw-r--r--pkgs/os-specific/linux/busybox/default.nix4
-rw-r--r--pkgs/os-specific/linux/cifs-utils/default.nix4
-rw-r--r--pkgs/os-specific/linux/conky/default.nix62
-rw-r--r--pkgs/os-specific/linux/conky/stdbool.patch12
-rw-r--r--pkgs/os-specific/linux/cpufrequtils/default.nix5
-rw-r--r--pkgs/os-specific/linux/cpufrequtils/remove-pot-creation-date.patch24
-rw-r--r--pkgs/os-specific/linux/criu/default.nix38
-rw-r--r--pkgs/os-specific/linux/gradm/default.nix3
-rw-r--r--pkgs/os-specific/linux/hostapd/default.nix5
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix11
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.10.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.12.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.13.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.14.nix (renamed from pkgs/os-specific/linux/kernel/linux-3.11.nix)8
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.2.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix8
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix57
-rw-r--r--pkgs/os-specific/linux/kernel/sec_perm-2.6.24.patch16
-rw-r--r--pkgs/os-specific/linux/lockdep/default.nix29
-rw-r--r--pkgs/os-specific/linux/lttng-modules/default.nix4
-rw-r--r--pkgs/os-specific/linux/lxc/default.nix10
-rw-r--r--pkgs/os-specific/linux/microcode/intel.nix6
-rw-r--r--pkgs/os-specific/linux/musl/default.nix24
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix8
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/kernel-3.13.patch122
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/kernel-3.14.patch12
-rw-r--r--pkgs/os-specific/linux/pax-utils/default.nix4
-rw-r--r--pkgs/os-specific/linux/procps-ng/default.nix2
-rw-r--r--pkgs/os-specific/linux/procps/watch.nix29
-rw-r--r--pkgs/os-specific/linux/psmisc/default.nix2
-rw-r--r--pkgs/os-specific/linux/shadow/default.nix8
-rw-r--r--pkgs/os-specific/linux/sysdig/default.nix41
-rw-r--r--pkgs/os-specific/linux/sysdig/default.upstream3
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix1
-rw-r--r--pkgs/os-specific/linux/systemd/fix_console_in_containers.patch14
-rw-r--r--pkgs/os-specific/linux/udisks/1-default.nix12
-rw-r--r--pkgs/os-specific/linux/udisks/cve-2014-0004.patch82
-rw-r--r--pkgs/os-specific/linux/util-linux/default.nix4
-rw-r--r--pkgs/os-specific/linux/v4l2loopback/default.nix32
-rw-r--r--pkgs/servers/amqp/qpid-cpp/default.nix13
-rw-r--r--pkgs/servers/amqp/rabbitmq-server/default.nix4
-rw-r--r--pkgs/servers/apcupsd/default.nix6
-rw-r--r--pkgs/servers/gpsd/default.nix2
-rw-r--r--pkgs/servers/http/apache-httpd/2.4.nix4
-rw-r--r--pkgs/servers/http/apache-modules/mod_dnssd/default.nix28
-rw-r--r--pkgs/servers/http/nginx/default.nix7
-rw-r--r--pkgs/servers/http/tomcat/6.0.nix4
-rw-r--r--pkgs/servers/irc/ngircd/default.nix29
-rw-r--r--pkgs/servers/monitoring/munin/default.nix11
-rw-r--r--pkgs/servers/monitoring/net-snmp/default.nix10
-rw-r--r--pkgs/servers/monitoring/seyren/default.nix28
-rw-r--r--pkgs/servers/news/leafnode/default.nix28
-rw-r--r--pkgs/servers/nosql/mongodb/default.nix4
-rw-r--r--pkgs/servers/nosql/rethinkdb/default.nix4
-rw-r--r--pkgs/servers/openafs-client/default.nix7
-rw-r--r--pkgs/servers/rippled/default.nix32
-rw-r--r--pkgs/servers/rippled/scons-env.patch46
-rw-r--r--pkgs/servers/search/elasticsearch/default.nix4
-rw-r--r--pkgs/servers/shellinabox/default.nix7
-rw-r--r--pkgs/servers/shellinabox/shellinabox-minus.patch28
-rw-r--r--pkgs/servers/shishi/default.nix6
-rw-r--r--pkgs/servers/shishi/no-gets.patch20
-rw-r--r--pkgs/servers/sql/mariadb/default.nix6
-rw-r--r--pkgs/servers/sql/mysql/5.5.x.nix4
-rw-r--r--pkgs/servers/sql/postgresql/9.3.x.nix6
-rw-r--r--pkgs/servers/x11/xorg/default.nix358
-rw-r--r--pkgs/servers/x11/xorg/extra.list1
-rw-r--r--pkgs/servers/x11/xorg/old.list10
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix27
-rw-r--r--pkgs/servers/x11/xorg/tarballs-7.7.list90
-rw-r--r--pkgs/servers/x11/xorg/xf86-video-intel-testing.nix14
-rw-r--r--pkgs/servers/x11/xorg/xkeyboard-config-eo.patch71
-rw-r--r--pkgs/shells/ipython/default.nix4
-rw-r--r--pkgs/shells/zsh/default.nix10
-rw-r--r--pkgs/stdenv/generic/default.nix21
-rw-r--r--pkgs/stdenv/generic/setup.sh8
-rwxr-xr-xpkgs/stdenv/mingw/setup.sh2
-rw-r--r--pkgs/tools/X11/xdg-user-dirs/default.nix20
-rw-r--r--pkgs/tools/admin/gtk-vnc/default.nix19
-rw-r--r--pkgs/tools/archivers/unrar/default.nix34
-rw-r--r--pkgs/tools/audio/gvolicon/default.nix27
-rw-r--r--pkgs/tools/backup/duply/default.nix6
-rw-r--r--pkgs/tools/backup/httrack/default.nix4
-rw-r--r--pkgs/tools/backup/wal-e/default.nix32
-rw-r--r--pkgs/tools/compression/bsdiff/builder.sh8
-rw-r--r--pkgs/tools/compression/bsdiff/default.nix37
-rw-r--r--pkgs/tools/compression/bsdiff/include-systypes.patch12
-rw-r--r--pkgs/tools/filesystems/btrfsprogs/default.nix4
-rw-r--r--pkgs/tools/filesystems/e2fsprogs/default.nix2
-rw-r--r--pkgs/tools/filesystems/f2fs-tools/default.nix27
-rw-r--r--pkgs/tools/filesystems/mtpfs/default.nix26
-rw-r--r--pkgs/tools/graphics/pfstools/default.nix4
-rw-r--r--pkgs/tools/graphics/qrencode/default.nix4
-rw-r--r--pkgs/tools/misc/apparix/default.nix20
-rw-r--r--pkgs/tools/misc/autorandr/default.nix1
-rw-r--r--pkgs/tools/misc/coreutils/default.nix4
-rw-r--r--pkgs/tools/misc/file/default.nix4
-rw-r--r--pkgs/tools/misc/logstash-forwarder/default.nix19
-rw-r--r--pkgs/tools/misc/mc/default.nix7
-rw-r--r--pkgs/tools/misc/mdbtools/git.nix15
-rw-r--r--pkgs/tools/misc/minicom/default.nix6
-rw-r--r--pkgs/tools/misc/pastebinit/default.nix33
-rw-r--r--pkgs/tools/misc/units/default.nix7
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/networking/cjdns/builder.sh9
-rw-r--r--pkgs/tools/networking/cjdns/default.nix26
-rw-r--r--pkgs/tools/networking/dd-agent/default.nix11
-rw-r--r--pkgs/tools/networking/dhcpcd/default.nix2
-rw-r--r--pkgs/tools/networking/dnsmasq/default.nix4
-rw-r--r--pkgs/tools/networking/easyrsa/default.nix3
-rw-r--r--pkgs/tools/networking/iperf/default.nix2
-rw-r--r--pkgs/tools/networking/isync/default.nix5
-rw-r--r--pkgs/tools/networking/lftp/default.nix14
-rw-r--r--pkgs/tools/networking/mailutils/default.nix3
-rw-r--r--pkgs/tools/networking/miniupnpd/default.nix19
-rw-r--r--pkgs/tools/networking/mosh/default.nix2
-rw-r--r--pkgs/tools/networking/mtr/default.nix12
-rw-r--r--pkgs/tools/networking/mtr/edd425.patch218
-rw-r--r--pkgs/tools/networking/nbd/default.nix9
-rw-r--r--pkgs/tools/networking/ndjbdns/default.nix21
-rw-r--r--pkgs/tools/networking/network-manager-applet/default.nix11
-rw-r--r--pkgs/tools/networking/openssh/default.nix16
-rw-r--r--pkgs/tools/networking/pdnsd/default.nix2
-rw-r--r--pkgs/tools/networking/socat/default.nix2
-rw-r--r--pkgs/tools/networking/spiped/default.nix31
-rw-r--r--pkgs/tools/networking/spiped/no-dev-stderr.patch26
-rw-r--r--pkgs/tools/networking/sproxy-web/default.nix26
-rw-r--r--pkgs/tools/networking/sproxy/default.nix36
-rw-r--r--pkgs/tools/networking/stunnel/default.nix26
-rw-r--r--pkgs/tools/networking/tcpflow/default.nix29
-rw-r--r--pkgs/tools/networking/tcpflow/default.upstream1
-rw-r--r--pkgs/tools/networking/telnet/default.nix3
-rw-r--r--pkgs/tools/package-management/checkinstall/default.nix3
-rw-r--r--pkgs/tools/package-management/checkinstall/readlink-types.patch19
-rw-r--r--pkgs/tools/package-management/disnix/default.nix4
-rw-r--r--pkgs/tools/package-management/disnix/disnixos/default.nix8
-rw-r--r--pkgs/tools/package-management/disnix/dysnomia/default.nix7
-rw-r--r--pkgs/tools/package-management/nix-repl/default.nix9
-rw-r--r--pkgs/tools/package-management/nix/default.nix6
-rw-r--r--pkgs/tools/package-management/nix/hash-check.patch14
-rw-r--r--pkgs/tools/package-management/nix/unstable.nix6
-rw-r--r--pkgs/tools/security/cb0cat/default.nix24
-rw-r--r--pkgs/tools/security/cb1cat/default.nix24
-rw-r--r--pkgs/tools/security/ccid/default.nix4
-rw-r--r--pkgs/tools/security/duo-unix/default.nix28
-rw-r--r--pkgs/tools/security/fail2ban/default.nix4
-rw-r--r--pkgs/tools/security/hashcat/default.nix48
-rw-r--r--pkgs/tools/security/nmap/default.nix39
-rw-r--r--pkgs/tools/security/p0f/default.nix39
-rw-r--r--pkgs/tools/security/pcsclite/default.nix18
-rw-r--r--pkgs/tools/security/scrypt/default.nix7
-rw-r--r--pkgs/tools/security/ssdeep/default.nix23
-rw-r--r--pkgs/tools/security/tor/default.nix6
-rw-r--r--pkgs/tools/security/vidalia/default.nix1
-rw-r--r--pkgs/tools/system/ipmiutil/default.nix4
-rw-r--r--pkgs/tools/system/plan9port/builder.sh46
-rw-r--r--pkgs/tools/system/plan9port/default.nix12
-rw-r--r--pkgs/tools/system/plan9port/fontsrv.patch14
-rw-r--r--pkgs/tools/system/sizes/default.nix21
-rw-r--r--pkgs/tools/text/kakasi/default.nix23
-rw-r--r--pkgs/tools/text/silver-searcher/default.nix6
-rw-r--r--pkgs/tools/typesetting/tex/texlive/default.nix8
-rw-r--r--pkgs/tools/typesetting/tex/texlive/extra.nix4
-rw-r--r--pkgs/top-level/all-packages.nix499
-rw-r--r--pkgs/top-level/haskell-defaults.nix8
-rw-r--r--pkgs/top-level/haskell-packages.nix236
-rw-r--r--pkgs/top-level/node-packages-generated.nix4547
-rw-r--r--pkgs/top-level/node-packages.json4
-rw-r--r--pkgs/top-level/perl-packages.nix1350
-rw-r--r--pkgs/top-level/php-packages.nix35
-rw-r--r--pkgs/top-level/python-packages-generated.nix22
-rw-r--r--pkgs/top-level/python-packages.json3
-rw-r--r--pkgs/top-level/python-packages.nix244
-rw-r--r--pkgs/top-level/release-python.nix1
1090 files changed, 27203 insertions, 12309 deletions
diff --git a/pkgs/applications/audio/audacious/default.nix b/pkgs/applications/audio/audacious/default.nix
index d838d29e8be1..409a831727bb 100644
--- a/pkgs/applications/audio/audacious/default.nix
+++ b/pkgs/applications/audio/audacious/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation {
         source $stdenv/setup
         # gsettings schemas for file dialogues
         for file in "$out/bin/"*; do
-          wrapProgram "$file" --prefix XDG_DATA_DIRS : "$XDG_ADD"
+          wrapProgram "$file" --prefix XDG_DATA_DIRS : "$XDG_ADD:$GSETTINGS_SCHEMAS_PATH"
         done
       )
     '';
diff --git a/pkgs/applications/audio/drumkv1/default.nix b/pkgs/applications/audio/drumkv1/default.nix
index 9a812fd261ad..39f6ae0ded4e 100644
--- a/pkgs/applications/audio/drumkv1/default.nix
+++ b/pkgs/applications/audio/drumkv1/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "drumkv1-${version}";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
-    sha256 = "0bhj4liv6c0rw0gsh1zygj4a9vmwl3jdz2j6zzdxbqdk21xq4zpz";
+    sha256 = "0wxbn5qm3dn9spwbm618flgrwvls7bipg0nhgn0lv4za2g823g56";
   };
 
   buildInputs = [ jackaudio libsndfile lv2 qt4 ];
diff --git a/pkgs/applications/audio/ekho/default.nix b/pkgs/applications/audio/ekho/default.nix
new file mode 100644
index 000000000000..dd9b830be841
--- /dev/null
+++ b/pkgs/applications/audio/ekho/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, pkgconfig
+, libsndfile, pulseaudio
+}:
+
+let
+  version = "5.8.2";
+in stdenv.mkDerivation rec {
+  name = "ekho-${version}";
+
+  meta = with stdenv.lib; {
+    description = "Chinese text-to-speech software";
+    homepage    = "http://www.eguidedog.net/ekho.php";
+    longDescription = ''
+      Ekho (余音) is a free, open source and multilingual text-to-speech (TTS)
+      software. It supports Cantonese (Chinese dialect spoken in Hong Kong and
+      part of Guangdong province), Mandarin (standard Chinese), Zhaoan Hakka
+      (a dialect in Taiwan), Tibetan, Ngangien (an ancient Chinese before
+      Yuan Dynasty) and Korean (in trial).
+    '';
+    license        = licenses.gpl2Plus;
+    platforms      = platforms.linux;
+    hydraPlatforms = [];
+    maintainers    = with maintainers; [ iyzsong ];
+  };
+
+  src = fetchurl {
+    url = "mirror://sourceforge/e-guidedog/Ekho/${version}/${name}.tar.xz";
+    sha256 = "0ym6lpcpsvwvsiwlzkl1509a2hljwcw7synngrmqjq1n49ww00nj";
+  };
+
+  preConfigure = with stdenv.lib; ''
+    NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE ${optionalString stdenv.is64bit "-D_x86_64"}"
+    NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DEKHO_DATA_PATH=\"$out/share/ekho-data\""
+  '';
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ libsndfile pulseaudio ];
+}
diff --git a/pkgs/applications/audio/ncmpc/default.nix b/pkgs/applications/audio/ncmpc/default.nix
new file mode 100755
index 000000000000..6db80f39e2cf
--- /dev/null
+++ b/pkgs/applications/audio/ncmpc/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, glib, ncurses, mpd_clientlib }:
+
+stdenv.mkDerivation rec {
+  version = "0.21";
+  name = "ncmpc-${version}";
+
+  src = fetchurl {
+    url = "http://www.musicpd.org/download/ncmpc/0/ncmpc-${version}.tar.bz2";
+    sha256 = "648e846e305c867cb937dcb467393c2f5a30bf460bdf77b63de7af69fba1fd07";
+  };
+
+  buildInputs = [ pkgconfig glib ncurses mpd_clientlib ];
+
+  meta = with stdenv.lib; {
+    description = "Curses-based interface for MPD (music player daemon)";
+    homepage    = http://www.musicpd.org/clients/ncmpc/;
+    license     = licenses.gpl2Plus;
+    maintainers = with maintainers; [ _1126 ];
+    platforms   = platforms.all;
+  };
+}
+
diff --git a/pkgs/applications/audio/pamixer/default.nix b/pkgs/applications/audio/pamixer/default.nix
new file mode 100644
index 000000000000..acdda1799d03
--- /dev/null
+++ b/pkgs/applications/audio/pamixer/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchgit, pulseaudio, boost }:
+
+let
+  tag = "1.1";
+in
+
+stdenv.mkDerivation rec {
+
+  name = "pamixer-${tag}";
+
+  src = fetchgit {
+    url = git://github.com/cdemoulins/pamixer;
+    rev = "refs/tags/${tag}";
+    sha256 = "03r0sbfj85wp6yxa87pjg69ivmk0mxxa2nykr8gf2c607igmb034";
+  };
+
+  buildInputs = [ pulseaudio boost ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp pamixer $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "pamixer is 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
+      - List the sinks
+      - List the sources
+      - Increase / Decrease the volume for a device
+      - Mute or unmute a device";
+    homepage = https://github.com/cdemoulins/pamixer;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers._1126 ];
+  };
+}
diff --git a/pkgs/applications/audio/qmmp/default.nix b/pkgs/applications/audio/qmmp/default.nix
index 122b7ed7867e..a18ef97dd60a 100644
--- a/pkgs/applications/audio/qmmp/default.nix
+++ b/pkgs/applications/audio/qmmp/default.nix
@@ -28,11 +28,11 @@
 # handle that.
 
 stdenv.mkDerivation rec {
-  name = "qmmp-0.7.5";
+  name = "qmmp-0.7.6";
 
   src = fetchurl {
     url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2";
-    sha256 = "0ryg4hns5zi9swn2q4vxjya3i4drdqfzycngwzd6fdl176lswrk0";
+    sha256 = "1hq08ii06lyfg516jrvxdfcjj509gvglvdlsr96aqi1fh8v4k5p9";
   };
 
   buildInputs =
diff --git a/pkgs/applications/audio/qtractor/default.nix b/pkgs/applications/audio/qtractor/default.nix
index e04ad9ddd14c..c70842c399ad 100644
--- a/pkgs/applications/audio/qtractor/default.nix
+++ b/pkgs/applications/audio/qtractor/default.nix
@@ -3,12 +3,12 @@
 , libtool, libvorbis, pkgconfig, qt4, rubberband, stdenv }:
 
 stdenv.mkDerivation rec {
-  version = "0.5.12";
+  version = "0.6.0";
   name = "qtractor-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/qtractor/${name}.tar.gz";
-    sha256 = "0yf2p9l3hj8pd550v3rbbjqkvxnvn8p6nsnm4aj2v5q4mgg2c8cc";
+    sha256 = "0aw6g0biqzysnsk5vd6wx3q1khyav6krhjz7bzk0v7d2160bn40r";
   };
 
   buildInputs =
diff --git a/pkgs/applications/audio/samplv1/default.nix b/pkgs/applications/audio/samplv1/default.nix
index 2748dfd5db41..f1d3be317d17 100644
--- a/pkgs/applications/audio/samplv1/default.nix
+++ b/pkgs/applications/audio/samplv1/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "samplv1-${version}";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/samplv1/${name}.tar.gz";
-    sha256 = "04vldwpm4059czwd4i5yv07daqjnzs2zsrld779likans9ib3ri8";
+    sha256 = "1cx3qs9vrdwmym2qsghqq53bshnjqgpqypsilr1m2i1cpfnfrr6x";
   };
 
   buildInputs = [ jackaudio libsndfile lv2 qt4 ];
diff --git a/pkgs/applications/audio/synthv1/default.nix b/pkgs/applications/audio/synthv1/default.nix
index 229d4fdac146..4037b88ecb7e 100644
--- a/pkgs/applications/audio/synthv1/default.nix
+++ b/pkgs/applications/audio/synthv1/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "synthv1-${version}";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/synthv1/${name}.tar.gz";
-    sha256 = "0zyxja1s74fr95qbwsyykggs3af2ndm2hz1l0avb645xgm93vcfv";
+    sha256 = "1j1x8n3rlwrh373wqmm6mj3cgyk3apvnpqygx1700fl4cf249agl";
   };
 
   buildInputs = [ qt4 jackaudio lv2 ];
diff --git a/pkgs/applications/audio/yoshimi/default.nix b/pkgs/applications/audio/yoshimi/default.nix
index 698c8dc0ddad..df0b98cdd9e4 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.1.0";
+  version = "1.2.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
-    sha256 = "0rb0q0bqsaaj3imdjgfaigj1kbjqkx1gm91nh2mdgy9i09rygsbv";
+    sha256 = "0p4v39kxxzzfvaazzxarx54i164ghpfxq0ljkavlgr8fnix5v3mx";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/display-managers/slim/default.nix b/pkgs/applications/display-managers/slim/default.nix
index 0b5bcccfb21a..bf2c34b9318e 100644
--- a/pkgs/applications/display-managers/slim/default.nix
+++ b/pkgs/applications/display-managers/slim/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, cmake, pkgconfig, xorg, libjpeg, libpng
-, fontconfig, freetype, pam, dbus_libs }:
+, fontconfig, freetype, pam, dbus_libs, makeWrapper, pkgs }:
 
 stdenv.mkDerivation rec {
   name = "slim-1.3.6";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
       ./run-once.patch
     ];
 
-  preConfigure = "substituteInPlace CMakeLists.txt --replace /etc $out/etc --replace /lib $out/lib";
+  preConfigure = "substituteInPlace CMakeLists.txt --replace /lib $out/lib";
 
   cmakeFlags = [ "-DUSE_PAM=1" ];
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ cmake pkgconfig libjpeg libpng fontconfig freetype
       pam dbus_libs
-      xorg.libX11 xorg.libXext xorg.libXrandr xorg.libXrender xorg.libXmu xorg.libXft
+      xorg.libX11 xorg.libXext xorg.libXrandr xorg.libXrender xorg.libXmu xorg.libXft makeWrapper
     ];
 
   NIX_CFLAGS_LINK = "-lXmu";
diff --git a/pkgs/applications/display-managers/slim/runtime-paths.patch b/pkgs/applications/display-managers/slim/runtime-paths.patch
index f6811dbe6682..5a8e07bfbf07 100644
--- a/pkgs/applications/display-managers/slim/runtime-paths.patch
+++ b/pkgs/applications/display-managers/slim/runtime-paths.patch
@@ -1,6 +1,6 @@
-diff -ru -x '*~' slim-1.3.6-orig/app.cpp slim-1.3.6/app.cpp
+diff -ru slim-1.3.6-orig/app.cpp slim-1.3.6/app.cpp
 --- slim-1.3.6-orig/app.cpp	2013-10-02 00:38:05.000000000 +0200
-+++ slim-1.3.6/app.cpp	2013-10-15 11:02:55.629263422 +0200
++++ slim-1.3.6/app.cpp	2014-03-30 19:01:04.115414201 +0200
 @@ -200,7 +200,9 @@
  
  	/* Read configuration and theme */
@@ -23,3 +23,48 @@ diff -ru -x '*~' slim-1.3.6-orig/app.cpp slim-1.3.6/app.cpp
  		themeName = cfg->getOption("current_theme");
  		string::size_type pos;
  		if ((pos = themeName.find(",")) != string::npos) {
+diff -ru slim-1.3.6-orig/CMakeLists.txt slim-1.3.6/CMakeLists.txt
+--- slim-1.3.6-orig/CMakeLists.txt	2013-10-02 00:38:05.000000000 +0200
++++ slim-1.3.6/CMakeLists.txt	2014-03-30 19:16:48.445069729 +0200
+@@ -23,7 +23,7 @@
+ 
+ set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")
+ set(PKGDATADIR "${CMAKE_INSTALL_PREFIX}/share/slim")
+-set(SYSCONFDIR "/etc")
++set(SYSCONFDIR "$ENV{out}/etc")
+ set(LIBDIR "/lib")
+ set(MANDIR "${CMAKE_INSTALL_PREFIX}/share/man")
+ 
+@@ -40,7 +40,7 @@
+ set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DPACKAGE=\"slim\"")
+ set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DVERSION=\"${SLIM_VERSION}\"")
+ set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DPKGDATADIR=\"${PKGDATADIR}\"")
+-set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DSYSCONFDIR=\"${SYSCONFDIR}\"")
++set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DSYSCONFDIR=\"/etc\"")
+ 
+ # Flags
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -g -O2")
+Only in slim-1.3.6: CMakeLists.txt~
+diff -ru slim-1.3.6-orig/slimlock.cpp slim-1.3.6/slimlock.cpp
+--- slim-1.3.6-orig/slimlock.cpp	2013-10-02 00:38:05.000000000 +0200
++++ slim-1.3.6/slimlock.cpp	2014-03-30 19:01:04.115414201 +0200
+@@ -106,13 +106,17 @@
+ 	unsigned int cfg_passwd_timeout;
+ 	// Read user's current theme
+ 	cfg = new Cfg;
+-	cfg->readConf(CFGFILE);
++	char *cfgfile = getenv("SLIM_CFGFILE");
++	if (!cfgfile) cfgfile = CFGFILE;
++	cfg->readConf(cfgfile);
+ 	cfg->readConf(SLIMLOCKCFG);
+ 	string themebase = "";
+ 	string themefile = "";
+ 	string themedir = "";
+ 	themeName = "";
+-	themebase = string(THEMESDIR) + "/";
++	char *themesdir = getenv("SLIM_THEMESDIR");
++	if (!themesdir) themesdir = THEMESDIR;
++	themebase = string(themesdir) + "/";
+ 	themeName = cfg->getOption("current_theme");
+ 	string::size_type pos;
+ 	if ((pos = themeName.find(",")) != string::npos) {
diff --git a/pkgs/applications/editors/emacs-modes/cryptol/default.nix b/pkgs/applications/editors/emacs-modes/cryptol/default.nix
new file mode 100644
index 000000000000..3290041178ef
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/cryptol/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchgit, emacs }:
+
+stdenv.mkDerivation rec {
+  name    = "cryptol-mode-${version}";
+  version = "20141010";
+
+  src = fetchgit {
+    url    = "https://github.com/thoughtpolice/cryptol-mode.git";
+    rev    = "50075d49d7c4ec4b03ce31b634424410262c1ad4";
+    sha256 = "6ecd4904b7f3b1cd0721591ce45f16fe11cd1dd5fd7af8110d1f84b133ed4aec";
+  };
+
+  buildInputs = [ emacs ];
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Emacs major mode for Cryptol";
+    homepage    = "https://thoughtpolice/cryptol-mode";
+    license     = stdenv.lib.licenses.gpl3Plus;
+    platforms   = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix b/pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix
index 4b2692a5e22a..eae338d241de 100644
--- a/pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix
+++ b/pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://www.emacswiki.org/emacs/download/flymake-cursor.el";
-    sha256 = "1qqppd1786w8pl1avjb01n23lwihb7m0hr23abjklsxz03gmp4qz";
+    sha256 = "10cpzrd588ya52blghxss5zkn6x8hc7bx1h0qbcdlybbmkjgpkxr";
   };
 
   phases = [ "buildPhase" "installPhase"];
@@ -26,7 +26,5 @@ stdenv.mkDerivation rec {
     description = "Displays flymake error msg in minibuffer after delay";
     homepage = http://www.emacswiki.org/emacs/flymake-cursor.el;
     license = stdenv.lib.licenses.publicDomain;
-
-    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 289c8868876d..8671a926f677 100644
--- a/pkgs/applications/editors/emacs-modes/idris/default.nix
+++ b/pkgs/applications/editors/emacs-modes/idris/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchgit, emacs }:
 
 stdenv.mkDerivation rec {
-  name = "idris-mode-20140223";
+  name = "idris-mode-20140405";
 
   src = fetchgit {
     url = https://github.com/idris-hackers/idris-mode.git;
-    rev = "486470533e74c55192e92a1afa050475915ee1e7";
-    sha256 = "ff2e6bd8fbf421e8f2db0789d2ff56c5103775b911b99bab64e4652d332bad43";
+    rev = "2e2d18fb757da4b42940ebe2a57d7a117175489f";
+    sha256 = "d4b52c6c43c038c94a7464cd9c849cd40c01696c440da8b057c00a9be22f9ac0";
   };
 
   buildInputs = [ emacs ];
diff --git a/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix b/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix
index 25055df8ea35..a832c7d5942c 100644
--- a/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix
+++ b/pkgs/applications/editors/emacs-modes/structured-haskell-mode/default.nix
@@ -11,13 +11,12 @@ cabal.mkDerivation (self: {
   postInstall = ''
     emacs -L elisp --batch -f batch-byte-compile "elisp/"*.el
     install -d $out/share/emacs/site-lisp
-    install "elisp/"*.elc $out/share/emacs/site-lisp
+    install "elisp/"*.el "elisp/"*.elc  $out/share/emacs/site-lisp
   '';
   meta = {
     homepage = "https://github.com/chrisdone/structured-haskell-mode";
     description = "Structured editing Emacs mode for Haskell";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.pSub ];
   };
 })
diff --git a/pkgs/applications/editors/idea/default.nix b/pkgs/applications/editors/idea/default.nix
index 31812bcb9895..c6301bd8a302 100644
--- a/pkgs/applications/editors/idea/default.nix
+++ b/pkgs/applications/editors/idea/default.nix
@@ -5,10 +5,10 @@
 let
 
   buildIdea =
-  { name, src, description, license }:
+  { name, version, build, src, description, license }:
 
   stdenv.mkDerivation rec {
-    inherit name src license;
+    inherit name build src license;
     ideaItem = makeDesktopItem {
       name = "IDEA";
       exec = "idea";
@@ -23,26 +23,26 @@ let
     buildCommand = ''
       tar xvzf $src
       mkdir -p $out
-      cp -a $name $out
+      cp -a idea-$build $out
 
       interpreter=$(echo ${stdenv.glibc}/lib/ld-linux*.so.2)
 
-      7z x $out/$name/lib/snappy-java-1.0.5.jar
-      rm $out/$name/lib/snappy-java-1.0.5.jar
+      7z x $out/idea-$build/lib/snappy-java-1.0.5.jar
+      rm $out/idea-$build/lib/snappy-java-1.0.5.jar
       if [ "${stdenv.system}" == "x86_64-linux" ];then
-        patchelf --set-interpreter $interpreter $out/$name/bin/fsnotifier64
+        patchelf --set-interpreter $interpreter $out/idea-$build/bin/fsnotifier64
         patchelf --set-rpath ${stdenv.gcc.gcc}/lib64/ org/xerial/snappy/native/Linux/amd64/libsnappyjava.so
       else
-        patchelf --set-interpreter $interpreter $out/$name/bin/fsnotifier
+        patchelf --set-interpreter $interpreter $out/idea-$build/bin/fsnotifier
         patchelf --set-rpath ${stdenv.gcc.gcc}/lib/ org/xerial/snappy/native/Linux/i386/libsnappyjava.so
       fi
-      7z a -tzip $out/$name/lib/snappy-java-1.0.5.jar .
+      7z a -tzip $out/idea-$build/lib/snappy-java-1.0.5.jar .
 
       mkdir -p $out/bin
 
       jdk=${jdk}/lib/openjdk
 
-      makeWrapper $out/$name/bin/idea.sh $out/bin/idea \
+      makeWrapper $out/idea-$build/bin/idea.sh $out/bin/idea \
         --prefix PATH : ${jdk}/bin:${coreutils}/bin:${gnugrep}/bin:${which}/bin:${git}/bin \
         --prefix LD_RUN_PATH : ${stdenv.gcc.gcc}/lib/ \
         --prefix JDK_HOME : $jdk \
@@ -64,23 +64,27 @@ let
 
 in {
 
-  idea_community_1302 = buildIdea {
-    name = "idea-IC-133.696";
+  idea_community_1311 = buildIdea rec {
+    name = "idea-community-${version}";
+    version = "13.1.1";
+    build = "IC-135.480";
     description = "IntelliJ IDEA 13 Community Edition";
     license = stdenv.lib.licenses.asl20.shortName;
     src = fetchurl {
-      url = http://download-ln.jetbrains.com/idea/ideaIC-13.0.2.tar.gz;
-      sha256 = "a776878c2dba877761b74d2886d006f64eec3c9694dbd1578380287a9c8cbd53";
+      url = "http://download-ln.jetbrains.com/idea/ideaIC-${version}.tar.gz";
+      sha256 = "9e28d3e5682b037c9d6190622ab2a47112fa792539083cc7a4cb24f3f7bf7d22";
     };
   };
 
-  idea_ultimate_1302 = buildIdea {
-    name = "idea-IU-133.696";
+  idea_ultimate_1311 = buildIdea rec {
+    name = "idea-ultimate-${version}";
+    version = "13.1.1";
+    build = "IU-135.480";
     description = "IntelliJ IDEA 13 Ultimate Edition";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
-      url = http://download-ln.jetbrains.com/idea/ideaIU-13.0.2.tar.gz;
-      sha256 = "7ba9499ecc82029470712d6ead520db1e2cf520e4f86d382cbdea1d0052712d0";
+      url = "http://download-ln.jetbrains.com/idea/ideaIU-${version}.tar.gz";
+      sha256 = "d699abcdcace387105a465049e015c1367dedf42f7a5f5a1f7b3d840e98b2658";
     };
   };
 
diff --git a/pkgs/applications/editors/kdevelop/default.nix b/pkgs/applications/editors/kdevelop/default.nix
index 14f9c1eb0d49..b815b0523471 100644
--- a/pkgs/applications/editors/kdevelop/default.nix
+++ b/pkgs/applications/editors/kdevelop/default.nix
@@ -1,28 +1,20 @@
 { stdenv, fetchurl, kdevplatform, cmake, pkgconfig, automoc4, shared_mime_info,
-  kdebase_workspace, gettext, perl, okteta }:
+  kdebase_workspace, gettext, perl, okteta, qjson }:
 
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
-  version = "4.3.1";
+  version = "4.6.0";
   pname = "kdevelop";
 
   src = fetchurl {
-    url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.bz2";
-    sha256 = "0015hv39rqhyq1w6jw65lx7ls4l5pc3a2asvd5zsd65831vrfxxs";
+    url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+    sha256 = "1ee9e7b8c46f575dd29d920cfd6284130f2e738a2e1f52dfd97b075fab2e4c73";
   };
 
-  buildInputs = [ kdevplatform kdebase_workspace okteta ];
+  buildInputs = [ kdevplatform kdebase_workspace okteta qjson ];
 
   nativeBuildInputs = [ cmake pkgconfig automoc4 shared_mime_info gettext perl ];
 
-  patches =
-    [ ( fetchurl {
-        url = https://git.reviewboard.kde.org/r/105211/diff/raw/;
-        name = "okteta-0.9.patch"; # fixes build with KDE-4.9.x
-        sha256 = "1mvqhw7jr1vi66l3jgam3slyfafcvwy4g3iapfi69dpfnzhmcxl0";
-      } )
-    ];
-
   NIX_CFLAGS_COMPILE = "-I${okteta}/include/KDE";
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/editors/vim/wrapper.nix b/pkgs/applications/editors/vim/wrapper.nix
index 709753ff8eb5..72e868050537 100644
--- a/pkgs/applications/editors/vim/wrapper.nix
+++ b/pkgs/applications/editors/vim/wrapper.nix
@@ -2,10 +2,12 @@
 
 let
 
-  vimrcfile = writeText "vimrc" (if vimrc == null then "" else vimrc);
+  vimrcfile = writeText "vimrc" vimrc;
+
+  p = builtins.parseDrvName vim.name;
 
 in stdenv.mkDerivation rec {
-  name = "vimwrapper-${vim.version}";
+  name = "${p.name}-with-vimrc-${p.version}";
 
   buildInputs = [ makeWrapper vim vimrcfile ];
 
diff --git a/pkgs/applications/editors/yi/yi-contrib.nix b/pkgs/applications/editors/yi/yi-contrib.nix
index 0ed6e8778622..c7d3f0940164 100644
--- a/pkgs/applications/editors/yi/yi-contrib.nix
+++ b/pkgs/applications/editors/yi/yi-contrib.nix
@@ -1,10 +1,12 @@
-{ cabal, dataAccessor, filepath, mtl, split, yi }:
+{ cabal, filepath, lens, mtl, split, time, transformersBase, yi }:
 
 cabal.mkDerivation (self: {
   pname = "yi-contrib";
-  version = "0.7.1";
-  sha256 = "0915ikck01kc5npbvywd9r7azylqrhfymzc72rf4iaghz4w939li";
-  buildDepends = [ dataAccessor filepath mtl split yi ];
+  version = "0.8.1";
+  sha256 = "0jsbga30x302mr708vj5y7cpc961vh85dshpq2zlrf44dh0kmpvf";
+  buildDepends = [
+    filepath lens mtl split time transformersBase yi
+  ];
   meta = {
     homepage = "http://haskell.org/haskellwiki/Yi";
     description = "Add-ons to Yi, the Haskell-Scriptable Editor";
diff --git a/pkgs/applications/editors/yi/yi.nix b/pkgs/applications/editors/yi/yi.nix
index b504af149045..96e4a06965c1 100644
--- a/pkgs/applications/editors/yi/yi.nix
+++ b/pkgs/applications/editors/yi/yi.nix
@@ -1,31 +1,30 @@
 { cabal, alex, binary, Cabal, cautiousFile, concreteTyperep
-, dataAccessor, dataAccessorMtl, dataAccessorTemplate, derive, Diff
-, dlist, dyre, filepath, fingertree, glib, gtk, hashable, hint
-, HUnit, mtl, pango, parsec, pointedlist, QuickCheck, random
-, regexBase, regexTdfa, split, testFramework, testFrameworkHunit
-, time, uniplate, unixCompat, unorderedContainers, utf8String, vty
+, dataDefault, derive, Diff, dlist, dyre, filepath, fingertree
+, glib, gtk, hashable, hint, HUnit, lens, mtl, pango, parsec
+, pointedlist, QuickCheck, random, regexBase, regexTdfa, safe
+, split, tasty, tastyHunit, tastyQuickcheck, time, transformersBase
+, uniplate, unixCompat, unorderedContainers, utf8String, vty
 , xdgBasedir
 }:
 
 cabal.mkDerivation (self: {
   pname = "yi";
-  version = "0.7.1";
-  sha256 = "111xg7qpjhsqf6pfr136wh8km3lrgpzghd9h5rlypafr61w59vly";
+  version = "0.8.1";
+  sha256 = "1hyqlydc0na9pkb3fkbp13c6vnp4f80z8237bvrv12wkk5syyn23";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    binary Cabal cautiousFile concreteTyperep dataAccessor
-    dataAccessorMtl dataAccessorTemplate derive Diff dlist dyre
-    filepath fingertree glib gtk hashable hint mtl pango parsec
-    pointedlist QuickCheck random regexBase regexTdfa split time
-    uniplate unixCompat unorderedContainers utf8String vty xdgBasedir
+    binary Cabal cautiousFile concreteTyperep dataDefault derive Diff
+    dlist dyre filepath fingertree glib gtk hashable hint lens mtl
+    pango parsec pointedlist QuickCheck random regexBase regexTdfa safe
+    split time transformersBase uniplate unixCompat unorderedContainers
+    utf8String vty xdgBasedir
   ];
   testDepends = [
-    filepath HUnit QuickCheck testFramework testFrameworkHunit
+    filepath HUnit QuickCheck tasty tastyHunit tastyQuickcheck
   ];
   buildTools = [ alex ];
   configureFlags = "-fpango";
-  jailbreak = true;
   doCheck = false;
   meta = {
     homepage = "http://haskell.org/haskellwiki/Yi";
diff --git a/pkgs/applications/graphics/shotwell/default.nix b/pkgs/applications/graphics/shotwell/default.nix
new file mode 100644
index 000000000000..1953f951d169
--- /dev/null
+++ b/pkgs/applications/graphics/shotwell/default.nix
@@ -0,0 +1,62 @@
+{ fetchurl, stdenv, m4, glibc, gtk3, libexif, libgphoto2, libsoup, libxml2, vala, sqlite, webkit
+, pkgconfig, gnome3, gst_all_1, which, udev, libraw, glib, json_glib, gettext, desktop_file_utils
+, lcms2, gdk_pixbuf, librsvg, makeWrapper, gnome_doc_utils }:
+
+# for dependencies see http://www.yorba.org/projects/shotwell/install/
+
+let
+  rest = stdenv.mkDerivation rec {
+    name = "rest-0.7.12";
+
+    src = fetchurl {
+      url = "mirror://gnome/sources/rest/0.7/${name}.tar.xz";
+      sha256 = "0fmg7fq5fx0jg3ryk71kwdkspsvj42acxy9imk7vznkqj29a9zqn";
+    };
+    
+    configureFlags = "--with-ca-certificates=/etc/ssl/certs/ca-bundle.crt";
+    
+    buildInputs = [ pkgconfig glib libsoup ];
+  };
+in stdenv.mkDerivation rec {
+  version = "0.18.0";
+  name = "shotwell-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/shotwell/0.18/${name}.tar.xz";
+    sha256 = "0cq0zs13f3f4xyz46yvj4qfpm5nh4ypds7r53pkqm4a3n8ybf5v7";
+  };
+
+  NIX_CFLAGS_COMPILE = "-I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include";
+  
+  configureFlags = [ "--disable-gsettings-convert-install" ];
+  
+  preConfigure = ''
+    patchShebangs .
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/gsettings-schemas/$name
+    mv $out/share/glib-2.0 $out/share/gsettings-schemas/$name/
+  '';
+
+  preFixup = ''
+    wrapProgram "$out/bin/shotwell" \
+     --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+     --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+
+  buildInputs = [ m4 glibc gtk3 libexif libgphoto2 libsoup libxml2 vala sqlite webkit pkgconfig
+                  gst_all_1.gstreamer gst_all_1.gst-plugins-base gnome3.libgee which udev gnome3.gexiv2
+                  libraw rest json_glib gettext desktop_file_utils glib lcms2 gdk_pixbuf librsvg
+                  makeWrapper gnome_doc_utils ];
+
+  meta = with stdenv.lib; {
+    description = "Popular photo organizer for the GNOME desktop";
+    homepage = http://www.yorba.org/projects/shotwell/;
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [iElectric];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/ike/default.nix b/pkgs/applications/ike/default.nix
index 7bba42152e8c..1414310ebf33 100644
--- a/pkgs/applications/ike/default.nix
+++ b/pkgs/applications/ike/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     make install
     for file in "$out"/bin/* "$out"/sbin/*; do
-        wrapProgram $file --prefix LD_LIBRARY_PATH ":" "$out/lib:${openssl}/lib:${gcc.gcc}/lib:${libedit}/lib:${qt4}/lib"
+        wrapProgram $file --prefix LD_LIBRARY_PATH ":" "$out/lib:${openssl}/lib:${gcc.gcc}/lib:${stdenv.glibc}/lib::${gcc.gcc}/lib64:${stdenv.glibc}/lib64:${libedit}/lib:${qt4}/lib"
     done
   '';
 
@@ -40,6 +40,6 @@ stdenv.mkDerivation rec {
     description = "IPsec Client for FreeBSD, NetBSD and many Linux based operating systems";
     platforms = platforms.unix;
     maintainers = [ maintainers.iElectric ];
-    license = "sleepycat";
+    license = licenses.sleepycat;
   };
 }
diff --git a/pkgs/applications/misc/audio/sox/default.nix b/pkgs/applications/misc/audio/sox/default.nix
index 50aa92f8d293..570699fb619e 100644
--- a/pkgs/applications/misc/audio/sox/default.nix
+++ b/pkgs/applications/misc/audio/sox/default.nix
@@ -1,48 +1,31 @@
-{ composableDerivation, lib, fetchurl, alsaLib, libao, lame, libmad }:
-
-let inherit (composableDerivation) edf; in
-
-composableDerivation.composableDerivation {} {
-  name = "sox-14.3.0";
+{ stdenv, fetchurl
+, enableAlsa ? true, alsaLib ? null
+, enableLibao ? true, libao ? null
+, enableLame ? false, lame ? null
+, enableLibmad ? true, libmad ? null
+, enableLibogg ? true, libogg ? null, libvorbis ? null
+}:
+let
+  inherit (stdenv.lib) optional optionals;
+in stdenv.mkDerivation rec {
+  name = "sox-14.4.1";
 
   src = fetchurl {
-    url = mirror://sourceforge/sox/sox-14.3.0.tar.gz;
-    sha256 = "15r39dq9nlwrypm0vpxmbxyqqv0bd6284djbi1fdfrlkjhf43gws";
+    url = "mirror://sourceforge/sox/${name}.tar.gz";
+    sha256 = "16x8gykfjdhxg0kdxwzcwgwpm5caa08y2mx18siqsq0ywmpjr34s";
   };
 
-  flags =
-    # are these options of interest? We'll see
-    #--disable-fftw          disable usage of FFTW
-    #--enable-debug          enable debugging
-    #--disable-cpu-clip      disable tricky cpu specific clipper
-    edf { name = "alsa"; enable = { buildInputs = [alsaLib]; }; }
-    // edf { name = "libao"; enable = { buildInputs = [libao]; }; }
-    // edf { name = "oss"; }
-    // edf { name = "sun_audio"; }
-    // edf { name = "dl-lame"; enable.buildInputs = [ lame ]; } # use shared library
-    // edf { name = "lame";    enable.buildInputs = [ lame ]; }
-    // edf { name = "dl-mad"; enable.buildInputs = [ libmad ]; } # use shared library
-    // edf { name = "mad";    enable.buildInputs =[ libmad ]; }
-    ;
-
-  cfg = {
-    ossSupport = false;
-    sun_audioSupport = false;
-  } // lib.listToAttrs
-    [ { name = "dl-lameSupport"; value = true; }
-      { name = "dl-madSupport"; value = true; }
-    ];
-
-  configureFlags = ["-enable-dl-lame"];
-
-  optionals = [ "libsndfile" "libogg" "flac" "ffmpeg" "libmad" "lame"
-                 /* "amr-wb" "amr-nb" */
-                "libsamplerate" /* "ladspa" */ ];
+  buildInputs =
+    (optional enableAlsa alsaLib) ++
+    (optional enableLibao libao) ++
+    (optional enableLame lame) ++
+    (optional enableLibmad libmad) ++
+    (optionals enableLibogg [ libogg libvorbis ]);
 
   meta = {
     description = "Sample Rate Converter for audio";
     homepage = http://www.mega-nerd.com/SRC/index.html;
-    maintainers = [lib.maintainers.marcweber];
+    maintainers = [stdenv.lib.maintainers.marcweber stdenv.lib.maintainers.shlevy];
     # you can choose one of the following licenses:
     license = [
       "GPL"
diff --git a/pkgs/applications/misc/bitcoin/default.nix b/pkgs/applications/misc/bitcoin/default.nix
index 1785526d14a9..118b56c55b07 100644
--- a/pkgs/applications/misc/bitcoin/default.nix
+++ b/pkgs/applications/misc/bitcoin/default.nix
@@ -1,26 +1,39 @@
-{ fetchurl, stdenv, openssl, db, boost, zlib, miniupnpc, qt4 }:
+{ fetchurl, stdenv, openssl, db48, boost, zlib, miniupnpc, qt4, utillinux
+, pkgconfig, protobuf, qrencode }:
 
 stdenv.mkDerivation rec {
-  version = "0.8.6";
+  version = "0.9.1";
   name = "bitcoin-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/bitcoin/${name}-linux.tar.gz";
-    sha256 = "036xx06gyrfh65rpdapff3viz1f38vzkj7lnhil6fc0s7pjmsjbk";
+    url = "https://bitcoin.org/bin/${version}/${name}-linux.tar.gz";
+    sha256 = "3fabc1c629007b465a278525883663d41a2ba62699f2773536a8bf59ca210425";
   };
 
-  buildInputs = [ openssl db boost zlib miniupnpc qt4 ];
+  # hexdump from utillinux is required for tests
+  buildInputs = [
+    openssl db48 boost zlib miniupnpc qt4 utillinux pkgconfig protobuf qrencode
+  ];
 
-  configurePhase = ''
-    cd src
-    qmake
+  unpackPhase = ''
+    mkdir tmp-extract && (cd tmp-extract && tar xf $src)
+    tar xf tmp-extract/bitcoin*/src/bitcoin*.tar*
+    cd bitcoin*
   '';
 
-  installPhase = ''
-    mkdir -p $out/bin
-    cp bitcoin-qt $out/bin
+  configureFlags = [
+    "--with-boost=${boost}"
+  ];
+
+  preCheck = ''
+    # At least one test requires writing in $HOME
+    HOME=$TMPDIR
   '';
 
+  doCheck = true;
+
+  enableParallelBuilding = true;
+
   meta = {
       description = "Bitcoin is a peer-to-peer currency";
       longDescription= ''
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index 683c4242a9c1..2e9cf46bf864 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -5,11 +5,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "blender-2.69";
+  name = "blender-2.70";
 
   src = fetchurl {
     url = "http://download.blender.org/source/${name}.tar.gz";
-    sha256 = "02ffakkbax1kl4ycakxq20yp9hmw1qj1qndjjqxnhhhdxifpyjn9";
+    sha256 = "0j73yfpavcrzg5v54kcha7sig6179g5ykrlhih8d288pnb5c7596";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index f3d7c26fe5cc..c2d8e7979e45 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -4,11 +4,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "calibre-1.25.0";
+  name = "calibre-1.31.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/calibre/${name}.tar.xz";
-    sha256 = "1y221r5vgq426ldqjrx3qvgf3j3v2wncwzra747psvhwf95zd5fd";
+    sha256 = "1fl42y8ppw8s51v66dqsrg1ib28yi6z5779r9wfvdbl9v1clilfc";
   };
 
   inherit python;
diff --git a/pkgs/applications/misc/cura/default.nix b/pkgs/applications/misc/cura/default.nix
new file mode 100644
index 000000000000..937025c08403
--- /dev/null
+++ b/pkgs/applications/misc/cura/default.nix
@@ -0,0 +1,71 @@
+{ stdenv, python27Packages, curaengine, makeDesktopItem, fetchgit }:
+let
+    py = python27Packages;
+in
+stdenv.mkDerivation rec {
+  name = "cura";
+
+  src = fetchgit {
+    url = "https://github.com/daid/Cura";
+    rev = "58414695269d60ca9b165e8cbc3424933ed79403";
+    sha256 = "1nxrrz8sjjx9i9cyvz15vay6yarnywp3vlk7qzr65sw88lzxgq23";
+    fetchSubmodules = false;
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "Cura";
+    exec = "cura";
+    icon = "cura";
+    comment = "Cura";
+    desktopName = "Cura";
+    genericName = "3D printing host software";
+    categories = "GNOME;GTK;Utility;";
+  };
+
+  python_deps = [ py.pyopengl py.pyserial py.numpy py.wxPython30 py.power py.setuptools ];
+
+  pythonPath = python_deps;
+
+  propagatedBuildInputs = python_deps;
+
+  buildInputs = [ curaengine py.wrapPython ];
+
+  configurePhase = "";
+  buildPhase = "";
+
+  installPhase = ''
+    # Install Python code.
+    site_packages=$out/lib/python2.7/site-packages
+    mkdir -p $site_packages
+    cp -r Cura $site_packages/
+
+    # Install resources.
+    resources=$out/share/cura
+    mkdir -p $resources
+    cp -r resources/* $resources/
+    sed -i 's|os.path.join(os.path.dirname(__file__), "../../resources")|"'$resources'"|g' $site_packages/Cura/util/resources.py
+
+    # Install executable.
+    mkdir -p $out/bin
+    cp Cura/cura.py $out/bin/cura
+    chmod +x $out/bin/cura
+    sed -i 's|#!/usr/bin/python|#!/usr/bin/env python|' $out/bin/cura
+    wrapPythonPrograms
+
+    # Make it find CuraEngine.
+    echo "def getEngineFilename(): return '${curaengine}/bin/CuraEngine'" >> $site_packages/Cura/util/sliceEngine.py
+
+    # Install desktop item.
+    mkdir -p "$out"/share/applications
+    cp "$desktopItem"/share/applications/* "$out"/share/applications/
+    mkdir -p "$out"/share/icons
+    ln -s "$resources/images/c.png" "$out"/share/icons/cura.png
+  '';
+
+  meta = with stdenv.lib; {
+    description = "3D printing host software";
+    homepage = https://github.com/daid/Cura;
+    license = licenses.agpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/curaengine/default.nix b/pkgs/applications/misc/curaengine/default.nix
new file mode 100644
index 000000000000..256d337f679e
--- /dev/null
+++ b/pkgs/applications/misc/curaengine/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchgit }:
+stdenv.mkDerivation {
+    name = "curaengine";
+
+    src = fetchgit {
+        url = "https://github.com/Ultimaker/CuraEngine";
+        rev = "62667ff2e7479b55d75e3d1dc9136242adf4a6a0";
+        sha256 = "0c68xmnq4c49vzg2cyqb375kc72rcnghj21wp3919w8sfwil00vr";
+    };
+
+    installPhase = ''
+        mkdir -p $out/bin
+        cp CuraEngine $out/bin/
+    '';
+
+    meta = with stdenv.lib; {
+        description = "Engine for processing 3D models into 3D printing instructions";
+        homepage = https://github.com/Ultimaker/CuraEngine;
+        license = licenses.agpl3;
+        platforms = platforms.linux;
+    };
+}
diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix
new file mode 100644
index 000000000000..c35a2c7ff821
--- /dev/null
+++ b/pkgs/applications/misc/electrum/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pythonPackages, slowaes, ecdsa, pyqt4 }:
+
+pythonPackages.buildPythonPackage rec {
+  name = "electrum-${version}";
+  version = "1.9.8";
+
+  src = fetchurl {
+    url = "https://download.electrum.org/Electrum-${version}.tar.gz";
+    sha256 = "8fc144a32013e4a747fea27fff981762a6b9e14cde9ffb405c4c721975d846ff";
+  };
+
+  buildInputs = [ slowaes ecdsa ];
+
+  propagatedBuildInputs = [ 
+    slowaes
+    ecdsa
+    pyqt4
+  ];
+
+  postPatch = ''
+    mkdir -p $out/share
+    sed -i 's@usr_share = .*@usr_share = os.getenv("out")+"/share"@' setup.py
+  '';
+
+  meta = {
+    description = "Bitcoin thin-wallet";
+    long-description = "Electrum is an easy to use Bitcoin client. It protects you from losing coins in a backup mistake or computer failure, because your wallet can be recovered from a secret phrase that you can write on paper or learn by heart. There is no waiting time when you start the client, because it does not download the Bitcoin blockchain.";
+    homepage = "https://electrum.org";
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = [ "emery@vfemail.net" ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/applications/misc/gnuradio/default.nix b/pkgs/applications/misc/gnuradio/default.nix
index 7e67682f17f9..1a0dea586d0e 100644
--- a/pkgs/applications/misc/gnuradio/default.nix
+++ b/pkgs/applications/misc/gnuradio/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   name = "gnuradio-${version}";
-  version = "3.7.2.1";
+  version = "3.7.3";
 
   src = fetchurl {
     url = "http://gnuradio.org/releases/gnuradio/${name}.tar.gz";
-    sha256 = "101wr19nxfc5x7i4s10vgrypaa0vj2pkg8b2vn5j5s9iv8gpwswc";
+    sha256 = "0caj7dqppav53nhn0ima106hpsn0sakw57v1ihac9fk7ka0x2w8w";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/misc/ikiwiki/default.nix b/pkgs/applications/misc/ikiwiki/default.nix
index c0dce81c8039..b347f971ee0f 100644
--- a/pkgs/applications/misc/ikiwiki/default.nix
+++ b/pkgs/applications/misc/ikiwiki/default.nix
@@ -23,7 +23,7 @@ assert mercurialSupport -> (mercurial != null);
 
 let
   name = "ikiwiki";
-  version = "3.20140125";
+  version = "3.20140227";
 
   lib = stdenv.lib;
 in
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://ftp.de.debian.org/debian/pool/main/i/ikiwiki/${name}_${version}.tar.gz";
-    sha256 = "06r95xhm8pnvswgmkf3j7h4n6b1nmk0v0znmnzblkdx7xh12m0hd";
+    sha256 = "1bbpqs4c1la1yqcxcxj3xip3wadjnjq0wawv19j6d6baymm66cr3";
   };
 
   buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate
diff --git a/pkgs/applications/misc/keepassx/2.0.nix b/pkgs/applications/misc/keepassx/2.0.nix
index 6d54032bb385..1a79af7cb577 100644
--- a/pkgs/applications/misc/keepassx/2.0.nix
+++ b/pkgs/applications/misc/keepassx/2.0.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, cmake, libgcrypt, qt4, xlibs, ... }:
 
 stdenv.mkDerivation {
-  name = "keepassx-2.0alpha5";
+  name = "keepassx2-2.0alpha5";
   src = fetchurl {
     url = "https://github.com/keepassx/keepassx/archive/2.0-alpha5.tar.gz";
     sha256 = "1vxj306zhrr38mvsy3vpjlg6d0xwlcvsi3l69nhhwzkccsc4smfm";
diff --git a/pkgs/applications/misc/mupdf/default.nix b/pkgs/applications/misc/mupdf/default.nix
index 57ac7da9b78b..ef7571f5d14f 100644
--- a/pkgs/applications/misc/mupdf/default.nix
+++ b/pkgs/applications/misc/mupdf/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://mupdf.com/;
+    repositories.git = git://git.ghostscript.com/mupdf.git;
     description = "Lightweight PDF viewer and toolkit written in portable C";
     license = "GPLv3+";
     maintainers = with stdenv.lib.maintainers; [ viric ];
diff --git a/pkgs/applications/misc/printrun/default.nix b/pkgs/applications/misc/printrun/default.nix
new file mode 100644
index 000000000000..dc258d653280
--- /dev/null
+++ b/pkgs/applications/misc/printrun/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, python27Packages, fetchgit }:
+let
+  py = python27Packages;
+in
+py.buildPythonPackage rec {
+  name = "printrun";
+
+  src = fetchgit {
+    url = "https://github.com/kliment/Printrun";
+    rev = "0a7f2335d0c02c3cc283200867b41f8b337b1387";
+    sha256 = "1zvh5ih89isv51sraljm29z9k00srrdnklwkyp27ymxzlbcwq6gv";
+  };
+
+  propagatedBuildInputs = [ py.wxPython py.pyserial py.dbus py.psutil ];
+
+  doCheck = false;
+
+  postPatch = ''
+    sed -i -r "s|/usr(/local)?/share/|$out/share/|g" printrun/utils.py
+    sed -i "s|distutils.core|setuptools|" setup.py
+    sed -i "s|distutils.command.install |setuptools.command.install |" setup.py
+  '';
+
+  postInstall = ''
+    for f in $out/share/applications/*.desktop; do
+      sed -i -e "s|/usr/|$out/|g" "$f"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Pronterface, Pronsole, and Printcore - Pure Python 3d printing host software";
+    homepage = https://github.com/kliment/Printrun;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/spacefm/default.nix b/pkgs/applications/misc/spacefm/default.nix
index 6d52f63ff6b4..7dbe723d9eb2 100644
--- a/pkgs/applications/misc/spacefm/default.nix
+++ b/pkgs/applications/misc/spacefm/default.nix
@@ -3,21 +3,21 @@
 }:
 
 let
-  version = "0.9.2";
+  version = "0.9.4";
 
 in stdenv.mkDerivation rec {
   name = "spacefm-${version}";
 
   src = fetchurl {
     url = "https://github.com/IgnorantGuru/spacefm/blob/pkg/${version}/${name}.tar.xz?raw=true";
-    sha256 = "3767137d74aa78597ffb42a6121784e91a4276efcd5d718b3793b9790f82268c";
+    sha256 = "0marwa031jk24q8hy90dr7yw6rv5hn1shar404zpb1k57v4nr23m";
   };
 
   buildInputs = [ gtk3 udev desktop_file_utils shared_mime_info intltool pkgconfig makeWrapper ];
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/spacefm" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share"
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = {
diff --git a/pkgs/applications/misc/surf/default.nix b/pkgs/applications/misc/surf/default.nix
index 42792ba8f91d..651cfcca4067 100644
--- a/pkgs/applications/misc/surf/default.nix
+++ b/pkgs/applications/misc/surf/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "01b8hq8z2wd7ssym5bypx2b15mrs1lhgkrcgxf700kswxvxcrhgx";
   };
 
-  buildInputs = [ gtk makeWrapper webkit pkgconfig glib libsoup ];
+  buildInputs = [ gtk makeWrapper webkit gsettings_desktop_schemas pkgconfig glib libsoup ];
 
   # Allow users set their own list of patches
   inherit patches;
@@ -21,9 +21,12 @@ stdenv.mkDerivation rec {
   preConfigure = [ ''sed -i "s@PREFIX = /usr/local@PREFIX = $out@g" config.mk'' ];
   installPhase = ''
     make PREFIX=/ DESTDIR=$out install
+  '';
+
+  preFixup = ''
     wrapProgram "$out/bin/surf" \
       --prefix GIO_EXTRA_MODULES : ${glib_networking}/lib/gio/modules \
-      --prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share"
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = {
diff --git a/pkgs/applications/misc/synergy/cryptopp.patch b/pkgs/applications/misc/synergy/cryptopp.patch
index d0aebb872610..1c296423acd6 100644
--- a/pkgs/applications/misc/synergy/cryptopp.patch
+++ b/pkgs/applications/misc/synergy/cryptopp.patch
@@ -1,32 +1,30 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3b61fc0..2206646 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -133,6 +133,9 @@ if (UNIX)
+diff -urN synergy-1.4.17-Source/CMakeLists.txt synergy-1.4.17-Source-fix/CMakeLists.txt
+--- synergy-1.4.17-Source/CMakeLists.txt	2014-03-14 21:34:19.000000000 +0100
++++ synergy-1.4.17-Source-fix/CMakeLists.txt	2014-04-11 13:37:18.839338710 +0200
+@@ -145,6 +145,9 @@
  	check_type_size(long SIZEOF_LONG)
  	check_type_size(short SIZEOF_SHORT)
  
-+    # let's just assume cryptopp exists (provided by the Nix expression)
-+    list(APPEND libs cryptopp)
++	# let's just assume cryptopp exists (provided by the Nix expression)
++	list(APPEND libs cryptopp)
 +
  	# pthread is used on both Linux and Mac
  	check_library_exists("pthread" pthread_create "" HAVE_PTHREAD)
  	if (HAVE_PTHREAD)
-@@ -303,7 +306,6 @@ if (VNC_SUPPORT)
+@@ -317,7 +320,6 @@
  endif()
  
  add_subdirectory(src)
--add_subdirectory(tools)
+-add_subdirectory(ext)
  
  if (WIN32)
- 	# add /analyze in order to unconver potential bugs in the source code
-diff --git a/src/lib/io/CCryptoMode.h b/src/lib/io/CCryptoMode.h
-index 9b7e8ad..0d659ac 100644
---- a/src/lib/io/CCryptoMode.h
-+++ b/src/lib/io/CCryptoMode.h
-@@ -17,9 +17,9 @@
- 
- #pragma once
+ 	# TODO:	consider using /analyze to uncover potential bugs in the source code.
+diff -urN synergy-1.4.17-Source/src/lib/io/CryptoMode_cryptopp.h synergy-1.4.17-Source-fix/src/lib/io/CryptoMode_cryptopp.h
+--- synergy-1.4.17-Source/src/lib/io/CryptoMode_cryptopp.h	2014-02-28 13:36:45.000000000 +0100
++++ synergy-1.4.17-Source-fix/src/lib/io/CryptoMode_cryptopp.h	2014-04-11 13:36:01.111985556 +0200
+@@ -25,6 +25,6 @@
+ #	pragma GCC system_header
+ #endif 
  
 -#include <cryptopp562/gcm.h>
 -#include <cryptopp562/modes.h>
@@ -34,21 +32,14 @@ index 9b7e8ad..0d659ac 100644
 +#include <cryptopp/gcm.h>
 +#include <cryptopp/modes.h>
 +#include <cryptopp/aes.h>
- #include "ECryptoMode.h"
- #include "CString.h"
+diff -urN synergy-1.4.17-Source/src/lib/io/CryptoStream_cryptopp.h synergy-1.4.17-Source-fix/src/lib/io/CryptoStream_cryptopp.h
+--- synergy-1.4.17-Source/src/lib/io/CryptoStream_cryptopp.h	2014-02-28 13:36:45.000000000 +0100
++++ synergy-1.4.17-Source-fix/src/lib/io/CryptoStream_cryptopp.h	2014-04-11 13:36:07.173013005 +0200
+@@ -25,5 +25,5 @@
+ #	pragma GCC system_header
+ #endif
  
-diff --git a/src/lib/io/CCryptoStream.h b/src/lib/io/CCryptoStream.h
-index 104b1f6..09c4dc4 100644
---- a/src/lib/io/CCryptoStream.h
-+++ b/src/lib/io/CCryptoStream.h
-@@ -20,8 +20,8 @@
- #include "BasicTypes.h"
- #include "CStreamFilter.h"
- #include "CCryptoMode.h"
 -#include <cryptopp562/osrng.h>
 -#include <cryptopp562/sha.h>
 +#include <cryptopp/osrng.h>
 +#include <cryptopp/sha.h>
- 
- class CCryptoOptions;
- 
diff --git a/pkgs/applications/misc/synergy/default.nix b/pkgs/applications/misc/synergy/default.nix
index c01d67943e57..834b514148b6 100644
--- a/pkgs/applications/misc/synergy/default.nix
+++ b/pkgs/applications/misc/synergy/default.nix
@@ -1,29 +1,31 @@
-{ stdenv, fetchurl, cmake, x11, libX11, libXi, libXtst, libXrandr, xinput
-, cryptopp ? null, unzip ? null }:
+{ stdenv, fetchurl, cmake, x11, libX11, libXi, libXtst, libXrandr, xinput, curl
+, cryptopp ? null, unzip }:
 
 assert stdenv.isLinux -> cryptopp != null;
-assert !stdenv.isLinux -> unzip != null;
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "synergy-1.4.15";
+  name = "synergy-1.4.17";
 
   src = fetchurl {
-    url = "http://synergy.googlecode.com/files/${name}-Source.tar.gz";
-    sha256 = "0l1mxxky9hacyva0npzkgkwg4wkmihzq3abdrds0w5f6is44adv4";
+    url = "http://fossfiles.com/synergy/${name}-r2055-Source.tar.gz";
+    sha256 = "1mwaapvq9vsm0rdpq99fyzcw6wbp83rg6cylcqcgjjd21c6y9iwm";
   };
 
   patches = optional stdenv.isLinux ./cryptopp.patch;
 
-  postPatch = if stdenv.isLinux then ''
+  postPatch = (if stdenv.isLinux then ''
     sed -i -e '/HAVE_X11_EXTENSIONS_XRANDR_H/c \
       set(HAVE_X11_EXTENSIONS_XRANDR_H true)' CMakeLists.txt
   '' else ''
-    ${unzip}/bin/unzip -d tools/cryptopp562 tools/cryptopp562.zip
+    ${unzip}/bin/unzip -d ext/cryptopp562 ext/cryptopp562.zip
+  '') + ''
+    ${unzip}/bin/unzip -d ext/gmock-1.6.0 ext/gmock-1.6.0.zip
+    ${unzip}/bin/unzip -d ext/gtest-1.6.0 ext/gtest-1.6.0.zip
   '';
 
-  buildInputs = [ cmake x11 libX11 libXi libXtst libXrandr xinput ]
+  buildInputs = [ cmake x11 libX11 libXi libXtst libXrandr xinput curl ]
              ++ optional stdenv.isLinux cryptopp;
 
   # At this moment make install doesn't work for synergy
diff --git a/pkgs/applications/misc/xmobar/default.nix b/pkgs/applications/misc/xmobar/default.nix
index 49c1a403814b..a7aeed339e24 100644
--- a/pkgs/applications/misc/xmobar/default.nix
+++ b/pkgs/applications/misc/xmobar/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "xmobar";
-  version = "0.20";
-  sha256 = "06ra5nx53rlijkb3hhp5p5a0b3bx14921jgkkp1xqciscnspj2nv";
+  version = "0.20.1";
+  sha256 = "16jfgn6ciqxrwj6qjhbcpms7mzlbxfaxyxfxp64xvnw626xlpjvk";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/applications/networking/bittorrentsync/default.nix b/pkgs/applications/networking/bittorrentsync/default.nix
index c6277da704e1..d0611d5b6024 100644
--- a/pkgs/applications/networking/bittorrentsync/default.nix
+++ b/pkgs/applications/networking/bittorrentsync/default.nix
@@ -1,47 +1,42 @@
 { stdenv, fetchurl, patchelf }:
 
-# this package contains the daemon version of bittorrent sync
-# it's unfortunately closed source.
-
 let
-  # TODO: arm, ppc, osx
-
   arch = if stdenv.system == "x86_64-linux" then "x64"
     else if stdenv.system == "i686-linux" then "i386"
     else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
-    
-  interpreter = if stdenv.system == "x86_64-linux" then "ld-linux-x86-64.so.2"
-    else if stdenv.system == "i686-linux" then "ld-linux.so.2"
-    else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
 
-  version = "1.2.91";
-  sha256 = if stdenv.system == "x86_64-linux" then "1rx5mmk3ffkh6dbm0m33nyx6spsxqjw9djclcf9x9bs3zfyzgmnd"
-    else if stdenv.system == "i686-linux" then "1566mp01149gsb57dv87420w1vq2f3adp6g1c90xdxjxzd67yqpw"
+  sha256 = if stdenv.system == "x86_64-linux" then "16jdnip51fsnc2g0vib2zb4f06z5p1myzv9brrp42lq63l4skylj"
+    else if stdenv.system == "i686-linux" then "15bspn9frm2n7bzj7pdgbpd7gjjcxp0yx2sksa4ly6wmlv9lvf1j"
     else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
 
-in stdenv.mkDerivation {
-  name = "btsync-bin-${version}";
-  src = fetchurl {
-    url = "http://syncapp.bittorrent.com/${version}/btsync_${arch}-${version}.tar.gz";
+  libPath = stdenv.lib.makeLibraryPath [ stdenv.gcc.libc ];
+in
+stdenv.mkDerivation rec {
+  name = "btsync-${version}";
+  version = "1.3.87";
+
+  src  = fetchurl {
+    url  = "http://syncapp.bittorrent.com/${version}/btsync_${arch}-${version}.tar.gz";
     inherit sha256;
   };
 
-  sourceRoot = ".";
+  dontStrip   = true; # Don't strip, otherwise patching the rpaths breaks
+  sourceRoot  = ".";
+  buildInputs = [ patchelf ];
 
   installPhase = ''
     ensureDir "$out/bin/"
     cp -r "btsync" "$out/bin/"
 
-    patchelf --set-interpreter ${stdenv.glibc}/lib/${interpreter} \
-      "$out/bin/btsync"
+    patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+      --set-rpath ${libPath} "$out/bin/btsync"
   '';
 
-  buildInputs = [ patchelf ];
-
   meta = {
-    homepage = "http://labs.bittorrent.com/experiments/sync.html";
     description = "Automatically sync files via secure, distributed technology";
-    license = stdenv.lib.licenses.unfree;
-    maintainers = [ stdenv.lib.maintainers.iElectric ];
+    homepage    = "http://www.bittorrent.com/sync";
+    license     = stdenv.lib.licenses.unfreeRedistributable;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ iElectric thoughtpolice ];
   };
 }
diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix
new file mode 100644
index 000000000000..e230af175300
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -0,0 +1,39 @@
+{ stdenv, mkChromiumDerivation }:
+
+with stdenv.lib;
+
+mkChromiumDerivation (base: rec {
+  name = "chromium-browser";
+  buildTargets = [ "chrome" ];
+
+  installPhase = ''
+    ensureDir "$libExecPath"
+    cp -v "$buildPath/"*.pak "$libExecPath/"
+    cp -v "$buildPath/icudtl.dat" "$libExecPath/"
+    cp -vR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
+    cp -v $buildPath/libffmpegsumo.so "$libExecPath/"
+
+    cp -v "$buildPath/chrome" "$libExecPath/$packageName"
+
+    mkdir -vp "$out/share/man/man1"
+    cp -v "$buildPath/chrome.1" "$out/share/man/man1/$packageName.1"
+
+    for icon_file in chrome/app/theme/chromium/product_logo_*[0-9].png; do
+      num_and_suffix="''${icon_file##*logo_}"
+      icon_size="''${num_and_suffix%.*}"
+      expr "$icon_size" : "^[0-9][0-9]*$" || continue
+      logo_output_prefix="$out/share/icons/hicolor"
+      logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps"
+      mkdir -vp "$logo_output_path"
+      cp -v "$icon_file" "$logo_output_path/$packageName.png"
+    done
+  '';
+
+  meta = {
+    description = "An open source web browser from Google";
+    homepage = http://www.chromium.org/;
+    maintainers = with maintainers; [ goibhniu chaoflow aszlig wizeman ];
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
new file mode 100644
index 000000000000..9727de1a5157
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -0,0 +1,201 @@
+{ stdenv, fetchurl, ninja, which
+
+# default dependencies
+, bzip2, flac, speex, icu, libopus
+, libevent, expat, libjpeg, snappy
+, libpng, libxml2, libxslt
+, xdg_utils, yasm, minizip, libwebp
+, libusb1, libexif, pciutils
+
+, python, pythonPackages, perl, pkgconfig
+, nspr, udev, krb5
+, utillinux, alsaLib
+, gcc, bison, gperf
+, glib, gtk, dbus_glib
+, libXScrnSaver, libXcursor, libXtst, mesa
+, protobuf, speechd, libXdamage
+
+# optional dependencies
+, libgcrypt ? null # gnomeSupport || cupsSupport
+
+# package customization
+, enableSELinux ? false, libselinux ? null
+, enableNaCl ? false
+, useOpenSSL ? false, nss ? null, openssl ? null
+, gnomeSupport ? false, gnome ? null
+, gnomeKeyringSupport ? false, libgnome_keyring3 ? null
+, proprietaryCodecs ? true
+, cupsSupport ? false
+, pulseSupport ? false, pulseaudio ? null
+
+, source
+, plugins
+}:
+
+buildFun:
+
+with stdenv.lib;
+
+let
+  # The additional attributes for creating derivations based on the chromium
+  # source tree.
+  extraAttrs = buildFun base;
+
+  mkGypFlags =
+    let
+      sanitize = value:
+        if value == true then "1"
+        else if value == false then "0"
+        else "${value}";
+      toFlag = key: value: "-D${key}=${sanitize value}";
+    in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs));
+
+  gypFlagsUseSystemLibs = {
+    use_system_bzip2 = true;
+    use_system_flac = true;
+    use_system_libevent = true;
+    use_system_libexpat = true;
+    use_system_libexif = true;
+    use_system_libjpeg = true;
+    use_system_libpng = true;
+    use_system_libwebp = true;
+    use_system_libxml = true;
+    use_system_opus = true;
+    use_system_snappy = true;
+    use_system_speex = true;
+    use_system_ssl = useOpenSSL;
+    use_system_stlport = true;
+    use_system_xdg_utils = true;
+    use_system_yasm = true;
+    use_system_zlib = false;
+    use_system_protobuf = true;
+
+    use_system_harfbuzz = false;
+    use_system_icu = false; # Doesn't support ICU 52 yet.
+    use_system_libusb = false; # http://crbug.com/266149
+    use_system_skia = false;
+    use_system_sqlite = false; # http://crbug.com/22208
+    use_system_v8 = false;
+  };
+
+  opusWithCustomModes = libopus.override {
+    withCustomModes = !versionOlder source.version "35.0.0.0";
+  };
+
+  defaultDependencies = [
+    bzip2 flac speex icu opusWithCustomModes
+    libevent expat libjpeg snappy
+    libpng libxml2 libxslt
+    xdg_utils yasm minizip libwebp
+    libusb1 libexif
+  ];
+
+  # build paths and release info
+  packageName = extraAttrs.name;
+  buildType = "Release";
+  buildPath = "out/${buildType}";
+  libExecPath = "$out/libexec/${packageName}";
+
+  base = rec {
+    name = "${packageName}-${version}";
+    inherit (source) version;
+    inherit packageName buildType buildPath;
+    src = source;
+
+    buildInputs = defaultDependencies ++ [
+      which
+      python perl pkgconfig
+      nspr udev
+      (if useOpenSSL then openssl else nss)
+      utillinux alsaLib
+      gcc bison gperf krb5
+      glib gtk dbus_glib
+      libXScrnSaver libXcursor libXtst mesa
+      pciutils protobuf speechd libXdamage
+      pythonPackages.gyp pythonPackages.ply pythonPackages.jinja2
+    ] ++ optional gnomeKeyringSupport libgnome_keyring3
+      ++ optionals gnomeSupport [ gnome.GConf libgcrypt ]
+      ++ optional enableSELinux libselinux
+      ++ optional cupsSupport libgcrypt
+      ++ optional pulseSupport pulseaudio;
+
+    # XXX: Wait for https://crbug.com/239107 and https://crbug.com/239181 to
+    #      be fixed, then try again to unbundle everything into separate
+    #      derivations.
+    prePatch = ''
+      cp -dsr --no-preserve=mode "${source.main}"/* .
+      cp -dsr --no-preserve=mode "${source.sandbox}" sandbox
+      cp -dr "${source.bundled}" third_party
+      chmod -R u+w third_party
+
+      # Hardcode source tree root in all gyp files
+      find -iname '*.gyp*' \( -type f -o -type l \) \
+        -exec sed -i -e 's|<(DEPTH)|'"$(pwd)"'|g' {} + \
+        -exec chmod u+w {} +
+    '';
+
+    postPatch = ''
+      sed -i -e '/base::FilePath exe_dir/,/^ *} *$/c \
+        sandbox_binary = base::FilePath(getenv("CHROMIUM_SANDBOX_BINARY_PATH"));
+      ' content/browser/browser_main_loop.cc
+    '';
+
+    gypFlags = mkGypFlags (gypFlagsUseSystemLibs // {
+      linux_use_gold_binary = false;
+      linux_use_gold_flags = false;
+      proprietary_codecs = false;
+      use_gnome_keyring = gnomeKeyringSupport;
+      use_gconf = gnomeSupport;
+      use_gio = gnomeSupport;
+      use_pulseaudio = pulseSupport;
+      disable_nacl = !enableNaCl;
+      use_openssl = useOpenSSL;
+      selinux = enableSELinux;
+      use_cups = cupsSupport;
+      linux_sandbox_chrome_path="${libExecPath}/${packageName}";
+      werror = "";
+
+      # 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,
+      # please get your own set of keys.
+      google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI";
+      google_default_client_id = "404761575300.apps.googleusercontent.com";
+      google_default_client_secret = "9rIFQjfnkykEmqb6FfjJQD1D";
+
+    } // optionalAttrs proprietaryCodecs {
+      # enable support for the H.264 codec
+      proprietary_codecs = true;
+      ffmpeg_branding = "Chrome";
+    } // optionalAttrs (stdenv.system == "x86_64-linux") {
+      target_arch = "x64";
+      python_arch = "x86-64";
+    } // optionalAttrs (stdenv.system == "i686-linux") {
+      target_arch = "ia32";
+      python_arch = "ia32";
+    } // (extraAttrs.gypFlags or {}));
+
+    configurePhase = ''
+      # This is to ensure expansion of $out.
+      libExecPath="${libExecPath}"
+      python build/linux/unbundle/replace_gyp_files.py ${gypFlags}
+      python build/gyp_chromium -f ninja --depth "$(pwd)" ${gypFlags}
+    '';
+
+    buildPhase = let
+      CC = "${gcc}/bin/gcc";
+      CXX = "${gcc}/bin/g++";
+    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 \
+          ${concatStringsSep " " (extraAttrs.buildTargets or [])}
+    '';
+  };
+
+# Remove some extraAttrs we supplied to the base attributes already.
+in stdenv.mkDerivation (base // removeAttrs extraAttrs [
+  "name" "gypFlags" "buildTargets"
+])
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index 6b57acc2d356..9e906191afe4 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -1,160 +1,43 @@
-{ stdenv, fetchurl, makeWrapper, ninja, which, makeDesktopItem
-
-# default dependencies
-, bzip2, flac, speex
-, libevent, expat, libjpeg
-, libpng, libxml2, libxslt
-, xdg_utils, yasm, zlib
-, libusb1, libexif, pciutils
-
-, python, pythonPackages, perl, pkgconfig
-, nspr, udev, krb5, file
-, utillinux, alsaLib
-, gcc, bison, gperf
-, glib, gtk, dbus_glib
-, libXScrnSaver, libXcursor, libXtst, mesa
-, protobuf, speechd, libXdamage
-
-# optional dependencies
-, libgcrypt ? null # gnomeSupport || cupsSupport
+{ newScope, stdenv, makeWrapper, makeDesktopItem
 
 # package customization
 , channel ? "stable"
-, enableSELinux ? false, libselinux ? null
+, enableSELinux ? false
 , enableNaCl ? false
-, useOpenSSL ? false, nss ? null, openssl ? null
-, gnomeSupport ? false, gconf ? null
-, gnomeKeyringSupport ? false, libgnome_keyring ? null
+, useOpenSSL ? false
+, gnomeSupport ? false
+, gnomeKeyringSupport ? false
 , proprietaryCodecs ? true
+, enablePepperFlash ? false
+, enablePepperPDF ? false
 , cupsSupport ? false
-, pulseSupport ? false, pulseaudio ? null
+, pulseSupport ? false
 }:
 
-with stdenv.lib;
-
 let
-  src = with getAttr channel (import ./sources.nix); stdenv.mkDerivation {
-    name = "chromium-source-${version}";
+  callPackage = newScope chromium;
 
-    src = fetchurl {
-      inherit url sha256;
+  chromium = {
+    source = callPackage ./source {
+      inherit channel;
+      # XXX: common config
+      inherit useOpenSSL;
     };
 
-    buildInputs = [ python ]; # cannot patch shebangs otherwise
-
-    phases = [ "unpackPhase" "patchPhase" "installPhase" ];
-
-    opensslPatches = optional useOpenSSL openssl.patches;
-
-    prePatch = "patchShebangs .";
-
-    patches = singleton ./sandbox_userns_31.patch;
-
-    postPatch = ''
-      sed -i -r \
-        -e 's/-f(stack-protector)(-all)?/-fno-\1/' \
-        -e 's|/bin/echo|echo|' \
-        build/common.gypi
-      sed -i '/not RunGN/,+1d' build/gyp_chromium
-      sed -i -e 's|/usr/bin/gcc|gcc|' \
-        third_party/WebKit/Source/build/scripts/scripts.gypi \
-        third_party/WebKit/Source/build/scripts/preprocessor.pm
-    '' + optionalString useOpenSSL ''
-      cat $opensslPatches | patch -p1 -d third_party/openssl/openssl
-    '' + optionalString (!versionOlder version "34.0.0.0") ''
-      sed -i '/import.*depot/d' build/gyp_chromium
-    '';
-
-    outputs = [ "out" "sandbox" "bundled" "main" ];
-    installPhase = ''
-      ensureDir "$out" "$sandbox" "$bundled" "$main"
-
-      header "copying browser main sources to $main"
-      find . -mindepth 1 -maxdepth 1 \
-        \! -path ./sandbox \
-        \! -path ./third_party \
-        \! -path ./build \
-        \! -path ./tools \
-        \! -name '.*' \
-        -print | xargs cp -rt "$main"
-      stopNest
-
-      header "copying sandbox components to $sandbox"
-      cp -rt "$sandbox" sandbox/*
-      stopNest
-
-      header "copying third party sources to $bundled"
-      cp -rt "$bundled" third_party/*
-      stopNest
-
-      header "copying build requisites to $out"
-      cp -rt "$out" build tools
-      stopNest
-
-      rm -rf "$out/tools/gyp" # XXX: Don't even copy it in the first place.
-    '';
-
-    passthru = {
-      inherit version;
+    mkChromiumDerivation = callPackage ./common.nix {
+      inherit enableSELinux enableNaCl useOpenSSL gnomeSupport
+              gnomeKeyringSupport proprietaryCodecs cupsSupport
+              pulseSupport;
     };
-  };
-
-  mkGypFlags =
-    let
-      sanitize = value:
-        if value == true then "1"
-        else if value == false then "0"
-        else "${value}";
-      toFlag = key: value: "-D${key}=${sanitize value}";
-    in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs));
-
-  gypFlagsUseSystemLibs = {
-    use_system_bzip2 = true;
-    use_system_flac = true;
-    use_system_libevent = true;
-    use_system_libexpat = true;
-    use_system_libexif = true;
-    use_system_libjpeg = true;
-    use_system_libpng = false; # PNG dlopen() version conflict
-    use_system_libusb = true;
-    use_system_libxml = true;
-    use_system_speex = true;
-    use_system_ssl = useOpenSSL;
-    use_system_stlport = true;
-    use_system_xdg_utils = true;
-    use_system_yasm = true;
-    use_system_zlib = false; # http://crbug.com/143623
-    use_system_protobuf = true;
-
-    use_system_harfbuzz = false;
-    use_system_icu = false;
-    use_system_libwebp = false; # http://crbug.com/133161
-    use_system_skia = false;
-    use_system_sqlite = false; # http://crbug.com/22208
-    use_system_v8 = false;
-  };
 
-  defaultDependencies = [
-    bzip2 flac speex
-    libevent expat libjpeg
-    libpng libxml2 libxslt
-    xdg_utils yasm zlib
-    libusb1 libexif
-  ];
+    browser = callPackage ./browser.nix { };
+    sandbox = callPackage ./sandbox.nix { };
 
-  sandbox = import ./sandbox.nix {
-    inherit stdenv;
-    src = src.sandbox;
-    binary = "${packageName}_sandbox";
+    plugins = callPackage ./plugins.nix {
+      inherit enablePepperFlash enablePepperPDF;
+    };
   };
 
-  # build paths and release info
-  packageName = "chromium";
-  buildType = "Release";
-  buildPath = "out/${buildType}";
-  libExecPath = "$out/libexec/${packageName}";
-  sandboxPath = "${sandbox}/bin/${packageName}_sandbox";
-
   desktopItem = makeDesktopItem {
     name = "Chromium";
     exec = "chromium";
@@ -162,135 +45,41 @@ let
     comment = "An open source web browser from Google";
     desktopName = "Chromium";
     genericName = "Web browser";
-    mimeType = "text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/mailto;x-scheme-handler/webcal";
+    mimeType = stdenv.lib.concatStringsSep ";" [
+      "text/html"
+      "text/xml"
+      "application/xhtml+xml"
+      "x-scheme-handler/http"
+      "x-scheme-handler/https"
+      "x-scheme-handler/ftp"
+      "x-scheme-handler/mailto"
+      "x-scheme-handler/webcal"
+    ];
     categories = "Network;WebBrowser";
   };
 
-in stdenv.mkDerivation rec {
-  name = "${packageName}-${src.version}";
-  inherit packageName src;
-
-  buildInputs = defaultDependencies ++ [
-    which makeWrapper
-    python perl pkgconfig
-    nspr udev
-    (if useOpenSSL then openssl else nss)
-    utillinux alsaLib
-    gcc bison gperf
-    krb5 file
-    glib gtk dbus_glib
-    libXScrnSaver libXcursor libXtst mesa
-    pciutils protobuf speechd libXdamage
-    pythonPackages.gyp
-  ] ++ optional gnomeKeyringSupport libgnome_keyring
-    ++ optionals gnomeSupport [ gconf libgcrypt ]
-    ++ optional enableSELinux libselinux
-    ++ optional cupsSupport libgcrypt
-    ++ optional pulseSupport pulseaudio;
-
-  prePatch = ''
-    # XXX: Figure out a way how to split these properly.
-    #cpflags="-dsr --no-preserve=mode"
-    cpflags="-dr"
-    cp $cpflags "${src.main}"/* .
-    cp $cpflags "${src.bundled}" third_party
-    cp $cpflags "${src.sandbox}" sandbox
-    chmod -R u+w . # XXX!
-  '';
-
-  postPatch = ''
-    sed -i -e '/base::FilePath exe_dir/,/^ *} *$/c \
-      sandbox_binary = \
-        base::FilePath("'"${sandboxPath}"'");
-    ' content/browser/browser_main_loop.cc
-  '';
-
-  gypFlags = mkGypFlags (gypFlagsUseSystemLibs // {
-    linux_use_gold_binary = false;
-    linux_use_gold_flags = false;
-    proprietary_codecs = false;
-    use_gnome_keyring = gnomeKeyringSupport;
-    use_gconf = gnomeSupport;
-    use_gio = gnomeSupport;
-    use_pulseaudio = pulseSupport;
-    disable_nacl = !enableNaCl;
-    use_openssl = useOpenSSL;
-    selinux = enableSELinux;
-    use_cups = cupsSupport;
-    linux_sandbox_path="${sandboxPath}";
-    linux_sandbox_chrome_path="${libExecPath}/${packageName}";
-    werror = "";
-
-    # 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,
-    # please get your own set of keys.
-    google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI";
-    google_default_client_id = "404761575300.apps.googleusercontent.com";
-    google_default_client_secret = "9rIFQjfnkykEmqb6FfjJQD1D";
+in stdenv.mkDerivation {
+  name = "chromium-${channel}-${chromium.browser.version}";
 
-  } // optionalAttrs proprietaryCodecs {
-    # enable support for the H.264 codec
-    proprietary_codecs = true;
-    ffmpeg_branding = "Chrome";
-  } // optionalAttrs (stdenv.system == "x86_64-linux") {
-    target_arch = "x64";
-  } // optionalAttrs (stdenv.system == "i686-linux") {
-    target_arch = "ia32";
-  });
+  buildInputs = [ makeWrapper ];
 
-  configurePhase = ''
-    python build/gyp_chromium -f ninja --depth "$(pwd)" ${gypFlags}
-  '';
-
-  buildPhase = let
-    CC = "${gcc}/bin/gcc";
-    CXX = "${gcc}/bin/g++";
+  buildCommand = let
+    browserBinary = "${chromium.browser}/libexec/chromium/chromium";
+    sandboxBinary = "${chromium.sandbox}/bin/chromium-sandbox";
   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 \
-        chrome ${optionalString (!enableSELinux) "chrome_sandbox"}
-  '';
-
-  installPhase = ''
-    ensureDir "${libExecPath}"
-    cp -v "${buildPath}/"*.pak "${libExecPath}/"
-    cp -vR "${buildPath}/locales" "${buildPath}/resources" "${libExecPath}/"
-    cp -v ${buildPath}/libffmpegsumo.so "${libExecPath}/"
-
-    cp -v "${buildPath}/chrome" "${libExecPath}/${packageName}"
+    ensureDir "$out/bin" "$out/share/applications"
 
-    mkdir -vp "$out/bin"
-    makeWrapper "${libExecPath}/${packageName}" "$out/bin/${packageName}"
+    ln -s "${chromium.browser}/share" "$out/share"
+    makeWrapper "${browserBinary}" "$out/bin/chromium" \
+      --set CHROMIUM_SANDBOX_BINARY_PATH "${sandboxBinary}" \
+      --add-flags "${chromium.plugins.flagsEnabled}"
 
-    mkdir -vp "$out/share/man/man1"
-    cp -v "${buildPath}/chrome.1" "$out/share/man/man1/${packageName}.1"
-
-    for icon_file in chrome/app/theme/chromium/product_logo_*[0-9].png; do
-      num_and_suffix="''${icon_file##*logo_}"
-      icon_size="''${num_and_suffix%.*}"
-      expr "$icon_size" : "^[0-9][0-9]*$" || continue
-      logo_output_prefix="$out/share/icons/hicolor"
-      logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps"
-      mkdir -vp "$logo_output_path"
-      cp -v "$icon_file" "$logo_output_path/${packageName}.png"
-    done
-
-    mkdir -vp "$out/share/applications"
     cp -v "${desktopItem}/share/applications/"* "$out/share/applications"
   '';
 
-  passthru = {
-    inherit sandbox;
-  };
+  inherit (chromium.browser) meta packageName;
 
-  meta = {
-    description = "An open source web browser from Google";
-    homepage = http://www.chromium.org/;
-    maintainers = with maintainers; [ goibhniu chaoflow aszlig wizeman ];
-    license = licenses.bsd3;
-    platforms = platforms.linux;
+  passthru = {
+    mkDerivation = chromium.mkChromiumDerivation;
   };
 }
diff --git a/pkgs/applications/networking/browsers/chromium/plugins.nix b/pkgs/applications/networking/browsers/chromium/plugins.nix
new file mode 100644
index 000000000000..f760b06fe24b
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/plugins.nix
@@ -0,0 +1,78 @@
+{ stdenv
+, enablePepperFlash ? false
+, enablePepperPDF ? false
+
+, source
+}:
+
+with stdenv.lib;
+
+let
+  plugins = stdenv.mkDerivation {
+    name = "chromium-binary-plugins";
+
+    # XXX: Only temporary and has to be version-specific
+    src = source.plugins;
+
+    phases = [ "unpackPhase" "patchPhase" "checkPhase" "installPhase" ];
+    outputs = [ "pdf" "flash" ];
+
+    unpackCmd = let
+      chan = if source.channel == "dev"    then "chrome-unstable"
+        else if source.channel == "stable" then "chrome"
+        else "chrome-${source.channel}";
+    in ''
+      ensureDir plugins
+      ar p "$src" data.tar.lzma | tar xJ -C plugins --strip-components=4 \
+        ./opt/google/${chan}/PepperFlash \
+        ./opt/google/${chan}/libpdf.so
+    '';
+
+    doCheck = true;
+    checkPhase = ''
+      ! find -iname '*.so' -exec ldd {} + | grep 'not found'
+    '';
+
+    patchPhase = let
+      rpaths = [ stdenv.gcc.gcc ];
+      mkrpath = p: "${makeSearchPath "lib64" p}:${makeSearchPath "lib" p}";
+    in ''
+      for sofile in PepperFlash/libpepflashplayer.so libpdf.so; do
+        chmod +x "$sofile"
+        patchelf --set-rpath "${mkrpath rpaths}" "$sofile"
+      done
+    '';
+
+    installPhase = let
+      pdfName = "Chrome PDF Viewer";
+      pdfDescription = "Portable Document Format";
+      pdfMimeTypes = concatStringsSep ";" [
+        "application/pdf"
+        "application/x-google-chrome-print-preview-pdf"
+      ];
+      pdfInfo = "#${pdfName}#${pdfDescription};${pdfMimeTypes}";
+    in ''
+      install -vD libpdf.so "$pdf/lib/libpdf.so"
+      ensureDir "$pdf/nix-support"
+      echo "--register-pepper-plugins='$pdf/lib/libpdf.so${pdfInfo}'" \
+        > "$pdf/nix-support/chromium-flags"
+
+      flashVersion="$(
+        sed -n -r 's/.*"version": "([^"]+)",.*/\1/p' PepperFlash/manifest.json
+      )"
+
+      install -vD PepperFlash/libpepflashplayer.so \
+        "$flash/lib/libpepflashplayer.so"
+      ensureDir "$flash/nix-support"
+      echo "--ppapi-flash-path='$flash/lib/libpepflashplayer.so'" \
+           "--ppapi-flash-version=$flashVersion" \
+           > "$flash/nix-support/chromium-flags"
+    '';
+
+    passthru.flagsEnabled = let
+      enabledPlugins = optional enablePepperFlash plugins.flash
+                    ++ optional enablePepperPDF   plugins.pdf;
+      getFlags = plugin: "$(< ${plugin}/nix-support/chromium-flags)";
+    in concatStringsSep " " (map getFlags enabledPlugins);
+  };
+in plugins
diff --git a/pkgs/applications/networking/browsers/chromium/sandbox.nix b/pkgs/applications/networking/browsers/chromium/sandbox.nix
index b43385e86338..b470ed633253 100644
--- a/pkgs/applications/networking/browsers/chromium/sandbox.nix
+++ b/pkgs/applications/networking/browsers/chromium/sandbox.nix
@@ -1,12 +1,13 @@
-{ stdenv, src, binary }:
+{ stdenv, source }:
 
 stdenv.mkDerivation {
-  name = "chromium-sandbox-${src.version}";
-  inherit src;
+  name = "chromium-sandbox-${source.version}";
+  src = source.sandbox;
 
   patchPhase = ''
     sed -i -e '/#include.*base_export/c \
       #define BASE_EXPORT __attribute__((visibility("default")))
+    /#include/s|sandbox/linux|'"$(pwd)"'/linux|
     ' linux/suid/*.[hc]
   '';
 
@@ -15,6 +16,6 @@ stdenv.mkDerivation {
   '';
 
   installPhase = ''
-    install -svD sandbox "$out/bin/${binary}"
+    install -svD sandbox "$out/bin/chromium-sandbox"
   '';
 }
diff --git a/pkgs/applications/networking/browsers/chromium/source/default.nix b/pkgs/applications/networking/browsers/chromium/source/default.nix
new file mode 100644
index 000000000000..2c7e7277b814
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/source/default.nix
@@ -0,0 +1,79 @@
+{ stdenv, fetchurl, python
+, channel ? "stable"
+, useOpenSSL # XXX
+}:
+
+with stdenv.lib;
+
+with (import ./update.nix {
+  inherit (stdenv) system;
+}).getChannel channel;
+
+stdenv.mkDerivation {
+  name = "chromium-source-${version}";
+
+  src = fetchurl main;
+
+  buildInputs = [ python ]; # cannot patch shebangs otherwise
+
+  phases = [ "unpackPhase" "patchPhase" "installPhase" ];
+
+  opensslPatches = optional useOpenSSL openssl.patches;
+
+  prePatch = "patchShebangs .";
+
+  patches = if (versionOlder version "36.0.0.0")
+            then singleton ./sandbox_userns_31.patch
+            else singleton ./sandbox_userns_36.patch;
+
+  postPatch = ''
+    sed -i -r \
+      -e 's/-f(stack-protector)(-all)?/-fno-\1/' \
+      -e 's|/bin/echo|echo|' \
+      -e "/python_arch/s/: *'[^']*'/: '""'/" \
+      build/common.gypi chrome/chrome_tests.gypi
+    sed -i -e '/not RunGN/,+1d' -e '/import.*depot/d' build/gyp_chromium
+    sed -i -e 's|/usr/bin/gcc|gcc|' \
+      third_party/WebKit/Source/build/scripts/scripts.gypi \
+      third_party/WebKit/Source/build/scripts/preprocessor.pm
+  '' + optionalString useOpenSSL ''
+    cat $opensslPatches | patch -p1 -d third_party/openssl/openssl
+  '' + optionalString (!versionOlder version "34.0.0.0") ''
+  '';
+
+  outputs = [ "out" "sandbox" "bundled" "main" ];
+  installPhase = ''
+    ensureDir "$out" "$sandbox" "$bundled" "$main"
+
+    header "copying browser main sources to $main"
+    find . -mindepth 1 -maxdepth 1 \
+      \! -path ./sandbox \
+      \! -path ./third_party \
+      \! -path ./build \
+      \! -path ./tools \
+      \! -name '.*' \
+      -print | xargs cp -rt "$main"
+    stopNest
+
+    header "copying sandbox components to $sandbox"
+    cp -rt "$sandbox" sandbox/*
+    stopNest
+
+    header "copying third party sources to $bundled"
+    cp -rt "$bundled" third_party/*
+    stopNest
+
+    header "copying build requisites to $out"
+    cp -rt "$out" build tools
+    stopNest
+
+    rm -rf "$out/tools/gyp" # XXX: Don't even copy it in the first place.
+  '';
+
+  preferLocalBuild = true;
+
+  passthru = {
+    inherit version channel;
+    plugins = fetchurl binary;
+  };
+}
diff --git a/pkgs/applications/networking/browsers/chromium/sandbox_userns_31.patch b/pkgs/applications/networking/browsers/chromium/source/sandbox_userns_31.patch
index 490c1a9cebe9..490c1a9cebe9 100644
--- a/pkgs/applications/networking/browsers/chromium/sandbox_userns_31.patch
+++ b/pkgs/applications/networking/browsers/chromium/source/sandbox_userns_31.patch
diff --git a/pkgs/applications/networking/browsers/chromium/source/sandbox_userns_36.patch b/pkgs/applications/networking/browsers/chromium/source/sandbox_userns_36.patch
new file mode 100644
index 000000000000..a8f3ed0befd4
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/source/sandbox_userns_36.patch
@@ -0,0 +1,293 @@
+commit 3c80951744293441c2e66345ef7d82c199f4600e
+Author: aszlig <aszlig@redmoonstudios.org>
+Date:   Thu May 16 14:17:56 2013 +0200
+
+    zygote: Add support for user namespaces on Linux.
+    
+    The implementation is done by patching the Zygote host to execute the sandbox
+    binary with CLONE_NEWUSER and setting the uid and gid mapping so that the child
+    process is using uid 0 and gid 0 which map to the current user of the parent.
+    Afterwards, the sandbox will continue as if it was called as a setuid binary.
+    
+    In addition, this adds new_user_namespace as an option in process_util in order
+    to set the UID and GID mapping correctly. The reason for this is that just
+    passing CLONE_NEWUSER to clone_flags doesn't help in LaunchProcess(), because
+    without setting the mappings exec*() will clear the process's capability sets.
+    
+    If the kernel doesn't support unprivileged user namespaces and the sandbox
+    binary doesn't have the setuid flag, the Zygote main process will run without a
+    sandbox. This is to mimic the behaviour if no SUID sandbox binary path is set.
+    
+    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
+
+diff --git a/base/process/launch.cc b/base/process/launch.cc
+index 81748f5..930f20f 100644
+--- a/base/process/launch.cc
++++ b/base/process/launch.cc
+@@ -26,6 +26,7 @@ LaunchOptions::LaunchOptions()
+ #if defined(OS_LINUX)
+       , clone_flags(0)
+       , allow_new_privs(false)
++      , new_user_namespace(false)
+ #endif  // OS_LINUX
+ #if defined(OS_CHROMEOS)
+       , ctrl_terminal_fd(-1)
+diff --git a/base/process/launch.h b/base/process/launch.h
+index 9e39fba..00e4c79 100644
+--- a/base/process/launch.h
++++ b/base/process/launch.h
+@@ -115,6 +115,9 @@ struct BASE_EXPORT LaunchOptions {
+   // By default, child processes will have the PR_SET_NO_NEW_PRIVS bit set. If
+   // true, then this bit will not be set in the new child process.
+   bool allow_new_privs;
++
++  // If true, start the process in a new user namespace.
++  bool new_user_namespace;
+ #endif  // defined(OS_LINUX)
+ 
+ #if defined(OS_CHROMEOS)
+diff --git a/base/process/launch_posix.cc b/base/process/launch_posix.cc
+index fe4da1a..7f118b8 100644
+--- a/base/process/launch_posix.cc
++++ b/base/process/launch_posix.cc
+@@ -40,6 +40,10 @@
+ 
+ #if defined(OS_LINUX)
+ #include <sys/prctl.h>
++#include <sched.h>
++#if !defined(CLONE_NEWUSER)
++#define CLONE_NEWUSER 0x10000000
++#endif
+ #endif
+ 
+ #if defined(OS_CHROMEOS)
+@@ -301,13 +305,23 @@ bool LaunchProcess(const std::vector<std::string>& argv,
+ 
+   pid_t pid;
+ #if defined(OS_LINUX)
+-  if (options.clone_flags) {
++  int map_pipe_fd[2];
++  int flags = options.clone_flags;
++
++  if (options.new_user_namespace) {
++    flags |= CLONE_NEWUSER;
++    if (pipe(map_pipe_fd) < 0) {
++      DPLOG(ERROR) << "user namespace pipe";
++      return false;
++    }
++  }
++
++  if (options.clone_flags || options.new_user_namespace) {
+     // Signal handling in this function assumes the creation of a new
+     // process, so we check that a thread is not being created by mistake
+     // and that signal handling follows the process-creation rules.
+-    RAW_CHECK(
+-        !(options.clone_flags & (CLONE_SIGHAND | CLONE_THREAD | CLONE_VM)));
+-    pid = syscall(__NR_clone, options.clone_flags, 0, 0, 0);
++    RAW_CHECK(!(flags & (CLONE_SIGHAND | CLONE_THREAD | CLONE_VM)));
++    pid = syscall(__NR_clone, flags, 0, 0, 0);
+   } else
+ #endif
+   {
+@@ -328,6 +342,21 @@ bool LaunchProcess(const std::vector<std::string>& argv,
+     // DANGER: no calls to malloc or locks are allowed from now on:
+     // http://crbug.com/36678
+ 
++#if defined(OS_LINUX)
++    if (options.new_user_namespace) {
++      // Close the write end of the pipe so we get an EOF when the parent closes
++      // the FD. This is to avoid race conditions when the UID/GID mappings are
++      // written _after_ execvp().
++      close(map_pipe_fd[1]);
++
++      char dummy;
++      if (HANDLE_EINTR(read(map_pipe_fd[0], &dummy, 1)) != 0) {
++        RAW_LOG(ERROR, "Unexpected input in uid/gid mapping pipe.");
++        _exit(127);
++      }
++    }
++#endif
++
+     // DANGER: fork() rule: in the child, if you don't end up doing exec*(),
+     // you call _exit() instead of exit(). This is because _exit() does not
+     // call any previously-registered (in the parent) exit handlers, which
+@@ -451,6 +480,40 @@ bool LaunchProcess(const std::vector<std::string>& argv,
+     _exit(127);
+   } else {
+     // Parent process
++#if defined(OS_LINUX)
++    if (options.new_user_namespace) {
++      // We need to write UID/GID mapping here to map the current user outside
++      // the namespace to the root user inside the namespace in order to
++      // correctly "fool" the child process.
++      char buf[256];
++      int map_fd, map_len;
++
++      snprintf(buf, sizeof(buf), "/proc/%d/uid_map", pid);
++      map_fd = open(buf, O_RDWR);
++      DPCHECK(map_fd >= 0);
++      snprintf(buf, sizeof(buf), "0 %d 1", geteuid());
++      map_len = strlen(buf);
++      if (write(map_fd, buf, map_len) != map_len) {
++        RAW_LOG(WARNING, "Can't write to uid_map.");
++      }
++      close(map_fd);
++
++      snprintf(buf, sizeof(buf), "/proc/%d/gid_map", pid);
++      map_fd = open(buf, O_RDWR);
++      DPCHECK(map_fd >= 0);
++      snprintf(buf, sizeof(buf), "0 %d 1", getegid());
++      map_len = strlen(buf);
++      if (write(map_fd, buf, map_len) != map_len) {
++        RAW_LOG(WARNING, "Can't write to gid_map.");
++      }
++      close(map_fd);
++
++      // Close the pipe on the parent, so the child can continue doing the
++      // execvp() call.
++      close(map_pipe_fd[1]);
++    }
++#endif
++
+     if (options.wait) {
+       // While this isn't strictly disk IO, waiting for another process to
+       // finish is the sort of thing ThreadRestrictions is trying to prevent.
+diff --git a/content/browser/zygote_host/zygote_host_impl_linux.cc b/content/browser/zygote_host/zygote_host_impl_linux.cc
+index 0106a7a..a0465af 100644
+--- a/content/browser/zygote_host/zygote_host_impl_linux.cc
++++ b/content/browser/zygote_host/zygote_host_impl_linux.cc
+@@ -124,25 +124,31 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
+ 
+   sandbox_binary_ = sandbox_cmd.c_str();
+ 
+-  // A non empty sandbox_cmd means we want a SUID sandbox.
+-  using_suid_sandbox_ = !sandbox_cmd.empty();
++  bool userns_sandbox = false;
++  const std::vector<std::string> cmd_line_unwrapped(cmd_line.argv());
+ 
+-  if (using_suid_sandbox_) {
++  if (!sandbox_cmd.empty()) {
+     struct stat st;
+     if (stat(sandbox_binary_.c_str(), &st) != 0) {
+       LOG(FATAL) << "The SUID sandbox helper binary is missing: "
+                  << sandbox_binary_ << " Aborting now.";
+     }
+ 
+-    if (access(sandbox_binary_.c_str(), X_OK) == 0 &&
+-        (st.st_uid == 0) &&
+-        (st.st_mode & S_ISUID) &&
+-        (st.st_mode & S_IXOTH)) {
++    if (access(sandbox_binary_.c_str(), X_OK) == 0) {
++      using_suid_sandbox_ = true;
++
+       cmd_line.PrependWrapper(sandbox_binary_);
+ 
+       scoped_ptr<sandbox::SetuidSandboxClient>
+           sandbox_client(sandbox::SetuidSandboxClient::Create());
+       sandbox_client->SetupLaunchEnvironment();
++
++      if (!((st.st_uid == 0) &&
++            (st.st_mode & S_ISUID) &&
++            (st.st_mode & S_IXOTH))) {
++        userns_sandbox = true;
++        sandbox_client->SetNoSuid();
++      }
+     } else {
+       LOG(FATAL) << "The SUID sandbox helper binary was found, but is not "
+                     "configured correctly. Rather than run without sandboxing "
+@@ -167,7 +173,19 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
+   base::LaunchOptions options;
+   options.fds_to_remap = &fds_to_map;
+   options.allow_new_privs = using_suid_sandbox_;  // Don't PR_SET_NO_NEW_PRIVS.
++  if (userns_sandbox)
++    options.new_user_namespace = true;
+   base::LaunchProcess(cmd_line.argv(), options, &process);
++
++  if (process == -1 && userns_sandbox) {
++    LOG(ERROR) << "User namespace sandbox failed to start, running without "
++               << "sandbox! You need at least kernel 3.8.0 with CONFIG_USER_NS "
++               << "enabled in order to use the sandbox without setuid bit.";
++    using_suid_sandbox_ = false;
++    options.new_user_namespace = false;
++    base::LaunchProcess(cmd_line_unwrapped, options, &process);
++  }
++
+   CHECK(process != -1) << "Failed to launch zygote process";
+ 
+   if (using_suid_sandbox_) {
+diff --git a/content/zygote/zygote_main_linux.cc b/content/zygote/zygote_main_linux.cc
+index 5dc09fa..4e09bc4 100644
+--- a/content/zygote/zygote_main_linux.cc
++++ b/content/zygote/zygote_main_linux.cc
+@@ -397,6 +397,13 @@ static bool EnterSuidSandbox(sandbox::SetuidSandboxClient* setuid_sandbox) {
+     CHECK(CreateInitProcessReaper());
+   }
+ 
++  // Don't set non-dumpable, as it causes trouble when the host tries to find
++  // the zygote process (XXX: Not quite sure why this happens with user
++  // namespaces). Fortunately, we also have the seccomp filter sandbox which
++  // should disallow the use of ptrace.
++  if (setuid_sandbox->IsNoSuid())
++    return true;
++
+ #if !defined(OS_OPENBSD)
+   // Previously, we required that the binary be non-readable. This causes the
+   // kernel to mark the process as non-dumpable at startup. The thinking was
+diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.cc b/sandbox/linux/suid/client/setuid_sandbox_client.cc
+index 8ed1a97..cbdfadc 100644
+--- a/sandbox/linux/suid/client/setuid_sandbox_client.cc
++++ b/sandbox/linux/suid/client/setuid_sandbox_client.cc
+@@ -173,6 +173,10 @@ bool SetuidSandboxClient::IsInNewNETNamespace() const {
+   return env_->HasVar(kSandboxNETNSEnvironmentVarName);
+ }
+ 
++bool SetuidSandboxClient::IsNoSuid() const {
++  return env_->HasVar(kSandboxNoSuidVarName);
++}
++
+ bool SetuidSandboxClient::IsSandboxed() const {
+   return sandboxed_;
+ }
+@@ -182,4 +186,8 @@ void SetuidSandboxClient::SetupLaunchEnvironment() {
+   SetSandboxAPIEnvironmentVariable(env_);
+ }
+ 
++void SetuidSandboxClient::SetNoSuid() {
++  env_->SetVar(kSandboxNoSuidVarName, "1");
++}
++
+ }  // namespace sandbox
+diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.h b/sandbox/linux/suid/client/setuid_sandbox_client.h
+index 0f6db7a..c629391 100644
+--- a/sandbox/linux/suid/client/setuid_sandbox_client.h
++++ b/sandbox/linux/suid/client/setuid_sandbox_client.h
+@@ -46,6 +46,8 @@ class SANDBOX_EXPORT SetuidSandboxClient {
+   bool IsInNewPIDNamespace() const;
+   // Did the setuid helper create a new network namespace ?
+   bool IsInNewNETNamespace() const;
++  // Is sandboxed without SUID binary ?
++  bool IsNoSuid() const;
+   // Are we done and fully sandboxed ?
+   bool IsSandboxed() const;
+ 
+@@ -53,6 +55,8 @@ class SANDBOX_EXPORT SetuidSandboxClient {
+   // helper.
+   void SetupLaunchEnvironment();
+ 
++  void SetNoSuid();
++
+  private:
+   // Holds the environment. Will never be NULL.
+   base::Environment* env_;
+diff --git a/sandbox/linux/suid/common/sandbox.h b/sandbox/linux/suid/common/sandbox.h
+index 9345287..2db659e 100644
+--- a/sandbox/linux/suid/common/sandbox.h
++++ b/sandbox/linux/suid/common/sandbox.h
+@@ -15,6 +15,7 @@ static const char kAdjustOOMScoreSwitch[] = "--adjust-oom-score";
+ 
+ static const char kSandboxDescriptorEnvironmentVarName[] = "SBX_D";
+ static const char kSandboxHelperPidEnvironmentVarName[] = "SBX_HELPER_PID";
++static const char kSandboxNoSuidVarName[] = "SBX_NO_SUID";
+ 
+ static const long kSUIDSandboxApiNumber = 1;
+ static const char kSandboxEnvironmentApiRequest[] = "SBX_CHROME_API_RQ";
diff --git a/pkgs/applications/networking/browsers/chromium/source/sources.nix b/pkgs/applications/networking/browsers/chromium/source/sources.nix
new file mode 100644
index 000000000000..6881b8d44e84
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/source/sources.nix
@@ -0,0 +1,21 @@
+# This file is autogenerated from update.sh in the parent directory.
+{
+  dev = {
+    version = "36.0.1941.0";
+    sha256 = "12rhyq8hliwc8b3371h2axzlzabg99c06d02kl9ldag2kxfpsfps";
+    sha256bin32 = "1rbl5x0pjid5lypdplbqvcx4lgvr2rlbiv83ivvqb5dbg6p7886g";
+    sha256bin64 = "18440spj541w4bqjblb2wpf94slg4if176gprccbxw9sy6b7z38w";
+  };
+  beta = {
+    version = "35.0.1916.47";
+    sha256 = "0pq87aybfna4pgsf02v97lprj5kbsrzim7c44nqarmcvlj4l65ch";
+    sha256bin32 = "057l59any3hiqdg1gh4nxry542083lxdaychhljbrfkipq1gy4yv";
+    sha256bin64 = "07n8sqv234dg959id023w3mz5n9ascwrcmxq3px96bqgqim2vf8s";
+  };
+  stable = {
+    version = "34.0.1847.116";
+    sha256 = "04cpfav5rqa117igvzmrw0045r2ljxg5fqb46qgqvkgff30pjrfx";
+    sha256bin32 = "1k24j80xgc91p8ssynql9ifjdhpz6w7vl3pk9lvkr0sdhg16hlrf";
+    sha256bin64 = "16gidav4ilc95fr1d6832xzpyynfwnglbz7b33gq62vp8bj77da4";
+  };
+}
diff --git a/pkgs/applications/networking/browsers/chromium/source/update.nix b/pkgs/applications/networking/browsers/chromium/source/update.nix
new file mode 100644
index 000000000000..09f834a90c6f
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/source/update.nix
@@ -0,0 +1,118 @@
+{ system ? builtins.currentSystem }:
+
+let
+  inherit (import <nixpkgs> {}) lib writeText stdenv;
+
+  sources = if builtins.pathExists ./sources.nix
+            then import ./sources.nix
+            else null;
+
+  bucketURL = "http://commondatastorage.googleapis.com/"
+            + "chromium-browser-official";
+
+  debURL = "https://dl.google.com/linux/chrome/deb/pool/main/g";
+
+  # Untrusted mirrors, don't try to update from them!
+  debMirrors = [
+    "http://95.31.35.30/chrome/pool/main/g"
+    "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g"
+  ];
+
+  tryChannel = channel: let
+    chan = builtins.getAttr channel sources;
+  in if sources != null then ''
+    oldver="${chan.version}";
+    echo -n "Checking if $oldver ($channel) is up to date..." >&2;
+    if [ "x$(get_newest_ver "$version" "$oldver")" != "x$oldver" ];
+    then
+      echo " no, getting sha256 for new version $version:" >&2;
+      sha256="$(prefetch_sha "$channel" "$version")" || return 1;
+    else
+      echo " yes, keeping old sha256." >&2;
+      sha256="${chan.sha256}";
+      ${if (chan ? sha256bin32 && chan ? sha256bin64) then ''
+        sha256="$sha256.${chan.sha256bin32}.${chan.sha256bin64}";
+      '' else ''
+        sha256="$sha256.$(prefetch_deb_sha "$channel" "$version")";
+      ''}
+    fi;
+  '' else ''
+    sha256="$(prefetch_sha "$channel" "$version")" || return 1;
+  '';
+
+  caseChannel = channel: ''
+    ${channel}) ${tryChannel channel};;
+  '';
+
+in rec {
+  getChannel = channel: let
+    chanAttrs = builtins.getAttr channel sources;
+  in {
+    inherit (chanAttrs) version;
+
+    main = {
+      url = "${bucketURL}/chromium-${chanAttrs.version}.tar.xz";
+      inherit (chanAttrs) sha256;
+    };
+
+    binary = let
+      pname = if channel == "dev"
+              then "google-chrome-unstable"
+              else "google-chrome-${channel}";
+      arch = if stdenv.is64bit then "amd64" else "i386";
+      relpath = "${pname}/${pname}_${chanAttrs.version}-1_${arch}.deb";
+    in lib.optionalAttrs (chanAttrs ? sha256bin64) {
+      urls = map (url: "${url}/${relpath}") ([ debURL ] ++ debMirrors);
+      sha256 = if stdenv.is64bit
+               then chanAttrs.sha256bin64
+               else chanAttrs.sha256bin32;
+    };
+  };
+
+  updateHelpers = writeText "update-helpers.sh" ''
+
+    prefetch_main_sha()
+    {
+      nix-prefetch-url "${bucketURL}/chromium-$2.tar.xz";
+    }
+
+    prefetch_deb_sha()
+    {
+      channel="$1";
+      version="$2";
+
+      case "$1" in
+        dev) pname="google-chrome-unstable";;
+        *)   pname="google-chrome-$channel";;
+      esac;
+
+      deb_pre="${debURL}/$pname/$pname";
+
+      deb32=$(nix-prefetch-url "''${deb_pre}_$version-1_i386.deb");
+      deb64=$(nix-prefetch-url "''${deb_pre}_$version-1_amd64.deb");
+
+      echo "$deb32.$deb64";
+      return 0;
+    }
+
+    prefetch_sha()
+    {
+      echo "$(prefetch_main_sha "$@").$(prefetch_deb_sha "$@")";
+      return 0;
+    }
+
+    get_sha256()
+    {
+      channel="$1";
+      version="$2";
+
+      case "$channel" in
+        ${lib.concatMapStrings caseChannel [ "stable" "dev" "beta" ]}
+      esac;
+
+      sha_insert "$version" "$sha256";
+      echo "$sha256";
+      return 0;
+    }
+  '';
+}
diff --git a/pkgs/applications/networking/browsers/chromium/sources.nix b/pkgs/applications/networking/browsers/chromium/sources.nix
deleted file mode 100644
index 782356640c8d..000000000000
--- a/pkgs/applications/networking/browsers/chromium/sources.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-# This file is autogenerated from update.sh in the same directory.
-{
-  dev = {
-    version = "35.0.1883.0";
-    url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-35.0.1883.0.tar.xz";
-    sha256 = "0qbv6prxl18y5824pfd13ng9798g561gzb6nypwp502hqr45jvb6";
-  };
-  beta = {
-    version = "34.0.1847.60";
-    url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-34.0.1847.60.tar.xz";
-    sha256 = "1na5d6z4a0wkabn7cj62vyiv3mmvcb6qdvrkyy6fj79h7gk2hb7k";
-  };
-  stable = {
-    version = "33.0.1750.152";
-    url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-33.0.1750.152.tar.xz";
-    sha256 = "0byc23vwn9alsva0jqvwvgnbx2bm7x48m3jln02y4fpf1f265m4z";
-  };
-}
diff --git a/pkgs/applications/networking/browsers/chromium/update.sh b/pkgs/applications/networking/browsers/chromium/update.sh
index 0c4881bb3962..e82d22f34fd0 100755
--- a/pkgs/applications/networking/browsers/chromium/update.sh
+++ b/pkgs/applications/networking/browsers/chromium/update.sh
@@ -3,16 +3,9 @@
 channels_url="http://omahaproxy.appspot.com/all?csv=1";
 history_url="http://omahaproxy.appspot.com/history";
 bucket_url="http://commondatastorage.googleapis.com/chromium-browser-official/";
-output_file="$(cd "$(dirname "$0")" && pwd)/sources.nix";
+base_path="$(cd "$(dirname "$0")" && pwd)/source";
 
-nix_getattr()
-{
-    input_file="$1";
-    attr="$2";
-
-    var="$(nix-instantiate --eval-only -A "$attr" "$output_file")";
-    echo "$var" | tr -d '\\"';
-}
+source "$(nix-build --no-out-link "$base_path/update.nix" -A updateHelpers)";
 
 ### poor mans key/value-store :-) ###
 
@@ -53,39 +46,6 @@ get_newest_ver()
     fi;
 }
 
-if [ -e "$output_file" ];
-then
-    get_sha256()
-    {
-        channel="$1";
-        version="$2";
-        url="$3";
-
-        oldver="$(nix_getattr "$output_file" "$channel.version")";
-
-        echo -n "Checking if $oldver ($channel) is up to date..." >&2;
-
-        if [ "x$(get_newest_ver "$version" "$oldver")" != "x$oldver" ];
-        then
-            echo " no, getting sha256 for new version $version:" >&2;
-            sha256="$(nix-prefetch-url "$url")" || return 1;
-        else
-            echo " yes, keeping old sha256." >&2;
-            sha256="$(nix_getattr "$output_file" "$channel.sha256")" \
-                || return 1;
-        fi;
-
-        sha_insert "$version" "$sha256";
-        echo "$sha256";
-        return 0;
-    }
-else
-    get_sha256()
-    {
-        nix-prefetch-url "$3";
-    }
-fi;
-
 fetch_filtered_history()
 {
     curl -s "$history_url" | sed -nr 's/^'"linux,$1"',([^,]+).*$/\1/p';
@@ -99,9 +59,8 @@ get_prev_sha256()
     for version in $(fetch_filtered_history "$channel");
     do
         [ "x$version" = "x$current_version" ] && continue;
-        url="${bucket_url%/}/chromium-$version.tar.xz";
-        sha256="$(get_sha256 "$channel" "$version" "$url")" || continue;
-        echo "$sha256:$version:$url";
+        sha256="$(get_sha256 "$channel" "$version")" || continue;
+        echo "$sha256:$version";
         return 0;
     done;
 }
@@ -113,34 +72,39 @@ get_channel_exprs()
         channel="${chline%%,*}";
         version="${chline##*,}";
 
-        url="${bucket_url%/}/chromium-$version.tar.xz";
-
         echo -n "Checking if sha256 of version $version is cached..." >&2;
         if sha256="$(sha_lookup "$version")";
         then
             echo " yes: $sha256" >&2;
         else
             echo " no." >&2;
-            sha256="$(get_sha256 "$channel" "$version" "$url")";
+            sha256="$(get_sha256 "$channel" "$version")";
             if [ $? -ne 0 ];
             then
                 echo "Whoops, failed to fetch $version, trying previous" \
                      "versions:" >&2;
 
-                sha_ver_url="$(get_prev_sha256 "$channel" "$version")";
-                sha256="${sha_ver_url%%:*}";
-                ver_url="${sha_ver_url#*:}";
-                version="${ver_url%%:*}";
-                url="${ver_url#*:}";
+                sha_ver="$(get_prev_sha256 "$channel" "$version")";
+                sha256="${sha_ver%:*}";
+                version="${sha_ver#*:}";
             fi;
         fi;
 
         sha_insert "$version" "$sha256";
 
+        main="${sha256%%.*}";
+        deb="${sha256#*.}";
+        deb32="${deb%.*}";
+        deb64="${deb#*.}";
+
         echo "  $channel = {";
         echo "    version = \"$version\";";
-        echo "    url = \"$url\";";
-        echo "    sha256 = \"$sha256\";";
+        echo "    sha256 = \"$main\";";
+        if [ "x${deb#*[a-z0-9].[a-z0-9]}" != "x$deb" ];
+        then
+            echo "    sha256bin32 = \"$deb32\";";
+            echo "    sha256bin64 = \"$deb64\";";
+        fi;
         echo "  };";
     done;
 }
@@ -151,8 +115,8 @@ omaha="$(curl -s "$channels_url")";
 versions="$(echo "$omaha" | sed -nr -e 's/^linux,([^,]+,[^,]+).*$/\1/p')";
 channel_exprs="$(get_channel_exprs "$versions")";
 
-cat > "$output_file" <<-EOF
-# This file is autogenerated from update.sh in the same directory.
+cat > "$base_path/sources.nix" <<-EOF
+# This file is autogenerated from update.sh in the parent directory.
 {
 $channel_exprs
 }
diff --git a/pkgs/applications/networking/browsers/conkeror/default.nix b/pkgs/applications/networking/browsers/conkeror/default.nix
index fc84f7fcecc2..79402c31f8b6 100644
--- a/pkgs/applications/networking/browsers/conkeror/default.nix
+++ b/pkgs/applications/networking/browsers/conkeror/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchgit, unzip, xulrunner, makeWrapper }:
 
 stdenv.mkDerivation {
-  name = "conkeror-1.0pre-20131116-1";
+  name = "conkeror-1.0pre-20140212";
 
   src = fetchgit {
     url = git://repo.or.cz/conkeror.git;
-    rev = "refs/tags/debian-1.0--pre+git131116-1";
-    sha256 = "6fe0f30487c5bb8f2183dc7c2e15cf29df7cc8b1950b5fc15c26510c74a1f7d3";
+    rev = "07064d76d10e0978c6de535e21f4597d44560fbd";
+    sha256 = "b03a7debee8583ff7a3f2d95474f60e956f0e24dbd1a8fd22412de1d6627f322";
   };
 
   buildInputs = [ unzip makeWrapper ];
diff --git a/pkgs/applications/networking/browsers/dwb/default.nix b/pkgs/applications/networking/browsers/dwb/default.nix
index c638e2b1adb8..dcdbe724194b 100644
--- a/pkgs/applications/networking/browsers/dwb/default.nix
+++ b/pkgs/applications/networking/browsers/dwb/default.nix
@@ -2,25 +2,25 @@
   m4, glib_networking, gsettings_desktop_schemas }:
 
 stdenv.mkDerivation {
-  name = "dwb-2014-03-01";
+  name = "dwb-2014-03-27";
 
   src = fetchgit {
     url = "https://bitbucket.org/portix/dwb.git";
-    rev = "e8d4b8d7937b70279d006da4938dfe52fb85f9e8";
-    sha256 = "0m4730zqmnvb9k6xyydi221sh0wbanzbhg07xvwil3kn1d29340w";
+    rev = "4566d58575fbf687ebe9e3414996c45697b62787";
+    sha256 = "145sq2wv0s0n32cwpwgy59ff6ppcv80ialak7nnj1rpqicfqb72h";
   };
 
-  buildInputs = [ pkgconfig makeWrapper libsoup webkit gtk3 gnutls json_c m4  ];
+  buildInputs = [ pkgconfig makeWrapper gsettings_desktop_schemas libsoup webkit gtk3 gnutls json_c m4  ];
 
   # There are Xlib and gtk warnings therefore I have set Wno-error
   preBuild=''
     makeFlagsArray=(CPPFLAGS="-Wno-error" GTK=3 PREFIX=$out);
   '';
 
-  postInstall=''
+  preFixup=''
     wrapProgram "$out/bin/dwb" \
      --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
-     --prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share:$out/share"
+     --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share"
     wrapProgram "$out/bin/dwbem" \
      --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules"
   '';
diff --git a/pkgs/applications/networking/browsers/midori/default.nix b/pkgs/applications/networking/browsers/midori/default.nix
index db9e1c24cb59..d3135e0be8e3 100644
--- a/pkgs/applications/networking/browsers/midori/default.nix
+++ b/pkgs/applications/networking/browsers/midori/default.nix
@@ -32,9 +32,9 @@ stdenv.mkDerivation rec {
     -DUSE_ZEITGEIST=OFF
   '';
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram $out/bin/midori \
       --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gsettings_desktop_schemas}/share"
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
   '';
 }
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
index a33c879ad92d..a78ab7d27f72 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer-11/default.nix
@@ -36,7 +36,7 @@
 
 let
   # -> http://get.adobe.com/flashplayer/
-  version = "11.2.202.346";
+  version = "11.2.202.350";
 
   src =
     if stdenv.system == "x86_64-linux" then
@@ -47,7 +47,7 @@ let
       else rec {
         inherit version;
         url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
-        sha256 = "19jgiw5f0ksxqgi6jkla4qq7gx9gnn9jmpjgqanb7mhl5fdl0v55";
+        sha256 = "0f5y05c0acvdzd7a7qi93kd17byazf9swm6gml5rph5bc25aw77l";
       }
     else if stdenv.system == "i686-linux" then
       if debug then {
@@ -58,7 +58,7 @@ let
       } else rec {
         inherit version;
         url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
-        sha256 = "01f4zady0r0n5rfqq2285svc13wiypmfrm8fnirmr5lpwl5d89ra";
+        sha256 = "0nsrj56xbpn8r4365zby8qbc38cl2anb5ky0h7jwyh7xyrs9xmml";
       }
     else throw "Flash Player is not supported on this platform";
 
diff --git a/pkgs/applications/networking/browsers/uzbl/default.nix b/pkgs/applications/networking/browsers/uzbl/default.nix
index 4c6458d909fd..ba9c8bde37a2 100644
--- a/pkgs/applications/networking/browsers/uzbl/default.nix
+++ b/pkgs/applications/networking/browsers/uzbl/default.nix
@@ -1,45 +1,36 @@
-a :  
-let 
-  fetchgit = a.fetchgit;
+{ stdenv, fetchurl, pkgconfig, python, makeWrapper
+, webkit, glib_networking, gsettings_desktop_schemas
+}:
 
-  buildInputs = with a; [
-    libsoup pkgconfig webkit gtk makeWrapper
-    kbproto glib pango cairo gdk_pixbuf atk
-    python3
-  ];
-in
-rec {
-  src = fetchgit {
-    url = "https://github.com/Dieterbe/uzbl.git";
-    rev = "refs/tags/2012.05.14";
-    sha256 = "1crvikb0qqsx5qb003i4w7ywh72psl37gjslrj5hx2fd2f215l0l";
-  };
+stdenv.mkDerivation rec {
+  name = "uzbl-20120514";
 
-  name = "uzbl-git";
+  meta = with stdenv.lib; {
+    description = "Tiny externally controllable webkit browser";
+    homepage    = "http://uzbl.org/";
+    license     = licenses.gpl3;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ raskin ];
+  };
 
-  inherit buildInputs;
-  configureFlags = [];
+  src = fetchurl {
+    name = "${name}.tar.gz";
+    url = "https://github.com/uzbl/uzbl/archive/2012.05.14.tar.gz";
+    sha256 = "1flpf0rg0c3n9bjifr37zxljn9yxslg8vkll7ghkm341x76cbkwn";
+  };
 
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["addInputs" "setVars" "doMakeInstall" "doWrap"];
+  preConfigure = ''
+    makeFlags="$makeFlags PREFIX=$out"
+    makeFlags="$makeFlags PYINSTALL_EXTRA=--prefix=$out"
+  '';
 
-  setVars = a.noDepEntry (''
-    export NIX_LDFLAGS="$NIX_LDFLAGS -L${a.libX11}/lib -lX11"
-  '');
+  postInstall = ''
+    wrapProgram $out/bin/uzbl-core \
+      --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
+      --prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share:$out/share"
+  '';
 
-  doWrap = a.makeManyWrappers "$out/bin/uzbl-core" 
-    ''
-      --prefix GST_PLUGIN_PATH : ${a.webkit.gstreamer}/lib/gstreamer-* \
-      --prefix GST_PLUGIN_PATH : ${a.webkit.gst_plugins_base}/lib/gstreamer-* \
-      --prefix GST_PLUGIN_PATH : ${a.webkit.gst_plugins_good}/lib/gstreamer-* \
-      --prefix GST_PLUGIN_PATH : ${a.webkit.gst_ffmpeg}/lib/gstreamer-* \
-      --prefix GIO_EXTRA_MODULES : ${a.glib_networking}/lib/gio/modules
-    '';
+  nativeBuildInputs = [ pkgconfig python makeWrapper ];
 
-  installFlags = "PREFIX=$out PYINSTALL_EXTRA=\"--prefix=$out\"";
-      
-  meta = {
-    description = "Tiny externally controllable webkit browser";
-    maintainers = [a.lib.maintainers.raskin];
-  };
+  buildInputs = [ webkit ];
 }
diff --git a/pkgs/applications/networking/browsers/vimb/default.nix b/pkgs/applications/networking/browsers/vimb/default.nix
index 10bca4848dd2..6cb52be775c6 100644
--- a/pkgs/applications/networking/browsers/vimb/default.nix
+++ b/pkgs/applications/networking/browsers/vimb/default.nix
@@ -16,14 +16,14 @@ stdenv.mkDerivation rec {
     sed -i s,/etc/ssl/certs/ca-certificates.crt,/etc/ssl/certs/ca-bundle.crt, src/default.h
   '';
 
-  buildInputs = [ makeWrapper gtk libsoup pkgconfig webkit ];
+  buildInputs = [ makeWrapper gtk libsoup pkgconfig webkit gsettings_desktop_schemas ];
 
   makeFlags = [ "PREFIX=$(out)" ];
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/vimb" \
       --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
-      --prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share"
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = {
diff --git a/pkgs/applications/networking/browsers/vimprobable2/default.nix b/pkgs/applications/networking/browsers/vimprobable2/default.nix
index 2a44449c7506..8e1e00795d24 100644
--- a/pkgs/applications/networking/browsers/vimprobable2/default.nix
+++ b/pkgs/applications/networking/browsers/vimprobable2/default.nix
@@ -2,11 +2,11 @@
   pkgconfig, webkit, gsettings_desktop_schemas }:
 
 stdenv.mkDerivation rec {
-  version = "1.2.1";
+  version = "1.4.2";
   name = "vimprobable2-${version}";
   src = fetchurl {
     url = "mirror://sourceforge/vimprobable/vimprobable2_${version}.tar.bz2";
-    sha256 = "19zx1k3s2gnhzzd2wpyqsk151w9p52ifl64xaz9a6qkgvrxlli8p";
+    sha256 = "13jdximksh9r3cgd2f8vms0pbsn3x0gxvyqdqiw16xp5fmdx5kzr";
   };
 
   # Nixos default ca bundle
@@ -14,13 +14,16 @@ stdenv.mkDerivation rec {
     sed -i s,/etc/ssl/certs/ca-certificates.crt,/etc/ssl/certs/ca-bundle.crt, config.h
   '';
 
-  buildInputs = [ makeWrapper gtk libsoup libX11 perl pkgconfig webkit ];
+  buildInputs = [ makeWrapper gtk libsoup libX11 perl pkgconfig webkit gsettings_desktop_schemas ];
 
   installPhase = ''
     make PREFIX=/ DESTDIR=$out install
+  '';
+
+  preFixup = ''
     wrapProgram "$out/bin/vimprobable2" \
       --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
-      --prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share"
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = {
diff --git a/pkgs/applications/networking/esniper/default.nix b/pkgs/applications/networking/esniper/default.nix
index 50a2764d375c..0a9703d5e34a 100644
--- a/pkgs/applications/networking/esniper/default.nix
+++ b/pkgs/applications/networking/esniper/default.nix
@@ -1,16 +1,17 @@
 { stdenv, fetchurl, openssl, curl, coreutils, gawk, bash, which }:
 
 stdenv.mkDerivation {
-  name = "esniper-2.28.0";
+  name = "esniper-2.29.0";
 
   src = fetchurl {
-    url    = "mirror://sourceforge/esniper/esniper-2-28-0.tgz";
-    sha256 = "c2b0ccb757616b32f2d6cf54a4a5e367405fa7bcd6e6ed11835fe4f8a06a016b";
+    url    = "mirror://sourceforge/esniper/esniper-2-29-0.tgz";
+    sha256 = "052jfbzm0a88h3hss2vg1vfdrhibjwhbcdnwsbkk5i1z0jj16xxc";
   };
 
   buildInputs = [ openssl curl ];
 
   # Add support for CURL_CA_BUNDLE variable.
+  # Fix <http://sourceforge.net/p/esniper/bugs/648/>.
   patches = [ ./find-ca-bundle.patch ];
 
   postInstall = ''
diff --git a/pkgs/applications/networking/feedreaders/newsbeuter/default.nix b/pkgs/applications/networking/feedreaders/newsbeuter/default.nix
index 029a6f8e6339..e5f18f72cedc 100644
--- a/pkgs/applications/networking/feedreaders/newsbeuter/default.nix
+++ b/pkgs/applications/networking/feedreaders/newsbeuter/default.nix
@@ -1,23 +1,24 @@
-{ stdenv, fetchurl, sqlite, curl, pkgconfig, libxml2, stfl, json_c, ncurses
+{ stdenv, fetchurl, sqlite, curl, pkgconfig, libxml2, stfl, json-c-0-11, ncurses
 , gettext, libiconvOrEmpty, makeWrapper, perl }:
 
 stdenv.mkDerivation rec {
-  name = "newsbeuter-2.7";
+  name = "newsbeuter-2.8";
 
   src = fetchurl {
     url = "http://www.newsbeuter.org/downloads/${name}.tar.gz";
-    sha256 = "0flhzzlbdirjmrq738gmcxqqnifg3kb7plcwqcxshpizmjkhswp6";
+    sha256 = "013qi8yghpms2qq1b3xbrlmfgpj0ybgk0qhj245ni4kpxila0wn8";
+
   };
 
   buildInputs
     # use gettext instead of libintlOrEmpty so we have access to the msgfmt
     # command
-    = [ pkgconfig sqlite curl libxml2 stfl json_c ncurses gettext perl ]
+    = [ pkgconfig sqlite curl libxml2 stfl json-c-0-11 ncurses gettext perl ]
       ++ libiconvOrEmpty
       ++ stdenv.lib.optional stdenv.isDarwin makeWrapper;
 
   preBuild = ''
-    sed -i -e 104,108d config.sh
+    sed -i -e 110,114d config.sh
     sed -i "1 s%^.*$%#!${perl}/bin/perl%" txt2h.pl
     export LDFLAGS=-lncursesw
   '';
diff --git a/pkgs/applications/networking/feedreaders/newsbeuter/dev.nix b/pkgs/applications/networking/feedreaders/newsbeuter/dev.nix
index 17e97d92b897..4390360ff9e8 100644
--- a/pkgs/applications/networking/feedreaders/newsbeuter/dev.nix
+++ b/pkgs/applications/networking/feedreaders/newsbeuter/dev.nix
@@ -2,11 +2,12 @@
 , gettext, libiconvOrEmpty, makeWrapper, perl }:
 
 stdenv.mkDerivation rec {
-  name = "newsbeuter-dev-20131118";
+  name = "newsbeuter-dev-20140309";
 
   src = fetchgit {
     url = "https://github.com/akrennmair/newsbeuter.git";
-    rev = "18b73f7d44a99a698d4878fe7d226f55842132c2";
+    rev = "1427bdb0705806368db39576a9b803df82fa0415";
+    sha256 = "b29a304a46bf56b439d0d35ea586f7fd0fbf1a5565dca95de76e774885d8b64b";
   };
 
   buildInputs
@@ -17,7 +18,7 @@ stdenv.mkDerivation rec {
       ++ stdenv.lib.optional stdenv.isDarwin makeWrapper;
 
   preBuild = ''
-    sed -i -e 104,108d config.sh
+    sed -i -e 110,114d config.sh
     sed -i "1 s%^.*$%#!${perl}/bin/perl%" txt2h.pl
     export LDFLAGS=-lncursesw
   '';
diff --git a/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index 41a1abc5ee7e..6e6fd6d0eb6c 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation rec {
     homepage = http://pidgin.im;
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    maintainers = [ maintainers.vcunat ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/sflphone/default.nix b/pkgs/applications/networking/instant-messengers/sflphone/default.nix
index 2401d796bfdc..a31a682abf88 100644
--- a/pkgs/applications/networking/instant-messengers/sflphone/default.nix
+++ b/pkgs/applications/networking/instant-messengers/sflphone/default.nix
@@ -75,8 +75,10 @@ rec {
     '';
 
     # gtk3 programs have the runtime dependency on XDG_DATA_DIRS
-    postInstall = ''
-      wrapProgram $out/bin/sflphone* --prefix XDG_DATA_DIRS ":" ${gtk}/share
+    preFixup = ''
+      for f in "$out/bin/sflphone" "$out/bin/sflphone-client-gnome"; do
+        wrapProgram $f --prefix XDG_DATA_DIRS ":" "${gtk}/share:$GSETTINGS_SCHEMAS_PATH"
+      done
     '';
 
     buildInputs = [ daemon pkgconfig gtk glib dbus_glib libnotify intltool makeWrapper ];
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
index bd8cffd40e4b..173dfe9c929f 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/logger/default.nix
@@ -19,8 +19,6 @@ stdenv.mkDerivation rec {
 
   configureFlags = "--enable-call";
 
-  installFlags = "gsettingsschemadir=\${out}/share/telepathy/logger/glib-2.0/schemas/";
-
   meta = {
     description = "Logger service for Telepathy framework";
     homepage = http://telepathy.freedesktop.org/wiki/Logger ;
diff --git a/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix b/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix
index 5d44f97a1be1..a8142fc1e5cf 100644
--- a/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telepathy/mission-control/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, telepathy_glib, libxslt }:
+{ stdenv, fetchurl, pkgconfig, telepathy_glib, libxslt, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "${pname}-5.16.0";
@@ -9,7 +9,12 @@ stdenv.mkDerivation rec {
     sha256 = "1l61w6j04mbrjsbcfrlc0safh9nlsjnj0z6lszal64r9bhkcghzd";
   };
 
-  buildInputs = [ telepathy_glib ];
+  buildInputs = [ telepathy_glib makeWrapper ];
 
   nativeBuildInputs = [ pkgconfig libxslt ];
+
+  preFixup = ''
+    wrapProgram "$out/libexec/mission-control-5" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
 }
diff --git a/pkgs/applications/networking/irc/konversation/default.nix b/pkgs/applications/networking/irc/konversation/default.nix
index d3009115b178..7554ad7d1a8c 100644
--- a/pkgs/applications/networking/irc/konversation/default.nix
+++ b/pkgs/applications/networking/irc/konversation/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Integrated IRC client for KDE";
+    repositories.git = git://anongit.kde.org/konversation;
     license = "GPL";
     inherit (kdelibs.meta) maintainers platforms;
   };
diff --git a/pkgs/applications/networking/irc/quassel/default.nix b/pkgs/applications/networking/irc/quassel/default.nix
index 9066bfb6c4cf..57cfc928afb9 100644
--- a/pkgs/applications/networking/irc/quassel/default.nix
+++ b/pkgs/applications/networking/irc/quassel/default.nix
@@ -12,12 +12,12 @@ let
 
 in with stdenv; mkDerivation rec {
 
-  version = "0.9.2";
+  version = "0.10.0";
   name = "quassel${tag}-${version}";
 
   src = fetchurl {
     url = "http://quassel-irc.org/pub/quassel-${version}.tar.bz2";
-    sha256 = "1h2kzi4pgfv3qmvhxix9fffdjixs3bsya0i5c18dkh894mh02kgh";
+    sha256 = "08vwxkwnzlgnxn0wi6ga9fk8qgc6nklb236hsfnr5ad37bi8q8k8";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/networking/irc/weechat/default.nix b/pkgs/applications/networking/irc/weechat/default.nix
index 89b437acc905..b47018e0d970 100644
--- a/pkgs/applications/networking/irc/weechat/default.nix
+++ b/pkgs/applications/networking/irc/weechat/default.nix
@@ -17,6 +17,13 @@ stdenv.mkDerivation rec {
       cacert cmake
     ];
 
+  # This patch is based on
+  # weechat/c324610226cef15ecfb1235113c8243b068084c8. It fixes
+  # freeze/crash on /exit when using nixpkgs' gnutls 3.2. The next
+  # weechat release (0.4.4) will include this, so it's safe to remove
+  # then.
+  patches = [ ./fix-gnutls-32.diff ];
+
   postInstall = ''
        wrapProgram "$out/bin/weechat" \
          --prefix PYTHONPATH : "$PYTHONPATH" \
diff --git a/pkgs/applications/networking/irc/weechat/devel.nix b/pkgs/applications/networking/irc/weechat/devel.nix
new file mode 100644
index 000000000000..cf52838b78cc
--- /dev/null
+++ b/pkgs/applications/networking/irc/weechat/devel.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchgit, ncurses, openssl, perl, python, aspell, gnutls
+, zlib, curl , pkgconfig, libgcrypt, ruby, lua5, tcl, guile
+, pythonPackages, cacert, cmake, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  rev = "6f64ee699ba46c90b55d3b99c60e4807819e2b7b";
+  version = "0.4.4-rev${rev}";
+  name = "weechat-${version}";
+
+  src = fetchgit {
+    inherit rev;
+    url = "git://github.com/weechat/weechat.git";
+    sha256 = "1w58gir48kxvscf6njy3kmfxbjlnsf2byw3g3w6r47zjkgyxcf1z";
+  };
+
+  buildInputs = 
+    [ ncurses perl python openssl aspell gnutls zlib curl pkgconfig
+      libgcrypt ruby lua5 tcl guile pythonPackages.pycrypto makeWrapper
+      cacert cmake
+    ];
+
+  postInstall = ''
+       wrapProgram "$out/bin/weechat" \
+         --prefix PYTHONPATH : "$PYTHONPATH" \
+         --prefix PYTHONPATH : "$out/lib/${python.libPrefix}/site-packages"
+  '';
+
+  meta = {
+    homepage = http://www.weechat.org/;
+    description = "A fast, light and extensible chat client";
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = with stdenv.lib.maintainers; [ garbas the-kenny ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/irc/weechat/fix-gnutls-32.diff b/pkgs/applications/networking/irc/weechat/fix-gnutls-32.diff
new file mode 100644
index 000000000000..56e357c8f7dc
--- /dev/null
+++ b/pkgs/applications/networking/irc/weechat/fix-gnutls-32.diff
@@ -0,0 +1,16 @@
+diff --git a/src/gui/curses/CMakeLists.txt b/src/gui/curses/CMakeLists.txt
+index 325c611..a8927bc 100644
+--- a/src/gui/curses/CMakeLists.txt
++++ b/src/gui/curses/CMakeLists.txt
+@@ -53,9 +53,7 @@ IF(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
+   ENDIF(HAVE_BACKTRACE)
+ ENDIF(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
+ 
+-IF(${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")
+-  LIST(APPEND EXTRA_LIBS "pthread")
+-ENDIF(${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")
++LIST(APPEND EXTRA_LIBS "pthread")
+ 
+ IF(ICONV_LIBRARY)
+   LIST(APPEND EXTRA_LIBS ${ICONV_LIBRARY})
+
diff --git a/pkgs/applications/networking/mailreaders/sup/default.nix b/pkgs/applications/networking/mailreaders/sup/default.nix
index a8fb387e7296..70aeb0009814 100644
--- a/pkgs/applications/networking/mailreaders/sup/default.nix
+++ b/pkgs/applications/networking/mailreaders/sup/default.nix
@@ -3,7 +3,7 @@
 , gettext, iconv, locale, text, highline, rmail_sup, unicode, gnupg, which }:
 
 stdenv.mkDerivation rec {
-  version = "20131130";
+  version = "20140312";
   name    = "sup-${version}";
   
   meta = {
@@ -18,8 +18,8 @@ stdenv.mkDerivation rec {
 
   src = fetchgit {
     url = git://github.com/sup-heliotrope/sup.git;
-    rev = "a5a1e39034204ac4b05c9171a71164712690b010";
-    sha256 = "0w2w7dcif1ri1qq81csz7gj45rqd9z7hjd6x29awibybyyqyvj5s";
+    rev = "0cad7b308237c07b8a46149908b2ad4806ac3d1d";
+    sha256 = "83534b6ad9fb6aa883d630c927e3a71bd09a646e3254b4eb0cc7a09f69a525bc";
   };
 
   buildInputs =
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
new file mode 100644
index 000000000000..1e8a7e301ed7
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -0,0 +1,264 @@
+{ stdenv, fetchurl, config
+, gconf
+, alsaLib
+, at_spi2_atk
+, atk
+, cairo
+, cups
+, curl
+, dbus_glib
+, dbus_libs
+, fontconfig
+, freetype
+, gdk_pixbuf
+, glib
+, glibc
+, gst_plugins_base
+, gstreamer
+, gtk
+, kerberos
+, libX11
+, libXScrnSaver
+, libXext
+, libXinerama
+, libXrender
+, libXt
+, libcanberra
+, libgnome
+, libgnomeui
+, mesa
+, nspr
+, nss
+, pango
+}:
+
+let
+  version = "24.4.0";
+
+  sources = [
+    { locale = "ar"; arch = "linux-x86_64"; sha256 = "dd570da273c047e0b4bf29a7ed4bb4356dcbdd8de62ecb65fcddfecaf156966f"; }
+    { locale = "ar"; arch = "linux-i686"; sha256 = "f96c30ad874adf10608f818e0d986070b2a577de4d9aeb6c8dc7ea1ccd6e72f1"; }
+    { locale = "ast"; arch = "linux-x86_64"; sha256 = "8a50ff6a4f0d2bf68f989c2d3e0bca75c9fbcfc73c37b6cc16d935c1e3c1a9cf"; }
+    { locale = "ast"; arch = "linux-i686"; sha256 = "ace08104be64c038f5337e5178a79cb3f909c233f8722f7d54db04aef87935f9"; }
+    { locale = "be"; arch = "linux-x86_64"; sha256 = "793c07b33e861a5e29ce906a9764d980a82238b7c078391b96480592f526f323"; }
+    { locale = "be"; arch = "linux-i686"; sha256 = "98f2a5390572df625e0600ab224d5171d0357e187a3743ad72ec94d31533d993"; }
+    { locale = "bg"; arch = "linux-i686"; sha256 = "7d2fbb1ecad6e7a81c481a6697429809dc76809bba537ab8bc576b19ba5938f5"; }
+    { locale = "bg"; arch = "linux-x86_64"; sha256 = "a0a551d1790969b11ad2dcfc277f487645abff2497f2e9104235e77c45e5120c"; }
+    { locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "cb2a5549c3cdc9e159181cb9417c7f53158820f722e48d3ce2e4dcf10dea32d2"; }
+    { locale = "bn-BD"; arch = "linux-i686"; sha256 = "e395d07fb7b13443ccc97433d38a8845969cf854ace807950a364319c17861d6"; }
+    { locale = "br"; arch = "linux-i686"; sha256 = "8637d47dfb9b685a1034f5449d3481a5c62f74158f1a6318fe94504ad779dbb2"; }
+    { locale = "br"; arch = "linux-x86_64"; sha256 = "f36f6d2041a110ffc621249e6d92ec09f3b2bb7a1cf08b7892a0eb998b8a2bb3"; }
+    { locale = "ca"; arch = "linux-x86_64"; sha256 = "427a09458fe0d631a360b871db637d33bc0ad443ec443b7193db409321ab72da"; }
+    { locale = "ca"; arch = "linux-i686"; sha256 = "8531078cb31cb3035fdfd7397159cd42a6439868e954e1c9bd6eb7f9cd564bdb"; }
+    { locale = "cs"; arch = "linux-x86_64"; sha256 = "6fea39c9416357ec2902ed3dff84650a683dbe136790fa83cbca5d8bf869dc48"; }
+    { locale = "cs"; arch = "linux-i686"; sha256 = "c9e8d50e04dccd647ef7a566e68a3fe8374f86e9c1b7fe2001e3690270c5e7b9"; }
+    { locale = "da"; arch = "linux-x86_64"; sha256 = "41debf8c221063c4a5eafc3b769aabada6f3cebf35a354b7837c2ad737fa9b0f"; }
+    { locale = "da"; arch = "linux-i686"; sha256 = "77aa022e8c58dc60595f4600849da795faea4c20da6d5514f57e1b0033cda27c"; }
+    { locale = "de"; arch = "linux-x86_64"; sha256 = "05ec3d776de6060a82eea595b022b73c05ab7016419be5989929bd10ae282d27"; }
+    { locale = "de"; arch = "linux-i686"; sha256 = "471288d8660536508fe04b236eb72a7c245d27cadd59841a9bab0e73db271005"; }
+    { locale = "el"; arch = "linux-x86_64"; sha256 = "901c0097fb8072a37787a77758a0d6a2ced66acdf5a3588a0a6df3584034c309"; }
+    { locale = "el"; arch = "linux-i686"; sha256 = "da658a5f18a7162d513f8e0aac8d1648b18404bac7888a2f66c850f2084a54c5"; }
+    { locale = "en-GB"; arch = "linux-i686"; sha256 = "61c637e3b63a10d3c3eff91e9dcbd8558887a41d8e359aa637541bc4424a328a"; }
+    { locale = "en-GB"; arch = "linux-x86_64"; sha256 = "dcf399192062a7e3075125f550b0889fb4943c595814b8f6e755e9aa7e4656b1"; }
+    { locale = "en-US"; arch = "linux-i686"; sha256 = "376ab51e3c424db7e235b2e94494d48ce2fa9a8f1fbf5ef5cf9e367bbaf7422d"; }
+    { locale = "en-US"; arch = "linux-x86_64"; sha256 = "57917aa608131da4d569e791fc8167f4df54975b74c64d6df641858400dd4c1b"; }
+    { locale = "es-AR"; arch = "linux-x86_64"; sha256 = "47ecdb633bf1b246df84e796395a668fd98ac52a82177507da010b0174aa74d8"; }
+    { locale = "es-AR"; arch = "linux-i686"; sha256 = "9155d96fb14795bc5a22e10105ba0226a7b9c87a4d6ffa5cf7835dc77d69fa30"; }
+    { locale = "es-ES"; arch = "linux-i686"; sha256 = "3c41656512f1859b28abdf81d356dd90b720efd489d7021270114a9d28c54b38"; }
+    { locale = "es-ES"; arch = "linux-x86_64"; sha256 = "bad476b65d71744b9562a8548ca6cd608da92e62f45057688fef29ac77eb060e"; }
+    { locale = "et"; arch = "linux-i686"; sha256 = "06fdb2df4bcca189736fc6ae2fee6ba87f6b19d0b64f21bdb2b07e478fe6a0ba"; }
+    { locale = "et"; arch = "linux-x86_64"; sha256 = "f110d0940905e2cbe4ab14c1370ff88e533e030fb5a408bf4f06f517351d5979"; }
+    { locale = "eu"; arch = "linux-x86_64"; sha256 = "02bbb72fea711772d0dba0137641acb9f0293313a552e554443118324737fba4"; }
+    { locale = "eu"; arch = "linux-i686"; sha256 = "3a94fc161e98282691d668b68b3a8e7bf035dc87ec0d07be6eb1844b2a79cd39"; }
+    { locale = "fi"; arch = "linux-i686"; sha256 = "3f9c44306991554cf48fee4da86dec6ab06cb863baa8157d7adf29f6f8b0119f"; }
+    { locale = "fi"; arch = "linux-x86_64"; sha256 = "9883bfa54e331c17338bdf7e835a0a0f71a9366ad99ddc0fda12fd9d062f071b"; }
+    { locale = "fr"; arch = "linux-x86_64"; sha256 = "60e59c9b9ac78cba5604a051784a8721f84bfd10899d9575a4591ae4e5c48afc"; }
+    { locale = "fr"; arch = "linux-i686"; sha256 = "d16908d799fe667032d317b01db91cdfcd0b23654061203df84f5cb67d6ae837"; }
+    { locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "21e209179135fd97207e878c415d112e6c01bd7686f45eef2891cd8508dd8f9c"; }
+    { locale = "fy-NL"; arch = "linux-i686"; sha256 = "c8463a38d5fc454ad80a519a9828c1c8808688aa140b5d5276b53a659ae7bf7d"; }
+    { locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "22d6d90cd7490e36ef5df2106ba84bcd49038cecf70a60cebd4bf552a01bfdd7"; }
+    { locale = "ga-IE"; arch = "linux-i686"; sha256 = "5a7fcc013bcd09d327e40e5b0001057067f9e509e52f38681893f1a16cf8520a"; }
+    { locale = "gd"; arch = "linux-i686"; sha256 = "14c7d9a846a5d2a409089a16afdc97309d6818f97097d73757245b29cdeb73ae"; }
+    { locale = "gd"; arch = "linux-x86_64"; sha256 = "e4d3b093da2d80e2a2c02be8d03831c6a89e8969d3261a39f153a6d96f20c7eb"; }
+    { locale = "gl"; arch = "linux-i686"; sha256 = "73515b65314f8aa28fdb8708e821c01ba6edab5474e5140266b8ee8c0206807f"; }
+    { locale = "gl"; arch = "linux-x86_64"; sha256 = "7dd646cde4969243178237ea7fdf7b3c7c369e735a42f21292e8fcc3bce2c6ac"; }
+    { locale = "he"; arch = "linux-x86_64"; sha256 = "3fdf3750727f47628ffe4e7b28e8b7f180194be5985f4a10c703d3322a563e55"; }
+    { locale = "he"; arch = "linux-i686"; sha256 = "e4385cded8a13776890320780c6aa265c9562a6301f8f5ee7f4fbeb4aa54acf8"; }
+    { locale = "hr"; arch = "linux-x86_64"; sha256 = "ada94d6612f20642e6294a17334afb8d31b419132e725618a376728a6028454e"; }
+    { locale = "hr"; arch = "linux-i686"; sha256 = "bcbb85910f983145ff8df79574087cebaac6537600aa9a479f55298a7d6bc1c2"; }
+    { locale = "hu"; arch = "linux-i686"; sha256 = "0f41a925ee5c3ad59f24a6b59eed066d1fb37ea8ec81ab4bac70280437be2589"; }
+    { locale = "hu"; arch = "linux-x86_64"; sha256 = "9038e0358bb63a147835cacf91a7e7db888fc7b93662cca4919110e2a5daed76"; }
+    { locale = "hy-AM"; arch = "linux-i686"; sha256 = "24af2ffa71d5810f8e947de27e77a70310c22dc1cc89640b67416fe74a4a14b3"; }
+    { locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "62cfce68247f5afd2c68a97ed230b515c1515ecd279a753bf9c728c552683f6c"; }
+    { locale = "id"; arch = "linux-i686"; sha256 = "a5e2d72cb0841848cd5a947d4cda2e84db1eae97a0735974690176ccd966eeea"; }
+    { locale = "id"; arch = "linux-x86_64"; sha256 = "f1d539fe69b8121205c5411096554cab41ae4f42a2018af6ba020a2d8fe660dc"; }
+    { locale = "is"; arch = "linux-i686"; sha256 = "6eacbd0b4b9f47f67818d6021600b5dddc79d2a38edac5c47f61ac039ed5cdb6"; }
+    { locale = "is"; arch = "linux-x86_64"; sha256 = "fcc86ac738b190012d38d32c6cee3c35d57f6a3b80867c0107f4b8a2717961bb"; }
+    { locale = "it"; arch = "linux-x86_64"; sha256 = "9b668a501c7da55c630761dbf89ae8fe2e32038af8ce4c10fc646eae7c2d08e2"; }
+    { locale = "it"; arch = "linux-i686"; sha256 = "f610b7d4a34635e7c3b5c355873b65558537224d5a241b92605a49499ba4d5e6"; }
+    { locale = "ja"; arch = "linux-i686"; sha256 = "185ee26eb9a33ba534805b5b3547b3524bf11c94614adc252f7d17b41279d312"; }
+    { locale = "ja"; arch = "linux-x86_64"; sha256 = "1be85c39fa8b09a6bc2b11a47d04f0447628c3ed8a775d27c8e04577627ed63e"; }
+    { locale = "ko"; arch = "linux-i686"; sha256 = "e868d431d77b419bae6fcc7e1e137815ca8cbad6673074469005c606023d7983"; }
+    { locale = "ko"; arch = "linux-x86_64"; sha256 = "fa4db6ff8047a5e11411e507df4f84baac5511a1709d5685a2a6e8da0d2e1f25"; }
+    { locale = "lt"; arch = "linux-i686"; sha256 = "40c1eeabbd9d877750bee7f5f4a6b6f2108aa364ace8eefff26806a5bafca5eb"; }
+    { locale = "lt"; arch = "linux-x86_64"; sha256 = "4bdff4418bc0c9acc7d3b00ccc6500d51e65a501c2438e99e22c03bbeb36dfff"; }
+    { locale = "nb-NO"; arch = "linux-i686"; sha256 = "541b5f434e6354bb6a4c50abb828a49383b1d1a9fb31d6b99c1f052ef73bc2f2"; }
+    { locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "9e954408406762e55fd40487cad589c876285145931f8a12ff6ced29d9583cde"; }
+    { locale = "nl"; arch = "linux-i686"; sha256 = "06a57772563456d5283b9a36b9e6cbb5efb4f33e4ea29ac2446055e0a965b8c9"; }
+    { locale = "nl"; arch = "linux-x86_64"; sha256 = "42a8d995ac906c7fb4a1952db62d1717aa7c4660a2e7e794da3aae6aaac6f9c9"; }
+    { locale = "nn-NO"; arch = "linux-i686"; sha256 = "6fed1e74c6323d2909caf471ca733df46224afcb0c632d5fa0f0d80d6157efd3"; }
+    { locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "c29d8ff69ec2a8b5f508b7c56cd8679fe3b322f7e2e87f10303fd8bca1b93230"; }
+    { locale = "pa-IN"; arch = "linux-i686"; sha256 = "a69a7ceb4fa85cc43c367f1ddebafa76808e83d3044c158287a5923b82fc3093"; }
+    { locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "e38e75976891204fde647d389b6c89c807d378a534d6e04582024755a3cb6139"; }
+    { locale = "pl"; arch = "linux-x86_64"; sha256 = "39a0d3f865c462b5d3ae569825befd61dbf3ee5a6b2b81d3b9d31f4c98cf7b72"; }
+    { locale = "pl"; arch = "linux-i686"; sha256 = "3ccedf1ad79135d825f762dd09da88be23901591b27ea7e61a887d5398284a46"; }
+    { locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "ea29e40d41442ab373855acd7b40927fc5a0408f9d3bb4a0c6a2021cd8b0fca2"; }
+    { locale = "pt-BR"; arch = "linux-i686"; sha256 = "f6170909b6527e935584673a17d1245c33142a755a9db45dda2de240871fc6c0"; }
+    { locale = "pt-PT"; arch = "linux-i686"; sha256 = "15531f4e4652d533fd8cb8d3be8b5e24717240160d885629eecc7f08d8cd0701"; }
+    { locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "9100cdf6ba87959dfbdf756c925f6a2f35fc0c6ed453625a23eccc48f0bdf331"; }
+    { locale = "rm"; arch = "linux-x86_64"; sha256 = "9bd00e4e2634e9f922d6c1d4ef82dcba53f88fa6d7d1986037665a42109d39d2"; }
+    { locale = "rm"; arch = "linux-i686"; sha256 = "e2ca3832625efa908c6d88627960e1d98255d14095a36033cddaa50065172da0"; }
+    { locale = "ro"; arch = "linux-x86_64"; sha256 = "676120061a33c1bbbd381ea1d84b271c6e21d4a531ba776f67f7a02fd91fb99e"; }
+    { locale = "ro"; arch = "linux-i686"; sha256 = "c69d6b8a8de474e460c89ba442e25aa39fe761225f7c4b12eb1df88021a6b6c3"; }
+    { locale = "ru"; arch = "linux-x86_64"; sha256 = "5a6af10060b8ea8acd3955a4056765574873e9341e4627ddcbf9811724f5eac0"; }
+    { locale = "ru"; arch = "linux-i686"; sha256 = "92ce7cb5db9d94e291d7275b8817640c68dc061a3947317cba76ceb263a4b614"; }
+    { locale = "si"; arch = "linux-i686"; sha256 = "39849a4d38a96ebca9727b65093c36d8d50cadddcdea7ea404ee4aeff10fec0d"; }
+    { locale = "si"; arch = "linux-x86_64"; sha256 = "fa42ef419e173181166c6797e37571df6b7c25797a5caf8ca44c34b4f2faacdb"; }
+    { locale = "sk"; arch = "linux-x86_64"; sha256 = "2c9c81db8c15116e6061de0b44dcb34579ce305ca30af284cf9eac52630fef55"; }
+    { locale = "sk"; arch = "linux-i686"; sha256 = "b253607b29565169d74c491772ba2887c3e2c0dfcc3a7cedf91afa0bb073ff72"; }
+    { locale = "sl"; arch = "linux-x86_64"; sha256 = "03e7781cd0c3fef0596e55ba8a711ef8b8f300e48297ef3cad7885b2b118864f"; }
+    { locale = "sl"; arch = "linux-i686"; sha256 = "18fe799b1b675e5513ddf9edbe845bfaaafd67162e9d34250a31d0ee05bc9bba"; }
+    { locale = "sq"; arch = "linux-i686"; sha256 = "4fd1be2d2c6a703544b82bf977ea63df3e295c16c9ea97573ee57945e07639ee"; }
+    { locale = "sq"; arch = "linux-x86_64"; sha256 = "e96f7302d47897c3fc58a2777aed666aca29641500e912cee1bc59406df8e500"; }
+    { locale = "sr"; arch = "linux-x86_64"; sha256 = "ede709c9e6014edbc543511d99a61acfb0d40b796ed5ab42267ae7f8efb6583c"; }
+    { locale = "sr"; arch = "linux-i686"; sha256 = "fbfc0d476817c7076a72fd6fe2519c6a347fb062f696a8fe0c969182750d1d11"; }
+    { locale = "sv-SE"; arch = "linux-i686"; sha256 = "d30dda991111ae5bbf7252d889cef53258317d3570e56360db3d7676a8fc7602"; }
+    { locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "eba61a1417ba4cb4885732d2eb621f5a385b4b433f706d52bd1b401d2298985e"; }
+    { locale = "ta-LK"; arch = "linux-i686"; sha256 = "92dc3a2aaf30c5bb16462ee7d73a5df6f8b5d2d1530f5d1fb4b90460e84dc77f"; }
+    { locale = "ta-LK"; arch = "linux-x86_64"; sha256 = "e5db15f32c819d3b0e670ac975d7afc118915abeaf4a9f0a02a5b67c490605d7"; }
+    { locale = "tr"; arch = "linux-x86_64"; sha256 = "0c689f622a0770a0b0d8f87d35513f9fbc110ca507d0b8b3bd426f763a0f77c4"; }
+    { locale = "tr"; arch = "linux-i686"; sha256 = "f49e5f3bf1b4616f52e82c480f9a4752269f393d79de2274fc0562cfe9fef1ea"; }
+    { locale = "uk"; arch = "linux-x86_64"; sha256 = "06100c2a82b3c31ea85f1f1d8856db62f2a73142fd1263e3db5df679f8843d8f"; }
+    { locale = "uk"; arch = "linux-i686"; sha256 = "8358a935935215fea5eb75c69cf63bb5fc5c22bcce76939cfb804f3ee9f89e54"; }
+    { locale = "vi"; arch = "linux-i686"; sha256 = "16a0f71efcf71640234501e3c8a3bd1befe15e1bb0bacc83ff590d6c780a0e5b"; }
+    { locale = "vi"; arch = "linux-x86_64"; sha256 = "d5d0371ade5603cb725d6677983df037da06acb13207550b8a1a88c2948e992b"; }
+    { locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "287b1fda3bb2d8d27ea22ea4c8c21d7ee0b3a5d439ea32e72dfc882fd64c5765"; }
+    { locale = "zh-CN"; arch = "linux-i686"; sha256 = "3bddd9f4e742ad80bb6d35f3db8ea50cd496ad1be06003e67b4fcc290945bab8"; }
+    { locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "5a5cb16f45d1c3ccd9e0fd0b21a7b55e90b49f0b37cd550bd89cb6c00d92046c"; }
+    { locale = "zh-TW"; arch = "linux-i686"; sha256 = "aea52fd5f8d8d5b720e1fde907b9a7b7638b384b71d01295b08749df06c578bc"; }
+  ];
+
+  arch = if stdenv.system == "i686-linux"
+    then "linux-i686"
+    else "linux-x86_64";
+
+  isPrefixOf = prefix: string:
+    builtins.substring 0 (builtins.stringLength prefix) string == prefix;
+
+  sourceMatches = locale: source:
+      (isPrefixOf source.locale locale) && source.arch == arch;
+
+  systemLocale = config.i18n.defaultLocale or "en-US";
+
+  defaultSource = stdenv.lib.findFirst (sourceMatches "en-US") {} sources;
+
+  source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources;
+
+in
+
+stdenv.mkDerivation {
+  name = "thunderbird-bin-${version}";
+
+  src = fetchurl {
+    url = "http://download-installer.cdn.mozilla.net/pub/thunderbird/releases/${version}/${source.arch}/${source.locale}/thunderbird-${version}.tar.bz2";
+    inherit (source) sha256;
+  };
+
+  phases = "unpackPhase installPhase";
+
+  libPath = stdenv.lib.makeLibraryPath
+    [ stdenv.gcc.gcc
+      gconf
+      alsaLib
+      at_spi2_atk
+      atk
+      cairo
+      cups
+      curl
+      dbus_glib
+      dbus_libs
+      fontconfig
+      freetype
+      gdk_pixbuf
+      glib
+      glibc
+      gst_plugins_base
+      gstreamer
+      gtk
+      kerberos
+      libX11
+      libXScrnSaver
+      libXext
+      libXinerama
+      libXrender
+      libXt
+      libcanberra
+      libgnome
+      libgnomeui
+      mesa
+      nspr
+      nss
+      pango
+    ] + ":" + stdenv.lib.makeSearchPath "lib64" [
+      stdenv.gcc.gcc
+    ];
+
+  installPhase =
+    ''
+      mkdir -p "$prefix/usr/lib/thunderbird-bin-${version}"
+      cp -r * "$prefix/usr/lib/thunderbird-bin-${version}"
+
+      mkdir -p "$out/bin"
+      ln -s "$prefix/usr/lib/thunderbird-bin-${version}/thunderbird" "$out/bin/"
+
+      for executable in \
+        thunderbird mozilla-xremote-client thunderbird-bin plugin-container \
+        updater
+      do
+        patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+          "$out/usr/lib/thunderbird-bin-${version}/$executable"
+      done
+
+      for executable in \
+        thunderbird mozilla-xremote-client thunderbird-bin plugin-container \
+        updater libxul.so
+      do
+        patchelf --set-rpath "$libPath" \
+          "$out/usr/lib/thunderbird-bin-${version}/$executable"
+      done
+
+      # Create a desktop item.
+      mkdir -p $out/share/applications
+      cat > $out/share/applications/thunderbird.desktop <<EOF
+      [Desktop Entry]
+      Type=Application
+      Exec=$out/bin/thunderbird
+      Icon=$out/lib/thunderbird-bin-${version}/chrome/icons/default/default256.png
+      Name=Thunderbird
+      GenericName=Mail Reader
+      Categories=Application;Network;
+      EOF
+    '';
+
+  meta = with stdenv.lib; {
+    description = "Mozilla Thunderbird, a full-featured email client";
+    homepage = http://www.mozilla.org/thunderbird/;
+    license = {
+      shortName = "unfree"; # not sure
+      fullName = "unfree";
+      url = http://www.mozilla.org/en-US/foundation/trademarks/policy/;
+    };
+    platforms = platforms.linux;
+  };
+}
+
diff --git a/pkgs/applications/networking/newsreaders/liferea/default.nix b/pkgs/applications/networking/newsreaders/liferea/default.nix
index 527c860c0986..650e3237fe41 100644
--- a/pkgs/applications/networking/newsreaders/liferea/default.nix
+++ b/pkgs/applications/networking/newsreaders/liferea/default.nix
@@ -6,14 +6,14 @@
 }:
 
 let pname = "liferea";
-    version = "1.10.6";
+    version = "1.10.8";
 in
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.gz";
-    sha256 = "0vp19z4p3cn3zbg1zjpg2iyzwq893dx5c1kh6aac06s3rf1124gm";
+    url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${name}.tar.bz2";
+    sha256 = "1d3icma90mj0nai20pfhxp4k4l33iwkkkcddb9vg5hi4yq4wpmwx";
   };
 
   buildInputs = with gst_all_1; [
@@ -28,16 +28,15 @@ stdenv.mkDerivation rec {
   ];
 
   preFixup = ''
-    rm $out/share/icons/hicolor/icon-theme.cache'';
+    rm $out/share/icons/hicolor/icon-theme.cache
 
-  postInstall  = ''
     for f in "$out"/bin/*; do
       wrapProgram "$f" \
         --prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${pygobject3})" \
         --prefix LD_LIBRARY_PATH : "${gnome3.libgnome_keyring}/lib" \
         --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
         --prefix GIO_EXTRA_MODULES : "${gnome3.dconf}/lib/gio/modules:${glib_networking}/lib/gio/modules" \
-        --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.gnome_icon_theme}/share:${gnome3.gsettings_desktop_schemas}/share:${gnome3.gtk}/share:$out/share"
+        --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.gnome_icon_theme}/share:${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
     done
   '';
 
diff --git a/pkgs/applications/networking/newsreaders/slrn/default.nix b/pkgs/applications/networking/newsreaders/slrn/default.nix
new file mode 100644
index 000000000000..c933460af43b
--- /dev/null
+++ b/pkgs/applications/networking/newsreaders/slrn/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl,
+slang, ncurses
+}:
+
+let version = "1.0.1"; in
+
+stdenv.mkDerivation {
+  name = "slrn-${version}";
+
+  src = fetchurl {
+    url = "http://www.jedsoft.org/slrn/download/slrn-1.0.1.tar.gz";
+    sha256 = "1rmaprfwvshzkv0c5vi43839cz3laqjpl306b9z0ghwyjdha1d06";
+  };
+
+  preConfigure = ''
+    sed -i -e "s|-ltermcap|-lncurses|" configure
+    sed -i autoconf/Makefile.in src/Makefile.in \
+      -e "s|/bin/cp|cp|"  \
+      -e "s|/bin/rm|rm|"
+  '';
+
+  configureFlags = "--with-slang=${slang}";
+
+  buildInputs = [ slang ncurses ];
+
+  meta = {
+    description = "The slrn (S-Lang read news) 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 045e6557730e..bbb3561bae97 100644
--- a/pkgs/applications/networking/p2p/gnunet/default.nix
+++ b/pkgs/applications/networking/p2p/gnunet/default.nix
@@ -4,11 +4,11 @@
 , makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "gnunet-0.10.0";
+  name = "gnunet-0.10.1";
 
   src = fetchurl {
     url = "mirror://gnu/gnunet/${name}.tar.gz";
-    sha256 = "0zqpc47kywhjrpphl0palz849khv00ra2gjrfkysp6p0gfsbvd0i";
+    sha256 = "04wxzm3wkgqbn42b8ksr4cx6m5cckyig5cls1adh0nwdczwvnp7n";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/networking/p2p/mldonkey/default.nix b/pkgs/applications/networking/p2p/mldonkey/default.nix
index 2f739b056d4f..57ea62485310 100644
--- a/pkgs/applications/networking/p2p/mldonkey/default.nix
+++ b/pkgs/applications/networking/p2p/mldonkey/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, ocaml, zlib, bzip2, ncurses, file, gd, libpng }:
 
 stdenv.mkDerivation (rec {
-  name = "mldonkey-3.1.3";
+  name = "mldonkey-3.1.5";
   
   src = fetchurl {
     url = "mirror://sourceforge/mldonkey/${name}.tar.bz2";
-    sha256 = "1qnr0qzliw4aynf2zhmm5hmrc9bd5vhdq3bi8n88j4nc86gry9bw";
+    sha256 = "1jqik6b09p27ckssppfiqpph7alxbgpnf9w1s0lalmi3qyyd9ybl";
   };
   
   meta = {
diff --git a/pkgs/applications/networking/p2p/ncdc/default.nix b/pkgs/applications/networking/p2p/ncdc/default.nix
new file mode 100644
index 000000000000..794f6fe43087
--- /dev/null
+++ b/pkgs/applications/networking/p2p/ncdc/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, ncurses, zlib, bzip2, sqlite, pkgconfig, glib, gnutls }:
+
+stdenv.mkDerivation rec {
+  name = "ncdc-${version}";
+  version = "1.19";
+
+  src = fetchurl {
+    url = "http://dev.yorhel.nl/download/ncdc-1.19.tar.gz";
+    sha256 = "1wgvqwfxq9kc729h2r528n55821w87sfbm4h21mr6pvkpfw30hf2";
+  };
+
+  buildInputs = [ ncurses zlib bzip2 sqlite pkgconfig glib gnutls ];
+
+  meta = {
+    description = "modern and lightweight direct connect client with a friendly ncurses interface";
+    homepage = http://dev.yorhel.nl/ncdc;
+    license = stdenv.lib.licenses.mit;
+    platforms = stdenv.lib.platforms.linux; # arbitrary
+    maintainers = [ stdenv.lib.maintainers.emery ];
+  };
+}
diff --git a/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix b/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
index 3c1cfe518363..968aba20754a 100644
--- a/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
+++ b/pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk3, json_glib, curl }:
+{ stdenv, makeWrapper, fetchurl, pkgconfig, intltool, gtk3, json_glib, curl }:
 
 
 stdenv.mkDerivation rec {
@@ -9,7 +9,12 @@ stdenv.mkDerivation rec {
     sha256 = "1jbh2pm4i740cmzqd2r7zxnqqipvv2v2ndmnmk53nqrxcbgc4nlz";
   };
 
-  buildInputs = [ pkgconfig intltool gtk3 json_glib curl ];
+  buildInputs = [ makeWrapper pkgconfig intltool gtk3 json_glib curl ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/transmission-remote-gtk" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
 
   meta = {
    description = "GTK remote control for the Transmission BitTorrent client";
diff --git a/pkgs/applications/networking/p2p/transmission/default.nix b/pkgs/applications/networking/p2p/transmission/default.nix
index 958e19a0986f..29fb558c83d6 100644
--- a/pkgs/applications/networking/p2p/transmission/default.nix
+++ b/pkgs/applications/networking/p2p/transmission/default.nix
@@ -27,10 +27,10 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--with-systemd-daemon" ]
     ++ optional enableGTK3 "--with-gtk";
 
-  postInstall = optionalString enableGTK3 /* gsettings schemas for file dialogues */ ''
+  preFixup = optionalString enableGTK3 /* gsettings schemas for file dialogues */ ''
     rm "$out/share/icons/hicolor/icon-theme.cache"
     wrapProgram "$out/bin/transmission-gtk" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share"
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/remote/teamviewer/default.nix b/pkgs/applications/networking/remote/teamviewer/default.nix
index 8c6295197643..1bf40eabfae4 100644
--- a/pkgs/applications/networking/remote/teamviewer/default.nix
+++ b/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, libX11, libXtst, libXext, libXdamage, libXfixes, wine, makeWrapper
-, bash }:
+, bash, findutils, coreutils }:
 
 assert stdenv.system == "i686-linux";
 let
@@ -31,6 +31,13 @@ stdenv.mkDerivation {
 
     cat > $out/bin/teamviewer << EOF
     #!${bash}/bin/sh
+    # Teamviewer puts symlinks to nix store paths in ~/.teamviewer. When those
+    # paths become garbage collected, teamviewer crashes upon start because of
+    # those broken symlinks. An easy workaround to this behaviour is simply to
+    # delete all symlinks before we start teamviewer. Teamviewer will fixup the
+    # symlinks, just like it did the first time the user ran it.
+    ${findutils}/bin/find "\$HOME"/.teamviewer/*/*/"Program Files/TeamViewer/" -type l -print0 | ${findutils}/bin/xargs -0 ${coreutils}/bin/rm
+
     export LD_LIBRARY_PATH=${toldpath}\''${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH}
     export PATH=${topath}\''${PATH:+:\$PATH}
     $out/share/teamviewer/wrapper wine "c:\Program Files\TeamViewer\Version7\TeamViewer.exe" "\$@"
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index ed2ce4c12c00..256681ec54e2 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -17,6 +17,10 @@ stdenv.mkDerivation {
     geoip libnl c-ares gtk python
   ];
 
+  preConfigure = ''
+    sed -re 's/g_memmove/memmove/' -i $(grep -rl g_memmove .)
+  '';
+
   configureFlags = "--disable-usr-local --disable-silent-rules --with-gtk2 --without-gtk3 --without-qt --with-ssl";
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/applications/networking/sync/rsync/default.nix b/pkgs/applications/networking/sync/rsync/default.nix
index 5447b21009ff..5265faf87b6f 100644
--- a/pkgs/applications/networking/sync/rsync/default.nix
+++ b/pkgs/applications/networking/sync/rsync/default.nix
@@ -6,16 +6,17 @@
 assert enableACLs -> acl != null;
 
 stdenv.mkDerivation rec {
-  name = "rsync-3.0.9";
+  name = "rsync-${version}";
+  version = "3.1.0";
 
   mainSrc = fetchurl {
-    url = http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz;
-    sha256 = "01bw4klqsrlhh3i9lazd485sd9qx5djvnwa21lj2h3a9sn6hzw9h";
+    url = "http://rsync.samba.org/ftp/rsync/src/rsync-${version}.tar.gz";
+    sha256 = "0kirw8wglqvwi1v8bwxp373g03xg857h59j5k3mmgff9gzvj7jl1";
   };
 
   patchesSrc = fetchurl {
-    url = http://rsync.samba.org/ftp/rsync/rsync-patches-3.0.9.tar.gz;
-    sha256 = "0c1e9b56e99667dfc47641124460bac61a04c5d2ee89f575c6bc78c7a69005a9";
+    url = "http://rsync.samba.org/ftp/rsync/rsync-patches-${version}.tar.gz";
+    sha256 = "0sl8aadpjblvbb05vgais40z90yzhr09rwz0cykjdiv452gli75p";
   };
 
   srcs = [mainSrc] ++ stdenv.lib.optional enableCopyDevicesPatch patchesSrc;
@@ -30,6 +31,6 @@ stdenv.mkDerivation rec {
     license = stdenv.lib.licenses.gpl3Plus;
 
     platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.simons ];
+    maintainers = [ stdenv.lib.maintainers.simons stdenv.lib.maintainers.emery ];
   };
 }
diff --git a/pkgs/applications/networking/sync/unison/default.nix b/pkgs/applications/networking/sync/unison/default.nix
index 35dd2d2a7d02..744c8c01efa5 100644
--- a/pkgs/applications/networking/sync/unison/default.nix
+++ b/pkgs/applications/networking/sync/unison/default.nix
@@ -3,10 +3,10 @@
 
 stdenv.mkDerivation (rec {
 
-  name = "unison-2.40.63";
+  name = "unison-2.40.102";
   src = fetchurl {
-    url = "http://www.seas.upenn.edu/~bcpierce/unison/download/releases/${name}/${name}.tar.gz";
-    sha256 = "17fd2bg5jxwbib87j6j2bjpwdm66whqm1fq46v70hfby79j00vkf";
+    url = "http://www.seas.upenn.edu/~bcpierce/unison/download/releases/stable/${name}.tar.gz";
+    sha256 = "0m78q5vnsric1virvkmxxx32ipaq0cnj0kbirdbg36395gq94jix";
   };
 
   buildInputs = [ ocaml makeWrapper ncurses ];
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
new file mode 100644
index 000000000000..50bc61eeeff0
--- /dev/null
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, fetchgit, go }:
+
+stdenv.mkDerivation rec {
+  name = "syncthing-${version}";
+  version = "0.7.1";
+
+  src = fetchgit {
+    url = "git://github.com/calmh/syncthing.git";
+    rev = "refs/tags/v${version}";
+    sha256 = "1rja837kimiq15km8cridbm5yxvkm6mkvkwywdi76qf9rm0pcjl1";
+  };
+
+  buildInputs = [ go ];
+
+  buildPhase = ''
+    mkdir -p "./dependencies/src/github.com/calmh/syncthing"
+
+    cp -r "./auto" "./dependencies/src/github.com/calmh/syncthing"
+    cp -r "./buffers" "./dependencies/src/github.com/calmh/syncthing"
+    cp -r "./cid" "./dependencies/src/github.com/calmh/syncthing"
+    cp -r "./discover" "./dependencies/src/github.com/calmh/syncthing"
+    cp -r "./files" "./dependencies/src/github.com/calmh/syncthing"
+    cp -r "./lamport" "./dependencies/src/github.com/calmh/syncthing"
+    cp -r "./protocol" "./dependencies/src/github.com/calmh/syncthing"
+    cp -r "./scanner" "./dependencies/src/github.com/calmh/syncthing"
+    cp -r "./mc" "./dependencies/src/github.com/calmh/syncthing"
+    cp -r "./xdr" "./dependencies/src/github.com/calmh/syncthing"
+
+    export GOPATH="`pwd`/Godeps/_workspace:`pwd`/dependencies"
+
+    go test -cpu=1,2,4 ./...
+
+    mkdir ./bin
+
+    go build -o ./bin/syncthing -ldflags "-w -X main.Version v${version}" ./cmd/syncthing
+    go build -o ./bin/stcli -ldflags "-w -X main.Version v${version}" ./cmd/stcli
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp -r ./bin $out
+  '';
+
+  meta = {
+    homepage = http://syncthing.net/;
+    description = "Syncthing 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/networking/yafc/default.nix b/pkgs/applications/networking/yafc/default.nix
index bdbb53d1675f..752a7824e6f0 100644
--- a/pkgs/applications/networking/yafc/default.nix
+++ b/pkgs/applications/networking/yafc/default.nix
@@ -1,13 +1,13 @@
-{stdenv, fetchurl, readline, libssh, intltool}:
+{stdenv, fetchurl, readline, libssh, intltool, libbsd}:
 
 stdenv.mkDerivation rec {
-  name = "yafc-1.2.3";
+  name = "yafc-1.3.2";
   src = fetchurl {
-    url = "https://github.com/downloads/sebastinas/yafc/${name}.tar.xz";
-    sha256 = "11h5r9ragfpil338kq981wxnifacflqfwgydhmy00b3fbdlnxzsi";
+    url = "http://www.yafc-ftp.com/upload/${name}.tar.xz";
+    sha256 = "0rrhik00xynxg5s3ffqlyynvy8ssv8zfaixkpb77baxa274gnbd7";
   };
 
-  buildInputs = [ readline libssh intltool ];
+  buildInputs = [ readline libssh intltool libbsd ];
 
   meta = {
     description = "ftp/sftp client with readline, autocompletion and bookmarks";
diff --git a/pkgs/applications/office/gnumeric/default.nix b/pkgs/applications/office/gnumeric/default.nix
index 0ae27e322b7c..014aa5bf0fd2 100644
--- a/pkgs/applications/office/gnumeric/default.nix
+++ b/pkgs/applications/office/gnumeric/default.nix
@@ -20,9 +20,12 @@ stdenv.mkDerivation rec {
     goffice gtk3 makeWrapper
   ];
 
-  postInstall = ''
-    wrapProgram "$out"/bin/gnumeric-* \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome_icon_theme}/share"
+  preFixup = ''
+    for f in "$out"/bin/gnumeric-*; do
+      wrapProgram $f \
+        --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+    done
+    rm $out/share/icons/hicolor/icon-theme.cache
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/office/ledger/3.0.nix b/pkgs/applications/office/ledger/3.0.nix
index 1afa3a979e37..44cf87b7929c 100644
--- a/pkgs/applications/office/ledger/3.0.nix
+++ b/pkgs/applications/office/ledger/3.0.nix
@@ -1,21 +1,21 @@
-{ stdenv, fetchgit, cmake, boost, gmp, mpfr, libedit, python, texinfo }:
+{ stdenv, fetchgit, cmake, boost, gmp, mpfr, libedit, python
+, texinfo, gnused }:
 
 let
-  rev = "3b5f496536";
+  rev = "a0c5addbbd";
 in
+
 stdenv.mkDerivation {
-  name = "ledger3-2013.12.${rev}";
+  name = "ledger-3.0.2.${rev}";
 
   src = fetchgit {
-    url = "https://github.com/ledger/ledger.git";
+    url = "git://github.com/ledger/ledger.git";
     inherit rev;
-    sha256 = "0r36zsdsyy6aylfcwyqra4796y4abi3b27wv5fvk3g2bmyzqzx4j";
+    sha256 = "1yr4i8gpby67j4vl7xk109dwb14z8a424nwgva8rbms8115w4ps5";
   };
 
-  buildInputs = [ cmake boost gmp mpfr libedit python texinfo ];
+  buildInputs = [ cmake boost gmp mpfr libedit python texinfo gnused ];
 
-  # Tests on Darwin are failing
-  doCheck = !stdenv.isDarwin;
   enableParallelBuilding = true;
 
   # Skip byte-compiling of emacs-lisp files because this is currently
@@ -38,6 +38,6 @@ stdenv.mkDerivation {
     '';
 
     platforms = stdenv.lib.platforms.all;
-    maintainers = with stdenv.lib.maintainers; [ simons the-kenny ];
+    maintainers = with stdenv.lib.maintainers; [ simons the-kenny jwiegley ];
   };
 }
diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix
new file mode 100644
index 000000000000..4afd250a549f
--- /dev/null
+++ b/pkgs/applications/office/zotero/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, bash, xulrunner }:
+
+assert (stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux");
+
+let
+  version = "4.0.19";
+  arch = if stdenv.system == "x86_64-linux"
+           then "linux-x86_64"
+           else "linux-i686";
+in
+stdenv.mkDerivation {
+  name = "zotero-${version}";
+
+  src = fetchurl {
+    url = "https://download.zotero.org/standalone/${version}/Zotero-${version}_${arch}.tar.bz2";
+    sha256 = if stdenv.system == "x86_64-linux"
+               then "0xihvk7ms1vvzmxvpw8hs15pl1vvmf3zd72nwyaqhg469kwcz9s1"
+               else "1z4q8nzl90snb03ywk0cp64nv3cgasj9fvbcw2d4bgl2zlgwzpy9";
+  };
+
+  # Strip the bundled xulrunner
+  prePatch = ''rm -fr run-zotero.sh zotero xulrunner/'';
+
+  inherit bash xulrunner;
+  installPhase = ''
+    ensureDir "$out/libexec/zotero"
+    cp -vR * "$out/libexec/zotero/"
+
+    ensureDir "$out/bin"
+    substituteAll "${./zotero.sh}" "$out/bin/zotero"
+    chmod +x "$out/bin/zotero"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://www.zotero.org";
+    description = "Collect, organize, cite, and share your research sources";
+    license = licenses.agpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ ttuegel ];
+  };
+}
diff --git a/pkgs/applications/office/zotero/zotero.sh b/pkgs/applications/office/zotero/zotero.sh
new file mode 100644
index 000000000000..c80d5e8189ea
--- /dev/null
+++ b/pkgs/applications/office/zotero/zotero.sh
@@ -0,0 +1,3 @@
+#!@bash@/bin/bash
+
+exec "@xulrunner@/bin/xulrunner" "@out@/libexec/zotero/application.ini" "${@}"
diff --git a/pkgs/applications/science/logic/boolector/default.nix b/pkgs/applications/science/logic/boolector/default.nix
new file mode 100644
index 000000000000..3879ee8ef470
--- /dev/null
+++ b/pkgs/applications/science/logic/boolector/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, zlib, useV16 ? false }:
+
+let
+  v15 = rec {
+    name    = "boolector-${version}";
+    version = "1.5.118";
+    src = fetchurl {
+      url    = "http://fmv.jku.at/boolector/${name}-with-sat-solvers.tar.gz";
+      sha256 = "17j7q02rryvfwgvglxnhx0kv8hxwy8wbhzawn48lw05i98vxlmk9";
+    };
+  };
+
+  v16 = rec {
+    name    = "boolector-${version}";
+    version = "1.6.0";
+    src = fetchurl {
+      url    = "http://fmv.jku.at/boolector/${name}-with-sat-solvers.tar.gz";
+      sha256 = "0jka4r6bc3i24axgdp6qbq6gjadwz9kvi11s2c5sbwmdnjd7cp85";
+    };
+  };
+
+  boolectorPkg = if useV16 then v16 else v15;
+  license = with stdenv.lib.licenses; if useV16 then unfreeRedistributable else gpl3;
+in
+stdenv.mkDerivation (boolectorPkg // {
+  buildInputs = [ zlib ];
+  enableParallelBuilding = false;
+
+  buildPhase = "./build.sh";
+
+  installPhase = ''
+    mkdir -p $out/bin $out/lib $out/include
+    cp boolector/boolector      $out/bin
+    cp boolector/deltabtor      $out/bin
+    cp boolector/synthebtor     $out/bin
+    cp boolector/libboolector.a $out/lib
+    cp boolector/boolector.h    $out/include
+  '';
+
+  meta = {
+    inherit license;
+    description = "An extremely fast SMT solver for bit-vectors and arrays";
+    homepage    = "http://fmv.jku.at/boolector";
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+})
diff --git a/pkgs/applications/science/logic/z3/default.nix b/pkgs/applications/science/logic/z3/default.nix
new file mode 100644
index 000000000000..eeef03eb1619
--- /dev/null
+++ b/pkgs/applications/science/logic/z3/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, python, unzip, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  name = "z3-${version}";
+  version = "4.3.1";
+  src = fetchurl {
+    url    = "http://download-codeplex.sec.s-msft.com/Download/SourceControlFileDownload.ashx\?ProjectName\=z3\&changeSetId\=89c1785b73225a1b363c0e485f854613121b70a7";
+    name   = "${name}.zip";
+    sha256 = "3b94465c52ec174350d8707dd6a1fb0cef42f0fa23f148cc1808c14f3c2c7f76";
+  };
+
+  buildInputs = [ python unzip autoreconfHook ];
+  enableParallelBuilding = true;
+
+  # The zip file doesn't unpack a directory, just the code itself.
+  unpackPhase = "mkdir ${name} && cd ${name} && unzip $src";
+  postConfigure = ''
+    python scripts/mk_make.py
+    cd build
+  '';
+
+  # z3's install phase is stupid because it tries to calculate the
+  # python package store location itself, meaning it'll attempt to
+  # write files into the nix store, and fail.
+  soext = if stdenv.system == "x86_64-darwin" then ".dylib" else ".so";
+  installPhase = ''
+    mkdir -p $out/bin $out/lib/${python.libPrefix}/site-packages $out/include
+    cp ../src/api/z3.h        $out/include
+    cp ../src/api/z3_api.h    $out/include
+    cp ../src/api/z3_v1.h     $out/include
+    cp ../src/api/z3_macros.h $out/include
+    cp ../src/api/c++/z3++.h  $out/include
+    cp z3                     $out/bin
+    cp libz3${soext}          $out/lib
+    cp libz3${soext}          $out/lib/${python.libPrefix}/site-packages
+    cp z3*.pyc                $out/lib/${python.libPrefix}/site-packages
+  '';
+
+  meta = {
+    description = "Z3 is a high-performance theorem prover and SMT solver";
+    homepage    = "http://z3.codeplex.com";
+    license     = stdenv.lib.licenses.unfreeRedistributable;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/applications/science/math/R/default.nix b/pkgs/applications/science/math/R/default.nix
index 88f4653cf7b4..4a58c15941c8 100644
--- a/pkgs/applications/science/math/R/default.nix
+++ b/pkgs/applications/science/math/R/default.nix
@@ -5,11 +5,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "R-3.0.3";
+  name = "R-3.1.0";
 
   src = fetchurl {
     url = "http://cran.r-project.org/src/base/R-3/${name}.tar.gz";
-    sha256 = "1mp6zp25nycn8bxnnq97gq6n21c6vprm6qc4drwap57j82azsz5r";
+    sha256 = "1qjzbw341bvi1h4jwbvdkvq8j0z9l3m85mpgrlfw0n2cz2806s4a";
   };
 
   buildInputs = [ blas bzip2 gfortran liblapack libX11 libXmu libXt
diff --git a/pkgs/applications/science/math/maxima/default.nix b/pkgs/applications/science/math/maxima/default.nix
index 684ac321900f..7123b476f356 100644
--- a/pkgs/applications/science/math/maxima/default.nix
+++ b/pkgs/applications/science/math/maxima/default.nix
@@ -2,7 +2,7 @@
 
 let
   name    = "maxima";
-  version = "5.32.1";
+  version = "5.33.0";
 
   searchPath =
     stdenv.lib.makeSearchPath "bin"
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/${name}/${name}-${version}.tar.gz";
-    sha256 = "0krxha1jckgw5s52bjasf7bnkcnq81qyi2k1bcglgqzfp79b44gw";
+    sha256 = "13axm11xw0f3frx5b0qdidi7igkn1524fzz77s9rbpl2yy2nrbz2";
   };
 
   buildInputs = [sbcl texinfo perl makeWrapper];
diff --git a/pkgs/applications/science/math/sloane/default.nix b/pkgs/applications/science/math/sloane/default.nix
new file mode 100644
index 000000000000..1e318bd8a79f
--- /dev/null
+++ b/pkgs/applications/science/math/sloane/default.nix
@@ -0,0 +1,21 @@
+{ cabal, ansiTerminal, cmdargs, HTTP, terminalSize, url }:
+
+cabal.mkDerivation (self: {
+  pname = "sloane";
+  version = "1.6";
+  sha256 = "0my3j53bda3s8zxnm6is1align4k082wwsfg2y1i75js5z9kwmzy";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ ansiTerminal cmdargs HTTP terminalSize url ];
+  postInstall = ''
+    mkdir -p $out/share/man/man1
+    cp sloane.1 $out/share/man/man1/
+  '';
+  meta = {
+    homepage = "http://github.com/akc/sloane";
+    description = "A command line interface to Sloane's On-Line Encyclopedia of Integer Sequences";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = with self.stdenv.lib.maintainers; [ akc ];
+  };
+})
diff --git a/pkgs/applications/science/misc/megam/default.nix b/pkgs/applications/science/misc/megam/default.nix
new file mode 100644
index 000000000000..a0ee505dc97f
--- /dev/null
+++ b/pkgs/applications/science/misc/megam/default.nix
@@ -0,0 +1,46 @@
+{ fetchurl, stdenv, ocaml, makeWrapper, ncurses }:
+
+let version = "0.92"; in
+stdenv.mkDerivation rec {
+  name = "megam-${version}";
+
+  src = fetchurl {
+    url = "http://hal3.name/megam/megam_src.tgz";
+    sha256 = "dc0e9f59ff8513449fe3bd40b260141f89c88a4edf6ddc8b8a394c758e49724e";
+  };
+
+  patches = [ ./ocaml-includes.patch ./ocaml-3.12.patch ];
+  
+  buildInputs = [ ocaml ncurses ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  makeFlags = "CAML_INCLUDES=${ocaml}/lib/ocaml/caml";
+
+  # see https://bugzilla.redhat.com/show_bug.cgi?id=435559
+  dontStrip = true;
+
+  installPhase = ''
+    mkdir -pv $out/bin
+    cp -Rv megam $out/bin
+  '';
+
+
+  meta = {
+    description = "MEGA Model Optimization Package";
+
+    longDescription =
+      ''  The software here is an implementation of maximum likelihood
+          and maximum a posterior optimization of the parameters of
+          these models.  The algorithms used are much more efficient
+          than the iterative scaling techniques used in almost every
+          other maxent package out there.  '';
+
+    homepage = http://www.umiacs.umd.edu/~hal/megam;
+
+    license = "non-commercial";
+
+    maintainers = [ ];
+    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+  };
+}
diff --git a/pkgs/applications/science/misc/megam/ocaml-3.12.patch b/pkgs/applications/science/misc/megam/ocaml-3.12.patch
new file mode 100644
index 000000000000..8265acf6e4a7
--- /dev/null
+++ b/pkgs/applications/science/misc/megam/ocaml-3.12.patch
@@ -0,0 +1,12 @@
+diff -ru megam_0.92/Makefile megam_0.92-b/Makefile
+--- megam_0.92/Makefile	2007-10-08 18:06:04.000000000 +0100
++++ megam_0.92-b/Makefile	2013-11-25 10:14:20.000000000 +0000
+@@ -59,7 +59,7 @@
+ 
+ WITHUNIX =unix.cma -cclib -lunix
+ 
+-WITHSTR =str.cma -cclib -lstr
++WITHSTR =str.cma -cclib -lcamlstr
+ 
+ WITHBIGARRAY =bigarray.cma -cclib -lbigarray
+ 
diff --git a/pkgs/applications/science/misc/megam/ocaml-includes.patch b/pkgs/applications/science/misc/megam/ocaml-includes.patch
new file mode 100644
index 000000000000..b3a56643448c
--- /dev/null
+++ b/pkgs/applications/science/misc/megam/ocaml-includes.patch
@@ -0,0 +1,21 @@
+diff -ru megam_0.92/Makefile megam_0.92-b/Makefile
+--- megam_0.92/Makefile	2007-10-08 18:06:04.000000000 +0100
++++ megam_0.92-b/Makefile	2013-11-25 10:14:20.000000000 +0000
+@@ -41,7 +41,7 @@
+ #
+ # The Caml compilers. #
+ # You may fix here the path to access the Caml compiler on your machine
+-CAMLC = ocamlc -g
++CAMLC = ocamlc -g $(WITHCLIBS)
+ CAMLOPT = ocamlopt -unsafe -ccopt -O4 -ccopt -ffast-math -inline 99999 
+ CAMLDEP = ocamldep
+ CAMLLEX = ocamllex
+@@ -70,7 +70,7 @@
+ WITHDBM =dbm.cma -cclib -lmldbm -cclib -lndbm
+ 
+ #WITHCLIBS =-I /usr/lib/ocaml/3.09.2/caml
+-WITHCLIBS =-I /usr/lib/ocaml/caml
++WITHCLIBS =-I $(CAML_INCLUDES) 
+ 
+ ################ End of user's variables #####################
+ 
diff --git a/pkgs/applications/version-management/git-and-tools/cgit/default.nix b/pkgs/applications/version-management/git-and-tools/cgit/default.nix
index 8a1201815ae3..47fa80cb9013 100644
--- a/pkgs/applications/version-management/git-and-tools/cgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/cgit/default.nix
@@ -4,7 +4,8 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "cgit-0.10.1";
+  name = "cgit-${version}";
+  version = "0.10.1";
 
   src = fetchurl {
     url = "http://git.zx2c4.com/cgit/snapshot/${name}.tar.xz";
@@ -15,9 +16,11 @@ stdenv.mkDerivation rec {
   # The cgit-0.10 Makefile has GIT_VER = 1.8.5, so use that version.
   # IMPORTANT: Remember to check which git version cgit needs on every version
   # bump.
+  # NOTE: as of 0.10.1, the git version is compatible from 1.9.0 to
+  # 1.9.2 (see the repository history)
   gitSrc = fetchurl {
-    url = https://git-core.googlecode.com/files/git-1.8.5.tar.gz;
-    sha256 = "08vbq8y3jx1da417hkqmrkdkysac1sqjvrjmaj1v56dmkghm43w7";
+    url    = "https://www.kernel.org/pub/software/scm/git/git-1.9.2.tar.xz";
+    sha256 = "1x4rb06vw4ckdflmn01r5l9spvn7cng4i5mm3sbd0n8cz0n6xz13";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/version-management/git-and-tools/git-annex/default.nix b/pkgs/applications/version-management/git-and-tools/git-annex/default.nix
index 49129e6b8ce7..dcf76160ec61 100644
--- a/pkgs/applications/version-management/git-and-tools/git-annex/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-annex/default.nix
@@ -1,37 +1,37 @@
-{ cabal, aeson, async, blazeBuilder, bloomfilter, bup
+{ cabal, aeson, async, blazeBuilder, bloomfilter, bup, byteable
 , caseInsensitive, clientsession, cryptoApi, cryptohash, curl
 , dataDefault, dataenc, DAV, dbus, dlist, dns, editDistance
-, extensibleExceptions, feed, filepath, git, gnupg1, gnutls, hamlet
-, hinotify, hS3, hslogger, HTTP, httpClient, httpConduit, httpTypes
-, IfElse, json, liftedBase, lsof, MissingH
+, extensibleExceptions, fdoNotify, feed, filepath, git, gnupg1
+, gnutls, hamlet, hinotify, hS3, hslogger, HTTP, httpClient
+, httpConduit, httpTypes, IfElse, json, liftedBase, lsof, MissingH
 , MonadCatchIOTransformers, monadControl, mtl, network
 , networkConduit, networkInfo, networkMulticast
 , networkProtocolXmpp, openssh, optparseApplicative, perl
-, QuickCheck, random, regexTdfa, rsync, SafeSemaphore, SHA, stm
-, tasty, tastyHunit, tastyQuickcheck, tastyRerun, text, time
-, transformers, unixCompat, utf8String, uuid, wai, waiLogger, warp
-, warpTls, which, xmlTypes, yesod, yesodCore, yesodDefault
+, QuickCheck, random, regexTdfa, rsync, SafeSemaphore, securemem
+, SHA, stm, tasty, tastyHunit, tastyQuickcheck, tastyRerun, text
+, time, transformers, unixCompat, utf8String, uuid, wai, waiLogger
+, warp, warpTls, which, xmlTypes, yesod, yesodCore, yesodDefault
 , yesodForm, yesodStatic
 }:
 
 cabal.mkDerivation (self: {
   pname = "git-annex";
-  version = "5.20140306";
-  sha256 = "1kjgqrz0wnccylrbdiwj1yndg7v2k09f5h2vkk06bnx02xmwvjl9";
+  version = "5.20140405";
+  sha256 = "0nbfnv9z2jhx2jr2nma0y1znvbaa09rv1drl6wk27j6xsbiq3p3k";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
-    aeson async blazeBuilder bloomfilter caseInsensitive clientsession
-    cryptoApi cryptohash dataDefault dataenc DAV dbus dlist dns
-    editDistance extensibleExceptions feed filepath gnutls hamlet
-    hinotify hS3 hslogger HTTP httpClient httpConduit httpTypes IfElse
-    json liftedBase MissingH MonadCatchIOTransformers monadControl mtl
-    network networkConduit networkInfo networkMulticast
-    networkProtocolXmpp optparseApplicative QuickCheck random regexTdfa
-    SafeSemaphore SHA stm tasty tastyHunit tastyQuickcheck tastyRerun
-    text time transformers unixCompat utf8String uuid wai waiLogger
-    warp warpTls xmlTypes yesod yesodCore yesodDefault yesodForm
-    yesodStatic
+    aeson async blazeBuilder bloomfilter byteable caseInsensitive
+    clientsession cryptoApi cryptohash dataDefault dataenc DAV dbus
+    dlist dns editDistance extensibleExceptions fdoNotify feed filepath
+    gnutls hamlet hinotify hS3 hslogger HTTP httpClient httpConduit
+    httpTypes IfElse json liftedBase MissingH MonadCatchIOTransformers
+    monadControl mtl network networkConduit networkInfo
+    networkMulticast networkProtocolXmpp optparseApplicative QuickCheck
+    random regexTdfa SafeSemaphore securemem SHA stm tasty tastyHunit
+    tastyQuickcheck tastyRerun text time transformers unixCompat
+    utf8String uuid wai waiLogger warp warpTls xmlTypes yesod yesodCore
+    yesodDefault yesodForm yesodStatic
   ];
   buildTools = [ bup curl git gnupg1 lsof openssh perl rsync which ];
   configureFlags = "-fS3
diff --git a/pkgs/applications/version-management/git-and-tools/git/cert-path.patch b/pkgs/applications/version-management/git-and-tools/git/cert-path.patch
new file mode 100644
index 000000000000..846752f5bfe3
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git/cert-path.patch
@@ -0,0 +1,12 @@
+diff -ru -x '*~' git-1.9.2-orig/git-send-email.perl git-1.9.2/git-send-email.perl
+--- git-1.9.2-orig/git-send-email.perl	2014-04-09 21:09:34.000000000 +0200
++++ git-1.9.2/git-send-email.perl	2014-04-16 18:35:05.861132282 +0200
+@@ -1094,6 +1094,8 @@
+ 		return;
+ 	}
+ 
++	$smtp_ssl_cert_path //= $ENV{'OPENSSL_X509_CERT_FILE'};
++
+ 	if (!defined $smtp_ssl_cert_path) {
+ 		# use the OpenSSL defaults
+ 		return (SSL_verify_mode => SSL_VERIFY_PEER());
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 c14eb36acf9e..861030bae994 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -10,7 +10,7 @@
 
 let
 
-  version = "1.9.0";
+  version = "1.9.2";
 
   svn = subversionClient.override { perlBindings = true; };
 
@@ -20,11 +20,11 @@ stdenv.mkDerivation {
   name = "git-${version}";
 
   src = fetchurl {
-    url = "http://git-core.googlecode.com/files/git-${version}.tar.gz";
-    sha256 = "10lq71vrg1zbqm923wb0p36ily6y5x057f2bryk4wqkdqgyrfc6y";
+    url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
+    sha256 = "1x4rb06vw4ckdflmn01r5l9spvn7cng4i5mm3sbd0n8cz0n6xz13";
   };
 
-  patches = [ ./docbook2texi.patch ./symlinks-in-bin.patch ];
+  patches = [ ./docbook2texi.patch ./symlinks-in-bin.patch ./cert-path.patch ];
 
   buildInputs = [curl openssl zlib expat gettext cpio makeWrapper]
     ++ stdenv.lib.optionals withManual [ asciidoc texinfo xmlto docbook2x
@@ -36,7 +36,9 @@ stdenv.mkDerivation {
 
   makeFlags = "prefix=\${out} sysconfdir=/etc/ PERL_PATH=${perl}/bin/perl SHELL_PATH=${stdenv.shell} "
       + (if pythonSupport then "PYTHON_PATH=${python}/bin/python" else "NO_PYTHON=1")
-      + (if stdenv.isSunOS then " INSTALL=install NO_INET_NTOP= NO_INET_PTON=" else "");
+      + (if stdenv.isSunOS then " INSTALL=install NO_INET_NTOP= NO_INET_PTON=" else "")
+      + (if stdenv.isDarwin then " NO_APPLE_COMMON_CRYPTO=1" else "");
+
 
   # FIXME: "make check" requires Sparse; the Makefile must be tweaked
   # so that `SPARSE_FLAGS' corresponds to the current architecture...
@@ -47,8 +49,7 @@ stdenv.mkDerivation {
   postInstall =
     ''
       notSupported() {
-        echo -e "#\!/bin/sh\necho '`basename $1` not supported, $2'\nexit 1" > "$1"
-        chmod +x $1
+        unlink $1 || true
       }
 
       # Install git-subtree.
@@ -94,7 +95,7 @@ stdenv.mkDerivation {
                      --set GITPERLLIB "$gitperllib"   \
                      --prefix PATH : "${svn}/bin" ''
        else '' # replace git-svn by notification script
-        notSupported $out/libexec/git-core/git-svn "reinstall with config git = { svnSupport = true } set"
+        notSupported $out/libexec/git-core/git-svn
        '')
 
    + (if sendEmailSupport then
@@ -106,7 +107,7 @@ stdenv.mkDerivation {
         wrapProgram $out/libexec/git-core/git-send-email \
                      --set GITPERLLIB "$gitperllib" ''
        else '' # replace git-send-email by notification script
-        notSupported $out/libexec/git-core/git-send-email "reinstall with config git = { sendEmailSupport = true } set"
+        notSupported $out/libexec/git-core/git-send-email
        '')
 
    + stdenv.lib.optionalString withManual ''# Install man pages and Info manual
@@ -123,8 +124,7 @@ stdenv.mkDerivation {
      '' else ''
        # Don't wrap Tcl/Tk, replace them by notification scripts
        for prog in bin/gitk libexec/git-core/git-gui; do
-         notSupported "$out/$prog" \
-                      "reinstall with config git = { guiSupport = true; } set"
+         notSupported "$out/$prog"
        done
      '');
 
diff --git a/pkgs/applications/version-management/git-and-tools/stgit/default.nix b/pkgs/applications/version-management/git-and-tools/stgit/default.nix
index 6518f32ef7c6..d4b74390c4cc 100644
--- a/pkgs/applications/version-management/git-and-tools/stgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/stgit/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, python, git }:
 
 let
-  name = "stgit-0.16";
+  name = "stgit-0.17.1";
 in
 stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
     url = "http://download.gna.org/stgit/${name}.tar.gz";
-    sha256 = "0hla6401g2kicaakz4awk67yf8fhqbw1shn1p9ma5x6ca29s3w82";
+    sha256 = "1pka0ns9x0kabn036zsf0mwmwiynckhnva51kgxsch9fqah6acyl";
   };
 
   buildInputs = [ python git ];
diff --git a/pkgs/applications/version-management/git-and-tools/svn2git/default.nix b/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
index 0053a1dfafbe..b0cfcaeb1108 100644
--- a/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/svn2git/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, ruby, makeWrapper, git }:
 
 let
-  version = "2.2.2";
+  version = "2.2.5";
 in
 stdenv.mkDerivation {
   name = "svn2git-${version}";
 
   src = fetchurl {
     url = "https://github.com/nirvdrum/svn2git/archive/v${version}.tar.gz";
-    sha256 = "14zinkpgybz15jvbfw0sb432w6f5w4sa5pdqycjwva8v8lxqn9mh";
+    sha256 = "1afmrr80357pg3kawyghhc55z1pszaq8fyrrjmxa6nr9dcrqjwwh";
   };
 
   buildInputs = [ ruby makeWrapper ];
diff --git a/pkgs/applications/version-management/git-and-tools/tig/default.nix b/pkgs/applications/version-management/git-and-tools/tig/default.nix
index 23009efdbd54..fd9011130e34 100644
--- a/pkgs/applications/version-management/git-and-tools/tig/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/tig/default.nix
@@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
     description = "Text-mode interface for git";
     maintainers = with maintainers; [ garbas bjornfor iElectric ];
     license = licenses.gpl2;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index 609e2654d595..5fdafe8ac2aa 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -2,7 +2,7 @@
 , guiSupport ? false, tk ? null, curses }:
 
 let
-  name = "mercurial-2.9.1";
+  name = "mercurial-2.9.2";
 in
 
 stdenv.mkDerivation {
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://mercurial.selenic.com/release/${name}.tar.gz";
-    sha256 = "06n07di6cf57bglnbh8szimngclyvf9c5ismz470gnyb9r1v23x2";
+    sha256 = "0lwgncim4cy91ly8389h2bbhl4nbi8xjgp0kx37kgq8q2lx2nil6";
   };
 
   inherit python; # pass it so that the same version can be used in hg2git
diff --git a/pkgs/applications/video/aegisub/default.nix b/pkgs/applications/video/aegisub/default.nix
index cbbb23b04a05..9bbc7c9e7395 100644
--- a/pkgs/applications/video/aegisub/default.nix
+++ b/pkgs/applications/video/aegisub/default.nix
@@ -5,7 +5,7 @@
 , libass, fftw, ffms
 , ffmpeg, pkgconfig, zlib # Undocumented (?) dependencies
 , spellChecking ? true, hunspell ? null
-, automationSupport ? true, lua ? null 
+, automationSupport ? true, lua ? null
 , openalSupport ? false, openal ? null
 , alsaSupport ? true, alsaLib ? null
 , pulseaudioSupport ? true, pulseaudio ? null
@@ -39,11 +39,11 @@ stdenv.mkDerivation rec {
   ;
 
   NIX_LDFLAGS = "-liconv -lavutil -lavformat -lavcodec -lswscale -lz -lm";
-  
-  preConfigure = "cd aegisub"; 
-  
+
+  preConfigure = "cd aegisub";
+
   postInstall = "ln -s $out/bin/aegisub-3.0 $out/bin/aegisub";
-  
+
   meta = {
     description = "An advanced subtitle editor";
     longDescription = ''
@@ -53,7 +53,12 @@ stdenv.mkDerivation rec {
       built-in real-time video preview.
     '';
     homepage = http://www.aegisub.org/;
-    license = "BSD"; # The Aegisub sources are itself BSD/ISC, but they are linked against GPL'd softwares
+    license = stdenv.lib.licenses.bsd3;
+              # The Aegisub sources are itself BSD/ISC,
+              # but they are linked against GPL'd softwares
+              # - so the resulting program will be GPL
+    maintainers = [ stdenv.lib.maintainers.AndersonTorres ];
     platforms = stdenv.lib.platforms.linux;
+
   };
 }
diff --git a/pkgs/applications/video/avidemux/default.nix b/pkgs/applications/video/avidemux/default.nix
index d706d16241ce..485d8c54eb36 100644
--- a/pkgs/applications/video/avidemux/default.nix
+++ b/pkgs/applications/video/avidemux/default.nix
@@ -1,20 +1,23 @@
 {stdenv, fetchurl, cmake, pkgconfig, libxml2, qt4, gtk, gettext, SDL,
 libXv, pixman, libpthreadstubs, libXau, libXdmcp, libxslt, x264,
-alsaLib, lame, faac, faad2, libvorbis, yasm, libvpx, xvidcore, libva }:
+alsaLib, lame, faad2, libvorbis, yasm, libvpx, xvidcore, libva,
+faac ? null, faacSupport ? false }:
 
 assert stdenv ? glibc;
+assert faacSupport -> faac != null;
 
 stdenv.mkDerivation {
   name = "avidemux-2.5.6";
-  
+
   src = fetchurl {
     url = mirror://sourceforge/avidemux/avidemux_2.5.6.tar.gz;
     sha256 = "12wvxz0n2g85f079d8mdkkp2zm279d34m9v7qgcqndh48cn7znnn";
   };
-  
+
   buildInputs = [ cmake pkgconfig libxml2 qt4 gtk gettext SDL libXv
-    pixman libpthreadstubs libXau libXdmcp libxslt x264 alsaLib 
-    lame faac faad2 libvorbis yasm libvpx xvidcore libva ];
+    pixman libpthreadstubs libXau libXdmcp libxslt x264 alsaLib
+    lame faad2 libvorbis yasm libvpx xvidcore libva
+  ] ++ stdenv.lib.optional faacSupport faac;
 
   cmakeFlags = "-DPTHREAD_INCLUDE_DIR=${stdenv.glibc}/include" +
     " -DGETTEXT_INCLUDE_DIR=${gettext}/include" +
@@ -34,7 +37,7 @@ stdenv.mkDerivation {
     make install
   '';
 
-  meta = { 
+  meta = {
     homepage = http://fixounet.free.fr/avidemux/;
     description = "Free video editor designed for simple video editing tasks";
     maintainers = with stdenv.lib.maintainers; [viric];
diff --git a/pkgs/applications/video/kazam/default.nix b/pkgs/applications/video/kazam/default.nix
index ed93f81b6623..17bf282a459a 100644
--- a/pkgs/applications/video/kazam/default.nix
+++ b/pkgs/applications/video/kazam/default.nix
@@ -5,6 +5,7 @@
 python3Packages.buildPythonPackage rec {
   name = "kazam-${version}";
   version = "1.4.3";
+  namePrefix = "";
 
   src = fetchurl {
     url = "https://launchpad.net/kazam/stable/${version}/+download/kazam-${version}.tar.gz";
diff --git a/pkgs/applications/video/miro/default.nix b/pkgs/applications/video/miro/default.nix
index 14aeca62a710..528eeff7e239 100644
--- a/pkgs/applications/video/miro/default.nix
+++ b/pkgs/applications/video/miro/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, python, buildPythonPackage, pythonPackages, pkgconfig
-, pyrex096, ffmpeg, boost, glib, pygobject, gtk2, webkit_gtk2, libsoup, pygtk
+, pyrex096, ffmpeg, boost, glib, pygobject, gtk2, webkitgtk2, libsoup, pygtk
 , taglib, pysqlite, pycurl, mutagen, pycairo, pythonDBus, pywebkitgtk
-, libtorrentRasterbar
+, libtorrentRasterbar, glib_networking, gsettings_desktop_schemas
 , gst_python, gst_plugins_base, gst_plugins_good, gst_ffmpeg
 }:
 
@@ -22,9 +22,6 @@ buildPythonPackage rec {
   patches = [ ./gconf.patch ];
 
   postPatch = ''
-    sed -i -e '2i import os; os.environ["GST_PLUGIN_PATH"] = \\\
-      '"'$GST_PLUGIN_PATH'" miro.real
-
     sed -i -e 's/\$(shell which python)/python/' Makefile
     sed -i -e 's|/usr/bin/||' -e 's|/usr||' \
            -e 's/BUILD_TIME[^,]*/BUILD_TIME=0/' setup.py
@@ -55,10 +52,14 @@ buildPythonPackage rec {
 
   postInstall = ''
     mv "$out/bin/miro.real" "$out/bin/miro"
+    wrapProgram "$out/bin/miro" \
+      --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH" \
+      --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
+      --prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share:$out/share"
   '';
 
   buildInputs = [
-    pkgconfig pyrex096 ffmpeg boost glib pygobject gtk2 webkit_gtk2 libsoup
+    pkgconfig pyrex096 ffmpeg boost glib pygobject gtk2 webkitgtk2 libsoup
     pygtk taglib
   ];
 
diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix
index a20dc0cf590e..b37a8a876302 100644
--- a/pkgs/applications/video/mpv/default.nix
+++ b/pkgs/applications/video/mpv/default.nix
@@ -46,13 +46,13 @@ assert cacaSupport -> libcaca != null;
 # but by purity reasons it should be avoided; thanks the-kenny to point it out!
 # Now, it will just download and package Waf, mimetizing bootstrap.py behaviour
 
-let 
+let
   waf = fetchurl {
     url = https://waf.googlecode.com/files/waf-1.7.13;
     sha256 = "03cc750049350ee01cdbc584b70924e333fcc17ba4a2d04648dab1535538a873";
   };
 
-  version = "0.3.2";
+  version = "0.3.7";
 
 in
 
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/mpv-player/mpv/archive/v${version}.tar.gz";
-    sha256 = "1vzdhzry2adyp2yh2dmy1qznqhnzar7g24rhi0vv624jgd20qax2";
+    sha256 = "1qmwmjvgdwh88l2caw2xy1d2h1cdg2w1hl4q5iwx2c0q7a99h41m";
   };
 
   buildInputs = with stdenv.lib;
@@ -109,7 +109,7 @@ stdenv.mkDerivation rec {
     python3 ${waf} install
     # Maybe not needed, but it doesn't hurt anyway: a standard font
     mkdir -p $out/share/mpv
-    ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf  $out/share/mpv/subfont.ttf 
+    ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf  $out/share/mpv/subfont.ttf
     '';
 
   meta = {
@@ -118,7 +118,8 @@ stdenv.mkDerivation rec {
     mpv is a free and open-source general-purpose video player, based on the MPlayer and mplayer2 projects, with great improvements above both.
     '';
     homepage = "http://mpv.io";
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = [ stdenv.lib.maintainers.AndersonTorres ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/video/pitivi/default.nix b/pkgs/applications/video/pitivi/default.nix
new file mode 100644
index 000000000000..7f53aa07db60
--- /dev/null
+++ b/pkgs/applications/video/pitivi/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, makeWrapper
+, pythonPackages, gst, clutter-gst, clutter-gtk
+, gobjectIntrospection, clutter, gtk3, librsvg
+, gnome_icon_theme, gnome_icon_theme_symbolic, gnome3
+}:
+
+let
+  version = "0.93";
+in stdenv.mkDerivation rec {
+  name = "pitivi-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/pitivi/${version}/${name}.tar.xz";
+    sha256 = "0z89dwrd7akhkap270i372yszqib8yqcymv78lhdmn3a8bsa7jhp";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Non-Linear video editor utilizing the power of GStreamer";
+    homepage    = "http://pitivi.org/";
+    longDescription = ''
+      Pitivi is a video editor built upon the GStreamer Editing Services.
+      It aims to be an intuitive and flexible application
+      that can appeal to newbies and professionals alike.
+    '';
+    license     = licenses.lgpl21Plus;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ iyzsong ];
+  };
+
+  nativeBuildInputs = [ pkgconfig intltool itstool makeWrapper ];
+
+  buildInputs = [
+    gobjectIntrospection clutter-gst clutter-gtk librsvg
+  ] ++ (with gst; [
+    gst-python gst-editing-services
+    gst-plugins-base gst-plugins-good
+    gst-plugins-bad gst-plugins-ugly gst-libav
+  ]) ++ (with pythonPackages; [
+    python pygobject3 pyxdg numpy pycairo sqlite3
+  ]);
+
+  preFixup = with stdenv.lib; with gst; let
+    libraryPath = makeLibraryPath [
+      gstreamer gst-editing-services
+      clutter-gst clutter-gtk clutter gtk3
+      gnome3.gnome_desktop
+    ];
+  in ''
+    wrapProgram "$out/bin/pitivi" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix LD_LIBRARY_PATH : "${libraryPath}" \
+      --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \
+      --prefix XDG_DATA_DIRS : "\$XDG_ICON_DIRS:$out/share:$GSETTINGS_SCHEMAS_PATH"
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+}
diff --git a/pkgs/applications/video/simplescreenrecorder/default.nix b/pkgs/applications/video/simplescreenrecorder/default.nix
new file mode 100644
index 000000000000..3251127c7a19
--- /dev/null
+++ b/pkgs/applications/video/simplescreenrecorder/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, alsaLib, ffmpeg, jackaudio, libX11, libXext
+, libXfixes, mesa, pkgconfig, pulseaudio, qt4
+}:
+
+stdenv.mkDerivation rec {
+  name = "simplescreenrecorder-${version}";
+  version = "0.2.2";
+
+  src = fetchurl {
+    url = "https://github.com/MaartenBaert/ssr/archive/${version}.tar.gz";
+    sha256 = "0k1r1ilpk05qmwpnld95zxxk57qvyaq2r9f4i3la7y0xh9bz1gls";
+  };
+
+  buildInputs = [
+    alsaLib ffmpeg jackaudio libX11 libXext libXfixes mesa pkgconfig
+    pulseaudio qt4
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A screen recorder for Linux";
+    homepage = http://www.maartenbaert.be/simplescreenrecorder;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index 3df447fad626..2c5b53c596a6 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -6,6 +6,7 @@
 , mpeg2dec, udev, gnutls, avahi, libcddb, jackaudio, SDL, SDL_image
 , libmtp, unzip, taglib, libkate, libtiger, libv4l, samba, liboggz
 , libass, libva, libdvbpsi, libdc1394, libraw1394, libopus
+, libvdpau
 }:
 
 stdenv.mkDerivation rec {
@@ -24,7 +25,7 @@ stdenv.mkDerivation rec {
       udev gnutls avahi libcddb jackaudio SDL SDL_image libmtp unzip taglib
       libkate libtiger libv4l samba liboggz libass libdvbpsi libva
       xlibs.xlibs xlibs.libXv xlibs.libXvMC xlibs.libXpm xlibs.xcbutilkeysyms
-      libdc1394 libraw1394 libopus libebml libmatroska
+      libdc1394 libraw1394 libopus libebml libmatroska libvdpau
     ];
 
   nativeBuildInputs = [ pkgconfig ];
@@ -33,6 +34,8 @@ stdenv.mkDerivation rec {
     [ "--enable-alsa"
       "--with-kde-solid=$out/share/apps/solid/actions"
       "--enable-dc1394"
+      "--enable-ncurses"
+      "--enable-vdpau"
     ];
 
   preConfigure = ''sed -e "s@/bin/echo@echo@g" -i configure'';
diff --git a/pkgs/applications/virtualization/8086tiny/default.nix b/pkgs/applications/virtualization/8086tiny/default.nix
index 0b4ff90e4095..8e5108b44109 100644
--- a/pkgs/applications/virtualization/8086tiny/default.nix
+++ b/pkgs/applications/virtualization/8086tiny/default.nix
@@ -13,12 +13,12 @@ stdenv.mkDerivation rec {
   version = "1.20";
 
   src = fetchurl {
-    url ="http://www.megalith.co.uk/8086tiny/downloads/8086tiny_120.tar.bz2"; 
+    url ="http://www.megalith.co.uk/8086tiny/downloads/8086tiny_120.tar.bz2";
     sha256 = "0yapnr8wvlx7h1q1w98yfy2vsbf0rlp4wd99r3xb0b7l70b36mpw";
   };
-  
+
   buildInputs = with stdenv.lib;
-  optionals localBios [ nasm ] 
+  optionals localBios [ nasm ]
   ++  optionals sdlSupport [ SDL ];
 
   builder = ./builder.sh;
@@ -27,11 +27,14 @@ stdenv.mkDerivation rec {
     description = "An open-source 8086 emulator";
     longDescription = ''
     8086tiny is a tiny, open source (MIT), portable (little-endian hosts) Intel PC emulator, powerful enough to run DOS, Windows 3.0, Excel, MS Flight Simulator, AutoCAD, Lotus 1-2-3, and similar applications. 8086tiny emulates a "late 80's era" PC XT-type machine.
-    
+
     8086tiny is based on an IOCCC 2013 winning entry. In fact that is the "unobfuscated" version :)
     '';
     homepage = http://www.megalith.co.uk/8086tiny/index.html;
-    license = "MIT";
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.AndersonTorres ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
+
+# TODO: add support for a locally made BIOS
diff --git a/pkgs/applications/virtualization/bochs/default.nix b/pkgs/applications/virtualization/bochs/default.nix
index 6b8cf5dc0356..75afcb41f808 100644
--- a/pkgs/applications/virtualization/bochs/default.nix
+++ b/pkgs/applications/virtualization/bochs/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     url = "http://downloads.sourceforge.net/project/bochs/bochs/${version}/${name}.tar.gz";
     sha256 = "042blm1xb9ig4fh2bv8nrrfpgkcxy4hq8yrkx7mrdpm5g4mvfwyr";
   };
-  
+
   buildInputs = with stdenv.lib;
   [ libX11 mesa ]
   ++ optionals sdlSupport [ SDL ]
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ++ optionals curlSupport [ curl ];
 
   configureFlags = ''
-    --with-x11 
+    --with-x11
     --with-term=${if termSupport then "yes" else "no"}
     --with-sdl=${if sdlSupport then "yes" else "no"}
     --with-svga=no
@@ -42,11 +42,11 @@ stdenv.mkDerivation rec {
     --enable-plugins=no
     --enable-disasm
     --enable-debugger
-    --enable-ne2000 
-    --enable-e1000 
-    --enable-sb16 
-    --enable-voodoo 
-    --enable-usb 
+    --enable-ne2000
+    --enable-e1000
+    --enable-sb16
+    --enable-voodoo
+    --enable-usb
     --enable-pnic
 '';
 
@@ -56,7 +56,8 @@ stdenv.mkDerivation rec {
     Bochs is an open-source (LGPL), highly portable IA-32 PC emulator, written in C++, that runs on most popular platforms. It includes emulation of the Intel x86 CPU, common I/O devices, and a custom BIOS.
     '';
     homepage = http://bochs.sourceforge.net/;
-    license = "LGPL";
+    license = stdenv.lib.licenses.lgpl2Plus;
+    maintainers = [ stdenv.lib.maintainers.AndersonTorres ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix
index b718d89c8c77..40385d9d36af 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -1,36 +1,33 @@
-{ stdenv, fetchurl, makeWrapper, go, lxc, sqlite, iproute, iptables, lvm2
-, bash}:
+{ stdenv, fetchurl, makeWrapper, go, lxc, sqlite, iproute, bridge_utils, devicemapper,
+btrfsProgs, iptables, bash}:
 
 stdenv.mkDerivation rec {
   name = "docker-${version}";
-  version = "0.7.6";
+  version = "0.9.1";
 
   src = fetchurl {
     url = "https://github.com/dotcloud/docker/archive/v${version}.tar.gz";
-    sha256 = "0anlzba2vm1fs5nf0dl2svrgj3ddsbl5iyhsm8vfbi3f23vppkfv";
+    sha256 = "0m4s21dxd1bj08xrmi7iw77djj3cpxvjsin12p6v6v1qnigm18ww";
   };
 
   phases = ["unpackPhase" "preBuild" "buildPhase" "installPhase"];
 
-  buildInputs = [ makeWrapper go sqlite lxc iproute lvm2 iptables ];
+  buildInputs = [ makeWrapper go sqlite lxc iproute bridge_utils devicemapper btrfsProgs iptables ];
 
   preBuild = ''
     patchShebangs ./hack
   '';
 
   buildPhase = ''
-    mkdir -p src/github.com/dotcloud
-    ln -sn "../../../" "src/github.com/dotcloud/docker"
-    export GOPATH="$(pwd):$(pwd)/vendor"
-    export DOCKER_GITCOMMIT="bc3b2ec0622f50879ae96f042056b6bd2e0b4fba"
-    export DOCKER_INITPATH="$out/libexec/docker/dockerinit"
+    export AUTO_GOPATH=1
+    export DOCKER_GITCOMMIT="867b2a90c228f62cdcd44907ceef279a2d8f1ac5"
     ./hack/make.sh dynbinary
   '';
 
   installPhase = ''
     install -Dm755 ./bundles/${version}/dynbinary/docker-${version} $out/bin/docker
-    install -Dm755 ./bundles/${version}/dynbinary/dockerinit-${version} $out/libexec/docker/dockerinit
-    wrapProgram $out/bin/docker --prefix PATH : "${iproute}/sbin:${lvm2}:sbin:${lxc}/bin:${iptables}/sbin"
+    install -Dm755 ./bundles/${version}/dynbinary/dockerinit-${version} $out/bin/dockerinit
+    wrapProgram $out/bin/docker --prefix PATH : "${iproute}/sbin:sbin:${lxc}/bin:${iptables}/sbin"
 
     # systemd
     install -Dm644 ./contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index dcf5b4e50097..b6e28d444111 100644
--- a/pkgs/applications/virtualization/qemu/default.nix
+++ b/pkgs/applications/virtualization/qemu/default.nix
@@ -1,29 +1,29 @@
 { stdenv, fetchurl, python, zlib, pkgconfig, glib, ncurses, perl, pixman
-, attr, libcap, vde2, alsaLib, texinfo, libuuid
+, attr, libcap, vde2, alsaLib, texinfo, libuuid, flex, bison
 , makeWrapper
 , sdlSupport ? true, SDL
 , vncSupport ? true, libjpeg, libpng
-, spiceSupport ? true, spice, spice_protocol
+, spiceSupport ? true, spice, spice_protocol, usbredir
 , x86Only ? false
 }:
 
-let n = "qemu-1.5.2"; in
+let n = "qemu-1.7.1"; in
 
 stdenv.mkDerivation rec {
   name = n + (if x86Only then "-x86-only" else "");
 
   src = fetchurl {
     url = "http://wiki.qemu.org/download/${n}.tar.bz2";
-    sha256 = "0l52jwlxmwp9g3jpq0g7ix9dq4qgh46nd2h58lh47f0a35yi8qgn";
+    sha256 = "1x5y06zhp0gc97g1sb98vf7dkawg63xywv0mbnpfnbi20jh452fn";
   };
 
   buildInputs =
     [ python zlib pkgconfig glib ncurses perl pixman attr libcap
-      vde2 alsaLib texinfo libuuid makeWrapper
+      vde2 alsaLib texinfo libuuid flex bison makeWrapper
     ]
     ++ stdenv.lib.optionals sdlSupport [ SDL ]
     ++ stdenv.lib.optionals vncSupport [ libjpeg libpng ]
-    ++ stdenv.lib.optionals spiceSupport [ spice_protocol spice ];
+    ++ stdenv.lib.optionals spiceSupport [ spice_protocol spice usbredir ];
 
   enableParallelBuilding = true;
 
@@ -43,11 +43,11 @@ stdenv.mkDerivation rec {
       fi
     '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://www.qemu.org/;
     description = "A generic and open source machine emulator and virtualizer";
-    license = "GPLv2+";
-    maintainers = with stdenv.lib.maintainers; [ viric shlevy eelco ];
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ viric shlevy eelco ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix
index fb2dde66442f..dba0d11b425a 100644
--- a/pkgs/applications/virtualization/virt-manager/default.nix
+++ b/pkgs/applications/virtualization/virt-manager/default.nix
@@ -1,74 +1,67 @@
 { stdenv, fetchurl, pythonPackages, intltool, libxml2Python, curl, python
 , makeWrapper, virtinst, pyGtkGlade, pythonDBus, gnome_python, gtkvnc, vte
-, spiceSupport ? true, spice_gtk
+, gtk3, gobjectIntrospection, libvirt-glib, gsettings_desktop_schemas, glib
+, avahi, dconf, spiceSupport ? true, spice_gtk
 }:
 
 with stdenv.lib;
+with pythonPackages;
 
-let version = "0.9.5"; in
-
-stdenv.mkDerivation rec {
+buildPythonPackage rec {
   name = "virt-manager-${version}";
+  version = "1.0.1";
+  namePrefix = "";
 
   src = fetchurl {
-    url = "http://virt-manager.et.redhat.com/download/sources/virt-manager/virt-manager-${version}.tar.gz";
-    sha256 = "0gc06cdbq6c2a06l939516lvjii7lr0wng90kqgl1i5q5wlgnajx";
+    url = "http://virt-manager.org/download/sources/virt-manager/${name}.tar.gz";
+    sha256 = "1n248kack1fni8y17ysgq5xhvffcgy4l62hnd0zvr4kjw0579qq8";
   };
 
-  pythonPath = with pythonPackages;
-    [ setuptools eventlet greenlet gflags netaddr sqlalchemy carrot routes
+  propagatedBuildInputs =
+    [ eventlet greenlet gflags netaddr sqlalchemy carrot routes
       paste_deploy m2crypto ipy boto_1_9 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.
-      libvirt libxml2Python urlgrabber virtinst pyGtkGlade pythonDBus gnome_python
-      gtkvnc vte
+      urlgrabber virtinst pyGtkGlade pythonDBus gnome_python pygobject3
+      libvirt libxml2Python ipaddr vte
     ] ++ optional spiceSupport spice_gtk;
 
   buildInputs =
-    [ pythonPackages.python
-      pythonPackages.wrapPython
-      pythonPackages.mox
-      pythonPackages.urlgrabber
+    [ mox
       intltool
-      pyGtkGlade
-      pythonDBus
-      gnome_python
       gtkvnc
-    ] ++ pythonPath;
-
-  buildPhase = "make";
-
-  nativeBuildInputs = [ makeWrapper pythonPackages.wrapPython ];
+      gtk3
+      libvirt-glib
+      avahi
+      glib
+      gobjectIntrospection
+    ];
 
-  # TODO
-  # virt-manager     -> import gtk.glade -> No module named glade --> fixed by removing 'pygtk' and by only using pyGtkGlade
-  #                  -> import gconf     -> ImportError: No module named gconf
-  #                        -> pfad um gtk-2.0 erweitern in virt-manger runner -> /nix/store/hnyxc9i4yz2mc42n44ms13mn8n486s5h-gnome-python-2.28.1/lib/python2.7/site-packages/gtk-2.0
-  #                  -> Error starting Virtual Machine Manager: Failed to contact configuration server; the most common cause is a missing or misconfigured D-Bus session bus daemon. See http://projects.gnome.org/gconf/ for information. (Details -  1: GetIOR failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.GConf was not provided by any .service files)
-
-#Traceback (most recent call last):
-#  File "/nix/store/y9rcdiv6686sqcv4r39p575s37jzc2cz-virt-manager-0.9.1/share/virt-manager/virt-manager.py", line 383, in <module>
-#    main()
-#  File "/nix/store/y9rcdiv6686sqcv4r39p575s37jzc2cz-virt-manager-0.9.1/share/virt-manager/virt-manager.py", line 315, in main
-#    config = virtManager.config.vmmConfig(appname, appversion, glade_dir)
-#  File "/nix/store/y9rcdiv6686sqcv4r39p575s37jzc2cz-virt-manager-0.9.1/share/virt-manager/virtManager/config.py", line 98, in __init__
-#    self.conf.add_dir(self.conf_dir, gconf.CLIENT_PRELOAD_NONE)
-#GError: Failed to contact configuration server; the most common cause is a missing or misconfigured D-Bus session bus daemon. See http://projects.gnome.org/gconf/ for information. (Details -  1: GetIOR failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.GConf was not provided by any .service files)
-# -> fixed by http://nixos.org/wiki/Solve_GConf_errors_when_running_GNOME_applications & a restart
-  # virt-manager-tui -> ImportError: No module named newt_syrup.dialogscreen
+  configurePhase = ''
+    sed -i 's/from distutils.core/from setuptools/g' setup.py
+    sed -i 's/from distutils.command.install/from setuptools.command.install/g' setup.py
+    python setup.py configure --prefix=$out
+  '';
 
-  installPhase = ''
-    make install
+  buildPhase = "true";
 
-    # A hack, but the most reliable method so far
-    echo "#!/usr/bin/env python" | cat - src/virt-manager.py > $out/bin/virt-manager
-    echo "#!/usr/bin/env python" | cat - src/virt-manager-tui.py > $out/bin/virt-manager-tui
+  postInstall = ''
+    # GI_TYPELIB_PATH is needed at runtime for GObject stuff to work
+    for file in "$out"/bin/*; do
+        wrapProgram "$file" \
+            --prefix GI_TYPELIB_PATH : $GI_TYPELIB_PATH \
+            --prefix GIO_EXTRA_MODULES : "${dconf}/lib/gio/modules" \
+            --prefix GSETTINGS_SCHEMA_DIR : $out/share/glib-2.0/schemas \
+            --prefix LD_LIBRARY_PATH : ${gtk3}/lib/:${libvirt-glib}/lib/:${vte}/lib:${gtkvnc}/lib${optionalString spiceSupport ":${spice_gtk}/lib"} \
+            --prefix XDG_DATA_DIRS : "$out/share:${gsettings_desktop_schemas}/share:${gtk3}/share:\$XDG_DATA_DIRS"
+    done
 
-    wrapPythonPrograms
+    ${glib}/bin/glib-compile-schemas "$out"/share/glib-2.0/schemas
   '';
 
-  meta = {
+  # Failed tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
     homepage = http://virt-manager.org;
     description = "Desktop user interface for managing virtual machines";
     longDescription = ''
@@ -76,7 +69,7 @@ stdenv.mkDerivation rec {
       virtual machines through libvirt. It primarily targets KVM VMs, but also
       manages Xen and LXC (linux containers).
     '';
-    license = "GPLv2";
-    maintainers = with stdenv.lib.maintainers; [qknight];
+    license = licenses.gpl2;
+    maintainers = with maintainers; [qknight offline];
   };
 }
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 79a208fa54c5..266ab11a39fb 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, lib, iasl, dev86, pam, libxslt, libxml2, libX11, xproto, libXext
 , libXcursor, libXmu, qt4, libIDL, SDL, libcap, zlib, libpng, glib, kernel, lvm2
-, which, alsaLib, curl, gawk
+, which, alsaLib, curl, libvpx, gawk
 , xorriso, makeself, perl, pkgconfig
 , javaBindings ? false, jdk ? null
 , pythonBindings ? false, python ? null
@@ -11,7 +11,7 @@ with stdenv.lib;
 
 let
 
-  version = "4.2.22"; # changes ./guest-additions as well
+  version = "4.3.10"; # 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 = "91556";
+  extpackRevision = "93012";
   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.2.22/SHA256SUMS
-    sha256 = "79c0da87451cab3868f64d48bf9a7fdd710786c05ed4b3070b008c3aa1ce4f7a";
+    # Tip: see http://dlc.sun.com.edgesuite.net/virtualbox/4.3.10/SHA256SUMS
+    sha256 = "ec3f2a98373d5e228acb4756ac07f44212c4d53f6b83deee81b791abb0d2608a";
     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,12 +56,12 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
-    sha256 = "4a017ec5fa0e0cfa830ae6c2b9d680c9b108e5fb96348e1397a7d0ea051f8bc1";
+    sha256 = "739835aee3274a663b23eeb748bd0430e8a5d8ba2f4d0eae5dc47ff2c485e23b";
   };
 
   buildInputs =
     [ iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt4 libIDL SDL
-      libcap glib lvm2 python alsaLib curl pam xorriso makeself perl
+      libcap glib lvm2 python alsaLib curl libvpx pam xorriso makeself perl
       pkgconfig which libXmu ]
     ++ optional javaBindings jdk
     ++ optional pythonBindings python;
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index 595698abcaa5..5fc755904170 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
-    sha256 = "222e003d038b757cd761361bb5da33123e0f9574af246fb95eb558593c8c7c76";
+    sha256 = "247e15e9a205dcd4761f6cb547ceca2a61e8d6905c1930870939fd323f4cd1ae";
   };
 
   KERN_DIR = "${kernel.dev}/lib/modules/*/build";
diff --git a/pkgs/applications/window-managers/openbox/default.nix b/pkgs/applications/window-managers/openbox/default.nix
index 487a8a5b387a..56a5f0e3e2ce 100644
--- a/pkgs/applications/window-managers/openbox/default.nix
+++ b/pkgs/applications/window-managers/openbox/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig
 , libxml2, libXinerama, libXcursor, libXau, libXrandr
-, imlib2, pango, libstartup_notification }:
+, imlib2, pango, libstartup_notification, makeWrapper}:
 
 stdenv.mkDerivation rec {
   name = "openbox-3.5.2";
@@ -9,6 +9,7 @@ stdenv.mkDerivation rec {
     pkgconfig libxml2
     libXinerama libXcursor libXau libXrandr
     imlib2 pango libstartup_notification
+    makeWrapper
   ];
 
   src = fetchurl {
@@ -16,6 +17,14 @@ stdenv.mkDerivation rec {
     sha256 = "0cxgb334zj6aszwiki9g10i56sm18i7w1kw52vdnwgzq27pv93qj";
   };
 
+  # Openbox needs XDG_DATA_DIRS set or it can't find its default theme
+  postInstall = ''
+    wrapProgram "$out/bin/openbox" --prefix XDG_DATA_DIRS : "$out/share"
+    wrapProgram "$out/bin/openbox-session" --prefix XDG_DATA_DIRS : "$out/share"
+    wrapProgram "$out/bin/openbox-gnome-session" --prefix XDG_DATA_DIRS : "$out/share"
+    wrapProgram "$out/bin/openbox-kde-session" --prefix XDG_DATA_DIRS : "$out/share"
+    '';
+
   meta = {
     description = "X window manager for non-desktop embedded systems";
     homepage = http://openbox.org/;
diff --git a/pkgs/applications/window-managers/xmonad/default.nix b/pkgs/applications/window-managers/xmonad/default.nix
index 54ef0b274aa8..c80c8f1c9db0 100644
--- a/pkgs/applications/window-managers/xmonad/default.nix
+++ b/pkgs/applications/window-managers/xmonad/default.nix
@@ -10,8 +10,9 @@ cabal.mkDerivation (self: {
     extensibleExceptions filepath mtl utf8String X11
   ];
   postInstall = ''
+    shopt -s globstar
     mkdir -p $out/share/man/man1
-    mv $out/share/xmonad-*/man/*.1 $out/share/man/man1/
+    mv "$out/"**"/man/"*.1 $out/share/man/man1/
   '';
 
   patches = [
diff --git a/pkgs/build-support/build-fhs-chrootenv/default.nix b/pkgs/build-support/build-fhs-chrootenv/default.nix
index 8756c4835b29..2f3aa14c6a0f 100644
--- a/pkgs/build-support/build-fhs-chrootenv/default.nix
+++ b/pkgs/build-support/build-fhs-chrootenv/default.nix
@@ -1,10 +1,12 @@
 {stdenv, glibc, glibcLocales, gcc, coreutils, diffutils, findutils, gnused, gnugrep, gnutar, gzip, bzip2, 
-bashInteractive, xz, shadow, gawk, less, buildEnv}:
+bashInteractive, xz, shadow, gawk, less, su, buildEnv}:
 {name, pkgs ? [], profile ? ""}:
 
 let
-  basePkgs = [ glibc glibcLocales gcc coreutils diffutils findutils gnused gnugrep gnutar gzip bzip2 
-bashInteractive xz shadow gawk less ];
+  basePkgs = [
+    glibc glibcLocales gcc coreutils diffutils findutils gnused gnugrep gnutar
+    gzip bzip2 bashInteractive xz shadow gawk less su
+  ];
 
   # Compose a global profile for the chroot environment
   profilePkg = stdenv.mkDerivation {
@@ -31,16 +33,16 @@ bashInteractive xz shadow gawk less ];
   mountSh = ./mount.sh.in;
   loadSh = ./load.sh.in;
   umountSh = ./umount.sh.in;
-  destroySh = ./destroy.sh.in;                                                                                       
-in                                                                                                                   
-stdenv.mkDerivation {                                                                                                
-  name = "${name}-chrootenv";                                                                                        
-  buildCommand = ''                                                                                                  
-    mkdir -p $out/sw                                                                                                 
-    cd $out/sw                                                                                                       
-                                                                                                                     
-    for i in ${staticUsrProfile}/{etc,bin,lib{,32,64},sbin,var}                                                      
-    do                                                                                                               
+  destroySh = ./destroy.sh.in;
+in
+stdenv.mkDerivation {
+  name = "${name}-chrootenv";
+  buildCommand = ''
+    mkdir -p $out/sw
+    cd $out/sw
+    
+    for i in ${staticUsrProfile}/{etc,bin,lib{,32,64},sbin,var}
+    do
         if [ -x "$i" ]
         then
             ln -s "$i"
diff --git a/pkgs/build-support/build-pecl.nix b/pkgs/build-support/build-pecl.nix
new file mode 100644
index 000000000000..d84497e8019c
--- /dev/null
+++ b/pkgs/build-support/build-pecl.nix
@@ -0,0 +1,9 @@
+{ stdenv, php, autoreconfHook }:
+
+args: stdenv.mkDerivation (args // {
+  buildInputs = [ php autoreconfHook ] ++ args.buildInputs or [];
+
+  makeFlags = [ "EXTENSION_DIR=$(out)/lib/php/extensions" ] ++ args.makeFlags or [];
+
+  autoreconfPhase = "phpize";
+})
diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix
index 5e028863b06d..ed7ca30db132 100644
--- a/pkgs/build-support/cabal/default.nix
+++ b/pkgs/build-support/cabal/default.nix
@@ -195,10 +195,6 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version;
                 done
               done
 
-              ${optionalString self.enableSharedExecutables ''
-                configureFlags+=" --ghc-option=-optl=-Wl,-rpath=$out/lib/${ghc.ghc.name}/${self.pname}-${self.version}";
-              ''}
-
               echo "configure flags: $extraConfigureFlags $configureFlags"
               ./Setup configure --verbose --prefix="$out" --libdir='$prefix/lib/$compiler' \
                 --libsubdir='$pkgid' $extraConfigureFlags $configureFlags 2>&1 \
diff --git a/pkgs/build-support/fetchgit/builder.sh b/pkgs/build-support/fetchgit/builder.sh
index 5c7d92698cc3..9050cce6ee8f 100644
--- a/pkgs/build-support/fetchgit/builder.sh
+++ b/pkgs/build-support/fetchgit/builder.sh
@@ -6,6 +6,8 @@ source $stdenv/setup
 
 header "exporting $url (rev $rev) into $out"
 
-$fetcher --builder --url "$url" --out "$out" --rev "$rev" ${leaveDotGit:+--leave-dotGit}
+$fetcher --builder --url "$url" --out "$out" --rev "$rev" \
+  ${leaveDotGit:+--leave-dotGit} \
+  ${fetchSubmodules:+--fetch-submodules}
 
 stopNest
diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix
index b22bdc88f83b..a17daf9a2c57 100644
--- a/pkgs/build-support/fetchgit/default.nix
+++ b/pkgs/build-support/fetchgit/default.nix
@@ -1,5 +1,5 @@
 {stdenv, git, cacert}:
-{url, rev ? "HEAD", md5 ? "", sha256 ? "", leaveDotGit ? false }:
+{url, rev ? "HEAD", md5 ? "", sha256 ? "", leaveDotGit ? false, fetchSubmodules ? true}:
 
 /* NOTE:
    fetchgit has one problem: git fetch only works for refs.
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
   outputHashMode = "recursive";
   outputHash = if sha256 == "" then md5 else sha256;
 
-  inherit url rev leaveDotGit;
+  inherit url rev leaveDotGit fetchSubmodules;
 
   GIT_SSL_CAINFO = "${cacert}/etc/ca-bundle.crt";
 
diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git
index 8d0de055c756..6e79f82eae86 100755
--- a/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -6,6 +6,7 @@ expHash=
 hashType=$NIX_HASH_ALGO
 deepClone=$NIX_PREFETCH_GIT_DEEP_CLONE
 leaveDotGit=$NIX_PREFETCH_GIT_LEAVE_DOT_GIT
+fetchSubmodules=
 builder=
 
 if test -n "$deepClone"; then
@@ -33,6 +34,7 @@ for arg; do
       --deepClone) deepClone=true;;
       --no-deepClone) deepClone=false;;
       --leave-dotGit) leaveDotGit=true;;
+      --fetch-submodules) fetchSubmodules=true;;
       --builder) builder=true;;
       *)
           argi=$(($argi + 1))
@@ -66,6 +68,7 @@ Options:
       --deepClone     Clone submodules recursively.
       --no-deepClone  Do not clone submodules.
       --leave-dotGit  Keep the .git directories.
+      --fetch-submodules Fetch submodules.
       --builder       Clone as fetchgit does, but url, rev, and out option are mandatory.
 "
     exit 1
@@ -178,7 +181,9 @@ clone(){
     )
 
     # Checkout linked sources.
-    init_submodules;
+    if test -n "$fetchSubmodules"; then
+        init_submodules;
+    fi
 
     if [ -z "$builder" -a -f .topdeps ]; then
 	if tg help 2>&1 > /dev/null
diff --git a/pkgs/build-support/gcc-cross-wrapper/builder.sh b/pkgs/build-support/gcc-cross-wrapper/builder.sh
index 5a5bd45a8f81..2dfa315d168f 100644
--- a/pkgs/build-support/gcc-cross-wrapper/builder.sh
+++ b/pkgs/build-support/gcc-cross-wrapper/builder.sh
@@ -87,6 +87,8 @@ mkGccWrapper $out/bin/$crossConfig-gcc $gccPath/$crossConfig-gcc
 mkGccWrapper $out/bin/$crossConfig-g++ $gccPath/$crossConfig-g++
 ln -s $crossConfig-g++ $out/bin/$crossConfig-c++
 
+mkGccWrapper $out/bin/$crossConfig-cpp $gccPath/$crossConfig-cpp
+
 mkGccWrapper $out/bin/$crossConfig-g77 $gccPath/$crossConfig-g77
 ln -s $crossConfig-g77 $out/bin/$crossConfig-f77
 
diff --git a/pkgs/build-support/gcc-wrapper/builder.sh b/pkgs/build-support/gcc-wrapper/builder.sh
index e7c3400e9f7f..c79680712ee7 100644
--- a/pkgs/build-support/gcc-wrapper/builder.sh
+++ b/pkgs/build-support/gcc-wrapper/builder.sh
@@ -154,6 +154,8 @@ then
     ln -sv g++ $out/bin/c++
 fi
 
+mkGccWrapper $out/bin/cpp $gccPath/cpp || true
+
 if mkGccWrapper $out/bin/gfortran $gccPath/gfortran
 then
     ln -sv gfortran $out/bin/g77
diff --git a/pkgs/build-support/gcc-wrapper/default.nix b/pkgs/build-support/gcc-wrapper/default.nix
index 1f521f405850..8e8b0b909454 100644
--- a/pkgs/build-support/gcc-wrapper/default.nix
+++ b/pkgs/build-support/gcc-wrapper/default.nix
@@ -73,6 +73,8 @@ stdenv.mkDerivation {
        abort "don't know the name of the dynamic linker for this platform");
   };
 
+  preferLocalBuild = true;
+
   meta =
     let gcc_ = if gcc != null then gcc else {}; in
     (if gcc_ ? meta then removeAttrs gcc.meta ["priority"] else {}) //
diff --git a/pkgs/build-support/kernel/cpio-clean.pl b/pkgs/build-support/kernel/cpio-clean.pl
new file mode 100644
index 000000000000..ddc6435a5a81
--- /dev/null
+++ b/pkgs/build-support/kernel/cpio-clean.pl
@@ -0,0 +1,17 @@
+use strict;
+
+# Make inode number, link info and mtime consistent in order to get a consistent hash.
+#
+# Author: Alexander Kjeldaas <ak@formalprivacy.com>
+
+use Archive::Cpio;
+
+my $cpio = Archive::Cpio->new;
+my $IN = \*STDIN;
+my $ino = 1;
+$cpio->read_with_handler($IN, sub {
+        my ($e) = @_;
+        $e->{mtime} = 1;
+	$cpio->write_one(\*STDOUT, $e);
+    });
+$cpio->write_trailer(\*STDOUT);
diff --git a/pkgs/build-support/kernel/make-initrd.nix b/pkgs/build-support/kernel/make-initrd.nix
index 4ddf0706e03e..0582ca553012 100644
--- a/pkgs/build-support/kernel/make-initrd.nix
+++ b/pkgs/build-support/kernel/make-initrd.nix
@@ -12,10 +12,10 @@
 # `contents = {object = ...; symlink = /init;}' is a typical
 # argument.
 
-{stdenv, perl, cpio, contents, ubootChooser, compressor}:
+{stdenv, perl, perlArchiveCpio, cpio, contents, ubootChooser, compressor}:
 
 let
-  inputsFun = ubootName : [perl cpio]
+  inputsFun = ubootName : [perl cpio perlArchiveCpio ]
     ++ stdenv.lib.optional (ubootName != null) [ (ubootChooser ubootName) ];
   makeUInitrdFun = ubootName : (ubootName != null);
 in
@@ -35,6 +35,7 @@ stdenv.mkDerivation {
   exportReferencesGraph =
     map (x: [("closure-" + baseNameOf x.symlink) x.object]) contents;
   pathsFromGraph = ./paths-from-graph.pl;
+  cpioClean = ./cpio-clean.pl;
 
   crossAttrs = {
     nativeBuildInputs = inputsFun stdenv.cross.platform.uboot;
diff --git a/pkgs/build-support/kernel/make-initrd.sh b/pkgs/build-support/kernel/make-initrd.sh
index f6cadaf02819..17b261f98407 100644
--- a/pkgs/build-support/kernel/make-initrd.sh
+++ b/pkgs/build-support/kernel/make-initrd.sh
@@ -36,7 +36,7 @@ storePaths=$(perl $pathsFromGraph closure-*)
 
 # Put the closure in a gzipped cpio archive.
 mkdir -p $out
-(cd root && find * -print0 | cpio -o -H newc --null | $compressor > $out/initrd)
+(cd root && find * -print0 | cpio -o -H newc --null | perl $cpioClean | $compressor > $out/initrd)
 
 if [ -n "$makeUInitrd" ]; then
     mv $out/initrd $out/initrd.gz
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index 5ae2e7b4fc9b..c08a6c3a265f 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -33,6 +33,7 @@ rec {
     
   # Shorthands for `writeTextFile'.
   writeText = name: text: writeTextFile {inherit name text;};
+  writeTextDir = name: text: writeTextFile {inherit name text; destination = "/${name}";};
   writeScript = name: text: writeTextFile {inherit name text; executable = true;};
   writeScriptBin = name: text: writeTextFile {inherit name text; executable = true; destination = "/bin/${name}";};
 
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 3dcb8aa17055..274cd05024bd 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -2,7 +2,7 @@
 , kernel ? pkgs.linux_3_10
 , img ? "bzImage"
 , rootModules ?
-    [ "virtio_pci" "virtio_blk" "virtio_balloon" "ext4" "unix" "9p" "9pnet_virtio" ]
+    [ "virtio_pci" "virtio_blk" "virtio_balloon" "ext4" "unix" "9p" "9pnet_virtio" "rtc_cmos" ]
 }:
 
 with pkgs;
@@ -57,6 +57,7 @@ rec {
       mknod ${dev}/random  c 1 8
       mknod ${dev}/urandom c 1 9
       mknod ${dev}/tty     c 5 0
+      mknod ${dev}/rtc     c 254 0
       . /sys/class/block/${hd}/uevent
       mknod ${dev}/${hd} b $MAJOR $MINOR
     '';
@@ -159,6 +160,10 @@ rec {
     #! ${bash}/bin/sh
     source /tmp/xchg/saved-env
 
+    # Set the system time from the hardware clock.  Works around an
+    # apparent KVM > 1.5.2 bug.
+    ${pkgs.utillinux}/sbin/hwclock -s
+
     export NIX_STORE=/nix/store
     export NIX_BUILD_TOP=/tmp
     export TMPDIR=/tmp
diff --git a/pkgs/data/documentation/man-pages-posix/default.nix b/pkgs/data/documentation/man-pages-posix/default.nix
index 8c126db07929..78b3aa1c8b3e 100644
--- a/pkgs/data/documentation/man-pages-posix/default.nix
+++ b/pkgs/data/documentation/man-pages-posix/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "man-pages-posix-2003a";
+  name = "man-pages-posix-2013-a";
 
   src = fetchurl {
-    url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/man-pages-posix-2003-a.tar.bz2";
-    sha256 = "1sj97lbj27w935f9ia91ih1mwlz4j3qcr3d3nkvcxm6cpfvv2mg3";
+    url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/${name}.tar.xz";
+    sha256 = "0258j05zdrxpgdj8nndbyi7bvrs8fxdksb0xbfrylzgzfmf3lqqr";
   };
 
   preBuild =
diff --git a/pkgs/data/documentation/man-pages/default.nix b/pkgs/data/documentation/man-pages/default.nix
index b43cc8a7995c..5fc0b4752bc4 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.62";
+  name = "man-pages-3.64";
 
   src = fetchurl {
     url = "mirror://kernel/linux/docs/man-pages/${name}.tar.xz";
-    sha256 = "1pxnbznrzckzdnlfbdsg9hjd2g93q6b433l4gp095kdxxjqm1mgk";
+    sha256 = "1p9zk130c852gqci6dyw57yaqx4v871n8n82kkccdpj7y63xr4bl";
   };
 
   preBuild =
@@ -16,5 +16,6 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Linux development manual pages";
     homepage = http://www.kernel.org/doc/man-pages/;
+    repositories.git = http://git.kernel.org/pub/scm/docs/man-pages/man-pages;
   };
 }
diff --git a/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl-ns/default.nix b/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl-ns/default.nix
index c143ce166983..bfe454a49fe1 100644
--- a/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl-ns/default.nix
+++ b/pkgs/data/sgml+xml/stylesheets/xslt/docbook-xsl-ns/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "docbook-xsl-ns-1.75.2";
+  name = "docbook-xsl-ns-1.78.1";
   
   src = fetchurl {
     url = "mirror://sourceforge/docbook/${name}.tar.bz2";
-    sha256 = "1pr7m0hmqilk25hjx33kq2vqn2xf6cx6zhxqm35fdvnjccazlxg2";
+    sha256 = "1x3sc0axk9z3i6n0jhlsmzlmb723a4sjgslm9g12by6phirdx3ng";
   };
 
   buildPhase = "true";
diff --git a/pkgs/desktops/cinnamon/automount-plugin.patch b/pkgs/desktops/cinnamon/automount-plugin.patch
new file mode 100644
index 000000000000..3d90da99f088
--- /dev/null
+++ b/pkgs/desktops/cinnamon/automount-plugin.patch
@@ -0,0 +1,448 @@
+ 
+diff -Naur cinnamon-settings-daemon-2.0.1.orig/data/org.cinnamon.settings-daemon.plugins.gschema.xml.in.in cinnamon-settings-daemon-2.0.1/data/org.cinnamon.settings-daemon.plugins.gschema.xml.in.in
+--- cinnamon-settings-daemon-2.0.6.orig/data/org.cinnamon.settings-daemon.plugins.gschema.xml.in.in 2013-11-03 10:50:04.000000000 -0500
++++ cinnamon-settings-daemon-2.0.6/data/org.cinnamon.settings-daemon.plugins.gschema.xml.in.in  2013-11-05 15:33:21.112912392 -0500
+@@ -2,6 +2,7 @@
+   <schema gettext-domain="@GETTEXT_PACKAGE@" id="org.cinnamon.settings-daemon.plugins" path="/org/cinnamon/settings-daemon/plugins/">
+     <child name="a11y-keyboard" schema="org.cinnamon.settings-daemon.plugins.a11y-keyboard"/>
+     <child name="a11y-settings" schema="org.cinnamon.settings-daemon.plugins.a11y-settings"/>
++    <child name="automount" schema="org.cinnamon.settings-daemon.plugins.automount"/>
+     <child name="clipboard" schema="org.cinnamon.settings-daemon.plugins.clipboard"/>
+     <child name="color" schema="org.cinnamon.settings-daemon.plugins.color"/>
+     <child name="cursor" schema="org.cinnamon.settings-daemon.plugins.cursor"/>
+@@ -42,6 +43,18 @@
+       <_summary>Priority to use for this plugin</_summary>
+       <_description>Priority to use for this plugin in cinnamon-settings-daemon startup queue</_description>
+     </key>
++  </schema>
++  <schema gettext-domain="@GETTEXT_PACKAGE@" id="org.cinnamon.settings-daemon.plugins.automount" path="/org/cinnamon/settings-daemon/plugins/automount/">
++    <key name="active" type="b">
++      <default>true</default>
++      <_summary>Activation of this plugin</_summary>
++      <_description>Whether this plugin would be activated by cinnamon-settings-daemon or not</_description>
++    </key>
++    <key name="priority" type="i">
++      <default>97</default>
++      <_summary>Priority to use for this plugin</_summary>
++      <_description>Priority to use for this plugin in cinnamon-settings-daemon startup queue</_description>
++    </key>
+   </schema>
+   <schema gettext-domain="@GETTEXT_PACKAGE@" id="org.cinnamon.settings-daemon.plugins.clipboard" path="/org/cinnamon/settings-daemon/plugins/clipboard/">
+     <key name="active" type="b">
+diff -Naur cinnamon-settings-daemon-2.0.1.orig/plugins/automount/automount.cinnamon-settings-plugin.in cinnamon-settings-daemon-2.0.1/plugins/automount/automount.cinnamon-settings-plugin.in
+--- cinnamon-settings-daemon-2.0.1.orig/plugins/automount/automount.cinnamon-settings-plugin.in	1970-01-01 01:00:00.000000000 +0100
++++ cinnamon-settings-daemon-2.0.1/plugins/automount/automount.cinnamon-settings-plugin.in	2013-10-08 22:35:10.771472456 +0200
+@@ -0,0 +1,8 @@
++[Cinnamon Settings Plugin]
++Module=automount
++IAge=0
++_Name=Automount
++_Description=Automounter plugin
++Authors=Tomas Bzatek
++Copyright=Copyright © 2010 Red Hat, Inc.
++Website=
+diff -Naur cinnamon-settings-daemon-2.0.1.orig/plugins/automount/cinnamon-fallback-mount-helper.c cinnamon-settings-daemon-2.0.1/plugins/automount/cinnamon-fallback-mount-helper.c
+--- cinnamon-settings-daemon-2.0.1.orig/plugins/automount/cinnamon-fallback-mount-helper.c	2013-10-02 16:13:56.000000000 +0200
++++ cinnamon-settings-daemon-2.0.1/plugins/automount/cinnamon-fallback-mount-helper.c	1970-01-01 01:00:00.000000000 +0100
+@@ -1,65 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2010 Red Hat, Inc.
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2 of the License, or
+- * (at your option) any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA  02110-1335  USA
+- *
+- * Author: Tomas Bzatek <tbzatek@redhat.com>
+- */
+-
+-#include "config.h"
+-
+-#include <glib.h>
+-#include <glib/gi18n.h>
+-#include <unistd.h>
+-#include <gtk/gtk.h>
+-
+-#include "csd-automount-manager.h"
+-
+-int
+-main (int argc,
+-      char **argv)
+-{
+-        GMainLoop *loop;
+-        CsdAutomountManager *manager;
+-        GError *error = NULL;
+-
+-        g_type_init ();
+-        gtk_init (&argc, &argv);
+-
+-        bindtextdomain (GETTEXT_PACKAGE, CINNAMON_SETTINGS_LOCALEDIR);
+-        bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+-        textdomain (GETTEXT_PACKAGE);
+-
+-        loop = g_main_loop_new (NULL, FALSE);
+-        manager = csd_automount_manager_new ();
+-
+-        csd_automount_manager_start (manager, &error);
+-
+-        if (error != NULL) {
+-                g_printerr ("Unable to start the mount manager: %s",
+-                            error->message);
+-
+-                g_error_free (error);
+-                _exit (1);
+-        }
+-
+-        g_main_loop_run (loop);
+-
+-        csd_automount_manager_stop (manager);
+-        g_main_loop_unref (loop);
+-
+-        return 0;
+-}
+diff -Naur cinnamon-settings-daemon-2.0.1.orig/plugins/automount/cinnamon-fallback-mount-helper.desktop.in.in cinnamon-settings-daemon-2.0.1/plugins/automount/cinnamon-fallback-mount-helper.desktop.in.in
+--- cinnamon-settings-daemon-2.0.1.orig/plugins/automount/cinnamon-fallback-mount-helper.desktop.in.in	2013-10-02 16:13:56.000000000 +0200
++++ cinnamon-settings-daemon-2.0.1/plugins/automount/cinnamon-fallback-mount-helper.desktop.in.in	1970-01-01 01:00:00.000000000 +0100
+@@ -1,12 +0,0 @@
+-[Desktop Entry]
+-_Name=Mount Helper
+-_Comment=Automount and autorun plugged devices
+-Exec=@LIBEXECDIR@/cinnamon-fallback-mount-helper
+-Icon=drive-optical
+-Terminal=false
+-Type=Application
+-Categories=
+-NoDisplay=true
+-OnlyShowIn=GNOME;
+-X-GNOME-Autostart-Notify=true
+-
+diff -Naur cinnamon-settings-daemon-2.0.1.orig/plugins/automount/csd-automount-plugin.c cinnamon-settings-daemon-2.0.1/plugins/automount/csd-automount-plugin.c
+--- cinnamon-settings-daemon-2.0.1.orig/plugins/automount/csd-automount-plugin.c	1970-01-01 01:00:00.000000000 +0100
++++ cinnamon-settings-daemon-2.0.1/plugins/automount/csd-automount-plugin.c	2013-10-08 22:35:10.771472456 +0200
+@@ -0,0 +1,106 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2010 Red Hat, Inc.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
++ *
++ * Author: Tomas Bzatek <tbzatek@redhat.com>
++ */
++
++#include "config.h"
++
++#include <glib/gi18n-lib.h>
++#include <gmodule.h>
++
++#include "cinnamon-settings-plugin.h"
++#include "csd-automount-plugin.h"
++#include "csd-automount-manager.h"
++
++struct CsdAutomountPluginPrivate {
++        CsdAutomountManager *manager;
++};
++
++#define CSD_AUTOMOUNT_PLUGIN_GET_PRIVATE(object) (G_TYPE_INSTANCE_GET_PRIVATE ((object), CSD_TYPE_AUTOMOUNT_PLUGIN, CsdAutomountPluginPrivate))
++
++CINNAMON_SETTINGS_PLUGIN_REGISTER (CsdAutomountPlugin, csd_automount_plugin)
++
++static void
++csd_automount_plugin_init (CsdAutomountPlugin *plugin)
++{
++        plugin->priv = CSD_AUTOMOUNT_PLUGIN_GET_PRIVATE (plugin);
++
++        g_debug ("Automount plugin initializing");
++
++        plugin->priv->manager = csd_automount_manager_new ();
++}
++
++static void
++csd_automount_plugin_finalize (GObject *object)
++{
++        CsdAutomountPlugin *plugin;
++
++        g_return_if_fail (object != NULL);
++        g_return_if_fail (CSD_IS_AUTOMOUNT_PLUGIN (object));
++
++        g_debug ("Automount plugin finalizing");
++
++        plugin = CSD_AUTOMOUNT_PLUGIN (object);
++
++        g_return_if_fail (plugin->priv != NULL);
++
++        if (plugin->priv->manager != NULL) {
++                g_object_unref (plugin->priv->manager);
++        }
++
++        G_OBJECT_CLASS (csd_automount_plugin_parent_class)->finalize (object);
++}
++
++static void
++impl_activate (CinnamonSettingsPlugin *plugin)
++{
++        gboolean res;
++        GError  *error;
++
++        g_debug ("Activating automount plugin");
++
++        error = NULL;
++        res = csd_automount_manager_start (CSD_AUTOMOUNT_PLUGIN (plugin)->priv->manager, &error);
++        if (! res) {
++                g_warning ("Unable to start automount manager: %s", error->message);
++                g_error_free (error);
++        }
++}
++
++static void
++impl_deactivate (CinnamonSettingsPlugin *plugin)
++{
++        g_debug ("Deactivating automount plugin");
++        csd_automount_manager_stop (CSD_AUTOMOUNT_PLUGIN (plugin)->priv->manager);
++}
++
++static void
++csd_automount_plugin_class_init (CsdAutomountPluginClass *klass)
++{
++        GObjectClass             *object_class = G_OBJECT_CLASS (klass);
++        CinnamonSettingsPluginClass *plugin_class = CINNAMON_SETTINGS_PLUGIN_CLASS (klass);
++
++        object_class->finalize = csd_automount_plugin_finalize;
++
++        plugin_class->activate = impl_activate;
++        plugin_class->deactivate = impl_deactivate;
++
++        g_type_class_add_private (klass, sizeof (CsdAutomountPluginPrivate));
++}
++
+diff -Naur cinnamon-settings-daemon-2.0.1.orig/plugins/automount/csd-automount-plugin.h cinnamon-settings-daemon-2.0.1/plugins/automount/csd-automount-plugin.h
+--- cinnamon-settings-daemon-2.0.1.orig/plugins/automount/csd-automount-plugin.h	1970-01-01 01:00:00.000000000 +0100
++++ cinnamon-settings-daemon-2.0.1/plugins/automount/csd-automount-plugin.h	2013-10-08 22:35:10.771472456 +0200
+@@ -0,0 +1,60 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2010 Red Hat, Inc.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
++ *
++ * Author: Tomas Bzatek <tbzatek@redhat.com>
++ */
++
++#ifndef __CSD_AUTOMOUNT_PLUGIN_H__
++#define __CSD_AUTOMOUNT_PLUGIN_H__
++
++#include <glib.h>
++#include <glib-object.h>
++#include <gmodule.h>
++
++#include "cinnamon-settings-plugin.h"
++
++G_BEGIN_DECLS
++
++#define CSD_TYPE_AUTOMOUNT_PLUGIN                (csd_automount_plugin_get_type ())
++#define CSD_AUTOMOUNT_PLUGIN(o)                  (G_TYPE_CHECK_INSTANCE_CAST ((o), CSD_TYPE_AUTOMOUNT_PLUGIN, CsdAutomountPlugin))
++#define CSD_AUTOMOUNT_PLUGIN_CLASS(k)            (G_TYPE_CHECK_CLASS_CAST((k), CSD_TYPE_AUTOMOUNT_PLUGIN, CsdAutomountPluginClass))
++#define CSD_IS_AUTOMOUNT_PLUGIN(o)               (G_TYPE_CHECK_INSTANCE_TYPE ((o), CSD_TYPE_AUTOMOUNT_PLUGIN))
++#define CSD_IS_AUTOMOUNT_PLUGIN_CLASS(k)         (G_TYPE_CHECK_CLASS_TYPE ((k), CSD_TYPE_AUTOMOUNT_PLUGIN))
++#define CSD_AUTOMOUNT_PLUGIN_GET_CLASS(o)        (G_TYPE_INSTANCE_GET_CLASS ((o), CSD_TYPE_AUTOMOUNT_PLUGIN, CsdAutomountPluginClass))
++
++typedef struct CsdAutomountPluginPrivate CsdAutomountPluginPrivate;
++
++typedef struct
++{
++        CinnamonSettingsPlugin           parent;
++        CsdAutomountPluginPrivate    *priv;
++} CsdAutomountPlugin;
++
++typedef struct
++{
++        CinnamonSettingsPluginClass parent_class;
++} CsdAutomountPluginClass;
++
++GType   csd_automount_plugin_get_type             (void) G_GNUC_CONST;
++
++/* All the plugins must implement this function */
++G_MODULE_EXPORT GType register_cinnamon_settings_plugin (GTypeModule *module);
++
++G_END_DECLS
++
++#endif /* __CSD_AUTOMOUNT_PLUGIN_H__ */
+diff -Naur cinnamon-settings-daemon-2.0.1.orig/plugins/automount/Makefile.am cinnamon-settings-daemon-2.0.1/plugins/automount/Makefile.am
+--- cinnamon-settings-daemon-2.0.1.orig/plugins/automount/Makefile.am	2013-10-02 16:13:56.000000000 +0200
++++ cinnamon-settings-daemon-2.0.1/plugins/automount/Makefile.am	2013-10-08 22:48:19.240865461 +0200
+@@ -1,38 +1,87 @@
+-libexec_PROGRAMS = cinnamon-fallback-mount-helper
++NULL =
+ 
+-cinnamon_fallback_mount_helper_SOURCES = \
+-	cinnamon-fallback-mount-helper.c \
+-	csd-automount-manager.c \
+-	csd-automount-manager.h \
+-	csd-autorun.c \
+-	csd-autorun.h
++plugin_name = automount
+ 
+-cinnamon_fallback_mount_helper_CPPFLAGS = \
++libexec_PROGRAMS = csd-test-automount
++
++csd_test_automount_SOURCES = 		\
++	test-automount.c		\
++	csd-automount-manager.h		\
++	csd-automount-manager.c		\
++	csd-autorun.c		\
++	csd-autorun.h		\
++	$(NULL)
++
++csd_test_automount_CPPFLAGS = \
+ 	-I$(top_srcdir)/cinnamon-settings-daemon		\
++	-I$(top_srcdir)/plugins/common			\
+ 	-DCINNAMON_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \
+ 	$(AM_CPPFLAGS)
+ 
+-cinnamon_fallback_mount_helper_CFLAGS =	\
++csd_test_automount_CFLAGS = \
++	$(PLUGIN_CFLAGS)		\
+ 	$(SETTINGS_PLUGIN_CFLAGS)	\
+ 	$(SYSTEMD_CFLAGS)		\
+ 	$(AUTOMOUNT_CFLAGS)
++	$(AM_CFLAGS)
++
++csd_test_automount_LDADD =			\
++	$(top_builddir)/cinnamon-settings-daemon/libcsd.la	\
++	$(SETTINGS_PLUGIN_LIBS)		\
++	$(SYSTEMD_LIBS)			\
++	$(AUTOMOUNT_LIBS)		\
++	$(NULL)
++
++plugin_LTLIBRARIES = \
++	libautomount.la		\
++	$(NULL)
++
++libautomount_la_SOURCES =		\
++	csd-automount-plugin.h		\
++	csd-automount-plugin.c		\
++	csd-automount-manager.h		\
++	csd-automount-manager.c		\
++	csd-autorun.c		\
++	csd-autorun.h		\
++	$(NULL)
++
++libautomount_la_CPPFLAGS = \
++	-I$(top_srcdir)/cinnamon-settings-daemon		\
++	-DCINNAMON_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \
++	$(AM_CPPFLAGS)
++
++libautomount_la_CFLAGS = \
++	$(SETTINGS_PLUGIN_CFLAGS)	\
++	$(SYSTEMD_CFLAGS)		\
++	$(AUTOMOUNT_CFLAGS)		\
++	$(AM_CFLAGS)
++
++libautomount_la_LDFLAGS =		\
++	$(CSD_PLUGIN_LDFLAGS)		\
++	$(NULL)
+ 
+-cinnamon_fallback_mount_helper_LDADD =	\
++libautomount_la_LIBADD  =		\
+ 	$(SETTINGS_PLUGIN_LIBS)		\
+ 	$(SYSTEMD_LIBS)			\
+ 	$(AUTOMOUNT_LIBS)		\
+-	$(top_builddir)/cinnamon-settings-daemon/libcsd.la
++	$(NULL)
+ 
+-autostartdir = $(datadir)/applications
+-autostart_in_files = cinnamon-fallback-mount-helper.desktop.in
+-autostart_in_in_files = cinnamon-fallback-mount-helper.desktop.in.in
+-autostart_DATA = $(autostart_in_files:.desktop.in=.desktop)
++plugin_in_files =		\
++	automount.cinnamon-settings-plugin.in	\
++	$(NULL)
+ 
+-$(autostart_in_files): $(autostart_in_in_files)
+-	@sed -e "s|\@LIBEXECDIR\@|$(libexecdir)|" $< > $@
++plugin_DATA = $(plugin_in_files:.cinnamon-settings-plugin.in=.cinnamon-settings-plugin)
+ 
+-@INTLTOOL_DESKTOP_RULE@
++EXTRA_DIST = 			\
++	$(plugin_in_files)	\
++	$(NULL)
+ 
+-EXTRA_DIST = $(autostart_in_in_files)
++CLEANFILES = 			\
++	$(plugin_DATA)		\
++	$(NULL)
+ 
+-CLEANFILES = $(autostart_DATA) $(autostart_in_files)
++DISTCLEANFILES =		\
++	$(plugin_DATA)		\
++	$(NULL)
++
++@CSD_INTLTOOL_PLUGIN_RULE@
+diff -Naur cinnamon-settings-daemon-2.0.1.orig/plugins/automount/test-automount.c cinnamon-settings-daemon-2.0.1/plugins/automount/test-automount.c
+--- cinnamon-settings-daemon-2.0.1.orig/plugins/automount/test-automount.c	1970-01-01 01:00:00.000000000 +0100
++++ cinnamon-settings-daemon-2.0.1/plugins/automount/test-automount.c	2013-10-08 22:42:53.759486525 +0200
+@@ -0,0 +1,7 @@
++#define NEW csd_automount_manager_new
++#define START csd_automount_manager_start
++#define STOP csd_automount_manager_stop
++#define MANAGER CsdAutomountManager
++#include "csd-automount-manager.h"
++
++#include "test-plugin.h"
+diff -Naur cinnamon-settings-daemon-2.0.1.orig/po/POTFILES.in cinnamon-settings-daemon-2.0.1/po/POTFILES.in
+--- cinnamon-settings-daemon-2.0.1.orig/po/POTFILES.in	2013-10-02 16:13:56.000000000 +0200
++++ cinnamon-settings-daemon-2.0.1/po/POTFILES.in	2013-10-08 22:35:10.771472456 +0200
+@@ -18,8 +18,9 @@
+ plugins/a11y-keyboard/csd-a11y-preferences-dialog.c
+ [type: gettext/glade]plugins/a11y-keyboard/csd-a11y-preferences-dialog.ui
+ [type: gettext/ini]plugins/a11y-settings/a11y-settings.cinnamon-settings-plugin.in
+-plugins/automount/cinnamon-fallback-mount-helper.desktop.in.in
++[type: gettext/ini]plugins/automount/automount.cinnamon-settings-plugin.in
+ plugins/automount/csd-automount-manager.c
++plugins/automount/csd-automount-plugin.c
+ plugins/automount/csd-autorun.c
+ [type: gettext/ini]plugins/background/background.cinnamon-settings-plugin.in
+ [type: gettext/ini]plugins/clipboard/clipboard.cinnamon-settings-plugin.in
+diff -Naur cinnamon-settings-daemon-2.0.1.orig/po/POTFILES.skip cinnamon-settings-daemon-2.0.1/po/POTFILES.skip
+--- cinnamon-settings-daemon-2.0.1.orig/po/POTFILES.skip	2013-10-02 16:13:56.000000000 +0200
++++ cinnamon-settings-daemon-2.0.1/po/POTFILES.skip	2013-10-08 22:37:20.224645009 +0200
+@@ -20,6 +20,5 @@
+ data/org.cinnamon.settings-daemon.plugins.updates.gschema.xml.in
+ data/org.cinnamon.settings-daemon.plugins.xrandr.gschema.xml.in
+ data/org.cinnamon.settings-daemon.plugins.xsettings.gschema.xml.in
+-plugins/automount/gnome-fallback-mount-helper.desktop.in
+ plugins/power/org.cinnamon.settings-daemon.plugins.power.policy.in
+ plugins/wacom/org.cinnamon.settings-daemon.plugins.wacom.policy.in
diff --git a/pkgs/desktops/cinnamon/cinnamon-control-center.nix b/pkgs/desktops/cinnamon/cinnamon-control-center.nix
new file mode 100644
index 000000000000..ab2f389b4f5f
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-control-center.nix
@@ -0,0 +1,40 @@
+ 
+{ stdenv, fetchurl, pkgconfig, autoreconfHook, glib, gettext, gnome_common, cinnamon-desktop, intltool, libxslt, gtk3, libnotify,
+gnome-menus, libxml2, systemd, upower, cinnamon-settings-daemon, colord, polkit, ibus, libcanberra_gtk3, pulseaudio, isocodes, krb5,
+libxkbfile}:
+
+let
+  version = "2.0.9";
+in
+stdenv.mkDerivation {
+  name = "cinnamon-control-center-${version}";
+
+  src = fetchurl {
+    url = "http://github.com/linuxmint/cinnamon-control-center/archive/${version}.tar.gz";
+    sha256 = "0kivqdgsf8w257j2ja6fap0dpvljcnb9gphr3knp7y6ma2d1gfv3";
+  };
+
+ configureFlags = "--enable-systemd --disable-update-mimedb" ;
+
+  patches = [ ./region.patch];
+
+  buildInputs = [
+    pkgconfig autoreconfHook
+    glib gettext gnome_common
+    intltool libxslt gtk3 cinnamon-desktop
+    libnotify gnome-menus libxml2 systemd
+    upower cinnamon-settings-daemon colord
+    polkit ibus libcanberra_gtk3 pulseaudio 
+    isocodes krb5 libxkbfile ];
+
+  preBuild = "patchShebangs ./scripts";
+  
+  meta = {
+    homepage = "http://cinnamon.linuxmint.com";
+    description = "The cinnamon session files" ;
+
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.roelof ];
+  };
+}
+
diff --git a/pkgs/desktops/cinnamon/cinnamon-desktop.nix b/pkgs/desktops/cinnamon/cinnamon-desktop.nix
index e158b4898840..d3cf04e835d1 100644
--- a/pkgs/desktops/cinnamon/cinnamon-desktop.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-desktop.nix
@@ -22,10 +22,6 @@ stdenv.mkDerivation {
     xkeyboard_config libxkbfile libX11 libXrandr libXext
   ];
 
-  postInstall  = ''
-    ${glib}/bin/glib-compile-schemas $out/share/glib-2.0/schemas/
-  '';
-
   meta = {
     homepage = "http://cinnamon.linuxmint.com";
     description = "Library and data for various Cinnamon modules";
diff --git a/pkgs/desktops/cinnamon/cinnamon-session.nix b/pkgs/desktops/cinnamon/cinnamon-session.nix
index 850dd4e6c5af..534fa11f0467 100644
--- a/pkgs/desktops/cinnamon/cinnamon-session.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-session.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation {
   };
 
 
-  configureFlags = "--disable-schemas-compile --enable-systemd --disable-gconf" ;
+  configureFlags = "--enable-systemd --disable-gconf" ;
 
   patches = [ ./remove-sessionmigration.patch ./timeout.patch];
 
@@ -23,17 +23,17 @@ stdenv.mkDerivation {
     gtk3 dbus_glib upower json_glib
     intltool systemd xorg.xtrans
     makeWrapper
+    cinnamon-desktop/*gschemas*/
    ];
 
   preBuild = "patchShebangs ./scripts";
 
 
-  postInstall  = ''
-    ${glib}/bin/glib-compile-schemas $out/share/glib-2.0/schemas/
+  postFixup  = ''
     rm $out/share/icons/hicolor/icon-theme.cache
 
     for f in "$out"/bin/*; do
-      wrapProgram "$f" --prefix XDG_DATA_DIRS : "$out/share:${cinnamon-desktop}/share"
+      wrapProgram "$f" --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
     done
   '';
 
diff --git a/pkgs/desktops/cinnamon/cinnamon-settings-daemon.nix b/pkgs/desktops/cinnamon/cinnamon-settings-daemon.nix
new file mode 100644
index 000000000000..c397a9758e2c
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-settings-daemon.nix
@@ -0,0 +1,52 @@
+
+{ stdenv, fetchurl, pkgconfig, autoreconfHook, glib, gettext, gnome_common, cinnamon-desktop, intltool, gtk3, 
+libnotify, lcms2, libxklavier, libgnomekbd, libcanberra, pulseaudio, upower, libcanberra_gtk3, colord,
+systemd, libxslt, docbook_xsl, makeWrapper, gsettings_desktop_schemas}:
+
+let
+  version = "2.0.10";
+in
+stdenv.mkDerivation {
+  name = "cinnamon-settings-daemon-${version}";
+
+  src = fetchurl {
+    url = "http://github.com/linuxmint/cinnamon-settings-daemon/archive/${version}.tar.gz";
+    sha256 = "10r75xsngb7ipv9fy07dyfb256bqybzcxbwny60sgjhrksk3v9mg";
+  };
+
+  NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0";
+
+  configureFlags = "--enable-systemd" ;
+
+  patches = [ ./systemd-support.patch ./automount-plugin.patch ./dpms.patch];
+
+  buildInputs = [
+    pkgconfig autoreconfHook
+    glib gettext gnome_common
+    intltool gtk3 libnotify lcms2
+    libgnomekbd libxklavier colord
+    libcanberra pulseaudio upower
+    libcanberra_gtk3 cinnamon-desktop
+    systemd libxslt docbook_xsl makeWrapper
+    gsettings_desktop_schemas
+   ];
+
+  preBuild = "patchShebangs ./scripts";
+
+  #ToDo: missing org.cinnamon.gschema.xml, probably not packaged yet
+  postFixup  = ''
+    for f in "$out"/libexec/*; do
+      wrapProgram "$f" --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+    done
+  '';
+
+
+  meta = {
+    homepage = "http://cinnamon.linuxmint.com";
+    description = "The cinnamon session files" ;
+
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.roelof ];
+  };
+}
+
diff --git a/pkgs/desktops/cinnamon/dpms.patch b/pkgs/desktops/cinnamon/dpms.patch
new file mode 100644
index 000000000000..a73f33dc6182
--- /dev/null
+++ b/pkgs/desktops/cinnamon/dpms.patch
@@ -0,0 +1,30 @@
+ 
+-- a/plugins/power/csd-power-manager.c
++++ b/plugins/power/csd-power-manager.c
+@@ -33,6 +33,8 @@
+ #include <libnotify/notify.h>
+ #include <canberra-gtk.h>
+ 
++#include <X11/extensions/dpms.h>
++
+ #define GNOME_DESKTOP_USE_UNSTABLE_API
+ #include <libcinnamon-desktop/gnome-rr.h>
+ 
+@@ -3967,6 +3790,17 @@ csd_power_manager_start (CsdPowerManager
+         /* set the initial dim time that can adapt for the user */
+         refresh_idle_dim_settings (manager);
+ 
++        /* Make sure that Xorg's DPMS extension never gets in our way. The defaults seem to have changed in Xorg 1.14
++         * being "0" by default to being "600" by default 
++         * https://bugzilla.gnome.org/show_bug.cgi?id=709114
++         */
++        gdk_error_trap_push ();
++        int dummy;
++        if (DPMSQueryExtension(GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &dummy, &dummy)) {
++            DPMSSetTimeouts (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), 0, 0, 0);
++        }
++        gdk_error_trap_pop_ignored ();
++
+         manager->priv->xscreensaver_watchdog_timer_id = g_timeout_add_seconds (XSCREENSAVER_WATCHDOG_TIMEOUT,
+                                                                                disable_builtin_screensaver,
+                                                                                NULL);
diff --git a/pkgs/desktops/cinnamon/keyboard.patch b/pkgs/desktops/cinnamon/keyboard.patch
new file mode 100644
index 000000000000..f67d961ff58f
--- /dev/null
+++ b/pkgs/desktops/cinnamon/keyboard.patch
@@ -0,0 +1,4729 @@
+ 
+diff -uNrp a/cinnamon-settings-daemon/main.c b/cinnamon-settings-daemon/main.c
+--- a/cinnamon-settings-daemon/main.c	2013-08-24 18:04:31.000000000 +0100
++++ b/cinnamon-settings-daemon/main.c	2013-08-25 16:36:02.000000000 +0100
+@@ -319,6 +319,29 @@ set_legacy_ibus_env_vars (GDBusProxy *pr
+ }
+ #endif
+ 
++static void
++got_session_proxy (GObject      *source_object,
++                   GAsyncResult *res,
++                   gpointer      user_data)
++{
++        GDBusProxy *proxy;
++        GError *error = NULL;
++
++        proxy = g_dbus_proxy_new_finish (res, &error);
++        if (proxy == NULL) {
++                g_debug ("Could not connect to the Session manager: %s", error->message);
++                g_error_free (error);
++        } else {
++                set_locale (proxy);
++#ifdef HAVE_IBUS
++                /* This will register with cinnamon-session after calling Setenv. */
++                set_legacy_ibus_env_vars (proxy);
++#else
++                register_with_gnome_session (proxy);
++#endif
++        }
++}
++
+ static gboolean
+ on_term_signal_pipe_closed (GIOChannel *source,
+                             GIOCondition condition,
+@@ -368,6 +391,16 @@ set_session_over_handler (GDBusConnectio
+ {
+         g_assert (bus != NULL);
+ 
++        g_dbus_proxy_new (bus,
++                          G_DBUS_PROXY_FLAGS_NONE,
++                          NULL,
++                          GNOME_SESSION_DBUS_NAME,
++                          GNOME_SESSION_DBUS_OBJECT,
++                          GNOME_SESSION_DBUS_INTERFACE,
++                          NULL,
++                          (GAsyncReadyCallback) got_session_proxy,
++                          NULL);
++
+         watch_for_term_signal (manager);
+ }
+ 
+@@ -390,56 +423,6 @@ name_lost_handler (GDBusConnection *conn
+         gtk_main_quit ();
+ }
+ 
+-static gboolean
+-do_register_client (gpointer user_data)
+-{
+-        GDBusProxy *proxy = (GDBusProxy *) user_data;
+-        g_assert (proxy != NULL);
+-
+-        const char *startup_id = g_getenv ("DESKTOP_AUTOSTART_ID");
+-        g_dbus_proxy_call (proxy,
+-                           "RegisterClient",
+-                           g_variant_new ("(ss)", "cinnamon-settings-daemon", startup_id ? startup_id : ""),
+-                           G_DBUS_CALL_FLAGS_NONE,
+-                           -1,
+-                           NULL,
+-                           (GAsyncReadyCallback) on_client_registered,
+-                           manager);
+-
+-        return FALSE;
+-}
+-
+-static void
+-queue_register_client (void)
+-{
+-        GDBusConnection *bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
+-        if (!bus)
+-                return;
+-
+-        GError *error = NULL;
+-        GDBusProxy *proxy = g_dbus_proxy_new_sync (bus,
+-                                                   G_DBUS_PROXY_FLAGS_NONE,
+-                                                   NULL,
+-                                                   GNOME_SESSION_DBUS_NAME,
+-                                                   GNOME_SESSION_DBUS_OBJECT,
+-                                                   GNOME_SESSION_DBUS_INTERFACE,
+-                                                   NULL,
+-                                                   &error);
+-        g_object_unref (bus);
+-
+-        if (proxy == NULL) {
+-                g_debug ("Could not connect to the Session manager: %s", error->message);
+-                g_error_free (error);
+-                return;
+-        }
+-
+-        /* Register the daemon with cinnamon-session */
+-        g_signal_connect (G_OBJECT (proxy), "g-signal",
+-                          G_CALLBACK (on_session_over), NULL);
+-
+-        g_idle_add_full (G_PRIORITY_DEFAULT, do_register_client, proxy, NULL);
+-}
+-
+ static void
+ bus_register (void)
+ {
+@@ -541,8 +524,6 @@ main (int argc, char *argv[])
+ 
+         notify_init ("cinnamon-settings-daemon");
+ 
+-        queue_register_client ();
+-
+         bus_register ();
+ 
+         cinnamon_settings_profile_start ("cinnamon_settings_manager_new");
+diff -uNrp a/configure.ac b/configure.ac
+--- a/configure.ac	2013-08-24 18:04:31.000000000 +0100
++++ b/configure.ac	2013-08-25 16:36:02.000000000 +0100
+@@ -53,6 +53,7 @@ UPOWER_GLIB_REQUIRED_VERSION=0.9.1
+ PA_REQUIRED_VERSION=0.9.16
+ UPOWER_REQUIRED_VERSION=0.9.11
+ GTK_XINPUT_2_3_VERSION=3.7.8
++IBUS_REQUIRED_VERSION=1.4.2
+ 
+ #EXTRA_COMPILE_WARNINGS(yes)
+ 
+@@ -199,8 +200,21 @@ dnl ------------------------------------
+ dnl - Keyboard plugin stuff
+ dnl ---------------------------------------------------------------------------
+ 
+-LIBGNOMEKBD_REQUIRED=2.91.1
+-PKG_CHECK_MODULES(KEYBOARD, [libgnomekbdui >= $LIBGNOMEKBD_REQUIRED libgnomekbd >= $LIBGNOMEKBD_REQUIRED libxklavier >= 5.0 kbproto])
++AC_ARG_ENABLE(ibus,
++        AS_HELP_STRING([--disable-ibus],
++                       [Disable IBus support]),
++        enable_ibus=$enableval,
++        enable_ibus=yes)
++
++if test "x$enable_ibus" = "xyes" ; then
++        IBUS_MODULE="ibus-1.0 >= $IBUS_REQUIRED_VERSION"
++        AC_DEFINE(HAVE_IBUS, 1, [Defined if IBus support is enabled])
++else
++        IBUS_MODULE=
++fi
++AM_CONDITIONAL(HAVE_IBUS, test "x$enable_ibus" == "xyes")
++
++PKG_CHECK_MODULES(KEYBOARD, xkbfile $IBUS_MODULE cinnamon-desktop >= $CINNAMON_DESKTOP_REQUIRED_VERSION)
+ 
+ dnl ---------------------------------------------------------------------------
+ dnl - Housekeeping plugin stuff
+diff -uNrp a/data/org.cinnamon.settings-daemon.plugins.media-keys.gschema.xml.in.in b/data/org.cinnamon.settings-daemon.plugins.media-keys.gschema.xml.in.in
+--- a/data/org.cinnamon.settings-daemon.plugins.media-keys.gschema.xml.in.in	2013-08-24 18:04:31.000000000 +0100
++++ b/data/org.cinnamon.settings-daemon.plugins.media-keys.gschema.xml.in.in	2013-08-25 16:36:02.000000000 +0100
+@@ -175,6 +175,15 @@
+       <_summary>Magnifier zoom out</_summary>
+       <_description>Binding for the magnifier to zoom out</_description>
+     </key>
++    <key name="switch-input-source" type="s">
++      <default>''</default>
++      <_summary>Switch input source</_summary>
++      <_description>Binding to select the next input source</_description>
++    </key>
++    <key name="switch-input-source-backward" type="s">
++      <default>''</default>
++      <_summary>Switch input source backward</_summary>
++      <_description>Binding to select the previous input source</_description>
++    </key>
+   </schema>
+-
+-</schemalist>
++</schemalist>
+\ No newline at end of file
+diff -uNrp a/plugins/keyboard/csd-keyboard-manager.c b/plugins/keyboard/csd-keyboard-manager.c
+--- a/plugins/keyboard/csd-keyboard-manager.c	2013-08-24 18:04:31.000000000 +0100
++++ b/plugins/keyboard/csd-keyboard-manager.c	2013-08-25 16:36:02.000000000 +0100
+@@ -40,19 +40,22 @@
+ 
+ #include <X11/XKBlib.h>
+ #include <X11/keysym.h>
++#include <X11/extensions/XKBrules.h>
++
++#define GNOME_DESKTOP_USE_UNSTABLE_API
++#include <libcinnamon-desktop/gnome-xkb-info.h>
++
++#ifdef HAVE_IBUS
++#include <ibus.h>
++#endif
+ 
+ #include "cinnamon-settings-profile.h"
+ #include "csd-keyboard-manager.h"
++#include "csd-input-helper.h"
+ #include "csd-enums.h"
+ 
+-#include "csd-keyboard-xkb.h"
+-
+ #define CSD_KEYBOARD_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CSD_TYPE_KEYBOARD_MANAGER, CsdKeyboardManagerPrivate))
+ 
+-#ifndef HOST_NAME_MAX
+-#  define HOST_NAME_MAX 255
+-#endif
+-
+ #define CSD_KEYBOARD_DIR "org.cinnamon.settings-daemon.peripherals.keyboard"
+ 
+ #define KEY_REPEAT         "repeat"
+@@ -60,6 +63,7 @@
+ #define KEY_INTERVAL       "repeat-interval"
+ #define KEY_DELAY          "delay"
+ #define KEY_CLICK_VOLUME   "click-volume"
++#define KEY_REMEMBER_NUMLOCK_STATE "remember-numlock-state"
+ #define KEY_NUMLOCK_STATE  "numlock-state"
+ 
+ #define KEY_BELL_VOLUME    "bell-volume"
+@@ -67,27 +71,560 @@
+ #define KEY_BELL_DURATION  "bell-duration"
+ #define KEY_BELL_MODE      "bell-mode"
+ 
+-#define LIBGNOMEKBD_KEYBOARD_DIR "org.gnome.libgnomekbd.keyboard"
+-#define LIBGNOMEKBD_KEY_LAYOUTS  "layouts"
++#define KEY_SWITCHER "input-sources-switcher"
++
++#define GNOME_DESKTOP_INTERFACE_DIR "org.cinnamon.desktop.interface"
++
++#define KEY_GTK_IM_MODULE    "gtk-im-module"
++#define GTK_IM_MODULE_SIMPLE "gtk-im-context-simple"
++#define GTK_IM_MODULE_IBUS   "ibus"
++
++#define GNOME_DESKTOP_INPUT_SOURCES_DIR "org.cinnamon.desktop.input-sources"
++
++#define KEY_CURRENT_INPUT_SOURCE "current"
++#define KEY_INPUT_SOURCES        "sources"
++#define KEY_KEYBOARD_OPTIONS     "xkb-options"
++
++#define INPUT_SOURCE_TYPE_XKB  "xkb"
++#define INPUT_SOURCE_TYPE_IBUS "ibus"
++
++#define DEFAULT_LANGUAGE "en_US"
+ 
+ struct CsdKeyboardManagerPrivate
+ {
+ 	guint      start_idle_id;
+         GSettings *settings;
+-        GSettings *libgnomekbd_settings;
+-        gboolean   have_xkb;
++        GSettings *input_sources_settings;
++        GSettings *interface_settings;
++        GnomeXkbInfo *xkb_info;
++#ifdef HAVE_IBUS
++        IBusBus   *ibus;
++        GHashTable *ibus_engines;
++        GHashTable *ibus_xkb_engines;
++        GCancellable *ibus_cancellable;
++        gboolean session_is_fallback;
++#endif
+         gint       xkb_event_base;
+         CsdNumLockState old_state;
++        GdkDeviceManager *device_manager;
++        guint device_added_id;
++        guint device_removed_id;
++
++        gboolean input_sources_switcher_spawned;
++        GPid input_sources_switcher_pid;
+ };
+ 
+ static void     csd_keyboard_manager_class_init  (CsdKeyboardManagerClass *klass);
+ static void     csd_keyboard_manager_init        (CsdKeyboardManager      *keyboard_manager);
+ static void     csd_keyboard_manager_finalize    (GObject                 *object);
++static gboolean apply_input_sources_settings     (GSettings               *settings,
++                                                  gpointer                 keys,
++                                                  gint                     n_keys,
++                                                  CsdKeyboardManager      *manager);
++static void     set_gtk_im_module                (CsdKeyboardManager      *manager,
++                                                  const gchar             *new_module);
+ 
+ G_DEFINE_TYPE (CsdKeyboardManager, csd_keyboard_manager, G_TYPE_OBJECT)
+ 
+ static gpointer manager_object = NULL;
+ 
++static void
++init_builder_with_sources (GVariantBuilder *builder,
++                           GSettings       *settings)
++{
++        const gchar *type;
++        const gchar *id;
++        GVariantIter iter;
++        GVariant *sources;
++
++        sources = g_settings_get_value (settings, KEY_INPUT_SOURCES);
++
++        g_variant_builder_init (builder, G_VARIANT_TYPE ("a(ss)"));
++
++        g_variant_iter_init (&iter, sources);
++        while (g_variant_iter_next (&iter, "(&s&s)", &type, &id))
++                g_variant_builder_add (builder, "(ss)", type, id);
++
++        g_variant_unref (sources);
++}
++
++static gboolean
++schema_is_installed (const gchar *name)
++{
++        const gchar * const *schemas;
++        const gchar * const *s;
++
++        schemas = g_settings_list_schemas ();
++        for (s = schemas; *s; ++s)
++                if (g_str_equal (*s, name))
++                        return TRUE;
++
++        return FALSE;
++}
++
++#ifdef HAVE_IBUS
++static void
++clear_ibus (CsdKeyboardManager *manager)
++{
++        CsdKeyboardManagerPrivate *priv = manager->priv;
++
++        g_cancellable_cancel (priv->ibus_cancellable);
++        g_clear_object (&priv->ibus_cancellable);
++        g_clear_pointer (&priv->ibus_engines, g_hash_table_destroy);
++        g_clear_pointer (&priv->ibus_xkb_engines, g_hash_table_destroy);
++        g_clear_object (&priv->ibus);
++}
++
++static gchar *
++make_xkb_source_id (const gchar *engine_id)
++{
++        gchar *id;
++        gchar *p;
++        gint n_colons = 0;
++
++        /* engine_id is like "xkb:layout:variant:lang" where
++         * 'variant' and 'lang' might be empty */
++
++        engine_id += 4;
++
++        for (p = (gchar *)engine_id; *p; ++p)
++                if (*p == ':')
++                        if (++n_colons == 2)
++                                break;
++        if (!*p)
++                return NULL;
++
++        id = g_strndup (engine_id, p - engine_id + 1);
++
++        id[p - engine_id] = '\0';
++
++        /* id is "layout:variant" where 'variant' might be empty */
++
++        for (p = id; *p; ++p)
++                if (*p == ':') {
++                        if (*(p + 1) == '\0')
++                                *p = '\0';
++                        else
++                                *p = '+';
++                        break;
++                }
++
++        /* id is "layout+variant" or "layout" */
++
++        return id;
++}
++
++static void
++fetch_ibus_engines_result (GObject            *object,
++                           GAsyncResult       *result,
++                           CsdKeyboardManager *manager)
++{
++        CsdKeyboardManagerPrivate *priv = manager->priv;
++        GList *list, *l;
++        GError *error = NULL;
++
++        /* engines shouldn't be there yet */
++        g_return_if_fail (priv->ibus_engines == NULL);
++
++        g_clear_object (&priv->ibus_cancellable);
++
++        list = ibus_bus_list_engines_async_finish (priv->ibus,
++                                                   result,
++                                                   &error);
++        if (!list && error) {
++                if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
++                        g_warning ("Couldn't finish IBus request: %s", error->message);
++                g_error_free (error);
++
++                clear_ibus (manager);
++                return;
++        }
++
++        /* Maps IBus engine ids to engine description objects */
++        priv->ibus_engines = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_object_unref);
++        /* Maps XKB source id strings to engine description objects */
++        priv->ibus_xkb_engines = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
++
++        for (l = list; l; l = l->next) {
++                IBusEngineDesc *engine = l->data;
++                const gchar *engine_id = ibus_engine_desc_get_name (engine);
++
++                g_hash_table_replace (priv->ibus_engines, (gpointer)engine_id, engine);
++
++                if (strncmp ("xkb:", engine_id, 4) == 0) {
++                        gchar *xkb_source_id = make_xkb_source_id (engine_id);
++                        if (xkb_source_id)
++                                g_hash_table_replace (priv->ibus_xkb_engines,
++                                                      xkb_source_id,
++                                                      engine);
++                }
++        }
++        g_list_free (list);
++
++        apply_input_sources_settings (priv->input_sources_settings, NULL, 0, manager);
++}
++
++static void
++fetch_ibus_engines (CsdKeyboardManager *manager)
++{
++        CsdKeyboardManagerPrivate *priv = manager->priv;
++
++        /* engines shouldn't be there yet */
++        g_return_if_fail (priv->ibus_engines == NULL);
++        g_return_if_fail (priv->ibus_cancellable == NULL);
++
++        priv->ibus_cancellable = g_cancellable_new ();
++
++        ibus_bus_list_engines_async (priv->ibus,
++                                     -1,
++                                     priv->ibus_cancellable,
++                                     (GAsyncReadyCallback)fetch_ibus_engines_result,
++                                     manager);
++}
++
++static void
++maybe_start_ibus (CsdKeyboardManager *manager,
++                  GVariant           *sources)
++{
++        gboolean need_ibus = FALSE;
++        GVariantIter iter;
++        const gchar *type;
++
++        if (manager->priv->session_is_fallback)
++                return;
++
++        g_variant_iter_init (&iter, sources);
++        while (g_variant_iter_next (&iter, "(&s&s)", &type, NULL))
++                if (g_str_equal (type, INPUT_SOURCE_TYPE_IBUS)) {
++                        need_ibus = TRUE;
++                        break;
++                }
++
++        if (!need_ibus)
++                return;
++
++        if (!manager->priv->ibus) {
++                ibus_init ();
++                manager->priv->ibus = ibus_bus_new ();
++                g_signal_connect_swapped (manager->priv->ibus, "connected",
++                                          G_CALLBACK (fetch_ibus_engines), manager);
++                g_signal_connect_swapped (manager->priv->ibus, "disconnected",
++                                          G_CALLBACK (clear_ibus), manager);
++        }
++        /* IBus doesn't export API in the session bus. The only thing
++         * we have there is a well known name which we can use as a
++         * sure-fire way to activate it. */
++        g_bus_unwatch_name (g_bus_watch_name (G_BUS_TYPE_SESSION,
++                                              IBUS_SERVICE_IBUS,
++                                              G_BUS_NAME_WATCHER_FLAGS_AUTO_START,
++                                              NULL,
++                                              NULL,
++                                              NULL,
++                                              NULL));
++}
++
++static void
++got_session_name (GObject            *object,
++                  GAsyncResult       *res,
++                  CsdKeyboardManager *manager)
++{
++        GVariant *result, *variant;
++        GDBusConnection *connection = G_DBUS_CONNECTION (object);
++        CsdKeyboardManagerPrivate *priv = manager->priv;
++        const gchar *session_name = NULL;
++        GError *error = NULL;
++
++        /* IBus shouldn't have been touched yet */
++        g_return_if_fail (priv->ibus == NULL);
++
++        g_clear_object (&priv->ibus_cancellable);
++
++        result = g_dbus_connection_call_finish (connection, res, &error);
++        if (!result) {
++                g_warning ("Couldn't get session name: %s", error->message);
++                g_error_free (error);
++                goto out;
++        }
++
++        g_variant_get (result, "(v)", &variant);
++        g_variant_unref (result);
++
++        g_variant_get (variant, "&s", &session_name);
++
++        if (g_strcmp0 (session_name, "gnome") == 0)
++                manager->priv->session_is_fallback = FALSE;
++
++        g_variant_unref (variant);
++ out:
++        apply_input_sources_settings (manager->priv->input_sources_settings, NULL, 0, manager);
++        g_object_unref (connection);
++}
++
++static void
++got_bus (GObject            *object,
++         GAsyncResult       *res,
++         CsdKeyboardManager *manager)
++{
++        GDBusConnection *connection;
++        CsdKeyboardManagerPrivate *priv = manager->priv;
++        GError *error = NULL;
++
++        /* IBus shouldn't have been touched yet */
++        g_return_if_fail (priv->ibus == NULL);
++
++        g_clear_object (&priv->ibus_cancellable);
++
++        connection = g_bus_get_finish (res, &error);
++        if (!connection) {
++                g_warning ("Couldn't get session bus: %s", error->message);
++                g_error_free (error);
++                apply_input_sources_settings (priv->input_sources_settings, NULL, 0, manager);
++                return;
++        }
++
++        priv->ibus_cancellable = g_cancellable_new ();
++
++        g_dbus_connection_call (connection,
++                                "org.gnome.SessionManager",
++                                "/org/gnome/SessionManager",
++                                "org.freedesktop.DBus.Properties",
++                                "Get",
++                                g_variant_new ("(ss)",
++                                               "org.gnome.SessionManager",
++                                               "SessionName"),
++                                NULL,
++                                G_DBUS_CALL_FLAGS_NONE,
++                                -1,
++                                priv->ibus_cancellable,
++                                (GAsyncReadyCallback)got_session_name,
++                                manager);
++}
++
++static void
++set_ibus_engine_finish (GObject            *object,
++                        GAsyncResult       *res,
++                        CsdKeyboardManager *manager)
++{
++        gboolean result;
++        IBusBus *ibus = IBUS_BUS (object);
++        CsdKeyboardManagerPrivate *priv = manager->priv;
++        GError *error = NULL;
++
++        g_clear_object (&priv->ibus_cancellable);
++
++        result = ibus_bus_set_global_engine_async_finish (ibus, res, &error);
++        if (!result) {
++                if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
++                        g_warning ("Couldn't set IBus engine: %s", error->message);
++                g_error_free (error);
++        }
++}
++
++static void
++set_ibus_engine (CsdKeyboardManager *manager,
++                 const gchar        *engine_id)
++{
++        CsdKeyboardManagerPrivate *priv = manager->priv;
++
++        g_return_if_fail (priv->ibus != NULL);
++        g_return_if_fail (priv->ibus_engines != NULL);
++
++        g_cancellable_cancel (priv->ibus_cancellable);
++        g_clear_object (&priv->ibus_cancellable);
++        priv->ibus_cancellable = g_cancellable_new ();
++
++        ibus_bus_set_global_engine_async (priv->ibus,
++                                          engine_id,
++                                          -1,
++                                          priv->ibus_cancellable,
++                                          (GAsyncReadyCallback)set_ibus_engine_finish,
++                                          manager);
++}
++
++static void
++set_ibus_xkb_engine (CsdKeyboardManager *manager,
++                     const gchar        *xkb_id)
++{
++        IBusEngineDesc *engine;
++        CsdKeyboardManagerPrivate *priv = manager->priv;
++
++        if (!priv->ibus_xkb_engines)
++                return;
++
++        engine = g_hash_table_lookup (priv->ibus_xkb_engines, xkb_id);
++        if (!engine)
++                return;
++
++        set_ibus_engine (manager, ibus_engine_desc_get_name (engine));
++}
++
++/* XXX: See upstream bug:
++ * https://codereview.appspot.com/6586075/ */
++static gchar *
++layout_from_ibus_layout (const gchar *ibus_layout)
++{
++        const gchar *p;
++
++        /* we get something like "layout(variant)[option1,option2]" */
++
++        p = ibus_layout;
++        while (*p) {
++                if (*p == '(' || *p == '[')
++                        break;
++                p += 1;
++        }
++
++        return g_strndup (ibus_layout, p - ibus_layout);
++}
++
++static gchar *
++variant_from_ibus_layout (const gchar *ibus_layout)
++{
++        const gchar *a, *b;
++
++        /* we get something like "layout(variant)[option1,option2]" */
++
++        a = ibus_layout;
++        while (*a) {
++                if (*a == '(')
++                        break;
++                a += 1;
++        }
++        if (!*a)
++                return NULL;
++
++        a += 1;
++        b = a;
++        while (*b) {
++                if (*b == ')')
++                        break;
++                b += 1;
++        }
++        if (!*b)
++                return NULL;
++
++        return g_strndup (a, b - a);
++}
++
++static gchar **
++options_from_ibus_layout (const gchar *ibus_layout)
++{
++        const gchar *a, *b;
++        GPtrArray *opt_array;
++
++        /* we get something like "layout(variant)[option1,option2]" */
++
++        a = ibus_layout;
++        while (*a) {
++                if (*a == '[')
++                        break;
++                a += 1;
++        }
++        if (!*a)
++                return NULL;
++
++        opt_array = g_ptr_array_new ();
++
++        do {
++                a += 1;
++                b = a;
++                while (*b) {
++                        if (*b == ',' || *b == ']')
++                                break;
++                        b += 1;
++                }
++                if (!*b)
++                        goto out;
++
++                g_ptr_array_add (opt_array, g_strndup (a, b - a));
++
++                a = b;
++        } while (*a && *a == ',');
++
++out:
++        g_ptr_array_add (opt_array, NULL);
++        return (gchar **) g_ptr_array_free (opt_array, FALSE);
++}
++
++static const gchar *
++engine_from_locale (void)
++{
++        const gchar *locale;
++        const gchar *locale_engine[][2] = {
++                { "as_IN", "m17n:as:phonetic" },
++                { "bn_IN", "m17n:bn:inscript" },
++                { "gu_IN", "m17n:gu:inscript" },
++                { "hi_IN", "m17n:hi:inscript" },
++                { "ja_JP", "anthy" },
++                { "kn_IN", "m17n:kn:kgp" },
++                { "ko_KR", "hangul" },
++                { "mai_IN", "m17n:mai:inscript" },
++                { "ml_IN", "m17n:ml:inscript" },
++                { "mr_IN", "m17n:mr:inscript" },
++                { "or_IN", "m17n:or:inscript" },
++                { "pa_IN", "m17n:pa:inscript" },
++                { "sd_IN", "m17n:sd:inscript" },
++                { "ta_IN", "m17n:ta:tamil99" },
++                { "te_IN", "m17n:te:inscript" },
++                { "zh_CN", "pinyin" },
++                { "zh_HK", "cangjie3" },
++                { "zh_TW", "chewing" },
++        };
++        gint i;
++
++        locale = setlocale (LC_CTYPE, NULL);
++        if (!locale)
++                return NULL;
++
++        for (i = 0; i < G_N_ELEMENTS (locale_engine); ++i)
++                if (g_str_has_prefix (locale, locale_engine[i][0]))
++                        return locale_engine[i][1];
++
++        return NULL;
++}
++
++static void
++add_ibus_sources_from_locale (GSettings *settings)
++{
++        const gchar *locale_engine;
++        GVariantBuilder builder;
++
++        locale_engine = engine_from_locale ();
++        if (!locale_engine)
++                return;
++
++        init_builder_with_sources (&builder, settings);
++        g_variant_builder_add (&builder, "(ss)", INPUT_SOURCE_TYPE_IBUS, locale_engine);
++        g_settings_set_value (settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder));
++}
++
++static void
++convert_ibus (GSettings *settings)
++{
++        GVariantBuilder builder;
++        GSettings *ibus_settings;
++        gchar **engines, **e;
++
++        if (!schema_is_installed ("org.freedesktop.ibus.general"))
++                return;
++
++        init_builder_with_sources (&builder, settings);
++
++        ibus_settings = g_settings_new ("org.freedesktop.ibus.general");
++        engines = g_settings_get_strv (ibus_settings, "preload-engines");
++        for (e = engines; *e; ++e) {
++                if (g_str_has_prefix (*e, "xkb:"))
++                        continue;
++                g_variant_builder_add (&builder, "(ss)", INPUT_SOURCE_TYPE_IBUS, *e);
++        }
++
++        g_settings_set_value (settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder));
++
++        g_strfreev (engines);
++        g_object_unref (ibus_settings);
++}
++#endif  /* HAVE_IBUS */
++
+ static gboolean
+ xkb_set_keyboard_autorepeat_rate (guint delay, guint interval)
+ {
+@@ -97,32 +634,33 @@ xkb_set_keyboard_autorepeat_rate (guint
+                                      interval);
+ }
+ 
+-static void
+-numlock_xkb_init (CsdKeyboardManager *manager)
++static gboolean
++check_xkb_extension (CsdKeyboardManager *manager)
+ {
+         Display *dpy = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+-        gboolean have_xkb;
+         int opcode, error_base, major, minor;
++        gboolean have_xkb;
+ 
+         have_xkb = XkbQueryExtension (dpy,
+                                       &opcode,
+                                       &manager->priv->xkb_event_base,
+                                       &error_base,
+                                       &major,
+-                                      &minor)
+-                && XkbUseExtension (dpy, &major, &minor);
++                                      &minor);
++        return have_xkb;
++}
+ 
+-        if (have_xkb) {
+-                XkbSelectEventDetails (dpy,
+-                                       XkbUseCoreKbd,
+-                                       XkbStateNotifyMask,
+-                                       XkbModifierLockMask,
+-                                       XkbModifierLockMask);
+-        } else {
+-                g_warning ("XKB extension not available");
+-        }
++static void
++xkb_init (CsdKeyboardManager *manager)
++{
++        Display *dpy;
+ 
+-        manager->priv->have_xkb = have_xkb;
++        dpy = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
++        XkbSelectEventDetails (dpy,
++                               XkbUseCoreKbd,
++                               XkbStateNotify,
++                               XkbModifierLockMask,
++                               XkbModifierLockMask);
+ }
+ 
+ static unsigned
+@@ -143,19 +681,32 @@ numlock_set_xkb_state (CsdNumLockState n
+         XkbLockModifiers (dpy, XkbUseCoreKbd, num_mask, new_state == CSD_NUM_LOCK_STATE_ON ? num_mask : 0);
+ }
+ 
++static const char *
++num_lock_state_to_string (CsdNumLockState numlock_state)
++{
++	switch (numlock_state) {
++	case CSD_NUM_LOCK_STATE_UNKNOWN:
++		return "CSD_NUM_LOCK_STATE_UNKNOWN";
++	case CSD_NUM_LOCK_STATE_ON:
++		return "CSD_NUM_LOCK_STATE_ON";
++	case CSD_NUM_LOCK_STATE_OFF:
++		return "CSD_NUM_LOCK_STATE_OFF";
++	default:
++		return "UNKNOWN";
++	}
++}
++
+ static GdkFilterReturn
+-numlock_xkb_callback (GdkXEvent *xev_,
+-                      GdkEvent  *gdkev_,
+-                      gpointer   user_data)
++xkb_events_filter (GdkXEvent *xev_,
++		   GdkEvent  *gdkev_,
++		   gpointer   user_data)
+ {
+         XEvent *xev = (XEvent *) xev_;
+ 	XkbEvent *xkbev = (XkbEvent *) xev;
+         CsdKeyboardManager *manager = (CsdKeyboardManager *) user_data;
+ 
+-        if (xev->type != manager->priv->xkb_event_base)
+-		return GDK_FILTER_CONTINUE;
+-
+-	if (xkbev->any.xkb_type != XkbStateNotify)
++        if (xev->type != manager->priv->xkb_event_base ||
++            xkbev->any.xkb_type != XkbStateNotify)
+ 		return GDK_FILTER_CONTINUE;
+ 
+ 	if (xkbev->state.changed & XkbModifierLockMask) {
+@@ -166,6 +717,9 @@ numlock_xkb_callback (GdkXEvent *xev_,
+ 		numlock_state = (num_mask & locked_mods) ? CSD_NUM_LOCK_STATE_ON : CSD_NUM_LOCK_STATE_OFF;
+ 
+ 		if (numlock_state != manager->priv->old_state) {
++			g_debug ("New num-lock state '%s' != Old num-lock state '%s'",
++				 num_lock_state_to_string (numlock_state),
++				 num_lock_state_to_string (manager->priv->old_state));
+ 			g_settings_set_enum (manager->priv->settings,
+ 					     KEY_NUMLOCK_STATE,
+ 					     numlock_state);
+@@ -177,57 +731,509 @@ numlock_xkb_callback (GdkXEvent *xev_,
+ }
+ 
+ static void
+-numlock_install_xkb_callback (CsdKeyboardManager *manager)
++install_xkb_filter (CsdKeyboardManager *manager)
+ {
+-        if (!manager->priv->have_xkb)
+-                return;
+-
+         gdk_window_add_filter (NULL,
+-                               numlock_xkb_callback,
++                               xkb_events_filter,
+                                manager);
+ }
+ 
+-static guint
+-_csd_settings_get_uint (GSettings  *settings,
+-			const char *key)
++static void
++remove_xkb_filter (CsdKeyboardManager *manager)
+ {
+-	guint value;
++        gdk_window_remove_filter (NULL,
++                                  xkb_events_filter,
++                                  manager);
++}
+ 
+-	g_settings_get (settings, key, "u", &value);
+-	return value;
++static void
++free_xkb_component_names (XkbComponentNamesRec *p)
++{
++        g_return_if_fail (p != NULL);
++
++        free (p->keymap);
++        free (p->keycodes);
++        free (p->types);
++        free (p->compat);
++        free (p->symbols);
++        free (p->geometry);
++
++        g_free (p);
++}
++
++static void
++upload_xkb_description (const gchar          *rules_file_path,
++                        XkbRF_VarDefsRec     *var_defs,
++                        XkbComponentNamesRec *comp_names)
++{
++        Display *display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
++        XkbDescRec *xkb_desc;
++        gchar *rules_file;
++
++        /* Upload it to the X server using the same method as setxkbmap */
++        xkb_desc = XkbGetKeyboardByName (display,
++                                         XkbUseCoreKbd,
++                                         comp_names,
++                                         XkbGBN_AllComponentsMask,
++                                         XkbGBN_AllComponentsMask &
++                                         (~XkbGBN_GeometryMask), True);
++        if (!xkb_desc) {
++                g_warning ("Couldn't upload new XKB keyboard description");
++                return;
++        }
++
++        XkbFreeKeyboard (xkb_desc, 0, True);
++
++        rules_file = g_path_get_basename (rules_file_path);
++
++        if (!XkbRF_SetNamesProp (display, rules_file, var_defs))
++                g_warning ("Couldn't update the XKB root window property");
++
++        g_free (rules_file);
++}
++
++static gchar *
++language_code_from_locale (const gchar *locale)
++{
++        if (!locale || !locale[0] || !locale[1])
++                return NULL;
++
++        if (!locale[2] || locale[2] == '_' || locale[2] == '.')
++                return g_strndup (locale, 2);
++
++        if (!locale[3] || locale[3] == '_' || locale[3] == '.')
++                return g_strndup (locale, 3);
++
++        return NULL;
++}
++
++static gchar *
++build_xkb_group_string (const gchar *user,
++                        const gchar *locale,
++                        const gchar *latin)
++{
++        gchar *string;
++        gsize length = 0;
++        guint commas = 2;
++
++        if (latin)
++                length += strlen (latin);
++        else
++                commas -= 1;
++
++        if (locale)
++                length += strlen (locale);
++        else
++                commas -= 1;
++
++        length += strlen (user) + commas + 1;
++
++        string = malloc (length);
++
++        if (locale && latin)
++                sprintf (string, "%s,%s,%s", user, locale, latin);
++        else if (locale)
++                sprintf (string, "%s,%s", user, locale);
++        else if (latin)
++                sprintf (string, "%s,%s", user, latin);
++        else
++                sprintf (string, "%s", user);
++
++        return string;
++}
++
++static gboolean
++layout_equal (const gchar *layout_a,
++              const gchar *variant_a,
++              const gchar *layout_b,
++              const gchar *variant_b)
++{
++        return !g_strcmp0 (layout_a, layout_b) && !g_strcmp0 (variant_a, variant_b);
+ }
+ 
+ static void
+-apply_settings (GSettings          *settings,
+-                const char         *key,
+-                CsdKeyboardManager *manager)
++replace_layout_and_variant (CsdKeyboardManager *manager,
++                            XkbRF_VarDefsRec   *xkb_var_defs,
++                            const gchar        *layout,
++                            const gchar        *variant)
+ {
++        /* Toolkits need to know about both a latin layout to handle
++         * accelerators which are usually defined like Ctrl+C and a
++         * layout with the symbols for the language used in UI strings
++         * to handle mnemonics like Alt+Ф, so we try to find and add
++         * them in XKB group slots after the layout which the user
++         * actually intends to type with. */
++        const gchar *latin_layout = "us";
++        const gchar *latin_variant = "";
++        const gchar *locale_layout = NULL;
++        const gchar *locale_variant = NULL;
++        const gchar *locale;
++        gchar *language;
++
++        if (!layout)
++                return;
++
++        if (!variant)
++                variant = "";
++
++        locale = setlocale (LC_MESSAGES, NULL);
++        /* If LANG is empty, default to en_US */
++        if (!locale)
++                language = g_strdup (DEFAULT_LANGUAGE);
++        else
++                language = language_code_from_locale (locale);
++
++        if (!language)
++                language = language_code_from_locale (DEFAULT_LANGUAGE);
++
++        gnome_xkb_info_get_layout_info_for_language (manager->priv->xkb_info,
++                                                     language,
++                                                     NULL,
++                                                     NULL,
++                                                     NULL,
++                                                     &locale_layout,
++                                                     &locale_variant);
++        g_free (language);
++
++        /* We want to minimize the number of XKB groups if we have
++         * duplicated layout+variant pairs.
++         *
++         * Also, if a layout doesn't have a variant we still have to
++         * include it in the variants string because the number of
++         * variants must agree with the number of layouts. For
++         * instance:
++         *
++         * layouts:  "us,ru,us"
++         * variants: "dvorak,,"
++         */
++        if (layout_equal (latin_layout, latin_variant, locale_layout, locale_variant) ||
++            layout_equal (latin_layout, latin_variant, layout, variant)) {
++                latin_layout = NULL;
++                latin_variant = NULL;
++        }
++
++        if (layout_equal (locale_layout, locale_variant, layout, variant)) {
++                locale_layout = NULL;
++                locale_variant = NULL;
++        }
++
++        free (xkb_var_defs->layout);
++        xkb_var_defs->layout = build_xkb_group_string (layout, locale_layout, latin_layout);
++
++        free (xkb_var_defs->variant);
++        xkb_var_defs->variant = build_xkb_group_string (variant, locale_variant, latin_variant);
++}
++
++static gchar *
++build_xkb_options_string (gchar **options)
++{
++        gchar *string;
++
++        if (*options) {
++                gint i;
++                gsize len;
++                gchar *ptr;
++
++                /* First part, getting length */
++                len = 1 + strlen (options[0]);
++                for (i = 1; options[i] != NULL; i++)
++                        len += strlen (options[i]);
++                len += (i - 1); /* commas */
++
++                /* Second part, building string */
++                string = malloc (len);
++                ptr = g_stpcpy (string, *options);
++                for (i = 1; options[i] != NULL; i++) {
++                        ptr = g_stpcpy (ptr, ",");
++                        ptr = g_stpcpy (ptr, options[i]);
++                }
++        } else {
++                string = malloc (1);
++                *string = '\0';
++        }
++
++        return string;
++}
++
++static gchar **
++append_options (gchar **a,
++                gchar **b)
++{
++        gchar **c, **p;
++
++        if (!a && !b)
++                return NULL;
++        else if (!a)
++                return g_strdupv (b);
++        else if (!b)
++                return g_strdupv (a);
++
++        c = g_new0 (gchar *, g_strv_length (a) + g_strv_length (b) + 1);
++        p = c;
++
++        while (*a) {
++                *p = g_strdup (*a);
++                p += 1;
++                a += 1;
++        }
++        while (*b) {
++                *p = g_strdup (*b);
++                p += 1;
++                b += 1;
++        }
++
++        return c;
++}
++
++static void
++add_xkb_options (CsdKeyboardManager *manager,
++                 XkbRF_VarDefsRec   *xkb_var_defs,
++                 gchar             **extra_options)
++{
++        gchar **options;
++        gchar **settings_options;
++
++        settings_options = g_settings_get_strv (manager->priv->input_sources_settings,
++                                                KEY_KEYBOARD_OPTIONS);
++        options = append_options (settings_options, extra_options);
++        g_strfreev (settings_options);
++
++        free (xkb_var_defs->options);
++        xkb_var_defs->options = build_xkb_options_string (options);
++
++        g_strfreev (options);
++}
++
++static void
++apply_xkb_settings (CsdKeyboardManager *manager,
++                    const gchar        *layout,
++                    const gchar        *variant,
++                    gchar             **options)
++{
++        XkbRF_RulesRec *xkb_rules;
++        XkbRF_VarDefsRec *xkb_var_defs;
++        gchar *rules_file_path;
++
++        gnome_xkb_info_get_var_defs (&rules_file_path, &xkb_var_defs);
++
++        add_xkb_options (manager, xkb_var_defs, options);
++        replace_layout_and_variant (manager, xkb_var_defs, layout, variant);
++
++        gdk_error_trap_push ();
++
++        xkb_rules = XkbRF_Load (rules_file_path, NULL, True, True);
++        if (xkb_rules) {
++                XkbComponentNamesRec *xkb_comp_names;
++                xkb_comp_names = g_new0 (XkbComponentNamesRec, 1);
++
++                XkbRF_GetComponents (xkb_rules, xkb_var_defs, xkb_comp_names);
++                upload_xkb_description (rules_file_path, xkb_var_defs, xkb_comp_names);
++
++                free_xkb_component_names (xkb_comp_names);
++                XkbRF_Free (xkb_rules, True);
++        } else {
++                g_warning ("Couldn't load XKB rules");
++        }
++
++        if (gdk_error_trap_pop ())
++                g_warning ("Error loading XKB rules");
++
++        gnome_xkb_info_free_var_defs (xkb_var_defs);
++        g_free (rules_file_path);
++}
++
++static void
++set_gtk_im_module (CsdKeyboardManager *manager,
++                   const gchar        *new_module)
++{
++        CsdKeyboardManagerPrivate *priv = manager->priv;
++        gchar *current_module;
++
++        current_module = g_settings_get_string (priv->interface_settings,
++                                                KEY_GTK_IM_MODULE);
++        if (!g_str_equal (current_module, new_module))
++                g_settings_set_string (priv->interface_settings,
++                                       KEY_GTK_IM_MODULE,
++                                       new_module);
++        g_free (current_module);
++}
++
++static gboolean
++apply_input_sources_settings (GSettings          *settings,
++                              gpointer            keys,
++                              gint                n_keys,
++                              CsdKeyboardManager *manager)
++{
++        CsdKeyboardManagerPrivate *priv = manager->priv;
++        GVariant *sources;
++        guint current;
++        guint n_sources;
++        const gchar *type = NULL;
++        const gchar *id = NULL;
++        gchar *layout = NULL;
++        gchar *variant = NULL;
++        gchar **options = NULL;
++
++        sources = g_settings_get_value (priv->input_sources_settings, KEY_INPUT_SOURCES);
++        current = g_settings_get_uint (priv->input_sources_settings, KEY_CURRENT_INPUT_SOURCE);
++        n_sources = g_variant_n_children (sources);
++
++        if (n_sources < 1)
++                goto exit;
++
++        if (current >= n_sources) {
++                g_settings_set_uint (priv->input_sources_settings,
++                                     KEY_CURRENT_INPUT_SOURCE,
++                                     n_sources - 1);
++                goto exit;
++        }
++
++#ifdef HAVE_IBUS
++        maybe_start_ibus (manager, sources);
++#endif
++
++        g_variant_get_child (sources, current, "(&s&s)", &type, &id);
++
++        if (g_str_equal (type, INPUT_SOURCE_TYPE_XKB)) {
++                const gchar *l, *v;
++                gnome_xkb_info_get_layout_info (priv->xkb_info, id, NULL, NULL, &l, &v);
++
++                layout = g_strdup (l);
++                variant = g_strdup (v);
++
++                if (!layout || !layout[0]) {
++                        g_warning ("Couldn't find XKB input source '%s'", id);
++                        goto exit;
++                }
++                set_gtk_im_module (manager, GTK_IM_MODULE_SIMPLE);
++#ifdef HAVE_IBUS
++                set_ibus_xkb_engine (manager, id);
++#endif
++        } else if (g_str_equal (type, INPUT_SOURCE_TYPE_IBUS)) {
++#ifdef HAVE_IBUS
++                IBusEngineDesc *engine_desc = NULL;
++
++                if (priv->session_is_fallback)
++                        goto exit;
++
++                if (priv->ibus_engines)
++                        engine_desc = g_hash_table_lookup (priv->ibus_engines, id);
++                else
++                        goto exit; /* we'll be called again when ibus is up and running */
++
++                if (engine_desc) {
++                        const gchar *ibus_layout;
++                        ibus_layout = ibus_engine_desc_get_layout (engine_desc);
++
++                        if (ibus_layout) {
++                                layout = layout_from_ibus_layout (ibus_layout);
++                                variant = variant_from_ibus_layout (ibus_layout);
++                                options = options_from_ibus_layout (ibus_layout);
++                        }
++                } else {
++                        g_warning ("Couldn't find IBus input source '%s'", id);
++                        goto exit;
++                }
++
++                set_gtk_im_module (manager, GTK_IM_MODULE_IBUS);
++                set_ibus_engine (manager, id);
++#else
++                g_warning ("IBus input source type specified but IBus support was not compiled");
++#endif
++        } else {
++                g_warning ("Unknown input source type '%s'", type);
++        }
++
++ exit:
++        apply_xkb_settings (manager, layout, variant, options);
++        g_variant_unref (sources);
++        g_free (layout);
++        g_free (variant);
++        g_strfreev (options);
++        /* Prevent individual "changed" signal invocations since we
++           don't need them. */
++        return TRUE;
++}
++
++static void
++apply_bell (CsdKeyboardManager *manager)
++{
++	GSettings       *settings;
+         XKeyboardControl kbdcontrol;
+-        gboolean         repeat;
+         gboolean         click;
+-        guint            interval;
+-        guint            delay;
+-        int              click_volume;
+         int              bell_volume;
+         int              bell_pitch;
+         int              bell_duration;
+         CsdBellMode      bell_mode;
+-        gboolean         rnumlock;
+-
+-        if (g_strcmp0 (key, KEY_NUMLOCK_STATE) == 0)
+-                return;
++        int              click_volume;
+ 
+-        repeat        = g_settings_get_boolean  (settings, KEY_REPEAT);
++        g_debug ("Applying the bell settings");
++        settings      = manager->priv->settings;
+         click         = g_settings_get_boolean  (settings, KEY_CLICK);
+-        interval      = _csd_settings_get_uint  (settings, KEY_INTERVAL);
+-        delay         = _csd_settings_get_uint  (settings, KEY_DELAY);
+         click_volume  = g_settings_get_int   (settings, KEY_CLICK_VOLUME);
++
+         bell_pitch    = g_settings_get_int   (settings, KEY_BELL_PITCH);
+         bell_duration = g_settings_get_int   (settings, KEY_BELL_DURATION);
+ 
+         bell_mode = g_settings_get_enum (settings, KEY_BELL_MODE);
+         bell_volume   = (bell_mode == CSD_BELL_MODE_ON) ? 50 : 0;
+ 
++        /* as percentage from 0..100 inclusive */
++        if (click_volume < 0) {
++                click_volume = 0;
++        } else if (click_volume > 100) {
++                click_volume = 100;
++        }
++        kbdcontrol.key_click_percent = click ? click_volume : 0;
++        kbdcontrol.bell_percent = bell_volume;
++        kbdcontrol.bell_pitch = bell_pitch;
++        kbdcontrol.bell_duration = bell_duration;
++
++        gdk_error_trap_push ();
++        XChangeKeyboardControl (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
++                                KBKeyClickPercent | KBBellPercent | KBBellPitch | KBBellDuration,
++                                &kbdcontrol);
++
++        XSync (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE);
++        gdk_error_trap_pop_ignored ();
++}
++
++static void
++apply_numlock (CsdKeyboardManager *manager)
++{
++	GSettings *settings;
++        gboolean rnumlock;
++
++        g_debug ("Applying the num-lock settings");
++        settings = manager->priv->settings;
++        rnumlock = g_settings_get_boolean  (settings, KEY_REMEMBER_NUMLOCK_STATE);
++        manager->priv->old_state = g_settings_get_enum (manager->priv->settings, KEY_NUMLOCK_STATE);
++
++        gdk_error_trap_push ();
++        if (rnumlock) {
++                g_debug ("Remember num-lock is set, so applying setting '%s'",
++                         num_lock_state_to_string (manager->priv->old_state));
++                numlock_set_xkb_state (manager->priv->old_state);
++        }
++
++        XSync (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE);
++        gdk_error_trap_pop_ignored ();
++}
++
++static void
++apply_repeat (CsdKeyboardManager *manager)
++{
++	GSettings       *settings;
++        gboolean         repeat;
++        guint            interval;
++        guint            delay;
++
++        g_debug ("Applying the repeat settings");
++        settings      = manager->priv->settings;
++        repeat        = g_settings_get_boolean  (settings, KEY_REPEAT);
++        interval      = g_settings_get_uint  (settings, KEY_INTERVAL);
++        delay         = g_settings_get_uint  (settings, KEY_DELAY);
++
+         gdk_error_trap_push ();
+         if (repeat) {
+                 gboolean rate_set = FALSE;
+@@ -243,124 +1249,319 @@ apply_settings (GSettings          *sett
+                 XAutoRepeatOff (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
+         }
+ 
+-        /* as percentage from 0..100 inclusive */
+-        if (click_volume < 0) {
+-                click_volume = 0;
+-        } else if (click_volume > 100) {
+-                click_volume = 100;
++        XSync (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE);
++        gdk_error_trap_pop_ignored ();
++}
++
++static void
++apply_all_settings (CsdKeyboardManager *manager)
++{
++	apply_repeat (manager);
++	apply_bell (manager);
++	apply_numlock (manager);
++}
++
++static void
++set_input_sources_switcher (CsdKeyboardManager *manager,
++                            gboolean            state)
++{
++        if (state) {
++                GError *error = NULL;
++                char *args[2];
++
++                if (manager->priv->input_sources_switcher_spawned)
++                        set_input_sources_switcher (manager, FALSE);
++
++                args[0] = LIBEXECDIR "/csd-input-sources-switcher";
++                args[1] = NULL;
++
++                g_spawn_async (NULL, args, NULL,
++                               0, NULL, NULL,
++                               &manager->priv->input_sources_switcher_pid, &error);
++
++                manager->priv->input_sources_switcher_spawned = (error == NULL);
++
++                if (error) {
++                        g_warning ("Couldn't spawn %s: %s", args[0], error->message);
++                        g_error_free (error);
++                }
++        } else if (manager->priv->input_sources_switcher_spawned) {
++                kill (manager->priv->input_sources_switcher_pid, SIGHUP);
++                g_spawn_close_pid (manager->priv->input_sources_switcher_pid);
++                manager->priv->input_sources_switcher_spawned = FALSE;
+         }
+-        kbdcontrol.key_click_percent = click ? click_volume : 0;
+-        kbdcontrol.bell_percent = bell_volume;
+-        kbdcontrol.bell_pitch = bell_pitch;
+-        kbdcontrol.bell_duration = bell_duration;
+-        XChangeKeyboardControl (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
+-                                KBKeyClickPercent | KBBellPercent | KBBellPitch | KBBellDuration,
+-                                &kbdcontrol);
++}
+ 
+-	if (g_strcmp0 (key, "remember-numlock-state") == 0 || key == NULL) {
+-		rnumlock      = g_settings_get_boolean  (settings, "remember-numlock-state");
++static gboolean
++enable_switcher (CsdKeyboardManager *manager)
++{
++        CsdInputSourcesSwitcher switcher;
+ 
+-		manager->priv->old_state = g_settings_get_enum (manager->priv->settings, KEY_NUMLOCK_STATE);
++        switcher = g_settings_get_enum (manager->priv->settings, KEY_SWITCHER);
+ 
+-		if (manager->priv->have_xkb && rnumlock)
+-			numlock_set_xkb_state (manager->priv->old_state);
++        return switcher != CSD_INPUT_SOURCES_SWITCHER_OFF;
++}
++
++static void
++settings_changed (GSettings          *settings,
++                  const char         *key,
++                  CsdKeyboardManager *manager)
++{
++	if (g_strcmp0 (key, KEY_CLICK) == 0||
++	    g_strcmp0 (key, KEY_CLICK_VOLUME) == 0 ||
++	    g_strcmp0 (key, KEY_BELL_PITCH) == 0 ||
++	    g_strcmp0 (key, KEY_BELL_DURATION) == 0 ||
++	    g_strcmp0 (key, KEY_BELL_MODE) == 0) {
++		g_debug ("Bell setting '%s' changed, applying bell settings", key);
++		apply_bell (manager);
++	} else if (g_strcmp0 (key, KEY_REMEMBER_NUMLOCK_STATE) == 0) {
++		g_debug ("Remember Num-Lock state '%s' changed, applying num-lock settings", key);
++		apply_numlock (manager);
++	} else if (g_strcmp0 (key, KEY_NUMLOCK_STATE) == 0) {
++		g_debug ("Num-Lock state '%s' changed, will apply at next startup", key);
++	} else if (g_strcmp0 (key, KEY_REPEAT) == 0 ||
++		 g_strcmp0 (key, KEY_INTERVAL) == 0 ||
++		 g_strcmp0 (key, KEY_DELAY) == 0) {
++		g_debug ("Key repeat setting '%s' changed, applying key repeat settings", key);
++		apply_repeat (manager);
++        } else if (g_strcmp0 (key, KEY_SWITCHER) == 0) {
++                set_input_sources_switcher (manager, enable_switcher (manager));
++	} else {
++		g_warning ("Unhandled settings change, key '%s'", key);
+ 	}
+ 
+-        XSync (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), FALSE);
+-        gdk_error_trap_pop_ignored ();
+ }
+ 
+-void
+-csd_keyboard_manager_apply_settings (CsdKeyboardManager *manager)
++static void
++device_added_cb (GdkDeviceManager   *device_manager,
++                 GdkDevice          *device,
++                 CsdKeyboardManager *manager)
+ {
+-        apply_settings (manager->priv->settings, NULL, manager);
++        GdkInputSource source;
++
++        source = gdk_device_get_source (device);
++        if (source == GDK_SOURCE_KEYBOARD) {
++                g_debug ("New keyboard plugged in, applying all settings");
++                apply_all_settings (manager);
++                apply_input_sources_settings (manager->priv->input_sources_settings, NULL, 0, manager);
++                run_custom_command (device, COMMAND_DEVICE_ADDED);
++        }
+ }
+ 
+ static void
+-apply_libgnomekbd_settings (GSettings          *settings,
+-                            const char         *key,
+-                            CsdKeyboardManager *manager)
++device_removed_cb (GdkDeviceManager   *device_manager,
++                   GdkDevice          *device,
++                   CsdKeyboardManager *manager)
+ {
+-        gchar **layouts;
++        GdkInputSource source;
+ 
+-        layouts = g_settings_get_strv  (settings, LIBGNOMEKBD_KEY_LAYOUTS);
++        source = gdk_device_get_source (device);
++        if (source == GDK_SOURCE_KEYBOARD) {
++                run_custom_command (device, COMMAND_DEVICE_REMOVED);
++        }
++}
+ 
+-        /* Get accounts daemon */
+-        GDBusProxy *proxy = NULL;
+-        GDBusProxy *user = NULL;
+-        GVariant *variant = NULL;
+-        GError *error = NULL;
+-        gchar *object_path = NULL;
++static void
++set_devicepresence_handler (CsdKeyboardManager *manager)
++{
++        GdkDeviceManager *device_manager;
+ 
+-        proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
+-                                               G_DBUS_PROXY_FLAGS_NONE,
+-                                               NULL,
+-                                               "org.freedesktop.Accounts",
+-                                               "/org/freedesktop/Accounts",
+-                                               "org.freedesktop.Accounts",
+-                                               NULL,
+-                                               &error);
++        device_manager = gdk_display_get_device_manager (gdk_display_get_default ());
+ 
+-        if (proxy == NULL) {
+-                g_warning ("Failed to contact accounts service: %s", error->message);
+-                g_error_free (error);
+-                goto bail;
++        manager->priv->device_added_id = g_signal_connect (G_OBJECT (device_manager), "device-added",
++                                                           G_CALLBACK (device_added_cb), manager);
++        manager->priv->device_removed_id = g_signal_connect (G_OBJECT (device_manager), "device-removed",
++                                                             G_CALLBACK (device_removed_cb), manager);
++        manager->priv->device_manager = device_manager;
++}
++
++static void
++create_sources_from_current_xkb_config (GSettings *settings)
++{
++        GVariantBuilder builder;
++        XkbRF_VarDefsRec *xkb_var_defs;
++        gchar *tmp;
++        gchar **layouts = NULL;
++        gchar **variants = NULL;
++        guint i, n;
++
++        gnome_xkb_info_get_var_defs (&tmp, &xkb_var_defs);
++        g_free (tmp);
++
++        if (xkb_var_defs->layout)
++                layouts = g_strsplit (xkb_var_defs->layout, ",", 0);
++        if (xkb_var_defs->variant)
++                variants = g_strsplit (xkb_var_defs->variant, ",", 0);
++
++        gnome_xkb_info_free_var_defs (xkb_var_defs);
++
++        if (!layouts)
++                goto out;
++
++        if (variants && variants[0])
++                n = MIN (g_strv_length (layouts), g_strv_length (variants));
++        else
++                n = g_strv_length (layouts);
++
++        g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ss)"));
++        for (i = 0; i < n && layouts[i][0]; ++i) {
++                if (variants && variants[i] && variants[i][0])
++                        tmp = g_strdup_printf ("%s+%s", layouts[i], variants[i]);
++                else
++                        tmp = g_strdup (layouts[i]);
++
++                g_variant_builder_add (&builder, "(ss)", INPUT_SOURCE_TYPE_XKB, tmp);
++                g_free (tmp);
+         }
++        g_settings_set_value (settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder));
++out:
++        g_strfreev (layouts);
++        g_strfreev (variants);
++}
+ 
+-        variant = g_dbus_proxy_call_sync (proxy,
+-                                          "FindUserByName",
+-                                          g_variant_new ("(s)", g_get_user_name ()),
+-                                          G_DBUS_CALL_FLAGS_NONE,
+-                                          -1,
+-                                          NULL,
+-                                          &error);
++static void
++convert_libgnomekbd_options (GSettings *settings)
++{
++        GPtrArray *opt_array;
++        GSettings *libgnomekbd_settings;
++        gchar **options, **o;
+ 
+-        if (variant == NULL) {
+-                g_warning ("Could not contact accounts service to look up '%s': %s",
+-                           g_get_user_name (), error->message);
+-                g_error_free (error);
+-                goto bail;
++        if (!schema_is_installed ("org.gnome.libgnomekbd.keyboard"))
++                return;
++
++        opt_array = g_ptr_array_new_with_free_func (g_free);
++
++        libgnomekbd_settings = g_settings_new ("org.gnome.libgnomekbd.keyboard");
++        options = g_settings_get_strv (libgnomekbd_settings, "options");
++
++        for (o = options; *o; ++o) {
++                gchar **strv;
++
++                strv = g_strsplit (*o, "\t", 2);
++                if (strv[0] && strv[1]) {
++                        /* We don't want the group switcher because
++                         * it's incompatible with the way we use XKB
++                         * groups. */
++                        if (!g_str_has_prefix (strv[1], "grp:"))
++                                g_ptr_array_add (opt_array, g_strdup (strv[1]));
++                }
++                g_strfreev (strv);
+         }
++        g_ptr_array_add (opt_array, NULL);
+ 
+-        g_variant_get (variant, "(o)", &object_path);
+-        user = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
+-                                              G_DBUS_PROXY_FLAGS_NONE,
+-                                              NULL,
+-                                              "org.freedesktop.Accounts",
+-                                              object_path,
+-                                              "org.freedesktop.Accounts.User",
+-                                              NULL,
+-                                              &error);
+-        g_free (object_path);
++        g_settings_set_strv (settings, KEY_KEYBOARD_OPTIONS, (const gchar * const*) opt_array->pdata);
+ 
+-        if (user == NULL) {
+-                g_warning ("Could not create proxy for user '%s': %s",
+-                           g_variant_get_string (variant, NULL), error->message);
+-                g_error_free (error);
+-                goto bail;
++        g_strfreev (options);
++        g_object_unref (libgnomekbd_settings);
++        g_ptr_array_free (opt_array, TRUE);
++}
++
++static void
++convert_libgnomekbd_layouts (GSettings *settings)
++{
++        GVariantBuilder builder;
++        GSettings *libgnomekbd_settings;
++        gchar **layouts, **l;
++
++        if (!schema_is_installed ("org.gnome.libgnomekbd.keyboard"))
++                return;
++
++        init_builder_with_sources (&builder, settings);
++
++        libgnomekbd_settings = g_settings_new ("org.gnome.libgnomekbd.keyboard");
++        layouts = g_settings_get_strv (libgnomekbd_settings, "layouts");
++
++        for (l = layouts; *l; ++l) {
++                gchar *id;
++                gchar **strv;
++
++                strv = g_strsplit (*l, "\t", 2);
++                if (strv[0] && !strv[1])
++                        id = g_strdup (strv[0]);
++                else if (strv[0] && strv[1])
++                        id = g_strdup_printf ("%s+%s", strv[0], strv[1]);
++                else
++                        id = NULL;
++
++                if (id)
++                        g_variant_builder_add (&builder, "(ss)", INPUT_SOURCE_TYPE_XKB, id);
++
++                g_free (id);
++                g_strfreev (strv);
+         }
+-        g_variant_unref (variant);
+ 
+-        variant = g_dbus_proxy_call_sync (user,
+-                                          "SetXKeyboardLayouts",
+-                                          g_variant_new ("(^as)", layouts),
+-                                          G_DBUS_CALL_FLAGS_NONE,
+-                                          -1,
+-                                          NULL,
+-                                          &error);
++        g_settings_set_value (settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder));
++
++        g_strfreev (layouts);
++        g_object_unref (libgnomekbd_settings);
++}
+ 
+-        if (variant == NULL) {
+-                g_warning ("Failed to set the keyboard layouts: %s", error->message);
++static void
++maybe_convert_old_settings (GSettings *settings)
++{
++        GVariant *sources;
++        gchar **options;
++        gchar *stamp_dir_path = NULL;
++        gchar *stamp_file_path = NULL;
++        GError *error = NULL;
++
++        stamp_dir_path = g_build_filename (g_get_user_data_dir (), PACKAGE_NAME, NULL);
++        if (g_mkdir_with_parents (stamp_dir_path, 0755)) {
++                g_warning ("Failed to create directory %s: %s", stamp_dir_path, g_strerror (errno));
++                goto out;
++        }
++
++        stamp_file_path = g_build_filename (stamp_dir_path, "input-sources-converted", NULL);
++        if (g_file_test (stamp_file_path, G_FILE_TEST_EXISTS))
++                goto out;
++
++        sources = g_settings_get_value (settings, KEY_INPUT_SOURCES);
++        if (g_variant_n_children (sources) < 1) {
++                convert_libgnomekbd_layouts (settings);
++#ifdef HAVE_IBUS
++                convert_ibus (settings);
++#endif
++        }
++        g_variant_unref (sources);
++
++        options = g_settings_get_strv (settings, KEY_KEYBOARD_OPTIONS);
++        if (g_strv_length (options) < 1)
++                convert_libgnomekbd_options (settings);
++        g_strfreev (options);
++
++        if (!g_file_set_contents (stamp_file_path, "", 0, &error)) {
++                g_warning ("%s", error->message);
+                 g_error_free (error);
+-                goto bail;
+         }
++out:
++        g_free (stamp_file_path);
++        g_free (stamp_dir_path);
++}
+ 
+-bail:
+-        if (proxy != NULL)
+-                g_object_unref (proxy);
+-        if (variant != NULL)
+-                g_variant_unref (variant);
+-        g_strfreev (layouts);
++static void
++maybe_create_input_sources (CsdKeyboardManager *manager)
++{
++        GSettings *settings;
++        GVariant *sources;
++
++        settings = manager->priv->input_sources_settings;
++
++        if (g_getenv ("RUNNING_UNDER_GDM")) {
++                create_sources_from_current_xkb_config (settings);
++                return;
++        }
++
++        maybe_convert_old_settings (settings);
++
++        /* if we still don't have anything do some educated guesses */
++        sources = g_settings_get_value (settings, KEY_INPUT_SOURCES);
++        if (g_variant_n_children (sources) < 1) {
++                create_sources_from_current_xkb_config (settings);
++#ifdef HAVE_IBUS
++                add_ibus_sources_from_locale (settings);
++#endif
++        }
++        g_variant_unref (sources);
+ }
+ 
+ static gboolean
+@@ -370,26 +1571,41 @@ start_keyboard_idle_cb (CsdKeyboardManag
+ 
+         g_debug ("Starting keyboard manager");
+ 
+-        manager->priv->have_xkb = 0;
+         manager->priv->settings = g_settings_new (CSD_KEYBOARD_DIR);
+-        manager->priv->libgnomekbd_settings = g_settings_new (LIBGNOMEKBD_KEYBOARD_DIR);
+ 
+-        /* Essential - xkb initialization should happen before */
+-        csd_keyboard_xkb_init (manager);
++	xkb_init (manager);
+ 
+-        numlock_xkb_init (manager);
++	set_devicepresence_handler (manager);
+ 
++        manager->priv->input_sources_settings = g_settings_new (GNOME_DESKTOP_INPUT_SOURCES_DIR);
++        manager->priv->interface_settings = g_settings_new (GNOME_DESKTOP_INTERFACE_DIR);
++        manager->priv->xkb_info = gnome_xkb_info_new ();
++
++        maybe_create_input_sources (manager);
++
++#ifdef HAVE_IBUS
++        /* We don't want to touch IBus until we are sure this isn't a
++           fallback session. */
++        manager->priv->session_is_fallback = TRUE;
++        manager->priv->ibus_cancellable = g_cancellable_new ();
++        g_bus_get (G_BUS_TYPE_SESSION,
++                   manager->priv->ibus_cancellable,
++                   (GAsyncReadyCallback)got_bus,
++                   manager);
++#else
++        apply_input_sources_settings (manager->priv->input_sources_settings, NULL, 0, manager);
++#endif
+         /* apply current settings before we install the callback */
+-        csd_keyboard_manager_apply_settings (manager);
++        g_debug ("Started the keyboard plugin, applying all settings");
++        apply_all_settings (manager);
+ 
+         g_signal_connect (G_OBJECT (manager->priv->settings), "changed",
+-                          G_CALLBACK (apply_settings), manager);
+-
+-        apply_libgnomekbd_settings (manager->priv->libgnomekbd_settings, NULL, manager);
+-        g_signal_connect (G_OBJECT (manager->priv->libgnomekbd_settings), "changed",
+-                          G_CALLBACK (apply_libgnomekbd_settings), manager);
++                          G_CALLBACK (settings_changed), manager);
++        g_signal_connect (G_OBJECT (manager->priv->input_sources_settings), "change-event",
++                          G_CALLBACK (apply_input_sources_settings), manager);
+ 
+-        numlock_install_xkb_callback (manager);
++	install_xkb_filter (manager);
++        set_input_sources_switcher (manager, enable_switcher (manager));
+ 
+         cinnamon_settings_profile_end (NULL);
+ 
+@@ -404,6 +1620,11 @@ csd_keyboard_manager_start (CsdKeyboardM
+ {
+         cinnamon_settings_profile_start (NULL);
+ 
++	if (check_xkb_extension (manager) == FALSE) {
++		g_debug ("XKB is not supported, not applying any settings");
++		return TRUE;
++	}
++
+         manager->priv->start_idle_id = g_idle_add ((GSourceFunc) start_keyboard_idle_cb, manager);
+ 
+         cinnamon_settings_profile_end (NULL);
+@@ -418,37 +1639,24 @@ csd_keyboard_manager_stop (CsdKeyboardMa
+ 
+         g_debug ("Stopping keyboard manager");
+ 
+-        if (p->settings != NULL) {
+-                g_object_unref (p->settings);
+-                p->settings = NULL;
+-        }
++        g_clear_object (&p->settings);
++        g_clear_object (&p->input_sources_settings);
++        g_clear_object (&p->interface_settings);
++        g_clear_object (&p->xkb_info);
+ 
+-        if (p->libgnomekbd_settings != NULL) {
+-                g_object_unref (p->libgnomekbd_settings);
+-                p->libgnomekbd_settings = NULL;
+-        }
++#ifdef HAVE_IBUS
++        clear_ibus (manager);
++#endif
+ 
+-        if (p->have_xkb) {
+-                gdk_window_remove_filter (NULL,
+-                                          numlock_xkb_callback,
+-                                          manager);
++        if (p->device_manager != NULL) {
++                g_signal_handler_disconnect (p->device_manager, p->device_added_id);
++                g_signal_handler_disconnect (p->device_manager, p->device_removed_id);
++                p->device_manager = NULL;
+         }
+ 
+-        csd_keyboard_xkb_shutdown ();
+-}
+-
+-static GObject *
+-csd_keyboard_manager_constructor (GType                  type,
+-                                  guint                  n_construct_properties,
+-                                  GObjectConstructParam *construct_properties)
+-{
+-        CsdKeyboardManager      *keyboard_manager;
+-
+-        keyboard_manager = CSD_KEYBOARD_MANAGER (G_OBJECT_CLASS (csd_keyboard_manager_parent_class)->constructor (type,
+-                                                                                                      n_construct_properties,
+-                                                                                                      construct_properties));
++	remove_xkb_filter (manager);
+ 
+-        return G_OBJECT (keyboard_manager);
++        set_input_sources_switcher (manager, FALSE);
+ }
+ 
+ static void
+@@ -456,7 +1664,6 @@ csd_keyboard_manager_class_init (CsdKeyb
+ {
+         GObjectClass   *object_class = G_OBJECT_CLASS (klass);
+ 
+-        object_class->constructor = csd_keyboard_manager_constructor;
+         object_class->finalize = csd_keyboard_manager_finalize;
+ 
+         g_type_class_add_private (klass, sizeof (CsdKeyboardManagerPrivate));
+diff -uNrp a/plugins/keyboard/csd-keyboard-manager.h b/plugins/keyboard/csd-keyboard-manager.h
+--- a/plugins/keyboard/csd-keyboard-manager.h	2013-08-24 18:04:31.000000000 +0100
++++ b/plugins/keyboard/csd-keyboard-manager.h	2013-08-25 16:36:02.000000000 +0100
+@@ -51,7 +51,6 @@ CsdKeyboardManager *       csd_keyboard_
+ gboolean                csd_keyboard_manager_start               (CsdKeyboardManager *manager,
+                                                                GError         **error);
+ void                    csd_keyboard_manager_stop                (CsdKeyboardManager *manager);
+-void                    csd_keyboard_manager_apply_settings      (CsdKeyboardManager *manager);
+ 
+ G_END_DECLS
+ 
+diff -uNrp a/plugins/keyboard/csd-keyboard-plugin.h b/plugins/keyboard/csd-keyboard-plugin.h
+--- a/plugins/keyboard/csd-keyboard-plugin.h	2013-08-24 18:04:31.000000000 +0100
++++ b/plugins/keyboard/csd-keyboard-plugin.h	2013-08-25 16:36:02.000000000 +0100
+@@ -52,7 +52,7 @@ typedef struct
+ GType   csd_keyboard_plugin_get_type            (void) G_GNUC_CONST;
+ 
+ /* All the plugins must implement this function */
+-G_MODULE_EXPORT GType register_cinnamon_settings_plugin (GTypeModule *module);
++G_MODULE_EXPORT GType register_gnome_settings_plugin (GTypeModule *module);
+ 
+ G_END_DECLS
+ 
+diff -uNrp a/plugins/keyboard/csd-keyboard-xkb.c b/plugins/keyboard/csd-keyboard-xkb.c
+--- a/plugins/keyboard/csd-keyboard-xkb.c	2013-08-24 18:04:31.000000000 +0100
++++ b/plugins/keyboard/csd-keyboard-xkb.c	1970-01-01 01:00:00.000000000 +0100
+@@ -1,579 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2001 Udaltsoft
+- *
+- * Written by Sergey V. Oudaltsov <svu@users.sourceforge.net>
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2, or (at your option)
+- * any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA
+- * 02110-1335, USA.
+- */
+-
+-#include "config.h"
+-
+-#include <string.h>
+-#include <time.h>
+-
+-#include <glib/gi18n.h>
+-#include <gdk/gdk.h>
+-#include <gdk/gdkx.h>
+-#include <gtk/gtk.h>
+-
+-#include <libgnomekbd/gkbd-status.h>
+-
+-#include <libgnomekbd/gkbd-keyboard-drawing.h>
+-#include <libgnomekbd/gkbd-desktop-config.h>
+-#include <libgnomekbd/gkbd-indicator-config.h>
+-#include <libgnomekbd/gkbd-keyboard-config.h>
+-#include <libgnomekbd/gkbd-util.h>
+-
+-#include "csd-keyboard-xkb.h"
+-#include "delayed-dialog.h"
+-#include "cinnamon-settings-profile.h"
+-
+-#define SETTINGS_KEYBOARD_DIR "org.cinnamon.settings-daemon.plugins.keyboard"
+-
+-static CsdKeyboardManager *manager = NULL;
+-
+-static XklEngine *xkl_engine;
+-static XklConfigRegistry *xkl_registry = NULL;
+-
+-static GkbdDesktopConfig current_config;
+-static GkbdKeyboardConfig current_kbd_config;
+-
+-/* never terminated */
+-static GkbdKeyboardConfig initial_sys_kbd_config;
+-
+-static gboolean inited_ok = FALSE;
+-
+-static GSettings *settings_desktop = NULL;
+-static GSettings *settings_keyboard = NULL;
+-
+-static PostActivationCallback pa_callback = NULL;
+-static void *pa_callback_user_data = NULL;
+-
+-static GtkStatusIcon *icon = NULL;
+-
+-static GHashTable *preview_dialogs = NULL;
+-
+-static void
+-activation_error (void)
+-{
+-	char const *vendor;
+-	GtkWidget *dialog;
+-
+-	vendor =
+-	    ServerVendor (GDK_DISPLAY_XDISPLAY
+-			  (gdk_display_get_default ()));
+-
+-	/* VNC viewers will not work, do not barrage them with warnings */
+-	if (NULL != vendor && NULL != strstr (vendor, "VNC"))
+-		return;
+-
+-	dialog = gtk_message_dialog_new_with_markup (NULL,
+-						     0,
+-						     GTK_MESSAGE_ERROR,
+-						     GTK_BUTTONS_CLOSE,
+-						     _
+-						     ("Error activating XKB configuration.\n"
+-						      "There can be various reasons for that.\n\n"
+-						      "If you report this situation as a bug, include the results of\n"
+-						      " • <b>%s</b>\n"
+-						      " • <b>%s</b>\n"
+-						      " • <b>%s</b>\n"
+-						      " • <b>%s</b>"),
+-						     "xprop -root | grep XKB",
+-						     "gsettings get org.gnome.libgnomekbd.keyboard model",
+-						     "gsettings get org.gnome.libgnomekbd.keyboard layouts",
+-						     "gsettings get org.gnome.libgnomekbd.keyboard options");
+-	g_signal_connect (dialog, "response",
+-			  G_CALLBACK (gtk_widget_destroy), NULL);
+-	csd_delayed_show_dialog (dialog);
+-}
+-
+-static gboolean
+-ensure_xkl_registry (void)
+-{
+-	if (!xkl_registry) {
+-		xkl_registry =
+-		    xkl_config_registry_get_instance (xkl_engine);
+-		/* load all materials, unconditionally! */
+-		if (!xkl_config_registry_load (xkl_registry, TRUE)) {
+-			g_object_unref (xkl_registry);
+-			xkl_registry = NULL;
+-			return FALSE;
+-		}
+-	}
+-
+-	return TRUE;
+-}
+-
+-static void
+-apply_desktop_settings (void)
+-{
+-	if (!inited_ok)
+-		return;
+-
+-	csd_keyboard_manager_apply_settings (manager);
+-	gkbd_desktop_config_load (&current_config);
+-	/* again, probably it would be nice to compare things
+-	   before activating them */
+-	gkbd_desktop_config_activate (&current_config);
+-}
+-
+-static void
+-popup_menu_launch_capplet ()
+-{
+-	GAppInfo *info;
+-	GdkAppLaunchContext *ctx;
+-	GError *error = NULL;
+-
+-	info =
+-	    g_app_info_create_from_commandline
+-	    ("cinnamon-settings region", NULL, 0, &error);
+-
+-	if (info != NULL) {
+-		ctx =
+-		    gdk_display_get_app_launch_context
+-		    (gdk_display_get_default ());
+-
+-		if (g_app_info_launch (info, NULL,
+-				   G_APP_LAUNCH_CONTEXT (ctx), &error) == FALSE) {
+-			g_warning
+-				("Could not execute keyboard properties capplet: [%s]\n",
+-				 error->message);
+-			g_error_free (error);
+-		}
+-
+-		g_object_unref (info);
+-		g_object_unref (ctx);
+-	}
+-
+-}
+-
+-static void
+-show_layout_destroy (GtkWidget * dialog, gint group)
+-{
+-	g_hash_table_remove (preview_dialogs, GINT_TO_POINTER (group));
+-}
+-
+-static void
+-popup_menu_show_layout ()
+-{
+-	GtkWidget *dialog;
+-	XklEngine *engine =
+-	    xkl_engine_get_instance (GDK_DISPLAY_XDISPLAY
+-				     (gdk_display_get_default ()));
+-	XklState *xkl_state = xkl_engine_get_current_state (engine);
+-
+-	gchar **group_names = gkbd_status_get_group_names ();
+-
+-	gpointer p = g_hash_table_lookup (preview_dialogs,
+-					  GINT_TO_POINTER
+-					  (xkl_state->group));
+-
+-	if (xkl_state->group < 0
+-	    || xkl_state->group >= g_strv_length (group_names)) {
+-		return;
+-	}
+-
+-	if (p != NULL) {
+-		/* existing window */
+-		gtk_window_present (GTK_WINDOW (p));
+-		return;
+-	}
+-
+-	if (!ensure_xkl_registry ())
+-		return;
+-
+-	dialog = gkbd_keyboard_drawing_dialog_new ();
+-	gkbd_keyboard_drawing_dialog_set_group (dialog, xkl_registry, xkl_state->group);
+-
+-	g_signal_connect (dialog, "destroy",
+-			  G_CALLBACK (show_layout_destroy),
+-			  GINT_TO_POINTER (xkl_state->group));
+-	g_hash_table_insert (preview_dialogs,
+-			     GINT_TO_POINTER (xkl_state->group), dialog);
+-	gtk_widget_show_all (dialog);
+-}
+-
+-static void
+-popup_menu_set_group (gint group_number, gboolean only_menu)
+-{
+-
+-	XklEngine *engine = gkbd_status_get_xkl_engine ();
+-
+-	XklState *st = xkl_engine_get_current_state(engine);
+-	Window cur;
+-	st->group = group_number;
+-	xkl_engine_allow_one_switch_to_secondary_group (engine);
+-	cur = xkl_engine_get_current_window (engine);
+-	if (cur != (Window) NULL) {
+-		xkl_debug (150, "Enforcing the state %d for window %lx\n",
+-			   st->group, cur);
+-
+-		xkl_engine_save_state (engine,
+-				       xkl_engine_get_current_window
+-				       (engine), st);
+-/*    XSetInputFocus( GDK_DISPLAY(), cur, RevertToNone, CurrentTime );*/
+-	} else {
+-		xkl_debug (150,
+-			   "??? Enforcing the state %d for unknown window\n",
+-			   st->group);
+-		/* strange situation - bad things can happen */
+-	}
+-        if (!only_menu)
+-        	xkl_engine_lock_group (engine, st->group);
+-}
+-
+-static void
+-popup_menu_set_group_cb (GtkMenuItem * item, gpointer param)
+-{
+-	gint group_number = GPOINTER_TO_INT (param);
+-
+-	popup_menu_set_group(group_number, FALSE);
+-}
+-
+-
+-static GtkMenu *
+-create_status_menu (void)
+-{
+-	GtkMenu *popup_menu = GTK_MENU (gtk_menu_new ());
+-	int i = 0;
+-
+-	GtkMenu *groups_menu = GTK_MENU (gtk_menu_new ());
+-	gchar **current_name = gkbd_status_get_group_names ();
+-
+-	GtkWidget *item = gtk_menu_item_new_with_mnemonic (_("_Layouts"));
+-	gtk_widget_show (item);
+-	gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item);
+-	gtk_menu_item_set_submenu (GTK_MENU_ITEM (item),
+-				   GTK_WIDGET (groups_menu));
+-
+-	item = gtk_menu_item_new_with_mnemonic (_("Show _Keyboard Layout..."));
+-	gtk_widget_show (item);
+-	g_signal_connect (item, "activate", popup_menu_show_layout, NULL);
+-	gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item);
+-
+-	/* translators note:
+-	 * This is the name of the cinnamon-settings "region" panel */
+-	item = gtk_menu_item_new_with_mnemonic (_("Region and Language Settings"));
+-	gtk_widget_show (item);
+-	g_signal_connect (item, "activate", popup_menu_launch_capplet, NULL);
+-	gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item);
+-
+-	for (i = 0; current_name && *current_name; i++, current_name++) {
+-
+-		gchar *image_file = gkbd_status_get_image_filename (i);
+-
+-		if (image_file == NULL) {
+-			item =
+-			    gtk_menu_item_new_with_label (*current_name);
+-		} else {
+-			GdkPixbuf *pixbuf =
+-			    gdk_pixbuf_new_from_file_at_size (image_file,
+-							      24, 24,
+-							      NULL);
+-			GtkWidget *img =
+-			    gtk_image_new_from_pixbuf (pixbuf);
+-			item =
+-			    gtk_image_menu_item_new_with_label
+-			    (*current_name);
+-			gtk_widget_show (img);
+-			gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM
+-						       (item), img);
+-			gtk_image_menu_item_set_always_show_image
+-			    (GTK_IMAGE_MENU_ITEM (item), TRUE);
+-			g_free (image_file);
+-		}
+-		gtk_widget_show (item);
+-		gtk_menu_shell_append (GTK_MENU_SHELL (groups_menu), item);
+-		g_signal_connect (item, "activate",
+-				  G_CALLBACK (popup_menu_set_group_cb),
+-				  GINT_TO_POINTER (i));
+-	}
+-
+-	return popup_menu;
+-}
+-
+-static void
+-status_icon_popup_menu_cb (GtkStatusIcon * icon, guint button, guint time)
+-{
+-	GtkMenu *popup_menu = create_status_menu ();
+-
+-	gtk_menu_popup (popup_menu, NULL, NULL,
+-			gtk_status_icon_position_menu,
+-			(gpointer) icon, button, time);
+-}
+-
+-static void
+-show_hide_icon ()
+-{
+-	if (g_strv_length (current_kbd_config.layouts_variants) > 1) {
+-		if (icon == NULL) {
+-			xkl_debug (150, "Creating keyboard status icon\n");
+-			icon = gkbd_status_new ();
+-			g_signal_connect (icon, "popup-menu",
+-					  G_CALLBACK
+-					  (status_icon_popup_menu_cb),
+-					  NULL);
+-
+-		}
+-	} else {
+-		if (icon != NULL) {
+-			xkl_debug (150, "Destroying icon\n");
+-			g_object_unref (icon);
+-			icon = NULL;
+-		}
+-	}
+-}
+-
+-static gboolean
+-try_activating_xkb_config_if_new (GkbdKeyboardConfig *
+-				  current_sys_kbd_config)
+-{
+-	/* Activate - only if different! */
+-	if (!gkbd_keyboard_config_equals
+-	    (&current_kbd_config, current_sys_kbd_config)) {
+-		if (gkbd_keyboard_config_activate (&current_kbd_config)) {
+-			if (pa_callback != NULL) {
+-				(*pa_callback) (pa_callback_user_data);
+-				return TRUE;
+-			}
+-		} else {
+-			return FALSE;
+-		}
+-	}
+-	return TRUE;
+-}
+-
+-static gboolean
+-filter_xkb_config (void)
+-{
+-	XklConfigItem *item;
+-	gchar *lname;
+-	gchar *vname;
+-	gchar **lv;
+-	gboolean any_change = FALSE;
+-
+-	xkl_debug (100, "Filtering configuration against the registry\n");
+-	if (!ensure_xkl_registry ())
+-		return FALSE;
+-
+-	lv = current_kbd_config.layouts_variants;
+-	item = xkl_config_item_new ();
+-	while (*lv) {
+-		xkl_debug (100, "Checking [%s]\n", *lv);
+-		if (gkbd_keyboard_config_split_items (*lv, &lname, &vname)) {
+-			gboolean should_be_dropped = FALSE;
+-			g_snprintf (item->name, sizeof (item->name), "%s",
+-				    lname);
+-			if (!xkl_config_registry_find_layout
+-			    (xkl_registry, item)) {
+-				xkl_debug (100, "Bad layout [%s]\n",
+-					   lname);
+-				should_be_dropped = TRUE;
+-			} else if (vname) {
+-				g_snprintf (item->name,
+-					    sizeof (item->name), "%s",
+-					    vname);
+-				if (!xkl_config_registry_find_variant
+-				    (xkl_registry, lname, item)) {
+-					xkl_debug (100,
+-						   "Bad variant [%s(%s)]\n",
+-						   lname, vname);
+-					should_be_dropped = TRUE;
+-				}
+-			}
+-			if (should_be_dropped) {
+-				gkbd_strv_behead (lv);
+-				any_change = TRUE;
+-				continue;
+-			}
+-		}
+-		lv++;
+-	}
+-	g_object_unref (item);
+-	return any_change;
+-}
+-
+-static void
+-apply_xkb_settings (void)
+-{
+-	GkbdKeyboardConfig current_sys_kbd_config;
+-
+-	if (!inited_ok)
+-		return;
+-
+-	gkbd_keyboard_config_init (&current_sys_kbd_config, xkl_engine);
+-
+-	gkbd_keyboard_config_load (&current_kbd_config,
+-				   &initial_sys_kbd_config);
+-
+-	gkbd_keyboard_config_load_from_x_current (&current_sys_kbd_config,
+-						  NULL);
+-
+-	if (!try_activating_xkb_config_if_new (&current_sys_kbd_config)) {
+-		if (filter_xkb_config ()) {
+-			if (!try_activating_xkb_config_if_new
+-			    (&current_sys_kbd_config)) {
+-				g_warning
+-				    ("Could not activate the filtered XKB configuration");
+-				activation_error ();
+-			}
+-		} else {
+-			g_warning
+-			    ("Could not activate the XKB configuration");
+-			activation_error ();
+-		}
+-	} else
+-		xkl_debug (100,
+-			   "Actual KBD configuration was not changed: redundant notification\n");
+-
+-	gkbd_keyboard_config_term (&current_sys_kbd_config);
+-	show_hide_icon ();
+-}
+-
+-static void
+-csd_keyboard_xkb_analyze_sysconfig (void)
+-{
+-	if (!inited_ok)
+-		return;
+-
+-	gkbd_keyboard_config_init (&initial_sys_kbd_config, xkl_engine);
+-	gkbd_keyboard_config_load_from_x_initial (&initial_sys_kbd_config,
+-						  NULL);
+-}
+-
+-void
+-csd_keyboard_xkb_set_post_activation_callback (PostActivationCallback fun,
+-					       void *user_data)
+-{
+-	pa_callback = fun;
+-	pa_callback_user_data = user_data;
+-}
+-
+-static GdkFilterReturn
+-csd_keyboard_xkb_evt_filter (GdkXEvent * xev, GdkEvent * event)
+-{
+-	XEvent *xevent = (XEvent *) xev;
+-	xkl_engine_filter_events (xkl_engine, xevent);
+-	return GDK_FILTER_CONTINUE;
+-}
+-
+-/* When new Keyboard is plugged in - reload the settings */
+-static void
+-csd_keyboard_new_device (XklEngine * engine)
+-{
+-	apply_desktop_settings ();
+-	apply_xkb_settings ();
+-}
+-
+-void
+-csd_keyboard_xkb_init (CsdKeyboardManager * kbd_manager)
+-{
+-	Display *display =
+-	    GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+-	cinnamon_settings_profile_start (NULL);
+-
+-	gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (),
+-					   DATADIR G_DIR_SEPARATOR_S
+-					   "icons");
+-
+-	manager = kbd_manager;
+-	cinnamon_settings_profile_start ("xkl_engine_get_instance");
+-	xkl_engine = xkl_engine_get_instance (display);
+-	cinnamon_settings_profile_end ("xkl_engine_get_instance");
+-	if (xkl_engine) {
+-		inited_ok = TRUE;
+-
+-		gkbd_desktop_config_init (&current_config, xkl_engine);
+-		gkbd_keyboard_config_init (&current_kbd_config,
+-					   xkl_engine);
+-		xkl_engine_backup_names_prop (xkl_engine);
+-		csd_keyboard_xkb_analyze_sysconfig ();
+-
+-		settings_desktop = g_settings_new (GKBD_DESKTOP_SCHEMA);
+-		settings_keyboard = g_settings_new (GKBD_KEYBOARD_SCHEMA);
+-		g_signal_connect (settings_desktop, "changed",
+-				  (GCallback) apply_desktop_settings,
+-				  NULL);
+-		g_signal_connect (settings_keyboard, "changed",
+-				  (GCallback) apply_xkb_settings, NULL);
+-
+-		gdk_window_add_filter (NULL, (GdkFilterFunc)
+-				       csd_keyboard_xkb_evt_filter, NULL);
+-
+-		if (xkl_engine_get_features (xkl_engine) &
+-		    XKLF_DEVICE_DISCOVERY)
+-			g_signal_connect (xkl_engine, "X-new-device",
+-					  G_CALLBACK
+-					  (csd_keyboard_new_device), NULL);
+-
+-		cinnamon_settings_profile_start ("xkl_engine_start_listen");
+-		xkl_engine_start_listen (xkl_engine,
+-					 XKLL_MANAGE_LAYOUTS |
+-					 XKLL_MANAGE_WINDOW_STATES);
+-		cinnamon_settings_profile_end ("xkl_engine_start_listen");
+-
+-		cinnamon_settings_profile_start ("apply_desktop_settings");
+-		apply_desktop_settings ();
+-		cinnamon_settings_profile_end ("apply_desktop_settings");
+-		cinnamon_settings_profile_start ("apply_xkb_settings");
+-		apply_xkb_settings ();
+-		cinnamon_settings_profile_end ("apply_xkb_settings");
+-	}
+-	preview_dialogs = g_hash_table_new (g_direct_hash, g_direct_equal);
+-
+-	cinnamon_settings_profile_end (NULL);
+-}
+-
+-void
+-csd_keyboard_xkb_shutdown (void)
+-{
+-	if (!inited_ok)
+-		return;
+-
+-	pa_callback = NULL;
+-	pa_callback_user_data = NULL;
+-	manager = NULL;
+-
+-	if (preview_dialogs != NULL)
+-		g_hash_table_destroy (preview_dialogs);
+-
+-	if (!inited_ok)
+-		return;
+-
+-	xkl_engine_stop_listen (xkl_engine,
+-				XKLL_MANAGE_LAYOUTS |
+-				XKLL_MANAGE_WINDOW_STATES);
+-
+-	gdk_window_remove_filter (NULL, (GdkFilterFunc)
+-				  csd_keyboard_xkb_evt_filter, NULL);
+-
+-	g_object_unref (settings_desktop);
+-	settings_desktop = NULL;
+-	g_object_unref (settings_keyboard);
+-	settings_keyboard = NULL;
+-
+-	if (xkl_registry) {
+-		g_object_unref (xkl_registry);
+-	}
+-
+-	g_object_unref (xkl_engine);
+-
+-	xkl_engine = NULL;
+-
+-	inited_ok = FALSE;
+-}
+diff -uNrp a/plugins/keyboard/csd-keyboard-xkb.h b/plugins/keyboard/csd-keyboard-xkb.h
+--- a/plugins/keyboard/csd-keyboard-xkb.h	2013-08-24 18:04:31.000000000 +0100
++++ b/plugins/keyboard/csd-keyboard-xkb.h	1970-01-01 01:00:00.000000000 +0100
+@@ -1,39 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
+- * cinnamon-settings-keyboard-xkb.h
+- *
+- * Copyright (C) 2001 Udaltsoft
+- *
+- * Written by Sergey V. Oudaltsov <svu@users.sourceforge.net>
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2, or (at your option)
+- * any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA
+- * 02110-1335, USA.
+- */
+-
+-#ifndef __CSD_KEYBOARD_XKB_H
+-#define __CSD_KEYBOARD_XKB_H
+-
+-#include <libxklavier/xklavier.h>
+-#include "csd-keyboard-manager.h"
+-
+-void csd_keyboard_xkb_init (CsdKeyboardManager *manager);
+-void csd_keyboard_xkb_shutdown (void);
+-
+-typedef void (*PostActivationCallback) (void *userData);
+-
+-void
+-csd_keyboard_xkb_set_post_activation_callback (PostActivationCallback fun,
+-                                               void                  *userData);
+-
+-#endif
+diff -uNrp a/plugins/keyboard/delayed-dialog.c b/plugins/keyboard/delayed-dialog.c
+--- a/plugins/keyboard/delayed-dialog.c	2013-08-24 18:04:31.000000000 +0100
++++ b/plugins/keyboard/delayed-dialog.c	1970-01-01 01:00:00.000000000 +0100
+@@ -1,128 +0,0 @@
+-/*
+- * Copyright © 2006 Novell, Inc.
+- *
+- * This program is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU General Public License as
+- * published by the Free Software Foundation; either version 2, or (at
+- * your option) any later version.
+- *
+- * This program is distributed in the hope that it will be useful, but
+- * WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- * General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA
+- * 02110-1335, USA.
+- */
+-
+-#include <stdlib.h>
+-#include <string.h>
+-
+-#include <gtk/gtk.h>
+-#include <gdk/gdkx.h>
+-
+-#include "delayed-dialog.h"
+-
+-static gboolean        delayed_show_timeout (gpointer   data);
+-static GdkFilterReturn message_filter       (GdkXEvent *xevent,
+-                                             GdkEvent  *event,
+-                                             gpointer   data);
+-
+-static GSList *dialogs = NULL;
+-
+-/**
+- * csd_delayed_show_dialog:
+- * @dialog: the dialog
+- *
+- * Shows the dialog as with gtk_widget_show(), unless a window manager
+- * hasn't been started yet, in which case it will wait up to 5 seconds
+- * for that to happen before showing the dialog.
+- **/
+-void
+-csd_delayed_show_dialog (GtkWidget *dialog)
+-{
+-        GdkDisplay *display = gtk_widget_get_display (dialog);
+-        Display *xdisplay = GDK_DISPLAY_XDISPLAY (display);
+-        GdkScreen *screen = gtk_widget_get_screen (dialog);
+-        char selection_name[10];
+-        Atom selection_atom;
+-
+-        /* We can't use gdk_selection_owner_get() for this, because
+-         * it's an unknown out-of-process window.
+-         */
+-        snprintf (selection_name, sizeof (selection_name), "WM_S%d",
+-                  gdk_screen_get_number (screen));
+-        selection_atom = XInternAtom (xdisplay, selection_name, True);
+-        if (selection_atom &&
+-            XGetSelectionOwner (xdisplay, selection_atom) != None) {
+-                gtk_widget_show (dialog);
+-                return;
+-        }
+-
+-        dialogs = g_slist_prepend (dialogs, dialog);
+-
+-        gdk_window_add_filter (NULL, message_filter, NULL);
+-
+-        g_timeout_add (5000, delayed_show_timeout, NULL);
+-}
+-
+-static gboolean
+-delayed_show_timeout (gpointer data)
+-{
+-        GSList *l;
+-
+-        for (l = dialogs; l; l = l->next)
+-                gtk_widget_show (l->data);
+-        g_slist_free (dialogs);
+-        dialogs = NULL;
+-
+-        /* FIXME: There's no gdk_display_remove_client_message_filter */
+-
+-        return FALSE;
+-}
+-
+-static GdkFilterReturn
+-message_filter (GdkXEvent *xevent, GdkEvent *event, gpointer data)
+-{
+-        XClientMessageEvent *evt;
+-        char *selection_name;
+-        int screen;
+-        GSList *l, *next;
+-
+-        if (((XEvent *)xevent)->type != ClientMessage)
+-          return GDK_FILTER_CONTINUE;
+-
+-        evt = (XClientMessageEvent *)xevent;
+-
+-        if (evt->message_type != XInternAtom (evt->display, "MANAGER", FALSE))
+-          return GDK_FILTER_CONTINUE;
+-
+-        selection_name = XGetAtomName (evt->display, evt->data.l[1]);
+-
+-        if (strncmp (selection_name, "WM_S", 4) != 0) {
+-                XFree (selection_name);
+-                return GDK_FILTER_CONTINUE;
+-        }
+-
+-        screen = atoi (selection_name + 4);
+-
+-        for (l = dialogs; l; l = next) {
+-                GtkWidget *dialog = l->data;
+-                next = l->next;
+-
+-                if (gdk_screen_get_number (gtk_widget_get_screen (dialog)) == screen) {
+-                        gtk_widget_show (dialog);
+-                        dialogs = g_slist_remove (dialogs, dialog);
+-                }
+-        }
+-
+-        if (!dialogs) {
+-                gdk_window_remove_filter (NULL, message_filter, NULL);
+-        }
+-
+-        XFree (selection_name);
+-
+-        return GDK_FILTER_CONTINUE;
+-}
+diff -uNrp a/plugins/keyboard/delayed-dialog.h b/plugins/keyboard/delayed-dialog.h
+--- a/plugins/keyboard/delayed-dialog.h	2013-08-24 18:04:31.000000000 +0100
++++ b/plugins/keyboard/delayed-dialog.h	1970-01-01 01:00:00.000000000 +0100
+@@ -1,32 +0,0 @@
+-/*
+- * Copyright © 2006 Novell, Inc.
+- *
+- * This program is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU General Public License as
+- * published by the Free Software Foundation; either version 2, or (at
+- * your option) any later version.
+- *
+- * This program is distributed in the hope that it will be useful, but
+- * WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+- * General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA
+- * 02110-1335, USA.
+- */
+-
+-
+-#ifndef __DELAYED_DIALOG_H
+-#define __DELAYED_DIALOG_H
+-
+-#include <gtk/gtk.h>
+-
+-G_BEGIN_DECLS
+-
+-void            csd_delayed_show_dialog (GtkWidget *dialog);
+-
+-G_END_DECLS
+-
+-#endif
+diff -uNrp a/plugins/keyboard/gkbd-configuration.c b/plugins/keyboard/gkbd-configuration.c
+--- a/plugins/keyboard/gkbd-configuration.c	2013-08-24 18:04:31.000000000 +0100
++++ b/plugins/keyboard/gkbd-configuration.c	1970-01-01 01:00:00.000000000 +0100
+@@ -1,350 +0,0 @@
+-/*
+- * Copyright (C) 2010 Canonical Ltd.
+- * 
+- * Authors: Jan Arne Petersen <jpetersen@openismus.com>
+- * 
+- * Based on gkbd-status.c by Sergey V. Udaltsov <svu@gnome.org>
+- *
+- * This library is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU Lesser General Public
+- * License as published by the Free Software Foundation; either
+- * version 2 of the License, or (at your option) any later version.
+- *
+- * This library is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- * Lesser General Public License for more details.
+- *
+- * You should have received a copy of the GNU Lesser General Public
+- * License along with this library; if not, write to the
+- * Free Software Foundation, Inc., 51 Franklin Street - Suite 500,
+- * Boston, MA 02110-1335, USA.
+- */
+-
+-#include <memory.h>
+-
+-#include <gdk/gdkkeysyms.h>
+-#include <gdk/gdkx.h>
+-#include <glib/gi18n.h>
+-
+-#include <libgnomekbd/gkbd-desktop-config.h>
+-#include <libgnomekbd/gkbd-indicator-config.h>
+-
+-#include "gkbd-configuration.h"
+-
+-struct _GkbdConfigurationPrivate {
+-	XklEngine *engine;
+-	XklConfigRegistry *registry;
+-
+-	GkbdDesktopConfig cfg;
+-	GkbdIndicatorConfig ind_cfg;
+-	GkbdKeyboardConfig kbd_cfg;
+-
+-	gchar **full_group_names;
+-	gchar **short_group_names;
+-
+-	gulong state_changed_handler;
+-	gulong config_changed_handler;
+-};
+-
+-enum {
+-	SIGNAL_CHANGED,
+-	SIGNAL_GROUP_CHANGED,
+-	LAST_SIGNAL
+-};
+-
+-static guint signals[LAST_SIGNAL] = { 0, };
+-
+-#define GKBD_CONFIGURATION_GET_PRIVATE(o) \
+-	(G_TYPE_INSTANCE_GET_PRIVATE ((o), GKBD_TYPE_CONFIGURATION, GkbdConfigurationPrivate))
+-
+-G_DEFINE_TYPE (GkbdConfiguration, gkbd_configuration, G_TYPE_OBJECT)
+-
+-/* Should be called once for all widgets */
+-static void
+-gkbd_configuration_cfg_changed (GSettings *settings,
+-				 const char *key,
+-				 GkbdConfiguration * configuration)
+-{
+-	GkbdConfigurationPrivate *priv = configuration->priv;
+-
+-	xkl_debug (100,
+-		   "General configuration changed in GSettings - reiniting...\n");
+-	gkbd_desktop_config_load (&priv->cfg);
+-	gkbd_desktop_config_activate (&priv->cfg);
+-
+-	g_signal_emit (configuration,
+-		       signals[SIGNAL_CHANGED], 0);
+-}
+-
+-/* Should be called once for all widgets */
+-static void
+-gkbd_configuration_ind_cfg_changed (GSettings *settings,
+-				     const char *key,
+-				     GkbdConfiguration * configuration)
+-{
+-	GkbdConfigurationPrivate *priv = configuration->priv;
+-	xkl_debug (100,
+-		   "Applet configuration changed in GSettings - reiniting...\n");
+-	gkbd_indicator_config_load (&priv->ind_cfg);
+-
+-	gkbd_indicator_config_free_image_filenames (&priv->ind_cfg);
+-	gkbd_indicator_config_load_image_filenames (&priv->ind_cfg,
+-						    &priv->kbd_cfg);
+-
+-	gkbd_indicator_config_activate (&priv->ind_cfg);
+-
+-	g_signal_emit (configuration,
+-		       signals[SIGNAL_CHANGED], 0);
+-}
+-
+-static void
+-gkbd_configuration_load_group_names (GkbdConfiguration * configuration,
+-				     XklConfigRec * xklrec)
+-{
+-	GkbdConfigurationPrivate *priv = configuration->priv;
+-
+-	if (!gkbd_desktop_config_load_group_descriptions (&priv->cfg,
+-							  priv->registry,
+-							  (const char **) xklrec->layouts,
+-							  (const char **) xklrec->variants,
+-	     						  &priv->short_group_names,
+-							  &priv->full_group_names)) {
+-		/* We just populate no short names (remain NULL) - 
+-		 * full names are going to be used anyway */
+-		gint i, total_groups =
+-		    xkl_engine_get_num_groups (priv->engine);
+-		xkl_debug (150, "group descriptions loaded: %d!\n",
+-			   total_groups);
+-		priv->full_group_names =
+-		    g_new0 (char *, total_groups + 1);
+-
+-		if (xkl_engine_get_features (priv->engine) &
+-		    XKLF_MULTIPLE_LAYOUTS_SUPPORTED) {
+-			for (i = 0; priv->kbd_cfg.layouts_variants[i]; i++) {
+-				priv->full_group_names[i] =
+-				    g_strdup ((char *) priv->kbd_cfg.layouts_variants[i]);
+-			}
+-		} else {
+-			for (i = total_groups; --i >= 0;) {
+-				priv->full_group_names[i] =
+-				    g_strdup_printf ("Group %d", i);
+-			}
+-		}
+-	}
+-}
+-
+-/* Should be called once for all widgets */
+-static void
+-gkbd_configuration_kbd_cfg_callback (XklEngine *engine,
+-				     GkbdConfiguration *configuration)
+-{
+-	GkbdConfigurationPrivate *priv = configuration->priv;
+-	XklConfigRec *xklrec = xkl_config_rec_new ();
+-	xkl_debug (100,
+-		   "XKB configuration changed on X Server - reiniting...\n");
+-
+-	gkbd_keyboard_config_load_from_x_current (&priv->kbd_cfg,
+-						  xklrec);
+-
+-	gkbd_indicator_config_free_image_filenames (&priv->ind_cfg);
+-	gkbd_indicator_config_load_image_filenames (&priv->ind_cfg,
+-						    &priv->kbd_cfg);
+-
+-	g_strfreev (priv->full_group_names);
+-	priv->full_group_names = NULL;
+-
+-	g_strfreev (priv->short_group_names);
+-	priv->short_group_names = NULL;
+-
+-	gkbd_configuration_load_group_names (configuration,
+-				 	     xklrec);
+-
+-	g_signal_emit (configuration,
+-		       signals[SIGNAL_CHANGED],
+-		       0);
+-
+-	g_object_unref (G_OBJECT (xklrec));
+-}
+-
+-/* Should be called once for all applets */
+-static void
+-gkbd_configuration_state_callback (XklEngine * engine,
+-				   XklEngineStateChange changeType,
+-			    	   gint group, gboolean restore,
+-				   GkbdConfiguration * configuration)
+-{
+-	xkl_debug (150, "group is now %d, restore: %d\n", group, restore);
+-
+-	if (changeType == GROUP_CHANGED) {
+-		g_signal_emit (configuration,
+-			       signals[SIGNAL_GROUP_CHANGED], 0,
+-			       group);
+-	}
+-}
+-
+-static void
+-gkbd_configuration_init (GkbdConfiguration *configuration)
+-{
+-	GkbdConfigurationPrivate *priv;
+-	XklConfigRec *xklrec = xkl_config_rec_new ();
+-
+-	priv = GKBD_CONFIGURATION_GET_PRIVATE (configuration);
+-	configuration->priv = priv;
+-
+-	priv->engine = xkl_engine_get_instance (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
+-	if (priv->engine == NULL) {
+-		xkl_debug (0, "Libxklavier initialization error");
+-		return;
+-	}
+-
+-	priv->state_changed_handler =
+-	    g_signal_connect (priv->engine, "X-state-changed",
+-			      G_CALLBACK (gkbd_configuration_state_callback),
+-			      configuration);
+-	priv->config_changed_handler =
+-	    g_signal_connect (priv->engine, "X-config-changed",
+-			      G_CALLBACK (gkbd_configuration_kbd_cfg_callback),
+-			      configuration);
+-
+-	gkbd_desktop_config_init (&priv->cfg, priv->engine);
+-	gkbd_keyboard_config_init (&priv->kbd_cfg, priv->engine);
+-	gkbd_indicator_config_init (&priv->ind_cfg, priv->engine);
+-
+-	gkbd_desktop_config_load (&priv->cfg);
+-	gkbd_desktop_config_activate (&priv->cfg);
+-
+-	priv->registry = xkl_config_registry_get_instance (priv->engine);
+-	xkl_config_registry_load (priv->registry,
+-				  priv->cfg.load_extra_items);
+-
+-	gkbd_keyboard_config_load_from_x_current (&priv->kbd_cfg,
+-						  xklrec);
+-
+-	gkbd_indicator_config_load (&priv->ind_cfg);
+-
+-	gkbd_indicator_config_load_image_filenames (&priv->ind_cfg,
+-						    &priv->kbd_cfg);
+-
+-	gkbd_indicator_config_activate (&priv->ind_cfg);
+-
+-	gkbd_configuration_load_group_names (configuration,
+-					     xklrec);
+-	g_object_unref (G_OBJECT (xklrec));
+-
+-	gkbd_desktop_config_start_listen (&priv->cfg,
+-					  G_CALLBACK (gkbd_configuration_cfg_changed),
+-					  configuration);
+-	gkbd_indicator_config_start_listen (&priv->ind_cfg,
+-					    G_CALLBACK (gkbd_configuration_ind_cfg_changed),
+-					    configuration);
+-	xkl_engine_start_listen (priv->engine,
+-				 XKLL_TRACK_KEYBOARD_STATE);
+-
+-	xkl_debug (100, "Initiating the widget startup process for %p\n",
+-		   configuration);
+-}
+-
+-static void
+-gkbd_configuration_finalize (GObject * obj)
+-{
+-	GkbdConfiguration *configuration = GKBD_CONFIGURATION (obj);
+-	GkbdConfigurationPrivate *priv = configuration->priv;
+-
+-	xkl_debug (100,
+-		   "Starting the gnome-kbd-configuration widget shutdown process for %p\n",
+-		   configuration);
+-
+-	xkl_engine_stop_listen (priv->engine,
+-				XKLL_TRACK_KEYBOARD_STATE);
+-
+-	gkbd_desktop_config_stop_listen (&priv->cfg);
+-	gkbd_indicator_config_stop_listen (&priv->ind_cfg);
+-
+-	gkbd_indicator_config_term (&priv->ind_cfg);
+-	gkbd_keyboard_config_term (&priv->kbd_cfg);
+-	gkbd_desktop_config_term (&priv->cfg);
+-
+-	if (g_signal_handler_is_connected (priv->engine,
+-					   priv->state_changed_handler)) {
+-		g_signal_handler_disconnect (priv->engine,
+-					     priv->state_changed_handler);
+-		priv->state_changed_handler = 0;
+-	}
+-	if (g_signal_handler_is_connected (priv->engine,
+-					   priv->config_changed_handler)) {
+-		g_signal_handler_disconnect (priv->engine,
+-					     priv->config_changed_handler);
+-		priv->config_changed_handler = 0;
+-	}
+-
+-	g_object_unref (priv->registry);
+-	priv->registry = NULL;
+-	g_object_unref (priv->engine);
+-	priv->engine = NULL;
+-
+-	G_OBJECT_CLASS (gkbd_configuration_parent_class)->finalize (obj);
+-}
+-
+-static void
+-gkbd_configuration_class_init (GkbdConfigurationClass * klass)
+-{
+-	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+-
+-	/* Initing vtable */
+-	object_class->finalize = gkbd_configuration_finalize;
+-
+-	/* Signals */
+-	signals[SIGNAL_CHANGED] = g_signal_new ("changed",
+-						GKBD_TYPE_CONFIGURATION,
+-						G_SIGNAL_RUN_LAST,
+-						0,
+-						NULL, NULL,
+-						g_cclosure_marshal_VOID__VOID,
+-						G_TYPE_NONE,
+-						0);
+-	signals[SIGNAL_GROUP_CHANGED] = g_signal_new ("group-changed",
+-						      GKBD_TYPE_CONFIGURATION,
+-						      G_SIGNAL_RUN_LAST,
+-						      0,
+-						      NULL, NULL,
+-						      g_cclosure_marshal_VOID__INT,
+-						      G_TYPE_NONE,
+-						      1,
+-						      G_TYPE_INT);
+-
+-	g_type_class_add_private (klass, sizeof (GkbdConfigurationPrivate));
+-}
+-
+-GkbdConfiguration *
+-gkbd_configuration_get (void)
+-{
+-	static gpointer instance = NULL;
+-
+-	if (!instance) {
+-		instance = g_object_new (GKBD_TYPE_CONFIGURATION, NULL);
+-		g_object_add_weak_pointer (instance, &instance);
+-	} else {
+-		g_object_ref (instance);
+-	}
+-
+-	return instance;
+-}
+-
+-XklEngine *
+-gkbd_configuration_get_xkl_engine (GkbdConfiguration *configuration)
+-{
+-	return configuration->priv->engine;
+-}
+-
+-const char * const *
+-gkbd_configuration_get_group_names (GkbdConfiguration *configuration)
+-{
+-	return configuration->priv->full_group_names;
+-}
+-
+-const char * const *
+-gkbd_configuration_get_short_group_names (GkbdConfiguration *configuration)
+-{
+-	return configuration->priv->short_group_names;
+-}
+diff -uNrp a/plugins/keyboard/gkbd-configuration.h b/plugins/keyboard/gkbd-configuration.h
+--- a/plugins/keyboard/gkbd-configuration.h	2013-08-24 18:04:31.000000000 +0100
++++ b/plugins/keyboard/gkbd-configuration.h	1970-01-01 01:00:00.000000000 +0100
+@@ -1,65 +0,0 @@
+-/*
+- * Copyright (C) 2010 Canonical Ltd.
+- * 
+- * Authors: Jan Arne Petersen <jpetersen@openismus.com>
+- * 
+- * Based on gkbd-status.h by Sergey V. Udaltsov <svu@gnome.org>
+- *
+- * This library is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU Lesser General Public
+- * License as published by the Free Software Foundation; either
+- * version 2 of the License, or (at your option) any later version.
+- *
+- * This library is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+- * Lesser General Public License for more details.
+- *
+- * You should have received a copy of the GNU Lesser General Public
+- * License along with this library; if not, write to the
+- * Free Software Foundation, Inc., 51 Franklin Street - Suite 500,
+- * Boston, MA 02110-1335, USA.
+- */
+-
+-#ifndef __GKBD_CONFIGURATION_H__
+-#define __GKBD_CONFIGURATION_H__
+-
+-#include <glib-object.h>
+-
+-#include <libxklavier/xklavier.h>
+-
+-G_BEGIN_DECLS
+-
+-typedef struct _GkbdConfiguration GkbdConfiguration;
+-typedef struct _GkbdConfigurationPrivate GkbdConfigurationPrivate;
+-typedef struct _GkbdConfigurationClass GkbdConfigurationClass;
+-
+-#define GKBD_TYPE_CONFIGURATION           (gkbd_configuration_get_type ())
+-#define GKBD_CONFIGURATION(obj)           (G_TYPE_CHECK_INSTANCE_CAST ((obj), GKBD_TYPE_CONFIGURATION, GkbdConfiguration))
+-#define GKBD_INDCATOR_CLASS(obj)          (G_TYPE_CHECK_CLASS_CAST ((obj), GKBD_TYPE_CONFIGURATION,  GkbdConfigurationClass))
+-#define GKBD_IS_CONFIGURATION(obj)        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GKBD_TYPE_CONFIGURATION))
+-#define GKBD_IS_CONFIGURATION_CLASS(obj)  (G_TYPE_CHECK_CLASS_TYPE ((obj), GKBD_TYPE_CONFIGURATION))
+-#define GKBD_CONFIGURATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GKBD_TYPE_CONFIGURATION, GkbdConfigurationClass))
+-
+-struct _GkbdConfiguration {
+-	GObject parent;
+-
+-	GkbdConfigurationPrivate *priv;
+-};
+-
+-struct _GkbdConfigurationClass {
+-	GObjectClass parent_class;
+-};
+-
+-extern GType gkbd_configuration_get_type (void);
+-
+-extern GkbdConfiguration *gkbd_configuration_get (void);
+-
+-extern XklEngine *gkbd_configuration_get_xkl_engine (GkbdConfiguration *configuration);
+-
+-extern const char * const *gkbd_configuration_get_group_names (GkbdConfiguration *configuration);
+-extern const char * const *gkbd_configuration_get_short_group_names (GkbdConfiguration *configuration);
+-
+-G_END_DECLS
+-
+-#endif
+diff -uNrp a/plugins/keyboard/.indent.pro b/plugins/keyboard/.indent.pro
+--- a/plugins/keyboard/.indent.pro	1970-01-01 01:00:00.000000000 +0100
++++ b/plugins/keyboard/.indent.pro	2013-08-25 16:36:02.000000000 +0100
+@@ -0,0 +1,2 @@
++-kr -i8 -pcs -lps -psl
++
+diff -uNrp a/plugins/keyboard/Makefile.am b/plugins/keyboard/Makefile.am
+--- a/plugins/keyboard/Makefile.am	2013-08-24 18:04:31.000000000 +0100
++++ b/plugins/keyboard/Makefile.am	2013-08-25 16:36:02.000000000 +0100
+@@ -20,25 +20,20 @@ libkeyboard_la_SOURCES = 	\
+ 	csd-keyboard-plugin.c	\
+ 	csd-keyboard-manager.h	\
+ 	csd-keyboard-manager.c	\
+-	csd-keyboard-xkb.h	\
+-	csd-keyboard-xkb.c	\
+-	delayed-dialog.h	\
+-	delayed-dialog.c	\
+-	gkbd-configuration.c	\
+-	gkbd-configuration.h	\
+ 	$(NULL)
+ 
+ libkeyboard_la_CPPFLAGS = \
+ 	-I$(top_srcdir)/cinnamon-settings-daemon		\
+ 	-I$(top_srcdir)/data				\
++	-I$(top_srcdir)/plugins/common			\
+ 	-DDATADIR=\""$(pkgdatadir)"\"			\
++	-DLIBEXECDIR=\""$(libexecdir)"\"		\
+ 	-DCINNAMON_SETTINGS_LOCALEDIR=\""$(datadir)/locale"\" \
+ 	$(AM_CPPFLAGS)
+ 
+ libkeyboard_la_CFLAGS = \
+ 	$(PLUGIN_CFLAGS)		\
+ 	$(SETTINGS_PLUGIN_CFLAGS)	\
+-	$(APPINDICATOR_CFLAGS)		\
+ 	$(KEYBOARD_CFLAGS)		\
+ 	$(AM_CFLAGS)
+ 
+@@ -46,19 +41,63 @@ libkeyboard_la_LDFLAGS = 	\
+ 	$(CSD_PLUGIN_LDFLAGS)	\
+ 	$(NULL)
+ 
+-libkeyboard_la_LIBADD  = 	\
+-	$(SETTINGS_PLUGIN_LIBS)	\
+-	$(XF86MISC_LIBS)	\
+-	$(KEYBOARD_LIBS)	\
+-	$(APPINDICATOR_LIBS)	\
++libkeyboard_la_LIBADD  =				\
++	$(top_builddir)/plugins/common/libcommon.la	\
++	$(SETTINGS_PLUGIN_LIBS)				\
++	$(XF86MISC_LIBS)				\
++	$(KEYBOARD_LIBS)				\
+ 	$(NULL)
+ 
++libexec_PROGRAMS = csd-test-keyboard
++csd_test_keyboard_SOURCES =	\
++	test-keyboard.c		\
++	csd-keyboard-manager.h	\
++	csd-keyboard-manager.c	\
++	$(NULL)
++
++csd_test_keyboard_CFLAGS = $(libkeyboard_la_CFLAGS)
++csd_test_keyboard_CPPFLAGS = $(libkeyboard_la_CPPFLAGS)
++csd_test_keyboard_LDADD = $(libkeyboard_la_LIBADD) $(top_builddir)/cinnamon-settings-daemon/libcsd.la
++
+ plugin_in_files = 		\
+ 	keyboard.cinnamon-settings-plugin.in	\
+ 	$(NULL)
+ 
+ plugin_DATA = $(plugin_in_files:.cinnamon-settings-plugin.in=.cinnamon-settings-plugin)
+ 
++if HAVE_IBUS
++noinst_PROGRAMS = test-keyboard-ibus-utils
++test_keyboard_ibus_utils_SOURCES = test-keyboard-ibus-utils.c
++test_keyboard_ibus_utils_CFLAGS = $(libkeyboard_la_CFLAGS)
++test_keyboard_ibus_utils_CPPFLAGS = $(libkeyboard_la_CPPFLAGS)
++test_keyboard_ibus_utils_LDADD = $(libkeyboard_la_LIBADD) $(top_builddir)/cinnamon-settings-daemon/libcsd.la
++
++check-local: test-keyboard-ibus-utils
++	$(builddir)/test-keyboard-ibus-utils > /dev/null
++endif
++
++libexec_PROGRAMS += csd-input-sources-switcher
++
++csd_input_sources_switcher_SOURCES = 	\
++	csd-input-sources-switcher.c	\
++	$(NULL)
++
++csd_input_sources_switcher_CPPFLAGS =	\
++	-I$(top_srcdir)/data		\
++	-I$(top_srcdir)/plugins/common	\
++	$(AM_CPPFLAGS)			\
++	$(NULL)
++
++csd_input_sources_switcher_CFLAGS =	\
++	$(SETTINGS_PLUGIN_CFLAGS)	\
++	$(AM_CFLAGS)			\
++	$(NULL)
++
++csd_input_sources_switcher_LDADD  = 	\
++	$(top_builddir)/plugins/common/libcommon.la	\
++	$(SETTINGS_PLUGIN_LIBS)		\
++	$(NULL)
++
+ EXTRA_DIST = 			\
+ 	$(icons_DATA)		\
+ 	$(plugin_in_files)	\
+diff -uNrp a/plugins/keyboard/test-keyboard.c b/plugins/keyboard/test-keyboard.c
+--- a/plugins/keyboard/test-keyboard.c	1970-01-01 01:00:00.000000000 +0100
++++ b/plugins/keyboard/test-keyboard.c	2013-08-25 16:36:02.000000000 +0100
+@@ -0,0 +1,7 @@
++#define NEW csd_keyboard_manager_new
++#define START csd_keyboard_manager_start
++#define STOP csd_keyboard_manager_stop
++#define MANAGER CsdKeyboardManager
++#include "csd-keyboard-manager.h"
++
++#include "test-plugin.h"
+diff -uNrp a/plugins/keyboard/test-keyboard-ibus-utils.c b/plugins/keyboard/test-keyboard-ibus-utils.c
+--- a/plugins/keyboard/test-keyboard-ibus-utils.c	1970-01-01 01:00:00.000000000 +0100
++++ b/plugins/keyboard/test-keyboard-ibus-utils.c	2013-08-25 16:36:02.000000000 +0100
+@@ -0,0 +1,116 @@
++#include "csd-keyboard-manager.c"
++
++static void
++test_make_xkb_source_id (void)
++{
++        gint i;
++        const gchar *test_strings[][2] = {
++                /* input                output */
++                { "xkb:aa:bb:cc",       "aa+bb" },
++                { "xkb:aa:bb:",         "aa+bb" },
++                { "xkb:aa::cc",         "aa" },
++                { "xkb:aa::",           "aa" },
++                { "xkb::bb:cc",         "+bb" },
++                { "xkb::bb:",           "+bb" },
++                { "xkb:::cc",           "" },
++                { "xkb:::",             "" },
++        };
++
++        for (i = 0; i < G_N_ELEMENTS (test_strings); ++i)
++                g_assert_cmpstr (make_xkb_source_id (test_strings[i][0]), ==, test_strings[i][1]);
++}
++
++static void
++test_layout_from_ibus_layout (void)
++{
++        gint i;
++        const gchar *test_strings[][2] = {
++                /* input                output */
++                { "",                   "" },
++                { "a",                  "a" },
++                { "a(",                 "a" },
++                { "a[",                 "a" },
++        };
++
++        for (i = 0; i < G_N_ELEMENTS (test_strings); ++i)
++                g_assert_cmpstr (layout_from_ibus_layout (test_strings[i][0]), ==, test_strings[i][1]);
++}
++
++static void
++test_variant_from_ibus_layout (void)
++{
++        gint i;
++        const gchar *test_strings[][2] = {
++                /* input                output */
++                { "",                   NULL },
++                { "a",                  NULL },
++                { "(",                  NULL },
++                { "()",                 "" },
++                { "(b)",                "b" },
++                { "a(",                 NULL },
++                { "a()",                "" },
++                { "a(b)",               "b" },
++        };
++
++        for (i = 0; i < G_N_ELEMENTS (test_strings); ++i)
++                g_assert_cmpstr (variant_from_ibus_layout (test_strings[i][0]), ==, test_strings[i][1]);
++}
++
++static void
++test_options_from_ibus_layout (void)
++{
++        gint i, j;
++        gchar *output_0[] = {
++                NULL
++        };
++        gchar *output_1[] = {
++                "",
++                NULL
++        };
++        gchar *output_2[] = {
++                "b",
++                NULL
++        };
++        gchar *output_3[] = {
++                "b", "",
++                NULL
++        };
++        gchar *output_4[] = {
++                "b", "c",
++                NULL
++        };
++        const gpointer tests[][2] = {
++                /* input                output */
++                { "",                   NULL },
++                { "a",                  NULL },
++                { "a[",                 output_0 },
++                { "a[]",                output_1 },
++                { "a[b]",               output_2 },
++                { "a[b,]",              output_3 },
++                { "a[b,c]",             output_4 },
++        };
++
++        for (i = 0; i < G_N_ELEMENTS (tests); ++i) {
++                if (tests[i][1] == NULL) {
++                        g_assert (options_from_ibus_layout (tests[i][0]) == NULL);
++                } else {
++                        gchar **strv_a = options_from_ibus_layout (tests[i][0]);
++                        gchar **strv_b = tests[i][1];
++
++                        g_assert (g_strv_length (strv_a) == g_strv_length (strv_b));
++                        for (j = 0; j < g_strv_length (strv_a); ++j)
++                                g_assert_cmpstr (strv_a[j], ==, strv_b[j]);
++                }
++        }
++}
++
++int
++main (void)
++{
++        test_make_xkb_source_id ();
++        test_layout_from_ibus_layout ();
++        test_variant_from_ibus_layout ();
++        test_options_from_ibus_layout ();
++
++        return 0;
++}
+diff -uNrp a/plugins/keyboard/xxx/csd-keyboard-xkb.c b/plugins/keyboard/xxx/csd-keyboard-xkb.c
+--- a/plugins/keyboard/xxx/csd-keyboard-xkb.c	1970-01-01 01:00:00.000000000 +0100
++++ b/plugins/keyboard/xxx/csd-keyboard-xkb.c	2013-08-25 16:36:02.000000000 +0100
+@@ -0,0 +1,579 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2001 Udaltsoft
++ *
++ * Written by Sergey V. Oudaltsov <svu@users.sourceforge.net>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA
++ * 02110-1335, USA.
++ */
++
++#include "config.h"
++
++#include <string.h>
++#include <time.h>
++
++#include <glib/gi18n.h>
++#include <gdk/gdk.h>
++#include <gdk/gdkx.h>
++#include <gtk/gtk.h>
++
++#include <libgnomekbd/gkbd-status.h>
++
++#include <libgnomekbd/gkbd-keyboard-drawing.h>
++#include <libgnomekbd/gkbd-desktop-config.h>
++#include <libgnomekbd/gkbd-indicator-config.h>
++#include <libgnomekbd/gkbd-keyboard-config.h>
++#include <libgnomekbd/gkbd-util.h>
++
++#include "csd-keyboard-xkb.h"
++#include "delayed-dialog.h"
++#include "cinnamon-settings-profile.h"
++
++#define SETTINGS_KEYBOARD_DIR "org.cinnamon.settings-daemon.plugins.keyboard"
++
++static CsdKeyboardManager *manager = NULL;
++
++static XklEngine *xkl_engine;
++static XklConfigRegistry *xkl_registry = NULL;
++
++static GkbdDesktopConfig current_config;
++static GkbdKeyboardConfig current_kbd_config;
++
++/* never terminated */
++static GkbdKeyboardConfig initial_sys_kbd_config;
++
++static gboolean inited_ok = FALSE;
++
++static GSettings *settings_desktop = NULL;
++static GSettings *settings_keyboard = NULL;
++
++static PostActivationCallback pa_callback = NULL;
++static void *pa_callback_user_data = NULL;
++
++static GtkStatusIcon *icon = NULL;
++
++static GHashTable *preview_dialogs = NULL;
++
++static void
++activation_error (void)
++{
++	char const *vendor;
++	GtkWidget *dialog;
++
++	vendor =
++	    ServerVendor (GDK_DISPLAY_XDISPLAY
++			  (gdk_display_get_default ()));
++
++	/* VNC viewers will not work, do not barrage them with warnings */
++	if (NULL != vendor && NULL != strstr (vendor, "VNC"))
++		return;
++
++	dialog = gtk_message_dialog_new_with_markup (NULL,
++						     0,
++						     GTK_MESSAGE_ERROR,
++						     GTK_BUTTONS_CLOSE,
++						     _
++						     ("Error activating XKB configuration.\n"
++						      "There can be various reasons for that.\n\n"
++						      "If you report this situation as a bug, include the results of\n"
++						      " • <b>%s</b>\n"
++						      " • <b>%s</b>\n"
++						      " • <b>%s</b>\n"
++						      " • <b>%s</b>"),
++						     "xprop -root | grep XKB",
++						     "gsettings get org.gnome.libgnomekbd.keyboard model",
++						     "gsettings get org.gnome.libgnomekbd.keyboard layouts",
++						     "gsettings get org.gnome.libgnomekbd.keyboard options");
++	g_signal_connect (dialog, "response",
++			  G_CALLBACK (gtk_widget_destroy), NULL);
++	csd_delayed_show_dialog (dialog);
++}
++
++static gboolean
++ensure_xkl_registry (void)
++{
++	if (!xkl_registry) {
++		xkl_registry =
++		    xkl_config_registry_get_instance (xkl_engine);
++		/* load all materials, unconditionally! */
++		if (!xkl_config_registry_load (xkl_registry, TRUE)) {
++			g_object_unref (xkl_registry);
++			xkl_registry = NULL;
++			return FALSE;
++		}
++	}
++
++	return TRUE;
++}
++
++static void
++apply_desktop_settings (void)
++{
++	if (!inited_ok)
++		return;
++
++	csd_keyboard_manager_apply_settings (manager);
++	gkbd_desktop_config_load (&current_config);
++	/* again, probably it would be nice to compare things
++	   before activating them */
++	gkbd_desktop_config_activate (&current_config);
++}
++
++static void
++popup_menu_launch_capplet ()
++{
++	GAppInfo *info;
++	GdkAppLaunchContext *ctx;
++	GError *error = NULL;
++
++	info =
++	    g_app_info_create_from_commandline
++	    ("cinnamon-settings region", NULL, 0, &error);
++
++	if (info != NULL) {
++		ctx =
++		    gdk_display_get_app_launch_context
++		    (gdk_display_get_default ());
++
++		if (g_app_info_launch (info, NULL,
++				   G_APP_LAUNCH_CONTEXT (ctx), &error) == FALSE) {
++			g_warning
++				("Could not execute keyboard properties capplet: [%s]\n",
++				 error->message);
++			g_error_free (error);
++		}
++
++		g_object_unref (info);
++		g_object_unref (ctx);
++	}
++
++}
++
++static void
++show_layout_destroy (GtkWidget * dialog, gint group)
++{
++	g_hash_table_remove (preview_dialogs, GINT_TO_POINTER (group));
++}
++
++static void
++popup_menu_show_layout ()
++{
++	GtkWidget *dialog;
++	XklEngine *engine =
++	    xkl_engine_get_instance (GDK_DISPLAY_XDISPLAY
++				     (gdk_display_get_default ()));
++	XklState *xkl_state = xkl_engine_get_current_state (engine);
++
++	gchar **group_names = gkbd_status_get_group_names ();
++
++	gpointer p = g_hash_table_lookup (preview_dialogs,
++					  GINT_TO_POINTER
++					  (xkl_state->group));
++
++	if (xkl_state->group < 0
++	    || xkl_state->group >= g_strv_length (group_names)) {
++		return;
++	}
++
++	if (p != NULL) {
++		/* existing window */
++		gtk_window_present (GTK_WINDOW (p));
++		return;
++	}
++
++	if (!ensure_xkl_registry ())
++		return;
++
++	dialog = gkbd_keyboard_drawing_dialog_new ();
++	gkbd_keyboard_drawing_dialog_set_group (dialog, xkl_registry, xkl_state->group);
++
++	g_signal_connect (dialog, "destroy",
++			  G_CALLBACK (show_layout_destroy),
++			  GINT_TO_POINTER (xkl_state->group));
++	g_hash_table_insert (preview_dialogs,
++			     GINT_TO_POINTER (xkl_state->group), dialog);
++	gtk_widget_show_all (dialog);
++}
++
++static void
++popup_menu_set_group (gint group_number, gboolean only_menu)
++{
++
++	XklEngine *engine = gkbd_status_get_xkl_engine ();
++
++	XklState *st = xkl_engine_get_current_state(engine);
++	Window cur;
++	st->group = group_number;
++	xkl_engine_allow_one_switch_to_secondary_group (engine);
++	cur = xkl_engine_get_current_window (engine);
++	if (cur != (Window) NULL) {
++		xkl_debug (150, "Enforcing the state %d for window %lx\n",
++			   st->group, cur);
++
++		xkl_engine_save_state (engine,
++				       xkl_engine_get_current_window
++				       (engine), st);
++/*    XSetInputFocus( GDK_DISPLAY(), cur, RevertToNone, CurrentTime );*/
++	} else {
++		xkl_debug (150,
++			   "??? Enforcing the state %d for unknown window\n",
++			   st->group);
++		/* strange situation - bad things can happen */
++	}
++        if (!only_menu)
++        	xkl_engine_lock_group (engine, st->group);
++}
++
++static void
++popup_menu_set_group_cb (GtkMenuItem * item, gpointer param)
++{
++	gint group_number = GPOINTER_TO_INT (param);
++
++	popup_menu_set_group(group_number, FALSE);
++}
++
++
++static GtkMenu *
++create_status_menu (void)
++{
++	GtkMenu *popup_menu = GTK_MENU (gtk_menu_new ());
++	int i = 0;
++
++	GtkMenu *groups_menu = GTK_MENU (gtk_menu_new ());
++	gchar **current_name = gkbd_status_get_group_names ();
++
++	GtkWidget *item = gtk_menu_item_new_with_mnemonic (_("_Layouts"));
++	gtk_widget_show (item);
++	gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item);
++	gtk_menu_item_set_submenu (GTK_MENU_ITEM (item),
++				   GTK_WIDGET (groups_menu));
++
++	item = gtk_menu_item_new_with_mnemonic (_("Show _Keyboard Layout..."));
++	gtk_widget_show (item);
++	g_signal_connect (item, "activate", popup_menu_show_layout, NULL);
++	gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item);
++
++	/* translators note:
++	 * This is the name of the cinnamon-settings "region" panel */
++	item = gtk_menu_item_new_with_mnemonic (_("Region and Language Settings"));
++	gtk_widget_show (item);
++	g_signal_connect (item, "activate", popup_menu_launch_capplet, NULL);
++	gtk_menu_shell_append (GTK_MENU_SHELL (popup_menu), item);
++
++	for (i = 0; current_name && *current_name; i++, current_name++) {
++
++		gchar *image_file = gkbd_status_get_image_filename (i);
++
++		if (image_file == NULL) {
++			item =
++			    gtk_menu_item_new_with_label (*current_name);
++		} else {
++			GdkPixbuf *pixbuf =
++			    gdk_pixbuf_new_from_file_at_size (image_file,
++							      24, 24,
++							      NULL);
++			GtkWidget *img =
++			    gtk_image_new_from_pixbuf (pixbuf);
++			item =
++			    gtk_image_menu_item_new_with_label
++			    (*current_name);
++			gtk_widget_show (img);
++			gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM
++						       (item), img);
++			gtk_image_menu_item_set_always_show_image
++			    (GTK_IMAGE_MENU_ITEM (item), TRUE);
++			g_free (image_file);
++		}
++		gtk_widget_show (item);
++		gtk_menu_shell_append (GTK_MENU_SHELL (groups_menu), item);
++		g_signal_connect (item, "activate",
++				  G_CALLBACK (popup_menu_set_group_cb),
++				  GINT_TO_POINTER (i));
++	}
++
++	return popup_menu;
++}
++
++static void
++status_icon_popup_menu_cb (GtkStatusIcon * icon, guint button, guint time)
++{
++	GtkMenu *popup_menu = create_status_menu ();
++
++	gtk_menu_popup (popup_menu, NULL, NULL,
++			gtk_status_icon_position_menu,
++			(gpointer) icon, button, time);
++}
++
++static void
++show_hide_icon ()
++{
++	if (g_strv_length (current_kbd_config.layouts_variants) > 1) {
++		if (icon == NULL) {
++			xkl_debug (150, "Creating keyboard status icon\n");
++			icon = gkbd_status_new ();
++			g_signal_connect (icon, "popup-menu",
++					  G_CALLBACK
++					  (status_icon_popup_menu_cb),
++					  NULL);
++
++		}
++	} else {
++		if (icon != NULL) {
++			xkl_debug (150, "Destroying icon\n");
++			g_object_unref (icon);
++			icon = NULL;
++		}
++	}
++}
++
++static gboolean
++try_activating_xkb_config_if_new (GkbdKeyboardConfig *
++				  current_sys_kbd_config)
++{
++	/* Activate - only if different! */
++	if (!gkbd_keyboard_config_equals
++	    (&current_kbd_config, current_sys_kbd_config)) {
++		if (gkbd_keyboard_config_activate (&current_kbd_config)) {
++			if (pa_callback != NULL) {
++				(*pa_callback) (pa_callback_user_data);
++				return TRUE;
++			}
++		} else {
++			return FALSE;
++		}
++	}
++	return TRUE;
++}
++
++static gboolean
++filter_xkb_config (void)
++{
++	XklConfigItem *item;
++	gchar *lname;
++	gchar *vname;
++	gchar **lv;
++	gboolean any_change = FALSE;
++
++	xkl_debug (100, "Filtering configuration against the registry\n");
++	if (!ensure_xkl_registry ())
++		return FALSE;
++
++	lv = current_kbd_config.layouts_variants;
++	item = xkl_config_item_new ();
++	while (*lv) {
++		xkl_debug (100, "Checking [%s]\n", *lv);
++		if (gkbd_keyboard_config_split_items (*lv, &lname, &vname)) {
++			gboolean should_be_dropped = FALSE;
++			g_snprintf (item->name, sizeof (item->name), "%s",
++				    lname);
++			if (!xkl_config_registry_find_layout
++			    (xkl_registry, item)) {
++				xkl_debug (100, "Bad layout [%s]\n",
++					   lname);
++				should_be_dropped = TRUE;
++			} else if (vname) {
++				g_snprintf (item->name,
++					    sizeof (item->name), "%s",
++					    vname);
++				if (!xkl_config_registry_find_variant
++				    (xkl_registry, lname, item)) {
++					xkl_debug (100,
++						   "Bad variant [%s(%s)]\n",
++						   lname, vname);
++					should_be_dropped = TRUE;
++				}
++			}
++			if (should_be_dropped) {
++				gkbd_strv_behead (lv);
++				any_change = TRUE;
++				continue;
++			}
++		}
++		lv++;
++	}
++	g_object_unref (item);
++	return any_change;
++}
++
++static void
++apply_xkb_settings (void)
++{
++	GkbdKeyboardConfig current_sys_kbd_config;
++
++	if (!inited_ok)
++		return;
++
++	gkbd_keyboard_config_init (&current_sys_kbd_config, xkl_engine);
++
++	gkbd_keyboard_config_load (&current_kbd_config,
++				   &initial_sys_kbd_config);
++
++	gkbd_keyboard_config_load_from_x_current (&current_sys_kbd_config,
++						  NULL);
++
++	if (!try_activating_xkb_config_if_new (&current_sys_kbd_config)) {
++		if (filter_xkb_config ()) {
++			if (!try_activating_xkb_config_if_new
++			    (&current_sys_kbd_config)) {
++				g_warning
++				    ("Could not activate the filtered XKB configuration");
++				activation_error ();
++			}
++		} else {
++			g_warning
++			    ("Could not activate the XKB configuration");
++			activation_error ();
++		}
++	} else
++		xkl_debug (100,
++			   "Actual KBD configuration was not changed: redundant notification\n");
++
++	gkbd_keyboard_config_term (&current_sys_kbd_config);
++	show_hide_icon ();
++}
++
++static void
++csd_keyboard_xkb_analyze_sysconfig (void)
++{
++	if (!inited_ok)
++		return;
++
++	gkbd_keyboard_config_init (&initial_sys_kbd_config, xkl_engine);
++	gkbd_keyboard_config_load_from_x_initial (&initial_sys_kbd_config,
++						  NULL);
++}
++
++void
++csd_keyboard_xkb_set_post_activation_callback (PostActivationCallback fun,
++					       void *user_data)
++{
++	pa_callback = fun;
++	pa_callback_user_data = user_data;
++}
++
++static GdkFilterReturn
++csd_keyboard_xkb_evt_filter (GdkXEvent * xev, GdkEvent * event)
++{
++	XEvent *xevent = (XEvent *) xev;
++	xkl_engine_filter_events (xkl_engine, xevent);
++	return GDK_FILTER_CONTINUE;
++}
++
++/* When new Keyboard is plugged in - reload the settings */
++static void
++csd_keyboard_new_device (XklEngine * engine)
++{
++	apply_desktop_settings ();
++	apply_xkb_settings ();
++}
++
++void
++csd_keyboard_xkb_init (CsdKeyboardManager * kbd_manager)
++{
++	Display *display =
++	    GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
++	cinnamon_settings_profile_start (NULL);
++
++	gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (),
++					   DATADIR G_DIR_SEPARATOR_S
++					   "icons");
++
++	manager = kbd_manager;
++	cinnamon_settings_profile_start ("xkl_engine_get_instance");
++	xkl_engine = xkl_engine_get_instance (display);
++	cinnamon_settings_profile_end ("xkl_engine_get_instance");
++	if (xkl_engine) {
++		inited_ok = TRUE;
++
++		gkbd_desktop_config_init (&current_config, xkl_engine);
++		gkbd_keyboard_config_init (&current_kbd_config,
++					   xkl_engine);
++		xkl_engine_backup_names_prop (xkl_engine);
++		csd_keyboard_xkb_analyze_sysconfig ();
++
++		settings_desktop = g_settings_new (GKBD_DESKTOP_SCHEMA);
++		settings_keyboard = g_settings_new (GKBD_KEYBOARD_SCHEMA);
++		g_signal_connect (settings_desktop, "changed",
++				  (GCallback) apply_desktop_settings,
++				  NULL);
++		g_signal_connect (settings_keyboard, "changed",
++				  (GCallback) apply_xkb_settings, NULL);
++
++		gdk_window_add_filter (NULL, (GdkFilterFunc)
++				       csd_keyboard_xkb_evt_filter, NULL);
++
++		if (xkl_engine_get_features (xkl_engine) &
++		    XKLF_DEVICE_DISCOVERY)
++			g_signal_connect (xkl_engine, "X-new-device",
++					  G_CALLBACK
++					  (csd_keyboard_new_device), NULL);
++
++		cinnamon_settings_profile_start ("xkl_engine_start_listen");
++		xkl_engine_start_listen (xkl_engine,
++					 XKLL_MANAGE_LAYOUTS |
++					 XKLL_MANAGE_WINDOW_STATES);
++		cinnamon_settings_profile_end ("xkl_engine_start_listen");
++
++		cinnamon_settings_profile_start ("apply_desktop_settings");
++		apply_desktop_settings ();
++		cinnamon_settings_profile_end ("apply_desktop_settings");
++		cinnamon_settings_profile_start ("apply_xkb_settings");
++		apply_xkb_settings ();
++		cinnamon_settings_profile_end ("apply_xkb_settings");
++	}
++	preview_dialogs = g_hash_table_new (g_direct_hash, g_direct_equal);
++
++	cinnamon_settings_profile_end (NULL);
++}
++
++void
++csd_keyboard_xkb_shutdown (void)
++{
++	if (!inited_ok)
++		return;
++
++	pa_callback = NULL;
++	pa_callback_user_data = NULL;
++	manager = NULL;
++
++	if (preview_dialogs != NULL)
++		g_hash_table_destroy (preview_dialogs);
++
++	if (!inited_ok)
++		return;
++
++	xkl_engine_stop_listen (xkl_engine,
++				XKLL_MANAGE_LAYOUTS |
++				XKLL_MANAGE_WINDOW_STATES);
++
++	gdk_window_remove_filter (NULL, (GdkFilterFunc)
++				  csd_keyboard_xkb_evt_filter, NULL);
++
++	g_object_unref (settings_desktop);
++	settings_desktop = NULL;
++	g_object_unref (settings_keyboard);
++	settings_keyboard = NULL;
++
++	if (xkl_registry) {
++		g_object_unref (xkl_registry);
++	}
++
++	g_object_unref (xkl_engine);
++
++	xkl_engine = NULL;
++
++	inited_ok = FALSE;
++}
+diff -uNrp a/plugins/keyboard/xxx/csd-keyboard-xkb.h b/plugins/keyboard/xxx/csd-keyboard-xkb.h
+--- a/plugins/keyboard/xxx/csd-keyboard-xkb.h	1970-01-01 01:00:00.000000000 +0100
++++ b/plugins/keyboard/xxx/csd-keyboard-xkb.h	2013-08-25 16:36:02.000000000 +0100
+@@ -0,0 +1,39 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
++ * cinnamon-settings-keyboard-xkb.h
++ *
++ * Copyright (C) 2001 Udaltsoft
++ *
++ * Written by Sergey V. Oudaltsov <svu@users.sourceforge.net>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA
++ * 02110-1335, USA.
++ */
++
++#ifndef __CSD_KEYBOARD_XKB_H
++#define __CSD_KEYBOARD_XKB_H
++
++#include <libxklavier/xklavier.h>
++#include "csd-keyboard-manager.h"
++
++void csd_keyboard_xkb_init (CsdKeyboardManager *manager);
++void csd_keyboard_xkb_shutdown (void);
++
++typedef void (*PostActivationCallback) (void *userData);
++
++void
++csd_keyboard_xkb_set_post_activation_callback (PostActivationCallback fun,
++                                               void                  *userData);
++
++#endif
+diff -uNrp a/plugins/keyboard/xxx/delayed-dialog.c b/plugins/keyboard/xxx/delayed-dialog.c
+--- a/plugins/keyboard/xxx/delayed-dialog.c	1970-01-01 01:00:00.000000000 +0100
++++ b/plugins/keyboard/xxx/delayed-dialog.c	2013-08-25 16:36:02.000000000 +0100
+@@ -0,0 +1,128 @@
++/*
++ * Copyright © 2006 Novell, Inc.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2, or (at
++ * your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA
++ * 02110-1335, USA.
++ */
++
++#include <stdlib.h>
++#include <string.h>
++
++#include <gtk/gtk.h>
++#include <gdk/gdkx.h>
++
++#include "delayed-dialog.h"
++
++static gboolean        delayed_show_timeout (gpointer   data);
++static GdkFilterReturn message_filter       (GdkXEvent *xevent,
++                                             GdkEvent  *event,
++                                             gpointer   data);
++
++static GSList *dialogs = NULL;
++
++/**
++ * csd_delayed_show_dialog:
++ * @dialog: the dialog
++ *
++ * Shows the dialog as with gtk_widget_show(), unless a window manager
++ * hasn't been started yet, in which case it will wait up to 5 seconds
++ * for that to happen before showing the dialog.
++ **/
++void
++csd_delayed_show_dialog (GtkWidget *dialog)
++{
++        GdkDisplay *display = gtk_widget_get_display (dialog);
++        Display *xdisplay = GDK_DISPLAY_XDISPLAY (display);
++        GdkScreen *screen = gtk_widget_get_screen (dialog);
++        char selection_name[10];
++        Atom selection_atom;
++
++        /* We can't use gdk_selection_owner_get() for this, because
++         * it's an unknown out-of-process window.
++         */
++        snprintf (selection_name, sizeof (selection_name), "WM_S%d",
++                  gdk_screen_get_number (screen));
++        selection_atom = XInternAtom (xdisplay, selection_name, True);
++        if (selection_atom &&
++            XGetSelectionOwner (xdisplay, selection_atom) != None) {
++                gtk_widget_show (dialog);
++                return;
++        }
++
++        dialogs = g_slist_prepend (dialogs, dialog);
++
++        gdk_window_add_filter (NULL, message_filter, NULL);
++
++        g_timeout_add (5000, delayed_show_timeout, NULL);
++}
++
++static gboolean
++delayed_show_timeout (gpointer data)
++{
++        GSList *l;
++
++        for (l = dialogs; l; l = l->next)
++                gtk_widget_show (l->data);
++        g_slist_free (dialogs);
++        dialogs = NULL;
++
++        /* FIXME: There's no gdk_display_remove_client_message_filter */
++
++        return FALSE;
++}
++
++static GdkFilterReturn
++message_filter (GdkXEvent *xevent, GdkEvent *event, gpointer data)
++{
++        XClientMessageEvent *evt;
++        char *selection_name;
++        int screen;
++        GSList *l, *next;
++
++        if (((XEvent *)xevent)->type != ClientMessage)
++          return GDK_FILTER_CONTINUE;
++
++        evt = (XClientMessageEvent *)xevent;
++
++        if (evt->message_type != XInternAtom (evt->display, "MANAGER", FALSE))
++          return GDK_FILTER_CONTINUE;
++
++        selection_name = XGetAtomName (evt->display, evt->data.l[1]);
++
++        if (strncmp (selection_name, "WM_S", 4) != 0) {
++                XFree (selection_name);
++                return GDK_FILTER_CONTINUE;
++        }
++
++        screen = atoi (selection_name + 4);
++
++        for (l = dialogs; l; l = next) {
++                GtkWidget *dialog = l->data;
++                next = l->next;
++
++                if (gdk_screen_get_number (gtk_widget_get_screen (dialog)) == screen) {
++                        gtk_widget_show (dialog);
++                        dialogs = g_slist_remove (dialogs, dialog);
++                }
++        }
++
++        if (!dialogs) {
++                gdk_window_remove_filter (NULL, message_filter, NULL);
++        }
++
++        XFree (selection_name);
++
++        return GDK_FILTER_CONTINUE;
++}
+diff -uNrp a/plugins/keyboard/xxx/delayed-dialog.h b/plugins/keyboard/xxx/delayed-dialog.h
+--- a/plugins/keyboard/xxx/delayed-dialog.h	1970-01-01 01:00:00.000000000 +0100
++++ b/plugins/keyboard/xxx/delayed-dialog.h	2013-08-25 16:36:02.000000000 +0100
+@@ -0,0 +1,32 @@
++/*
++ * Copyright © 2006 Novell, Inc.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2, or (at
++ * your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA
++ * 02110-1335, USA.
++ */
++
++
++#ifndef __DELAYED_DIALOG_H
++#define __DELAYED_DIALOG_H
++
++#include <gtk/gtk.h>
++
++G_BEGIN_DECLS
++
++void            csd_delayed_show_dialog (GtkWidget *dialog);
++
++G_END_DECLS
++
++#endif
+diff -uNrp a/plugins/keyboard/xxx/gkbd-configuration.c b/plugins/keyboard/xxx/gkbd-configuration.c
+--- a/plugins/keyboard/xxx/gkbd-configuration.c	1970-01-01 01:00:00.000000000 +0100
++++ b/plugins/keyboard/xxx/gkbd-configuration.c	2013-08-25 16:36:02.000000000 +0100
+@@ -0,0 +1,350 @@
++/*
++ * Copyright (C) 2010 Canonical Ltd.
++ * 
++ * Authors: Jan Arne Petersen <jpetersen@openismus.com>
++ * 
++ * Based on gkbd-status.c by Sergey V. Udaltsov <svu@gnome.org>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the
++ * Free Software Foundation, Inc., 51 Franklin Street - Suite 500,
++ * Boston, MA 02110-1335, USA.
++ */
++
++#include <memory.h>
++
++#include <gdk/gdkkeysyms.h>
++#include <gdk/gdkx.h>
++#include <glib/gi18n.h>
++
++#include <libgnomekbd/gkbd-desktop-config.h>
++#include <libgnomekbd/gkbd-indicator-config.h>
++
++#include "gkbd-configuration.h"
++
++struct _GkbdConfigurationPrivate {
++	XklEngine *engine;
++	XklConfigRegistry *registry;
++
++	GkbdDesktopConfig cfg;
++	GkbdIndicatorConfig ind_cfg;
++	GkbdKeyboardConfig kbd_cfg;
++
++	gchar **full_group_names;
++	gchar **short_group_names;
++
++	gulong state_changed_handler;
++	gulong config_changed_handler;
++};
++
++enum {
++	SIGNAL_CHANGED,
++	SIGNAL_GROUP_CHANGED,
++	LAST_SIGNAL
++};
++
++static guint signals[LAST_SIGNAL] = { 0, };
++
++#define GKBD_CONFIGURATION_GET_PRIVATE(o) \
++	(G_TYPE_INSTANCE_GET_PRIVATE ((o), GKBD_TYPE_CONFIGURATION, GkbdConfigurationPrivate))
++
++G_DEFINE_TYPE (GkbdConfiguration, gkbd_configuration, G_TYPE_OBJECT)
++
++/* Should be called once for all widgets */
++static void
++gkbd_configuration_cfg_changed (GSettings *settings,
++				 const char *key,
++				 GkbdConfiguration * configuration)
++{
++	GkbdConfigurationPrivate *priv = configuration->priv;
++
++	xkl_debug (100,
++		   "General configuration changed in GSettings - reiniting...\n");
++	gkbd_desktop_config_load (&priv->cfg);
++	gkbd_desktop_config_activate (&priv->cfg);
++
++	g_signal_emit (configuration,
++		       signals[SIGNAL_CHANGED], 0);
++}
++
++/* Should be called once for all widgets */
++static void
++gkbd_configuration_ind_cfg_changed (GSettings *settings,
++				     const char *key,
++				     GkbdConfiguration * configuration)
++{
++	GkbdConfigurationPrivate *priv = configuration->priv;
++	xkl_debug (100,
++		   "Applet configuration changed in GSettings - reiniting...\n");
++	gkbd_indicator_config_load (&priv->ind_cfg);
++
++	gkbd_indicator_config_free_image_filenames (&priv->ind_cfg);
++	gkbd_indicator_config_load_image_filenames (&priv->ind_cfg,
++						    &priv->kbd_cfg);
++
++	gkbd_indicator_config_activate (&priv->ind_cfg);
++
++	g_signal_emit (configuration,
++		       signals[SIGNAL_CHANGED], 0);
++}
++
++static void
++gkbd_configuration_load_group_names (GkbdConfiguration * configuration,
++				     XklConfigRec * xklrec)
++{
++	GkbdConfigurationPrivate *priv = configuration->priv;
++
++	if (!gkbd_desktop_config_load_group_descriptions (&priv->cfg,
++							  priv->registry,
++							  (const char **) xklrec->layouts,
++							  (const char **) xklrec->variants,
++	     						  &priv->short_group_names,
++							  &priv->full_group_names)) {
++		/* We just populate no short names (remain NULL) - 
++		 * full names are going to be used anyway */
++		gint i, total_groups =
++		    xkl_engine_get_num_groups (priv->engine);
++		xkl_debug (150, "group descriptions loaded: %d!\n",
++			   total_groups);
++		priv->full_group_names =
++		    g_new0 (char *, total_groups + 1);
++
++		if (xkl_engine_get_features (priv->engine) &
++		    XKLF_MULTIPLE_LAYOUTS_SUPPORTED) {
++			for (i = 0; priv->kbd_cfg.layouts_variants[i]; i++) {
++				priv->full_group_names[i] =
++				    g_strdup ((char *) priv->kbd_cfg.layouts_variants[i]);
++			}
++		} else {
++			for (i = total_groups; --i >= 0;) {
++				priv->full_group_names[i] =
++				    g_strdup_printf ("Group %d", i);
++			}
++		}
++	}
++}
++
++/* Should be called once for all widgets */
++static void
++gkbd_configuration_kbd_cfg_callback (XklEngine *engine,
++				     GkbdConfiguration *configuration)
++{
++	GkbdConfigurationPrivate *priv = configuration->priv;
++	XklConfigRec *xklrec = xkl_config_rec_new ();
++	xkl_debug (100,
++		   "XKB configuration changed on X Server - reiniting...\n");
++
++	gkbd_keyboard_config_load_from_x_current (&priv->kbd_cfg,
++						  xklrec);
++
++	gkbd_indicator_config_free_image_filenames (&priv->ind_cfg);
++	gkbd_indicator_config_load_image_filenames (&priv->ind_cfg,
++						    &priv->kbd_cfg);
++
++	g_strfreev (priv->full_group_names);
++	priv->full_group_names = NULL;
++
++	g_strfreev (priv->short_group_names);
++	priv->short_group_names = NULL;
++
++	gkbd_configuration_load_group_names (configuration,
++				 	     xklrec);
++
++	g_signal_emit (configuration,
++		       signals[SIGNAL_CHANGED],
++		       0);
++
++	g_object_unref (G_OBJECT (xklrec));
++}
++
++/* Should be called once for all applets */
++static void
++gkbd_configuration_state_callback (XklEngine * engine,
++				   XklEngineStateChange changeType,
++			    	   gint group, gboolean restore,
++				   GkbdConfiguration * configuration)
++{
++	xkl_debug (150, "group is now %d, restore: %d\n", group, restore);
++
++	if (changeType == GROUP_CHANGED) {
++		g_signal_emit (configuration,
++			       signals[SIGNAL_GROUP_CHANGED], 0,
++			       group);
++	}
++}
++
++static void
++gkbd_configuration_init (GkbdConfiguration *configuration)
++{
++	GkbdConfigurationPrivate *priv;
++	XklConfigRec *xklrec = xkl_config_rec_new ();
++
++	priv = GKBD_CONFIGURATION_GET_PRIVATE (configuration);
++	configuration->priv = priv;
++
++	priv->engine = xkl_engine_get_instance (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()));
++	if (priv->engine == NULL) {
++		xkl_debug (0, "Libxklavier initialization error");
++		return;
++	}
++
++	priv->state_changed_handler =
++	    g_signal_connect (priv->engine, "X-state-changed",
++			      G_CALLBACK (gkbd_configuration_state_callback),
++			      configuration);
++	priv->config_changed_handler =
++	    g_signal_connect (priv->engine, "X-config-changed",
++			      G_CALLBACK (gkbd_configuration_kbd_cfg_callback),
++			      configuration);
++
++	gkbd_desktop_config_init (&priv->cfg, priv->engine);
++	gkbd_keyboard_config_init (&priv->kbd_cfg, priv->engine);
++	gkbd_indicator_config_init (&priv->ind_cfg, priv->engine);
++
++	gkbd_desktop_config_load (&priv->cfg);
++	gkbd_desktop_config_activate (&priv->cfg);
++
++	priv->registry = xkl_config_registry_get_instance (priv->engine);
++	xkl_config_registry_load (priv->registry,
++				  priv->cfg.load_extra_items);
++
++	gkbd_keyboard_config_load_from_x_current (&priv->kbd_cfg,
++						  xklrec);
++
++	gkbd_indicator_config_load (&priv->ind_cfg);
++
++	gkbd_indicator_config_load_image_filenames (&priv->ind_cfg,
++						    &priv->kbd_cfg);
++
++	gkbd_indicator_config_activate (&priv->ind_cfg);
++
++	gkbd_configuration_load_group_names (configuration,
++					     xklrec);
++	g_object_unref (G_OBJECT (xklrec));
++
++	gkbd_desktop_config_start_listen (&priv->cfg,
++					  G_CALLBACK (gkbd_configuration_cfg_changed),
++					  configuration);
++	gkbd_indicator_config_start_listen (&priv->ind_cfg,
++					    G_CALLBACK (gkbd_configuration_ind_cfg_changed),
++					    configuration);
++	xkl_engine_start_listen (priv->engine,
++				 XKLL_TRACK_KEYBOARD_STATE);
++
++	xkl_debug (100, "Initiating the widget startup process for %p\n",
++		   configuration);
++}
++
++static void
++gkbd_configuration_finalize (GObject * obj)
++{
++	GkbdConfiguration *configuration = GKBD_CONFIGURATION (obj);
++	GkbdConfigurationPrivate *priv = configuration->priv;
++
++	xkl_debug (100,
++		   "Starting the gnome-kbd-configuration widget shutdown process for %p\n",
++		   configuration);
++
++	xkl_engine_stop_listen (priv->engine,
++				XKLL_TRACK_KEYBOARD_STATE);
++
++	gkbd_desktop_config_stop_listen (&priv->cfg);
++	gkbd_indicator_config_stop_listen (&priv->ind_cfg);
++
++	gkbd_indicator_config_term (&priv->ind_cfg);
++	gkbd_keyboard_config_term (&priv->kbd_cfg);
++	gkbd_desktop_config_term (&priv->cfg);
++
++	if (g_signal_handler_is_connected (priv->engine,
++					   priv->state_changed_handler)) {
++		g_signal_handler_disconnect (priv->engine,
++					     priv->state_changed_handler);
++		priv->state_changed_handler = 0;
++	}
++	if (g_signal_handler_is_connected (priv->engine,
++					   priv->config_changed_handler)) {
++		g_signal_handler_disconnect (priv->engine,
++					     priv->config_changed_handler);
++		priv->config_changed_handler = 0;
++	}
++
++	g_object_unref (priv->registry);
++	priv->registry = NULL;
++	g_object_unref (priv->engine);
++	priv->engine = NULL;
++
++	G_OBJECT_CLASS (gkbd_configuration_parent_class)->finalize (obj);
++}
++
++static void
++gkbd_configuration_class_init (GkbdConfigurationClass * klass)
++{
++	GObjectClass *object_class = G_OBJECT_CLASS (klass);
++
++	/* Initing vtable */
++	object_class->finalize = gkbd_configuration_finalize;
++
++	/* Signals */
++	signals[SIGNAL_CHANGED] = g_signal_new ("changed",
++						GKBD_TYPE_CONFIGURATION,
++						G_SIGNAL_RUN_LAST,
++						0,
++						NULL, NULL,
++						g_cclosure_marshal_VOID__VOID,
++						G_TYPE_NONE,
++						0);
++	signals[SIGNAL_GROUP_CHANGED] = g_signal_new ("group-changed",
++						      GKBD_TYPE_CONFIGURATION,
++						      G_SIGNAL_RUN_LAST,
++						      0,
++						      NULL, NULL,
++						      g_cclosure_marshal_VOID__INT,
++						      G_TYPE_NONE,
++						      1,
++						      G_TYPE_INT);
++
++	g_type_class_add_private (klass, sizeof (GkbdConfigurationPrivate));
++}
++
++GkbdConfiguration *
++gkbd_configuration_get (void)
++{
++	static gpointer instance = NULL;
++
++	if (!instance) {
++		instance = g_object_new (GKBD_TYPE_CONFIGURATION, NULL);
++		g_object_add_weak_pointer (instance, &instance);
++	} else {
++		g_object_ref (instance);
++	}
++
++	return instance;
++}
++
++XklEngine *
++gkbd_configuration_get_xkl_engine (GkbdConfiguration *configuration)
++{
++	return configuration->priv->engine;
++}
++
++const char * const *
++gkbd_configuration_get_group_names (GkbdConfiguration *configuration)
++{
++	return configuration->priv->full_group_names;
++}
++
++const char * const *
++gkbd_configuration_get_short_group_names (GkbdConfiguration *configuration)
++{
++	return configuration->priv->short_group_names;
++}
+diff -uNrp a/plugins/keyboard/xxx/gkbd-configuration.h b/plugins/keyboard/xxx/gkbd-configuration.h
+--- a/plugins/keyboard/xxx/gkbd-configuration.h	1970-01-01 01:00:00.000000000 +0100
++++ b/plugins/keyboard/xxx/gkbd-configuration.h	2013-08-25 16:36:02.000000000 +0100
+@@ -0,0 +1,65 @@
++/*
++ * Copyright (C) 2010 Canonical Ltd.
++ * 
++ * Authors: Jan Arne Petersen <jpetersen@openismus.com>
++ * 
++ * Based on gkbd-status.h by Sergey V. Udaltsov <svu@gnome.org>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the
++ * Free Software Foundation, Inc., 51 Franklin Street - Suite 500,
++ * Boston, MA 02110-1335, USA.
++ */
++
++#ifndef __GKBD_CONFIGURATION_H__
++#define __GKBD_CONFIGURATION_H__
++
++#include <glib-object.h>
++
++#include <libxklavier/xklavier.h>
++
++G_BEGIN_DECLS
++
++typedef struct _GkbdConfiguration GkbdConfiguration;
++typedef struct _GkbdConfigurationPrivate GkbdConfigurationPrivate;
++typedef struct _GkbdConfigurationClass GkbdConfigurationClass;
++
++#define GKBD_TYPE_CONFIGURATION           (gkbd_configuration_get_type ())
++#define GKBD_CONFIGURATION(obj)           (G_TYPE_CHECK_INSTANCE_CAST ((obj), GKBD_TYPE_CONFIGURATION, GkbdConfiguration))
++#define GKBD_INDCATOR_CLASS(obj)          (G_TYPE_CHECK_CLASS_CAST ((obj), GKBD_TYPE_CONFIGURATION,  GkbdConfigurationClass))
++#define GKBD_IS_CONFIGURATION(obj)        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GKBD_TYPE_CONFIGURATION))
++#define GKBD_IS_CONFIGURATION_CLASS(obj)  (G_TYPE_CHECK_CLASS_TYPE ((obj), GKBD_TYPE_CONFIGURATION))
++#define GKBD_CONFIGURATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GKBD_TYPE_CONFIGURATION, GkbdConfigurationClass))
++
++struct _GkbdConfiguration {
++	GObject parent;
++
++	GkbdConfigurationPrivate *priv;
++};
++
++struct _GkbdConfigurationClass {
++	GObjectClass parent_class;
++};
++
++extern GType gkbd_configuration_get_type (void);
++
++extern GkbdConfiguration *gkbd_configuration_get (void);
++
++extern XklEngine *gkbd_configuration_get_xkl_engine (GkbdConfiguration *configuration);
++
++extern const char * const *gkbd_configuration_get_group_names (GkbdConfiguration *configuration);
++extern const char * const *gkbd_configuration_get_short_group_names (GkbdConfiguration *configuration);
++
++G_END_DECLS
++
++#endif
+diff -uNrp a/plugins/media-keys/csd-media-keys-manager.c b/plugins/media-keys/csd-media-keys-manager.c
+--- a/plugins/media-keys/csd-media-keys-manager.c	2013-08-24 18:04:31.000000000 +0100
++++ b/plugins/media-keys/csd-media-keys-manager.c	2013-08-25 16:36:02.000000000 +0100
+@@ -120,6 +120,10 @@ static const gchar kb_introspection_xml[
+ #define VOLUME_STEP 6           /* percents for one volume button press */
+ #define MAX_VOLUME 65536.0
+ 
++#define GNOME_DESKTOP_INPUT_SOURCES_DIR "org.cinnamon.desktop.input-sources"
++#define KEY_CURRENT_INPUT_SOURCE "current"
++#define KEY_INPUT_SOURCES        "sources"
++
+ #define CSD_MEDIA_KEYS_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CSD_TYPE_MEDIA_KEYS_MANAGER, CsdMediaKeysManagerPrivate))
+ 
+ typedef struct {
+@@ -1750,6 +1754,40 @@ do_keyboard_brightness_action (CsdMediaK
+                            manager);
+ }
+ 
++static void
++do_switch_input_source_action (CsdMediaKeysManager *manager,
++                               MediaKeyType         type)
++{
++        GSettings *settings;
++        GVariant *sources;
++        gint i, n;
++
++        settings = g_settings_new (GNOME_DESKTOP_INPUT_SOURCES_DIR);
++        sources = g_settings_get_value (settings, KEY_INPUT_SOURCES);
++
++        n = g_variant_n_children (sources);
++        if (n < 2)
++                goto out;
++
++        i = g_settings_get_uint (settings, KEY_CURRENT_INPUT_SOURCE);
++
++        if (type == SWITCH_INPUT_SOURCE_KEY)
++                i += 1;
++        else
++                i -= 1;
++
++        if (i < 0)
++                i = n - 1;
++        else if (i >= n)
++                i = 0;
++
++        g_settings_set_uint (settings, KEY_CURRENT_INPUT_SOURCE, i);
++
++ out:
++        g_variant_unref (sources);
++        g_object_unref (settings);
++}
++
+ static gboolean
+ do_action (CsdMediaKeysManager *manager,
+            guint                deviceid,
+@@ -1908,6 +1946,10 @@ do_action (CsdMediaKeysManager *manager,
+         case BATTERY_KEY:
+                 do_execute_desktop (manager, "gnome-power-statistics.desktop", timestamp);
+                 break;
++        case SWITCH_INPUT_SOURCE_KEY:
++        case SWITCH_INPUT_SOURCE_BACKWARD_KEY:
++                do_switch_input_source_action (manager, type);
++                break;
+         /* Note, no default so compiler catches missing keys */
+         case CUSTOM_KEY:
+                 g_assert_not_reached ();
+diff -uNrp a/plugins/media-keys/shortcuts-list.h b/plugins/media-keys/shortcuts-list.h
+--- a/plugins/media-keys/shortcuts-list.h	2013-08-24 18:04:31.000000000 +0100
++++ b/plugins/media-keys/shortcuts-list.h	2013-08-25 16:36:02.000000000 +0100
+@@ -81,6 +81,8 @@ typedef enum {
+         KEYBOARD_BRIGHTNESS_DOWN_KEY,
+         KEYBOARD_BRIGHTNESS_TOGGLE_KEY,
+         BATTERY_KEY,
++        SWITCH_INPUT_SOURCE_KEY,
++        SWITCH_INPUT_SOURCE_BACKWARD_KEY,
+         CUSTOM_KEY
+ } MediaKeyType;
+ 
+@@ -148,6 +150,9 @@ static struct {
+         { KEYBOARD_BRIGHTNESS_UP_KEY, NULL, "XF86KbdBrightnessUp" },
+         { KEYBOARD_BRIGHTNESS_DOWN_KEY, NULL, "XF86KbdBrightnessDown" },
+         { KEYBOARD_BRIGHTNESS_TOGGLE_KEY, NULL, "XF86KbdLightOnOff" },
++        { SWITCH_INPUT_SOURCE_KEY, "switch-input-source", NULL },
++        { SWITCH_INPUT_SOURCE_BACKWARD_KEY, "switch-input-source-backward", NULL },
++
+         { BATTERY_KEY, NULL, "XF86Battery" },
+ };
+ 
diff --git a/pkgs/desktops/cinnamon/region.patch b/pkgs/desktops/cinnamon/region.patch
new file mode 100644
index 000000000000..7b8133e820ed
--- /dev/null
+++ b/pkgs/desktops/cinnamon/region.patch
@@ -0,0 +1,5314 @@
+ 
+diff -uNrp a/configure.ac b/configure.ac
+--- a/configure.ac	2013-08-25 14:40:14.000000000 +0100
++++ b/configure.ac	2013-08-25 16:50:30.000000000 +0100
+@@ -82,6 +82,22 @@ else
+   SYSTEMD=
+ fi
+ 
++# IBus support
++IBUS_REQUIRED_VERSION=1.4.2
++
++#AC_ARG_ENABLE(ibus,
++#        AS_HELP_STRING([--disable-ibus],
++#                       [Disable IBus support]),
++#        enable_ibus=$enableval,
++#        enable_ibus=yes)
++enable_ibus=yes
++#if test "x$enable_ibus" = "xyes" ; then
++IBUS_MODULE="ibus-1.0 >= $IBUS_REQUIRED_VERSION"
++AC_DEFINE(HAVE_IBUS, 1, [Defined if IBus support is enabled])
++#else
++#        IBUS_MODULE=
++#fi
++
+ dnl ==============================================
+ dnl Check that we meet the  dependencies
+ dnl ==============================================
+@@ -119,9 +135,10 @@ PKG_CHECK_MODULES(NETWORK_PANEL, $COMMON
+ PKG_CHECK_MODULES(POWER_PANEL, $COMMON_MODULES upower-glib >= 0.9.1
+                   cinnamon-settings-daemon >= $CSD_REQUIRED_VERSION)
+ PKG_CHECK_MODULES(COLOR_PANEL, $COMMON_MODULES colord >= 0.1.8)
+-PKG_CHECK_MODULES(REGION_PANEL, $COMMON_MODULES libgnomekbd >= 2.91.91
++PKG_CHECK_MODULES(REGION_PANEL, $COMMON_MODULES
+                   polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION
+-                  libxklavier >= 5.1 libgnomekbdui >= 2.91.91)
++                  cinnamon-desktop >= $CINNAMON_DESKTOP_REQUIRED_VERSION
++                  $IBUS_MODULE)
+ PKG_CHECK_MODULES(SCREEN_PANEL, $COMMON_MODULES)
+ PKG_CHECK_MODULES(SOUND_PANEL, $COMMON_MODULES libxml-2.0
+                   libcanberra-gtk3 >= $CANBERRA_REQUIRED_VERSION
+diff -uNrp a/panels/region/cc-region-panel.c b/panels/region/cc-region-panel.c
+--- a/panels/region/cc-region-panel.c	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/cc-region-panel.c	2013-09-21 13:24:15.329949897 +0100
+@@ -18,17 +18,18 @@
+  * Author: Sergey Udaltsov <svu@gnome.org>
+  *
+  */
+-#include "config.h"
++
+ #include "cc-region-panel.h"
++#include <config.h>
+ #include <gtk/gtk.h>
+ #include <glib/gi18n-lib.h>
+ 
+-#include "cinnamon-region-panel-xkb.h"
++#include "cinnamon-region-panel-input.h"
+ #include "cinnamon-region-panel-lang.h"
+ #include "cinnamon-region-panel-formats.h"
+ #include "cinnamon-region-panel-system.h"
+ 
+-G_DEFINE_DYNAMIC_TYPE (CcRegionPanel, cc_region_panel, CC_TYPE_PANEL)
++CC_PANEL_REGISTER (CcRegionPanel, cc_region_panel)
+ 
+ #define REGION_PANEL_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CC_TYPE_REGION_PANEL, CcRegionPanelPrivate))
+ 
+@@ -48,14 +49,6 @@ enum {
+ 	SYSTEM_PAGE
+ };
+ 
+-
+-static gboolean
+-languages_link_cb (GtkButton *button, gpointer user_data)
+-{
+-    g_spawn_command_line_async ("gnome-language-selector", NULL);
+-    return TRUE;
+-}
+-
+ static void
+ cc_region_panel_set_page (CcRegionPanel *panel,
+ 			  const char    *page)
+@@ -116,13 +109,22 @@ cc_region_panel_finalize (GObject * obje
+ 	G_OBJECT_CLASS (cc_region_panel_parent_class)->finalize (object);
+ }
+ 
++static const char *
++cc_region_panel_get_help_uri (CcPanel *panel)
++{
++  return "help:gnome-help/prefs-language";
++}
++
+ static void
+ cc_region_panel_class_init (CcRegionPanelClass * klass)
+ {
+ 	GObjectClass *object_class = G_OBJECT_CLASS (klass);
++	CcPanelClass * panel_class = CC_PANEL_CLASS (klass);
+ 
+ 	g_type_class_add_private (klass, sizeof (CcRegionPanelPrivate));
+ 
++	panel_class->get_help_uri = cc_region_panel_get_help_uri;
++
+ 	object_class->set_property = cc_region_panel_set_property;
+ 	object_class->finalize = cc_region_panel_finalize;
+ 
+@@ -130,22 +132,14 @@ cc_region_panel_class_init (CcRegionPane
+ }
+ 
+ static void
+-cc_region_panel_class_finalize (CcRegionPanelClass * klass)
+-{
+-}
+-
+-static void
+ cc_region_panel_init (CcRegionPanel * self)
+ {
+ 	CcRegionPanelPrivate *priv;
+ 	GtkWidget *prefs_widget;
+-	const char *desktop;
+ 	GError *error = NULL;
+ 
+ 	priv = self->priv = REGION_PANEL_PRIVATE (self);
+ 
+-	desktop = g_getenv ("XDG_CURRENT_DESKTOP");
+-
+ 	priv->builder = gtk_builder_new ();
+     gtk_builder_set_translation_domain (priv->builder, GETTEXT_PACKAGE);
+ 	gtk_builder_add_from_file (priv->builder,
+@@ -157,29 +151,16 @@ cc_region_panel_init (CcRegionPanel * se
+ 		return;
+ 	}
+ 
+-    prefs_widget = (GtkWidget *) gtk_builder_get_object (priv->builder,
+-                                                         "region_notebook");
+-
++	prefs_widget = (GtkWidget *) gtk_builder_get_object (priv->builder,
++							     "region_notebook");
+ 	gtk_widget_set_size_request (GTK_WIDGET (prefs_widget), -1, 400);
+ 
+ 	gtk_widget_reparent (prefs_widget, GTK_WIDGET (self));
+ 
+-    setup_xkb_tabs (priv->builder);
+-
+-    setup_language (priv->builder);
+-    setup_formats (priv->builder);
+-    setup_system (priv->builder);
+-
+-        /* set screen link */
+-
+-    GtkWidget *widget = GTK_WIDGET (gtk_builder_get_object (self->priv->builder,
+-                                                            "get_languages_button"));
+-
+-    gtk_button_set_label (GTK_BUTTON (widget), _("Get more languages..."));
+-
+-    g_signal_connect (widget, "clicked",
+-                      G_CALLBACK (languages_link_cb),
+-                      self);
++        setup_input_tabs (priv->builder, self);
++	setup_language (priv->builder);
++	setup_formats (priv->builder);
++	setup_system (priv->builder);
+ }
+ 
+ void
+@@ -187,6 +168,7 @@ cc_region_panel_register (GIOModule * mo
+ {
+     bindtextdomain (GETTEXT_PACKAGE, "/usr/share/cinnamon/locale");
+     bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
++
+ 	cc_region_panel_register_type (G_TYPE_MODULE (module));
+ 	g_io_extension_point_implement (CC_SHELL_PANEL_EXTENSION_POINT,
+ 					CC_TYPE_REGION_PANEL,
+diff -uNrp a/panels/region/cinnamon-region-panel-formats.h b/panels/region/cinnamon-region-panel-formats.h
+--- a/panels/region/cinnamon-region-panel-formats.h	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/cinnamon-region-panel-formats.h	2013-09-21 13:24:15.332949789 +0100
+@@ -19,8 +19,8 @@
+  * 02110-1335, USA.
+  */
+ 
+-#ifndef __GNOME_REGION_PANEL_FORMATS_H
+-#define __GNOME_REGION_PANEL_FORMATS_H
++#ifndef __CINNAMON_REGION_PANEL_FORMATS_H
++#define __CINNAMON_REGION_PANEL_FORMATS_H
+ 
+ #include <gtk/gtk.h>
+ 
+diff -uNrp a/panels/region/cinnamon-region-panel-input.c b/panels/region/cinnamon-region-panel-input.c
+--- a/panels/region/cinnamon-region-panel-input.c	1970-01-01 01:00:00.000000000 +0100
++++ b/panels/region/cinnamon-region-panel-input.c	2013-09-21 13:24:15.338949572 +0100
+@@ -0,0 +1,1563 @@
++/*
++ * Copyright (C) 2011 Red Hat, Inc.
++ *
++ * Written by: Matthias Clasen <mclasen@redhat.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA
++ * 02110-1335, USA.
++ */
++
++#include <config.h>
++
++#include <string.h>
++
++#include <glib.h>
++#include <glib/gi18n.h>
++#include <gio/gdesktopappinfo.h>
++
++#define GNOME_DESKTOP_USE_UNSTABLE_API
++#include <libcinnamon-desktop/gnome-xkb-info.h>
++
++#ifdef HAVE_IBUS
++#include <ibus.h>
++#endif
++
++#include "gdm-languages.h"
++#include "cinnamon-region-panel-input.h"
++
++#define WID(s) GTK_WIDGET(gtk_builder_get_object (builder, s))
++
++#define GNOME_DESKTOP_INPUT_SOURCES_DIR "org.cinnamon.desktop.input-sources"
++
++#define KEY_CURRENT_INPUT_SOURCE "current"
++#define KEY_INPUT_SOURCES        "sources"
++
++#define INPUT_SOURCE_TYPE_XKB  "xkb"
++#define INPUT_SOURCE_TYPE_IBUS "ibus"
++
++enum {
++  NAME_COLUMN,
++  TYPE_COLUMN,
++  ID_COLUMN,
++  SETUP_COLUMN,
++  N_COLUMNS
++};
++
++static GSettings *input_sources_settings = NULL;
++static GnomeXkbInfo *xkb_info = NULL;
++static GtkWidget *input_chooser = NULL; /* weak pointer */
++
++#ifdef HAVE_IBUS
++static IBusBus *ibus = NULL;
++static GHashTable *ibus_engines = NULL;
++static GCancellable *ibus_cancellable = NULL;
++static guint shell_name_watch_id = 0;
++
++static const gchar *supported_ibus_engines[] = {
++  /* Simplified Chinese */
++  "pinyin",
++  "bopomofo",
++  "wubi",
++  "erbi",
++  /* Default in Fedora, where ibus-libpinyin replaces ibus-pinyin */
++  "libpinyin",
++  "libbopomofo",
++
++  /* Traditional Chinese */
++  /* https://bugzilla.gnome.org/show_bug.cgi?id=680840 */
++  "chewing",
++  "cangjie5",
++  "cangjie3",
++  "quick5",
++  "quick3",
++  "stroke5",
++
++  /* Japanese */
++  "anthy",
++  "mozc-jp",
++  "skk",
++
++  /* Korean */
++  "hangul",
++
++  /* Thai */
++  "m17n:th:kesmanee",
++  "m17n:th:pattachote",
++  "m17n:th:tis820",
++
++  /* Vietnamese */
++  "m17n:vi:tcvn",
++  "m17n:vi:telex",
++  "m17n:vi:viqr",
++  "m17n:vi:vni",
++  "Unikey",
++
++  /* Sinhala */
++  "m17n:si:wijesekera",
++  "m17n:si:phonetic-dynamic",
++  "m17n:si:trans",
++  "sayura",
++
++  /* Indic */
++  /* https://fedoraproject.org/wiki/I18N/Indic#Keyboard_Layouts */
++
++  /* Assamese */
++  "m17n:as:phonetic",
++  "m17n:as:inscript",
++  "m17n:as:itrans",
++
++  /* Bengali */
++  "m17n:bn:inscript",
++  "m17n:bn:itrans",
++  "m17n:bn:probhat",
++
++  /* Gujarati */
++  "m17n:gu:inscript",
++  "m17n:gu:itrans",
++  "m17n:gu:phonetic",
++
++  /* Hindi */
++  "m17n:hi:inscript",
++  "m17n:hi:itrans",
++  "m17n:hi:phonetic",
++  "m17n:hi:remington",
++  "m17n:hi:typewriter",
++  "m17n:hi:vedmata",
++
++  /* Kannada */
++  "m17n:kn:kgp",
++  "m17n:kn:inscript",
++  "m17n:kn:itrans",
++
++  /* Kashmiri */
++  "m17n:ks:inscript",
++
++  /* Maithili */
++  "m17n:mai:inscript",
++
++  /* Malayalam */
++  "m17n:ml:inscript",
++  "m17n:ml:itrans",
++  "m17n:ml:mozhi",
++  "m17n:ml:swanalekha",
++
++  /* Marathi */
++  "m17n:mr:inscript",
++  "m17n:mr:itrans",
++  "m17n:mr:phonetic",
++
++  /* Nepali */
++  "m17n:ne:rom",
++  "m17n:ne:trad",
++
++  /* Oriya */
++  "m17n:or:inscript",
++  "m17n:or:itrans",
++  "m17n:or:phonetic",
++
++  /* Punjabi */
++  "m17n:pa:inscript",
++  "m17n:pa:itrans",
++  "m17n:pa:phonetic",
++  "m17n:pa:jhelum",
++
++  /* Sanskrit */
++  "m17n:sa:harvard-kyoto",
++
++  /* Sindhi */
++  "m17n:sd:inscript",
++
++  /* Tamil */
++  "m17n:ta:tamil99",
++  "m17n:ta:inscript",
++  "m17n:ta:itrans",
++  "m17n:ta:phonetic",
++  "m17n:ta:lk-renganathan",
++  "m17n:ta:vutam",
++  "m17n:ta:typewriter",
++
++  /* Telugu */
++  "m17n:te:inscript",
++  "m17n:te:apple",
++  "m17n:te:pothana",
++  "m17n:te:rts",
++
++  /* Urdu */
++  "m17n:ur:phonetic",
++
++  /* Inscript2 - https://bugzilla.gnome.org/show_bug.cgi?id=684854 */
++  "m17n:as:inscript2",
++  "m17n:bn:inscript2",
++  "m17n:brx:inscript2-deva",
++  "m17n:doi:inscript2-deva",
++  "m17n:gu:inscript2",
++  "m17n:hi:inscript2",
++  "m17n:kn:inscript2",
++  "m17n:kok:inscript2-deva",
++  "m17n:mai:inscript2",
++  "m17n:ml:inscript2",
++  "m17n:mni:inscript2-beng",
++  "m17n:mni:inscript2-mtei",
++  "m17n:mr:inscript2",
++  "m17n:ne:inscript2-deva",
++  "m17n:or:inscript2",
++  "m17n:pa:inscript2-guru",
++  "m17n:sa:inscript2",
++  "m17n:sat:inscript2-deva",
++  "m17n:sat:inscript2-olck",
++  "m17n:sd:inscript2-deva",
++  "m17n:ta:inscript2",
++  "m17n:te:inscript2",
++
++  /* No corresponding XKB map available for the languages */
++
++  /* Chinese Yi */
++  "m17n:ii:phonetic",
++
++  /* Tai-Viet */
++  "m17n:tai:sonla",
++
++  /* Kazakh in Arabic script */
++  "m17n:kk:arabic",
++
++  /* Yiddish */
++  "m17n:yi:yivo",
++
++  /* Canadian Aboriginal languages */
++  "m17n:ath:phonetic",
++  "m17n:bla:phonetic",
++  "m17n:cr:western",
++  "m17n:iu:phonetic",
++  "m17n:nsk:phonetic",
++  "m17n:oj:phonetic",
++
++  /* Non-trivial engines, like transliteration-based instead of
++     keymap-based.  Confirmation needed that the engines below are
++     actually used by local language users. */
++
++  /* Tibetan */
++  "m17n:bo:ewts",
++  "m17n:bo:tcrc",
++  "m17n:bo:wylie",
++
++  /* Esperanto */
++  "m17n:eo:h-f",
++  "m17n:eo:h",
++  "m17n:eo:plena",
++  "m17n:eo:q",
++  "m17n:eo:vi",
++  "m17n:eo:x",
++
++  /* Amharic */
++  "m17n:am:sera",
++
++  /* Russian */
++  "m17n:ru:translit",
++
++  /* Classical Greek */
++  "m17n:grc:mizuochi",
++
++  /* Lao */
++  "m17n:lo:lrt",
++
++  /* Postfix modifier input methods */
++  "m17n:da:post",
++  "m17n:sv:post",
++  NULL
++};
++#endif  /* HAVE_IBUS */
++
++static void       populate_model             (GtkListStore  *store,
++                                              GtkListStore  *active_sources_store);
++static GtkWidget *input_chooser_new          (GtkWindow     *main_window,
++                                              GtkListStore  *active_sources);
++static gboolean   input_chooser_get_selected (GtkWidget     *chooser,
++                                              GtkTreeModel **model,
++                                              GtkTreeIter   *iter);
++static GtkTreeModel *tree_view_get_actual_model (GtkTreeView *tv);
++
++static gboolean
++strv_contains (const gchar * const *strv,
++               const gchar         *str)
++{
++  const gchar * const *p = strv;
++  for (p = strv; *p; p++)
++    if (g_strcmp0 (*p, str) == 0)
++      return TRUE;
++
++  return FALSE;
++}
++
++#ifdef HAVE_IBUS
++static void
++clear_ibus (void)
++{
++  if (shell_name_watch_id > 0)
++    {
++      g_bus_unwatch_name (shell_name_watch_id);
++      shell_name_watch_id = 0;
++    }
++  g_cancellable_cancel (ibus_cancellable);
++  g_clear_object (&ibus_cancellable);
++  g_clear_pointer (&ibus_engines, g_hash_table_destroy);
++  g_clear_object (&ibus);
++}
++
++static gchar *
++engine_get_display_name (IBusEngineDesc *engine_desc)
++{
++  const gchar *name;
++  const gchar *language_code;
++  const gchar *language;
++  gchar *display_name;
++
++  name = ibus_engine_desc_get_longname (engine_desc);
++  language_code = ibus_engine_desc_get_language (engine_desc);
++  language = ibus_get_language_name (language_code);
++
++  display_name = g_strdup_printf ("%s (%s)", language, name);
++
++  return display_name;
++}
++
++static GDesktopAppInfo *
++setup_app_info_for_id (const gchar *id)
++{
++  GDesktopAppInfo *app_info;
++  gchar *desktop_file_name;
++  gchar **strv;
++
++  strv = g_strsplit (id, ":", 2);
++  desktop_file_name = g_strdup_printf ("ibus-setup-%s.desktop", strv[0]);
++  g_strfreev (strv);
++
++  app_info = g_desktop_app_info_new (desktop_file_name);
++  g_free (desktop_file_name);
++
++  return app_info;
++}
++
++static void
++input_chooser_repopulate (GtkListStore *active_sources_store)
++{
++  GtkBuilder *builder;
++  GtkListStore *model;
++
++  if (!input_chooser)
++    return;
++
++  builder = g_object_get_data (G_OBJECT (input_chooser), "builder");
++  model = GTK_LIST_STORE (gtk_builder_get_object (builder, "input_source_model"));
++
++  gtk_list_store_clear (model);
++  populate_model (model, active_sources_store);
++}
++
++static void
++update_ibus_active_sources (GtkBuilder *builder)
++{
++  GtkTreeView *tv;
++  GtkTreeModel *model;
++  GtkTreeIter iter;
++  gchar *type, *id;
++  gboolean ret;
++
++  tv = GTK_TREE_VIEW (WID ("active_input_sources"));
++  model = tree_view_get_actual_model (tv);
++
++  ret = gtk_tree_model_get_iter_first (model, &iter);
++  while (ret)
++    {
++      gtk_tree_model_get (model, &iter,
++                          TYPE_COLUMN, &type,
++                          ID_COLUMN, &id,
++                          -1);
++
++      if (g_str_equal (type, INPUT_SOURCE_TYPE_IBUS))
++        {
++          IBusEngineDesc *engine_desc = NULL;
++          GDesktopAppInfo *app_info = NULL;
++          gchar *display_name = NULL;
++
++          engine_desc = g_hash_table_lookup (ibus_engines, id);
++          if (engine_desc)
++            {
++              display_name = engine_get_display_name (engine_desc);
++              app_info = setup_app_info_for_id (id);
++
++              gtk_list_store_set (GTK_LIST_STORE (model), &iter,
++                                  NAME_COLUMN, display_name,
++                                  SETUP_COLUMN, app_info,
++                                  -1);
++              g_free (display_name);
++              if (app_info)
++                g_object_unref (app_info);
++            }
++        }
++
++      g_free (type);
++      g_free (id);
++
++      ret = gtk_tree_model_iter_next (model, &iter);
++    }
++
++  input_chooser_repopulate (GTK_LIST_STORE (model));
++}
++
++static void
++fetch_ibus_engines_result (GObject      *object,
++                           GAsyncResult *result,
++                           GtkBuilder   *builder)
++{
++  gboolean show_all_sources;
++  GList *list, *l;
++  GError *error;
++
++  error = NULL;
++  list = ibus_bus_list_engines_async_finish (ibus, result, &error);
++
++  g_clear_object (&ibus_cancellable);
++
++  if (!list && error)
++    {
++      g_warning ("Couldn't finish IBus request: %s", error->message);
++      g_error_free (error);
++      return;
++    }
++
++  show_all_sources = g_settings_get_boolean (input_sources_settings, "show-all-sources");
++
++  /* Maps engine ids to engine description objects */
++  ibus_engines = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_object_unref);
++
++  for (l = list; l; l = l->next)
++    {
++      IBusEngineDesc *engine = l->data;
++      const gchar *engine_id = ibus_engine_desc_get_name (engine);
++
++      if (show_all_sources || strv_contains (supported_ibus_engines, engine_id))
++        g_hash_table_replace (ibus_engines, (gpointer)engine_id, engine);
++      else
++        g_object_unref (engine);
++    }
++  g_list_free (list);
++
++  update_ibus_active_sources (builder);
++}
++
++static void
++fetch_ibus_engines (GtkBuilder *builder)
++{
++  ibus_cancellable = g_cancellable_new ();
++
++  ibus_bus_list_engines_async (ibus,
++                               -1,
++                               ibus_cancellable,
++                               (GAsyncReadyCallback)fetch_ibus_engines_result,
++                               builder);
++
++  /* We've got everything we needed, don't want to be called again. */
++  g_signal_handlers_disconnect_by_func (ibus, fetch_ibus_engines, builder);
++}
++
++static void
++maybe_start_ibus (void)
++{
++  /* IBus doesn't export API in the session bus. The only thing
++   * we have there is a well known name which we can use as a
++   * sure-fire way to activate it. */
++  g_bus_unwatch_name (g_bus_watch_name (G_BUS_TYPE_SESSION,
++                                        IBUS_SERVICE_IBUS,
++                                        G_BUS_NAME_WATCHER_FLAGS_AUTO_START,
++                                        NULL,
++                                        NULL,
++                                        NULL,
++                                        NULL));
++}
++
++static void
++on_shell_appeared (GDBusConnection *connection,
++                   const gchar     *name,
++                   const gchar     *name_owner,
++                   gpointer         data)
++{
++  GtkBuilder *builder = data;
++
++  if (!ibus)
++    {
++      ibus = ibus_bus_new ();
++      if (ibus_bus_is_connected (ibus))
++        fetch_ibus_engines (builder);
++      else
++        g_signal_connect_swapped (ibus, "connected",
++                                  G_CALLBACK (fetch_ibus_engines), builder);
++    }
++  maybe_start_ibus ();
++}
++#endif  /* HAVE_IBUS */
++
++static gboolean
++add_source_to_table (GtkTreeModel *model,
++                     GtkTreePath  *path,
++                     GtkTreeIter  *iter,
++                     gpointer      data)
++{
++  GHashTable *hash = data;
++  gchar *type;
++  gchar *id;
++
++  gtk_tree_model_get (model, iter,
++                      TYPE_COLUMN, &type,
++                      ID_COLUMN, &id,
++                      -1);
++
++  g_hash_table_add (hash, g_strconcat (type, id, NULL));
++
++  g_free (type);
++  g_free (id);
++
++  return FALSE;
++}
++
++static void
++populate_model (GtkListStore *store,
++                GtkListStore *active_sources_store)
++{
++  GHashTable *active_sources_table;
++  GtkTreeIter iter;
++  const gchar *name;
++  GList *sources, *tmp;
++  gchar *source_id = NULL;
++
++  active_sources_table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
++
++  gtk_tree_model_foreach (GTK_TREE_MODEL (active_sources_store),
++                          add_source_to_table,
++                          active_sources_table);
++
++  sources = gnome_xkb_info_get_all_layouts (xkb_info);
++
++  for (tmp = sources; tmp; tmp = tmp->next)
++    {
++      g_free (source_id);
++      source_id = g_strconcat (INPUT_SOURCE_TYPE_XKB, tmp->data, NULL);
++
++      if (g_hash_table_contains (active_sources_table, source_id))
++        continue;
++
++      gnome_xkb_info_get_layout_info (xkb_info, (const gchar *)tmp->data,
++                                      &name, NULL, NULL, NULL);
++
++      gtk_list_store_append (store, &iter);
++      gtk_list_store_set (store, &iter,
++                          NAME_COLUMN, name,
++                          TYPE_COLUMN, INPUT_SOURCE_TYPE_XKB,
++                          ID_COLUMN, tmp->data,
++                          -1);
++    }
++  g_free (source_id);
++
++  g_list_free (sources);
++
++#ifdef HAVE_IBUS
++  if (ibus_engines)
++    {
++      gchar *display_name;
++
++      sources = g_hash_table_get_keys (ibus_engines);
++
++      source_id = NULL;
++      for (tmp = sources; tmp; tmp = tmp->next)
++        {
++          g_free (source_id);
++          source_id = g_strconcat (INPUT_SOURCE_TYPE_IBUS, tmp->data, NULL);
++
++          if (g_hash_table_contains (active_sources_table, source_id))
++            continue;
++
++          display_name = engine_get_display_name (g_hash_table_lookup (ibus_engines, tmp->data));
++
++          gtk_list_store_append (store, &iter);
++          gtk_list_store_set (store, &iter,
++                              NAME_COLUMN, display_name,
++                              TYPE_COLUMN, INPUT_SOURCE_TYPE_IBUS,
++                              ID_COLUMN, tmp->data,
++                              -1);
++          g_free (display_name);
++        }
++      g_free (source_id);
++
++      g_list_free (sources);
++    }
++#endif
++
++  g_hash_table_destroy (active_sources_table);
++}
++
++static void
++populate_with_active_sources (GtkListStore *store)
++{
++  GVariant *sources;
++  GVariantIter iter;
++  const gchar *name;
++  const gchar *type;
++  const gchar *id;
++  gchar *display_name;
++  GDesktopAppInfo *app_info;
++  GtkTreeIter tree_iter;
++
++  sources = g_settings_get_value (input_sources_settings, KEY_INPUT_SOURCES);
++
++  g_variant_iter_init (&iter, sources);
++  while (g_variant_iter_next (&iter, "(&s&s)", &type, &id))
++    {
++      display_name = NULL;
++      app_info = NULL;
++
++      if (g_str_equal (type, INPUT_SOURCE_TYPE_XKB))
++        {
++          gnome_xkb_info_get_layout_info (xkb_info, id, &name, NULL, NULL, NULL);
++          if (!name)
++            {
++              g_warning ("Couldn't find XKB input source '%s'", id);
++              continue;
++            }
++          display_name = g_strdup (name);
++        }
++      else if (g_str_equal (type, INPUT_SOURCE_TYPE_IBUS))
++        {
++#ifdef HAVE_IBUS
++          IBusEngineDesc *engine_desc = NULL;
++
++          if (ibus_engines)
++            engine_desc = g_hash_table_lookup (ibus_engines, id);
++
++          if (engine_desc)
++            {
++              display_name = engine_get_display_name (engine_desc);
++              app_info = setup_app_info_for_id (id);
++            }
++#else
++          g_warning ("IBus input source type specified but IBus support was not compiled");
++          continue;
++#endif
++        }
++      else
++        {
++          g_warning ("Unknown input source type '%s'", type);
++          continue;
++        }
++
++      gtk_list_store_append (store, &tree_iter);
++      gtk_list_store_set (store, &tree_iter,
++                          NAME_COLUMN, display_name,
++                          TYPE_COLUMN, type,
++                          ID_COLUMN, id,
++                          SETUP_COLUMN, app_info,
++                          -1);
++      g_free (display_name);
++      if (app_info)
++        g_object_unref (app_info);
++    }
++
++  g_variant_unref (sources);
++}
++
++static void
++update_configuration (GtkTreeModel *model)
++{
++  GtkTreeIter iter;
++  gchar *type;
++  gchar *id;
++  GVariantBuilder builder;
++  GVariant *old_sources;
++  const gchar *old_current_type;
++  const gchar *old_current_id;
++  guint old_current_index;
++  guint old_n_sources;
++  guint index;
++
++  old_sources = g_settings_get_value (input_sources_settings, KEY_INPUT_SOURCES);
++  old_current_index = g_settings_get_uint (input_sources_settings, KEY_CURRENT_INPUT_SOURCE);
++  old_n_sources = g_variant_n_children (old_sources);
++
++  if (old_n_sources > 0 && old_current_index < old_n_sources)
++    {
++      g_variant_get_child (old_sources,
++                           old_current_index,
++                           "(&s&s)",
++                           &old_current_type,
++                           &old_current_id);
++    }
++  else
++    {
++      old_current_type = "";
++      old_current_id = "";
++    }
++
++  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ss)"));
++  index = 0;
++  gtk_tree_model_get_iter_first (model, &iter);
++  do
++    {
++      gtk_tree_model_get (model, &iter,
++                          TYPE_COLUMN, &type,
++                          ID_COLUMN, &id,
++                          -1);
++      if (index != old_current_index &&
++          g_str_equal (type, old_current_type) &&
++          g_str_equal (id, old_current_id))
++        {
++          g_settings_set_uint (input_sources_settings, KEY_CURRENT_INPUT_SOURCE, index);
++        }
++      g_variant_builder_add (&builder, "(ss)", type, id);
++      g_free (type);
++      g_free (id);
++      index += 1;
++    }
++  while (gtk_tree_model_iter_next (model, &iter));
++
++  g_settings_set_value (input_sources_settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder));
++  g_settings_apply (input_sources_settings);
++
++  g_variant_unref (old_sources);
++}
++
++static gboolean
++get_selected_iter (GtkBuilder    *builder,
++                   GtkTreeModel **model,
++                   GtkTreeIter   *iter)
++{
++  GtkTreeSelection *selection;
++
++  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (WID ("active_input_sources")));
++
++  return gtk_tree_selection_get_selected (selection, model, iter);
++}
++
++static gint
++idx_from_model_iter (GtkTreeModel *model,
++                     GtkTreeIter  *iter)
++{
++  GtkTreePath *path;
++  gint idx;
++
++  path = gtk_tree_model_get_path (model, iter);
++  if (path == NULL)
++    return -1;
++
++  idx = gtk_tree_path_get_indices (path)[0];
++  gtk_tree_path_free (path);
++
++  return idx;
++}
++
++static void
++update_button_sensitivity (GtkBuilder *builder)
++{
++  GtkWidget *remove_button;
++  GtkWidget *up_button;
++  GtkWidget *down_button;
++  GtkWidget *show_button;
++  GtkWidget *settings_button;
++  GtkTreeView *tv;
++  GtkTreeModel *model;
++  GtkTreeIter iter;
++  gint n_active;
++  gint index;
++  gboolean settings_sensitive;
++  GDesktopAppInfo *app_info;
++
++  remove_button = WID("input_source_remove");
++  show_button = WID("input_source_show");
++  up_button = WID("input_source_move_up");
++  down_button = WID("input_source_move_down");
++  settings_button = WID("input_source_settings");
++
++  tv = GTK_TREE_VIEW (WID ("active_input_sources"));
++  n_active = gtk_tree_model_iter_n_children (gtk_tree_view_get_model (tv), NULL);
++
++  if (get_selected_iter (builder, &model, &iter))
++    {
++      index = idx_from_model_iter (model, &iter);
++      gtk_tree_model_get (model, &iter, SETUP_COLUMN, &app_info, -1);
++    }
++  else
++    {
++      index = -1;
++      app_info = NULL;
++    }
++
++  settings_sensitive = (index >= 0 && app_info != NULL);
++
++  if (app_info)
++    g_object_unref (app_info);
++
++  gtk_widget_set_sensitive (remove_button, index >= 0 && n_active > 1);
++  gtk_widget_set_sensitive (show_button, index >= 0);
++  gtk_widget_set_sensitive (up_button, index > 0);
++  gtk_widget_set_sensitive (down_button, index >= 0 && index < n_active - 1);
++  gtk_widget_set_sensitive (settings_button, settings_sensitive);
++}
++
++static void
++set_selected_path (GtkBuilder  *builder,
++                   GtkTreePath *path)
++{
++  GtkTreeSelection *selection;
++
++  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (WID ("active_input_sources")));
++
++  gtk_tree_selection_select_path (selection, path);
++}
++
++static GtkTreeModel *
++tree_view_get_actual_model (GtkTreeView *tv)
++{
++  GtkTreeModel *filtered_store;
++
++  filtered_store = gtk_tree_view_get_model (tv);
++
++  return gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (filtered_store));
++}
++
++static void
++chooser_response (GtkWidget *chooser, gint response_id, gpointer data)
++{
++  GtkBuilder *builder = data;
++
++  if (response_id == GTK_RESPONSE_OK)
++    {
++      GtkTreeModel *model;
++      GtkTreeIter iter;
++
++      if (input_chooser_get_selected (chooser, &model, &iter))
++        {
++          GtkTreeView *tv;
++          GtkListStore *child_model;
++          GtkTreeIter child_iter, filter_iter;
++          gchar *name;
++          gchar *type;
++          gchar *id;
++          GDesktopAppInfo *app_info = NULL;
++
++          gtk_tree_model_get (model, &iter,
++                              NAME_COLUMN, &name,
++                              TYPE_COLUMN, &type,
++                              ID_COLUMN, &id,
++                              -1);
++
++#ifdef HAVE_IBUS
++          if (g_str_equal (type, INPUT_SOURCE_TYPE_IBUS))
++            app_info = setup_app_info_for_id (id);
++#endif
++
++          tv = GTK_TREE_VIEW (WID ("active_input_sources"));
++          child_model = GTK_LIST_STORE (tree_view_get_actual_model (tv));
++
++          gtk_list_store_append (child_model, &child_iter);
++
++          gtk_list_store_set (child_model, &child_iter,
++                              NAME_COLUMN, name,
++                              TYPE_COLUMN, type,
++                              ID_COLUMN, id,
++                              SETUP_COLUMN, app_info,
++                              -1);
++          g_free (name);
++          g_free (type);
++          g_free (id);
++          if (app_info)
++            g_object_unref (app_info);
++
++          gtk_tree_model_filter_convert_child_iter_to_iter (GTK_TREE_MODEL_FILTER (gtk_tree_view_get_model (tv)),
++                                                            &filter_iter,
++                                                            &child_iter);
++          gtk_tree_selection_select_iter (gtk_tree_view_get_selection (tv), &filter_iter);
++
++          update_button_sensitivity (builder);
++          update_configuration (GTK_TREE_MODEL (child_model));
++        }
++      else
++        {
++          g_debug ("nothing selected, nothing added");
++        }
++    }
++
++  gtk_widget_destroy (GTK_WIDGET (chooser));
++}
++
++static void
++add_input (GtkButton *button, gpointer data)
++{
++  GtkBuilder *builder = data;
++  GtkWidget *chooser;
++  GtkWidget *toplevel;
++  GtkWidget *treeview;
++  GtkListStore *active_sources;
++
++  g_debug ("add an input source");
++
++  toplevel = gtk_widget_get_toplevel (WID ("region_notebook"));
++  treeview = WID ("active_input_sources");
++  active_sources = GTK_LIST_STORE (tree_view_get_actual_model (GTK_TREE_VIEW (treeview)));
++
++  chooser = input_chooser_new (GTK_WINDOW (toplevel), active_sources);
++  g_signal_connect (chooser, "response",
++                    G_CALLBACK (chooser_response), builder);
++}
++
++static void
++remove_selected_input (GtkButton *button, gpointer data)
++{
++  GtkBuilder *builder = data;
++  GtkTreeModel *model;
++  GtkTreeModel *child_model;
++  GtkTreeIter iter;
++  GtkTreeIter child_iter;
++  GtkTreePath *path;
++
++  g_debug ("remove selected input source");
++
++  if (get_selected_iter (builder, &model, &iter) == FALSE)
++    return;
++
++  path = gtk_tree_model_get_path (model, &iter);
++
++  child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model));
++  gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model),
++                                                    &child_iter,
++                                                    &iter);
++  gtk_list_store_remove (GTK_LIST_STORE (child_model), &child_iter);
++
++  if (!gtk_tree_model_get_iter (model, &iter, path))
++    gtk_tree_path_prev (path);
++
++  set_selected_path (builder, path);
++
++  gtk_tree_path_free (path);
++
++  update_button_sensitivity (builder);
++  update_configuration (child_model);
++}
++
++static void
++move_selected_input_up (GtkButton *button, gpointer data)
++{
++  GtkBuilder *builder = data;
++  GtkTreeModel *model;
++  GtkTreeModel *child_model;
++  GtkTreeIter iter, prev;
++  GtkTreeIter child_iter, child_prev;
++  GtkTreePath *path;
++
++  g_debug ("move selected input source up");
++
++  if (!get_selected_iter (builder, &model, &iter))
++    return;
++
++  prev = iter;
++  if (!gtk_tree_model_iter_previous (model, &prev))
++    return;
++
++  path = gtk_tree_model_get_path (model, &prev);
++
++  child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model));
++  gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model),
++                                                    &child_iter,
++                                                    &iter);
++  gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model),
++                                                    &child_prev,
++                                                    &prev);
++  gtk_list_store_swap (GTK_LIST_STORE (child_model), &child_iter, &child_prev);
++
++  set_selected_path (builder, path);
++  gtk_tree_path_free (path);
++
++  update_button_sensitivity (builder);
++  update_configuration (child_model);
++}
++
++static void
++move_selected_input_down (GtkButton *button, gpointer data)
++{
++  GtkBuilder *builder = data;
++  GtkTreeModel *model;
++  GtkTreeModel *child_model;
++  GtkTreeIter iter, next;
++  GtkTreeIter child_iter, child_next;
++  GtkTreePath *path;
++
++  g_debug ("move selected input source down");
++
++  if (!get_selected_iter (builder, &model, &iter))
++    return;
++
++  next = iter;
++  if (!gtk_tree_model_iter_next (model, &next))
++    return;
++
++  path = gtk_tree_model_get_path (model, &next);
++
++  child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model));
++  gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model),
++                                                    &child_iter,
++                                                    &iter);
++  gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model),
++                                                    &child_next,
++                                                    &next);
++  gtk_list_store_swap (GTK_LIST_STORE (child_model), &child_iter, &child_next);
++
++  set_selected_path (builder, path);
++  gtk_tree_path_free (path);
++
++  update_button_sensitivity (builder);
++  update_configuration (child_model);
++}
++
++static void
++show_selected_layout (GtkButton *button, gpointer data)
++{
++  GtkBuilder *builder = data;
++  GtkTreeModel *model;
++  GtkTreeIter iter;
++  gchar *type;
++  gchar *id;
++  gchar *kbd_viewer_args;
++  const gchar *xkb_layout;
++  const gchar *xkb_variant;
++
++  g_debug ("show selected layout");
++
++  if (!get_selected_iter (builder, &model, &iter))
++    return;
++
++  gtk_tree_model_get (model, &iter,
++                      TYPE_COLUMN, &type,
++                      ID_COLUMN, &id,
++                      -1);
++
++  if (g_str_equal (type, INPUT_SOURCE_TYPE_XKB))
++    {
++      gnome_xkb_info_get_layout_info (xkb_info, id, NULL, NULL, &xkb_layout, &xkb_variant);
++
++      if (!xkb_layout || !xkb_layout[0])
++        {
++          g_warning ("Couldn't find XKB input source '%s'", id);
++          goto exit;
++        }
++    }
++  else if (g_str_equal (type, INPUT_SOURCE_TYPE_IBUS))
++    {
++#ifdef HAVE_IBUS
++      IBusEngineDesc *engine_desc = NULL;
++
++      if (ibus_engines)
++        engine_desc = g_hash_table_lookup (ibus_engines, id);
++
++      if (engine_desc)
++        {
++          xkb_layout = ibus_engine_desc_get_layout (engine_desc);
++          xkb_variant = "";
++        }
++      else
++        {
++          g_warning ("Couldn't find IBus input source '%s'", id);
++          goto exit;
++        }
++#else
++      g_warning ("IBus input source type specified but IBus support was not compiled");
++      goto exit;
++#endif
++    }
++  else
++    {
++      g_warning ("Unknown input source type '%s'", type);
++      goto exit;
++    }
++
++  if (xkb_variant[0])
++    kbd_viewer_args = g_strdup_printf ("gkbd-keyboard-display -l \"%s\t%s\"",
++                                       xkb_layout, xkb_variant);
++  else
++    kbd_viewer_args = g_strdup_printf ("gkbd-keyboard-display -l %s",
++                                       xkb_layout);
++
++  g_spawn_command_line_async (kbd_viewer_args, NULL);
++
++  g_free (kbd_viewer_args);
++ exit:
++  g_free (type);
++  g_free (id);
++}
++
++static void
++show_selected_settings (GtkButton *button, gpointer data)
++{
++  GtkBuilder *builder = data;
++  GtkTreeModel *model;
++  GtkTreeIter iter;
++  GdkAppLaunchContext *ctx;
++  GDesktopAppInfo *app_info;
++  gchar *id;
++  GError *error = NULL;
++
++  g_debug ("show selected layout");
++
++  if (!get_selected_iter (builder, &model, &iter))
++    return;
++
++  gtk_tree_model_get (model, &iter, SETUP_COLUMN, &app_info, -1);
++
++  if (!app_info)
++    return;
++
++  ctx = gdk_display_get_app_launch_context (gdk_display_get_default ());
++  gdk_app_launch_context_set_timestamp (ctx, gtk_get_current_event_time ());
++
++  gtk_tree_model_get (model, &iter, ID_COLUMN, &id, -1);
++  g_app_launch_context_setenv (G_APP_LAUNCH_CONTEXT (ctx),
++                               "IBUS_ENGINE_NAME",
++                               id);
++  g_free (id);
++
++  if (!g_app_info_launch (G_APP_INFO (app_info), NULL, G_APP_LAUNCH_CONTEXT (ctx), &error))
++    {
++      g_warning ("Failed to launch input source setup: %s", error->message);
++      g_error_free (error);
++    }
++
++  g_object_unref (ctx);
++  g_object_unref (app_info);
++}
++
++static gboolean
++go_to_shortcuts (GtkLinkButton *button,
++                 CcRegionPanel *panel)
++{
++    gchar *argv[3];
++    argv[0] = "cinnamon-settings";
++    argv[1] = "keyboard";
++    argv[3] = NULL;
++    g_spawn_async(NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL);
++    return TRUE;
++}
++
++static void
++input_sources_changed (GSettings  *settings,
++                       gchar      *key,
++                       GtkBuilder *builder)
++{
++  GtkWidget *treeview;
++  GtkTreeModel *store;
++  GtkTreePath *path;
++  GtkTreeIter iter;
++  GtkTreeModel *model;
++
++  treeview = WID("active_input_sources");
++  store = tree_view_get_actual_model (GTK_TREE_VIEW (treeview));
++
++  if (get_selected_iter (builder, &model, &iter))
++    path = gtk_tree_model_get_path (model, &iter);
++  else
++    path = NULL;
++
++  gtk_list_store_clear (GTK_LIST_STORE (store));
++  populate_with_active_sources (GTK_LIST_STORE (store));
++
++  if (path)
++    {
++      set_selected_path (builder, path);
++      gtk_tree_path_free (path);
++    }
++}
++
++static void
++update_shortcut_label (GtkWidget  *widget,
++		       const char *value)
++{
++  char *text;
++  guint accel_key, *keycode;
++  GdkModifierType mods;
++
++  if (value == NULL || *value == '\0')
++    {
++      gtk_label_set_text (GTK_LABEL (widget), "\342\200\224");
++      return;
++    }
++  gtk_accelerator_parse_with_keycode (value, &accel_key, &keycode, &mods);
++  if (accel_key == 0 && keycode == NULL && mods == 0)
++    {
++      gtk_label_set_text (GTK_LABEL (widget), "\342\200\224");
++      g_warning ("Failed to parse keyboard shortcut: '%s'", value);
++      return;
++    }
++
++  text = gtk_accelerator_get_label_with_keycode (gtk_widget_get_display (widget), accel_key, *keycode, mods);
++  g_free (keycode);
++  gtk_label_set_text (GTK_LABEL (widget), text);
++  g_free (text);
++}
++
++static void
++update_shortcuts (GtkBuilder *builder)
++{
++  char *previous, *next;
++  GSettings *settings;
++
++  settings = g_settings_new ("org.cinnamon.settings-daemon.plugins.media-keys");
++
++  previous = g_settings_get_string (settings, "switch-input-source-backward");
++  next = g_settings_get_string (settings, "switch-input-source");
++
++  update_shortcut_label (WID ("prev-source-shortcut-label"), previous);
++  update_shortcut_label (WID ("next-source-shortcut-label"), next);
++
++  g_free (previous);
++  g_free (next);
++}
++
++static gboolean
++active_sources_visible_func (GtkTreeModel *model,
++                             GtkTreeIter  *iter,
++                             gpointer      data)
++{
++  gchar *display_name;
++
++  gtk_tree_model_get (model, iter, NAME_COLUMN, &display_name, -1);
++
++  if (!display_name)
++    return FALSE;
++
++  g_free (display_name);
++
++  return TRUE;
++}
++
++void
++setup_input_tabs (GtkBuilder    *builder,
++                  CcRegionPanel *panel)
++{
++  GtkWidget *treeview;
++  GtkTreeViewColumn *column;
++  GtkCellRenderer *cell;
++  GtkListStore *store;
++  GtkTreeModel *filtered_store;
++  GtkTreeSelection *selection;
++
++  /* set up the list of active inputs */
++  treeview = WID("active_input_sources");
++  column = gtk_tree_view_column_new ();
++  cell = gtk_cell_renderer_text_new ();
++  gtk_tree_view_column_pack_start (column, cell, TRUE);
++  gtk_tree_view_column_add_attribute (column, cell, "text", NAME_COLUMN);
++  gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
++
++  store = gtk_list_store_new (N_COLUMNS,
++                              G_TYPE_STRING,
++                              G_TYPE_STRING,
++                              G_TYPE_STRING,
++                              G_TYPE_DESKTOP_APP_INFO);
++
++  gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), GTK_TREE_MODEL (store));
++
++  input_sources_settings = g_settings_new (GNOME_DESKTOP_INPUT_SOURCES_DIR);
++  g_settings_delay (input_sources_settings);
++  g_object_weak_ref (G_OBJECT (builder), (GWeakNotify) g_object_unref, input_sources_settings);
++
++  if (!xkb_info)
++    xkb_info = gnome_xkb_info_new ();
++
++#ifdef HAVE_IBUS
++  ibus_init ();
++  shell_name_watch_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
++                                          "org.Cinnamon",
++                                          G_BUS_NAME_WATCHER_FLAGS_NONE,
++                                          on_shell_appeared,
++                                          NULL,
++                                          builder,
++                                          NULL);
++  g_object_weak_ref (G_OBJECT (builder), (GWeakNotify) clear_ibus, NULL);
++#endif
++
++  populate_with_active_sources (store);
++
++  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
++  g_signal_connect_swapped (selection, "changed",
++                            G_CALLBACK (update_button_sensitivity), builder);
++
++  /* Some input source types might have their info loaded
++   * asynchronously. In that case we don't want to show them
++   * immediately so we use a filter model on top of the real model
++   * which mirrors the GSettings key. */
++  filtered_store = gtk_tree_model_filter_new (GTK_TREE_MODEL (store), NULL);
++  gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (filtered_store),
++                                          active_sources_visible_func,
++                                          NULL,
++                                          NULL);
++  gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), filtered_store);
++
++  /* set up the buttons */
++  g_signal_connect (WID("input_source_add"), "clicked",
++                    G_CALLBACK (add_input), builder);
++  g_signal_connect (WID("input_source_remove"), "clicked",
++                    G_CALLBACK (remove_selected_input), builder);
++  g_signal_connect (WID("input_source_move_up"), "clicked",
++                    G_CALLBACK (move_selected_input_up), builder);
++  g_signal_connect (WID("input_source_move_down"), "clicked",
++                    G_CALLBACK (move_selected_input_down), builder);
++  g_signal_connect (WID("input_source_show"), "clicked",
++                    G_CALLBACK (show_selected_layout), builder);
++  g_signal_connect (WID("input_source_settings"), "clicked",
++                    G_CALLBACK (show_selected_settings), builder);
++
++  /* use an em dash is no shortcut */
++  update_shortcuts (builder);
++
++  g_signal_connect (WID("jump-to-shortcuts"), "activate-link",
++                    G_CALLBACK (go_to_shortcuts), panel);
++
++  g_signal_connect (G_OBJECT (input_sources_settings),
++                    "changed::" KEY_INPUT_SOURCES,
++                    G_CALLBACK (input_sources_changed),
++                    builder);
++}
++
++static void
++filter_clear (GtkEntry             *entry,
++              GtkEntryIconPosition  icon_pos,
++              GdkEvent             *event,
++              gpointer              user_data)
++{
++  gtk_entry_set_text (entry, "");
++}
++
++static gchar **search_pattern_list;
++
++static void
++filter_changed (GtkBuilder *builder)
++{
++  GtkTreeModelFilter *filtered_model;
++  GtkTreeView *tree_view;
++  GtkTreeSelection *selection;
++  GtkTreeIter selected_iter;
++  GtkWidget *filter_entry;
++  const gchar *pattern;
++  gchar *upattern;
++
++  filter_entry = WID ("input_source_filter");
++  pattern = gtk_entry_get_text (GTK_ENTRY (filter_entry));
++  upattern = g_utf8_strup (pattern, -1);
++  if (!g_strcmp0 (pattern, ""))
++    g_object_set (G_OBJECT (filter_entry),
++                  "secondary-icon-name", "edit-find-symbolic",
++                  "secondary-icon-activatable", FALSE,
++                  "secondary-icon-sensitive", FALSE,
++                  NULL);
++  else
++    g_object_set (G_OBJECT (filter_entry),
++                  "secondary-icon-name", "edit-clear-symbolic",
++                  "secondary-icon-activatable", TRUE,
++                  "secondary-icon-sensitive", TRUE,
++                  NULL);
++
++  if (search_pattern_list != NULL)
++    g_strfreev (search_pattern_list);
++
++  search_pattern_list = g_strsplit (upattern, " ", -1);
++  g_free (upattern);
++
++  filtered_model = GTK_TREE_MODEL_FILTER (gtk_builder_get_object (builder, "filtered_input_source_model"));
++  gtk_tree_model_filter_refilter (filtered_model);
++
++  tree_view = GTK_TREE_VIEW (WID ("filtered_input_source_list"));
++  selection = gtk_tree_view_get_selection (tree_view);
++  if (gtk_tree_selection_get_selected (selection, NULL, &selected_iter))
++    {
++      GtkTreePath *path = gtk_tree_model_get_path (GTK_TREE_MODEL (filtered_model),
++                                                   &selected_iter);
++      gtk_tree_view_scroll_to_cell (tree_view, path, NULL, TRUE, 0.5, 0.5);
++      gtk_tree_path_free (path);
++    }
++  else
++    {
++      GtkTreeIter iter;
++      if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (filtered_model), &iter))
++        gtk_tree_selection_select_iter (selection, &iter);
++    }
++}
++
++static void
++selection_changed (GtkTreeSelection *selection,
++                   GtkBuilder       *builder)
++{
++  gtk_widget_set_sensitive (WID ("ok-button"),
++                            gtk_tree_selection_get_selected (selection, NULL, NULL));
++}
++
++static void
++row_activated (GtkTreeView       *tree_view,
++               GtkTreePath       *path,
++               GtkTreeViewColumn *column,
++               GtkBuilder        *builder)
++{
++  GtkWidget *add_button;
++  GtkWidget *dialog;
++
++  add_button = WID ("ok-button");
++  dialog = WID ("input_source_chooser");
++  if (gtk_widget_is_sensitive (add_button))
++    gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
++}
++
++static void
++entry_activated (GtkBuilder *builder,
++                 gpointer    data)
++{
++  row_activated (NULL, NULL, NULL, builder);
++}
++
++static gboolean
++filter_func (GtkTreeModel *model,
++             GtkTreeIter  *iter,
++             gpointer      data)
++{
++  gchar *name = NULL;
++  gchar **pattern;
++  gboolean rv = TRUE;
++
++  if (search_pattern_list == NULL || search_pattern_list[0] == NULL)
++    return TRUE;
++
++  gtk_tree_model_get (model, iter,
++                      NAME_COLUMN, &name,
++                      -1);
++
++  pattern = search_pattern_list;
++  do {
++    gboolean is_pattern_found = FALSE;
++    gchar *udesc = g_utf8_strup (name, -1);
++    if (udesc != NULL && g_strstr_len (udesc, -1, *pattern))
++      {
++        is_pattern_found = TRUE;
++      }
++    g_free (udesc);
++
++    if (!is_pattern_found)
++      {
++        rv = FALSE;
++        break;
++      }
++
++  } while (*++pattern != NULL);
++
++  g_free (name);
++
++  return rv;
++}
++
++static GtkWidget *
++input_chooser_new (GtkWindow    *main_window,
++                   GtkListStore *active_sources)
++{
++  GtkBuilder *builder;
++  GtkWidget *chooser;
++  GtkWidget *filtered_list;
++  GtkWidget *filter_entry;
++  GtkTreeViewColumn *visible_column;
++  GtkTreeSelection *selection;
++  GtkListStore *model;
++  GtkTreeModelFilter *filtered_model;
++  GtkTreeIter iter;
++
++  builder = gtk_builder_new ();
++  gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE);
++  gtk_builder_add_from_file (builder,
++                             CINNAMONCC_UI_DIR "/cinnamon-region-panel-input-chooser.ui",
++                             NULL);
++  chooser = WID ("input_source_chooser");
++  input_chooser = chooser;
++  g_object_add_weak_pointer (G_OBJECT (chooser), (gpointer *) &input_chooser);
++  g_object_set_data_full (G_OBJECT (chooser), "builder", builder, g_object_unref);
++
++  filtered_list = WID ("filtered_input_source_list");
++  filter_entry = WID ("input_source_filter");
++
++  g_object_set_data (G_OBJECT (chooser),
++                     "filtered_input_source_list", filtered_list);
++  visible_column =
++    gtk_tree_view_column_new_with_attributes ("Input Sources",
++                                              gtk_cell_renderer_text_new (),
++                                              "text", NAME_COLUMN,
++                                              NULL);
++
++  gtk_window_set_transient_for (GTK_WINDOW (chooser), main_window);
++
++  gtk_tree_view_append_column (GTK_TREE_VIEW (filtered_list),
++                               visible_column);
++  /* We handle searching ourselves, thank you. */
++  gtk_tree_view_set_enable_search (GTK_TREE_VIEW (filtered_list), FALSE);
++  gtk_tree_view_set_search_column (GTK_TREE_VIEW (filtered_list), -1);
++
++  g_signal_connect_swapped (G_OBJECT (filter_entry), "activate",
++                            G_CALLBACK (entry_activated), builder);
++  g_signal_connect_swapped (G_OBJECT (filter_entry), "notify::text",
++                            G_CALLBACK (filter_changed), builder);
++
++  g_signal_connect (G_OBJECT (filter_entry), "icon-release",
++                    G_CALLBACK (filter_clear), NULL);
++
++  filtered_model = GTK_TREE_MODEL_FILTER (gtk_builder_get_object (builder, "filtered_input_source_model"));
++  model = GTK_LIST_STORE (gtk_builder_get_object (builder, "input_source_model"));
++
++  populate_model (model, active_sources);
++
++  gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model),
++                                        NAME_COLUMN, GTK_SORT_ASCENDING);
++
++  gtk_tree_model_filter_set_visible_func (filtered_model,
++                                          filter_func,
++                                          NULL, NULL);
++
++  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (filtered_list));
++
++  g_signal_connect (G_OBJECT (selection), "changed",
++                    G_CALLBACK (selection_changed), builder);
++
++  if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (filtered_model), &iter))
++    gtk_tree_selection_select_iter (selection, &iter);
++
++  g_signal_connect (G_OBJECT (filtered_list), "row-activated",
++                    G_CALLBACK (row_activated), builder);
++
++  gtk_widget_grab_focus (filter_entry);
++
++  gtk_widget_show (chooser);
++
++  return chooser;
++}
++
++static gboolean
++input_chooser_get_selected (GtkWidget     *dialog,
++                            GtkTreeModel **model,
++                            GtkTreeIter   *iter)
++{
++  GtkWidget *tv;
++  GtkTreeSelection *selection;
++
++  tv = g_object_get_data (G_OBJECT (dialog), "filtered_input_source_list");
++  selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tv));
++
++  return gtk_tree_selection_get_selected (selection, model, iter);
++}
+diff -uNrp a/panels/region/cinnamon-region-panel-input-chooser.ui b/panels/region/cinnamon-region-panel-input-chooser.ui
+--- a/panels/region/cinnamon-region-panel-input-chooser.ui	1970-01-01 01:00:00.000000000 +0100
++++ b/panels/region/cinnamon-region-panel-input-chooser.ui	2013-09-21 13:24:15.339949536 +0100
+@@ -0,0 +1,157 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<interface>
++  <requires lib="gtk+" version="2.16"/>
++  <object class="GtkListStore" id="input_source_model">
++    <columns>
++      <!-- display name -->
++      <column type="gchararray"/>
++      <!-- input source type -->
++      <column type="gchararray"/>
++      <!-- type specific identifier -->
++      <column type="gchararray"/>
++    </columns>
++  </object>
++  <object class="GtkTreeModelFilter" id="filtered_input_source_model">
++    <property name="child_model">input_source_model</property>
++  </object>
++  <object class="GtkDialog" id="input_source_chooser">
++    <property name="visible">False</property>
++    <property name="can_focus">False</property>
++    <property name="border_width">5</property>
++    <property name="title" translatable="yes">Choose an input source</property>
++    <property name="modal">True</property>
++    <property name="window_position">center-on-parent</property>
++    <property name="type_hint">dialog</property>
++    <child internal-child="vbox">
++      <object class="GtkBox" id="dialog-vbox3">
++        <property name="visible">True</property>
++        <property name="can_focus">False</property>
++        <property name="orientation">vertical</property>
++        <property name="spacing">2</property>
++        <child internal-child="action_area">
++          <object class="GtkButtonBox" id="hbtnBox">
++            <property name="visible">True</property>
++            <property name="can_focus">False</property>
++            <property name="layout_style">end</property>
++            <child>
++              <object class="GtkButton" id="cancel-button">
++                <property name="label">gtk-cancel</property>
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="can_default">True</property>
++                <property name="receives_default">False</property>
++                <property name="use_action_appearance">False</property>
++                <property name="use_stock">True</property>
++              </object>
++              <packing>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++                <property name="pack_type">end</property>
++                <property name="position">1</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkButton" id="ok-button">
++                <property name="label">gtk-add</property>
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="can_default">True</property>
++                <property name="receives_default">False</property>
++                <property name="use_action_appearance">False</property>
++                <property name="use_stock">True</property>
++              </object>
++              <packing>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++                <property name="pack_type">end</property>
++                <property name="position">2</property>
++              </packing>
++            </child>
++          </object>
++        </child>
++        <child>
++          <object class="GtkVBox" id="vbox40">
++            <property name="visible">True</property>
++            <property name="can_focus">False</property>
++            <property name="border_width">5</property>
++            <property name="spacing">6</property>
++            <child>
++              <object class="GtkVBox" id="vbox1">
++                <property name="visible">True</property>
++                <property name="can_focus">False</property>
++                <property name="spacing">6</property>
++                <child>
++                  <object class="GtkLabel" id="label1">
++                    <property name="visible">True</property>
++                    <property name="can_focus">False</property>
++                    <property name="xalign">0</property>
++                    <property name="label" translatable="yes">Select an input source to add</property>
++                  </object>
++                  <packing>
++                    <property name="expand">False</property>
++                    <property name="fill">False</property>
++                    <property name="position">0</property>
++                  </packing>
++                </child>
++                <child>
++                  <object class="GtkScrolledWindow" id="scrolledwindow1">
++                    <property name="visible">True</property>
++                    <property name="can_focus">True</property>
++                    <property name="hscrollbar_policy">never</property>
++                    <property name="shadow_type">etched-in</property>
++                    <property name="min_content_width">450</property>
++                    <property name="min_content_height">250</property>
++                    <child>
++                      <object class="GtkTreeView" id="filtered_input_source_list">
++                        <property name="visible">True</property>
++                        <property name="can_focus">True</property>
++                        <property name="model">filtered_input_source_model</property>
++                        <property name="headers_visible">False</property>
++                        <property name="search_column">0</property>
++                      </object>
++                    </child>
++                  </object>
++                  <packing>
++                    <property name="expand">True</property>
++                    <property name="fill">True</property>
++                    <property name="position">1</property>
++                  </packing>
++                </child>
++              </object>
++              <packing>
++                <property name="expand">True</property>
++                <property name="fill">True</property>
++                <property name="position">0</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkEntry" id="input_source_filter">
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="invisible_char">•</property>
++                <property name="secondary-icon-name">edit-find-symbolic</property>
++                <property name="secondary-icon-activatable">False</property>
++                <property name="secondary-icon-sensitive">False</property>
++              </object>
++              <packing>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++                <property name="pack_type">end</property>
++                <property name="position">1</property>
++              </packing>
++            </child>
++          </object>
++          <packing>
++            <property name="expand">True</property>
++            <property name="fill">True</property>
++            <property name="position">1</property>
++          </packing>
++        </child>
++      </object>
++    </child>
++    <action-widgets>
++      <action-widget response="-5">ok-button</action-widget>
++      <action-widget response="-6">cancel-button</action-widget>
++    </action-widgets>
++  </object>
++</interface>
+diff -uNrp a/panels/region/cinnamon-region-panel-input.h b/panels/region/cinnamon-region-panel-input.h
+--- a/panels/region/cinnamon-region-panel-input.h	1970-01-01 01:00:00.000000000 +0100
++++ b/panels/region/cinnamon-region-panel-input.h	2013-09-21 13:24:15.339949536 +0100
+@@ -0,0 +1,36 @@
++/* cinnamon-region-panel-input.h
++ * Copyright (C) 2011 Red Hat, Inc.
++ *
++ * Written by Matthias Clasen
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA
++ * 02110-1335, USA.
++ */
++
++#ifndef __CINNAMON_KEYBOARD_PROPERTY_INPUT_H
++#define __CINNAMON_KEYBOARD_PROPERTY_INPUT_H
++
++#include <gtk/gtk.h>
++
++#include "cc-region-panel.h"
++
++G_BEGIN_DECLS
++
++void setup_input_tabs (GtkBuilder    *builder,
++                       CcRegionPanel *self);
++
++G_END_DECLS
++
++#endif  /* __CINNAMON_KEYBOARD_PROPERTY_INPUT_H */
+diff -uNrp a/panels/region/cinnamon-region-panel-lang.c b/panels/region/cinnamon-region-panel-lang.c
+--- a/panels/region/cinnamon-region-panel-lang.c	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/cinnamon-region-panel-lang.c	2013-09-21 13:24:15.340949500 +0100
+@@ -24,7 +24,7 @@
+ #endif
+ 
+ #include <string.h>
+-#include <glib/gi18n-lib.h>
++#include <glib/gi18n.h>
+ 
+ #include "cinnamon-region-panel-lang.h"
+ #include "cinnamon-region-panel-formats.h"
+diff -uNrp a/panels/region/cinnamon-region-panel-lang.h b/panels/region/cinnamon-region-panel-lang.h
+--- a/panels/region/cinnamon-region-panel-lang.h	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/cinnamon-region-panel-lang.h	2013-09-21 13:24:15.340949500 +0100
+@@ -19,8 +19,8 @@
+  * 02110-1335, USA.
+  */
+ 
+-#ifndef __GNOME_KEYBOARD_PROPERTY_LANG_H
+-#define __GNOME_KEYBOARD_PROPERTY_LANG_H
++#ifndef __CINNAMON_KEYBOARD_PROPERTY_LANG_H
++#define __CINNAMON_KEYBOARD_PROPERTY_LANG_H
+ 
+ #include <gtk/gtk.h>
+ 
+@@ -29,4 +29,4 @@ G_BEGIN_DECLS
+ void setup_language (GtkBuilder *builder);
+ 
+ G_END_DECLS
+-#endif /* __GNOME_KEYBOARD_PROPERTY_LANG_H */
++#endif /* __CINNAMON_KEYBOARD_PROPERTY_LANG_H */
+diff -uNrp a/panels/region/cinnamon-region-panel-layout-chooser.ui b/panels/region/cinnamon-region-panel-layout-chooser.ui
+--- a/panels/region/cinnamon-region-panel-layout-chooser.ui	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/cinnamon-region-panel-layout-chooser.ui	1970-01-01 01:00:00.000000000 +0100
+@@ -1,180 +0,0 @@
+-<?xml version="1.0" encoding="UTF-8"?>
+-<interface>
+-  <requires lib="gtk+" version="2.16"/>
+-  <object class="GtkListStore" id="layout_list_model">
+-    <columns>
+-      <!-- column-name sort_order -->
+-      <column type="gchararray"/>
+-      <!-- column-name visible -->
+-      <column type="gchararray"/>
+-      <!-- column-name xkb_id -->
+-      <column type="gchararray"/>
+-      <!-- column-name country_desc -->
+-      <column type="gchararray"/>
+-      <!-- column-name language_desc -->
+-      <column type="gchararray"/>
+-    </columns>
+-  </object>
+-  <object class="GtkTreeModelFilter" id="filtered_layout_list_model">
+-    <property name="child_model">layout_list_model</property>
+-  </object>
+-  <object class="GtkDialog" id="xkb_layout_chooser">
+-    <property name="visible">False</property>
+-    <property name="can_focus">False</property>
+-    <property name="border_width">5</property>
+-    <property name="title" translatable="yes">Choose a Layout</property>
+-    <property name="modal">True</property>
+-    <property name="window_position">center-on-parent</property>
+-    <property name="type_hint">dialog</property>
+-    <child internal-child="vbox">
+-      <object class="GtkBox" id="dialog-vbox3">
+-        <property name="visible">True</property>
+-        <property name="can_focus">False</property>
+-        <property name="orientation">vertical</property>
+-        <property name="spacing">2</property>
+-        <child internal-child="action_area">
+-          <object class="GtkButtonBox" id="hbtnBox">
+-            <property name="visible">True</property>
+-            <property name="can_focus">False</property>
+-            <property name="layout_style">end</property>
+-            <child>
+-              <object class="GtkButton" id="btnPreview">
+-                <property name="label" translatable="yes">Preview</property>
+-                <property name="visible">True</property>
+-                <property name="can_focus">True</property>
+-                <property name="receives_default">True</property>
+-                <property name="use_action_appearance">False</property>
+-              </object>
+-              <packing>
+-                <property name="expand">False</property>
+-                <property name="fill">False</property>
+-                <property name="position">0</property>
+-                <property name="secondary">True</property>
+-              </packing>
+-            </child>
+-            <child>
+-              <object class="GtkButton" id="btnCancel">
+-                <property name="label">gtk-cancel</property>
+-                <property name="visible">True</property>
+-                <property name="can_focus">True</property>
+-                <property name="can_default">True</property>
+-                <property name="receives_default">False</property>
+-                <property name="use_action_appearance">False</property>
+-                <property name="use_stock">True</property>
+-              </object>
+-              <packing>
+-                <property name="expand">False</property>
+-                <property name="fill">False</property>
+-                <property name="pack_type">end</property>
+-                <property name="position">1</property>
+-              </packing>
+-            </child>
+-            <child>
+-              <object class="GtkButton" id="btnOk">
+-                <property name="label">gtk-add</property>
+-                <property name="visible">True</property>
+-                <property name="can_focus">True</property>
+-                <property name="can_default">True</property>
+-                <property name="receives_default">False</property>
+-                <property name="use_action_appearance">False</property>
+-                <property name="use_stock">True</property>
+-              </object>
+-              <packing>
+-                <property name="expand">False</property>
+-                <property name="fill">False</property>
+-                <property name="pack_type">end</property>
+-                <property name="position">2</property>
+-              </packing>
+-            </child>
+-          </object>
+-        </child>
+-        <child>
+-          <object class="GtkVBox" id="vbox40">
+-            <property name="visible">True</property>
+-            <property name="can_focus">False</property>
+-            <property name="border_width">5</property>
+-            <property name="spacing">6</property>
+-            <child>
+-              <object class="GtkVBox" id="vbox1">
+-                <property name="visible">True</property>
+-                <property name="can_focus">False</property>
+-                <property name="spacing">6</property>
+-                <child>
+-                  <object class="GtkLabel" id="label1">
+-                    <property name="visible">True</property>
+-                    <property name="can_focus">False</property>
+-                    <property name="xalign">0</property>
+-                    <property name="label" translatable="yes">Select an input source to add</property>
+-                  </object>
+-                  <packing>
+-                    <property name="expand">False</property>
+-                    <property name="fill">False</property>
+-                    <property name="position">0</property>
+-                  </packing>
+-                </child>
+-                <child>
+-                  <object class="GtkScrolledWindow" id="scrolledwindow1">
+-                    <property name="visible">True</property>
+-                    <property name="can_focus">True</property>
+-                    <property name="hscrollbar_policy">never</property>
+-                    <property name="shadow_type">etched-in</property>
+-                    <property name="min_content_width">450</property>
+-                    <property name="min_content_height">250</property>
+-                    <child>
+-                      <object class="GtkTreeView" id="xkb_filtered_layouts_list">
+-                        <property name="visible">True</property>
+-                        <property name="can_focus">True</property>
+-                        <property name="model">filtered_layout_list_model</property>
+-                        <property name="headers_visible">False</property>
+-                        <property name="search_column">0</property>
+-                        <child internal-child="selection">
+-                          <object class="GtkTreeSelection" id="treeview-selection1"/>
+-                        </child>
+-                      </object>
+-                    </child>
+-                  </object>
+-                  <packing>
+-                    <property name="expand">True</property>
+-                    <property name="fill">True</property>
+-                    <property name="position">1</property>
+-                  </packing>
+-                </child>
+-              </object>
+-              <packing>
+-                <property name="expand">True</property>
+-                <property name="fill">True</property>
+-                <property name="position">0</property>
+-              </packing>
+-            </child>
+-            <child>
+-              <object class="GtkEntry" id="xkb_layout_filter">
+-                <property name="visible">True</property>
+-                <property name="can_focus">True</property>
+-                <property name="invisible_char">•</property>
+-                <property name="secondary-icon-name">edit-find-symbolic</property>
+-                <property name="secondary-icon-activatable">False</property>
+-                <property name="secondary-icon-sensitive">False</property>
+-              </object>
+-              <packing>
+-                <property name="expand">False</property>
+-                <property name="fill">False</property>
+-                <property name="pack_type">end</property>
+-                <property name="position">1</property>
+-              </packing>
+-            </child>
+-          </object>
+-          <packing>
+-            <property name="expand">True</property>
+-            <property name="fill">True</property>
+-            <property name="position">1</property>
+-          </packing>
+-        </child>
+-      </object>
+-    </child>
+-    <action-widgets>
+-      <action-widget response="1">btnPreview</action-widget>
+-      <action-widget response="-5">btnOk</action-widget>
+-      <action-widget response="-6">btnCancel</action-widget>
+-    </action-widgets>
+-  </object>
+-</interface>
+diff -uNrp a/panels/region/cinnamon-region-panel-options-dialog.ui b/panels/region/cinnamon-region-panel-options-dialog.ui
+--- a/panels/region/cinnamon-region-panel-options-dialog.ui	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/cinnamon-region-panel-options-dialog.ui	1970-01-01 01:00:00.000000000 +0100
+@@ -1,79 +0,0 @@
+-<?xml version="1.0" encoding="UTF-8"?>
+-<interface>
+-  <requires lib="gtk+" version="2.16"/>
+-  <object class="GtkDialog" id="xkb_options_dialog">
+-    <property name="can_focus">False</property>
+-    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+-    <property name="border_width">5</property>
+-    <property name="title" translatable="yes">Keyboard Layout Options</property>
+-    <property name="window_position">center-on-parent</property>
+-    <property name="default_width">550</property>
+-    <property name="default_height">400</property>
+-    <property name="type_hint">dialog</property>
+-    <child internal-child="vbox">
+-      <object class="GtkBox" id="dialog_vbox">
+-        <property name="visible">True</property>
+-        <property name="can_focus">False</property>
+-        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+-        <property name="orientation">vertical</property>
+-        <property name="spacing">2</property>
+-        <child>
+-          <object class="GtkScrolledWindow" id="options_scroll">
+-            <property name="visible">True</property>
+-            <property name="can_focus">True</property>
+-            <property name="border_width">5</property>
+-            <property name="shadow_type">out</property>
+-            <child>
+-              <object class="GtkViewport" id="viewport1">
+-                <property name="visible">True</property>
+-                <property name="can_focus">False</property>
+-                <property name="shadow_type">none</property>
+-                <child>
+-                  <object class="GtkVBox" id="options_vbox">
+-                    <property name="visible">True</property>
+-                    <property name="can_focus">False</property>
+-                  </object>
+-                </child>
+-              </object>
+-            </child>
+-          </object>
+-          <packing>
+-            <property name="expand">False</property>
+-            <property name="fill">True</property>
+-            <property name="position">1</property>
+-          </packing>
+-        </child>
+-        <child internal-child="action_area">
+-          <object class="GtkButtonBox" id="dialog-action_area4">
+-            <property name="visible">True</property>
+-            <property name="can_focus">False</property>
+-            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+-            <property name="layout_style">end</property>
+-            <child>
+-              <placeholder/>
+-            </child>
+-            <child>
+-              <object class="GtkButton" id="button2">
+-                <property name="label">gtk-close</property>
+-                <property name="visible">True</property>
+-                <property name="can_focus">True</property>
+-                <property name="receives_default">True</property>
+-                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+-                <property name="use_action_appearance">False</property>
+-                <property name="use_stock">True</property>
+-              </object>
+-              <packing>
+-                <property name="expand">False</property>
+-                <property name="fill">False</property>
+-                <property name="position">1</property>
+-              </packing>
+-            </child>
+-          </object>
+-        </child>
+-      </object>
+-    </child>
+-    <action-widgets>
+-      <action-widget response="-7">button2</action-widget>
+-    </action-widgets>
+-  </object>
+-</interface>
+diff -uNrp a/panels/region/cinnamon-region-panel-system.c b/panels/region/cinnamon-region-panel-system.c
+--- a/panels/region/cinnamon-region-panel-system.c	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/cinnamon-region-panel-system.c	2013-09-21 13:24:15.342949428 +0100
+@@ -27,15 +27,18 @@
+ 
+ #include <polkit/polkit.h>
+ 
+-#include <glib/gi18n-lib.h>
++#include <glib/gi18n.h>
++
++#define GNOME_DESKTOP_USE_UNSTABLE_API
++#include <libcinnamon-desktop/gnome-xkb-info.h>
+ 
+-#include <libgnomekbd/gkbd-keyboard-config.h>
+ #include "cc-common-language.h"
+ #include "gdm-languages.h"
+ #include "cinnamon-region-panel-system.h"
+-#include "cinnamon-region-panel-xkb.h"
+ 
+-static GSettings *locale_settings, *xkb_settings;
++#define WID(s) GTK_WIDGET(gtk_builder_get_object (dialog, s))
++
++static GSettings *locale_settings, *input_sources_settings;
+ static GDBusProxy *localed_proxy;
+ static GPermission *localed_permission;
+ 
+@@ -72,13 +75,14 @@ update_copy_button (GtkBuilder *dialog)
+ 
+         button = WID ("copy_settings_button");
+ 
+-        /* If the version of localed doesn't include layouts... */
+-        if (system_input_source) {
++        if (user_input_source && user_input_source[0]) {
+                 layouts_differ = (g_strcmp0 (user_input_source, system_input_source) != 0);
+                 if (layouts_differ == FALSE)
+                         layouts_differ = (g_strcmp0 (user_input_variants, system_input_variants) != 0);
+-        } else
++        } else {
++                /* Nothing to copy */
+                 layouts_differ = FALSE;
++        }
+ 
+         if (g_strcmp0 (user_lang, system_lang) == 0 &&
+             g_strcmp0 (user_region, system_region) == 0 &&
+@@ -131,61 +135,67 @@ system_update_language (GtkBuilder *dial
+ }
+ 
+ static void
+-xkb_settings_changed (GSettings *settings,
+-                      const gchar *key,
+-                      GtkBuilder *dialog)
++input_sources_changed (GSettings *settings,
++                       const gchar *key,
++                       GtkBuilder *dialog)
+ {
+-	guint i;
+-	GString *disp, *list, *variants;
+-	GtkWidget *label;
+-	gchar **layouts;
+-
+-	layouts = g_settings_get_strv (settings, "layouts");
+-	if (layouts == NULL)
+-		return;
+-
+-	label = WID ("user_input_source");
+-	disp = g_string_new ("");
+-	list = g_string_new ("");
+-	variants = g_string_new ("");
+-
+-	for (i = 0; layouts[i]; i++) {
+-		gchar *utf_visible;
+-		char **split;
+-		gchar *layout, *variant;
+-
+-		utf_visible = xkb_layout_description_utf8 (layouts[i]);
+-		if (disp->str[0] != '\0')
+-			g_string_append (disp, ", ");
+-		g_string_append (disp, utf_visible ? utf_visible : layouts[i]);
+-		g_free (utf_visible);
+-
+-		split = g_strsplit_set (layouts[i], " \t", 2);
+-
+-		if (split == NULL || split[0] == NULL)
+-			continue;
+-
+-		layout = split[0];
+-		variant = split[1];
+-
+-		if (list->str[0] != '\0')
+-			g_string_append (list, ",");
+-		g_string_append (list, layout);
+-
+-		if (variants->str[0] != '\0')
+-			g_string_append (variants, ",");
+-		g_string_append (variants, variant ? variant : "");
+-
+-		g_strfreev (split);
+-	}
+-	g_strfreev (layouts);
++        GString *disp, *list, *variants;
++        GtkWidget *label;
++        GnomeXkbInfo *xkb_info;
++        GVariantIter iter;
++        GVariant *sources;
++        const gchar *type;
++        const gchar *id;
++
++        sources = g_settings_get_value (input_sources_settings, "sources");
++        xkb_info = gnome_xkb_info_new ();
++
++        label = WID ("user_input_source");
++        disp = g_string_new ("");
++        list = g_string_new ("");
++        variants = g_string_new ("");
++
++        g_variant_iter_init (&iter, sources);
++        while (g_variant_iter_next (&iter, "(&s&s)", &type, &id)) {
++                /* We can't copy non-XKB layouts to the system yet */
++                if (g_str_equal (type, "xkb")) {
++                        char **split;
++                        gchar *layout, *variant;
++                        const char *name;
++
++                        gnome_xkb_info_get_layout_info (xkb_info, id, &name, NULL, NULL, NULL);
++                        if (disp->str[0] != '\0')
++                                g_string_append (disp, ", ");
++                        g_string_append (disp, name);
++
++                        split = g_strsplit (id, "+", 2);
++
++                        if (split == NULL || split[0] == NULL)
++                                continue;
++
++                        layout = split[0];
++                        variant = split[1];
++
++                        if (list->str[0] != '\0') {
++                                g_string_append (list, ",");
++                                g_string_append (variants, ",");
++                        }
++                        g_string_append (list, layout);
++                        g_string_append (variants, variant ? variant : "");
++
++                        g_strfreev (split);
++                }
++        }
++        g_variant_unref (sources);
++        g_object_unref (xkb_info);
+ 
+         g_object_set_data_full (G_OBJECT (label), "input_source", g_string_free (list, FALSE), g_free);
+         g_object_set_data_full (G_OBJECT (label), "input_variants", g_string_free (variants, FALSE), g_free);
++
+         gtk_label_set_text (GTK_LABEL (label), disp->str);
+         g_string_free (disp, TRUE);
+ 
+-	update_copy_button (dialog);
++        update_copy_button (dialog);
+ }
+ 
+ static void
+@@ -222,12 +232,13 @@ on_localed_properties_changed (GDBusProx
+                                const gchar **invalidated_properties,
+                                GtkBuilder   *dialog)
+ {
+-        GVariant *v;
++        GVariant *v, *w;
+         GtkWidget *label;
+-        const char *layout;
++        GnomeXkbInfo *xkb_info;
+         char **layouts;
++        char **variants;
+         GString *disp;
+-        guint i;
++        guint i, n;
+ 
+         if (invalidated_properties != NULL) {
+                 guint i;
+@@ -236,6 +247,8 @@ on_localed_properties_changed (GDBusProx
+                                 update_property (proxy, "Locale");
+                         else if (g_str_equal (invalidated_properties[i], "X11Layout"))
+                                 update_property (proxy, "X11Layout");
++                        else if (g_str_equal (invalidated_properties[i], "X11Variant"))
++                                update_property (proxy, "X11Variant");
+                 }
+         }
+ 
+@@ -290,29 +303,56 @@ on_localed_properties_changed (GDBusProx
+         label = WID ("system_input_source");
+         v = g_dbus_proxy_get_cached_property (proxy, "X11Layout");
+         if (v) {
+-                layout = g_variant_get_string (v, NULL);
+-                g_object_set_data_full (G_OBJECT (label), "input_source", g_strdup (layout), g_free);
+-	} else {
++                layouts = g_strsplit (g_variant_get_string (v, NULL), ",", -1);
++                g_object_set_data_full (G_OBJECT (label), "input_source",
++                                        g_variant_dup_string (v, NULL), g_free);
++                g_variant_unref (v);
++        } else {
+                 g_object_set_data_full (G_OBJECT (label), "input_source", NULL, g_free);
+                 update_copy_button (dialog);
+                 return;
+         }
+ 
+-	disp = g_string_new ("");
+-	layouts = g_strsplit (layout, ",", -1);
+-	for (i = 0; layouts[i]; i++) {
+-		gchar *utf_visible;
+-
+-		utf_visible = xkb_layout_description_utf8 (layouts[i]);
+-		if (disp->str[0] != '\0')
+-			disp = g_string_append (disp, ", ");
+-		disp = g_string_append (disp, utf_visible ? utf_visible : layouts[i]);
+-		g_free (utf_visible);
+-	}
++        w = g_dbus_proxy_get_cached_property (proxy, "X11Variant");
++        if (w) {
++                variants = g_strsplit (g_variant_get_string (w, NULL), ",", -1);
++                g_object_set_data_full (G_OBJECT (label), "input_variants",
++                                        g_variant_dup_string (w, NULL), g_free);
++                g_variant_unref (w);
++        } else {
++                variants = NULL;
++                g_object_set_data_full (G_OBJECT (label), "input_variants", NULL, g_free);
++        }
++
++        if (variants && variants[0])
++                n = MIN (g_strv_length (layouts), g_strv_length (variants));
++        else
++                n = g_strv_length (layouts);
++
++        xkb_info = gnome_xkb_info_new ();
++        disp = g_string_new ("");
++        for (i = 0; i < n && layouts[i][0]; i++) {
++                const char *name;
++                char *id;
++
++                if (variants && variants[i] && variants[i][0])
++                        id = g_strdup_printf ("%s+%s", layouts[i], variants[i]);
++                else
++                        id = g_strdup (layouts[i]);
++
++                gnome_xkb_info_get_layout_info (xkb_info, id, &name, NULL, NULL, NULL);
++                if (disp->str[0] != '\0')
++                        disp = g_string_append (disp, ", ");
++                disp = g_string_append (disp, name ? name : id);
++
++                g_free (id);
++        }
+         gtk_label_set_text (GTK_LABEL (label), disp->str);
+         g_string_free (disp, TRUE);
+ 
+-        g_variant_unref (v);
++        g_strfreev (variants);
++        g_strfreev (layouts);
++        g_object_unref (xkb_info);
+ 
+         update_copy_button (dialog);
+ }
+@@ -386,6 +426,11 @@ copy_settings (GtkButton *button, GtkBui
+         layout = g_object_get_data (G_OBJECT (label), "input_source");
+         variants = g_object_get_data (G_OBJECT (label), "input_variants");
+ 
++        if (layout == NULL || layout[0] == '\0') {
++                g_debug ("Not calling SetX11Keyboard, as there are no XKB input sources in the user's settings");
++                return;
++        }
++
+         g_dbus_proxy_call (localed_proxy,
+                            "SetX11Keyboard",
+                            g_variant_new ("(ssssbb)", layout, "", variants ? variants : "", "", TRUE, TRUE),
+@@ -468,10 +513,10 @@ setup_system (GtkBuilder *dialog)
+                           G_CALLBACK (locale_settings_changed), dialog);
+         g_object_weak_ref (G_OBJECT (dialog), (GWeakNotify) g_object_unref, locale_settings);
+ 
+-	xkb_settings = g_settings_new (GKBD_KEYBOARD_SCHEMA);
+-	g_signal_connect (xkb_settings, "changed::layouts",
+-			  G_CALLBACK (xkb_settings_changed), dialog);
+-	g_object_weak_ref (G_OBJECT (dialog), (GWeakNotify) g_object_unref, xkb_settings);
++        input_sources_settings = g_settings_new ("org.cinnamon.desktop.input-sources");
++        g_signal_connect (input_sources_settings, "changed::sources",
++                          G_CALLBACK (input_sources_changed), dialog);
++        g_object_weak_ref (G_OBJECT (dialog), (GWeakNotify) g_object_unref, input_sources_settings);
+ 
+         /* Display user settings */
+         language = cc_common_language_get_current_language ();
+@@ -480,7 +525,7 @@ setup_system (GtkBuilder *dialog)
+ 
+         locale_settings_changed (locale_settings, "region", dialog);
+ 
+-        xkb_settings_changed (xkb_settings, "layouts", dialog);
++        input_sources_changed (input_sources_settings, "sources", dialog);
+ 
+         bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
+         g_dbus_proxy_new (bus,
+diff -uNrp a/panels/region/cinnamon-region-panel-system.h b/panels/region/cinnamon-region-panel-system.h
+--- a/panels/region/cinnamon-region-panel-system.h	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/cinnamon-region-panel-system.h	2013-09-21 13:24:15.342949428 +0100
+@@ -19,8 +19,8 @@
+  * 02110-1335, USA.
+  */
+ 
+-#ifndef __GNOME_REGION_PANEL_SYSTEM_H
+-#define __GNOME_REGION_PANEL_SYSTEM_H
++#ifndef __CINNAMON_REGION_PANEL_SYSTEM_H
++#define __CINNAMON_REGION_PANEL_SYSTEM_H
+ 
+ #include <gtk/gtk.h>
+ 
+diff -uNrp a/panels/region/cinnamon-region-panel.ui b/panels/region/cinnamon-region-panel.ui
+--- a/panels/region/cinnamon-region-panel.ui	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/cinnamon-region-panel.ui	2013-09-21 13:24:15.347949247 +0100
+@@ -162,27 +162,17 @@
+                             <style>
+                               <class name="inline-toolbar"/>
+                             </style>
++                            <style>
++                              <class name="inline-toolbar"/>
++                            </style>
+                             <child>
+                               <object class="GtkToolButton" id="language_add">
++                                <property name="use_action_appearance">False</property>
+                                 <property name="visible">True</property>
+-                                <property name="can_focus">False</property>
+                                 <property name="label" translatable="yes">Add Language</property>
+-                                <property name="use_underline">True</property>
+-                                <property name="icon_name">list-add-symbolic</property>
+-                              </object>
+-                              <packing>
+-                                <property name="expand">False</property>
+-                                <property name="homogeneous">True</property>
+-                              </packing>
+-                            </child>
+-                            <child>
+-                              <object class="GtkToolButton" id="language_remove">
+-                                <property name="visible">True</property>
+-                                <property name="sensitive">False</property>
+                                 <property name="can_focus">False</property>
+-                                <property name="label" translatable="yes">Remove Language</property>
+                                 <property name="use_underline">True</property>
+-                                <property name="icon_name">list-remove-symbolic</property>
++                                <property name="icon_name">list-add-symbolic</property>
+                               </object>
+                               <packing>
+                                 <property name="expand">False</property>
+@@ -198,12 +188,13 @@
+                         </child>
+                         <child>
+                           <object class="GtkVBox" id="vbox3">
+-                            <property name="visible">True</property>
+                             <property name="can_focus">False</property>
+                             <child>
+                               <object class="GtkLabel" id="label23">
+                                 <property name="visible">True</property>
+                                 <property name="can_focus">False</property>
++                                <property name="use_underline">True</property>
++                                <property name="label" translatable="yes">Add Language</property>
+                               </object>
+                               <packing>
+                                 <property name="expand">True</property>
+@@ -212,23 +203,24 @@
+                               </packing>
+                             </child>
+                             <child>
+-                              <object class="GtkButton" id="get_languages_button">
+-                                <property name="label" translatable="yes">button</property>
++                              <object class="GtkLinkButton" id="linkbutton1">
++                                <property name="label" translatable="yes">Install languages...</property>
+                                 <property name="visible">True</property>
+                                 <property name="can_focus">True</property>
+                                 <property name="receives_default">True</property>
++                                <property name="has_tooltip">True</property>
+                               </object>
+                               <packing>
+-                                <property name="expand">True</property>
++                                <property name="expand">False</property>
+                                 <property name="fill">True</property>
+-                                <property name="position">13</property>
++                                <property name="position">1</property>
+                               </packing>
+                             </child>
+                           </object>
+                           <packing>
+                             <property name="expand">False</property>
+                             <property name="fill">True</property>
+-                            <property name="position">2</property>
++                            <property name="position">1</property>
+                           </packing>
+                         </child>
+                       </object>
+@@ -305,19 +297,19 @@
+                         </child>
+                         <child>
+                           <object class="GtkToolbar" id="region-toolbar">
+-                            <property name="visible">True</property>
+-                            <property name="can_focus">False</property>
+                             <property name="toolbar_style">icons</property>
+                             <property name="show_arrow">False</property>
+                             <property name="icon_size">1</property>
++                            <property name="visible">True</property>
+                             <style>
+                               <class name="inline-toolbar"/>
+                             </style>
+                             <child>
+                               <object class="GtkToolButton" id="region_add">
++                                <property name="use_action_appearance">False</property>
++                                <property name="label" translatable="yes">Add Region</property>
+                                 <property name="visible">True</property>
+                                 <property name="can_focus">False</property>
+-                                <property name="label" translatable="yes">Add Region</property>
+                                 <property name="use_underline">True</property>
+                                 <property name="icon_name">list-add-symbolic</property>
+                               </object>
+@@ -328,10 +320,11 @@
+                             </child>
+                             <child>
+                               <object class="GtkToolButton" id="region_remove">
++                                <property name="use_action_appearance">False</property>
+                                 <property name="visible">True</property>
++                                <property name="label" translatable="yes">Remove Region</property>
+                                 <property name="sensitive">False</property>
+                                 <property name="can_focus">False</property>
+-                                <property name="label" translatable="yes">Remove Region</property>
+                                 <property name="use_underline">True</property>
+                                 <property name="icon_name">list-remove-symbolic</property>
+                               </object>
+@@ -373,18 +366,6 @@
+                                 <property name="n_rows">9</property>
+                                 <property name="n_columns">2</property>
+                                 <child>
+-                                  <placeholder/>
+-                                </child>
+-                                <child>
+-                                  <placeholder/>
+-                                </child>
+-                                <child>
+-                                  <placeholder/>
+-                                </child>
+-                                <child>
+-                                  <placeholder/>
+-                                </child>
+-                                <child>
+                                   <object class="GtkLabel" id="label7">
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">False</property>
+@@ -626,6 +607,12 @@
+                         <property name="height">1</property>
+                       </packing>
+                     </child>
++                    <child>
++                      <placeholder/>
++                    </child>
++                    <child>
++                      <placeholder/>
++                    </child>
+                   </object>
+                   <packing>
+                     <property name="position">1</property>
+@@ -643,36 +630,43 @@
+                   </packing>
+                 </child>
+                 <child>
+-                  <object class="GtkVBox" id="vbox1">
++                  <object class="GtkVBox" id="vbox5">
+                     <property name="visible">True</property>
+                     <property name="can_focus">False</property>
+-                    <property name="border_width">10</property>
++                    <property name="border_width">12</property>
+                     <property name="spacing">12</property>
+                     <child>
+-                      <placeholder/>
++                      <object class="GtkLabel" id="label24">
++                        <property name="visible">True</property>
++                        <property name="can_focus">False</property>
++                        <property name="xalign">0</property>
++                        <property name="label" translatable="yes">Select keyboards or other input sources</property>
++                      </object>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                        <property name="position">0</property>
++                      </packing>
+                     </child>
+                     <child>
+-                      <object class="GtkHBox" id="hbox2">
++                      <object class="GtkHBox" id="hbox3">
+                         <property name="visible">True</property>
+                         <property name="can_focus">False</property>
+                         <property name="spacing">12</property>
+                         <child>
+-                          <object class="GtkVBox" id="vbox7">
++                          <object class="GtkVBox" id="vbox6">
+                             <property name="visible">True</property>
+                             <property name="can_focus">False</property>
+                             <child>
+-                              <object class="GtkScrolledWindow" id="xkb_layouts_swindow">
++                              <object class="GtkScrolledWindow" id="input_sources_swindow">
+                                 <property name="visible">True</property>
+                                 <property name="can_focus">True</property>
+                                 <property name="shadow_type">in</property>
+                                 <child>
+-                                  <object class="GtkTreeView" id="xkb_layouts_selected">
++                                  <object class="GtkTreeView" id="active_input_sources">
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="headers_visible">False</property>
+-                                    <child internal-child="selection">
+-                                      <object class="GtkTreeSelection" id="treeview-selection1"/>
+-                                    </child>
+                                   </object>
+                                 </child>
+                               </object>
+@@ -683,7 +677,7 @@
+                               </packing>
+                             </child>
+                             <child>
+-                              <object class="GtkToolbar" id="layouts-toolbar">
++                              <object class="GtkToolbar" id="input-toolbar">
+                                 <property name="visible">True</property>
+                                 <property name="can_focus">False</property>
+                                 <property name="toolbar_style">icons</property>
+@@ -693,70 +687,166 @@
+                                   <class name="inline-toolbar"/>
+                                 </style>
+                                 <child>
+-                                  <object class="GtkToolButton" id="xkb_layouts_add">
++                                  <object class="GtkToolItem" id="i_s_ar_item">
+                                     <property name="visible">True</property>
+-                                    <property name="can_focus">False</property>
+-                                    <property name="label" translatable="yes">Add Layout</property>
+-                                    <property name="use_underline">True</property>
+-                                    <property name="icon_name">list-add-symbolic</property>
++                                    <child>
++                                      <object class="GtkBox" id="i_s_ar_box">
++                                        <property name="visible">True</property>
++                                        <child>
++                                           <object class="GtkButton" id="input_source_add">
++                                             <property name="visible">True</property>
++                                             <child internal-child="accessible">
++                                               <object class="AtkObject" id="i_s_a_a11y">
++                                                 <property name="accessible-name" translatable="yes">Add Input Source</property>
++                                               </object>
++                                             </child>
++                                             <child>
++                                                <object class="GtkImage" id="i_s_a_image">
++
++                                                  <property name="visible">True</property>
++                                                  <property name="icon-name">list-add-symbolic</property>
++                                                  <property name="icon-size">1</property>
++                                                </object>
++                                             </child>
++                                           </object>
++                                        </child>
++                                        <child>
++                                           <object class="GtkButton" id="input_source_remove">
++                                             <property name="visible">True</property>
++                                             <child internal-child="accessible">
++                                               <object class="AtkObject" id="i_s_r_a11y">
++                                                 <property name="accessible-name" translatable="yes">Remove Input Source</property>
++                                               </object>
++                                             </child>
++                                             <child>
++                                                <object class="GtkImage" id="i_s_r_image">
++                                                  <property name="visible">True</property>
++                                                  <property name="icon-name">list-remove-symbolic</property>
++                                                  <property name="icon-size">1</property>
++                                                </object>
++                                             </child>
++                                           </object>
++                                        </child>
++                                      </object>
++                                    </child>
+                                   </object>
+-                                  <packing>
+-                                    <property name="expand">False</property>
+-                                    <property name="homogeneous">True</property>
+-                                  </packing>
+                                 </child>
++
+                                 <child>
+-                                  <object class="GtkToolButton" id="xkb_layouts_remove">
++                                  <object class="GtkSeparatorToolItem" id="sep1">
+                                     <property name="visible">True</property>
+-                                    <property name="can_focus">False</property>
+-                                    <property name="label" translatable="yes">Remove Layout</property>
+-                                    <property name="use_underline">True</property>
+-                                    <property name="icon_name">list-remove-symbolic</property>
++                                    <property name="draw">False</property>
+                                   </object>
+                                   <packing>
+-                                    <property name="expand">False</property>
+-                                    <property name="homogeneous">True</property>
++                                    <property name="expand">True</property>
+                                   </packing>
+                                 </child>
++
+                                 <child>
+-                                  <object class="GtkToolButton" id="xkb_layouts_move_up">
++                                  <object class="GtkToolItem" id="i_s_ud_item">
+                                     <property name="visible">True</property>
+-                                    <property name="can_focus">False</property>
+-                                    <property name="label" translatable="yes">Move Up</property>
+-                                    <property name="use_underline">True</property>
+-                                    <property name="icon_name">go-up-symbolic</property>
++                                    <child>
++                                      <object class="GtkBox" id="i_s_ud_box">
++                                        <property name="visible">True</property>
++                                        <child>
++                                           <object class="GtkButton" id="input_source_move_up">
++                                             <property name="visible">True</property>
++                                             <child internal-child="accessible">
++                                               <object class="AtkObject" id="i_s_u_a11y">
++                                                 <property name="accessible-name" translatable="yes">Move Input Source Up</property>
++                                               </object>
++                                             </child>
++                                             <child>
++                                                <object class="GtkImage" id="i_s_u_image">
++
++                                                  <property name="visible">True</property>
++                                                  <property name="icon-name">go-up-symbolic</property>
++                                                  <property name="icon-size">1</property>
++                                                </object>
++                                             </child>
++                                           </object>
++                                        </child>
++                                        <child>
++                                           <object class="GtkButton" id="input_source_move_down">
++                                             <property name="visible">True</property>
++                                             <child internal-child="accessible">
++                                               <object class="AtkObject" id="i_s_d_a11y">
++                                                 <property name="accessible-name" translatable="yes">Move Input Source Down</property>
++                                               </object>
++                                             </child>
++                                             <child>
++                                                <object class="GtkImage" id="i_s_d_image">
++                                                  <property name="visible">True</property>
++                                                  <property name="icon-name">go-down-symbolic</property>
++                                                  <property name="icon-size">1</property>
++                                                </object>
++                                             </child>
++                                           </object>
++                                        </child>
++                                      </object>
++                                    </child>
+                                   </object>
+-                                  <packing>
+-                                    <property name="expand">False</property>
+-                                    <property name="homogeneous">True</property>
+-                                  </packing>
+                                 </child>
++
+                                 <child>
+-                                  <object class="GtkToolButton" id="xkb_layouts_move_down">
++                                  <object class="GtkSeparatorToolItem" id="sep2">
+                                     <property name="visible">True</property>
+-                                    <property name="can_focus">False</property>
+-                                    <property name="label" translatable="yes">Move Down</property>
+-                                    <property name="use_underline">True</property>
+-                                    <property name="icon_name">go-down-symbolic</property>
++                                    <property name="draw">False</property>
++                                    <property name="hexpand">True</property>
+                                   </object>
+                                   <packing>
+-                                    <property name="expand">False</property>
+-                                    <property name="homogeneous">True</property>
++                                    <property name="expand">True</property>
+                                   </packing>
+                                 </child>
++
+                                 <child>
+-                                  <object class="GtkToolButton" id="xkb_layouts_show">
++                                  <object class="GtkToolItem" id="i_s_sp_item">
+                                     <property name="visible">True</property>
+-                                    <property name="can_focus">False</property>
+-                                    <property name="label" translatable="yes">Preview Layout</property>
+-                                    <property name="use_underline">True</property>
+-                                    <property name="icon_name">input-keyboard-symbolic</property>
++                                    <child>
++                                      <object class="GtkBox" id="i_s_sp_box">
++                                        <property name="visible">True</property>
++                                        <child>
++                                           <object class="GtkButton" id="input_source_settings">
++                                             <property name="visible">True</property>
++                                             <child internal-child="accessible">
++                                               <object class="AtkObject" id="i_s_s_a11y">
++                                                 <property name="accessible-name" translatable="yes">Input Source Settings</property>
++                                               </object>
++                                             </child>
++                                             <child>
++                                                <object class="GtkImage" id="i_s_s_image">
++
++                                                  <property name="visible">True</property>
++                                                  <property name="icon_name">preferences-system-symbolic</property>
++                                                  <property name="icon_size">1</property>
++                                                  <property name="pixel_size">16</property>
++                                                </object>
++                                             </child>
++                                           </object>
++                                        </child>
++                                        <child>
++                                           <object class="GtkButton" id="input_source_show">
++                                             <property name="visible">True</property>
++                                             <child internal-child="accessible">
++                                               <object class="AtkObject" id="i_s_p_a11y">
++                                                 <property name="accessible-name" translatable="yes">Show Keyboard Layout</property>
++                                               </object>
++                                             </child>
++                                             <child>
++                                                <object class="GtkImage" id="i_s_p_image">
++
++                                                  <property name="visible">True</property>
++                                                  <property name="icon_name">input-keyboard-symbolic</property>
++                                                  <property name="icon-size">1</property>
++                                                </object>
++                                             </child>
++                                           </object>
++                                        </child>
++                                      </object>
++                                    </child>
+                                   </object>
+-                                  <packing>
+-                                    <property name="expand">False</property>
+-                                    <property name="homogeneous">True</property>
+-                                  </packing>
+                                 </child>
++
+                               </object>
+                               <packing>
+                                 <property name="expand">False</property>
+@@ -772,168 +862,111 @@
+                           </packing>
+                         </child>
+                         <child>
+-                          <object class="GtkVBox" id="vbox33">
++                          <object class="GtkFrame" id="frame4">
+                             <property name="visible">True</property>
+                             <property name="can_focus">False</property>
+-                            <property name="spacing">12</property>
++                            <property name="label_xalign">0</property>
++                            <property name="shadow_type">none</property>
+                             <child>
+-                              <object class="GtkVBox" id="vbox34">
++                              <object class="GtkAlignment" id="alignment3">
+                                 <property name="visible">True</property>
+                                 <property name="can_focus">False</property>
+-                                <property name="spacing">6</property>
++                                <property name="left_padding">12</property>
+                                 <child>
+-                                  <object class="GtkRadioButton" id="chk_same_group">
+-                                    <property name="label" translatable="yes">Use the same layout for all windows</property>
+-                                    <property name="visible">True</property>
+-                                    <property name="can_focus">True</property>
+-                                    <property name="receives_default">False</property>
+-                                    <property name="xalign">0</property>
+-                                    <property name="active">True</property>
+-                                    <property name="draw_indicator">True</property>
+-                                  </object>
+-                                  <packing>
+-                                    <property name="expand">True</property>
+-                                    <property name="fill">True</property>
+-                                    <property name="position">0</property>
+-                                  </packing>
+-                                </child>
+-                                <child>
+-                                  <object class="GtkRadioButton" id="chk_separate_group_per_window">
+-                                    <property name="label" translatable="yes">Allow different layouts for individual windows</property>
+-                                    <property name="visible">True</property>
+-                                    <property name="can_focus">True</property>
+-                                    <property name="receives_default">False</property>
+-                                    <property name="xalign">0</property>
+-                                    <property name="active">True</property>
+-                                    <property name="draw_indicator">True</property>
+-                                    <property name="group">chk_same_group</property>
+-                                  </object>
+-                                  <packing>
+-                                    <property name="expand">True</property>
+-                                    <property name="fill">True</property>
+-                                    <property name="position">1</property>
+-                                  </packing>
+-                                </child>
+-                                <child>
+-                                  <object class="GtkAlignment" id="alignment1">
++                                  <object class="GtkGrid" id="shortcuts-grid">
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">False</property>
+-                                    <property name="left_padding">12</property>
++                                    <property name="margin_top">6</property>
++                                    <property name="row_spacing">6</property>
++                                    <property name="column_spacing">6</property>
+                                     <child>
+-                                      <object class="GtkVBox" id="vbox4">
++                                      <object class="GtkLabel" id="prev-source-label">
+                                         <property name="visible">True</property>
+                                         <property name="can_focus">False</property>
+-                                        <child>
+-                                          <object class="GtkRadioButton" id="chk_new_windows_default_layout">
+-                                            <property name="label" translatable="yes">New windows use the default layout</property>
+-                                            <property name="visible">True</property>
+-                                            <property name="can_focus">True</property>
+-                                            <property name="receives_default">False</property>
+-                                            <property name="xalign">0</property>
+-                                            <property name="active">True</property>
+-                                            <property name="draw_indicator">True</property>
+-                                          </object>
+-                                          <packing>
+-                                            <property name="expand">True</property>
+-                                            <property name="fill">True</property>
+-                                            <property name="position">0</property>
+-                                          </packing>
+-                                        </child>
+-                                        <child>
+-                                          <object class="GtkRadioButton" id="chk_new_windows_inherit_layout">
+-                                            <property name="label" translatable="yes">New windows use the previous window's layout</property>
+-                                            <property name="visible">True</property>
+-                                            <property name="can_focus">True</property>
+-                                            <property name="receives_default">False</property>
+-                                            <property name="xalign">0</property>
+-                                            <property name="active">True</property>
+-                                            <property name="draw_indicator">True</property>
+-                                            <property name="group">chk_new_windows_default_layout</property>
+-                                          </object>
+-                                          <packing>
+-                                            <property name="expand">True</property>
+-                                            <property name="fill">True</property>
+-                                            <property name="position">1</property>
+-                                          </packing>
+-                                        </child>
++                                        <property name="xalign">0</property>
++                                        <property name="label" translatable="yes">Switch to previous source</property>
+                                       </object>
++                                      <packing>
++                                        <property name="left_attach">0</property>
++                                        <property name="top_attach">0</property>
++                                        <property name="width">1</property>
++                                        <property name="height">1</property>
++                                      </packing>
++                                    </child>
++                                    <child>
++                                      <object class="GtkLabel" id="prev-source-shortcut-label">
++                                        <property name="visible">True</property>
++                                        <property name="can_focus">False</property>
++                                        <property name="halign">end</property>
++                                        <property name="hexpand">True</property>
++                                        <property name="label" translatable="yes">Ctrl+Alt+Space</property>
++                                        <style><class name="dim-label"/></style>
++                                      </object>
++                                      <packing>
++                                        <property name="left_attach">1</property>
++                                        <property name="top_attach">0</property>
++                                        <property name="width">1</property>
++                                        <property name="height">1</property>
++                                      </packing>
++                                    </child>
++                                    <child>
++                                      <object class="GtkLabel" id="next-source-label">
++                                        <property name="visible">True</property>
++                                        <property name="can_focus">False</property>
++                                        <property name="xalign">0</property>
++                                        <property name="label" translatable="yes">Switch to next source</property>
++                                      </object>
++                                      <packing>
++                                        <property name="left_attach">0</property>
++                                        <property name="top_attach">1</property>
++                                        <property name="width">1</property>
++                                        <property name="height">1</property>
++                                      </packing>
++                                    </child>
++                                    <child>
++                                      <object class="GtkLabel" id="next-source-shortcut-label">
++                                        <property name="visible">True</property>
++                                        <property name="can_focus">False</property>
++                                        <property name="halign">end</property>
++                                        <property name="hexpand">True</property>
++                                        <property name="label" translatable="yes">Ctrl+Alt+Shift+Space</property>
++                                        <style><class name="dim-label"/></style>
++                                      </object>
++                                      <packing>
++                                        <property name="left_attach">1</property>
++                                        <property name="top_attach">1</property>
++                                        <property name="width">1</property>
++                                        <property name="height">1</property>
++                                      </packing>
++                                    </child>
++                                    <child>
++                                      <object class="GtkLinkButton" id="jump-to-shortcuts">
++                                        <property name="visible">True</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="label" translatable="yes">Shortcut Settings</property>
++                                        <property name="halign">end</property>
++                                      </object>
++                                      <packing>
++                                        <property name="left_attach">1</property>
++                                        <property name="top_attach">2</property>
++                                        <property name="width">1</property>
++                                        <property name="height">1</property>
++                                      </packing>
+                                     </child>
+                                   </object>
+-                                  <packing>
+-                                    <property name="expand">True</property>
+-                                    <property name="fill">True</property>
+-                                    <property name="position">2</property>
+-                                  </packing>
+                                 </child>
+                               </object>
+-                              <packing>
+-                                <property name="expand">False</property>
+-                                <property name="fill">False</property>
+-                                <property name="position">0</property>
+-                              </packing>
+-                            </child>
+-                            <child>
+-                              <object class="GtkLabel" id="label2">
+-                                <property name="visible">True</property>
+-                                <property name="can_focus">False</property>
+-                              </object>
+-                              <packing>
+-                                <property name="expand">True</property>
+-                                <property name="fill">False</property>
+-                                <property name="position">1</property>
+-                              </packing>
+                             </child>
+-                            <child>
+-                              <object class="GtkHButtonBox" id="hbuttonbox2">
++                            <child type="label">
++                              <object class="GtkLabel" id="shortcuts-frame-label">
+                                 <property name="visible">True</property>
+                                 <property name="can_focus">False</property>
+-                                <property name="spacing">6</property>
+-                                <property name="layout_style">end</property>
+-                                <child>
+-                                  <object class="GtkButton" id="xkb_layout_options">
+-                                    <property name="label" translatable="yes">_Options...</property>
+-                                    <property name="visible">True</property>
+-                                    <property name="can_focus">True</property>
+-                                    <property name="receives_default">True</property>
+-                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+-                                    <property name="has_tooltip">True</property>
+-                                    <property name="tooltip_markup" translatable="yes">View and edit keyboard layout options</property>
+-                                    <property name="tooltip_text" translatable="yes">View and edit keyboard layout options</property>
+-                                    <property name="use_underline">True</property>
+-                                  </object>
+-                                  <packing>
+-                                    <property name="expand">False</property>
+-                                    <property name="fill">False</property>
+-                                    <property name="position">0</property>
+-                                  </packing>
+-                                </child>
+-                                <child>
+-                                  <object class="GtkButton" id="xkb_reset_to_defaults">
+-                                    <property name="label" translatable="yes">Reset to De_faults</property>
+-                                    <property name="visible">True</property>
+-                                    <property name="can_focus">True</property>
+-                                    <property name="receives_default">True</property>
+-                                    <property name="has_tooltip">True</property>
+-                                    <property name="tooltip_markup" translatable="yes">Replace the current keyboard layout settings with the
+-default settings</property>
+-                                    <property name="tooltip_text" translatable="yes">Replace the current keyboard layout settings with the
+-default settings</property>
+-                                    <property name="use_underline">True</property>
+-                                  </object>
+-                                  <packing>
+-                                    <property name="expand">False</property>
+-                                    <property name="fill">False</property>
+-                                    <property name="pack_type">end</property>
+-                                    <property name="position">1</property>
+-                                    <property name="secondary">True</property>
+-                                  </packing>
+-                                </child>
++                                <property name="label" translatable="yes">Shortcuts</property>
++                                <property name="use_markup">True</property>
++                                <attributes>
++                                  <attribute name="weight" value="bold"/>
++                                </attributes>
+                               </object>
+-                              <packing>
+-                                <property name="expand">False</property>
+-                                <property name="fill">False</property>
+-                                <property name="position">2</property>
+-                              </packing>
+                             </child>
+                           </object>
+                           <packing>
+@@ -951,17 +984,17 @@ default settings</property>
+                     </child>
+                   </object>
+                   <packing>
+-                    <property name="position">2</property>
++                    <property name="position">3</property>
+                   </packing>
+                 </child>
+                 <child type="tab">
+-                  <object class="GtkLabel" id="label46">
++                  <object class="GtkLabel" id="label13">
+                     <property name="visible">True</property>
+                     <property name="can_focus">False</property>
+-                    <property name="label" translatable="yes">Keyboard Layouts</property>
++                    <property name="label" translatable="yes">Input Sources</property>
+                   </object>
+                   <packing>
+-                    <property name="position">2</property>
++                    <property name="position">3</property>
+                     <property name="tab_fill">False</property>
+                   </packing>
+                 </child>
+@@ -974,9 +1007,6 @@ default settings</property>
+                     <property name="column_spacing">12</property>
+                     <property name="row_spacing">12</property>
+                     <child>
+-                      <placeholder/>
+-                    </child>
+-                    <child>
+                       <object class="GtkLabel" id="system-title">
+                         <property name="visible">True</property>
+                         <property name="can_focus">False</property>
+@@ -1051,6 +1081,7 @@ default settings</property>
+                                 <property name="bottom_attach">2</property>
+                                 <property name="x_padding">3</property>
+                                 <property name="y_padding">3</property>
++                                <property name="y_options">GTK_FILL</property>
+                               </packing>
+                             </child>
+                             <child>
+@@ -1060,6 +1091,7 @@ default settings</property>
+                                 <property name="xalign">0</property>
+                                 <property name="yalign">0</property>
+                                 <property name="wrap">True</property>
++                                <property name="width-chars">18</property>
+                               </object>
+                               <packing>
+                                 <property name="left_attach">1</property>
+@@ -1068,6 +1100,7 @@ default settings</property>
+                                 <property name="bottom_attach">2</property>
+                                 <property name="x_padding">3</property>
+                                 <property name="y_padding">3</property>
++                                <property name="y_options">GTK_FILL</property>
+                               </packing>
+                             </child>
+                             <child>
+@@ -1178,6 +1211,7 @@ default settings</property>
+                                 <property name="bottom_attach">2</property>
+                                 <property name="x_padding">3</property>
+                                 <property name="y_padding">3</property>
++                                <property name="y_options">GTK_FILL</property>
+                               </packing>
+                             </child>
+                             <child>
+@@ -1187,6 +1221,7 @@ default settings</property>
+                                 <property name="xalign">0</property>
+                                 <property name="yalign">0</property>
+                                 <property name="wrap">True</property>
++                                <property name="width-chars">18</property>
+                               </object>
+                               <packing>
+                                 <property name="left_attach">1</property>
+@@ -1195,6 +1230,7 @@ default settings</property>
+                                 <property name="bottom_attach">2</property>
+                                 <property name="x_padding">3</property>
+                                 <property name="y_padding">3</property>
++                                <property name="y_options">GTK_FILL</property>
+                               </packing>
+                             </child>
+                             <child>
+@@ -1254,6 +1290,7 @@ default settings</property>
+                     <child>
+                       <object class="GtkButton" id="copy_settings_button">
+                         <property name="label" translatable="yes">Copy Settings...</property>
++                        <property name="use_action_appearance">False</property>
+                         <property name="visible">True</property>
+                         <property name="can_focus">True</property>
+                         <property name="receives_default">True</property>
+@@ -1269,9 +1306,12 @@ default settings</property>
+                         <property name="y_padding">3</property>
+                       </packing>
+                     </child>
++                    <child>
++                      <placeholder/>
++                    </child>
+                   </object>
+                   <packing>
+-                    <property name="position">3</property>
++                    <property name="position">4</property>
+                   </packing>
+                 </child>
+                 <child type="tab">
+@@ -1281,7 +1321,7 @@ default settings</property>
+                     <property name="label" translatable="yes">System</property>
+                   </object>
+                   <packing>
+-                    <property name="position">3</property>
++                    <property name="position">4</property>
+                     <property name="tab_fill">False</property>
+                   </packing>
+                 </child>
+@@ -1302,4 +1342,11 @@ default settings</property>
+       </object>
+     </child>
+   </object>
++  <object class="GtkSizeGroup" id="system-input-source-sizegroup">
++    <property name="mode">vertical</property>
++    <widgets>
++      <widget name="user_input_source"/>
++      <widget name="system_input_source"/>
++    </widgets>
++  </object>
+ </interface>
+diff -uNrp a/panels/region/cinnamon-region-panel-xkb.c b/panels/region/cinnamon-region-panel-xkb.c
+--- a/panels/region/cinnamon-region-panel-xkb.c	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/cinnamon-region-panel-xkb.c	1970-01-01 01:00:00.000000000 +0100
+@@ -1,190 +0,0 @@
+-/* cinnamon-region-panel-xkb.c
+- * Copyright (C) 2003-2007 Sergey V. Udaltsov
+- *
+- * Written by: Sergey V. Udaltsov <svu@gnome.org>
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2, or (at your option)
+- * any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA
+- * 02110-1335, USA.
+- */
+-
+-#ifdef HAVE_CONFIG_H
+-#  include <config.h>
+-#endif
+-
+-#include <string.h>
+-#include <gdk/gdkx.h>
+-#include <glib/gi18n-lib.h>
+-
+-#include "cinnamon-region-panel-xkb.h"
+-
+-#include <libgnomekbd/gkbd-desktop-config.h>
+-
+-XklEngine *engine;
+-XklConfigRegistry *config_registry;
+-
+-GkbdKeyboardConfig initial_config;
+-GkbdDesktopConfig desktop_config;
+-
+-GSettings *xkb_keyboard_settings;
+-GSettings *xkb_desktop_settings;
+-
+-char *
+-xci_desc_to_utf8 (const XklConfigItem * ci)
+-{
+-	gchar *dd = g_strdup (ci->description);
+-	gchar *sd = g_strstrip (dd);
+-	gchar *rv = g_strdup (sd[0] == 0 ? ci->name : sd);
+-	g_free (dd);
+-	return rv;
+-}
+-
+-static void
+-cleanup_xkb_tabs (GtkBuilder * dialog,
+-		  GObject *where_the_object_wa)
+-{
+-	gkbd_desktop_config_term (&desktop_config);
+-	gkbd_keyboard_config_term (&initial_config);
+-	g_object_unref (G_OBJECT (config_registry));
+-	config_registry = NULL;
+-	/* Don't unref it here, or we'll crash if open the panel again */
+-	engine = NULL;
+-	g_object_unref (G_OBJECT (xkb_keyboard_settings));
+-	g_object_unref (G_OBJECT (xkb_desktop_settings));
+-	xkb_keyboard_settings = NULL;
+-	xkb_desktop_settings = NULL;
+-}
+-
+-static void
+-reset_to_defaults (GtkWidget * button, GtkBuilder * dialog)
+-{
+-	GkbdKeyboardConfig empty_kbd_config;
+-
+-	gkbd_keyboard_config_init (&empty_kbd_config, engine);
+-	gkbd_keyboard_config_save (&empty_kbd_config);
+-	gkbd_keyboard_config_term (&empty_kbd_config);
+-
+-	g_settings_reset (xkb_desktop_settings,
+-			  GKBD_DESKTOP_CONFIG_KEY_DEFAULT_GROUP);
+-
+-	/* all the rest is g-s-d's business */
+-}
+-
+-static void
+-chk_new_windows_inherit_layout_toggled (GtkWidget *
+-					chk_new_windows_inherit_layout,
+-					GtkBuilder * dialog)
+-{
+-	xkb_save_default_group (gtk_toggle_button_get_active
+-				(GTK_TOGGLE_BUTTON
+-				 (chk_new_windows_inherit_layout)) ? -1 :
+-				0);
+-}
+-
+-void
+-setup_xkb_tabs (GtkBuilder * dialog)
+-{
+-	GtkWidget *widget;
+-	GtkStyleContext *context;
+-	GtkWidget *chk_new_windows_inherit_layout;
+-
+-	chk_new_windows_inherit_layout = WID ("chk_new_windows_inherit_layout");
+-
+-	xkb_desktop_settings = g_settings_new (GKBD_DESKTOP_SCHEMA);
+-	xkb_keyboard_settings = g_settings_new (GKBD_KEYBOARD_SCHEMA);
+-
+-	engine =
+-	    xkl_engine_get_instance (GDK_DISPLAY_XDISPLAY
+-				     (gdk_display_get_default ()));
+-	config_registry = xkl_config_registry_get_instance (engine);
+-
+-	gkbd_desktop_config_init (&desktop_config, engine);
+-	gkbd_desktop_config_load (&desktop_config);
+-
+-	xkl_config_registry_load (config_registry,
+-				  desktop_config.load_extra_items);
+-
+-	gkbd_keyboard_config_init (&initial_config, engine);
+-	gkbd_keyboard_config_load_from_x_initial (&initial_config, NULL);
+-
+-	/* Set initial state */
+-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("chk_separate_group_per_window")),
+-				      g_settings_get_boolean (xkb_desktop_settings,
+-							      GKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW));
+-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (chk_new_windows_inherit_layout),
+-				      xkb_get_default_group () < 0);
+-
+-	g_settings_bind (xkb_desktop_settings,
+-			 GKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW,
+-			 WID ("chk_separate_group_per_window"), "active",
+-			 G_SETTINGS_BIND_DEFAULT);
+-	g_settings_bind (xkb_desktop_settings,
+-			 GKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW,
+-			 WID ("chk_new_windows_inherit_layout"), "sensitive",
+-			 G_SETTINGS_BIND_DEFAULT);
+-	g_settings_bind (xkb_desktop_settings,
+-			 GKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW,
+-			 WID ("chk_new_windows_default_layout"), "sensitive",
+-			 G_SETTINGS_BIND_DEFAULT);
+-
+-	xkb_layouts_prepare_selected_tree (dialog);
+-	xkb_layouts_fill_selected_tree (dialog);
+-
+-	xkb_layouts_register_buttons_handlers (dialog);
+-	g_signal_connect (G_OBJECT (WID ("xkb_reset_to_defaults")),
+-			  "clicked", G_CALLBACK (reset_to_defaults),
+-			  dialog);
+-
+-	g_signal_connect (G_OBJECT (chk_new_windows_inherit_layout),
+-			  "toggled",
+-			  G_CALLBACK
+-			  (chk_new_windows_inherit_layout_toggled),
+-			  dialog);
+-
+-	g_signal_connect_swapped (G_OBJECT (WID ("xkb_layout_options")),
+-				  "clicked",
+-				  G_CALLBACK (xkb_options_popup_dialog),
+-				  dialog);
+-
+-	xkb_layouts_register_conf_listener (dialog);
+-	xkb_options_register_conf_listener (dialog);
+-
+-	g_object_weak_ref (G_OBJECT (WID ("region_notebook")),
+-			   (GWeakNotify) cleanup_xkb_tabs, dialog);
+-
+-	enable_disable_restoring (dialog);
+-
+-	/* Setup junction between toolbar and treeview */
+-	widget = WID ("xkb_layouts_swindow");
+-	context = gtk_widget_get_style_context (widget);
+-	gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM);
+-	widget = WID ("layouts-toolbar");
+-	context = gtk_widget_get_style_context (widget);
+-	gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP);
+-}
+-
+-void
+-enable_disable_restoring (GtkBuilder * dialog)
+-{
+-	GkbdKeyboardConfig gswic;
+-	gboolean enable;
+-
+-	gkbd_keyboard_config_init (&gswic, engine);
+-	gkbd_keyboard_config_load (&gswic, NULL);
+-
+-	enable = !gkbd_keyboard_config_equals (&gswic, &initial_config);
+-
+-	gkbd_keyboard_config_term (&gswic);
+-	gtk_widget_set_sensitive (WID ("xkb_reset_to_defaults"), enable);
+-}
+diff -uNrp a/panels/region/cinnamon-region-panel-xkb.h b/panels/region/cinnamon-region-panel-xkb.h
+--- a/panels/region/cinnamon-region-panel-xkb.h	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/cinnamon-region-panel-xkb.h	1970-01-01 01:00:00.000000000 +0100
+@@ -1,96 +0,0 @@
+-/* cinnamon-region-panel-xkb.h
+- * Copyright (C) 2003-2007 Sergey V Udaltsov
+- *
+- * Written by Sergey V. Udaltsov <svu@gnome.org>
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2, or (at your option)
+- * any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA
+- * 02110-1335, USA.
+- */
+-
+-#ifndef __GNOME_KEYBOARD_PROPERTY_XKB_H
+-#define __GNOME_KEYBOARD_PROPERTY_XKB_H
+-
+-#include <gtk/gtk.h>
+-
+-#include "libgnomekbd/gkbd-keyboard-config.h"
+-#include "libgnomekbd/gkbd-util.h"
+-
+-G_BEGIN_DECLS
+-#define CWID(s) GTK_WIDGET (gtk_builder_get_object (chooser_dialog, s))
+-#define WID(s) GTK_WIDGET (gtk_builder_get_object (dialog, s))
+-extern XklEngine *engine;
+-extern XklConfigRegistry *config_registry;
+-extern GSettings *xkb_keyboard_settings;
+-extern GSettings *xkb_desktop_settings;
+-extern GkbdKeyboardConfig initial_config;
+-
+-extern void setup_xkb_tabs (GtkBuilder * dialog);
+-
+-extern void xkb_layouts_fill_selected_tree (GtkBuilder * dialog);
+-
+-extern void xkb_layouts_register_buttons_handlers (GtkBuilder * dialog);
+-
+-extern void xkb_layouts_register_conf_listener (GtkBuilder * dialog);
+-
+-extern void xkb_options_register_conf_listener (GtkBuilder * dialog);
+-
+-extern void xkb_layouts_prepare_selected_tree (GtkBuilder * dialog);
+-
+-extern void xkb_options_load_options (GtkBuilder * dialog);
+-
+-extern void xkb_options_popup_dialog (GtkBuilder * dialog);
+-
+-extern char *xci_desc_to_utf8 (const XklConfigItem * ci);
+-
+-extern gchar *xkb_layout_description_utf8 (const gchar * visible);
+-
+-extern void enable_disable_restoring (GtkBuilder * dialog);
+-
+-extern void preview_toggled (GtkBuilder * dialog, GtkWidget * button);
+-
+-extern GtkWidget *xkb_layout_choose (GtkBuilder * dialog);
+-
+-extern void xkb_layout_chooser_response (GtkDialog *dialog, gint response_id);
+-
+-extern gchar **xkb_layouts_get_selected_list (void);
+-
+-extern gchar **xkb_options_get_selected_list (void);
+-
+-#define xkb_layouts_set_selected_list(list) \
+-        g_settings_set_strv (xkb_keyboard_settings, \
+-                               GKBD_KEYBOARD_CONFIG_KEY_LAYOUTS, \
+-                               (const gchar *const*)(list))
+-
+-#define xkb_options_set_selected_list(list) \
+-        g_settings_set_strv (xkb_keyboard_settings, \
+-                               GKBD_KEYBOARD_CONFIG_KEY_OPTIONS, \
+-                               (const gchar *const*)(list))
+-
+-extern GtkWidget *xkb_layout_preview_create_widget (GtkBuilder *
+-						    chooser_dialog);
+-
+-extern void xkb_layout_preview_update (GtkBuilder * chooser_dialog);
+-
+-extern void xkb_layout_preview_set_drawing_layout (GtkWidget * kbdraw,
+-						   const gchar * id);
+-
+-extern gchar *xkb_layout_chooser_get_selected_id (GtkDialog *dialog);
+-
+-extern void xkb_save_default_group (gint group_no);
+-
+-extern gint xkb_get_default_group (void);
+-
+-G_END_DECLS
+-#endif				/* __GNOME_KEYBOARD_PROPERTY_XKB_H */
+diff -uNrp a/panels/region/cinnamon-region-panel-xkbltadd.c b/panels/region/cinnamon-region-panel-xkbltadd.c
+--- a/panels/region/cinnamon-region-panel-xkbltadd.c	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/cinnamon-region-panel-xkbltadd.c	1970-01-01 01:00:00.000000000 +0100
+@@ -1,495 +0,0 @@
+-/* cinnamon-region-panel-xkbltadd.c
+- * Copyright (C) 2007 Sergey V. Udaltsov
+- *
+- * Written by: Sergey V. Udaltsov <svu@gnome.org>
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2, or (at your option)
+- * any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA
+- * 02110-1335, USA.
+- */
+-
+-#ifdef HAVE_CONFIG_H
+-#  include <config.h>
+-#endif
+-
+-#include <string.h>
+-
+-#include <libgnomekbd/gkbd-keyboard-drawing.h>
+-#include <libgnomekbd/gkbd-util.h>
+-
+-#include "cinnamon-region-panel-xkb.h"
+-
+-enum {
+-	COMBO_BOX_MODEL_COL_SORT,
+-	COMBO_BOX_MODEL_COL_VISIBLE,
+-	COMBO_BOX_MODEL_COL_XKB_ID,
+-	COMBO_BOX_MODEL_COL_COUNTRY_DESC,
+-	COMBO_BOX_MODEL_COL_LANGUAGE_DESC
+-};
+-
+-static gchar **search_pattern_list = NULL;
+-
+-static GtkWidget *preview_dialog = NULL;
+-
+-static GRegex *left_bracket_regex = NULL;
+-
+-#define RESPONSE_PREVIEW 1
+-
+-static void
+-xkb_preview_destroy_callback (GtkWidget * widget)
+-{
+-	preview_dialog = NULL;
+-}
+-
+-static gboolean
+-xkb_layout_chooser_selection_dupe (GtkDialog * dialog)
+-{
+-	gchar *selected_id =
+-	    (gchar *) xkb_layout_chooser_get_selected_id (dialog);
+-	gchar **layouts_list, **pl;
+-	gboolean rv = FALSE;
+-	if (selected_id == NULL)
+-		return rv;
+-	layouts_list = pl = xkb_layouts_get_selected_list ();
+-	while (pl && *pl) {
+-		if (!g_ascii_strcasecmp (*pl++, selected_id)) {
+-			rv = TRUE;
+-			break;
+-		}
+-	}
+-	g_strfreev (layouts_list);
+-	return rv;
+-}
+-
+-void
+-xkb_layout_chooser_response (GtkDialog * dialog, gint response)
+-{
+-	switch (response)
+-	case GTK_RESPONSE_OK:{
+-			/* Handled by the main code */
+-			break;
+-	case RESPONSE_PREVIEW:{
+-				gchar *selected_id = (gchar *)
+-				    xkb_layout_chooser_get_selected_id
+-				    (dialog);
+-
+-				if (selected_id != NULL) {
+-					if (preview_dialog == NULL) {
+-						preview_dialog =
+-						    gkbd_keyboard_drawing_dialog_new
+-						    ();
+-						g_signal_connect (G_OBJECT
+-								  (preview_dialog),
+-								  "destroy",
+-								  G_CALLBACK
+-								  (xkb_preview_destroy_callback),
+-								  NULL);
+-						/* Put into the separate group to avoid conflict
+-						   with modal parent */
+-						gtk_window_group_add_window
+-						    (gtk_window_group_new
+-						     (),
+-						     GTK_WINDOW
+-						     (preview_dialog));
+-					};
+-					gkbd_keyboard_drawing_dialog_set_layout
+-					    (preview_dialog,
+-					     config_registry, selected_id);
+-
+-					gtk_widget_show_all
+-					    (preview_dialog);
+-				}
+-			}
+-
+-			return;
+-		}
+-	if (preview_dialog != NULL) {
+-		gtk_widget_destroy (preview_dialog);
+-	}
+-	if (search_pattern_list != NULL) {
+-		g_strfreev (search_pattern_list);
+-		search_pattern_list = NULL;
+-	}
+-	gtk_widget_destroy (GTK_WIDGET (dialog));
+-}
+-
+-static gchar *
+-xkl_create_description_from_list (const XklConfigItem * item,
+-				  const XklConfigItem * subitem,
+-				  const gchar * prop_name,
+-				  const gchar *
+-				  (*desc_getter) (const gchar * code))
+-{
+-	gchar *rv = NULL, *code = NULL;
+-	gchar **list = NULL;
+-	const gchar *desc;
+-
+-	if (subitem != NULL)
+-		list =
+-		    (gchar
+-		     **) (g_object_get_data (G_OBJECT (subitem),
+-					     prop_name));
+-	if (list == NULL || *list == 0)
+-		list =
+-		    (gchar
+-		     **) (g_object_get_data (G_OBJECT (item), prop_name));
+-
+-	/* First try the parent id as such */
+-	desc = desc_getter (item->name);
+-	if (desc != NULL) {
+-		rv = g_utf8_strup (desc, -1);
+-	} else {
+-		code = g_utf8_strup (item->name, -1);
+-		desc = desc_getter (code);
+-		if (desc != NULL) {
+-			rv = g_utf8_strup (desc, -1);
+-		}
+-		g_free (code);
+-	}
+-
+-	if (list == NULL || *list == 0)
+-		return rv;
+-
+-	while (*list != 0) {
+-		code = *list++;
+-		desc = desc_getter (code);
+-		if (desc != NULL) {
+-			gchar *udesc = g_utf8_strup (desc, -1);
+-			if (rv == NULL) {
+-				rv = udesc;
+-			} else {
+-				gchar *orv = rv;
+-				rv = g_strdup_printf ("%s %s", rv, udesc);
+-				g_free (orv);
+-				g_free (udesc);
+-			}
+-		}
+-	}
+-	return rv;
+-}
+-
+-static void
+-xkl_layout_add_to_list (XklConfigRegistry * config,
+-			const XklConfigItem * item,
+-			const XklConfigItem * subitem,
+-			GtkBuilder * chooser_dialog)
+-{
+-	GtkListStore *list_store =
+-	    GTK_LIST_STORE (gtk_builder_get_object (chooser_dialog,
+-						    "layout_list_model"));
+-	GtkTreeIter iter;
+-
+-	gchar *utf_variant_name =
+-	    subitem ?
+-	    xkb_layout_description_utf8 (gkbd_keyboard_config_merge_items
+-					 (item->name,
+-					  subitem->name)) :
+-	    xci_desc_to_utf8 (item);
+-
+-	const gchar *xkb_id =
+-	    subitem ? gkbd_keyboard_config_merge_items (item->name,
+-							subitem->name) :
+-	    item->name;
+-
+-	gchar *country_desc =
+-	    xkl_create_description_from_list (item, subitem,
+-					      XCI_PROP_COUNTRY_LIST,
+-					      xkl_get_country_name);
+-	gchar *language_desc =
+-	    xkl_create_description_from_list (item, subitem,
+-					      XCI_PROP_LANGUAGE_LIST,
+-					      xkl_get_language_name);
+-
+-	gchar *tmp = utf_variant_name;
+-	utf_variant_name =
+-	    g_regex_replace_literal (left_bracket_regex, tmp, -1, 0,
+-				     "&lt;", 0, NULL);
+-	g_free (tmp);
+-
+-	if (subitem
+-	    && g_object_get_data (G_OBJECT (subitem),
+-				  XCI_PROP_EXTRA_ITEM)) {
+-		gchar *buf =
+-		    g_strdup_printf ("<i>%s</i>", utf_variant_name);
+-		gtk_list_store_insert_with_values (list_store, &iter, -1,
+-						   COMBO_BOX_MODEL_COL_SORT,
+-						   utf_variant_name,
+-						   COMBO_BOX_MODEL_COL_VISIBLE,
+-						   buf,
+-						   COMBO_BOX_MODEL_COL_XKB_ID,
+-						   xkb_id,
+-						   COMBO_BOX_MODEL_COL_COUNTRY_DESC,
+-						   country_desc,
+-						   COMBO_BOX_MODEL_COL_LANGUAGE_DESC,
+-						   language_desc, -1);
+-		g_free (buf);
+-	} else
+-		gtk_list_store_insert_with_values (list_store, &iter,
+-						   -1,
+-						   COMBO_BOX_MODEL_COL_SORT,
+-						   utf_variant_name,
+-						   COMBO_BOX_MODEL_COL_VISIBLE,
+-						   utf_variant_name,
+-						   COMBO_BOX_MODEL_COL_XKB_ID,
+-						   xkb_id,
+-						   COMBO_BOX_MODEL_COL_COUNTRY_DESC,
+-						   country_desc,
+-						   COMBO_BOX_MODEL_COL_LANGUAGE_DESC,
+-						   language_desc, -1);
+-	g_free (utf_variant_name);
+-	g_free (country_desc);
+-	g_free (language_desc);
+-}
+-
+-static void
+-xkb_layout_filter_clear (GtkEntry * entry,
+-			 GtkEntryIconPosition icon_pos,
+-			 GdkEvent * event, gpointer user_data)
+-{
+-	gtk_entry_set_text (entry, "");
+-}
+-
+-static void
+-xkb_layout_filter_changed (GtkBuilder * chooser_dialog)
+-{
+-	GtkTreeModelFilter *filtered_model =
+-	    GTK_TREE_MODEL_FILTER (gtk_builder_get_object (chooser_dialog,
+-							   "filtered_layout_list_model"));
+-	GtkWidget *xkb_layout_filter = CWID ("xkb_layout_filter");
+-	const gchar *pattern =
+-	    gtk_entry_get_text (GTK_ENTRY (xkb_layout_filter));
+-	gchar *upattern = g_utf8_strup (pattern, -1);
+-
+-	if (!g_strcmp0 (pattern, "")) {
+-		g_object_set (G_OBJECT (xkb_layout_filter),
+-			      "secondary-icon-name", "edit-find-symbolic",
+-			      "secondary-icon-activatable", FALSE,
+-			      "secondary-icon-sensitive", FALSE, NULL);
+-	} else {
+-		g_object_set (G_OBJECT (xkb_layout_filter),
+-			      "secondary-icon-name", "edit-clear-symbolic",
+-			      "secondary-icon-activatable", TRUE,
+-			      "secondary-icon-sensitive", TRUE, NULL);
+-	}
+-
+-	if (search_pattern_list != NULL)
+-		g_strfreev (search_pattern_list);
+-
+-	search_pattern_list = g_strsplit (upattern, " ", -1);
+-	g_free (upattern);
+-
+-	gtk_tree_model_filter_refilter (filtered_model);
+-}
+-
+-static void
+-xkb_layout_chooser_selection_changed (GtkTreeSelection * selection,
+-				      GtkBuilder * chooser_dialog)
+-{
+-	GList *selected_layouts =
+-	    gtk_tree_selection_get_selected_rows (selection, NULL);
+-	GtkWidget *add_button = CWID ("btnOk");
+-	GtkWidget *preview_button = CWID ("btnPreview");
+-	gboolean anything_selected = g_list_length (selected_layouts) == 1;
+-	gboolean dupe =
+-	    xkb_layout_chooser_selection_dupe (GTK_DIALOG
+-					       (CWID
+-						("xkb_layout_chooser")));
+-
+-	gtk_widget_set_sensitive (add_button, anything_selected && !dupe);
+-	gtk_widget_set_sensitive (preview_button, anything_selected);
+-}
+-
+-static void
+-xkb_layout_chooser_row_activated (GtkTreeView * tree_view,
+-				  GtkTreePath * path,
+-				  GtkTreeViewColumn * column,
+-				  GtkBuilder * chooser_dialog)
+-{
+-	GtkWidget *add_button = CWID ("btnOk");
+-	GtkWidget *dialog = CWID ("xkb_layout_chooser");
+-
+-	if (gtk_widget_is_sensitive (add_button))
+-		gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
+-}
+-
+-static gboolean
+-xkb_filter_layouts (GtkTreeModel * model,
+-		    GtkTreeIter * iter, gpointer data)
+-{
+-	gchar *desc = NULL, *country_desc = NULL, *language_desc =
+-	    NULL, **pattern;
+-	gboolean rv = TRUE;
+-
+-	if (search_pattern_list == NULL || search_pattern_list[0] == NULL)
+-		return TRUE;
+-
+-	gtk_tree_model_get (model, iter,
+-			    COMBO_BOX_MODEL_COL_SORT, &desc,
+-			    COMBO_BOX_MODEL_COL_COUNTRY_DESC,
+-			    &country_desc,
+-			    COMBO_BOX_MODEL_COL_LANGUAGE_DESC,
+-			    &language_desc, -1);
+-
+-	pattern = search_pattern_list;
+-	do {
+-		gboolean is_pattern_found = FALSE;
+-		gchar *udesc = g_utf8_strup (desc, -1);
+-		if (udesc != NULL && g_strstr_len (udesc, -1, *pattern)) {
+-			is_pattern_found = TRUE;
+-		} else if (country_desc != NULL
+-			   && g_strstr_len (country_desc, -1, *pattern)) {
+-			is_pattern_found = TRUE;
+-		} else if (language_desc != NULL
+-			   && g_strstr_len (language_desc, -1, *pattern)) {
+-			is_pattern_found = TRUE;
+-		}
+-		g_free (udesc);
+-
+-		if (!is_pattern_found) {
+-			rv = FALSE;
+-			break;
+-		}
+-
+-	} while (*++pattern != NULL);
+-
+-	g_free (desc);
+-	g_free (country_desc);
+-	g_free (language_desc);
+-	return rv;
+-}
+-
+-GtkWidget *
+-xkb_layout_choose (GtkBuilder * dialog)
+-{
+-	GtkBuilder *chooser_dialog = gtk_builder_new ();
+-	GtkWidget *chooser, *xkb_filtered_layouts_list, *xkb_layout_filter;
+-	GtkTreeViewColumn *visible_column;
+-	GtkTreeSelection *selection;
+-	GtkListStore *model;
+-	GtkTreeModelFilter *filtered_model;
+-    gtk_builder_set_translation_domain (chooser_dialog, GETTEXT_PACKAGE);
+-	gtk_builder_add_from_file (chooser_dialog, CINNAMONCC_UI_DIR
+-				   "/cinnamon-region-panel-layout-chooser.ui",
+-				   NULL);
+-	chooser = CWID ("xkb_layout_chooser");
+-	xkb_filtered_layouts_list = CWID ("xkb_filtered_layouts_list");
+-	xkb_layout_filter = CWID ("xkb_layout_filter");
+-
+-	g_object_set_data (G_OBJECT (chooser), "xkb_filtered_layouts_list",
+-			   xkb_filtered_layouts_list);
+-	visible_column =
+-	    gtk_tree_view_column_new_with_attributes ("Layout",
+-						      gtk_cell_renderer_text_new
+-						      (), "markup",
+-						      COMBO_BOX_MODEL_COL_VISIBLE,
+-						      NULL);
+-
+-	gtk_window_set_transient_for (GTK_WINDOW (chooser),
+-				      GTK_WINDOW
+-				      (gtk_widget_get_toplevel
+-				       (WID ("region_notebook"))));
+-
+-	gtk_tree_view_append_column (GTK_TREE_VIEW
+-				     (xkb_filtered_layouts_list),
+-				     visible_column);
+-	g_signal_connect_swapped (G_OBJECT (xkb_layout_filter),
+-				  "notify::text",
+-				  G_CALLBACK
+-				  (xkb_layout_filter_changed),
+-				  chooser_dialog);
+-
+-	g_signal_connect (G_OBJECT (xkb_layout_filter), "icon-release",
+-			  G_CALLBACK (xkb_layout_filter_clear), NULL);
+-
+-	selection =
+-	    gtk_tree_view_get_selection (GTK_TREE_VIEW
+-					 (xkb_filtered_layouts_list));
+-
+-	g_signal_connect (G_OBJECT (selection),
+-			  "changed",
+-			  G_CALLBACK
+-			  (xkb_layout_chooser_selection_changed),
+-			  chooser_dialog);
+-
+-	xkb_layout_chooser_selection_changed (selection, chooser_dialog);
+-
+-	g_signal_connect (G_OBJECT (xkb_filtered_layouts_list),
+-			  "row-activated",
+-			  G_CALLBACK (xkb_layout_chooser_row_activated),
+-			  chooser_dialog);
+-
+-	filtered_model =
+-	    GTK_TREE_MODEL_FILTER (gtk_builder_get_object
+-				   (chooser_dialog,
+-				    "filtered_layout_list_model"));
+-	model =
+-	    GTK_LIST_STORE (gtk_builder_get_object
+-			    (chooser_dialog, "layout_list_model"));
+-
+-	left_bracket_regex = g_regex_new ("<", 0, 0, NULL);
+-
+-	xkl_config_registry_search_by_pattern (config_registry,
+-					       NULL,
+-					       (TwoConfigItemsProcessFunc)
+-					       (xkl_layout_add_to_list),
+-					       chooser_dialog);
+-
+-	g_regex_unref (left_bracket_regex);
+-
+-	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model),
+-					      COMBO_BOX_MODEL_COL_SORT,
+-					      GTK_SORT_ASCENDING);
+-
+-	gtk_tree_model_filter_set_visible_func (filtered_model,
+-						xkb_filter_layouts,
+-						NULL, NULL);
+-
+-	gtk_widget_grab_focus (xkb_layout_filter);
+-
+-	gtk_widget_show (chooser);
+-
+-	return chooser;
+-}
+-
+-gchar *
+-xkb_layout_chooser_get_selected_id (GtkDialog * dialog)
+-{
+-	GtkTreeModel *filtered_list_model;
+-	GtkWidget *xkb_filtered_layouts_list =
+-	    g_object_get_data (G_OBJECT (dialog),
+-			       "xkb_filtered_layouts_list");
+-	GtkTreeIter viter;
+-	gchar *v_id;
+-	GtkTreeSelection *selection =
+-	    gtk_tree_view_get_selection (GTK_TREE_VIEW
+-					 (xkb_filtered_layouts_list));
+-	GList *selected_layouts =
+-	    gtk_tree_selection_get_selected_rows (selection,
+-						  &filtered_list_model);
+-
+-	if (g_list_length (selected_layouts) != 1)
+-		return NULL;
+-
+-	gtk_tree_model_get_iter (filtered_list_model,
+-				 &viter,
+-				 (GtkTreePath *) (selected_layouts->data));
+-	g_list_foreach (selected_layouts,
+-			(GFunc) gtk_tree_path_free, NULL);
+-	g_list_free (selected_layouts);
+-
+-	gtk_tree_model_get (filtered_list_model, &viter,
+-			    COMBO_BOX_MODEL_COL_XKB_ID, &v_id, -1);
+-
+-	return v_id;
+-}
+diff -uNrp a/panels/region/cinnamon-region-panel-xkblt.c b/panels/region/cinnamon-region-panel-xkblt.c
+--- a/panels/region/cinnamon-region-panel-xkblt.c	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/cinnamon-region-panel-xkblt.c	1970-01-01 01:00:00.000000000 +0100
+@@ -1,470 +0,0 @@
+-/* cinnamon-region-panel-xkblt.c
+- * Copyright (C) 2003-2007 Sergey V. Udaltsov
+- *
+- * Written by: Sergey V. Udaltsov <svu@gnome.org>
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2, or (at your option)
+- * any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA
+- * 02110-1335, USA.
+- */
+-
+-#ifdef HAVE_CONFIG_H
+-#  include <config.h>
+-#endif
+-
+-#include <gdk/gdkx.h>
+-#include <glib/gi18n-lib.h>
+-
+-#include <libgnomekbd/gkbd-desktop-config.h>
+-#include <libgnomekbd/gkbd-keyboard-drawing.h>
+-
+-#include "cinnamon-region-panel-xkb.h"
+-
+-enum {
+-	SEL_LAYOUT_TREE_COL_DESCRIPTION,
+-	SEL_LAYOUT_TREE_COL_ID,
+-	SEL_LAYOUT_TREE_COL_ENABLED,
+-	SEL_LAYOUT_N_COLS
+-};
+-
+-static int idx2select = -1;
+-static int max_selected_layouts = -1;
+-
+-static GtkCellRenderer *text_renderer;
+-
+-static gboolean disable_buttons_sensibility_update = FALSE;
+-
+-static gboolean
+-get_selected_iter (GtkBuilder    *dialog,
+-		   GtkTreeModel **model,
+-		   GtkTreeIter   *iter)
+-{
+-	GtkTreeSelection *selection;
+-
+-	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (WID ("xkb_layouts_selected")));
+-
+-	return gtk_tree_selection_get_selected (selection, model, iter);
+-}
+-
+-static void
+-set_selected_path (GtkBuilder    *dialog,
+-		   GtkTreePath   *path)
+-{
+-	GtkTreeSelection *selection;
+-
+-	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (WID ("xkb_layouts_selected")));
+-
+-	gtk_tree_selection_select_path (selection, path);
+-}
+-
+-static gint
+-find_selected_layout_idx (GtkBuilder *dialog)
+-{
+-	GtkTreeIter selected_iter;
+-	GtkTreeModel *model;
+-	GtkTreePath *path;
+-	gint *indices;
+-	gint rv;
+-
+-	if (!get_selected_iter (dialog, &model, &selected_iter))
+-		return -1;
+-
+-	path = gtk_tree_model_get_path (model, &selected_iter);
+-	if (path == NULL)
+-		return -1;
+-
+-	indices = gtk_tree_path_get_indices (path);
+-	rv = indices[0];
+-	gtk_tree_path_free (path);
+-	return rv;
+-}
+-
+-gchar **
+-xkb_layouts_get_selected_list (void)
+-{
+-	gchar **retval;
+-
+-	retval = g_settings_get_strv (xkb_keyboard_settings,
+-				      GKBD_KEYBOARD_CONFIG_KEY_LAYOUTS);
+-	if (retval == NULL || retval[0] == NULL) {
+-		g_strfreev (retval);
+-		retval = g_strdupv (initial_config.layouts_variants);
+-	}
+-
+-	return retval;
+-}
+-
+-gint
+-xkb_get_default_group ()
+-{
+-	return g_settings_get_int (xkb_desktop_settings,
+-				   GKBD_DESKTOP_CONFIG_KEY_DEFAULT_GROUP);
+-}
+-
+-void
+-xkb_save_default_group (gint default_group)
+-{
+-	g_settings_set_int (xkb_desktop_settings,
+-			    GKBD_DESKTOP_CONFIG_KEY_DEFAULT_GROUP,
+-			    default_group);
+-}
+-
+-static void
+-xkb_layouts_enable_disable_buttons (GtkBuilder * dialog)
+-{
+-	GtkWidget *add_layout_btn = WID ("xkb_layouts_add");
+-	GtkWidget *show_layout_btn = WID ("xkb_layouts_show");
+-	GtkWidget *del_layout_btn = WID ("xkb_layouts_remove");
+-	GtkWidget *selected_layouts_tree = WID ("xkb_layouts_selected");
+-	GtkWidget *move_up_layout_btn = WID ("xkb_layouts_move_up");
+-	GtkWidget *move_down_layout_btn = WID ("xkb_layouts_move_down");
+-
+-	GtkTreeSelection *s_selection =
+-	    gtk_tree_view_get_selection (GTK_TREE_VIEW
+-					 (selected_layouts_tree));
+-	const int n_selected_selected_layouts =
+-	    gtk_tree_selection_count_selected_rows (s_selection);
+-	GtkTreeModel *selected_layouts_model = gtk_tree_view_get_model
+-	    (GTK_TREE_VIEW (selected_layouts_tree));
+-	const int n_selected_layouts =
+-	    gtk_tree_model_iter_n_children (selected_layouts_model,
+-					    NULL);
+-	gint sidx = find_selected_layout_idx (dialog);
+-
+-	if (disable_buttons_sensibility_update)
+-		return;
+-
+-	gtk_widget_set_sensitive (add_layout_btn,
+-				  (n_selected_layouts <
+-				   max_selected_layouts
+-				   || max_selected_layouts == 0));
+-	gtk_widget_set_sensitive (del_layout_btn, (n_selected_layouts > 1)
+-				  && (n_selected_selected_layouts > 0));
+-	gtk_widget_set_sensitive (show_layout_btn,
+-				  (n_selected_selected_layouts > 0));
+-	gtk_widget_set_sensitive (move_up_layout_btn, sidx > 0);
+-	gtk_widget_set_sensitive (move_down_layout_btn, sidx >= 0
+-				  && sidx < (n_selected_layouts - 1));
+-}
+-
+-static void
+-update_layouts_list (GtkTreeModel *model,
+-		     GtkBuilder   *dialog)
+-{
+-	gboolean cont;
+-	GtkTreeIter iter;
+-	GPtrArray *array;
+-
+-	array = g_ptr_array_new_with_free_func ((GDestroyNotify) g_free);
+-	cont = gtk_tree_model_get_iter_first (model, &iter);
+-	while (cont) {
+-		char *id;
+-
+-		gtk_tree_model_get (model, &iter,
+-				    SEL_LAYOUT_TREE_COL_ID, &id,
+-				    -1);
+-		g_ptr_array_add (array, id);
+-		cont = gtk_tree_model_iter_next (model, &iter);
+-	}
+-	g_ptr_array_add (array, NULL);
+-	xkb_layouts_set_selected_list (array->pdata);
+-	g_ptr_array_free (array, TRUE);
+-
+-	xkb_layouts_enable_disable_buttons (dialog);
+-}
+-
+-static void
+-xkb_layouts_drag_end (GtkWidget	     *widget,
+-		      GdkDragContext *drag_context,
+-		      gpointer	      user_data)
+-{
+-	update_layouts_list (gtk_tree_view_get_model (GTK_TREE_VIEW (widget)),
+-			     GTK_BUILDER (user_data));
+-}
+-
+-void
+-xkb_layouts_prepare_selected_tree (GtkBuilder * dialog)
+-{
+-	GtkListStore *list_store;
+-	GtkWidget *tree_view = WID ("xkb_layouts_selected");
+-	GtkTreeSelection *selection;
+-	GtkTreeViewColumn *desc_column;
+-
+-	list_store = gtk_list_store_new (SEL_LAYOUT_N_COLS,
+-					 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN);
+-
+-	text_renderer = GTK_CELL_RENDERER (gtk_cell_renderer_text_new ());
+-
+-	desc_column =
+-	    gtk_tree_view_column_new_with_attributes (_("Layout"),
+-						      text_renderer,
+-						      "text",
+-						      SEL_LAYOUT_TREE_COL_DESCRIPTION,
+-						      "sensitive",
+-						      SEL_LAYOUT_TREE_COL_ENABLED,
+-						      NULL);
+-	selection =
+-	    gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
+-
+-	gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view),
+-				 GTK_TREE_MODEL (list_store));
+-
+-	gtk_tree_view_column_set_sizing (desc_column,
+-					 GTK_TREE_VIEW_COLUMN_AUTOSIZE);
+-	gtk_tree_view_column_set_resizable (desc_column, TRUE);
+-	gtk_tree_view_column_set_expand (desc_column, TRUE);
+-
+-	gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view),
+-				     desc_column);
+-
+-	g_signal_connect_swapped (G_OBJECT (selection), "changed",
+-				  G_CALLBACK
+-				  (xkb_layouts_enable_disable_buttons),
+-				  dialog);
+-	max_selected_layouts = xkl_engine_get_max_num_groups (engine);
+-
+-	/* Setting up DnD */
+-	gtk_tree_view_set_reorderable (GTK_TREE_VIEW (tree_view), TRUE);
+-	g_signal_connect (G_OBJECT (tree_view), "drag-end",
+-			  G_CALLBACK (xkb_layouts_drag_end), dialog);
+-}
+-
+-gchar *
+-xkb_layout_description_utf8 (const gchar * visible)
+-{
+-	char *l, *sl, *v, *sv;
+-	if (gkbd_keyboard_config_get_descriptions
+-	    (config_registry, visible, &sl, &l, &sv, &v))
+-		visible =
+-		    gkbd_keyboard_config_format_full_description (l, v);
+-	return g_strstrip (g_strdup (visible));
+-}
+-
+-void
+-xkb_layouts_fill_selected_tree (GtkBuilder * dialog)
+-{
+-	gchar **layouts = xkb_layouts_get_selected_list ();
+-	guint i;
+-	GtkListStore *list_store =
+-	    GTK_LIST_STORE (gtk_tree_view_get_model
+-			    (GTK_TREE_VIEW
+-			     (WID ("xkb_layouts_selected"))));
+-
+-	/* temporarily disable the buttons' status update */
+-	disable_buttons_sensibility_update = TRUE;
+-
+-	gtk_list_store_clear (list_store);
+-
+-	for (i = 0; layouts != NULL && layouts[i] != NULL; i++) {
+-		char *cur_layout = layouts[i];
+-		gchar *utf_visible =
+-		    xkb_layout_description_utf8 (cur_layout);
+-
+-		gtk_list_store_insert_with_values (list_store, NULL, G_MAXINT,
+-						   SEL_LAYOUT_TREE_COL_DESCRIPTION,
+-						   utf_visible,
+-						   SEL_LAYOUT_TREE_COL_ID,
+-						   cur_layout,
+-						   SEL_LAYOUT_TREE_COL_ENABLED,
+-						   i < max_selected_layouts, -1);
+-		g_free (utf_visible);
+-	}
+-
+-	g_strfreev (layouts);
+-
+-	/* enable the buttons' status update */
+-	disable_buttons_sensibility_update = FALSE;
+-
+-	if (idx2select != -1) {
+-		GtkTreeSelection *selection =
+-		    gtk_tree_view_get_selection ((GTK_TREE_VIEW
+-						  (WID
+-						   ("xkb_layouts_selected"))));
+-		GtkTreePath *path =
+-		    gtk_tree_path_new_from_indices (idx2select, -1);
+-		gtk_tree_selection_select_path (selection, path);
+-		gtk_tree_path_free (path);
+-		idx2select = -1;
+-	} else {
+-		/* if there is nothing to select - just enable/disable the buttons,
+-		   otherwise it would be done by the selection change */
+-		xkb_layouts_enable_disable_buttons (dialog);
+-	}
+-}
+-
+-static void
+-add_default_switcher_if_necessary ()
+-{
+-	gchar **layouts_list = xkb_layouts_get_selected_list();
+-	gchar **options_list = xkb_options_get_selected_list ();
+-	gboolean was_appended;
+-
+-	options_list =
+-	    gkbd_keyboard_config_add_default_switch_option_if_necessary
+-	    (layouts_list, options_list, &was_appended);
+-	if (was_appended)
+-		xkb_options_set_selected_list (options_list);
+-	g_strfreev (options_list);
+-}
+-
+-static void
+-chooser_response (GtkDialog  *chooser,
+-		  int         response_id,
+-		  GtkBuilder *dialog)
+-{
+-	if (response_id == GTK_RESPONSE_OK) {
+-		char *id, *name;
+-		GtkListStore *list_store;
+-
+-		list_store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (WID ("xkb_layouts_selected"))));
+-		id = xkb_layout_chooser_get_selected_id (chooser);
+-		name = xkb_layout_description_utf8 (id);
+-		gtk_list_store_insert_with_values (list_store, NULL, G_MAXINT,
+-						   SEL_LAYOUT_TREE_COL_DESCRIPTION, name,
+-						   SEL_LAYOUT_TREE_COL_ID, id,
+-						   SEL_LAYOUT_TREE_COL_ENABLED, TRUE,
+-						   -1);
+-		g_free (name);
+-		add_default_switcher_if_necessary ();
+-		update_layouts_list (GTK_TREE_MODEL (list_store), dialog);
+-	}
+-
+-	xkb_layout_chooser_response (chooser, response_id);
+-}
+-
+-static void
+-add_selected_layout (GtkWidget * button, GtkBuilder * dialog)
+-{
+-	GtkWidget *chooser;
+-
+-	chooser = xkb_layout_choose (dialog);
+-	g_signal_connect (G_OBJECT (chooser), "response",
+-			  G_CALLBACK (chooser_response), dialog);
+-}
+-
+-static void
+-show_selected_layout (GtkWidget * button, GtkBuilder * dialog)
+-{
+-	gint idx = find_selected_layout_idx (dialog);
+-
+-	if (idx != -1) {
+-		GtkWidget *parent = WID ("region_notebook");
+-		GtkWidget *popup = gkbd_keyboard_drawing_dialog_new ();
+-		gkbd_keyboard_drawing_dialog_set_group (popup,
+-							config_registry,
+-							idx);
+-		gtk_window_set_transient_for (GTK_WINDOW (popup),
+-					      GTK_WINDOW
+-					      (gtk_widget_get_toplevel
+-					       (parent)));
+-		gtk_widget_show_all (popup);
+-	}
+-}
+-
+-static void
+-remove_selected_layout (GtkWidget * button, GtkBuilder * dialog)
+-{
+-	GtkTreeModel *model;
+-	GtkTreeIter iter;
+-
+-	if (get_selected_iter (dialog, &model, &iter) == FALSE)
+-		return;
+-
+-	gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
+-	update_layouts_list (model, dialog);
+-}
+-
+-static void
+-move_up_selected_layout (GtkWidget * button, GtkBuilder * dialog)
+-{
+-	GtkTreeModel *model;
+-	GtkTreeIter iter, prev;
+-	GtkTreePath *path;
+-
+-	if (get_selected_iter (dialog, &model, &iter) == FALSE)
+-		return;
+-
+-	prev = iter;
+-	if (!gtk_tree_model_iter_previous (model, &prev))
+-		return;
+-
+-	path = gtk_tree_model_get_path (model, &prev);
+-	
+-	gtk_list_store_swap (GTK_LIST_STORE (model), &iter, &prev);
+-
+-	update_layouts_list (model, dialog);
+-	
+-	set_selected_path (dialog, path);
+-
+-	gtk_tree_path_free (path);	
+-}
+-
+-static void
+-move_down_selected_layout (GtkWidget * button, GtkBuilder * dialog)
+-{
+-	GtkTreeModel *model;
+-	GtkTreeIter iter, next;
+-	GtkTreePath *path;
+-
+-	if (get_selected_iter (dialog, &model, &iter) == FALSE)
+-		return;
+-
+-	next = iter;
+-	if (!gtk_tree_model_iter_next (model, &next))
+-		return;
+-
+-	path = gtk_tree_model_get_path (model, &next);
+-
+-	gtk_list_store_swap (GTK_LIST_STORE (model), &iter, &next);
+-
+-	update_layouts_list (model, dialog);
+-
+-	set_selected_path (dialog, path);
+-
+-	gtk_tree_path_free (path);	
+-}
+-
+-void
+-xkb_layouts_register_buttons_handlers (GtkBuilder * dialog)
+-{
+-	g_signal_connect (G_OBJECT (WID ("xkb_layouts_add")), "clicked",
+-			  G_CALLBACK (add_selected_layout), dialog);
+-	g_signal_connect (G_OBJECT (WID ("xkb_layouts_show")), "clicked",
+-			  G_CALLBACK (show_selected_layout), dialog);
+-	g_signal_connect (G_OBJECT (WID ("xkb_layouts_remove")), "clicked",
+-			  G_CALLBACK (remove_selected_layout), dialog);
+-	g_signal_connect (G_OBJECT (WID ("xkb_layouts_move_up")),
+-			  "clicked", G_CALLBACK (move_up_selected_layout),
+-			  dialog);
+-	g_signal_connect (G_OBJECT (WID ("xkb_layouts_move_down")),
+-			  "clicked",
+-			  G_CALLBACK (move_down_selected_layout), dialog);
+-}
+-
+-static void
+-xkb_layouts_update_list (GSettings * settings,
+-			 gchar * key, GtkBuilder * dialog)
+-{
+-	if (strcmp (key, GKBD_KEYBOARD_CONFIG_KEY_LAYOUTS) == 0) {
+-		xkb_layouts_fill_selected_tree (dialog);
+-		enable_disable_restoring (dialog);
+-	}
+-}
+-
+-void
+-xkb_layouts_register_conf_listener (GtkBuilder * dialog)
+-{
+-	g_signal_connect (xkb_keyboard_settings, "changed",
+-			  G_CALLBACK (xkb_layouts_update_list), dialog);
+-}
+diff -uNrp a/panels/region/cinnamon-region-panel-xkbot.c b/panels/region/cinnamon-region-panel-xkbot.c
+--- a/panels/region/cinnamon-region-panel-xkbot.c	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/cinnamon-region-panel-xkbot.c	1970-01-01 01:00:00.000000000 +0100
+@@ -1,516 +0,0 @@
+-/* cinnamon-region-panel-xkbot.c
+- * Copyright (C) 2003-2007 Sergey V. Udaltsov
+- *
+- * Written by: Sergey V. Udaltsov <svu@gnome.org>
+- *             John Spray <spray_john@users.sourceforge.net>
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2, or (at your option)
+- * any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA
+- * 02110-1335, USA.
+- */
+-
+-#ifdef HAVE_CONFIG_H
+-#  include <config.h>
+-#endif
+-
+-#include <glib/gi18n-lib.h>
+-#include <string.h>
+-
+-#include "cinnamon-region-panel-xkb.h"
+-
+-static GtkBuilder *chooser_dialog = NULL;
+-static const char *current1st_level_id = NULL;
+-static GSList *option_checks_list = NULL;
+-static GtkWidget *current_none_radio = NULL;
+-static GtkWidget *current_expander = NULL;
+-static gboolean current_multi_select = FALSE;
+-static GSList *current_radio_group = NULL;
+-
+-#define OPTION_ID_PROP "optionID"
+-#define SELCOUNTER_PROP "selectionCounter"
+-#define GCONFSTATE_PROP "gconfState"
+-#define EXPANDERS_PROP "expandersList"
+-
+-gchar **
+-xkb_options_get_selected_list (void)
+-{
+-	gchar **retval;
+-
+-	retval =
+-	    g_settings_get_strv (xkb_keyboard_settings,
+-				 GKBD_KEYBOARD_CONFIG_KEY_OPTIONS);
+-	if (retval == NULL) {
+-		retval = g_strdupv (initial_config.options);
+-	}
+-
+-	return retval;
+-}
+-
+-/* Returns the selection counter of the expander (static current_expander) */
+-static int
+-xkb_options_expander_selcounter_get (void)
+-{
+-	return
+-	    GPOINTER_TO_INT (g_object_get_data
+-			     (G_OBJECT (current_expander),
+-			      SELCOUNTER_PROP));
+-}
+-
+-/* Increments the selection counter in the expander (static current_expander) 
+-   using the value (can be 0)*/
+-static void
+-xkb_options_expander_selcounter_add (int value)
+-{
+-	g_object_set_data (G_OBJECT (current_expander), SELCOUNTER_PROP,
+-			   GINT_TO_POINTER
+-			   (xkb_options_expander_selcounter_get ()
+-			    + value));
+-}
+-
+-/* Resets the seletion counter in the expander (static current_expander) */
+-static void
+-xkb_options_expander_selcounter_reset (void)
+-{
+-	g_object_set_data (G_OBJECT (current_expander), SELCOUNTER_PROP,
+-			   GINT_TO_POINTER (0));
+-}
+-
+-/* Formats the expander (static current_expander), based on the selection counter */
+-static void
+-xkb_options_expander_highlight (void)
+-{
+-	char *utf_group_name =
+-	    g_object_get_data (G_OBJECT (current_expander),
+-			       "utfGroupName");
+-	int counter = xkb_options_expander_selcounter_get ();
+-	if (utf_group_name != NULL) {
+-		gchar *titlemarkup =
+-		    g_strconcat (counter >
+-				 0 ? "<span weight=\"bold\">" : "<span>",
+-				 utf_group_name, "</span>", NULL);
+-		gtk_expander_set_label (GTK_EXPANDER (current_expander),
+-					titlemarkup);
+-		g_free (titlemarkup);
+-	}
+-}
+-
+-/* Add optionname from the backend's selection list if it's not
+-   already in there. */
+-static void
+-xkb_options_select (gchar * optionname)
+-{
+-	gboolean already_selected = FALSE;
+-	gchar **options_list;
+-	guint i;
+-
+-	options_list = xkb_options_get_selected_list ();
+-	for (i = 0; options_list != NULL && options_list[i] != NULL; i++) {
+-		gchar *option = options_list[i];
+-		if (!strcmp (option, optionname)) {
+-			already_selected = TRUE;
+-			break;
+-		}
+-	}
+-
+-	if (!already_selected) {
+-		options_list =
+-		    gkbd_strv_append (options_list, g_strdup (optionname));
+-		xkb_options_set_selected_list (options_list);
+-	}
+-
+-	g_strfreev (options_list);
+-}
+-
+-/* Remove all occurences of optionname from the backend's selection list */
+-static void
+-xkb_options_deselect (gchar * optionname)
+-{
+-	gchar **options_list = xkb_options_get_selected_list ();
+-	if (options_list != NULL) {
+-		gchar **option = options_list;
+-		while (*option != NULL) {
+-			gchar *id = *option;
+-			if (!strcmp (id, optionname)) {
+-				gkbd_strv_behead (option);
+-			} else
+-				option++;
+-		}
+-		xkb_options_set_selected_list (options_list);
+-	}
+-	g_strfreev (options_list);
+-}
+-
+-/* Return true if optionname describes a string already in the backend's
+-   list of selected options */
+-static gboolean
+-xkb_options_is_selected (gchar * optionname)
+-{
+-	gboolean retval = FALSE;
+-	gchar **options_list = xkb_options_get_selected_list ();
+-	if (options_list != NULL) {
+-		gchar **option = options_list;
+-		while (*option != NULL) {
+-			if (!strcmp (*option, optionname)) {
+-				retval = TRUE;
+-				break;
+-			}
+-			option++;
+-		}
+-	}
+-	g_strfreev (options_list);
+-	return retval;
+-}
+-
+-/* Make sure selected options stay visible when navigating with the keyboard */
+-static gboolean
+-option_focused_cb (GtkWidget * widget, GdkEventFocus * event,
+-		   gpointer data)
+-{
+-	GtkScrolledWindow *win = GTK_SCROLLED_WINDOW (data);
+-	GtkAllocation alloc;
+-	GtkAdjustment *adj;
+-
+-	gtk_widget_get_allocation (widget, &alloc);
+-	adj = gtk_scrolled_window_get_vadjustment (win);
+-	gtk_adjustment_clamp_page (adj, alloc.y, alloc.y + alloc.height);
+-
+-	return FALSE;
+-}
+-
+-/* Update xkb backend to reflect the new UI state */
+-static void
+-option_toggled_cb (GtkWidget * checkbutton, gpointer data)
+-{
+-	gpointer optionID =
+-	    g_object_get_data (G_OBJECT (checkbutton), OPTION_ID_PROP);
+-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton)))
+-		xkb_options_select (optionID);
+-	else
+-		xkb_options_deselect (optionID);
+-}
+-
+-/* Add a check_button or radio_button to control a particular option
+-   This function makes particular use of the current... variables at
+-   the top of this file. */
+-static void
+-xkb_options_add_option (XklConfigRegistry * config_registry,
+-			XklConfigItem * config_item, GtkBuilder * dialog)
+-{
+-	GtkWidget *option_check;
+-	gchar *utf_option_name = xci_desc_to_utf8 (config_item);
+-	/* Copy this out because we'll load it into the widget with set_data */
+-	gchar *full_option_name =
+-	    g_strdup (gkbd_keyboard_config_merge_items
+-		      (current1st_level_id, config_item->name));
+-	gboolean initial_state;
+-
+-	if (current_multi_select)
+-		option_check =
+-		    gtk_check_button_new_with_label (utf_option_name);
+-	else {
+-		if (current_radio_group == NULL) {
+-			/* The first radio in a group is to be "Default", meaning none of
+-			   the below options are to be included in the selected list.
+-			   This is a HIG-compliant alternative to allowing no
+-			   selection in the group. */
+-			option_check =
+-			    gtk_radio_button_new_with_label
+-			    (current_radio_group, _("Default"));
+-			gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
+-						      (option_check),
+-						      TRUE);
+-			/* Make option name underscore - 
+-			   to enforce its first position in the list */
+-			g_object_set_data_full (G_OBJECT (option_check),
+-						"utfOptionName",
+-						g_strdup (" "), g_free);
+-			option_checks_list =
+-			    g_slist_append (option_checks_list,
+-					    option_check);
+-			current_radio_group =
+-			    gtk_radio_button_get_group (GTK_RADIO_BUTTON
+-							(option_check));
+-			current_none_radio = option_check;
+-
+-			g_signal_connect (option_check, "focus-in-event",
+-					  G_CALLBACK (option_focused_cb),
+-					  WID ("options_scroll"));
+-		}
+-		option_check =
+-		    gtk_radio_button_new_with_label (current_radio_group,
+-						     utf_option_name);
+-		current_radio_group =
+-		    gtk_radio_button_get_group (GTK_RADIO_BUTTON
+-						(option_check));
+-		g_object_set_data (G_OBJECT (option_check), "NoneRadio",
+-				   current_none_radio);
+-	}
+-
+-	initial_state = xkb_options_is_selected (full_option_name);
+-
+-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (option_check),
+-				      initial_state);
+-
+-	g_object_set_data_full (G_OBJECT (option_check), OPTION_ID_PROP,
+-				full_option_name, g_free);
+-	g_object_set_data_full (G_OBJECT (option_check), "utfOptionName",
+-				utf_option_name, g_free);
+-
+-	g_signal_connect (option_check, "toggled",
+-			  G_CALLBACK (option_toggled_cb), NULL);
+-
+-	option_checks_list =
+-	    g_slist_append (option_checks_list, option_check);
+-
+-	g_signal_connect (option_check, "focus-in-event",
+-			  G_CALLBACK (option_focused_cb),
+-			  WID ("options_scroll"));
+-
+-	xkb_options_expander_selcounter_add (initial_state);
+-	g_object_set_data (G_OBJECT (option_check), GCONFSTATE_PROP,
+-			   GINT_TO_POINTER (initial_state));
+-}
+-
+-static gint
+-xkb_option_checks_compare (GtkWidget * chk1, GtkWidget * chk2)
+-{
+-	const gchar *t1 =
+-	    g_object_get_data (G_OBJECT (chk1), "utfOptionName");
+-	const gchar *t2 =
+-	    g_object_get_data (G_OBJECT (chk2), "utfOptionName");
+-	return g_utf8_collate (t1, t2);
+-}
+-
+-/* Add a group of options: create title and layout widgets and then
+-   add widgets for all the options in the group. */
+-static void
+-xkb_options_add_group (XklConfigRegistry * config_registry,
+-		       XklConfigItem * config_item, GtkBuilder * dialog)
+-{
+-	GtkWidget *align, *vbox, *option_check;
+-	gboolean allow_multiple_selection =
+-	    GPOINTER_TO_INT (g_object_get_data (G_OBJECT (config_item),
+-						XCI_PROP_ALLOW_MULTIPLE_SELECTION));
+-
+-	GSList *expanders_list =
+-	    g_object_get_data (G_OBJECT (dialog), EXPANDERS_PROP);
+-
+-	gchar *utf_group_name = xci_desc_to_utf8 (config_item);
+-	gchar *titlemarkup =
+-	    g_strconcat ("<span>", utf_group_name, "</span>", NULL);
+-
+-	current_expander = gtk_expander_new (titlemarkup);
+-	gtk_expander_set_use_markup (GTK_EXPANDER (current_expander),
+-				     TRUE);
+-	g_object_set_data_full (G_OBJECT (current_expander),
+-				"utfGroupName", utf_group_name, g_free);
+-	g_object_set_data_full (G_OBJECT (current_expander), "groupId",
+-				g_strdup (config_item->name), g_free);
+-
+-	g_free (titlemarkup);
+-	align = gtk_alignment_new (0, 0, 1, 1);
+-	gtk_alignment_set_padding (GTK_ALIGNMENT (align), 6, 12, 12, 0);
+-	vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
+-	gtk_box_set_homogeneous (GTK_BOX (vbox), TRUE);
+-	gtk_container_add (GTK_CONTAINER (align), vbox);
+-	gtk_container_add (GTK_CONTAINER (current_expander), align);
+-
+-	current_multi_select = (gboolean) allow_multiple_selection;
+-	current_radio_group = NULL;
+-	current1st_level_id = config_item->name;
+-
+-	option_checks_list = NULL;
+-
+-	xkl_config_registry_foreach_option (config_registry,
+-					    config_item->name,
+-					    (ConfigItemProcessFunc)
+-					    xkb_options_add_option,
+-					    dialog);
+-	/* sort it */
+-	option_checks_list =
+-	    g_slist_sort (option_checks_list,
+-			  (GCompareFunc) xkb_option_checks_compare);
+-	while (option_checks_list) {
+-		option_check = GTK_WIDGET (option_checks_list->data);
+-		gtk_box_pack_start (GTK_BOX (vbox), option_check, TRUE,
+-				    TRUE, 0);
+-		option_checks_list = option_checks_list->next;
+-	}
+-	/* free it */
+-	g_slist_free (option_checks_list);
+-	option_checks_list = NULL;
+-
+-	xkb_options_expander_highlight ();
+-
+-	expanders_list = g_slist_append (expanders_list, current_expander);
+-	g_object_set_data (G_OBJECT (dialog), EXPANDERS_PROP,
+-			   expanders_list);
+-
+-	g_signal_connect (current_expander, "focus-in-event",
+-			  G_CALLBACK (option_focused_cb),
+-			  WID ("options_scroll"));
+-}
+-
+-static gint
+-xkb_options_expanders_compare (GtkWidget * expander1,
+-			       GtkWidget * expander2)
+-{
+-	const gchar *t1 =
+-	    g_object_get_data (G_OBJECT (expander1), "utfGroupName");
+-	const gchar *t2 =
+-	    g_object_get_data (G_OBJECT (expander2), "utfGroupName");
+-	return g_utf8_collate (t1, t2);
+-}
+-
+-/* Create widgets to represent the options made available by the backend */
+-void
+-xkb_options_load_options (GtkBuilder * dialog)
+-{
+-	GtkWidget *opts_vbox = WID ("options_vbox");
+-	GtkWidget *dialog_vbox = WID ("dialog_vbox");
+-	GtkWidget *options_scroll = WID ("options_scroll");
+-	GtkWidget *expander;
+-	GSList *expanders_list;
+-
+-	current1st_level_id = NULL;
+-	current_none_radio = NULL;
+-	current_multi_select = FALSE;
+-	current_radio_group = NULL;
+-
+-	/* fill the list */
+-	xkl_config_registry_foreach_option_group (config_registry,
+-						  (ConfigItemProcessFunc)
+-						  xkb_options_add_group,
+-						  dialog);
+-	/* sort it */
+-	expanders_list =
+-	    g_object_get_data (G_OBJECT (dialog), EXPANDERS_PROP);
+-	expanders_list =
+-	    g_slist_sort (expanders_list,
+-			  (GCompareFunc) xkb_options_expanders_compare);
+-	g_object_set_data (G_OBJECT (dialog), EXPANDERS_PROP,
+-			   expanders_list);
+-	while (expanders_list) {
+-		expander = GTK_WIDGET (expanders_list->data);
+-		gtk_box_pack_start (GTK_BOX (opts_vbox), expander, FALSE,
+-				    FALSE, 0);
+-		expanders_list = expanders_list->next;
+-	}
+-
+-	/* Somewhere in gtk3 the top vbox in dialog is made non-expandable */
+-	gtk_box_set_child_packing (GTK_BOX (dialog_vbox), options_scroll,
+-				   TRUE, TRUE, 0, GTK_PACK_START);
+-	gtk_widget_show_all (dialog_vbox);
+-}
+-
+-static void
+-chooser_response_cb (GtkDialog * dialog, gint response, gpointer data)
+-{
+-	switch (response) {
+-	case GTK_RESPONSE_DELETE_EVENT:
+-	case GTK_RESPONSE_CLOSE: {
+-			/* just cleanup */
+-			GSList *expanders_list =
+-			    g_object_get_data (G_OBJECT (dialog),
+-					       EXPANDERS_PROP);
+-			g_object_set_data (G_OBJECT (dialog),
+-					   EXPANDERS_PROP, NULL);
+-			g_slist_free (expanders_list);
+-
+-			gtk_widget_destroy (GTK_WIDGET (dialog));
+-			chooser_dialog = NULL;
+-		}
+-		break;
+-	}
+-}
+-
+-/* Create popup dialog */
+-void
+-xkb_options_popup_dialog (GtkBuilder * dialog)
+-{
+-	GtkWidget *chooser;
+-
+-	chooser_dialog = gtk_builder_new ();
+-    gtk_builder_set_translation_domain (chooser_dialog, GETTEXT_PACKAGE);
+-	gtk_builder_add_from_file (chooser_dialog, CINNAMONCC_UI_DIR
+-				   "/cinnamon-region-panel-options-dialog.ui",
+-				   NULL);
+-
+-	chooser = CWID ("xkb_options_dialog");
+-	gtk_window_set_transient_for (GTK_WINDOW (chooser),
+-				      GTK_WINDOW (gtk_widget_get_toplevel (WID ("region_notebook"))));
+-	gtk_window_set_modal (GTK_WINDOW (chooser), TRUE);
+-	xkb_options_load_options (chooser_dialog);
+-
+-	g_signal_connect (chooser, "response",
+-			  G_CALLBACK (chooser_response_cb), dialog);
+-	gtk_widget_show (chooser);
+-}
+-
+-/* Update selected option counters for a group-bound expander */
+-static void
+-xkb_options_update_option_counters (XklConfigRegistry * config_registry,
+-				    XklConfigItem * config_item)
+-{
+-	gchar *full_option_name =
+-	    g_strdup (gkbd_keyboard_config_merge_items
+-		      (current1st_level_id, config_item->name));
+-	gboolean current_state =
+-	    xkb_options_is_selected (full_option_name);
+-        g_free (full_option_name);
+-
+-	xkb_options_expander_selcounter_add (current_state);
+-}
+-
+-/* Respond to a change in the xkb gconf settings */
+-static void
+-xkb_options_update (GSettings * settings, gchar * key, GtkBuilder * dialog)
+-{
+-	if (!strcmp (key, GKBD_KEYBOARD_CONFIG_KEY_OPTIONS)) {
+-		/* Updating options is handled by gconf notifies for each widget
+-		   This is here to avoid calling it N_OPTIONS times for each gconf
+-		   change. */
+-		enable_disable_restoring (dialog);
+-
+-		if (chooser_dialog != NULL) {
+-			GSList *expanders_list =
+-			    g_object_get_data (G_OBJECT (chooser_dialog),
+-					       EXPANDERS_PROP);
+-			while (expanders_list) {
+-				current_expander =
+-				    GTK_WIDGET (expanders_list->data);
+-				gchar *group_id =
+-				    g_object_get_data (G_OBJECT
+-						       (current_expander),
+-						       "groupId");
+-				current1st_level_id = group_id;
+-				xkb_options_expander_selcounter_reset ();
+-				xkl_config_registry_foreach_option
+-				    (config_registry, group_id,
+-				     (ConfigItemProcessFunc)
+-				     xkb_options_update_option_counters,
+-				     current_expander);
+-				xkb_options_expander_highlight ();
+-				expanders_list = expanders_list->next;
+-			}
+-		}
+-	}
+-}
+-
+-void
+-xkb_options_register_conf_listener (GtkBuilder * dialog)
+-{
+-	g_signal_connect (xkb_keyboard_settings, "changed",
+-			  G_CALLBACK (xkb_options_update), dialog);
+-}
+diff -uNrp a/panels/region/cinnamon-region-panel-xkbpv.c b/panels/region/cinnamon-region-panel-xkbpv.c
+--- a/panels/region/cinnamon-region-panel-xkbpv.c	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/cinnamon-region-panel-xkbpv.c	1970-01-01 01:00:00.000000000 +0100
+@@ -1,120 +0,0 @@
+-/* cinnamon-region-panel-xkbpv.c
+- * Copyright (C) 2003-2007 Sergey V. Udaltsov
+- *
+- * Written by: Sergey V. Udaltsov <svu@gnome.org>
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2, or (at your option)
+- * any later version.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA
+- * 02110-1335, USA.
+- */
+-
+-#ifdef HAVE_CONFIG_H
+-#  include <config.h>
+-#endif
+-
+-#include <libgnomekbd/gkbd-keyboard-drawing.h>
+-
+-#include "cinnamon-region-panel-xkb.h"
+-
+-#ifdef HAVE_X11_EXTENSIONS_XKB_H
+-#include "X11/XKBlib.h"
+-/**
+- * BAD STYLE: Taken from xklavier_private_xkb.h
+- * Any ideas on architectural improvements are WELCOME
+- */
+-extern gboolean xkl_xkb_config_native_prepare (XklEngine * engine,
+-					       const XklConfigRec * data,
+-					       XkbComponentNamesPtr
+-					       component_names);
+-
+-extern void xkl_xkb_config_native_cleanup (XklEngine * engine,
+-					   XkbComponentNamesPtr
+-					   component_names);
+-
+-/* */
+-#endif
+-
+-static GkbdKeyboardDrawingGroupLevel groupsLevels[] =
+-    { {0, 1}, {0, 3}, {0, 0}, {0, 2} };
+-static GkbdKeyboardDrawingGroupLevel *pGroupsLevels[] = {
+-	groupsLevels, groupsLevels + 1, groupsLevels + 2, groupsLevels + 3
+-};
+-
+-GtkWidget *
+-xkb_layout_preview_create_widget (GtkBuilder * chooserDialog)
+-{
+-	GtkWidget *kbdraw = gkbd_keyboard_drawing_new ();
+-
+-	gkbd_keyboard_drawing_set_groups_levels (GKBD_KEYBOARD_DRAWING
+-						 (kbdraw), pGroupsLevels);
+-	return kbdraw;
+-}
+-
+-void
+-xkb_layout_preview_set_drawing_layout (GtkWidget * kbdraw,
+-				       const gchar * id)
+-{
+-#ifdef HAVE_X11_EXTENSIONS_XKB_H
+-	if (kbdraw != NULL) {
+-		if (id != NULL) {
+-			XklConfigRec *data;
+-			char **p, *layout, *variant;
+-			XkbComponentNamesRec component_names;
+-
+-			data = xkl_config_rec_new ();
+-			if (xkl_config_rec_get_from_server (data, engine)) {
+-				if ((p = data->layouts) != NULL)
+-					g_strfreev (data->layouts);
+-
+-				if ((p = data->variants) != NULL)
+-					g_strfreev (data->variants);
+-
+-				data->layouts = g_new0 (char *, 2);
+-				data->variants = g_new0 (char *, 2);
+-				if (gkbd_keyboard_config_split_items
+-				    (id, &layout, &variant)
+-				    && variant != NULL) {
+-					data->layouts[0] =
+-					    (layout ==
+-					     NULL) ? NULL :
+-					    g_strdup (layout);
+-					data->variants[0] =
+-					    (variant ==
+-					     NULL) ? NULL :
+-					    g_strdup (variant);
+-				} else {
+-					data->layouts[0] =
+-					    (id ==
+-					     NULL) ? NULL : g_strdup (id);
+-					data->variants[0] = NULL;
+-				}
+-
+-				if (xkl_xkb_config_native_prepare
+-				    (engine, data, &component_names)) {
+-					gkbd_keyboard_drawing_set_keyboard
+-					    (GKBD_KEYBOARD_DRAWING
+-					     (kbdraw), &component_names);
+-
+-					xkl_xkb_config_native_cleanup
+-					    (engine, &component_names);
+-				}
+-			}
+-			g_object_unref (G_OBJECT (data));
+-		} else
+-			gkbd_keyboard_drawing_set_keyboard
+-			    (GKBD_KEYBOARD_DRAWING (kbdraw), NULL);
+-
+-	}
+-#endif
+-}
+diff -uNrp a/panels/region/.indent.pro b/panels/region/.indent.pro
+--- a/panels/region/.indent.pro	1970-01-01 01:00:00.000000000 +0100
++++ b/panels/region/.indent.pro	2013-08-25 16:50:30.000000000 +0100
+@@ -0,0 +1,2 @@
++-kr -i8 -pcs -lps -psl
++
+diff -uNrp a/panels/region/Makefile.am b/panels/region/Makefile.am
+--- a/panels/region/Makefile.am	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/Makefile.am	2013-09-21 13:24:15.347949247 +0100
+@@ -23,12 +23,9 @@ libregion_la_SOURCES =	\
+ 	cinnamon-region-panel-lang.h \
+ 	cinnamon-region-panel-system.c \
+ 	cinnamon-region-panel-system.h \
+-	cinnamon-region-panel-xkb.c \
+-	cinnamon-region-panel-xkblt.c \
+-	cinnamon-region-panel-xkbltadd.c \
+-	cinnamon-region-panel-xkbot.c \
+-	cinnamon-region-panel-xkbpv.c \
+-	cinnamon-region-panel-xkb.h
++	cinnamon-region-panel-input.c \
++	cinnamon-region-panel-input.h \
++	$(NULL)
+ 
+ libregion_la_LIBADD = $(PANEL_LIBS) $(REGION_PANEL_LIBS) $(builddir)/../common/liblanguage.la
+ 
+@@ -39,8 +36,8 @@ libregion_la_LDFLAGS = $(PANEL_LDFLAGS)
+ uidir   = $(pkgdatadir)/ui
+ ui_DATA = \
+ 	cinnamon-region-panel.ui \
+-	cinnamon-region-panel-layout-chooser.ui \
+-	cinnamon-region-panel-options-dialog.ui
++	cinnamon-region-panel-input-chooser.ui \
++	$(NULL)
+ 
+ desktopdir = $(datadir)/applications
+ Desktop_in_files = cinnamon-region-panel.desktop.in
+diff -uNrp a/panels/region/region-module.c b/panels/region/region-module.c
+--- a/panels/region/region-module.c	2013-08-25 14:40:14.000000000 +0100
++++ b/panels/region/region-module.c	2013-09-21 13:24:15.347949247 +0100
+@@ -28,6 +28,7 @@
+ void
+ g_io_module_load (GIOModule * module)
+ {
++
+ 	/* register the panel */
+ 	cc_region_panel_register (module);
+ }
diff --git a/pkgs/desktops/cinnamon/systemd-support.patch b/pkgs/desktops/cinnamon/systemd-support.patch
new file mode 100644
index 000000000000..feceaf05f7b6
--- /dev/null
+++ b/pkgs/desktops/cinnamon/systemd-support.patch
@@ -0,0 +1,536 @@
+ 
+diff --git a/plugins/media-keys/csd-media-keys-manager.c b/plugins/media-keys/csd-media-keys-manager.c
+index 02930a3..7c1c519 100644
+--- a/plugins/media-keys/csd-media-keys-manager.c
++++ b/plugins/media-keys/csd-media-keys-manager.c
+@@ -39,6 +39,7 @@
+ #include <gdk/gdkx.h>
+ #include <gtk/gtk.h>
+ #include <gio/gdesktopappinfo.h>
++#include <gio/gunixfdlist.h>
+ 
+ #ifdef HAVE_GUDEV
+ #include <gudev/gudev.h>
+@@ -121,6 +122,10 @@ static const gchar kb_introspection_xml[] =
+ #define VOLUME_STEP 5           /* percents for one volume button press */
+ #define MAX_VOLUME 65536.0
+ 
++#define SYSTEMD_DBUS_NAME                       "org.freedesktop.login1"
++#define SYSTEMD_DBUS_PATH                       "/org/freedesktop/login1"
++#define SYSTEMD_DBUS_INTERFACE                  "org.freedesktop.login1.Manager"
++
+ #define CSD_MEDIA_KEYS_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CSD_TYPE_MEDIA_KEYS_MANAGER, CsdMediaKeysManagerPrivate))
+ 
+ typedef struct {
+@@ -167,6 +172,10 @@ struct CsdMediaKeysManagerPrivate
+         GDBusProxy      *power_screen_proxy;
+         GDBusProxy      *power_keyboard_proxy;
+ 
++        /* systemd stuff */
++        GDBusProxy      *logind_proxy;
++        gint             inhibit_keys_fd;
++
+         /* Multihead stuff */
+         GdkScreen       *current_screen;
+         GSList          *screens;
+@@ -2213,6 +2222,11 @@ csd_media_keys_manager_stop (CsdMediaKeysManager *manager)
+         }
+ #endif /* HAVE_GUDEV */
+ 
++        if (priv->logind_proxy) {
++                g_object_unref (priv->logind_proxy);
++                priv->logind_proxy = NULL;
++        }
++
+         if (priv->settings) {
+                 g_object_unref (priv->settings);
+                 priv->settings = NULL;
+@@ -2356,9 +2370,85 @@ csd_media_keys_manager_class_init (CsdMediaKeysManagerClass *klass)
+ }
+ 
+ static void
++inhibit_done (GObject      *source,
++              GAsyncResult *result,
++              gpointer      user_data)
++{
++        GDBusProxy *proxy = G_DBUS_PROXY (source);
++        CsdMediaKeysManager *manager = CSD_MEDIA_KEYS_MANAGER (user_data);
++        GError *error = NULL;
++        GVariant *res;
++        GUnixFDList *fd_list = NULL;
++        gint idx;
++
++        res = g_dbus_proxy_call_with_unix_fd_list_finish (proxy, &fd_list, result, &error);
++        if (res == NULL) {
++                g_warning ("Unable to inhibit keypresses: %s", error->message);
++                g_error_free (error);
++        } else {
++                g_variant_get (res, "(h)", &idx);
++                manager->priv->inhibit_keys_fd = g_unix_fd_list_get (fd_list, idx, &error);
++                if (manager->priv->inhibit_keys_fd == -1) {
++                        g_warning ("Failed to receive system inhibitor fd: %s", error->message);
++                        g_error_free (error);
++                }
++                g_debug ("System inhibitor fd is %d", manager->priv->inhibit_keys_fd);
++                g_object_unref (fd_list);
++                g_variant_unref (res);
++        }
++}
++
++static void
+ csd_media_keys_manager_init (CsdMediaKeysManager *manager)
+ {
++        GError *error;
++        GDBusConnection *bus;
++
++        error = NULL;
+         manager->priv = CSD_MEDIA_KEYS_MANAGER_GET_PRIVATE (manager);
++
++        bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error);
++        if (bus == NULL) {
++                g_warning ("Failed to connect to system bus: %s",
++                           error->message);
++                g_error_free (error);
++                return;
++        }
++
++        manager->priv->logind_proxy =
++                g_dbus_proxy_new_sync (bus,
++                                       0,
++                                       NULL,
++                                       SYSTEMD_DBUS_NAME,
++                                       SYSTEMD_DBUS_PATH,
++                                       SYSTEMD_DBUS_INTERFACE,
++                                       NULL,
++                                       &error);
++
++        if (manager->priv->logind_proxy == NULL) {
++                g_warning ("Failed to connect to systemd: %s",
++                           error->message);
++                g_error_free (error);
++        }
++
++        g_object_unref (bus);
++
++        g_debug ("Adding system inhibitors for power keys");
++        manager->priv->inhibit_keys_fd = -1;
++        g_dbus_proxy_call_with_unix_fd_list (manager->priv->logind_proxy,
++                                             "Inhibit",
++                                             g_variant_new ("(ssss)",
++                                                            "handle-power-key:handle-suspend-key:handle-hibernate-key",
++                                                            g_get_user_name (),
++                                                            "Cinnamon handling keypresses",
++                                                            "block"),
++                                             0,
++                                             G_MAXINT,
++                                             NULL,
++                                             NULL,
++                                             inhibit_done,
++                                             manager);
++
+ }
+ 
+ static void
+@@ -2375,6 +2465,8 @@ csd_media_keys_manager_finalize (GObject *object)
+ 
+         if (media_keys_manager->priv->start_idle_id != 0)
+                 g_source_remove (media_keys_manager->priv->start_idle_id);
++        if (media_keys_manager->priv->inhibit_keys_fd != -1)
++                close (media_keys_manager->priv->inhibit_keys_fd);
+ 
+         G_OBJECT_CLASS (csd_media_keys_manager_parent_class)->finalize (object);
+ }
+diff --git a/plugins/power/csd-power-manager.c b/plugins/power/csd-power-manager.c
+index b54cb5b..b9c5429 100644
+--- a/plugins/power/csd-power-manager.c
++++ b/plugins/power/csd-power-manager.c
+@@ -32,6 +32,7 @@
+ #include <libupower-glib/upower.h>
+ #include <libnotify/notify.h>
+ #include <canberra-gtk.h>
++#include <gio/gunixfdlist.h>
+ 
+ #include <X11/extensions/dpms.h>
+ 
+@@ -79,6 +80,10 @@
+ #define CSD_POWER_MANAGER_CRITICAL_ALERT_TIMEOUT        5 /* seconds */
+ #define CSD_POWER_MANAGER_LID_CLOSE_SAFETY_TIMEOUT      30 /* seconds */
+ 
++#define SYSTEMD_DBUS_NAME                       "org.freedesktop.login1"
++#define SYSTEMD_DBUS_PATH                       "/org/freedesktop/login1"
++#define SYSTEMD_DBUS_INTERFACE                  "org.freedesktop.login1.Manager"
++
+ /* Keep this in sync with gnome-shell */
+ #define SCREENSAVER_FADE_TIME                           10 /* seconds */
+ 
+@@ -203,6 +208,13 @@ struct CsdPowerManagerPrivate
+         GtkStatusIcon           *status_icon;
+         guint                    xscreensaver_watchdog_timer_id;
+         gboolean                 is_virtual_machine;
++
++        /* systemd stuff */
++        GDBusProxy              *logind_proxy;
++        gint                     inhibit_lid_switch_fd;
++        gboolean                 inhibit_lid_switch_taken;
++        gint                     inhibit_suspend_fd;
++        gboolean                 inhibit_suspend_taken;
+ };
+ 
+ enum {
+@@ -3350,30 +3362,6 @@ lock_screensaver (CsdPowerManager *manager)
+         if (!do_lock)
+                 return;
+ 
+-            /* connect to the screensaver first */
+-            g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION,
+-                                      G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
+-                                      NULL,
+-                                      GS_DBUS_NAME,
+-                                      GS_DBUS_PATH,
+-                                      GS_DBUS_INTERFACE,
+-                                      NULL,
+-                                      sleep_cb_screensaver_proxy_ready_cb,
+-                                      manager);
+-}
+-
+-static void
+-upower_notify_sleep_cb (UpClient *client,
+-                        UpSleepKind sleep_kind,
+-                        CsdPowerManager *manager)
+-{
+-        gboolean do_lock;
+-
+-        do_lock = g_settings_get_boolean (manager->priv->settings,
+-                                          "lock-on-suspend");
+-        if (!do_lock)
+-                return;
+-
+         /* connect to the screensaver first */
+         g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION,
+                                   G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES,
+@@ -3384,46 +3372,6 @@ upower_notify_sleep_cb (UpClient *client,
+                                   NULL,
+                                   sleep_cb_screensaver_proxy_ready_cb,
+                                   manager);
+-
+-}
+-
+-static void
+-upower_notify_resume_cb (UpClient *client,
+-                         UpSleepKind sleep_kind,
+-                         CsdPowerManager *manager)
+-{
+-        gboolean ret;
+-        GError *error = NULL;
+-
+-        /* this displays the unlock dialogue so the user doesn't have
+-         * to move the mouse or press any key before the window comes up */
+-        if (manager->priv->screensaver_proxy != NULL) {
+-                g_dbus_proxy_call (manager->priv->screensaver_proxy,
+-                                   "SimulateUserActivity",
+-                                   NULL,
+-                                   G_DBUS_CALL_FLAGS_NONE,
+-                                   -1, NULL, NULL, NULL);
+-        }
+-
+-        if (manager->priv->screensaver_proxy != NULL) {
+-            g_object_unref (manager->priv->screensaver_proxy);
+-            manager->priv->screensaver_proxy = NULL;
+-        }
+-
+-        /* close existing notifications on resume, the system power
+-         * state is probably different now */
+-        notify_close_if_showing (manager->priv->notification_low);
+-        notify_close_if_showing (manager->priv->notification_discharging);
+-
+-        /* ensure we turn the panel back on after resume */
+-        ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
+-                                             GNOME_RR_DPMS_ON,
+-                                             &error);
+-        if (!ret) {
+-                g_warning ("failed to turn the panel on after resume: %s",
+-                           error->message);
+-                g_error_free (error);
+-        }
+ }
+ 
+ static void
+@@ -3582,6 +3530,219 @@ disable_builtin_screensaver (gpointer unused)
+         return TRUE;
+ }
+ 
++static void
++inhibit_lid_switch_done (GObject      *source,
++                         GAsyncResult *result,
++                         gpointer      user_data)
++{
++        GDBusProxy *proxy = G_DBUS_PROXY (source);
++        CsdPowerManager *manager = CSD_POWER_MANAGER (user_data);
++        GError *error = NULL;
++        GVariant *res;
++        GUnixFDList *fd_list = NULL;
++        gint idx;
++
++        res = g_dbus_proxy_call_with_unix_fd_list_finish (proxy, &fd_list, result, &error);
++        if (res == NULL) {
++                g_warning ("Unable to inhibit lid switch: %s", error->message);
++                g_error_free (error);
++        } else {
++                g_variant_get (res, "(h)", &idx);
++                manager->priv->inhibit_lid_switch_fd = g_unix_fd_list_get (fd_list, idx, &error);
++                if (manager->priv->inhibit_lid_switch_fd == -1) {
++                        g_warning ("Failed to receive system inhibitor fd: %s", error->message);
++                        g_error_free (error);
++                }
++                g_debug ("System inhibitor fd is %d", manager->priv->inhibit_lid_switch_fd);
++                g_object_unref (fd_list);
++                g_variant_unref (res);
++        }
++}
++
++static void
++inhibit_lid_switch (CsdPowerManager *manager)
++{
++        GVariant *params;
++
++        if (manager->priv->inhibit_lid_switch_taken) {
++                g_debug ("already inhibited lid-switch");
++                return;
++        }
++        g_debug ("Adding lid switch system inhibitor");
++        manager->priv->inhibit_lid_switch_taken = TRUE;
++
++        params = g_variant_new ("(ssss)",
++                                "handle-lid-switch",
++                                g_get_user_name (),
++                                "Multiple displays attached",
++                                "block");
++        g_dbus_proxy_call_with_unix_fd_list (manager->priv->logind_proxy,
++                                             "Inhibit",
++                                             params,
++                                             0,
++                                             G_MAXINT,
++                                             NULL,
++                                             NULL,
++                                             inhibit_lid_switch_done,
++                                             manager);
++}
++
++static void
++inhibit_suspend_done (GObject      *source,
++                      GAsyncResult *result,
++                      gpointer      user_data)
++{
++        GDBusProxy *proxy = G_DBUS_PROXY (source);
++        CsdPowerManager *manager = CSD_POWER_MANAGER (user_data);
++        GError *error = NULL;
++        GVariant *res;
++        GUnixFDList *fd_list = NULL;
++        gint idx;
++
++        res = g_dbus_proxy_call_with_unix_fd_list_finish (proxy, &fd_list, result, &error);
++        if (res == NULL) {
++                g_warning ("Unable to inhibit suspend: %s", error->message);
++                g_error_free (error);
++        } else {
++                g_variant_get (res, "(h)", &idx);
++                manager->priv->inhibit_suspend_fd = g_unix_fd_list_get (fd_list, idx, &error);
++                if (manager->priv->inhibit_suspend_fd == -1) {
++                        g_warning ("Failed to receive system inhibitor fd: %s", error->message);
++                        g_error_free (error);
++                }
++                g_debug ("System inhibitor fd is %d", manager->priv->inhibit_suspend_fd);
++                g_object_unref (fd_list);
++                g_variant_unref (res);
++        }
++}
++
++/* We take a delay inhibitor here, which causes logind to send a
++ * PrepareToSleep signal, which gives us a chance to lock the screen
++ * and do some other preparations.
++ */
++static void
++inhibit_suspend (CsdPowerManager *manager)
++{
++        if (manager->priv->inhibit_suspend_taken) {
++                g_debug ("already inhibited lid-switch");
++                return;
++        }
++        g_debug ("Adding suspend delay inhibitor");
++        manager->priv->inhibit_suspend_taken = TRUE;
++        g_dbus_proxy_call_with_unix_fd_list (manager->priv->logind_proxy,
++                                             "Inhibit",
++                                             g_variant_new ("(ssss)",
++                                                            "sleep",
++                                                            g_get_user_name (),
++                                                            "Cinnamon needs to lock the screen",
++                                                            "delay"),
++                                             0,
++                                             G_MAXINT,
++                                             NULL,
++                                             NULL,
++                                             inhibit_suspend_done,
++                                             manager);
++}
++
++static void
++uninhibit_suspend (CsdPowerManager *manager)
++{
++        if (manager->priv->inhibit_suspend_fd == -1) {
++                g_debug ("no suspend delay inhibitor");
++                return;
++        }
++        g_debug ("Removing suspend delay inhibitor");
++        close (manager->priv->inhibit_suspend_fd);
++        manager->priv->inhibit_suspend_fd = -1;
++        manager->priv->inhibit_suspend_taken = FALSE;
++}
++
++static void
++handle_suspend_actions (CsdPowerManager *manager)
++{
++        gboolean do_lock;
++
++        do_lock = g_settings_get_boolean (manager->priv->settings,
++                                          "lock-on-suspend");
++        if (do_lock)
++                lock_screensaver (manager);
++
++        /* lift the delay inhibit, so logind can proceed */
++        uninhibit_suspend (manager);
++}
++
++static void
++handle_resume_actions (CsdPowerManager *manager)
++{
++        gboolean ret;
++        GError *error = NULL;
++
++        /* this displays the unlock dialogue so the user doesn't have
++         * to move the mouse or press any key before the window comes up */
++        g_dbus_connection_call (manager->priv->connection,
++                                GS_DBUS_NAME,
++                                GS_DBUS_PATH,
++                                GS_DBUS_INTERFACE,
++                                "SimulateUserActivity",
++                                NULL, NULL,
++                                G_DBUS_CALL_FLAGS_NONE, -1,
++                                NULL, NULL, NULL);
++
++        /* close existing notifications on resume, the system power
++         * state is probably different now */
++        notify_close_if_showing (manager->priv->notification_low);
++        notify_close_if_showing (manager->priv->notification_discharging);
++
++        /* ensure we turn the panel back on after resume */
++        ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen,
++                                             GNOME_RR_DPMS_ON,
++                                             &error);
++        if (!ret) {
++                g_warning ("failed to turn the panel on after resume: %s",
++                           error->message);
++                g_error_free (error);
++        }
++
++        /* set up the delay again */
++        inhibit_suspend (manager);
++}
++
++static void
++upower_notify_sleep_cb (UpClient *client,
++                        UpSleepKind sleep_kind,
++                        CsdPowerManager *manager)
++{
++        handle_suspend_actions (manager);
++}
++
++static void
++upower_notify_resume_cb (UpClient *client,
++                         UpSleepKind sleep_kind,
++                         CsdPowerManager *manager)
++{
++        handle_resume_actions (manager);
++}
++
++static void
++logind_proxy_signal_cb (GDBusProxy  *proxy,
++                        const gchar *sender_name,
++                        const gchar *signal_name,
++                        GVariant    *parameters,
++                        gpointer     user_data)
++{
++        CsdPowerManager *manager = CSD_POWER_MANAGER (user_data);
++        gboolean is_about_to_suspend;
++
++        if (g_strcmp0 (signal_name, "PrepareForSleep") != 0)
++                return;
++        g_variant_get (parameters, "(b)", &is_about_to_suspend);
++        if (is_about_to_suspend) {
++                handle_suspend_actions (manager);
++        } else {
++                handle_resume_actions (manager);
++        }
++}
++
+ static gboolean
+ is_hardware_a_virtual_machine (void)
+ {
+@@ -3647,6 +3808,26 @@ csd_power_manager_start (CsdPowerManager *manager,
+         if (manager->priv->x11_screen == NULL)
+                 return FALSE;
+ 
++        /* Set up the logind proxy */
++        manager->priv->logind_proxy =
++                g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
++                                               0,
++                                               NULL,
++                                               SYSTEMD_DBUS_NAME,
++                                               SYSTEMD_DBUS_PATH,
++                                               SYSTEMD_DBUS_INTERFACE,
++                                               NULL,
++                                               error);
++        g_signal_connect (manager->priv->logind_proxy, "g-signal",
++                          G_CALLBACK (logind_proxy_signal_cb),
++                          manager);
++
++        /* Set up a delay inhibitor to be informed about suspend attempts */
++        inhibit_suspend (manager);
++
++        /* Disable logind's lid handling while g-s-d is active */
++        inhibit_lid_switch (manager);
++
+         /* track the active session */
+         manager->priv->session = cinnamon_settings_session_new ();
+         g_signal_connect (manager->priv->session, "notify::state",
+@@ -3856,6 +4037,22 @@ csd_power_manager_stop (CsdPowerManager *manager)
+                 manager->priv->up_client = NULL;
+         }
+ 
++        if (manager->priv->inhibit_lid_switch_fd != -1) {
++                close (manager->priv->inhibit_lid_switch_fd);
++                manager->priv->inhibit_lid_switch_fd = -1;
++                manager->priv->inhibit_lid_switch_taken = FALSE;
++        }
++        if (manager->priv->inhibit_suspend_fd != -1) {
++                close (manager->priv->inhibit_suspend_fd);
++                manager->priv->inhibit_suspend_fd = -1;
++                manager->priv->inhibit_suspend_taken = FALSE;
++        }
++
++        if (manager->priv->logind_proxy != NULL) {
++                g_object_unref (manager->priv->logind_proxy);
++                manager->priv->logind_proxy = NULL;
++        }
++
+         if (manager->priv->x11_screen != NULL) {
+                 g_object_unref (manager->priv->x11_screen);
+                 manager->priv->x11_screen = NULL;
+@@ -3928,6 +4125,8 @@ static void
+ csd_power_manager_init (CsdPowerManager *manager)
+ {
+         manager->priv = CSD_POWER_MANAGER_GET_PRIVATE (manager);
++        manager->priv->inhibit_lid_switch_fd = -1;
++        manager->priv->inhibit_suspend_fd = -1;
+ }
+ 
+ static void
diff --git a/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix b/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
index 742036f16b3f..fc0c4f2a6bc0 100644
--- a/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
+++ b/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
@@ -2,14 +2,14 @@
 , intltool, dbus_glib, at_spi2_core, libSM }:
 
 stdenv.mkDerivation rec {
-  versionMajor = "2.10";
-  versionMinor = "2";
+  versionMajor = "2.12";
+  versionMinor = "0";
   moduleName   = "at-spi2-atk";
   name = "${moduleName}-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "1xfh89lydl8d18dhnzwvzcsyyybr5q3ik001qgq520l3qh8shj73";
+    sha256 = "0crn3k6qvn6fjvgm68dj5ska1ppfgmdkaia2db1jp0b9y74nfm1v";
   };
 
   buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi
diff --git a/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix b/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
index ab30c81efc23..d60a0ff7480c 100644
--- a/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
+++ b/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
@@ -2,14 +2,14 @@
 , libX11, xextproto, libSM, libICE, libXtst, libXi, gobjectIntrospection }:
 
 stdenv.mkDerivation (rec {
-  versionMajor = "2.10";
-  versionMinor = "2";
+  versionMajor = "2.12";
+  versionMinor = "0";
   moduleName   = "at-spi2-core";
   name = "${moduleName}-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "1qfxlbmbaihgmqgkxnywnji9wkbvn8pvbv20x5glv3jc9zw5innk";
+    sha256 = "12gvsgdaxnxskndlhlmdkc50cfqgmzfc4n8la9944fz5k3fhwmfv";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/baobab/default.nix b/pkgs/desktops/gnome-3/core/baobab/default.nix
index 07805644d906..9381f45105df 100644
--- a/pkgs/desktops/gnome-3/core/baobab/default.nix
+++ b/pkgs/desktops/gnome-3/core/baobab/default.nix
@@ -1,7 +1,7 @@
 { stdenv, intltool, fetchurl, vala, libgtop
 , pkgconfig, gtk3, glib, hicolor_icon_theme
 , bash, makeWrapper, itstool, libxml2
-, gnome3, librsvg, gdk_pixbuf }:
+, gnome3, librsvg, gdk_pixbuf, file }:
 
 stdenv.mkDerivation rec {
   name = "baobab-3.10.1";
@@ -22,19 +22,14 @@ stdenv.mkDerivation rec {
                             hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
 
   buildInputs = [ vala pkgconfig gtk3 glib libgtop intltool itstool libxml2
-                  gnome3.gsettings_desktop_schemas makeWrapper ];
-
-  installFlags = "gsettingsschemadir=\${out}/share/baobab/glib-2.0/schemas/";
-
-  postInstall = ''
-    wrapProgram "$out/bin/baobab" \
-      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/baobab:$XDG_ICON_DIRS"
-  '';
+                  gnome3.gsettings_desktop_schemas makeWrapper file ];
 
   preFixup = ''
     rm $out/share/icons/hicolor/icon-theme.cache
     rm $out/share/icons/HighContrast/icon-theme.cache
+    wrapProgram "$out/bin/baobab" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/dconf/default.nix b/pkgs/desktops/gnome-3/core/dconf/default.nix
index 4ee8143bb2b9..a6236f167440 100644
--- a/pkgs/desktops/gnome-3/core/dconf/default.nix
+++ b/pkgs/desktops/gnome-3/core/dconf/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, vala, libxslt, pkgconfig, glib, dbus_glib, gnome3
-, libxml2, intltool, docbook_xsl_ns, docbook_xsl }:
+, libxml2, intltool, docbook_xsl_ns, docbook_xsl, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "dconf-${version}";
@@ -11,7 +11,16 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ vala libxslt pkgconfig glib dbus_glib gnome3.gtk libxml2
-                  intltool docbook_xsl docbook_xsl_ns ];
+                  intltool docbook_xsl docbook_xsl_ns makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/dconf-editor" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+
+    rm $out/lib/gio/modules/giomodule.cache
+    rm $out/share/icons/hicolor/icon-theme.cache
+    rm $out/share/icons/HighContrast/icon-theme.cache
+  '';
 
   meta = with stdenv.lib; {
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome-3/core/empathy/default.nix b/pkgs/desktops/gnome-3/core/empathy/default.nix
index 1f7a027fd3e5..051bc9b7fb25 100644
--- a/pkgs/desktops/gnome-3/core/empathy/default.nix
+++ b/pkgs/desktops/gnome-3/core/empathy/default.nix
@@ -37,14 +37,13 @@ stdenv.mkDerivation rec {
                          "-I${dbus_libs}/include/dbus-1.0"
                          "-I${dbus_libs}/lib/dbus-1.0/include" ];
 
-  enableParallelBuilding = true;
-
-  installFlags = "gsettingsschemadir=\${out}/share/empathy/glib-2.0/schemas/";
-
-  postInstall = ''
-    wrapProgram "$out/bin/empathy" \
-      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gnome3.gnome_themes_standard}/:${gnome3.gnome_themes_standard}/share:${hicolor_icon_theme}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/empathy:${telepathy_logger}/share/telepathy/logger:${folks}/share/folks:${evolution_data_server}/share/evolution-data-server"
+  preFixup = ''
+    for f in $out/bin/* $out/libexec/*; do
+      wrapProgram $f \
+        --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+        --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gnome3.gnome_themes_standard}/:${gnome3.gnome_themes_standard}/share:${hicolor_icon_theme}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+    done
+    rm $out/share/icons/hicolor/icon-theme.cache
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/eog/default.nix b/pkgs/desktops/gnome-3/core/eog/default.nix
index 99e87b3c584c..57f19dcaa321 100644
--- a/pkgs/desktops/gnome-3/core/eog/default.nix
+++ b/pkgs/desktops/gnome-3/core/eog/default.nix
@@ -14,11 +14,13 @@ stdenv.mkDerivation rec {
     [ intltool pkgconfig itstool libxml2 libjpeg gtk glib libpeas makeWrapper librsvg
       gsettings_desktop_schemas shared_mime_info gnome_icon_theme gnome_desktop libexif ];
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/eog" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${shared_mime_info}/share:${gnome3.gnome_icon_theme}/share:${gnome3.gsettings_desktop_schemas}/share:${gnome3.gtk}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${shared_mime_info}/share:${gnome3.gnome_icon_theme}/share:${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+
+    rm $out/share/icons/hicolor/icon-theme.cache
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/epiphany/default.nix b/pkgs/desktops/gnome-3/core/epiphany/default.nix
index 7da49dbc7384..9df3a7ed01e5 100644
--- a/pkgs/desktops/gnome-3/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome-3/core/epiphany/default.nix
@@ -1,10 +1,8 @@
 { stdenv, intltool, fetchurl, pkgconfig, gtk3, glib, nspr, icu
 , bash, makeWrapper, gnome3, libwnck3, libxml2, libxslt, libtool
 , webkitgtk, libsoup, libsecret, gnome_desktop, libnotify, p11_kit
-, sqlite, gcr, avahi, nss, isocodes, itstool, file }:
-
-# TODO: icons and theme still does not work
-# use packaged gnome3.gnome_icon_theme_symbolic 
+, sqlite, gcr, avahi, nss, isocodes, itstool, file
+, hicolor_icon_theme, gdk_pixbuf, librsvg }:
 
 stdenv.mkDerivation rec {
   name = "epiphany-3.10.3";
@@ -18,6 +16,8 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--disable-static --disable-tests" ];
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
 
   nativeBuildInputs = [ pkgconfig file ];
 
@@ -30,13 +30,12 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr -I${nss}/include/nss";
 
-  installFlags = "gsettingsschemadir=\${out}/share/${name}/glib-2.0/schemas/";
-
   enableParallelBuilding = true;
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/epiphany" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/${name}"
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
index de8f28ddaab1..4b50840534cf 100644
--- a/pkgs/desktops/gnome-3/core/evince/default.nix
+++ b/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -2,6 +2,7 @@
 , glib, gtk3, pango, atk, gdk_pixbuf, shared_mime_info, itstool, gnome3
 , poppler, ghostscriptX, djvulibre, libspectre, libsecret , makeWrapper
 , librsvg, recentListSize ? null # 5 is not enough, allow passing a different number
+, gobjectIntrospection
 }:
 
 stdenv.mkDerivation rec {
@@ -14,17 +15,16 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     pkgconfig intltool perl perlXMLParser libxml2
-    glib gtk3 pango atk gdk_pixbuf
+    glib gtk3 pango atk gdk_pixbuf gobjectIntrospection
     itstool gnome3.gnome_icon_theme gnome3.gnome_icon_theme_symbolic
     gnome3.libgnome_keyring gnome3.gsettings_desktop_schemas
     poppler ghostscriptX djvulibre libspectre
     makeWrapper libsecret librsvg
   ];
 
-  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
-
   configureFlags = [
     "--disable-nautilus" # Do not use nautilus
+    "--enable-introspection"
   ];
 
   NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
@@ -40,12 +40,14 @@ stdenv.mkDerivation rec {
       sed -i 's/\(if (++n_items == \)5\(.*\)/\1${builtins.toString recentListSize}\2/' shell/ev-window.c
     '';
 
-  postInstall = ''
+  preFixup = ''
     # Tell Glib/GIO about the MIME info directory, which is used
     # by `g_file_info_get_content_type ()'.
     wrapProgram "$out/bin/evince" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.gsettings_desktop_schemas}/share:${gtk3}/share:${shared_mime_info}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${shared_mime_info}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
+
+    rm $out/share/icons/hicolor/icon-theme.cache
   '';
 
   doCheck = false; # would need pythonPackages.dogTail, which is missing
diff --git a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
index 30805c1c5975..9e7d0cb3da0a 100644
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, stdenv, pkgconfig, gnome3, python, intltool, libsoup, libxml2, libsecret
-, p11_kit, db, nspr, nss, libical, gperf, valaSupport ? true, vala }:
+, p11_kit, db, nspr, nss, libical, gperf, makeWrapper, valaSupport ? true, vala }:
 
 
 stdenv.mkDerivation rec {
@@ -12,14 +12,18 @@ stdenv.mkDerivation rec {
 
   buildInputs = with gnome3;
     [ pkgconfig glib python intltool libsoup libxml2 gtk gnome_online_accounts libsecret
-      gcr p11_kit db nspr nss libgweather libical libgdata gperf ]
+      gcr p11_kit db nspr nss libgweather libical libgdata gperf makeWrapper ]
     ++ stdenv.lib.optional valaSupport vala;
 
   # uoa irrelevant for now
   configureFlags = ["--disable-uoa" "--with-nspr-includes=${nspr}/include/nspr" "--with-nss-includes=${nss}/include/nss"]
                    ++ stdenv.lib.optional valaSupport "--enable-vala-bindings";
 
-  installFlags = "gsettingsschemadir=\${out}/share/evolution-data-server/glib-2.0/schemas/";
+  preFixup = ''
+    for f in "$out/libexec/evolution-addressbook-factory" "$out/libexec/evolution-calendar-factory"; do
+      wrapProgram $f --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+    done
+  '';
 
   meta = with stdenv.lib; {
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome-3/core/folks/default.nix b/pkgs/desktops/gnome-3/core/folks/default.nix
index 9b0f403b079f..12518c634c4f 100644
--- a/pkgs/desktops/gnome-3/core/folks/default.nix
+++ b/pkgs/desktops/gnome-3/core/folks/default.nix
@@ -27,8 +27,6 @@ stdenv.mkDerivation rec {
 
   postBuild = "rm -rf $out/share/gtk-doc";
 
-  installFlags = "gsettingsschemadir=\${out}/share/folks/glib-2.0/schemas/";
-
   meta = {
     description = "Folks";
 
diff --git a/pkgs/desktops/gnome-3/core/gcr/default.nix b/pkgs/desktops/gnome-3/core/gcr/default.nix
index 059942530ea4..a1fdd4712820 100644
--- a/pkgs/desktops/gnome-3/core/gcr/default.nix
+++ b/pkgs/desktops/gnome-3/core/gcr/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, intltool, gnupg, p11_kit, glib
 , libgcrypt, libtasn1, dbus_glib, gtk, pango, gdk_pixbuf, atk
-, gobjectIntrospection }:
+, gobjectIntrospection, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "gcr-3.10.1";
@@ -12,11 +12,16 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     pkgconfig intltool gnupg p11_kit glib gobjectIntrospection
-    libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk
+    libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk makeWrapper
   ];
 
   #doCheck = true;
 
+  preFixup = ''
+    wrapProgram "$out/bin/gcr-viewer" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
+
   meta = with stdenv.lib; {
     platforms = platforms.linux;
   };
diff --git a/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix b/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
new file mode 100644
index 000000000000..3879b81859a4
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl, pkgconfig, intltool }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-backgrounds-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-backgrounds/3.10/${name}.tar.xz";
+    sha256 = "11rv03m4hznpx0brf47hil04199z3jjvl1aq7q0lnill3yrffiyc";
+  };
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
new file mode 100644
index 000000000000..205961a91713
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, intltool, fetchurl, pkgconfig, libxml2
+, bash, gtk3, glib, hicolor_icon_theme, makeWrapper
+, itstool, gnome3, librsvg, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-calculator-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-calculator/3.10/${name}.tar.xz";
+    sha256 = "0gkddnk9x76895xrz0ps4yny36w62fhi459gwmxqqb9kx5934n1f";
+  };
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  buildInputs = [ bash pkgconfig gtk3 glib intltool itstool
+                  libxml2 gnome3.gtksourceview
+                  gnome3.gsettings_desktop_schemas makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-calculator" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/action/show/Apps/Calculator;
+    description = "Application that solves mathematical equations and is suitable as a default application in a Desktop environment";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/configure_dbus_glib.patch b/pkgs/desktops/gnome-3/core/gnome-contacts/configure_dbus_glib.patch
new file mode 100644
index 000000000000..926762defbde
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-contacts/configure_dbus_glib.patch
@@ -0,0 +1,10 @@
+--- configure.ac.orig	2014-04-08 10:25:49.497620879 +0200
++++ configure.ac	2014-04-08 10:26:36.639440950 +0200
+@@ -43,6 +43,7 @@
+ 	     folks-telepathy
+ 	     folks-eds
+ 	     libnotify
++	     dbus-glib-1
+ 	     telepathy-glib >= 0.17.5
+ 	     libebook-1.2 >= 3.5.3
+ 	     libedataserver-1.2 >= 3.5.3
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
new file mode 100644
index 000000000000..f8059f952e62
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, intltool, fetchurl, evolution_data_server, db
+, pkgconfig, gtk3, glib, hicolor_icon_theme, libsecret
+, bash, makeWrapper, itstool, folks, libnotify, libxml2
+, gnome3, librsvg, gdk_pixbuf, file, telepathy_glib, nspr, nss
+, libsoup, vala, dbus_glib, automake114x, autoconf }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-contacts-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-contacts/3.10/${name}.tar.xz";
+    sha256 = "e119c32bb10136e7190f11f79334fa82ed56468cff5bb7836da0ebf7b572779b";
+  };
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard evolution_data_server ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  # force build from vala
+  preBuild = ''
+   touch src/*.vala
+  '';
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool evolution_data_server
+                  gnome3.gsettings_desktop_schemas makeWrapper file libnotify
+                  folks gnome3.gnome_desktop telepathy_glib libsecret dbus_glib
+                  libxml2 libsoup gnome3.gnome_online_accounts nspr nss
+                  vala automake114x autoconf db ];
+
+  preFixup = ''
+    for f in "$out/bin/gnome-contacts" "$out/libexec/gnome-contacts-search-provider"; do
+      wrapProgram $f \
+        --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+        --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+    done
+  '';
+
+  patches = [ ./configure_dbus_glib.patch ./fix_row_selected.patch ];
+
+  patchFlags = "-p0";
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Contacts;
+    description = "Contacts is GNOME's integrated address book";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/fix_row_selected.patch b/pkgs/desktops/gnome-3/core/gnome-contacts/fix_row_selected.patch
new file mode 100644
index 000000000000..b379b4b8ee97
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-contacts/fix_row_selected.patch
@@ -0,0 +1,11 @@
+--- src/contacts-view.vala.orig	2014-04-08 11:35:36.302252460 +0200
++++ src/contacts-view.vala	2014-04-08 11:37:37.045343221 +0200
+@@ -265,7 +265,7 @@
+     data.destroy ();
+   }
+ 
+-  public override void row_selected (ListBoxRow row) {
++  public override void row_selected (ListBoxRow? row) {
+     var data = row as ContactDataRow;
+     var contact = data != null ? data.contact : null;
+     selection_changed (contact);
diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
index ed9adb370d44..1222f03d66e3 100644
--- a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
@@ -1,24 +1,15 @@
-{ fetchurl, stdenv, pkgconfig, gnome3, ibus, intltool, upower, libcanberra, accountservice
-, libxml2, polkit, libxslt, libgtop, libsoup, colord, colord-gtk, pulseaudio, fontconfig
-, cracklib, python, krb5, networkmanagerapplet, libwacom, samba, libnotify, libxkbfile
-, shared_mime_info, tzdata, icu, libtool, docbook_xsl, docbook_xsl_ns, makeWrapper }:
+{ fetchurl, stdenv, pkgconfig, gnome3, ibus, intltool, upower, makeWrapper
+, libcanberra, accountservice, libpwquality, pulseaudio, fontconfig
+, gdk_pixbuf, hicolor_icon_theme, librsvg, libxkbfile, libnotify
+, libxml2, polkit, libxslt, libgtop, libsoup, colord, colord-gtk
+, cracklib, python, krb5, networkmanagerapplet, networkmanager
+, libwacom, samba, shared_mime_info, tzdata, icu, libtool
+, docbook_xsl, docbook_xsl_ns, modemmanager }:
 
 # http://ftp.gnome.org/pub/GNOME/teams/releng/3.10.2/gnome-suites-core-3.10.2.modules
-# TODO: bluetooth, networkmanager, wacom, smbclient, printers
+# TODO: bluetooth, wacom, smbclient, printers
 
-let
-  libpwquality = stdenv.mkDerivation rec {
-    name = "libpwquality-1.2.3";
-
-    src = fetchurl {
-      url = "https://fedorahosted.org/releases/l/i/libpwquality/${name}.tar.bz2";
-      sha256 = "0sjiabvl5277nfxyy96jdz65a0a3pmkkwrfbziwgik83gg77j75i";
-    };
-
-    buildInputs = [ cracklib python ];
-  };
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   name = "gnome-control-center-3.10.2";
 
   src = fetchurl {
@@ -26,12 +17,19 @@ in stdenv.mkDerivation rec {
     sha256 = "1ac34kqkf174w0qc12p927dfhcm69xnv7fqzmbhjab56rn49wypn";
   };
 
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard gnome3.libgnomekbd ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  enableParallelBuilding = true;
+
   buildInputs = with gnome3;
     [ pkgconfig intltool ibus gtk glib upower libcanberra gsettings_desktop_schemas
       libxml2 gnome_desktop gnome_settings_daemon polkit libxslt libgtop gnome-menus
       gnome_online_accounts libsoup colord pulseaudio fontconfig colord-gtk libpwquality
       accountservice krb5 networkmanagerapplet libwacom samba libnotify libxkbfile
-      shared_mime_info icu libtool docbook_xsl docbook_xsl_ns makeWrapper ];
+      shared_mime_info icu libtool docbook_xsl docbook_xsl_ns 
+      networkmanager modemmanager makeWrapper  ];
 
   preBuild = ''
     substituteInPlace tz.h --replace "/usr/share/zoneinfo/zone.tab" "${tzdata}/share/zoneinfo/zone.tab"
@@ -42,15 +40,22 @@ in stdenv.mkDerivation rec {
     substituteInPlace panels/datetime/test-endianess.c --replace "/usr/share/locale/" "$out/share/locale/"
   '';
 
-  postInstall = with gnome3; ''
+  preFixup = with gnome3; ''
     wrapProgram $out/bin/gnome-control-center \
-      --prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share:${gnome_settings_daemon}/share:${glib}/share:${gtk}/share:${colord}/share:$out/share"
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:${gnome_settings_daemon}/share:${glib}/share:${gtk}/share:${colord}/share:$out/share:$out/share/gnome-control-center:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
     for i in $out/share/applications/*; do
       substituteInPlace $i --replace "gnome-control-center" "$out/bin/gnome-control-center"
     done
+
+    rm $out/share/icons/hicolor/icon-theme.cache
   '';
 
+  patches = [ ./search_providers_dir.patch ];
+
   meta = with stdenv.lib; {
+    description = "Single sign-on framework for GNOME";
+    maintainers = with maintainers; [ lethalman ];
     platforms = platforms.linux;
   };
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/search_providers_dir.patch b/pkgs/desktops/gnome-3/core/gnome-control-center/search_providers_dir.patch
new file mode 100644
index 000000000000..7f5ad970f34e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-control-center/search_providers_dir.patch
@@ -0,0 +1,17 @@
+diff --git a/panels/search/cc-search-panel.c b/panels/search/cc-search-panel.c
+index d08e230..3bff4ad 100644
+--- a/panels/search/cc-search-panel.c
++++ b/panels/search/cc-search-panel.c
+@@ -574,7 +574,11 @@ populate_search_providers (CcSearchPanel *self)
+ {
+   GFile *providers_location;
+ 
+-  providers_location = g_file_new_for_path (DATADIR "/gnome-shell/search-providers");
++  const gchar* search_providers_dir = g_getenv ("GNOME_SEARCH_PROVIDERS_DIR");
++  if (search_providers_dir == NULL) {
++    search_providers_dir = DATADIR "/gnome-shell/search-providers";
++  }
++  providers_location = g_file_new_for_path (search_providers_dir);
+   g_file_enumerate_children_async (providers_location,
+                                    "standard::type,standard::name,standard::content-type",
+                                    G_FILE_QUERY_INFO_NONE,
diff --git a/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
new file mode 100644
index 000000000000..6f68916b781e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, intltool, fetchurl
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, bash, makeWrapper, itstool, libxml2
+, gnome3, librsvg, gdk_pixbuf, file }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-dictionary-3.10.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-dictionary/3.10/${name}.tar.xz";
+    sha256 = "258b60fe50f7d0580a7dc3bb83f7fe2f6f0597d4013d97ac083c3f062c350ed7";
+  };
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 file
+                  gnome3.gsettings_desktop_schemas makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-dictionary" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Dictionary;
+    description = "Dictionary is the GNOME application to look up definitions";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
new file mode 100644
index 000000000000..334471c2943c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, intltool, fetchurl, pkgconfig, udisks2, libsecret, libdvdread
+, bash, gtk3, glib, hicolor_icon_theme, makeWrapper, cracklib, libnotify
+, itstool, gnome3, librsvg, gdk_pixbuf, libxml2, python
+, libcanberra_gtk3, libxslt, libtool, docbook_xsl, libpwquality }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-disk-utility-3.10.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-disk-utility/3.10/${name}.tar.xz";
+    sha256 = "1amqi2bribxn8r8k8mvxh3710rmdll9963smf0v59v0iwxi3mqil";
+  };
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme
+                            librsvg udisks2 gnome3.gnome_settings_daemon
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  buildInputs = [ bash pkgconfig gtk3 glib intltool itstool
+                  libxslt libtool libsecret libpwquality cracklib
+                  libnotify libdvdread libcanberra_gtk3 docbook_xsl
+                  gnome3.gsettings_desktop_schemas makeWrapper libxml2 ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-disks" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://en.wikipedia.org/wiki/GNOME_Disks;
+    description = "A udisks graphical front-end";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
new file mode 100644
index 000000000000..cba651ca36a3
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, intltool, fetchurl
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, bash, makeWrapper, itstool
+, gnome3, librsvg, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-font-viewer-3.10.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-font-viewer/3.10/${name}.tar.xz";
+    sha256 = "3928350f58ac6c95f44b64cba1a5f03437b19d9b2645a7b01176067504fdd652";
+  };
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool gnome3.gnome_desktop
+                  gnome3.gsettings_desktop_schemas makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-font-viewer" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Program that can preview fonts and create thumbnails for fonts";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
index b557e2106458..dbb8da93c6cb 100644
--- a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
@@ -25,11 +25,11 @@ stdenv.mkDerivation rec {
     "--with-pkcs11-modules=$$out/lib/pkcs11/"
   ];
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/gnome-keyring" \
-      --prefix XDG_DATA_DIRS : "${glib}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "${glib}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
     wrapProgram "$out/bin/gnome-keyring-daemon" \
-      --prefix XDG_DATA_DIRS : "${glib}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "${glib}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix b/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
index c17b3ba3eb6c..8c4594357333 100644
--- a/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-I${dbus_glib}/include/dbus-1.0 -I${dbus_libs}/include/dbus-1.0";
 
+  enableParallelBuilding = true;
+
   buildInputs = [ pkgconfig glib libxslt gtk webkitgtk json_glib rest libsecret dbus_glib telepathy_glib intltool icu libsoup docbook_xsl_ns docbook_xsl];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
new file mode 100644
index 000000000000..7b94d0f90270
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, intltool, fetchurl, pkgconfig, libcanberra_gtk3
+, bash, gtk3, glib, hicolor_icon_theme, makeWrapper
+, itstool, gnome3, librsvg, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-screenshot-3.10.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-screenshot/3.10/${name}.tar.xz";
+    sha256 = "1nb56kzcj5z4hmrmxap5r53smi52ki3pc8qmhi4rymkgqswyk7bh";
+  };
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  buildInputs = [ bash pkgconfig gtk3 glib intltool itstool libcanberra_gtk3
+                  gnome3.gsettings_desktop_schemas makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-screenshot" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://en.wikipedia.org/wiki/GNOME_Screenshot;
+    description = "Utility used in the GNOME desktop environment for taking screenshots";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
index 804a0c54a41b..f999702af54a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-session/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
@@ -14,12 +14,13 @@ stdenv.mkDerivation rec {
 
   buildInputs = with gnome3;
     [ pkgconfig glib gnome_desktop gtk dbus_glib json_glib libxslt 
+      gnome3.gnome_settings_daemon
       gsettings_desktop_schemas upower intltool gconf makeWrapper systemd ];
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/gnome-session" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-      --prefix XDG_DATA_DIRS : "${gnome3.gsettings_desktop_schemas}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
index 668a53d2bf8a..7a50b8db56fd 100644
--- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
@@ -20,11 +20,11 @@ stdenv.mkDerivation rec {
       polkit geocode_glib geoclue2 librsvg xf86_input_wacom udev libwacom libxslt
       libtool docbook_xsl docbook_xsl_ns makeWrapper gnome_themes_standard ];
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/libexec/gnome-settings-daemon-localeexec" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
       --prefix PATH : "${glib}/bin" \
-      --prefix XDG_DATA_DIRS : "${gnome3.gtk}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
new file mode 100644
index 000000000000..00974edb1db3
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, intltool, fetchurl, libgtop
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, bash, makeWrapper, itstool
+, gnome3, file }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-shell-extensions-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-shell-extensions/3.10/${name}.tar.xz";
+    sha256 = "9baa9ddaf4e14cab6d4d7944d8dc009378b25f995acfd0fd72843f599cb5ae43";
+  };
+
+  doCheck = true;
+
+  buildInputs = [ pkgconfig gtk3 glib libgtop intltool itstool
+                  makeWrapper file ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/GnomeShell/Extensions;
+    description = "Modify and extend GNOME Shell functionality and behavior";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
index 59f62b6948d3..554b09a1e592 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, stdenv, pkgconfig, gnome3, json_glib, libcroco, intltool, libsecret
 , python, libsoup, polkit, clutter, networkmanager, docbook_xsl, docbook_xsl_ns
-, libstartup_notification, telepathy_glib, telepathy_logger, libXtst, p11_kit
+, libstartup_notification, telepathy_glib, telepathy_logger, libXtst, p11_kit, unzip
 , pulseaudio, libical, libtool, nss, gobjectIntrospection, gstreamer, makeWrapper
 , accountservice, gdk_pixbuf, gdm, upower, ibus, networkmanagerapplet, librsvg }:
 
@@ -20,26 +20,27 @@ stdenv.mkDerivation rec {
       clutter networkmanager libstartup_notification telepathy_glib docbook_xsl docbook_xsl_ns
       libXtst p11_kit networkmanagerapplet gjs mutter pulseaudio caribou evolution_data_server
       libical libtool nss gobjectIntrospection gtk gstreamer makeWrapper gdm gnome_control_center
-      at_spi2_core upower ibus gnome_session gnome_desktop telepathy_logger ];
-
-  configureFlags = "--disable-static";
+      at_spi2_core upower ibus gnome_session gnome_desktop telepathy_logger gnome3.gnome_settings_daemon ];
 
   preBuild = ''
     patchShebangs src/data-to-c.pl
     substituteInPlace data/Makefile --replace " install-keysDATA" ""
   '';
 
-  postInstall = with gnome3; ''
+  preFixup = with gnome3; ''
     wrapProgram "$out/bin/gnome-shell" \
+      --prefix PATH : "${unzip}/bin" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
       --prefix LD_LIBRARY_PATH : "${accountservice}/lib:${ibus}/lib:${gdm}/lib" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "${gnome-menus}:/share:${ibus}/share:${gnome_settings_daemon}/share:${gnome_control_center}/share:${gdm}/share:${glib}/share:${gnome_themes_standard}/share:${mutter}/share:${gnome_icon_theme}/share:${gsettings_desktop_schemas}/share:${gtk}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "${gnome_themes_standard}/share:${gtk}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
 
     wrapProgram "$out/libexec/gnome-shell-calendar-server" \
-      --prefix XDG_DATA_DIRS : "${evolution_data_server}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "${evolution_data_server}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
   '';
 
+  patches = [ ./fix_background_corruption.patch ];
+
   meta = with stdenv.lib; {
     platforms = platforms.linux;
   };
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/fix_background_corruption.patch b/pkgs/desktops/gnome-3/core/gnome-shell/fix_background_corruption.patch
new file mode 100644
index 000000000000..9cb041bcce2c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/fix_background_corruption.patch
@@ -0,0 +1,147 @@
+commit 831bd07b0d6b7055fea8317f2cdf8fd4a408c36d
+Author: Jasper St. Pierre <jstpierre@mecheye.net>
+Date:   Thu Nov 7 17:14:47 2013 -0500
+
+    layout: Fix several issues with the background management code
+    
+    If monitor-changed fires at startup, it will destroy all of the
+    backgrounds, but since this._isStartup is true, won't recreate any
+    of them. Additionally, since _bgManagers is indexed by monitor index,
+    if the primary index is not 0, it could become a sparse array (e.g.
+    [undefined, undefined, primaryBackground]), and our for loop will
+    crash trying to access properties of undefined.
+    
+    Fix both of these issues by always creating background managers for
+    every monitor, hiding them on startup but only showing them after
+    the startup animation is complete.
+    
+    One thing we need to watch out for is that while LayoutManager is
+    constructing, Main.uiGroup / Main.layoutManager will be undefined,
+    so addBackgroundMenu will fail. Fix this by passing down the uiGroup
+    to the background menu code.
+    
+    https://bugzilla.gnome.org/show_bug.cgi?id=709313
+
+diff --git a/js/ui/backgroundMenu.js b/js/ui/backgroundMenu.js
+index 06e698c..dcbbb39 100644
+--- a/js/ui/backgroundMenu.js
++++ b/js/ui/backgroundMenu.js
+@@ -13,7 +13,7 @@ const BackgroundMenu = new Lang.Class({
+     Name: 'BackgroundMenu',
+     Extends: PopupMenu.PopupMenu,
+ 
+-    _init: function(source) {
++    _init: function(source, layoutManager) {
+         this.parent(source, 0, St.Side.TOP);
+ 
+         this.addSettingsAction(_("Settings"), 'gnome-control-center.desktop');
+@@ -22,17 +22,17 @@ const BackgroundMenu = new Lang.Class({
+ 
+         this.actor.add_style_class_name('background-menu');
+ 
+-        Main.uiGroup.add_actor(this.actor);
++        layoutManager.uiGroup.add_actor(this.actor);
+         this.actor.hide();
+     }
+ });
+ 
+-function addBackgroundMenu(actor) {
++function addBackgroundMenu(actor, layoutManager) {
+     let cursor = new St.Bin({ opacity: 0 });
+-    Main.uiGroup.add_actor(cursor);
++    layoutManager.uiGroup.add_actor(cursor);
+ 
+     actor.reactive = true;
+-    actor._backgroundMenu = new BackgroundMenu(cursor);
++    actor._backgroundMenu = new BackgroundMenu(cursor, layoutManager);
+     actor._backgroundManager = new PopupMenu.PopupMenuManager({ actor: actor });
+     actor._backgroundManager.addMenu(actor._backgroundMenu);
+ 
+diff --git a/js/ui/layout.js b/js/ui/layout.js
+index 17073a6..80bae9d 100644
+--- a/js/ui/layout.js
++++ b/js/ui/layout.js
+@@ -352,26 +352,26 @@ const LayoutManager = new Lang.Class({
+         this.emit('hot-corners-changed');
+     },
+ 
+-    _createBackground: function(monitorIndex) {
++    _addBackgroundMenu: function(bgManager) {
++        BackgroundMenu.addBackgroundMenu(bgManager.background.actor, this);
++    },
++
++    _createBackgroundManager: function(monitorIndex) {
+         let bgManager = new Background.BackgroundManager({ container: this._backgroundGroup,
+                                                            layoutManager: this,
+                                                            monitorIndex: monitorIndex });
+-        BackgroundMenu.addBackgroundMenu(bgManager.background.actor);
+-
+-        bgManager.connect('changed', Lang.bind(this, function() {
+-                              BackgroundMenu.addBackgroundMenu(bgManager.background.actor);
+-                          }));
+ 
+-        this._bgManagers[monitorIndex] = bgManager;
++        bgManager.connect('changed', Lang.bind(this, this._addBackgroundMenu));
++        this._addBackgroundMenu(bgManager);
+ 
+-        return bgManager.background;
++        return bgManager;
+     },
+ 
+-    _createSecondaryBackgrounds: function() {
++    _showSecondaryBackgrounds: function() {
+         for (let i = 0; i < this.monitors.length; i++) {
+             if (i != this.primaryIndex) {
+-                let background = this._createBackground(i);
+-
++                let background = this._bgManagers[i].background;
++                background.actor.show();
+                 background.actor.opacity = 0;
+                 Tweener.addTween(background.actor,
+                                  { opacity: 255,
+@@ -381,10 +381,6 @@ const LayoutManager = new Lang.Class({
+         }
+     },
+ 
+-    _createPrimaryBackground: function() {
+-        this._createBackground(this.primaryIndex);
+-    },
+-
+     _updateBackgrounds: function() {
+         let i;
+         for (i = 0; i < this._bgManagers.length; i++)
+@@ -395,11 +391,12 @@ const LayoutManager = new Lang.Class({
+         if (Main.sessionMode.isGreeter)
+             return;
+ 
+-        if (this._startingUp)
+-            return;
+-
+         for (let i = 0; i < this.monitors.length; i++) {
+-            this._createBackground(i);
++            let bgManager = this._createBackgroundManager(i);
++            this._bgManagers.push(bgManager);
++
++            if (i != this.primaryIndex && this._startingUp)
++                bgManager.background.actor.hide();
+         }
+     },
+ 
+@@ -595,7 +592,7 @@ const LayoutManager = new Lang.Class({
+         if (Main.sessionMode.isGreeter) {
+             this.panelBox.translation_y = -this.panelBox.height;
+         } else {
+-            this._createPrimaryBackground();
++            this._updateBackgrounds();
+ 
+             // We need to force an update of the regions now before we scale
+             // the UI group to get the coorect allocation for the struts.
+@@ -673,7 +670,7 @@ const LayoutManager = new Lang.Class({
+         this.keyboardBox.show();
+ 
+         if (!Main.sessionMode.isGreeter) {
+-            this._createSecondaryBackgrounds();
++            this._showSecondaryBackgrounds();
+             global.window_group.remove_clip();
+         }
+ 
diff --git a/pkgs/desktops/gnome-3/core/gnome-system-log/default.nix b/pkgs/desktops/gnome-3/core/gnome-system-log/default.nix
new file mode 100644
index 000000000000..cdc4b732b97e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-system-log/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, intltool, fetchurl, pkgconfig
+, bash, gtk3, glib, hicolor_icon_theme, makeWrapper
+, itstool, gnome3, librsvg, gdk_pixbuf, libxml2 }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-system-log-3.9.90";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-system-log/3.9/${name}.tar.xz";
+    sha256 = "9eeb51982d347aa7b33703031e2c1d8084201374665425cd62199649b29a5411";
+  };
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  buildInputs = [ bash pkgconfig gtk3 glib intltool itstool
+                  gnome3.gsettings_desktop_schemas makeWrapper libxml2 ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-system-log" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://help.gnome.org/users/gnome-system-log/3.9/;
+    description = "Graphical, menu-driven viewer that you can use to view and monitor your system logs";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
new file mode 100644
index 000000000000..91fbe67957fe
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, intltool, fetchurl, pkgconfig, gtkmm3, libxml2
+, bash, gtk3, glib, hicolor_icon_theme, makeWrapper
+, itstool, gnome3, librsvg, gdk_pixbuf, libgtop }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-system-monitor-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-system-monitor/3.10/${name}.tar.xz";
+    sha256 = "bd009e15672afe4ad3ebd7ed286cce79b9f76420fd39bc77a5826b29134b9db0";
+  };
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  buildInputs = [ bash pkgconfig gtk3 glib intltool itstool libxml2
+                  gtkmm3 libgtop makeWrapper
+                  gnome3.gsettings_desktop_schemas ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-system-monitor" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://help.gnome.org/users/gnome-system-monitor/3.10/;
+    description = "System Monitor shows you what programs are running and how much processor time, memory, and disk space are being used";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
index 31ee53e9713c..541db5720db4 100644
--- a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -19,12 +19,12 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libuuid libxml2 desktop_file_utils ];
 
-  postInstall = ''
-    wrapProgram "$out/libexec/gnome-terminal-server" \
-      --prefix XDG_DATA_DIRS : "${gnome3.gsettings_desktop_schemas}/share:$out/share"
+  preFixup = ''
+    for f in "$out/libexec/gnome-terminal-migration" "$out/libexec/gnome-terminal-server"; do
+      wrapProgram "$f" --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH"
+    done
   '';
 
-
   meta = with stdenv.lib; {
     platforms = platforms.linux;
   };
diff --git a/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix b/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
new file mode 100644
index 000000000000..d66863a22184
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, file, gnome3, itstool, libxml2, intltool }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-user-docs-3.10.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-user-docs/3.10/${name}.tar.xz";
+    sha256 = "960b6373ea52e41e3deb3501930e024005b29d2cc958bfadc87450a291d2a905";
+  };
+
+  buildInputs = [ pkgconfig gnome3.yelp itstool libxml2 intltool ];
+
+  meta = with stdenv.lib; {
+    homepage = https://help.gnome.org/users/gnome-help/3.10;
+    description = "User and system administration help for the Gnome desktop";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.cc-by-30;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix b/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
new file mode 100644
index 000000000000..976b0eaca45b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, intltool, fetchurl, apacheHttpd_2_2, nautilus
+, pkgconfig, gtk3, glib, hicolor_icon_theme, libxml2, gnused
+, bash, makeWrapper, itstool, libnotify, libtool, mod_dnssd
+, gnome3, librsvg, gdk_pixbuf, file, libcanberra_gtk3 }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-user-share-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-user-share/3.10/${name}.tar.xz";
+    sha256 = "1d1ea57a49224c36e7cba04f80265e835639377f474a7582c9e8ac946eda0f8f";
+  };
+
+  doCheck = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  preConfigure = ''
+    sed -e 's,^LoadModule dnssd_module.\+,LoadModule dnssd_module ${mod_dnssd}/modules/mod_dnssd.so,' -i data/dav_user_2.2.conf 
+  '';
+
+  configureFlags = [ "--with-httpd=${apacheHttpd_2_2}/bin/httpd"
+                     "--with-modules-path=${apacheHttpd_2_2}/modules"
+                     "--disable-bluetooth"
+                     "--with-nautilusdir=$(out)/lib/nautilus/extensions-3.0" ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 libtool
+                  makeWrapper file gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                  hicolor_icon_theme gnome3.gnome_icon_theme_symbolic
+                  nautilus libnotify libcanberra_gtk3 ];
+
+  postInstall = ''
+    mkdir -p $out/share/gsettings-schemas/$name
+    mv $out/share/glib-2.0 $out/share/gsettings-schemas/$name
+    ${glib}/bin/glib-compile-schemas $out/share/gsettings-schemas/$name/glib-2.0/schemas
+  '';
+
+  preFixup = ''
+    wrapProgram "$out/libexec/gnome-user-share" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://help.gnome.org/users/gnome-user-share/3.8;
+    description = "Service that exports the contents of the Public folder in your home directory on the local network";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/grilo/default.nix b/pkgs/desktops/gnome-3/core/grilo/default.nix
new file mode 100644
index 000000000000..2a7f270300a4
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/grilo/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, file, intltool, glib, libxml2, gnome3 }:
+
+stdenv.mkDerivation rec {
+  name = "grilo-0.2.10";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/grilo/0.2/${name}.tar.xz";
+    sha256 = "559a2470fe541b0090bcfdfac7a33e92dba967727bbab6d0eca70e5636a77b25";
+  };
+
+  configureFlags = [ "--enable-grl-pls" ];
+
+  buildInputs = [ pkgconfig file intltool glib libxml2 gnome3.totem-pl-parser ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/action/show/Projects/Grilo;
+    description = "Framework that provides access to various sources of multimedia content, using a pluggable system";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gucharmap/default.nix b/pkgs/desktops/gnome-3/core/gucharmap/default.nix
index bf630e1947de..a6bf72b2fc7e 100644
--- a/pkgs/desktops/gnome-3/core/gucharmap/default.nix
+++ b/pkgs/desktops/gnome-3/core/gucharmap/default.nix
@@ -25,11 +25,9 @@ stdenv.mkDerivation rec {
                   gnome3.yelp_tools libxml2 file desktop_file_utils
                   gnome3.gsettings_desktop_schemas makeWrapper ];
 
-  installFlags = "gsettingsschemadir=\${out}/share/${name}/glib-2.0/schemas/";
-
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/gucharmap" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/${name}"
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix b/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix
new file mode 100644
index 000000000000..1156474e5a7c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, file, intltool, glib, gtk3, libxklavier, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "libgnomekbd-3.6.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgnomekbd/3.6/${name}.tar.xz";
+    sha256 = "c41ea5b0f64da470925ba09f9f1b46b26b82d4e433e594b2c71eab3da8856a09";
+  };
+
+  buildInputs = [ pkgconfig file intltool glib gtk3 libxklavier makeWrapper ];
+
+  preFixup = ''
+    wrapProgram $out/bin/gkbd-keyboard-display \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Keyboard management library";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix
index e6454aa8e5d3..0acfa9f36aed 100644
--- a/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, stdenv, pkgconfig, gnome3, intltool, gobjectIntrospection, upower, cairo
 , pango, cogl, clutter, libstartup_notification, libcanberra, zenity, libcanberra_gtk3
-, libtool }:
+, libtool, makeWrapper }:
 
 
 stdenv.mkDerivation rec {
@@ -19,7 +19,12 @@ stdenv.mkDerivation rec {
   buildInputs = with gnome3;
     [ pkgconfig intltool glib gobjectIntrospection gtk gsettings_desktop_schemas upower
       gnome_desktop cairo pango cogl clutter zenity libstartup_notification libcanberra
-      libcanberra_gtk3 zenity libtool ];
+      libcanberra_gtk3 zenity libtool makeWrapper ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/mutter" \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+  '';
 
   meta = with stdenv.lib; {
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome-3/core/nautilus/default.nix b/pkgs/desktops/gnome-3/core/nautilus/default.nix
index 091e48626ae8..2041a71a82c3 100644
--- a/pkgs/desktops/gnome-3/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome-3/core/nautilus/default.nix
@@ -15,11 +15,11 @@ stdenv.mkDerivation rec {
   buildInputs = [ pkgconfig libxml2 dbus_glib shared_mime_info libexif gtk libunique intltool exempi librsvg
                   gnome3.gnome_desktop gnome3.gnome_icon_theme gnome3.gnome_icon_theme_symbolic gnome3.gsettings_desktop_schemas libnotify makeWrapper ];
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/nautilus" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk}/share:${gnome3.gnome_icon_theme}:${gnome3.gsettings_desktop_schemas}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk}/share:${gnome3.gnome_icon_theme}:${gnome3.gsettings_desktop_schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/sushi/default.nix b/pkgs/desktops/gnome-3/core/sushi/default.nix
new file mode 100644
index 000000000000..089b5cd03c13
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/sushi/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, pkgconfig, file, intltool, gobjectIntrospection, glib
+, clutter_gtk, clutter-gst, gnome3, gtksourceview, libmusicbrainz
+, webkitgtk, libmusicbrainz5, icu, makeWrapper, gst_all_1
+, gdk_pixbuf, librsvg, hicolor_icon_theme }:
+
+stdenv.mkDerivation rec {
+  name = "sushi-3.10.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/sushi/3.10/${name}.tar.xz";
+    sha256 = "cffcf28b170f5825e84983a979972d4d901a453b61cbe3e560d362e8dd4b4bc8";
+  };
+
+  propagatedUserEnvPkgs = [ gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good ];
+
+  buildInputs = [ pkgconfig file intltool gobjectIntrospection glib
+                  clutter_gtk clutter-gst gnome3.gjs gtksourceview gdk_pixbuf librsvg
+                  gnome3.gnome_icon_theme hicolor_icon_theme gnome3.gnome_icon_theme_symbolic
+                  libmusicbrainz5 webkitgtk gnome3.evince icu makeWrapper ];
+
+  enableParallelBuilding = true;
+
+  preFixup = ''
+    wrapProgram $out/libexec/sushi-start \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://en.wikipedia.org/wiki/Sushi_(software)";
+    description = "A quick previewer for Nautilus";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix b/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix
new file mode 100644
index 000000000000..f1b3bfe53c13
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, file, intltool, gmime, libxml2, libsoup }:
+
+stdenv.mkDerivation rec {
+  name = "totem-pl-parser-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/totem-pl-parser/3.10/${name}.tar.xz";
+    sha256 = "38be09bddc46ddecd2b5ed7c82144ef52aafe879a5ec3d8b192b4b64ba995469";
+  };
+
+  buildInputs = [ pkgconfig file intltool gmime libxml2 libsoup ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Videos;
+    description = "Simple GObject-based library to parse and save a host of playlist formats";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/totem/default.nix b/pkgs/desktops/gnome-3/core/totem/default.nix
new file mode 100644
index 000000000000..a6acbd192dbe
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/totem/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, intltool, fetchurl, gst_all_1
+, clutter_gtk, clutter-gst, pygobject3, shared_mime_info
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, bash, makeWrapper, itstool, libxml2, dbus_glib
+, gnome3, librsvg, gdk_pixbuf, file }:
+
+stdenv.mkDerivation rec {
+  name = "totem-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/totem/3.10/${name}.tar.xz";
+    sha256 = "b6b6038c9104965671a6d25e98496a487c3a9c590c9c104f668bd9f4fa7be9e2";
+  };
+
+  doCheck = true;
+
+  enableParallelBuilding = true;
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2 gnome3.grilo
+                  clutter_gtk clutter-gst gnome3.totem-pl-parser
+                  gst_all_1.gstreamer gst_all_1.gst-plugins-base
+                  gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad
+                  gnome3.libpeas pygobject3 shared_mime_info dbus_glib
+                  gnome3.gsettings_desktop_schemas makeWrapper file ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/totem" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/Videos;
+    description = "Movie player for the GNOME desktop based on GStreamer";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/tracker/default.nix b/pkgs/desktops/gnome-3/core/tracker/default.nix
new file mode 100644
index 000000000000..6ac3592f6bfd
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/tracker/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, intltool, fetchurl, libxml2, upower
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, bash, makeWrapper, itstool, vala, sqlite
+, gnome3, librsvg, gdk_pixbuf, file, libnotify
+, evolution_data_server, gst_all_1, poppler
+, icu, taglib, libjpeg, libtiff, giflib, libcue
+, libvorbis, flac, exempi, networkmanager
+, libpng, libexif, libgsf, libuuid, bzip2 }:
+
+stdenv.mkDerivation rec {
+  name = "tracker-1.0.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/tracker/1.0/${name}.tar.xz";
+    sha256 = "a1d033faf2c78f0e239f3c2c961b96623c9a7dabd938c08e3f5660bd70f54ba2";
+  };
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
+
+  enableParallelBuilding = true;
+
+  buildInputs = [ vala pkgconfig gtk3 glib intltool itstool libxml2
+                  bzip2 gnome3.totem-pl-parser
+                  gnome3.gsettings_desktop_schemas makeWrapper file
+                  gdk_pixbuf gnome3.gnome_icon_theme librsvg sqlite
+                  upower libnotify evolution_data_server gnome3.libgee
+                  gst_all_1.gstreamer gst_all_1.gst-plugins-base flac
+                  poppler icu taglib libjpeg libtiff giflib libvorbis
+                  exempi networkmanager libpng libexif libgsf libuuid
+                  hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
+
+  preFixup = ''
+    for f in $out/bin/* $out/libexec/*; do
+      wrapProgram $f \
+        --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+        --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/Tracker;
+    description = "Desktop-neutral user information store, search tool and indexer";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/vino/default.nix b/pkgs/desktops/gnome-3/core/vino/default.nix
index b431a199bf72..65668dce6a20 100644
--- a/pkgs/desktops/gnome-3/core/vino/default.nix
+++ b/pkgs/desktops/gnome-3/core/vino/default.nix
@@ -15,9 +15,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ gtk3 intltool glib libsoup pkgconfig libnotify file makeWrapper ];
 
-  postInstall = ''
+  preFixup = ''
     for f in "$out/bin/vino-passwd" "$out/libexec/vino-server"; do
-      wrapProgram $f --prefix XDG_DATA_DIRS : "${gtk3}/share:$out/share"
+      wrapProgram $f --prefix XDG_DATA_DIRS : "${gtk3}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
     done
   '';
 
diff --git a/pkgs/desktops/gnome-3/core/vte/default.nix b/pkgs/desktops/gnome-3/core/vte/default.nix
index b0e522c0f299..d98ddc716dec 100644
--- a/pkgs/desktops/gnome-3/core/vte/default.nix
+++ b/pkgs/desktops/gnome-3/core/vte/default.nix
@@ -1,32 +1,21 @@
-{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses
-, pythonSupport ? false, python, pygtk}:
+{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses, gobjectIntrospection }:
 
 stdenv.mkDerivation rec {
 
-  versionMajor = "0.34";
-  versionMinor = "9";
+  versionMajor = "0.35";
+  versionMinor = "90";
   moduleName   = "vte";
   
   name = "${moduleName}-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "1q93dsxg56f57mxblmh8kn4v9kyc643j2pjf1j3mn2kxypnwaf3g";
+    sha256 = "c47182d1724db479095b918898ce62297ec71988f24cd575506151c59f7b98cf";
   };
 
-  buildInputs = [ intltool pkgconfig gnome3.glib gnome3.gtk ncurses ] ++
-                stdenv.lib.optionals pythonSupport [python pygtk];
+  buildInputs = [ gobjectIntrospection intltool pkgconfig gnome3.glib gnome3.gtk3 ncurses ];
 
-  configureFlags = ''
-    ${if pythonSupport then "--enable-python" else "--disable-python"}
-  '';
-
-  postInstall = stdenv.lib.optionalString pythonSupport ''
-    cd $(toPythonPath $out)/gtk-2.0
-    for n in *; do
-      ln -s "gtk-2.0/$n" "../$n"
-    done
-  '';
+  configureFlags = ''--enable-introspection'';
 
   meta = {
     homepage = http://www.gnome.org/;
diff --git a/pkgs/desktops/gnome-3/core/yelp/default.nix b/pkgs/desktops/gnome-3/core/yelp/default.nix
index d84bd288707d..b58aa99721e2 100644
--- a/pkgs/desktops/gnome-3/core/yelp/default.nix
+++ b/pkgs/desktops/gnome-3/core/yelp/default.nix
@@ -20,12 +20,10 @@ stdenv.mkDerivation rec {
                   libxml2 libxslt icu file makeWrapper gnome3.yelp_xsl
                   gnome3.gsettings_desktop_schemas ];
 
-  installFlags = "gsettingsschemadir=\${out}/share/yelp/glib-2.0/schemas/";
-
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/yelp" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/:${gnome3.gnome_themes_standard}/share:${gnome3.yelp_xsl}/share/yelp-xsl:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/yelp:$XDG_ICON_DIRS"
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/:${gnome3.gnome_themes_standard}/share:${gnome3.yelp_xsl}/share/yelp-xsl:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/yelp:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index 15544eff9220..d29ea3d1c692 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -38,10 +38,22 @@ rec {
 
   gjs = callPackage ./core/gjs { };
 
+  gnome-backgrounds = callPackage ./core/gnome-backgrounds { };
+
+  gnome-contacts = callPackage ./core/gnome-contacts { };
+
   gnome_control_center = callPackage ./core/gnome-control-center { };
 
+  gnome-calculator = callPackage ./core/gnome-calculator { };
+
   gnome_common = callPackage ./core/gnome-common { };
 
+  gnome-dictionary = callPackage ./core/gnome-dictionary { };
+
+  gnome-disk-utility = callPackage ./core/gnome-disk-utility { };
+
+  gnome-font-viewer = callPackage ./core/gnome-font-viewer { };
+
   gnome_icon_theme = callPackage ./core/gnome-icon-theme { };
 
   gnome_icon_theme_symbolic = callPackage ./core/gnome-icon-theme-symbolic { };
@@ -52,6 +64,8 @@ rec {
 
   libgnome_keyring = callPackage ./core/libgnome-keyring { };
 
+  libgnomekbd = callPackage ./core/libgnomekbd { };
+
   folks = callPackage ./core/folks { };
 
   gnome_online_accounts = callPackage ./core/gnome-online-accounts { };
@@ -60,12 +74,26 @@ rec {
 
   gnome_shell = callPackage ./core/gnome-shell { };
 
+  gnome-shell-extensions = callPackage ./core/gnome-shell-extensions { };
+
+  gnome-screenshot = callPackage ./core/gnome-screenshot { };
+
   gnome_settings_daemon = callPackage ./core/gnome-settings-daemon { };
 
+  gnome-system-log = callPackage ./core/gnome-system-log { };
+
+  gnome-system-monitor = callPackage ./core/gnome-system-monitor { };
+
   gnome_terminal = callPackage ./core/gnome-terminal { };
 
   gnome_themes_standard = callPackage ./core/gnome-themes-standard { };
 
+  gnome-user-docs = callPackage ./core/gnome-user-docs { };
+
+  gnome-user-share = callPackage ./core/gnome-user-share { };
+
+  grilo = callPackage ./core/grilo { };
+
   gsettings_desktop_schemas = callPackage ./core/gsettings-desktop-schemas { };
 
   gucharmap = callPackage ./core/gucharmap { };
@@ -94,6 +122,14 @@ rec {
 
   rest = callPackage ./core/rest { };
 
+  sushi = callPackage ./core/sushi { };
+
+  totem = callPackage ./core/totem { };
+
+  totem-pl-parser = callPackage ./core/totem-pl-parser { };
+
+  tracker = callPackage ./core/tracker { };
+
   vte = callPackage ./core/vte { };
 
   vino = callPackage ./core/vino { };
@@ -111,8 +147,6 @@ rec {
 
   file-roller = callPackage ./desktop/file-roller { };
 
-  gnome_dictionary = callPackage ./desktop/gnome-dictionary { };
-
   gnome_desktop = callPackage ./desktop/gnome-desktop { };
 
   gtksourceview = callPackage ./desktop/gtksourceview { };
@@ -128,5 +162,8 @@ rec {
   gitg = callPackage ./misc/gitg { };
 
   libgit2-glib = callPackage ./misc/libgit2-glib { };
+  
+  gexiv2 = callPackage ./misc/gexiv2 { };
 
+  gnome-tweak-tool = callPackage ./misc/gnome-tweak-tool { };
 }
diff --git a/pkgs/desktops/gnome-3/desktop/file-roller/default.nix b/pkgs/desktops/gnome-3/desktop/file-roller/default.nix
index 0f48103c93d4..41f1fb0097fb 100644
--- a/pkgs/desktops/gnome-3/desktop/file-roller/default.nix
+++ b/pkgs/desktops/gnome-3/desktop/file-roller/default.nix
@@ -18,9 +18,9 @@ stdenv.mkDerivation rec {
   buildInputs = [ glib pkgconfig gnome3.gtk intltool itstool libxml2 libarchive
                   attr bzip2 acl makeWrapper ];
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/file-roller" \
-      --prefix XDG_DATA_DIRS : "${gnome3.gtk}/share:$out/share"
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix
deleted file mode 100644
index 3e952f99eb01..000000000000
--- a/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gnome3, gnome_doc_utils, intltool, which
-, libxml2, libxslt, itstool }:
-
-stdenv.mkDerivation rec {
-  version = "3.10.0";
-  name = "gnome-dictionary-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-dictionary/3.10/${name}.tar.xz";
-    sha256 = "1mqf6ln0cgrw12n9fg81sjbhavrgzvvq7fy3gl55il7pa3z612r5";
-  };
-
-  buildInputs = [ gnome3.gtk ];
-  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libxml2 libxslt itstool ];
-
-  meta = with stdenv.lib; {
-    platforms = platforms.linux;
-  };
-
-}
diff --git a/pkgs/desktops/gnome-3/misc/gexiv2/default.nix b/pkgs/desktops/gnome-3/misc/gexiv2/default.nix
new file mode 100644
index 000000000000..86942c13f34f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/gexiv2/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, exiv2, glib, libtool, m4 }:
+
+
+stdenv.mkDerivation rec {
+  name = "gexiv2-${version}";
+  version = "0.7.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gexiv2/0.7/${name}.tar.xz";
+    sha256 = "12pfc5a57dhlf0c3yg5x3jissxi7jy2b6ir6y99cn510801gwcdn";
+  };
+  
+  preConfigure = ''
+    patchShebangs .
+  '';
+  
+  buildInputs = [ pkgconfig glib libtool m4 ];
+  propagatedBuildInputs = [ exiv2 ];
+  
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/gexiv2;
+    description = "GObject wrapper around the Exiv2 photo metadata library";
+    platforms = platforms.linux;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/desktops/gnome-3/misc/gitg/default.nix b/pkgs/desktops/gnome-3/misc/gitg/default.nix
index 26268f4c90c6..7ca35a8255f9 100644
--- a/pkgs/desktops/gnome-3/misc/gitg/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gitg/default.nix
@@ -9,12 +9,10 @@ stdenv.mkDerivation rec {
   name = "gitg-0.3.2";
 
   src = fetchurl {
-    url = "https://download.gnome.org/sources/gitg/0.3/${name}.tar.xz";
+    url = "mirror://gnome/sources/gitg/0.3/${name}.tar.xz";
     sha256 = "03vc59d1r3326piqdph6qjqnc40chm1lpg52lpf8466ddjs0x8vp";
   };
 
-  configureFlags = [ "--disable-static" ];
-
   preCheck = ''
     substituteInPlace tests/libgitg/test-commit.c --replace "/bin/bash" "${bash}/bin/bash"
   '';
@@ -29,14 +27,11 @@ stdenv.mkDerivation rec {
                   libgit2-glib gtkspell3 gnome3.gsettings_desktop_schemas gnome3.gtksourceview librsvg
                   gobjectIntrospection makeWrapper gnome3.gnome_icon_theme_symbolic gnome3.gnome_icon_theme ];
 
-  postInstall = ''
+  preFixup = ''
     wrapProgram "$out/bin/gitg" \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share"
-  '';
-
-  preFixup = ''
+      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
     rm $out/share/icons/hicolor/icon-theme.cache
     rm $out/share/gitg/icons/hicolor/icon-theme.cache
   '';
diff --git a/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/default.nix b/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/default.nix
new file mode 100644
index 000000000000..2eccb9a32cf9
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, intltool, fetchurl, python, pygobject3, atk
+, pkgconfig, gtk3, glib, hicolor_icon_theme, libsoup
+, bash, makeWrapper, itstool, libxml2, python3Packages
+, gnome3, librsvg, gdk_pixbuf, file, libnotify }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-tweak-tool-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-tweak-tool/3.10/${name}.tar.xz";
+    sha256 = "fb5af9022c0521a925ef9f295e4080212b1b45427cd5f5f3a901667590afa7ec";
+  };
+
+  doCheck = true;
+
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+
+  makeFlags = [ "DESTDIR=/" ];
+
+  buildInputs = [ pkgconfig gtk3 glib intltool itstool libxml2
+                  gnome3.gsettings_desktop_schemas makeWrapper file
+                  gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                  hicolor_icon_theme gnome3.gnome_icon_theme_symbolic
+                  python pygobject3 libnotify gnome3.gnome_shell
+                  libsoup gnome3.gnome_settings_daemon gnome3.nautilus
+                  gnome3.gnome_desktop ];
+
+  preFixup = ''
+    wrapProgram "$out/bin/gnome-tweak-tool" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix LD_LIBRARY_PATH ":" "${libsoup}/lib:${gnome3.gnome_desktop}/lib:${libnotify}/lib:${gtk3}/lib:${atk}/lib" \
+      --prefix PYTHONPATH : "$PYTHONPATH:$(toPythonPath $out)"
+  '';
+
+  patches = [ ./find_gsettings.patch ];
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/action/show/Apps/GnomeTweakTool;
+    description = "A tool to customize advanced GNOME 3 options";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/find_gsettings.patch b/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/find_gsettings.patch
new file mode 100644
index 000000000000..3e68c04cb3ab
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/find_gsettings.patch
@@ -0,0 +1,22 @@
+diff --git a/gtweak/gsettings.py b/gtweak/gsettings.py
+index a00fe19..dce74b2 100644
+--- a/gtweak/gsettings.py
++++ b/gtweak/gsettings.py
+@@ -33,10 +33,15 @@ class GSettingsMissingError(Exception):
+ 
+ class _GSettingsSchema:
+     def __init__(self, schema_name, schema_dir=None, schema_filename=None, **options):
+-        if not schema_dir:
+-            schema_dir = gtweak.GSETTINGS_SCHEMA_DIR
+         if not schema_filename:
+             schema_filename = schema_name + ".gschema.xml"
++        if not schema_dir:
++            schema_dir = gtweak.GSETTINGS_SCHEMA_DIR
++            for xdg_dir in GLib.get_system_data_dirs():
++                dir = os.path.join(xdg_dir, "glib-2.0", "schemas")
++                if os.path.exists(os.path.join(dir, schema_filename)):
++                    schema_dir = dir
++                    break
+ 
+         schema_path = os.path.join(schema_dir, schema_filename)
+         if not os.path.exists(schema_path):
diff --git a/pkgs/desktops/kde-4.10/applications/kate.nix b/pkgs/desktops/kde-4.10/applications/kate.nix
deleted file mode 100644
index e8efc87775ab..000000000000
--- a/pkgs/desktops/kde-4.10/applications/kate.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs, kactivities, qjson, pyqt4, sip, python, pykde4 }:
-
-kde {
-
-  buildInputs = [ kdelibs kactivities qjson pyqt4 sip python pykde4];
-
-  meta = {
-    description = "Kate, the KDE Advanced Text Editor, as well as KWrite";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/applications/konsole.nix b/pkgs/desktops/kde-4.10/applications/konsole.nix
deleted file mode 100644
index 0db47fb2d7c4..000000000000
--- a/pkgs/desktops/kde-4.10/applications/konsole.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs, kde_baseapps }:
-
-kde {
-
-  buildInputs = [ kdelibs kde_baseapps ];
-
-  meta = {
-    description = "Konsole, the KDE terminal emulator";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/default.nix b/pkgs/desktops/kde-4.10/default.nix
deleted file mode 100644
index feb6ed21409d..000000000000
--- a/pkgs/desktops/kde-4.10/default.nix
+++ /dev/null
@@ -1,71 +0,0 @@
-{ callPackage, callPackageOrig, stdenv, qt48, release ? "4.10.5" }:
-
-let
-  branch = "4.10";
-  # Need callPackageOrig to avoid infinite cycle
-  kde = callPackageOrig ./kde-package {
-    inherit release branch ignoreList extraSubpkgs callPackage;
-  };
-
-  # The list of igored individual modules
-  ignoreList = {
-    # Doesn't work yet
-    kdeutils = [ "ksecrets" ];
-    # kdeadmin/strigi-analyzer has no real code
-    kdeadmin = [ "strigi-analyzer" ];
-    # fake package to make things just work
-    kdesdk = [ "fake" ];
-    # Most of kdebindings do not compile due to a bug in the buildsystem
-    kdebindings = [ "kimono" "korundum" "kross-interpreters" "perlkde" "qyoto" ];
-  };
-
-  # Extra subpackages in the manifest format
-  extraSubpkgs = {
-    kdesdk = [
-      { name="cervisia"; }
-      { name="lokalize"; }
-      { name = "kioslave-svn"; sane = "kioslave_svn"; subdir = "kdesdk-kioslaves"; }
-      { name = "kioslave-perldoc"; sane = "kioslave_perldoc"; subdir = "kdesdk-kioslaves"; }
-      { name="dolphin-plugins-svn"; sane="dolphin_plugins_svn";subdir="dolphin-plugins"; }
-      { name="dolphin-plugins-git"; sane="dolphin_plugins_git";subdir="dolphin-plugins"; }
-      { name="dolphin-plugins-hg"; sane="dolphin_plugins_hg";subdir="dolphin-plugins"; }
-      { name="dolphin-plugins-bazaar"; sane="dolphin_plugins_bazaar";subdir="dolphin-plugins"; }
-      { name="kcachegrind"; }
-      { name="kapptemplate"; }
-      { name="kdesdk-strigi-analyzers"; sane="kdesdk_strigi_analyzers";}
-      { name="kdesdk-thumbnailers"; sane="kdesdk_thumbnailers";}
-      { name="okteta"; }
-      { name="kompare"; }
-      { name="poxml"; }
-      { name="kde-dev-scripts"; sane = "kde_dev_scripts"; }
-      { name="kde-dev-utils"; sane="kde_dev_utils";}
-      #{ name="kprofilemethod"; subdir = "kde-dev-utils/kprofilemethod";}
-      #{ name="kstartperf"; }
-      #{ name="kmtrace"; subdir = "kde-dev-utils/kmtrace"; }
-      #{ name="kpartloader"; }
-      #{ name="kuiviewer"; }
-      { name="umbrello"; }
-    ];
-  };
-
-in
-
-kde.modules // kde.individual //
-{
-  inherit (kde) manifest modules individual splittedModuleList;
-
-  akonadi = callPackage ./support/akonadi { };
-
-  qt4 = qt48;
-
-  kdebase_workspace = kde.modules.kde_workspace;
-
-  inherit release;
-
-  full = stdenv.lib.attrValues kde.modules;
-
-  l10n = callPackage ./l10n {
-    inherit release branch;
-    inherit (kde.manifest) stable;
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/files/kde-wallpapers-buildsystem.patch b/pkgs/desktops/kde-4.10/files/kde-wallpapers-buildsystem.patch
deleted file mode 100644
index 378cdb646940..000000000000
--- a/pkgs/desktops/kde-4.10/files/kde-wallpapers-buildsystem.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3d3e247..f78db67 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,5 +1,10 @@
--find_package(KDE4 REQUIRED)
--include(KDE4Defaults)
-+project(kde-wallpapers NONE)
-+if( WALLPAPER_INSTALL_DIR )
-+  message(STATUS "Installing wallpapers to user-supplied directory ${WALLPAPER_INSTALL_DIR}")
-+else()
-+  find_package(KDE4 REQUIRED)
-+  include(KDE4Defaults)
-+endif()
- 
- install(DIRECTORY Air DESTINATION ${WALLPAPER_INSTALL_DIR} PATTERN .svn EXCLUDE)
- 
diff --git a/pkgs/desktops/kde-4.10/files/polkit-install.patch b/pkgs/desktops/kde-4.10/files/polkit-install.patch
deleted file mode 100644
index d2ecac663ec5..000000000000
--- a/pkgs/desktops/kde-4.10/files/polkit-install.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru -x '*~' kdelibs-4.6.90-orig/kdecore/auth/ConfigureChecks.cmake kdelibs-4.6.90/kdecore/auth/ConfigureChecks.cmake
---- kdelibs-4.6.90-orig/kdecore/auth/ConfigureChecks.cmake	2011-05-20 22:24:54.000000000 +0200
-+++ kdelibs-4.6.90/kdecore/auth/ConfigureChecks.cmake	2011-07-12 14:03:00.000000000 +0200
-@@ -139,7 +139,7 @@
-         ${CMAKE_INSTALL_PREFIX} _KDE4_AUTH_POLICY_FILES_INSTALL_DIR
-         ${POLKITQT-1_POLICY_FILES_INSTALL_DIR})
- 
--    set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR ${_KDE4_AUTH_POLICY_FILES_INSTALL_DIR} CACHE STRING 
-+    set(KDE4_AUTH_POLICY_FILES_INSTALL_DIR "\${CMAKE_INSTALL_PREFIX}/share/polkit-1/actions" CACHE STRING 
-         "Where policy files generated by KAuth will be installed" FORCE)
- elseif(KDE4_AUTH_BACKEND_NAME STREQUAL "FAKE")
-     set (KAUTH_COMPILING_FAKE_BACKEND TRUE)
diff --git a/pkgs/desktops/kde-4.10/kactivities.nix b/pkgs/desktops/kde-4.10/kactivities.nix
deleted file mode 100644
index 06381bb13d7d..000000000000
--- a/pkgs/desktops/kde-4.10/kactivities.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs, nepomuk_core }:
-
-kde {
-  propagatedBuildInputs = [ kdelibs nepomuk_core ];
-
-  meta = {
-    description = "KDE activities library and daemon";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kde-base-artwork.nix b/pkgs/desktops/kde-4.10/kde-base-artwork.nix
deleted file mode 100644
index 3f416cebddc4..000000000000
--- a/pkgs/desktops/kde-4.10/kde-base-artwork.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "0mrd3w7rhsj0v92c8rh9zjxyifq7wyvwszksf2gyn53dzd06blk8";
-
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "KDE Base artwork";
-    license = "GPL";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kde-baseapps/kde-baseapps.nix b/pkgs/desktops/kde-4.10/kde-baseapps/kde-baseapps.nix
deleted file mode 100644
index b564e339eb15..000000000000
--- a/pkgs/desktops/kde-4.10/kde-baseapps/kde-baseapps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs, shared_desktop_ontologies, glib, htmlTidy, kactivities
-, nepomuk_core, nepomuk_widgets, libXt }:
-
-kde {
-  buildInputs = [ kdelibs nepomuk_core nepomuk_widgets htmlTidy kactivities libXt ];
-
-  meta = {
-    description = "Base KDE applications, including the Dolphin file manager and Konqueror web browser";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kde-package/4.10.5.nix b/pkgs/desktops/kde-4.10/kde-package/4.10.5.nix
deleted file mode 100644
index b1abdb8afec7..000000000000
--- a/pkgs/desktops/kde-4.10/kde-package/4.10.5.nix
+++ /dev/null
@@ -1,399 +0,0 @@
-{stable=true;
-hashes=builtins.listToAttrs[
-  {name="analitza";value="0lc83vmapd66ilph26hlf8shd4xv0v9y8jsjycw5nl4xpfm7l5nr";}
-  {name="ark";value="1fvb6phcfd17fxcbb5w4njmkj0vlnz6g5qa6wv5szn4fakb5db1v";}
-  {name="audiocd-kio";value="11ma2pvc7w6gdd98h806i163dsjhxxly4wv4xdcqq4yhdviq29qv";}
-  {name="blinken";value="1lfv15blwy3m88zylqsa7k1a5z01qmakjrb9wq9yxnjbhb12nyf8";}
-  {name="bomber";value="0z704hzpgl1s7jdcpicvixd2dnfsh7i4ainjd5zc1rcljgabmvmx";}
-  {name="bovo";value="10wp4spcdwsa4nbq9qhancvddv83q12qbi72ksnvds50md12h5xx";}
-  {name="cantor";value="070al4dx7x7kk568lpd1ajq0q5gws48w3n76g0wlf4dqqlijjfx6";}
-  {name="dragon";value="0wj89v1d34s595ky97zwph7rxb97h03qya3bi6y1npcp7kjlv2j9";}
-  {name="ffmpegthumbs";value="0ilc8k601g3m4x1slfcczah87f402a9143a70gvbjprffd7iyf9q";}
-  {name="filelight";value="1wfd498ir1ivcks1ys3h8whvi0l4xwfgz2j5c4m4b517dskrmaxf";}
-  {name="granatier";value="04i1zzqkv0da6ymqvdxlaxgws7z44521zj51nw4mvapf1jcck7bq";}
-  {name="gwenview";value="0rz3va3djm3qxqvchxa3549r1qf124sb4105bs6s42a05h4mzhqv";}
-  {name="jovie";value="05cc6qzn9hgdvqgi8a2k2i89ggx10fv970293z8d59r6wbh1skv6";}
-  {name="juk";value="00j9c3g1zsa9vbfwpg37jb4w8753sr28q9xbxp3kfablndwid3w9";}
-  {name="kaccessible";value="0rsdxzqamq2i3f59npsv6pir9bys3g6zd345sfnpbdkinvxyhrdn";}
-  {name="kactivities";value="0sfbc3w0cvjfp2zs6v28fv69pq5ikignily572jamm8nwaid5h2g";}
-  {name="kajongg";value="1yffsgbabnp4mckirl888bghpyrj71d8fbsb0rjk96av1kzl2yvx";}
-  {name="kalgebra";value="0slvk1c1n9g2b5nakfi53l7gh3c2y78pvcy2snj9f1z5c0sr05cn";}
-  {name="kalzium";value="12gp0k11zf3m5g2aabrbrd7kpi5k3z46w74kalzzk3s1babgnwxn";}
-  {name="kamera";value="13qka1nc0ibn3kb03l11v64r6w3k4g7ayq539ncp1syba5726xy1";}
-  {name="kanagram";value="11vd5abdsggzv4svj4wj6q7mcpbxnpjk4gv0m1zw82ya26aarjnk";}
-  {name="kapman";value="19r8a7k2ib2fijipajbj461b1sfvlfxrlpfmm52njg61xizdxy20";}
-  {name="kate";value="0wzvhywvkagshs1q8q1rmq3dxlc5h62y7mlfb2x9wzp945rshq6d";}
-  {name="katomic";value="0vqqjv1magpc7wgwj0cvbykl9qvphc3s03i30qndygi96mf36iwc";}
-  {name="kblackbox";value="197r2nfrpdynqix1c81y1y72jrbzzl3prjd6q9sca9qnd47xx9kb";}
-  {name="kblocks";value="0nnbaskl1s9gy6kn8qk3j9qr6vmsbnpmjj4ddn1fvr32kqjfzr3h";}
-  {name="kbounce";value="0i962rbbi41m8fd7x1vrbi6q46qnij3d8kdc3cwn7mmjp79gzwmq";}
-  {name="kbreakout";value="1mh7ki87y1jjk7g4n8flr0ym6qk9nh922xsca2ww1vv16mpxww9w";}
-  {name="kbruch";value="1632a7rjrmll42yazdab1hmgjv39mp16xhkj6mq61sqdd4pj316v";}
-  {name="kcalc";value="1gyp45f873q6v2y1l8k52x70b92893314h6ci5a07c0asm8ffrpa";}
-  {name="kcharselect";value="12w3mzh0gqgh6aaih69djv3f4b1z34cxwhnchqz75z2yb9lcdj1c";}
-  {name="kcolorchooser";value="19b0r8jjy3fkhhzp9hhxw7zyrkb7fafkxs22ik3lzlm6wri1dwpj";}
-  {name="kdeadmin";value="1fg49z2lgmsvkhhyvahasb5z0l9cad4xwq5ps3qv5f1yj0hfzic4";}
-  {name="kdeartwork";value="1z1xnljs5lzmahn3i5xs429bpyxzc6b8sw2m216cs06dwfk77if6";}
-  {name="kde-baseapps";value="1d08wqb3a9fi0gzkls4jmlnmqpfd5fmg4310d2ih78gflv1yk2gz";}
-  {name="kde-base-artwork";value="1hq35i8mw3akbg9m6wvp9fv6xpamv9na2bjqzqyph8sx0633dxrw";}
-  {name="kdegraphics-mobipocket";value="0jq1qrrax9w60w35qxvjrazl4c8qvninhgp9na7pgz6sk6ydb0jf";}
-  {name="kdegraphics-strigi-analyzer";value="07z3nzmfw5pxg97qx2jj54f3r6qc2x22yxhn3kmcpifzr3gyi555";}
-  {name="kdegraphics-thumbnailers";value="1iwmyn2r43i3bykrc4vx0785f3x5zrnvvfdhfpr88f6pxr95f7bq";}
-  {name="kdelibs";value="1lgjz90irrqwz8h6w7iwy8icvqyj4kb2sarnyrxna8dy1fah9m5n";}
-  {name="kdenetwork";value="1lra150av4ndq5s9msx1khwdwd8k0n756qg6d4fsjp2fy7scf26k";}
-  {name="kdepim";value="0qs1znrvfzrkhlh1d68pri9fnaq2nhxnih5fsjcn2m7d537havq1";}
-  {name="kdepimlibs";value="01hyi3r2an8g9ds59az39c8qdm8qiws6q16558jna7f6w4m0yq5r";}
-  {name="kdepim-runtime";value="1p293zqwdc0g77h996slc0qwa01a24nq5yh5a4q6ng92rfzzkrl3";}
-  {name="kdeplasma-addons";value="0hs9bmg4gcl9lks78pmb0n29jzzh56w5islyzhzccrrcbimsqvzp";}
-  {name="kde-runtime";value="0daw0sjyqrdhsah920fla05wvcf9zrck1lbkdcbvrk1qvvqwjhpx";}
-  {name="kdesdk";value="0h1il5dza8qcfz1fgz6qhsaccqkp0g5fdi4k3413vr6lhg67dh78";}
-  {name="kdetoys";value="1r2rh0hdipwfxwq29whicbvxa7dr5vswh9pqw60x1c634cgba49p";}
-  {name="kde-wallpapers";value="1d96asb1nn88rwzb2nis37d8qwliaswpzfc15zq6jkcbdyzaxfpv";}
-  {name="kdewebdev";value="18s79ah9j01mb3lpzpsi6wxbh3wjpkswx5snpv1fyphf760jzb3n";}
-  {name="kde-workspace";value="0xg8asnxq48x6zydh09bfga11363bya7hfkygas7ar7rb0144im3";}
-  {name="kdf";value="0d3i5jpikh285vwr93044lws34ihhbszb05gbyvibx7faqdllg2h";}
-  {name="kdiamond";value="1dca5h88lm2syhnk5bd8g83lx9422hyg972di4xj69vnnpl5nsp9";}
-  {name="kfloppy";value="02yq8p8ma1aghm9k442xznk1xwb4mcd36h040ix5rc7j3j02l79m";}
-  {name="kfourinline";value="0ljs9szk4r6iasn4qkclpq3nij5hb8xnyqj36w8nxbvsmka69d2p";}
-  {name="kgamma";value="0byvsk5j2g1ycfq5zskg9bkbmq9jddv0nzck2w4qayf072cqn8b3";}
-  {name="kgeography";value="0icf21sr6w920ga6as9yx1ja85gwk3h2bb1ra9k5bs32vw5r7nk9";}
-  {name="kgoldrunner";value="18i0mj3j6q1gycf33z416kcf9lsksrmk8fnp4j1jg9mlr6y1xc6c";}
-  {name="kgpg";value="1x04mj6ykmhmlr2074bn6kc88zz4y3lgbvnf4qkcj8q5wil1p3gv";}
-  {name="khangman";value="0yrqd17w78pl18ln8rqcb0cmqis8al9k3zvg0hvxyh3qp013xb9m";}
-  {name="kig";value="1wd8kk4gkvgxp83q6dqdqkqaznbrl8kk88ixk17qhlj03iykxfcj";}
-  {name="kigo";value="1g78wqsk72mki48inxam6337hpjd491325j3cmvvlz0196q3s4zn";}
-  {name="killbots";value="1kjmwsrqmj85yawbw6xr025bkv3kidwasiyrjr01mgsndlkn3y47";}
-  {name="kimono";value="0wswbykjq56rxf0rkkl97ipy36r5q8h9sws758fvwmd16nylhdg0";}
-  {name="kiriki";value="0iv3lak13szc93gqqjlqdmdbg3jy4xbxvnahzka0d3m2nkg9iv6h";}
-  {name="kiten";value="1112kl5vbz58v52nss4gd4plnrl3nkp57mnhdbs58dlxv1s1s7b9";}
-  {name="kjumpingcube";value="1y9pgqsq72v9mxw04dkg4x2m15jyl5iahqshxczzihh3pjllv7sr";}
-  {name="klettres";value="0kqjw7vrpzvrr4g6zhdsqppbr2viqr7jann4npnzh0bw48842zhp";}
-  {name="klickety";value="0d78nak6dzmkfsxq7cxndca51paw2giawk31s70fgr7kwa7s9g9f";}
-  {name="klines";value="0z8bp1xwy17k1nv7d8mrgsk7vgb5137icdy0d66jwaa9bzsv3khh";}
-  {name="kmag";value="1iamiy8ppyd4qkbdhqykxgh6c8w31glpjv1srk9s4gqyqj51mf24";}
-  {name="kmahjongg";value="02ai75zc5rfch3b7a2zz9kmw6r3kgkbzr9pi8c1zrdgif8awrl3x";}
-  {name="kmines";value="0hc838cd5h8gjm4alszi8z70r3jmjxqwmhni1silk16gsiy3kqvy";}
-  {name="kmix";value="08ls620ndrvszx36sy2xj32fvwm5b8aggp86cwvzqjvp47c46wjv";}
-  {name="kmousetool";value="02lg84gpnic2l84ay01adw2fynr0x7byklqdz3zphiqhddhfnb81";}
-  {name="kmouth";value="09jg2xar4p6rrcc41qfj0h57fapdgpdpjh6ackhyana0871q5cam";}
-  {name="kmplot";value="17s7n51x2nl5g4l0862gnzigkwa7qwipmvy7krn8b1z051n2jwfx";}
-  {name="knavalbattle";value="15qpgn5bjbk4smwzz5x0x9f1kd5mjhg6p4h4dalcay8k9zixxxvl";}
-  {name="knetwalk";value="0yqdxcah56z1q21xfrk33s4fx6l9q21na5dx1p12d114vzgr3gzq";}
-  {name="kolf";value="08ba3flnknzjgys73lhpy7b98j544wwv6vvbrd6p2675imwk168w";}
-  {name="kollision";value="1jahrgkb9j8shwrmm1486f3w1hd5snwfwv53gj7973z0mmm5468r";}
-  {name="kolourpaint";value="18ql77778zdc9149qd7mslkh780v6qkhdc1wfljrr1mj98p08av9";}
-  {name="konquest";value="1iyqgzyg004lyqssmvh4951m9v56ayw7ggza6awh6a805j0zz0sp";}
-  {name="konsole";value="1zqmmv4zpq59nm2r7ccmp1ij5q3qjclmbmcm667hxmq9dyrwv5an";}
-  {name="korundum";value="12cqg6ib06icadyslnqzqmkal6rmjhki02na09gacqdiwc7gf2p2";}
-  {name="kpat";value="1zdv4jvqg0xbbsf39d2n8d0ya2mqzva06s46m2hb66flyjz5pd3p";}
-  {name="kremotecontrol";value="0jw4jjlhy378f58wgqm5cikqj8i3bdz1s1qm4r24bb1677dqyd4x";}
-  {name="kreversi";value="1mxgb60zbq8qkjnamvlr072vii2px224mg03fjjds063321swx0z";}
-  {name="kross-interpreters";value="0r2y7lscsgk6jkzby7dqwd62yk2nyzwm6chihsvivl9frl38wqza";}
-  {name="kruler";value="0gwyy0k8h705bnp6q7jgzbk8i9d6csffhwlas7y0zwcl7n03664x";}
-  {name="ksaneplugin";value="187n3s19xdfl7bbcpgyappw1v2bgjki8kh1qh8dy8mscm2qn50j9";}
-  {name="kscd";value="0wqm2vhj593x4vps3205gfnl29yglr2szzpdiazi6rq80r8ifvbq";}
-  {name="kshisen";value="1n5131kckixwbllp8sxn5y93z9q2fdvjj77pcy4sadngx5slz718";}
-  {name="ksirk";value="0b2084h246jhphwpa5iwpxbib4z4h6cwvi8bp18l7yid77wz28f2";}
-  {name="ksnakeduel";value="0v74l5svmr21gahxzfz7sjnj5gzhnyir7l7cny1q7xnha7bnaw81";}
-  {name="ksnapshot";value="05l18i9mv9pghlf50qax9drlcrmdahgiljnvcq20vadrxw4qxghv";}
-  {name="kspaceduel";value="0q8iqg5n7w0v5llbgan7vnf41zbfagc0rd8ya7fp9gf5pmx422zf";}
-  {name="ksquares";value="0fnz1hy2n0i1gal9b8ij8bi5sql5iybbjpkyy55dapcbph2br8xc";}
-  {name="kstars";value="0nf3n9f6dmp8401d2jfcyh26xbwmwdav4maacp5dmhv6xvr2ivis";}
-  {name="ksudoku";value="07lxxaw6ykhlxzkbhzsz43ingfx0l1gb38v2z0ag8jd3iln7l79v";}
-  {name="ktimer";value="112449fn8zbgz3s22bswyc8fisa126j6xvmwxzb91c5vx0wj9qg8";}
-  {name="ktouch";value="0a9x6ym3gw3d6jqvlfaw5qyxzcn9vi4sa55ig0d9cdy8057y5pwz";}
-  {name="ktuberling";value="1ihvv3mais39yk84k1a76mpz5c9sbbnw80n536adh3y3fad4yw5a";}
-  {name="kturtle";value="07fxjiaq69x97w45z8r3g1iyi0vyk0wyqwjwn1qb7a1ziwva5jl9";}
-  {name="kubrick";value="0mqf52lp0s61qsv8q47h012m5k8mf6gqwjpb7swrs7hxsc58dspy";}
-  {name="kwallet";value="0mb8ph0wf761gpss7xmi4zngxfalm3sdngjxrpr8brczjp8v9wdm";}
-  {name="kwordquiz";value="0rbrfswf13pw4cam8fj9w7g12yhzvg82izzy79xsxb0dkk4ki42n";}
-  {name="libkcddb";value="033vmv8fin87m788qjyjaravf5gr9cj953yvcfg9438qpavd79qr";}
-  {name="libkcompactdisc";value="105w0bnw6gzjb8gnp2gmwcjgaz3gi4f16fninbl2658dnb24b1kq";}
-  {name="libkdcraw";value="0p1wbdrhpp6rg82kfrxhaz4lxqjix6mb1grj16zy1i24x89mxlya";}
-  {name="libkdeedu";value="1b6qpd3i59hfd7rwij255xyrxp5ylw5mpyr6k10py5pj7fn4zhc2";}
-  {name="libkdegames";value="1cc5011xm9rz9fz2dk3ibfr4cqq3rmw3i7vlcsrhfscsx0xm88sc";}
-  {name="libkexiv2";value="18ngfrz30q0prsrwy92hb7y0hxhcxlr4ic7lq7fv4l45434ry7pv";}
-  {name="libkipi";value="00nn96qwynfx2ajqllh8zkwccc1prigbcq75s1hnpm67nnfc98as";}
-  {name="libkmahjongg";value="06qpykgaxx5r7n3ymph1g2fy0dj2vclfqlnzbdc41ma3l66jci64";}
-  {name="libksane";value="0a0ipz9jmrw076mxsj2k3njaf7dwfrdqd5bqwcc4q8qqlhpp4ljy";}
-  {name="lskat";value="1sxmjhw61w1d19zidf96qkddx9r0h8z5kbjl8xgah8k25ji5qsr6";}
-  {name="marble";value="04cy00jsnahmigffjyqviizj5bvj2aldfgkyj2g5iadfsqflxvy4";}
-  {name="mplayerthumbs";value="0hmdvyillr779c1fmia3h6dcy7j7j0kvxvh4mdz1adfwaz4zgymy";}
-  {name="nepomuk-core";value="12grw88gc4b4i1h346ahpkv8493gyvhvkpcqxwc2dqpsqsfc7rpz";}
-  {name="nepomuk-widgets";value="1npmwv1vh5ci6c9a291vyps85c5cvdg5dn9r9h28dq58s2h274yh";}
-  {name="okular";value="05v23g4w6sw525w7qllcbyhk92k75hyqrvx9hncylig4blivjp9f";}
-  {name="oxygen-icons";value="1y7iq77fyiykmjf8xdyprnshlasazdv6fcjp6ayfx0jkixb2gqya";}
-  {name="pairs";value="1v4h0d04b7g59axkl69gyml02hzxjkfzcgg320mj05xx5q0kjyq5";}
-  {name="palapeli";value="13hvppav7yz9wvvly8f8kads9arqvl25spwa8awpl2f4a394c0sa";}
-  {name="parley";value="0wk6p4rw6063089iq758a0mcq10fh8c1pg0wq00dhs9d05gwk873";}
-  {name="perlkde";value="1hh5y4zmmb97py281i0jhzwg8r4ii3qmilzbwbrvk9j4ngcz37gg";}
-  {name="perlqt";value="09880varap78a44zifqx72wbx23wq0hqq540hf466fmmxk744877";}
-  {name="picmi";value="060a1n5lclsaz4zjq1dpm9y20fqgq3rjlkm54prp3kkj5hpi6kcl";}
-  {name="print-manager";value="0jmvfy376axdwi4a2fc78ldlny4jbk7kxvhi1mwf8piibwc10dvf";}
-  {name="pykde4";value="10aqvx6dfcbi9mrsr0sdhhxp2jqkw06rf55p2nxdadmcszad2k7k";}
-  {name="qtruby";value="042nya6n5sp2r9a9s3limbph8wv5z04fha7pkqznvrkr040qykvj";}
-  {name="qyoto";value="0nxhxvh4zpskvxv7mjz06vililg2wqlabaaaf61j0naxz4aynyrv";}
-  {name="rocs";value="10xb6qh29g4l369dyimwj0yk8s5yi6jg1byaf4z5jnr2w8ysbf7j";}
-  {name="smokegen";value="0myzqfqcl7i8kikcyj2vbip9y4al411jmjm02hv55baccygls8yr";}
-  {name="smokekde";value="0b1m9g1swj9r44zbg8lbqmxp9l342dz8b4wsnn6n9ih0b15p512h";}
-  {name="smokeqt";value="047am45yjkyyza281zfzvv84kvldvmbgch5q3fd89vcvl5sh399j";}
-  {name="step";value="05rjnb16mzz91q7473k2g83g792xqh77p4gc2xmw0a5j4qk6f6ga";}
-  {name="superkaramba";value="0vxb8656ag6hmy3nx9w3xa38j12rajkqsmv4kx6ylnpk6v71s7x2";}
-  {name="svgpart";value="17j59rwg483p7ip1zxq37jnzvkafrkj7yabwrbwk0vvxkqcbqpx3";}
-  {name="sweeper";value="0yhp6k2ai7wgn242932w10xwainq07bf9zjm2fvaavrg3gh38644";}
-];
-modules=[
-{
-  module="kdemultimedia";
-  split=true;
-  pkgs=[
-    { name="audiocd-kio"; sane="audiocd_kio"; }
-    { name="dragon";  }
-    { name="ffmpegthumbs";  }
-    { name="juk";  }
-    { name="kmix";  }
-    { name="kscd";  }
-    { name="libkcddb";  }
-    { name="libkcompactdisc";  }
-    { name="mplayerthumbs";  }
-  ];
-}
-{
-  module="kdegraphics";
-  split=true;
-  pkgs=[
-    { name="gwenview";  }
-    { name="kamera";  }
-    { name="kcolorchooser";  }
-    { name="kdegraphics-mobipocket"; sane="kdegraphics_mobipocket"; }
-    { name="kdegraphics-strigi-analyzer"; sane="kdegraphics_strigi_analyzer"; }
-    { name="kdegraphics-thumbnailers"; sane="kdegraphics_thumbnailers"; }
-    { name="kgamma";  }
-    { name="kolourpaint";  }
-    { name="kruler";  }
-    { name="ksaneplugin";  }
-    { name="ksnapshot";  }
-    { name="libkdcraw";  }
-    { name="libkexiv2";  }
-    { name="libkipi";  }
-    { name="libksane";  }
-    { name="okular";  }
-    { name="svgpart";  }
-  ];
-}
-{
-  module="kdelibs";
-  split=true;
-  pkgs=[
-    { name="kdelibs";  }
-    { name="nepomuk-core"; sane="nepomuk_core"; }
-    { name="nepomuk-widgets"; sane="nepomuk_widgets"; }
-  ];
-}
-{
-  module="kdeutils";
-  split=true;
-  pkgs=[
-    { name="ark";  }
-    { name="filelight";  }
-    { name="kcalc";  }
-    { name="kcharselect";  }
-    { name="kdf";  }
-    { name="kfloppy";  }
-    { name="kgpg";  }
-    { name="kremotecontrol";  }
-    { name="ktimer";  }
-    { name="kwallet";  }
-    { name="print-manager"; sane="print_manager"; }
-    { name="superkaramba";  }
-    { name="sweeper";  }
-  ];
-}
-{
-  module="applications";
-  split=true;
-  pkgs=[
-    { name="kate";  }
-    { name="konsole";  }
-  ];
-}
-{
-  module="kdegames";
-  split=true;
-  pkgs=[
-    { name="bomber";  }
-    { name="bovo";  }
-    { name="granatier";  }
-    { name="kajongg";  }
-    { name="kapman";  }
-    { name="katomic";  }
-    { name="kblackbox";  }
-    { name="kblocks";  }
-    { name="kbounce";  }
-    { name="kbreakout";  }
-    { name="kdiamond";  }
-    { name="kfourinline";  }
-    { name="kgoldrunner";  }
-    { name="kigo";  }
-    { name="killbots";  }
-    { name="kiriki";  }
-    { name="kjumpingcube";  }
-    { name="klickety";  }
-    { name="klines";  }
-    { name="kmahjongg";  }
-    { name="kmines";  }
-    { name="knavalbattle";  }
-    { name="knetwalk";  }
-    { name="kolf";  }
-    { name="kollision";  }
-    { name="konquest";  }
-    { name="kpat";  }
-    { name="kreversi";  }
-    { name="kshisen";  }
-    { name="ksirk";  }
-    { name="ksnakeduel";  }
-    { name="kspaceduel";  }
-    { name="ksquares";  }
-    { name="ksudoku";  }
-    { name="ktuberling";  }
-    { name="kubrick";  }
-    { name="libkdegames";  }
-    { name="libkmahjongg";  }
-    { name="lskat";  }
-    { name="palapeli";  }
-    { name="picmi";  }
-  ];
-}
-{
-  module="kdeedu";
-  split=true;
-  pkgs=[
-    { name="analitza";  }
-    { name="blinken";  }
-    { name="cantor";  }
-    { name="kalgebra";  }
-    { name="kalzium";  }
-    { name="kanagram";  }
-    { name="kbruch";  }
-    { name="kgeography";  }
-    { name="khangman";  }
-    { name="kig";  }
-    { name="kiten";  }
-    { name="klettres";  }
-    { name="kmplot";  }
-    { name="kstars";  }
-    { name="ktouch";  }
-    { name="kturtle";  }
-    { name="kwordquiz";  }
-    { name="libkdeedu";  }
-    { name="marble";  }
-    { name="pairs";  }
-    { name="parley";  }
-    { name="rocs";  }
-    { name="step";  }
-  ];
-}
-{
-  module="kdebindings";
-  split=true;
-  pkgs=[
-    { name="kimono";  }
-    { name="korundum";  }
-    { name="kross-interpreters"; sane="kross_interpreters"; }
-    { name="perlkde";  }
-    { name="perlqt";  }
-    { name="pykde4";  }
-    { name="qtruby";  }
-    { name="qyoto";  }
-    { name="smokegen";  }
-    { name="smokekde";  }
-    { name="smokeqt";  }
-  ];
-}
-{
-  module="kdeaccessibility";
-  split=true;
-  pkgs=[
-    { name="jovie";  }
-    { name="kaccessible";  }
-    { name="kmag";  }
-    { name="kmousetool";  }
-    { name="kmouth";  }
-  ];
-}
-{
-  module="kde-baseapps";
-sane="kde_baseapps";  split=true;
-  pkgs=[
-    { name="kde-baseapps"; sane="kde_baseapps"; }
-  ];
-}
-{ module="kactivities";  split=false;}
-{ module="kdeadmin";  split=false;
-  pkgs=[
-    { name="strigi-analyzer"; sane="strigi_analyzer";}
-    { name="kuser"; }
-    { name="ksystemlog"; }
-    { name="kcron"; }
-  ];
-
-}
-{ module="kdeartwork";  split=false;
-  pkgs=[
-    { name="ColorSchemes"; }
-    { name="IconThemes"; }
-    { name="emoticons"; }
-    { name="kscreensaver"; }
-    { name="kwin-styles"; sane="kwin_styles";}
-    { name="sounds"; }
-    { name="styles"; }
-    { name="wallpapers"; }
-    { name="HighResolutionWallpapers"; }
-    { name="WeatherWallpapers"; }
-    { name="desktopthemes"; }
-  ];
-
-}
-{ module="kde-base-artwork"; sane="kde_base_artwork"; split=false;}
-{ module="kdenetwork";  split=false;
-  pkgs=[
-    { name="kdenetwork-strigi-analyzers"; sane="kdenetwork_strigi_analyzers";}
-    { name="kdenetwork-filesharing"; sane="kdenetwork_filesharing";}
-    { name="kppp"; }
-    { name="kdnssd"; }
-    { name="krdc"; }
-    { name="krfb"; }
-    { name="kget"; }
-    { name="kopete"; }
-  ];
-
-}
-{ module="kdepim";  split=false;}
-{ module="kdepimlibs";  split=false;}
-{ module="kdepim-runtime"; sane="kdepim_runtime"; split=false;}
-{ module="kdeplasma-addons"; sane="kdeplasma_addons"; split=false;}
-{ module="kde-runtime"; sane="kde_runtime"; split=false;}
-#had to add fake pkgs to kdesdk to get it to be treated like a split module
-{ module="kdesdk";  split=false; pkgs = [{ name="fake"; }]; }
-{ module="kdetoys";  split=false;
-  pkgs=[
-    { name="kteatime"; }
-    { name="ktux"; }
-    { name="amor"; }
-  ];
-
-}
-{ module="kde-wallpapers"; sane="kde_wallpapers"; split=false;}
-{ module="kdewebdev";  split=false;
-  pkgs=[
-    { name="klinkstatus"; }
-    { name="kfilereplace"; }
-    { name="kimagemapeditor"; }
-    { name="kommander"; }
-  ];
-
-}
-{ module="kde-workspace"; sane="kde_workspace"; split=false;}
-{ module="oxygen-icons"; sane="oxygen_icons"; split=false;}
-];
-}
diff --git a/pkgs/desktops/kde-4.10/kde-package/default.nix b/pkgs/desktops/kde-4.10/kde-package/default.nix
deleted file mode 100644
index 9424a762c8f2..000000000000
--- a/pkgs/desktops/kde-4.10/kde-package/default.nix
+++ /dev/null
@@ -1,129 +0,0 @@
-{ callPackage, runCommand, stdenv, fetchurl, qt4, cmake, automoc4
-, release, branch, ignoreList, extraSubpkgs
-}:
-
-let
-  inherit (stdenv.lib) filter fold;
-  inherit (builtins) getAttr hasAttr remoteAttrs listToAttrs tail head;
-in
-rec {
-  manifest = import (./. + "/${release}.nix");
-
-  # src attribute for $name tarball
-  kdesrc = name: fetchurl {
-    url = "mirror://kde/" + (if manifest.stable then "" else "un")
-      + "stable/${release}/src/${name}-${release}.tar.xz";
-    sha256 = getAttr name manifest.hashes;
-  };
-
-  # Default meta attribute
-  defMeta = {
-    homepage = http://www.kde.org;
-    inherit branch;
-    platforms = stdenv.lib.platforms.linux;
-    inherit (qt4.meta) maintainers;
-  };
-
-  # KDE package built from the whole tarball
-  # This function is used both for monolithic modules and modules which are
-  # released as individual tarballs
-  kdeMonoPkg = name: let n_ = name; in a@{meta, name ? n_, ...}:
-    stdenv.mkDerivation ({
-      name = "${name}-${release}";
-      src = kdesrc name;
-      meta = defMeta // meta;
-      enableParallelBuilding = true;
-    } // (removeAttrs a [ "meta" "name" ]));
-
-  # kdeMonoPkg wrapper for modules splitted upstream compatible with combinePkgs
-  # API.
-  kdeSplittedPkg = module: {name, sane ? name}: kdeMonoPkg name;
-
-  # Build subdirectory ${subdir} of tarball ${module}-${release}.tar.xz
-  kdeSubdirPkg = module:
-    {name, subdir ? name, sane ? name}:
-    let name_ = name; in
-    a@{cmakeFlags ? [], name ? name_, meta ? {}, ...}:
-    stdenv.mkDerivation ({
-      name = "${name}-${release}";
-      src = kdesrc module;
-      cmakeFlags =
-        [ "-DDISABLE_ALL_OPTIONAL_SUBDIRECTORIES=TRUE"
-          "-DBUILD_doc=TRUE"
-          "-DBUILD_${subdir}=TRUE"
-        ] ++ cmakeFlags;
-      meta = defMeta // meta;
-      enableParallelBuilding = module.enableParallelBuilding or true;
-    } // (removeAttrs a [ "meta" "name" "cmakeFlags" ]));
-
-  # A KDE monolithic module
-  kdeMonoModule = name: path: callPackage path { kde = kdeMonoPkg name; };
-
-  # Combine packages in one module.
-  # Arguments:
-  #  * pkgFun --- a function of the following signature:
-  #               module: manifest_attrs: manual_attrs: derivation;
-  #  * module --- name of the module
-  #  * pkgs --- list of packages in manifest format
-  combinePkgs = pkgFun: module: pkgs:
-    let
-      f = p@{name, ...}:
-        callPackage (./.. + "/${module}/${name}.nix") { kde = pkgFun module p; };
-      list = map f pkgs;
-      attrs = listToAttrs (map
-        ({name, sane ? name, ...}@p: { name = sane; value = f p; })
-        pkgs);
-    in
-      runCommand "${module}-${release}"
-      ({passthru = attrs // {
-         propagatedUserEnvPackages = list;
-         projects = attrs;
-       };})
-        ''
-          mkdir -pv $out/nix-support
-          echo "${toString list}" | tee $out/nix-support/propagated-user-env-packages
-        '';
-
-  # Given manifest module data, return the module
-  kdeModule = { module, sane ? module, split, pkgs ? [] }:
-    let
-      pkgs_ = filterPkgs module pkgs;
-    in
-    # Module is splitted by upstream
-    if split then combinePkgs kdeSplittedPkg module pkgs_
-    # Monolithic module
-    else if pkgs == [] then kdeMonoModule module (./.. + "/${module}.nix")
-    # Module is splitted by us
-    else combinePkgs kdeSubdirPkg module pkgs_;
-
-  # The same, as nameValuePair with sane name
-  kdeModuleNV = a@{ module, sane ? module, ... }:
-    { name = sane; value = kdeModule a; };
-
-  filterPkgs = module: (p:
-      removeNames (stdenv.lib.attrByPath [module] [] ignoreList) p
-      ++ (stdenv.lib.attrByPath [module] [] extraSubpkgs));
-
-  # Remove attrsets with x.name in subst. Optimized for empty subst.
-  removeNames = subst: big:
-    fold (s: out: filter (x: x.name != s) out) big subst;
-
-  modules = listToAttrs (map kdeModuleNV manifest.modules);
-
-  splittedModuleList =
-    let
-      splitted = filter (a: a ? pkgs) manifest.modules;
-      names = map ({module, sane ? module, ...}: sane) splitted;
-    in
-    map (m: m.projects) (stdenv.lib.attrVals names modules);
-
-  individual =
-    stdenv.lib.zipAttrsWith
-    (
-      name: list:
-      if tail list == []
-      then head list
-      else abort "Multiple modules define ${name}"
-    )
-    splittedModuleList;
-}
diff --git a/pkgs/desktops/kde-4.10/kde-package/kde-manifest.sh b/pkgs/desktops/kde-4.10/kde-package/kde-manifest.sh
deleted file mode 100755
index e964ce3ddc11..000000000000
--- a/pkgs/desktops/kde-4.10/kde-package/kde-manifest.sh
+++ /dev/null
@@ -1,146 +0,0 @@
-#! /bin/sh
-
-# Usage: download kde release to $dir, then run
-# $0 $dir
-
-dir="$1"
-
-# Detect release number & whether it is a stable release
-if [[ ! -d "${dir}" ]]; then
-  echo "${dir} is not a directory (or doesn't exist)!" >&2
-  exit 1
-fi
-
-release=$(ls "${dir}"/kdelibs-*.tar.xz | \
-  sed -e 's/.*kdelibs-//' -e 's/\.tar\.xz//')
-
-if [[ ${release##*.} -gt 50 ]]; then
-  stable="false"
-else
-  stable="true"
-fi
-
-echo "Detected release ${release}" >&2
-
-declare -A hash
-declare -A modules
-declare -a packages
-declare -a top_level
-
-# xsltproc output declares -A module
-if [[ ! -f kde_projects.xml ]]; then
-  curl -O -J http://projects.kde.org/kde_projects.xml
-fi
-eval `xsltproc kde-submodules.xslt kde_projects.xml`
-
-module[kde-baseapps]=kde-baseapps
-unset module[kactivities]
-
-print_sane() {
-  echo "Called print_sane $1" >&2
-  sane="${1//[^a-z0-9_]/_}"
-  if [[ "$sane" != "$1" ]]; then
-    echo "Sane version is $sane" >&2
-    echo -n "sane=\"$sane\";"
-  fi
-}
-
-for i in `cd "${dir}"; ls *-${release}.tar.xz`; do
-  package=${i%-${release}.tar.xz}
-  packages+=( "$package" )
-  echo -n "${package}.. " >&2
-  hash[$package]=$(nix-hash --type sha256 --flat --base32 "${dir}/${i}")
-  echo -n ${hash[$package]} >&2
-
-  if [ -n "${module[$package]}" ]; then
-    m="${module[$package]}"
-    echo " (${m})" >&2
-    modules[$m]=1
-  else
-    top_level+=( "$package" )
-    echo " (top-level)" >&2
-  fi
-  #nix-store --add-fixed sha256 "${dir}/${i}" >&2
-done
-
-
-print_pkg_hash() {
-  echo "  {name=\"${1}\";value=\"${hash[$1]}\";}"
-}
-
-print_hashes(){
-  echo "hashes=builtins.listToAttrs["
-  for p in "${packages[@]}"; do print_pkg_hash "$p"; done
-  echo "];"
-}
-
-print_split_module(){
-  echo -n "$1:" >&2
-  echo -e "{\n  module=\"$1\";"
-  print_sane "$1"
-  echo "  split=true;"
-  echo "  pkgs=["
-  for p in "${packages[@]}"; do
-    if [[ "${module[$p]}" == "$1" ]]; then
-      echo -n "    { name=\"$p\"; "
-      print_sane "$p"
-      echo " }"
-      echo -n " $p" >&2
-    fi
-  done
-  echo "  ];"
-  echo "}"
-  echo >&2
-}
-
-print_mono_module(){
-  echo -en "{ module=\"$1\"; "
-  print_sane "$1"
-  echo -n "$1 ... " >&2
-  echo -n " split=false;"
-  cml="$1-$release/CMakeLists.txt"
-  tar -xf "${dir}/$1-${release}.tar.xz" "$cml"
-  if grep '^[^#]*add_subdirectory' $cml >/dev/null; then
-    if grep '^[^#]*add_subdirectory' $cml | grep -v macro_optional_add_subdirectory >/dev/null; then
-      echo " is monolithic (has unconditionally added subdirs)" >&2
-    else
-      subdirs=( `grep '^[^#]*add_subdirectory' $cml |
-        sed -e 's/[^#]*add_subdirectory *( *\(.*\) *)/\1/' |
-        grep -v '\(doc\|cmake\)'` )
-      echo " seems splittable, subdirs: ${subdirs[*]}" >&2
-      echo -e "\n  pkgs=["
-      for s in "${subdirs[@]}"; do
-        echo -en "    {"
-		echo -n " name=\"${s//\//-}\"; "
-        print_sane "$s"
-        if [[ $s != "${s//\//-}" ]]; then
-          echo -n "subdir=\"$s\"; "
-        fi
-        echo "}"
-      done
-      echo -e "  ];\n"
-    fi
-  else
-    echo " is monolithic (has no subdirs)" >&2
-  fi
-  rm $cml
-  rmdir $1-$release
-  echo "}"
-}
-
-print_modules(){
-  echo "modules=["
-  echo "Printing modules splitted by upstream" >&2
-  for m in "${!modules[@]}"; do print_split_module "$m"; done
-  echo >&2
-  echo "Printing modules not splitted by upstream (${top_level[*]})" >&2
-  for m in "${top_level[@]}"; do print_mono_module "$m"; done
-  echo "];"
-}
-
-echo "Writing ${release}.nix" >&2
-exec > "${release}.nix"
-echo "{stable=${stable};"
-print_hashes
-print_modules
-echo "}"
diff --git a/pkgs/desktops/kde-4.10/kde-package/kde-submodules.xslt b/pkgs/desktops/kde-4.10/kde-package/kde-submodules.xslt
deleted file mode 100644
index 952a05a9d274..000000000000
--- a/pkgs/desktops/kde-4.10/kde-package/kde-submodules.xslt
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- xslt file for http://projects.kde.org/kde_projects.xml -->
-
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-	<xsl:output method="text" />
-	<xsl:template match="/">
-		<xsl:for-each select="kdeprojects/component[@identifier='kde']">
-			<xsl:text>declare -A module
</xsl:text>
-			<xsl:for-each select="module">
-				<xsl:variable name="module" select='@identifier' />
-				<xsl:for-each select=".//project[repo]">
-					<xsl:text>module["</xsl:text>
-					<xsl:value-of select='@identifier' />
-					<xsl:text>"]="</xsl:text>
-					<xsl:value-of select="$module" />
-					<xsl:text>"
</xsl:text>
-				</xsl:for-each>
-			</xsl:for-each>
-		</xsl:for-each>
-	</xsl:template>
-</xsl:stylesheet>
diff --git a/pkgs/desktops/kde-4.10/kde-runtime.nix b/pkgs/desktops/kde-4.10/kde-runtime.nix
deleted file mode 100644
index a2fef65d75c0..000000000000
--- a/pkgs/desktops/kde-4.10/kde-runtime.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ kde, kdelibs, shared_desktop_ontologies, bzip2, libssh, exiv2, attica
-, libcanberra, virtuoso, samba, libjpeg, ntrack, pkgconfig, qca2, xz, pulseaudio
-, networkmanager, kactivities, kdepimlibs, openexr, ilmbase, config
-}:
-
-kde {
-  buildInputs = [
-    kdelibs attica xz bzip2 libssh libjpeg exiv2 ntrack
-    qca2 samba libcanberra pulseaudio
-    networkmanager kactivities kdepimlibs openexr
-#todo: add openslp
-  ];
-
-  nativeBuildInputs = [ pkgconfig ];
-
-  NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
-
-  passthru.propagatedUserEnvPackages = [ virtuoso ];
-
-  meta = {
-    license = "LGPL";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kde-wallpapers.nix b/pkgs/desktops/kde-4.10/kde-wallpapers.nix
deleted file mode 100644
index 6e559ad8a6c2..000000000000
--- a/pkgs/desktops/kde-4.10/kde-wallpapers.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ kde, cmake }:
-
-kde {
-  nativeBuildInputs = [ cmake ];
-
-  patches = [ ./files/kde-wallpapers-buildsystem.patch ];
-
-  cmakeFlags = "-DWALLPAPER_INSTALL_DIR=share/wallpapers";
-
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "01k4rr7xkay5j0g8qwmfmvf4d0rjc9sdk121wravsagbidz3s9ci";
-
-  meta = {
-    description = "Wallpapers for KDE";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kde-workspace.nix b/pkgs/desktops/kde-4.10/kde-workspace.nix
deleted file mode 100644
index 57b2fea79b2d..000000000000
--- a/pkgs/desktops/kde-4.10/kde-workspace.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ kde, kdelibs, qimageblitz, libdbusmenu_qt, xorg, shared_desktop_ontologies,
-  lm_sensors, pciutils, libraw1394, libusb, libxklavier, python, libqalculate,
-  xkeyboard_config, kdepimlibs, pam, boost, gpsd, prison, akonadi,
-  libjpeg, pkgconfig, libXft, libXxf86misc, kactivities, qjson, networkmanager,
-  fetchurl
-}:
-
-kde {
-
-#todo: googlegadgets, consolekit, xmms
-  buildInputs =
-    [ kdelibs qimageblitz libdbusmenu_qt libjpeg xorg.libxcb xorg.xcbutilimage
-      xorg.xcbutilrenderutil libXft #libXxf86misc
-      xorg.libxkbfile xorg.libXcomposite  xorg.libXtst #xorg.libXScrnSaver
-      xorg.libXdamage xorg.libXau xorg.libXdmcp xorg.libpthreadstubs
-      boost gpsd lm_sensors pciutils libraw1394
-      libusb python libqalculate kdepimlibs pam prison akonadi qjson networkmanager
-      kactivities
-    ];
-
-  patches = [(fetchurl {
-    url = "https://git.reviewboard.kde.org/r/111261/diff/raw/";
-    sha256 = "0g8qjna1s0imz7801k4iy2ap5z81izi4bncvks7z3n9agji4zf40";
-    name = "CVE-2013-4132.patch";
-  })];
-
-  nativeBuildInputs = [ pkgconfig ];
-
-  preConfigure =
-   ''
-     # Fix incorrect path to kde4-config.
-     substituteInPlace startkde.cmake --replace '$bindir/kde4-config' ${kdelibs}/bin/kde4-config
-
-     # Fix the path to the keyboard configuration files.
-     substituteInPlace kcontrol/keyboard/xkb_rules.cpp \
-       --replace /usr/share/X11 ${xkeyboard_config}/etc/X11
-   '';
-
-  enableParallelBuilding = false; # frequent problems on Hydra
-
-  meta = {
-    description = "KDE workspace components such as Plasma, Kwin and System Settings";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeaccessibility/jovie.nix b/pkgs/desktops/kde-4.10/kdeaccessibility/jovie.nix
deleted file mode 100644
index d38c80c4c36a..000000000000
--- a/pkgs/desktops/kde-4.10/kdeaccessibility/jovie.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs, speechd }:
-
-kde {
-  buildInputs = [ kdelibs speechd ];
-
-  meta = {
-    description = "Text-to-speech synthesis daemon";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeaccessibility/kaccessible.nix b/pkgs/desktops/kde-4.10/kdeaccessibility/kaccessible.nix
deleted file mode 100644
index 98fae7c983f8..000000000000
--- a/pkgs/desktops/kde-4.10/kdeaccessibility/kaccessible.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs, speechd }:
-
-kde {
-  buildInputs = [ kdelibs speechd ];
-
-  meta = {
-    description = "Bridge that provides accessibility services to applications";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeaccessibility/kmag.nix b/pkgs/desktops/kde-4.10/kdeaccessibility/kmag.nix
deleted file mode 100644
index 606c61cddb63..000000000000
--- a/pkgs/desktops/kde-4.10/kdeaccessibility/kmag.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-#todo: package qaccessibilityclient
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Screen magnifier for KDE";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeaccessibility/kmousetool.nix b/pkgs/desktops/kde-4.10/kdeaccessibility/kmousetool.nix
deleted file mode 100644
index 8e0caa76ed9c..000000000000
--- a/pkgs/desktops/kde-4.10/kdeaccessibility/kmousetool.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs, libXtst, libXt }:
-
-kde {
-  buildInputs = [ kdelibs libXtst libXt ];
-
-  meta = {
-    description = "A program that clicks the mouse for you";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeaccessibility/kmouth.nix b/pkgs/desktops/kde-4.10/kdeaccessibility/kmouth.nix
deleted file mode 100644
index 4159501967cd..000000000000
--- a/pkgs/desktops/kde-4.10/kdeaccessibility/kmouth.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "A type-and-say front end for speech synthesizers";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeadmin/kcron.nix b/pkgs/desktops/kde-4.10/kdeadmin/kcron.nix
deleted file mode 100644
index bada0c1cb108..000000000000
--- a/pkgs/desktops/kde-4.10/kdeadmin/kcron.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-}
diff --git a/pkgs/desktops/kde-4.10/kdeadmin/ksystemlog.nix b/pkgs/desktops/kde-4.10/kdeadmin/ksystemlog.nix
deleted file mode 100644
index bada0c1cb108..000000000000
--- a/pkgs/desktops/kde-4.10/kdeadmin/ksystemlog.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-}
diff --git a/pkgs/desktops/kde-4.10/kdeadmin/kuser.nix b/pkgs/desktops/kde-4.10/kdeadmin/kuser.nix
deleted file mode 100644
index 571674a461ad..000000000000
--- a/pkgs/desktops/kde-4.10/kdeadmin/kuser.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ kde, kdelibs, kdepimlibs }:
-
-kde {
-  buildInputs = [ kdelibs kdepimlibs ];
-}
diff --git a/pkgs/desktops/kde-4.10/kdeartwork/ColorSchemes.nix b/pkgs/desktops/kde-4.10/kdeartwork/ColorSchemes.nix
deleted file mode 100644
index acccf66976fc..000000000000
--- a/pkgs/desktops/kde-4.10/kdeartwork/ColorSchemes.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  name = "kde-color-schemes";
-
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Additional KDE color schemes";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeartwork/FindXscreensaver.cmake b/pkgs/desktops/kde-4.10/kdeartwork/FindXscreensaver.cmake
deleted file mode 100644
index 499ed75268e9..000000000000
--- a/pkgs/desktops/kde-4.10/kdeartwork/FindXscreensaver.cmake
+++ /dev/null
@@ -1,73 +0,0 @@
-#Macro to find xscreensaver directory
-
-# Copyright (c) 2006, Laurent Montel, <montel@kde.org>
-#
-# Redistribution and use is allowed according to the terms of the BSD license.
-# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-
-if (NOT XSCREENSAVER_FOUND)
-  FIND_PATH(XSCREENSAVER_DIR deco
-    HINTS
-      ${KDE4_INCLUDE_DIR}
-    PATHS
-      /usr
-      /usr/local
-      /opt/local
-      /usr/X11R6
-      /opt/kde
-      /opt/kde3
-      /usr/kde
-      /usr/local/kde
-      /usr/local/xscreensaver
-      /usr/openwin/lib/xscreensaver
-      /etc
-    PATH_SUFFIXES
-      lib${LIB_SUFFIX}/xscreensaver
-      lib${LIB_SUFFIX}/misc/xscreensaver
-      lib/xscreensaver
-      lib64/xscreensaver
-      lib/misc/xscreensaver
-      libexec/xscreensaver
-      bin/xscreensaver-hacks
-      hacks)
-  message(STATUS "XSCREENSAVER_DIR <${XSCREENSAVER_DIR}>")
-
-  FIND_PATH(XSCREENSAVER_CONFIG_DIR deco.xml
-    PATHS
-    ${KDE4_INCLUDE_DIR}
-    /usr/
-    /usr/local/
-    /opt/local/
-    /usr/X11R6/
-    /opt/kde/
-    /opt/kde3/
-    /usr/kde/
-    /usr/local/kde/
-    /usr/openwin/lib/xscreensaver/
-    /etc/
-    PATH_SUFFIXES xscreensaver xscreensaver/config share/xscreensaver/config
-  )
-  MESSAGE(STATUS "XSCREENSAVER_CONFIG_DIR :<${XSCREENSAVER_CONFIG_DIR}>")
-
-endif(NOT XSCREENSAVER_FOUND)
-
-#MESSAGE(STATUS "XSCREENSAVER_CONFIG_DIR :<${XSCREENSAVER_CONFIG_DIR}>")
-#MESSAGE(STATUS "XSCREENSAVER_DIR :<${XSCREENSAVER_DIR}>")
-
-# Need to fix hack
-if(XSCREENSAVER_DIR AND XSCREENSAVER_CONFIG_DIR)
-    set(XSCREENSAVER_FOUND TRUE)
-endif(XSCREENSAVER_DIR AND XSCREENSAVER_CONFIG_DIR)
-
-if (XSCREENSAVER_FOUND)
-  if (NOT Xscreensaver_FIND_QUIETLY)
-    message(STATUS "Found XSCREENSAVER_CONFIG_DIR <${XSCREENSAVER_CONFIG_DIR}>")
-  endif (NOT Xscreensaver_FIND_QUIETLY)
-else (XSCREENSAVER_FOUND)
-  if (Xscreensaver_FIND_REQUIRED)
-    message(FATAL_ERROR "XScreenSaver not found")
-  endif (Xscreensaver_FIND_REQUIRED)
-endif (XSCREENSAVER_FOUND)
-
-
-MARK_AS_ADVANCED(XSCREENSAVER_DIR XSCREENSAVER_CONFIG_DIR)
diff --git a/pkgs/desktops/kde-4.10/kdeartwork/HighResolutionWallpapers.nix b/pkgs/desktops/kde-4.10/kdeartwork/HighResolutionWallpapers.nix
deleted file mode 100644
index edffca1562e1..000000000000
--- a/pkgs/desktops/kde-4.10/kdeartwork/HighResolutionWallpapers.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs }:
-
-kde rec {
-  name = "kde-wallpapers-high-resolution";
-
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "KDE wallpapers in high resolution";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeartwork/IconThemes.nix b/pkgs/desktops/kde-4.10/kdeartwork/IconThemes.nix
deleted file mode 100644
index 43071e8bd142..000000000000
--- a/pkgs/desktops/kde-4.10/kdeartwork/IconThemes.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  name = "kdeartwork-icon-themes";
-
-  # Sources contain primary and kdeclassic as well but they're not installed
-
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "KDE nuvola and mono icon themes";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeartwork/WeatherWallpapers.nix b/pkgs/desktops/kde-4.10/kdeartwork/WeatherWallpapers.nix
deleted file mode 100644
index 947e5e17ab0c..000000000000
--- a/pkgs/desktops/kde-4.10/kdeartwork/WeatherWallpapers.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs }:
-
-kde rec {
-  name = "kde-weather-wallpapers";
-
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Additional KDE wallpapers (weather)";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeartwork/desktopthemes.nix b/pkgs/desktops/kde-4.10/kdeartwork/desktopthemes.nix
deleted file mode 100644
index 93dd361af738..000000000000
--- a/pkgs/desktops/kde-4.10/kdeartwork/desktopthemes.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  name = "kde-desktop-themes";
-
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Additional KDE desktop themes";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeartwork/emoticons.nix b/pkgs/desktops/kde-4.10/kdeartwork/emoticons.nix
deleted file mode 100644
index 5ef9f78a7195..000000000000
--- a/pkgs/desktops/kde-4.10/kdeartwork/emoticons.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  name = "kde-emotion-icons";
-
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Additional KDE emotion icons (smiles)";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeartwork/kscreensaver.nix b/pkgs/desktops/kde-4.10/kdeartwork/kscreensaver.nix
deleted file mode 100644
index 7028b9db228d..000000000000
--- a/pkgs/desktops/kde-4.10/kdeartwork/kscreensaver.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, kdelibs, xscreensaver, kde_workspace, eigen, libkexiv2, libXt, pkgconfig }:
-
-kde {
-  buildInputs = [ kdelibs xscreensaver kde_workspace eigen libkexiv2 libXt ];
-
-  nativeBuildInputs = [ pkgconfig ];
-
-  preConfigure = "cp -v ${./FindXscreensaver.cmake} cmake/modules/FindXscreensaver.cmake";
-
-  cmakeFlags = [ "-DBUILD_asciiquarium:BOOL=ON" ];
-
-  meta = {
-    description = "KDE screensavers";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeartwork/kwin-styles.nix b/pkgs/desktops/kde-4.10/kdeartwork/kwin-styles.nix
deleted file mode 100644
index b5d769b216db..000000000000
--- a/pkgs/desktops/kde-4.10/kdeartwork/kwin-styles.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs, kde_workspace }:
-
-kde {
-  buildInputs = [ kdelibs kde_workspace ];
-
-  meta = {
-    description = "Styles for KWin";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeartwork/sounds.nix b/pkgs/desktops/kde-4.10/kdeartwork/sounds.nix
deleted file mode 100644
index e98705da889e..000000000000
--- a/pkgs/desktops/kde-4.10/kdeartwork/sounds.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs }:
-
-kde rec {
-  name = "kde-sounds";
-
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "New login/logout sounds";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeartwork/styles.nix b/pkgs/desktops/kde-4.10/kdeartwork/styles.nix
deleted file mode 100644
index 6a1306c37100..000000000000
--- a/pkgs/desktops/kde-4.10/kdeartwork/styles.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs }:
-
-kde rec {
-  name = "kde-style-phase";
-
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Phase, a widget style for KDE";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeartwork/wallpapers.nix b/pkgs/desktops/kde-4.10/kdeartwork/wallpapers.nix
deleted file mode 100644
index 7c9846fbf9e8..000000000000
--- a/pkgs/desktops/kde-4.10/kdeartwork/wallpapers.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs }:
-
-kde rec {
-  name = "kdeartwork-wallpapers";
-
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Additional KDE wallpapers";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdebindings/perlqt.nix b/pkgs/desktops/kde-4.10/kdebindings/perlqt.nix
deleted file mode 100644
index 689223e31486..000000000000
--- a/pkgs/desktops/kde-4.10/kdebindings/perlqt.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, cmake, smokeqt, perl }:
-
-kde {
-#todo: qscintilla2, qwt5
-  buildInputs = [ smokeqt perl ];
-  nativeBuildInputs = [ cmake ];
-
-  meta = {
-    description = "Perl bindings for Qt library";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdebindings/pykde4-hardcode-lib-python.patch b/pkgs/desktops/kde-4.10/kdebindings/pykde4-hardcode-lib-python.patch
deleted file mode 100644
index e7a7cb4c661c..000000000000
--- a/pkgs/desktops/kde-4.10/kdebindings/pykde4-hardcode-lib-python.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/kpythonpluginfactory/CMakeLists.txt b/kpythonpluginfactory/CMakeLists.txt
-index 41fa0fe..642d867 100644
---- a/kpythonpluginfactory/CMakeLists.txt
-+++ b/kpythonpluginfactory/CMakeLists.txt
-@@ -3,7 +3,12 @@
- set(kpythonpluginfactory_SRCS
-     kpythonpluginfactory.cpp)
- 
--GET_FILENAME_COMPONENT(LIB_PYTHON ${PYTHON_LIBRARY} NAME)
-+option(HARDCODE_LIB_PYTHON_PATH "Whether the path to libpython.so should be hardcoded" OFF)
-+if(HARDCODE_LIB_PYTHON_PATH)
-+	get_filename_component(LIB_PYTHON ${PYTHON_LIBRARY} REALPATH)
-+else(HARDCODE_LIB_PYTHON_PATH)
-+    get_filename_component(LIB_PYTHON ${PYTHON_LIBRARY} NAME)
-+endif(HARDCODE_LIB_PYTHON_PATH)
- ADD_DEFINITIONS(-DLIB_PYTHON=\\"${LIB_PYTHON}\\")
- ADD_DEFINITIONS(-DKDE_DEFAULT_DEBUG_AREA=15000)
- 
diff --git a/pkgs/desktops/kde-4.10/kdebindings/pykde4.nix b/pkgs/desktops/kde-4.10/kdebindings/pykde4.nix
deleted file mode 100644
index 7f6973c054bb..000000000000
--- a/pkgs/desktops/kde-4.10/kdebindings/pykde4.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ kde, kdelibs, python, sip, pyqt4, kdepimlibs, shared_desktop_ontologies,
-  polkit_qt_1, boost, lndir, pkgconfig }:
-
-let pydir = "lib/python${python.majorVersion}"; in
-
-kde {
-
-  # todo: polkit isn't found by the build system
-
-  buildInputs = [
-    python kdepimlibs shared_desktop_ontologies
-    boost polkit_qt_1 pkgconfig
-  ];
-
-  propagatedBuildInputs = [ pyqt4 sip ];
-
-#  patches = [ ./pykde4-hardcode-lib-python.patch ];
-#  cmakeFlags = "-DHARDCODE_LIB_PYTHON_PATH=ON ";
-
-  preConfigure =
-    ''
-      # Symlink PyQt into PyKDE.  This is necessary because PyQt looks
-      # in its PyQt4/uic/widget-plugins directory for plugins, and KDE
-      # needs to install a plugin.
-      mkdir -pv $out/${pydir}
-      ${lndir}/bin/lndir ${pyqt4}/${pydir} $out/${pydir}
-      cmakeFlagsArray=( "-DSIP_DEFAULT_SIP_DIR=$prefix/share/sip" )
-    '';
-
-  meta = {
-    description = "Python bindings for KDE";
-    kde.name = "pykde4";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdebindings/qtruby-install-prefix.patch b/pkgs/desktops/kde-4.10/kdebindings/qtruby-install-prefix.patch
deleted file mode 100644
index bd95a0d8bd3d..000000000000
--- a/pkgs/desktops/kde-4.10/kdebindings/qtruby-install-prefix.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 33078b4..30aec0e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -31,8 +31,8 @@ if (NOT COMPILE_RUBY)
-     return()
- endif (NOT COMPILE_RUBY)
- 
--SET(CUSTOM_RUBY_SITE_ARCH_DIR ${RUBY_SITEARCH_DIR} CACHE DIR "custom installation directory for ruby binary extension" )
--SET(CUSTOM_RUBY_SITE_LIB_DIR ${RUBY_SITELIB_DIR} CACHE DIR "custom installation directory for ruby extension" )
-+string(REPLACE "${RUBY_ROOT_DIR}" "${CMAKE_INSTALL_PREFIX}" CUSTOM_RUBY_SITE_ARCH_DIR ${RUBY_SITEARCH_DIR})
-+string(REPLACE "${RUBY_ROOT_DIR}" "${CMAKE_INSTALL_PREFIX}" CUSTOM_RUBY_SITE_LIB_DIR ${RUBY_SITELIB_DIR})
- 
- # compute an overall version number which can be compared at once
- MATH(EXPR RUBY_VERSION_NUMBER "${RUBY_VERSION_MAJOR}*10000 + ${RUBY_VERSION_MINOR}*100 + ${RUBY_VERSION_PATCH}")
diff --git a/pkgs/desktops/kde-4.10/kdebindings/qtruby.nix b/pkgs/desktops/kde-4.10/kdebindings/qtruby.nix
deleted file mode 100644
index 18a3703426c9..000000000000
--- a/pkgs/desktops/kde-4.10/kdebindings/qtruby.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake, smokeqt, ruby }:
-
-kde {
-#todo: scintilla2, qwt5
-  buildInputs = [ smokeqt ruby ];
-  nativeBuildInputs = [ cmake ];
-
-  patches = [ ./qtruby-install-prefix.patch ];
-
-  cmakeFlags="-DRUBY_ROOT_DIR=${ruby}";
-
-  meta = {
-    description = "Ruby bindings for Qt library";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdebindings/smokegen-CMakeLists.txt-nix.patch b/pkgs/desktops/kde-4.10/kdebindings/smokegen-CMakeLists.txt-nix.patch
deleted file mode 100644
index 33ec3df6452d..000000000000
--- a/pkgs/desktops/kde-4.10/kdebindings/smokegen-CMakeLists.txt-nix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- smokegen-4.10.5.orig/CMakeLists.txt 2013-06-28 17:14:50.000000000 +0000
-+++ smokegen-4.10.5/CMakeLists.txt      2013-07-31 19:15:17.000000000 +0000
-@@ -36,6 +36,10 @@
- set (CMAKE_SKIP_BUILD_RPATH FALSE)
- set (CMAKE_SKIP_RPATH FALSE)
-
-+# add the automatically determined parts of the RPATH
-+# which point to directories outside the build tree to the install RPATH
-+SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
-+
- configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/config.h.in config.h @ONLY )
-
- add_executable(smokegen ${generator_SRC})
-
diff --git a/pkgs/desktops/kde-4.10/kdebindings/smokegen-SmokeConfig.cmake.in-nix.patch b/pkgs/desktops/kde-4.10/kdebindings/smokegen-SmokeConfig.cmake.in-nix.patch
deleted file mode 100644
index 53257e836e04..000000000000
--- a/pkgs/desktops/kde-4.10/kdebindings/smokegen-SmokeConfig.cmake.in-nix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -urN smokegen-4.10.5.orig/cmake/SmokeConfig.cmake.in smokegen-4.10.5/cmake/SmokeConfig.cmake.in
---- smokegen-4.10.5.orig/cmake/SmokeConfig.cmake.in	2013-06-28 17:14:50.000000000 +0000
-+++ smokegen-4.10.5/cmake/SmokeConfig.cmake.in	2013-07-30 21:26:33.000000000 +0000
-@@ -80,8 +80,7 @@
- set(SMOKE_API_BIN "@SMOKE_API_BIN@")
- 
- find_library(SMOKE_BASE_LIBRARY smokebase 
--              PATHS "@SMOKE_LIBRARY_PREFIX@"
--              NO_DEFAULT_PATH)
-+              PATHS "@SMOKE_LIBRARY_PREFIX@")
- 
- if (NOT SMOKE_BASE_LIBRARY)
-     if (Smoke_FIND_REQUIRED)
diff --git a/pkgs/desktops/kde-4.10/kdebindings/smokegen.nix b/pkgs/desktops/kde-4.10/kdebindings/smokegen.nix
deleted file mode 100644
index 0a3f2a85efaf..000000000000
--- a/pkgs/desktops/kde-4.10/kdebindings/smokegen.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kde, qt4, cmake }:
-
-kde {
-  buildInputs = [ qt4 ];
-  nativeBuildInputs = [ cmake ];
-
-  patches = [ ./smokegen-SmokeConfig.cmake.in-nix.patch ./smokegen-CMakeLists.txt-nix.patch ];
-
-  meta = {
-    description = "C++ parser used to generate language bindings for Qt/KDE";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdebindings/smokekde.nix b/pkgs/desktops/kde-4.10/kdebindings/smokekde.nix
deleted file mode 100644
index d129686b2de1..000000000000
--- a/pkgs/desktops/kde-4.10/kdebindings/smokekde.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ kde, cmake, smokeqt, kdelibs, akonadi, kdepimlibs, okular
-, shared_desktop_ontologies, attica }:
-
-kde {
-  # attica, akonadi and kdepimlibs are disabled due to smokegen crash
-  # okular is disabled because the code generated is broken
-  buildInputs = [
-    smokeqt kdelibs shared_desktop_ontologies
-  ];
-  nativeBuildInputs = [ cmake ];
-
-  cmakeFlags = "-DQTDEFINES_FILE=${smokeqt}/share/smokegen/qtdefines";
-  meta = {
-    description = "SMOKE bindings for kdelibs";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdebindings/smokeqt.nix b/pkgs/desktops/kde-4.10/kdebindings/smokeqt.nix
deleted file mode 100644
index e95b686aee20..000000000000
--- a/pkgs/desktops/kde-4.10/kdebindings/smokeqt.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kde, qt4, cmake, phonon, qimageblitz, smokegen }:
-
-kde {
-#todo: Qwt5, QScintilla2
-  propagatedBuildInputs = [ qt4 phonon qimageblitz ];
-  nativeBuildInputs = [ cmake ];
-  propagatedNativeBuildInputs = [ smokegen ];
-
-  meta = {
-    description = "C++ parser used to generate language bindings for Qt/KDE";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/analitza.nix b/pkgs/desktops/kde-4.10/kdeedu/analitza.nix
deleted file mode 100644
index 74c3a1ebb200..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/analitza.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ kde, kdelibs, readline }:
-kde {
-  buildInputs = [ kdelibs readline ];
-
-  meta = {
-    description = "Library part of KAlgebra";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/blinken.nix b/pkgs/desktops/kde-4.10/kdeedu/blinken.nix
deleted file mode 100644
index cdf9728833c2..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/blinken.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ kde, kdelibs }:
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Memory Enhancement Game";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/cantor.nix b/pkgs/desktops/kde-4.10/kdeedu/cantor.nix
deleted file mode 100644
index 4563012ac67a..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/cantor.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs, libspectre, analitza, R, pkgconfig, gfortran, libqalculate }:
-kde {
-
-  buildInputs = [ kdelibs libspectre analitza R gfortran libqalculate];
-
-  nativeBuildInputs = [ pkgconfig ];
-
-  meta = {
-    description = "KDE Frontend to Mathematical Software";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kalgebra.nix b/pkgs/desktops/kde-4.10/kdeedu/kalgebra.nix
deleted file mode 100644
index 3675c3a225f4..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/kalgebra.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ kde, kdelibs, libkdeedu, analitza }:
-kde {
-  buildInputs = [ kdelibs libkdeedu analitza ];
-
-  meta = {
-    description = "2D and 3D Graph Calculator";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kalzium.nix b/pkgs/desktops/kde-4.10/kdeedu/kalzium.nix
deleted file mode 100644
index 78fa8119583e..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/kalzium.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs, facile, ocaml, eigen, openbabel, avogadro, pkgconfig }:
-kde {
-#todo:chemical mime data
-  buildInputs = [ kdelibs facile ocaml eigen openbabel avogadro ];
-
-  nativeBuildInputs = [ pkgconfig ];
-
-  meta = {
-    description = "Periodic Table of Elements";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kanagram.nix b/pkgs/desktops/kde-4.10/kdeedu/kanagram.nix
deleted file mode 100644
index 8759c96d78c4..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/kanagram.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ kde, kdelibs, libkdeedu }:
-kde {
-  buildInputs = [ kdelibs libkdeedu ];
-
-  meta = {
-    description = "Letter Order Game";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kbruch.nix b/pkgs/desktops/kde-4.10/kdeedu/kbruch.nix
deleted file mode 100644
index dc50f1e85a37..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/kbruch.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ kde, kdelibs }:
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Practice Fractions";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kgeography.nix b/pkgs/desktops/kde-4.10/kdeedu/kgeography.nix
deleted file mode 100644
index bd8d27c8d6e2..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/kgeography.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ kde, kdelibs }:
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Geography Trainer";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/khangman.nix b/pkgs/desktops/kde-4.10/kdeedu/khangman.nix
deleted file mode 100644
index 997b50e906a2..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/khangman.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ kde, kdelibs, libkdeedu }:
-kde {
-  buildInputs = [ kdelibs libkdeedu ];
-
-  meta = {
-    description = "KDE hangman game";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kig.nix b/pkgs/desktops/kde-4.10/kdeedu/kig.nix
deleted file mode 100644
index bd5ef67529cc..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/kig.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ kde, kdelibs, boost, python}:
-kde {
-  buildInputs = [ kdelibs boost python ];
-
-  cmakeFlags = ''
-    -DBOOST_PYTHON_INCLUDES:PATH=${boost}/include;${python}/include/${python.libPrefix}
-    -DBOOST_PYTHON_LIBS=boost_python;${python.libPrefix} -DKIG_ENABLE_PYTHON_SCRIPTING=1
-    '';
-  meta = {
-    description = "KDE Interactive Geometry";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kiten.nix b/pkgs/desktops/kde-4.10/kdeedu/kiten.nix
deleted file mode 100644
index 939b7a9f77a2..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/kiten.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Japanese Reference/Study Tool";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/klettres.nix b/pkgs/desktops/kde-4.10/kdeedu/klettres.nix
deleted file mode 100644
index 7a0fa83078e3..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/klettres.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "A KDE alphabet tutorial";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kmplot.nix b/pkgs/desktops/kde-4.10/kdeedu/kmplot.nix
deleted file mode 100644
index 18458cf6f0bf..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/kmplot.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "A KDE mathematical function plotter";
-    kde = {
-      name = "kmplot";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kstars.nix b/pkgs/desktops/kde-4.10/kdeedu/kstars.nix
deleted file mode 100644
index ce0a13b969df..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/kstars.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs, eigen, xplanet, indilib }:
-
-kde {
-#todo:wcslib
-  buildInputs = [ kdelibs eigen xplanet indilib ];
-
-  meta = {
-    description = "A KDE graphical desktop planetarium";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/ktouch.nix b/pkgs/desktops/kde-4.10/kdeedu/ktouch.nix
deleted file mode 100644
index 9e606adde336..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/ktouch.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs, libxkbfile }:
-
-kde {
-  buildInputs = [ kdelibs libxkbfile ];
-
-  meta = {
-    description = "Touch Typing Tutor";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kturtle.nix b/pkgs/desktops/kde-4.10/kdeedu/kturtle.nix
deleted file mode 100644
index 1e1922b1410d..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/kturtle.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Educational Programming Environment";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/kwordquiz.nix b/pkgs/desktops/kde-4.10/kdeedu/kwordquiz.nix
deleted file mode 100644
index 1b33ba2e469f..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/kwordquiz.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs, libkdeedu }:
-
-kde {
-  buildInputs = [ kdelibs libkdeedu ];
-
-  meta = {
-    description = "Flash Card Trainer";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/libkdeedu.nix b/pkgs/desktops/kde-4.10/kdeedu/libkdeedu.nix
deleted file mode 100644
index def6c85fefe2..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/libkdeedu.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ kde, kdelibs }:
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Libraries used by KDE Education applications";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/marble.nix b/pkgs/desktops/kde-4.10/kdeedu/marble.nix
deleted file mode 100644
index 4f73472f6314..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/marble.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs, gpsd }:
-
-kde {
-#todo: package QextSerialPort, libshp(shapelib), QtMobility, QtLocation, libwlocate
-  buildInputs = [ kdelibs gpsd ];
-
-  meta = {
-    description = "Marble Virtual Globe";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/pairs.nix b/pkgs/desktops/kde-4.10/kdeedu/pairs.nix
deleted file mode 100644
index 36c4aba9604b..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/pairs.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "A memory and pairs game";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/parley.nix b/pkgs/desktops/kde-4.10/kdeedu/parley.nix
deleted file mode 100644
index f9f86dde150d..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/parley.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs, libkdeedu, attica }:
-
-kde {
-  buildInputs = [ kdelibs libkdeedu attica ];
-
-  meta = {
-    description = "Vocabulary Trainer";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/rocs.nix b/pkgs/desktops/kde-4.10/kdeedu/rocs.nix
deleted file mode 100644
index 91976b840011..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/rocs.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ kde, kdelibs, boost }:
-
-kde {
-  buildInputs = [ kdelibs (boost.override { enableExceptions = true; }) ];
-
-  NIX_CFLAGS_COMPILE = "-fexceptions";
-
-  meta = {
-    description = "A KDE graph theory viewer";
-    kde = {
-      name = "rocs";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeedu/step.nix b/pkgs/desktops/kde-4.10/kdeedu/step.nix
deleted file mode 100644
index fac9974baf18..000000000000
--- a/pkgs/desktops/kde-4.10/kdeedu/step.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ kde, kdelibs, gsl, libqalculate, eigen }:
-
-kde {
-  buildInputs = [ kdelibs gsl libqalculate eigen ];
-
-  meta = {
-    description = "A KDE interactive physical simulator";
-    kde = {
-      name = "step";
-    };
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/bomber.nix b/pkgs/desktops/kde-4.10/kdegames/bomber.nix
deleted file mode 100644
index 026227910f21..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/bomber.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a single player arcade game. The player is invading various cities in a plane that is decreasing in height";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/bovo.nix b/pkgs/desktops/kde-4.10/kdegames/bovo.nix
deleted file mode 100644
index b0e7d99c589f..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/bovo.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a Gomoku (from Japanese 五目並べ - lit. \"five points\") like game for two players, where the opponents alternate in placing their respective pictogram on the game board";
-  };
-
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/granatier.nix b/pkgs/desktops/kde-4.10/kdegames/granatier.nix
deleted file mode 100644
index 9f1ab0053099..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/granatier.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a clone of the classic Bomberman game, inspired by the work of the Clanbomber clone";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kajongg.nix b/pkgs/desktops/kde-4.10/kdegames/kajongg.nix
deleted file mode 100644
index 9a6f5e836955..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kajongg.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kde, kdelibs, libkdegames, pythonPackages, sqlite,  pykde4 }:
-kde rec {
-
-  buildInputs = [ kdelibs libkdegames pythonPackages.python pythonPackages.wrapPython sqlite ] ++ pythonPath;
-
-  pythonPath = [ pythonPackages.twisted pykde4 ];
-
-  postInstall = "wrapPythonPrograms";
-
-  meta = {
-    description = "an ancient Chinese board game for 4 players";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kapman.nix b/pkgs/desktops/kde-4.10/kdegames/kapman.nix
deleted file mode 100644
index f10e099da3cc..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kapman.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a clone of the well known game Pac-Man";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/katomic.nix b/pkgs/desktops/kde-4.10/kdegames/katomic.nix
deleted file mode 100644
index a9936c04f0ea..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/katomic.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a fun and educational puzzle game built around molecular geometry";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kblackbox.nix b/pkgs/desktops/kde-4.10/kdegames/kblackbox.nix
deleted file mode 100644
index 27eeff2f65bb..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kblackbox.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a game of hide and seek played on an grid of boxes, where the player shoots rays into the grid to deduce the positions of hidden objects";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kblocks.nix b/pkgs/desktops/kde-4.10/kdegames/kblocks.nix
deleted file mode 100644
index 98cf068de09a..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kblocks.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a classic single player falling blocks puzzle game";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kbounce.nix b/pkgs/desktops/kde-4.10/kdegames/kbounce.nix
deleted file mode 100644
index 77fa0db63529..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kbounce.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a single player arcade game with the elements of puzzle";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kbreakout.nix b/pkgs/desktops/kde-4.10/kdegames/kbreakout.nix
deleted file mode 100644
index 3a484d919bbb..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kbreakout.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a Breakout-like game. Its object is to destroy as many bricks as possible without losing the ball";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kdiamond.nix b/pkgs/desktops/kde-4.10/kdegames/kdiamond.nix
deleted file mode 100644
index 06dfcee5ac39..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kdiamond.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a single player puzzle game. The object of the game is to build lines of three similar diamonds";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kfourinline.nix b/pkgs/desktops/kde-4.10/kdegames/kfourinline.nix
deleted file mode 100644
index 11b8838e7082..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kfourinline.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a board game for two players based on the Connect-Four game";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kgoldrunner.nix b/pkgs/desktops/kde-4.10/kdegames/kgoldrunner.nix
deleted file mode 100644
index 6217c47a8065..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kgoldrunner.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "an action game where the hero runs through a maze, climbs stairs, dig holes and dodges enemies in order to collect all the gold nuggets and escape to the next level";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kigo.nix b/pkgs/desktops/kde-4.10/kdegames/kigo.nix
deleted file mode 100644
index 32eee67cc1e0..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kigo.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "an open-source implementation of the popular Go game";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/killbots.nix b/pkgs/desktops/kde-4.10/kdegames/killbots.nix
deleted file mode 100644
index d9c1472495e7..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/killbots.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a simple game of evading killer robots";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kiriki.nix b/pkgs/desktops/kde-4.10/kdegames/kiriki.nix
deleted file mode 100644
index 72f7ab67501b..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kiriki.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "an addictive and fun dice game, designed to be played by as many as six players";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kjumpingcube.nix b/pkgs/desktops/kde-4.10/kdegames/kjumpingcube.nix
deleted file mode 100644
index a6d22cff51c3..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kjumpingcube.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a simple dice driven tactical game";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/klickety.nix b/pkgs/desktops/kde-4.10/kdegames/klickety.nix
deleted file mode 100644
index b592bc40641f..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/klickety.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a puzzle game where the player removes groups of colored marbles to clear the board";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/klines.nix b/pkgs/desktops/kde-4.10/kdegames/klines.nix
deleted file mode 100644
index 90952fe91c07..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/klines.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a simple but highly addictive one player game. The player has to move the colored balls around the game board, gathering them into the lines of the same color by five";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kmahjongg.nix b/pkgs/desktops/kde-4.10/kdegames/kmahjongg.nix
deleted file mode 100644
index 946b531ff127..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kmahjongg.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames, libkmahjongg }:
-kde {
-  buildInputs = [ kdelibs libkdegames libkmahjongg ];
-  meta = {
-    description = "the tiles are scrambled and staked on top of each other to resemble a certain shape. The player is then expected to remove all the tiles off the game board by locating each tile's matching pair";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kmines.nix b/pkgs/desktops/kde-4.10/kdegames/kmines.nix
deleted file mode 100644
index 538454e95984..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kmines.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a classic Minesweeper game";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/knavalbattle.nix b/pkgs/desktops/kde-4.10/kdegames/knavalbattle.nix
deleted file mode 100644
index 42ffd2fcb4d5..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/knavalbattle.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a Battle Ship game";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/knetwalk.nix b/pkgs/desktops/kde-4.10/kdegames/knetwalk.nix
deleted file mode 100644
index a16e578ce848..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/knetwalk.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a small game where you have to build up a computer network by rotating the wires to connect the terminals to the server";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kolf.nix b/pkgs/desktops/kde-4.10/kdegames/kolf.nix
deleted file mode 100644
index 78815ee57996..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kolf.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a miniature golf game";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kollision.nix b/pkgs/desktops/kde-4.10/kdegames/kollision.nix
deleted file mode 100644
index 3147c7305ea0..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kollision.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a simple ball dodging game";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/konquest.nix b/pkgs/desktops/kde-4.10/kdegames/konquest.nix
deleted file mode 100644
index 53ddd64928cc..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/konquest.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "the KDE version of Gnu-Lactic Konquest";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kpat.nix b/pkgs/desktops/kde-4.10/kdegames/kpat.nix
deleted file mode 100644
index f8d9bad36dc5..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kpat.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a relaxing card sorting game";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kreversi.nix b/pkgs/desktops/kde-4.10/kdegames/kreversi.nix
deleted file mode 100644
index 2aed981428e1..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kreversi.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a simple one player strategy game played against the computer. If a player's piece is captured by an opposing player, that piece is turned over to reveal the color of that player";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kshisen.nix b/pkgs/desktops/kde-4.10/kdegames/kshisen.nix
deleted file mode 100644
index 9c8880340388..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kshisen.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames, libkmahjongg }:
-kde {
-  buildInputs = [ kdelibs libkdegames libkmahjongg ];
-  meta = {
-    description = "a solitaire-like game played using the standard set of Mahjong tiles";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/ksirk.nix b/pkgs/desktops/kde-4.10/kdegames/ksirk.nix
deleted file mode 100644
index 767eb67971a8..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/ksirk.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames, qca2 }:
-kde {
-  buildInputs = [ kdelibs libkdegames qca2 ];
-  meta = {
-    description = "a computerized version of the well known strategic board game Risk";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/ksnakeduel.nix b/pkgs/desktops/kde-4.10/kdegames/ksnakeduel.nix
deleted file mode 100644
index ccf1fb551e9a..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/ksnakeduel.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a simple Tron-Clone";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kspaceduel.nix b/pkgs/desktops/kde-4.10/kdegames/kspaceduel.nix
deleted file mode 100644
index 5285f7916cad..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kspaceduel.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "each of two possible players control a satellite spaceship orbiting the sun. As the game progresses players have to eliminate the opponent's spacecraft with bullets or mines";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/ksquares.nix b/pkgs/desktops/kde-4.10/kdegames/ksquares.nix
deleted file mode 100644
index a17be2da6325..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/ksquares.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a game modeled after the well known pen and paper based game of Dots and Boxes";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/ksudoku.nix b/pkgs/desktops/kde-4.10/kdegames/ksudoku.nix
deleted file mode 100644
index ea4e13a5e4f3..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/ksudoku.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a logic-based symbol placement puzzle";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/ktuberling.nix b/pkgs/desktops/kde-4.10/kdegames/ktuberling.nix
deleted file mode 100644
index 1a6ba9d653c2..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/ktuberling.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a simple constructor game suitable for children and adults alike";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/kubrick.nix b/pkgs/desktops/kde-4.10/kdegames/kubrick.nix
deleted file mode 100644
index 9bdc6879db4b..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/kubrick.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a game based on the Rubik's Cube™ puzzle";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/libkdegames.nix b/pkgs/desktops/kde-4.10/kdegames/libkdegames.nix
deleted file mode 100644
index 3819dcdc9ae2..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/libkdegames.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, openal, libsndfile }:
-kde {
-  buildInputs = [ kdelibs openal libsndfile ];
-  meta = {
-    description = "KDE games library";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/libkmahjongg.nix b/pkgs/desktops/kde-4.10/kdegames/libkmahjongg.nix
deleted file mode 100644
index 383b347dc330..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/libkmahjongg.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a library for KMahjongg game";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/lskat.nix b/pkgs/desktops/kde-4.10/kdegames/lskat.nix
deleted file mode 100644
index 2a5050cd6676..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/lskat.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a fun and engaging card game for two players, where the second player is either live opponent, or a built in artificial intelligence";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/palapeli.nix b/pkgs/desktops/kde-4.10/kdegames/palapeli.nix
deleted file mode 100644
index 555ffe43c451..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/palapeli.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-#todo:package qvoronoi
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a single-player jigsaw puzzle game";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegames/picmi.nix b/pkgs/desktops/kde-4.10/kdegames/picmi.nix
deleted file mode 100644
index 165d7422f95b..000000000000
--- a/pkgs/desktops/kde-4.10/kdegames/picmi.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkdegames }:
-kde {
-  buildInputs = [ kdelibs libkdegames ];
-  meta = {
-    description = "a single player logic-based puzzle game";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/gwenview.nix b/pkgs/desktops/kde-4.10/kdegraphics/gwenview.nix
deleted file mode 100644
index 00910ab9d466..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/gwenview.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, kdelibs, exiv2, shared_desktop_ontologies, kde_baseapps, libkipi
-, libjpeg, libtiff, pkgconfig, kactivities, lcms2 }:
-
-kde {
-
-  buildInputs =
-    [ kdelibs exiv2 shared_desktop_ontologies kactivities kde_baseapps libkipi libjpeg lcms2 ];
-
-  nativeBuildInputs = [ pkgconfig ];
-
-  meta = {
-    description = "Gwenview, the KDE image viewer";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/kamera.nix b/pkgs/desktops/kde-4.10/kdegraphics/kamera.nix
deleted file mode 100644
index 70904b17c232..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/kamera.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs, libgphoto2 }:
-
-kde {
-  buildInputs = [ kdelibs libgphoto2 ];
-
-  meta = {
-    description = "KDE camera interface library";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/kcolorchooser.nix b/pkgs/desktops/kde-4.10/kdegraphics/kcolorchooser.nix
deleted file mode 100644
index 58528cb186bb..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/kcolorchooser.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "A small utility to select a color";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-mobipocket.nix b/pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-mobipocket.nix
deleted file mode 100644
index 2c2ba3796a2c..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-mobipocket.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs, okular }:
-
-kde {
-  buildInputs = [ kdelibs okular ];
-
-  meta = {
-    description = "A collection of plugins to handle mobipocket files";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-strigi-analyzer.nix b/pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-strigi-analyzer.nix
deleted file mode 100644
index 35af39aa611d..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-strigi-analyzer.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs, libtiff }:
-
-kde {
-  buildInputs = [ kdelibs libtiff ];
-
-  meta = {
-    description = "Strigi analyzers for various graphics file formats";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-thumbnailers.nix b/pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-thumbnailers.nix
deleted file mode 100644
index 55bf8309b2a9..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/kdegraphics-thumbnailers.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs, libkexiv2, libkdcraw }:
-
-kde {
-  buildInputs = [ kdelibs libkexiv2 libkdcraw ];
-
-  meta = {
-    description = "Thumbnailers for various graphics file formats";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/kgamma.nix b/pkgs/desktops/kde-4.10/kdegraphics/kgamma.nix
deleted file mode 100644
index 28d9252187e0..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/kgamma.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs, libXxf86vm }:
-
-kde {
-  buildInputs = [ kdelibs libXxf86vm ];
-
-  meta = {
-    description = "KDE monitor calibration tool";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/kolourpaint.nix b/pkgs/desktops/kde-4.10/kdegraphics/kolourpaint.nix
deleted file mode 100644
index 5276ec09f462..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/kolourpaint.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs, qimageblitz }:
-
-kde {
-  buildInputs = [ kdelibs qimageblitz ];
-
-  meta = {
-    description = "KDE paint program";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/kruler.nix b/pkgs/desktops/kde-4.10/kdegraphics/kruler.nix
deleted file mode 100644
index c5c2c6e05d7c..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/kruler.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "KDE screen ruler";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/ksaneplugin.nix b/pkgs/desktops/kde-4.10/kdegraphics/ksaneplugin.nix
deleted file mode 100644
index 1381ed7dd266..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/ksaneplugin.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs, libksane }:
-
-kde {
-  buildInputs = [ kdelibs libksane ];
-
-  meta = {
-    description = "A KScan plugin that implements the scanning through libksane";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/ksnapshot.nix b/pkgs/desktops/kde-4.10/kdegraphics/ksnapshot.nix
deleted file mode 100644
index f01a609e20de..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/ksnapshot.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs, libkipi }:
-
-kde {
-  buildInputs = [ kdelibs libkipi ];
-
-  meta = {
-    description = "KDE screenshot utility";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/libkdcraw.nix b/pkgs/desktops/kde-4.10/kdegraphics/libkdcraw.nix
deleted file mode 100644
index e8790205caea..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/libkdcraw.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs, libjpeg, lcms1, jasper }:
-
-kde {
-  buildInputs = [ kdelibs libjpeg lcms1 jasper ];
-
-  meta = {
-    description = "Library for decoding RAW images";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/libkexiv2.nix b/pkgs/desktops/kde-4.10/kdegraphics/libkexiv2.nix
deleted file mode 100644
index 096b0a6e957b..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/libkexiv2.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs, exiv2 }:
-
-kde {
-  buildInputs = [ kdelibs exiv2 ];
-
-  meta = {
-    description = "Exiv2 support library";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/libkipi.nix b/pkgs/desktops/kde-4.10/kdegraphics/libkipi.nix
deleted file mode 100644
index 6b16265e7a3e..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/libkipi.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Interface library to kipi-plugins";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/libksane.nix b/pkgs/desktops/kde-4.10/kdegraphics/libksane.nix
deleted file mode 100644
index b539eab38992..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/libksane.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs, saneBackends }:
-
-kde {
-  buildInputs = [ kdelibs saneBackends ];
-
-  meta = {
-    description = "An image scanning library that provides a QWidget that contains all the logic needed to interface a sacanner";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/okular.nix b/pkgs/desktops/kde-4.10/kdegraphics/okular.nix
deleted file mode 100644
index efc1e8f07429..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/okular.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ chmlib, djvulibre, ebook_tools, kde, kdelibs, libspectre, popplerQt4, qca2
-, qimageblitz, libtiff, kactivities, pkgconfig }:
-
-kde {
-
-  #todo: package activeapp
-
-  buildInputs =
-    [ chmlib djvulibre ebook_tools kdelibs libspectre popplerQt4 qca2 qimageblitz libtiff kactivities ];
-
-  nativeBuildInputs = [ pkgconfig ];
-
-  meta = {
-    description = "Okular, the KDE document viewer";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdegraphics/svgpart.nix b/pkgs/desktops/kde-4.10/kdegraphics/svgpart.nix
deleted file mode 100644
index a344cc4b4b46..000000000000
--- a/pkgs/desktops/kde-4.10/kdegraphics/svgpart.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "SVG KPart";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdelibs/kdelibs.nix b/pkgs/desktops/kde-4.10/kdelibs/kdelibs.nix
deleted file mode 100644
index 4386317309fd..000000000000
--- a/pkgs/desktops/kde-4.10/kdelibs/kdelibs.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ kde, gcc, cmake, perl
-, qt4, bzip2, pcre, fam, libxml2, libxslt, shared_mime_info, giflib, jasper
-, openexr, avahi, kerberos, attr, shared_desktop_ontologies, libXScrnSaver
-, automoc4, strigi, soprano, qca2, attica, enchant, libdbusmenu_qt, grantlee
-, docbook_xml_dtd_42, docbook_xsl, polkit_qt_1
-, getopt, udev, herqq, phonon, libjpeg, xz, ilmbase
-, pkgconfig
-}:
-
-kde {
-  buildInputs =
-    [ pkgconfig attica avahi bzip2 enchant fam giflib grantlee herqq jasper
-      libdbusmenu_qt libXScrnSaver libxslt polkit_qt_1 qca2
-      shared_desktop_ontologies xz udev libjpeg kerberos openexr
-    ];
-
-  NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
-
-  propagatedBuildInputs = [ qt4 soprano strigi phonon ];
-
-  propagatedNativeBuildInputs = [ automoc4 cmake perl shared_mime_info ];
-
-  # TODO: make sonnet plugins (dictionaries) really work.
-  # There are a few hardcoded paths.
-  # Split plugins from libs?
-
-  patches = [ ../files/polkit-install.patch ];
-
-  # cmake fails to find acl.h because of C++-style comment
-
-  cmakeFlags = [
-    "-DDOCBOOKXML_CURRENTDTD_DIR=${docbook_xml_dtd_42}/xml/dtd/docbook"
-    "-DDOCBOOKXSL_DIR=${docbook_xsl}/xml/xsl/docbook"
-    "-DHUPNP_ENABLED=ON"
-  ];
-
-  passthru.wantsUdisks2 = false;
-
-  meta = {
-    description = "KDE libraries";
-    license = "LGPL";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdelibs/nepomuk-core.nix b/pkgs/desktops/kde-4.10/kdelibs/nepomuk-core.nix
deleted file mode 100644
index cd6f3a179c22..000000000000
--- a/pkgs/desktops/kde-4.10/kdelibs/nepomuk-core.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs, soprano, shared_desktop_ontologies, exiv2, ffmpeg, taglib, popplerQt4 }:
-
-kde {
-
-  buildInputs = [ kdelibs soprano shared_desktop_ontologies taglib exiv2 ffmpeg popplerQt4 ];
-
-  meta = {
-    description = "NEPOMUK core";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdelibs/nepomuk-widgets.nix b/pkgs/desktops/kde-4.10/kdelibs/nepomuk-widgets.nix
deleted file mode 100644
index 0d29a4f97de5..000000000000
--- a/pkgs/desktops/kde-4.10/kdelibs/nepomuk-widgets.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs, nepomuk_core }:
-
-kde {
-
-  buildInputs = [ kdelibs nepomuk_core ];
-
-  meta = {
-    description = "NEPOMUK Widgets";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/audiocd-kio.nix b/pkgs/desktops/kde-4.10/kdemultimedia/audiocd-kio.nix
deleted file mode 100644
index 4c56e7529dd7..000000000000
--- a/pkgs/desktops/kde-4.10/kdemultimedia/audiocd-kio.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libkcompactdisc, cdparanoia, libkcddb, libvorbis, flac, lame }:
-kde {
-  buildInputs = [ kdelibs libkcompactdisc cdparanoia libkcddb libvorbis flac lame ];
-  meta = {
-    description = "transparent audio CD access for applications using the KDE Platform";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/dragon.nix b/pkgs/desktops/kde-4.10/kdemultimedia/dragon.nix
deleted file mode 100644
index 006300742ecd..000000000000
--- a/pkgs/desktops/kde-4.10/kdemultimedia/dragon.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs }:
-kde {
-  buildInputs = [ kdelibs ];
-  meta = {
-    description = "a multimedia player with the focus on simplicity";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/ffmpegthumbs.nix b/pkgs/desktops/kde-4.10/kdemultimedia/ffmpegthumbs.nix
deleted file mode 100644
index 45f6c9abcb66..000000000000
--- a/pkgs/desktops/kde-4.10/kdemultimedia/ffmpegthumbs.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, ffmpeg }:
-kde {
-  buildInputs = [ kdelibs ffmpeg ];
-  meta = {
-    description = "a video thumbnail generator for KDE file managers like Dolphin and Konqueror";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/juk.nix b/pkgs/desktops/kde-4.10/kdemultimedia/juk.nix
deleted file mode 100644
index 7a1aab85ed72..000000000000
--- a/pkgs/desktops/kde-4.10/kdemultimedia/juk.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, taglib }:
-kde {
-  buildInputs = [ kdelibs taglib ];
-  meta = {
-    description = "an audio jukebox application";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/kmix.nix b/pkgs/desktops/kde-4.10/kdemultimedia/kmix.nix
deleted file mode 100644
index 1dd8108166f2..000000000000
--- a/pkgs/desktops/kde-4.10/kdemultimedia/kmix.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libcanberra, pulseaudio }:
-kde {
-  buildInputs = [ kdelibs libcanberra pulseaudio ];
-  meta = {
-    description = "sound mixer, an application to allow you to change the volume of your sound card";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/kscd.nix b/pkgs/desktops/kde-4.10/kdemultimedia/kscd.nix
deleted file mode 100644
index e99ae53935b9..000000000000
--- a/pkgs/desktops/kde-4.10/kdemultimedia/kscd.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs, libmusicbrainz }:
-kde {
-  buildInputs = [ kdelibs libmusicbrainz ];
-  meta = {
-    description = "KDE CD player";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/libkcddb.nix b/pkgs/desktops/kde-4.10/kdemultimedia/libkcddb.nix
deleted file mode 100644
index 720b01d1861e..000000000000
--- a/pkgs/desktops/kde-4.10/kdemultimedia/libkcddb.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ kde, kdelibs }:
-kde {
-#todo: libmusicbrainz5
-  buildInputs = [ kdelibs ];
-  meta = {
-    description = "a library used to retrieve audio CD meta data from the internet";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/libkcompactdisc.nix b/pkgs/desktops/kde-4.10/kdemultimedia/libkcompactdisc.nix
deleted file mode 100644
index 6ed08af89f33..000000000000
--- a/pkgs/desktops/kde-4.10/kdemultimedia/libkcompactdisc.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs }:
-kde {
-  buildInputs = [ kdelibs ];
-  meta = {
-    description = "KDE library for playing & ripping CDs";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdemultimedia/mplayerthumbs.nix b/pkgs/desktops/kde-4.10/kdemultimedia/mplayerthumbs.nix
deleted file mode 100644
index c88ebcc2a5a3..000000000000
--- a/pkgs/desktops/kde-4.10/kdemultimedia/mplayerthumbs.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ kde, kdelibs }:
-kde {
-  buildInputs = [ kdelibs ];
-  meta = {
-    description = "a video thumbnail generator for KDE";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/FindmsiLBC.cmake b/pkgs/desktops/kde-4.10/kdenetwork/FindmsiLBC.cmake
deleted file mode 100644
index c40b0bed3105..000000000000
--- a/pkgs/desktops/kde-4.10/kdenetwork/FindmsiLBC.cmake
+++ /dev/null
@@ -1,19 +0,0 @@
-# cmake macro to test msiLBC
-
-# Copyright (c) 2009-2010 Pali Rohár <pali.rohar@gmail.com>
-#
-# MSILBC_FOUND
-# MSILBC_LIBRARY
-
-include ( FindPackageHandleStandardArgs )
-
-if ( MSILBC_LIBRARY )
-	set ( MSILBC_FOUND true )
-	set ( msiLBC_FIND_QUIETLY true )
-else ( MSILBC_LIBRARY )
-	find_library ( MSILBC_LIBRARY NAMES msilbc
-		PATH_SUFFIXES mediastreamer/plugins)
-endif ( MSILBC_LIBRARY )
-
-find_package_handle_standard_args ( msiLBC DEFAULT_MSG MSILBC_LIBRARY )
-mark_as_advanced ( MSILBC_LIBRARY )
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/kdenetwork-filesharing.nix b/pkgs/desktops/kde-4.10/kdenetwork/kdenetwork-filesharing.nix
deleted file mode 100644
index bada0c1cb108..000000000000
--- a/pkgs/desktops/kde-4.10/kdenetwork/kdenetwork-filesharing.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-}
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/kdenetwork-strigi-analyzers.nix b/pkgs/desktops/kde-4.10/kdenetwork/kdenetwork-strigi-analyzers.nix
deleted file mode 100644
index ac28edb8dd98..000000000000
--- a/pkgs/desktops/kde-4.10/kdenetwork/kdenetwork-strigi-analyzers.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs, boost }:
-
-kde {
-  name = "strigi-analyzer-torrent";
-
-  buildInputs = [ kdelibs boost ];
-
-  #preConfigure = "mv -v kdenetwork-strigi-analyzers kfile-plugins";
-}
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/kdnssd.nix b/pkgs/desktops/kde-4.10/kdenetwork/kdnssd.nix
deleted file mode 100644
index bada0c1cb108..000000000000
--- a/pkgs/desktops/kde-4.10/kdenetwork/kdnssd.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-}
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/kget.nix b/pkgs/desktops/kde-4.10/kdenetwork/kget.nix
deleted file mode 100644
index d5f38096a427..000000000000
--- a/pkgs/desktops/kde-4.10/kdenetwork/kget.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ kde, kdelibs, libktorrent, kde_workspace, kdepimlibs, sqlite
-, shared_desktop_ontologies, kde_baseapps, gpgme, boost, libmms, qca2 }:
-
-kde {
-  buildInputs =
-    [ kdelibs libktorrent
-      kde_workspace
-      shared_desktop_ontologies
-      # kde_baseapps
-      gpgme boost libmms qca2 sqlite
-    ];
-
-  KDEDIRS = libktorrent;
-}
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/kopete-4.10.4-kopete-linphonemediaengine.patch b/pkgs/desktops/kde-4.10/kdenetwork/kopete-4.10.4-kopete-linphonemediaengine.patch
deleted file mode 100644
index ec003732344f..000000000000
--- a/pkgs/desktops/kde-4.10/kdenetwork/kopete-4.10.4-kopete-linphonemediaengine.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/kopete/protocols/jabber/googletalk/libjingle/talk/session/phone/linphonemediaengine.cc b/kopete/protocols/jabber/googletalk/libjingle/talk/session/phone/linphonemediaengine.cc
-index 88fdbd1..57c6c05 100644
---- a/kopete/protocols/jabber/googletalk/libjingle/talk/session/phone/linphonemediaengine.cc
-+++ b/kopete/protocols/jabber/googletalk/libjingle/talk/session/phone/linphonemediaengine.cc
-@@ -200,7 +200,7 @@ bool LinphoneVoiceChannel::SetSendCodecs(const std::vector<AudioCodec>& codecs)
-       LOG(LS_INFO) << "Using " << i->name << "/" << i->clockrate;
-       pt_ = i->id;
-       audio_stream_ = audio_stream_start(&av_profile, -1, "localhost", port1, i->id, 250, 0); /* -1 means that function will choose some free port */
--      port2 = rtp_session_get_local_port(audio_stream_->session);
-+      port2 = rtp_session_get_local_port(audio_stream_->ms.session);
-       first = false;
-     }
-   }
-@@ -211,7 +211,7 @@ bool LinphoneVoiceChannel::SetSendCodecs(const std::vector<AudioCodec>& codecs)
-     // working with a buggy client; let's try PCMU.
-     LOG(LS_WARNING) << "Received empty list of codces; using PCMU/8000";
-     audio_stream_ = audio_stream_start(&av_profile, -1, "localhost", port1, 0, 250, 0); /* -1 means that function will choose some free port */
--    port2 = rtp_session_get_local_port(audio_stream_->session);
-+    port2 = rtp_session_get_local_port(audio_stream_->ms.session);
-   }
- 
-   return true;
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/kopete-4.10.4-kopete-stun.patch b/pkgs/desktops/kde-4.10/kdenetwork/kopete-4.10.4-kopete-stun.patch
deleted file mode 100644
index d6aa9515b76c..000000000000
--- a/pkgs/desktops/kde-4.10/kdenetwork/kopete-4.10.4-kopete-stun.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff --git a/kopete/protocols/jabber/googletalk/libjingle/talk/p2p/base/stun.h b/kopete/protocols/jabber/googletalk/libjingle/talk/p2p/base/stun.h
---- a/kopete/protocols/jabber/googletalk/libjingle/talk/p2p/base/stun.h
-+++ b/kopete/protocols/jabber/googletalk/libjingle/talk/p2p/base/stun.h
-@@ -25,16 +25,8 @@
-  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  */
- 
--#ifndef __STUN_H__
--#define __STUN_H__
--
--// This file contains classes for dealing with the STUN and TURN protocols.
--// Both protocols use the same wire format.
--
--#include "talk/base/basictypes.h"
--#include "talk/base/bytebuffer.h"
--#include <string>
--#include <vector>
-+#ifndef STUN__HH__IN__STUNREQUEST_CYCLIC_PROBLEM_FIX
-+#define STUN__HH__IN__STUNREQUEST_CYCLIC_PROBLEM_FIX
- 
- namespace cricket {
- 
-@@ -55,6 +47,23 @@
-   STUN_DATA_INDICATION              = 0x0115
- };
- 
-+}
-+
-+#endif // STUN__HH__IN__STUNREQUEST_CYCLIC_PROBLEM_FIX
-+
-+#ifndef __STUN_H__
-+#define __STUN_H__
-+
-+// This file contains classes for dealing with the STUN and TURN protocols.
-+// Both protocols use the same wire format.
-+
-+#include "talk/base/basictypes.h"
-+#include "talk/base/bytebuffer.h"
-+#include <string>
-+#include <vector>
-+
-+namespace cricket {
-+
- // These are the types of attributes defined in STUN & TURN.  Next to each is
- // the name of the class (T is StunTAttribute) that implements that type.
- enum StunAttributeType {
-
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/kopete-giflib5.patch b/pkgs/desktops/kde-4.10/kdenetwork/kopete-giflib5.patch
deleted file mode 100644
index 1755bdbce76d..000000000000
--- a/pkgs/desktops/kde-4.10/kdenetwork/kopete-giflib5.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-Index: b/kopete/protocols/wlm/wlmchatsession.cpp
-===================================================================
---- a/kopete/protocols/wlm/wlmchatsession.cpp
-+++ b/kopete/protocols/wlm/wlmchatsession.cpp
-@@ -63,10 +63,14 @@
- #include "wlmprotocol.h"
- #include "wlmaccount.h"
- #include "wlmchatsessioninkaction.h"
- #ifdef HAVE_GIFLIB
- #include <gif_lib.h>
-+/* old giflib has no GIFLIB_MAJOR, define to avoid cpp warnings */
-+#ifndef GIFLIB_MAJOR
-+#define GIFLIB_MAJOR 4
-+#endif
- #endif
- 
- WlmChatSession::WlmChatSession (Kopete::Protocol * protocol,
-                                 const Kopete::Contact * user,
-                                 Kopete::ContactPtrList others,
-@@ -465,15 +469,19 @@ WlmChatSession::slotInviteContact (Kopet
- static void
- printGifErrorMessage()
- {
- #ifdef HAVE_GIFLIB
- #ifdef HAVE_GIF_ERROR_STRING // giflib 4.2.0+
-+#if GIFLIB_MAJOR >= 5
-+        fprintf(stderr, "GIF-LIB error (exact reporting not implemented)\n");
-+#else
-         const char * errorString = GifErrorString();
-         if (errorString)
-             fprintf(stderr, "GIF-LIB error: %s\n", errorString);
-         else
-             fprintf(stderr, "GIF-LIB undefined error: %d\n", GifError());
-+#endif
- #else // older giflib versions, libungif
-         PrintGifError();
- #endif // HAVE_GIF_ERROR_STRING
- #endif // HAVE_GIFLIB
- }
-@@ -481,10 +489,14 @@ printGifErrorMessage()
- /* stolen from kpaint write_to_gif() */
- void
- WlmChatSession::convertToGif( const QPixmap & ink, QString filename)
- {
- #ifdef HAVE_GIFLIB
-+#if GIFLIB_MAJOR >= 5
-+#define FreeMapObject  GifFreeMapObject
-+#define MakeMapObject  GifMakeMapObject
-+#endif
-     int i, status;
-     GifFileType *GifFile;
-     ColorMapObject *screenColourmap;
-     ColorMapObject *imageColourmap;
-     QImage img = ink.toImage().convertToFormat(QImage::Format_Indexed8);
-@@ -523,11 +535,15 @@ WlmChatSession::convertToGif( const QPix
-             screenColourmap->Colors[i].Green= 0;
-             screenColourmap->Colors[i].Blue= 0;
-         }
-     }
- 
-+#if GIFLIB_MAJOR >= 5
-+    GifFile= EGifOpenFileName(QFile::encodeName(filename).constData(), 0, NULL);
-+#else
-     GifFile= EGifOpenFileName(QFile::encodeName(filename).constData(), 0);
-+#endif
-     if (!GifFile) {
-         FreeMapObject(imageColourmap);
-         FreeMapObject(screenColourmap);
-         return;
-     }
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/kopete.nix b/pkgs/desktops/kde-4.10/kdenetwork/kopete.nix
deleted file mode 100644
index b065ae610095..000000000000
--- a/pkgs/desktops/kde-4.10/kdenetwork/kopete.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ kde, kdelibs, speex, libmsn, libotr, kdepimlibs, qimageblitz, libktorrent,
-  jasper, libidn, mediastreamer, msilbc, pkgconfig, libxslt, giflib,
-  libgadu, boost, qca2, gpgme, sqlite, telepathy_qt, shared_desktop_ontologies,
-  libjpeg, libmms }:
-
-kde {
-#todo: libmeanwhile, xmms
-  buildInputs = [
-    kdelibs telepathy_qt shared_desktop_ontologies qca2 gpgme libgadu mediastreamer
-    kdepimlibs qimageblitz libktorrent libjpeg sqlite jasper giflib libmsn libotr
-    libxslt libidn speex boost libmms msilbc
-];
-
-  nativeBuildInputs = [ pkgconfig ];
-
-  KDEDIRS = libktorrent;
-
-  patchPhase =
-    ''
-      cp -v ${./FindmsiLBC.cmake} kopete/cmake/modules/FindmsiLBC.cmake
-      patch -p1 < ${./kopete-4.10.4-kopete-linphonemediaengine.patch}
-      patch -p1 < ${./kopete-4.10.4-kopete-stun.patch}
-      patch -p1 < ${./kopete-giflib5.patch}
-    '';
-
-  cmakeFlags = [ "-DBUILD_skypebuttons=TRUE" ];
-
-  meta = {
-    description = "A KDE multi-protocol IM client";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/kppp.nix b/pkgs/desktops/kde-4.10/kdenetwork/kppp.nix
deleted file mode 100644
index bada0c1cb108..000000000000
--- a/pkgs/desktops/kde-4.10/kdenetwork/kppp.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-}
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/krdc.nix b/pkgs/desktops/kde-4.10/kdenetwork/krdc.nix
deleted file mode 100644
index 1b7405f10062..000000000000
--- a/pkgs/desktops/kde-4.10/kdenetwork/krdc.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ kde, kdelibs, libvncserver, libjpeg }:
-
-kde {
-  buildInputs = [ kdelibs libvncserver libjpeg ];
-}
diff --git a/pkgs/desktops/kde-4.10/kdenetwork/krfb.nix b/pkgs/desktops/kde-4.10/kdenetwork/krfb.nix
deleted file mode 100644
index b6c36ea9c158..000000000000
--- a/pkgs/desktops/kde-4.10/kdenetwork/krfb.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ kde, kdelibs, libvncserver, libXdamage, libXtst, libjpeg }:
-
-kde {
-  buildInputs = [ kdelibs libvncserver libXdamage libXtst libjpeg ];
-}
diff --git a/pkgs/desktops/kde-4.10/kdepim-runtime.nix b/pkgs/desktops/kde-4.10/kdepim-runtime.nix
deleted file mode 100644
index 8fdd9fc8fa17..000000000000
--- a/pkgs/desktops/kde-4.10/kdepim-runtime.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ kde, fetchurl, cmake, kdelibs, libxslt, boost, kdepimlibs, akonadi
-, shared_desktop_ontologies }:
-
-kde {
-  buildInputs = [
-    kdepimlibs akonadi boost shared_desktop_ontologies
-    libxslt
-  ];
-#todo: libkgapi, libkolab, libkolabxml
-  meta = {
-    description = "KDE PIM runtime";
-    license = "GPL";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdepim.nix b/pkgs/desktops/kde-4.10/kdepim.nix
deleted file mode 100644
index dca60d3d4b64..000000000000
--- a/pkgs/desktops/kde-4.10/kdepim.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ kde, boost, gpgme, libassuan, libxslt, kdepimlibs, kdepim_runtime
-, akonadi, shared_desktop_ontologies, cyrus_sasl, grantlee, prison
-, nepomuk_widgets, dblatex }:
-
-kde {
-
-  buildInputs =
-    [ kdepimlibs boost akonadi shared_desktop_ontologies nepomuk_widgets
-      libxslt cyrus_sasl gpgme libassuan grantlee prison dblatex
-    ];
-
-  passthru.propagatedUserEnvPackages = [ akonadi kdepimlibs kdepim_runtime ];
-
-  meta = {
-    description = "KDE PIM tools";
-    longDescription = ''
-      Contains various personal information management tools for KDE, such as an organizer.
-    '';
-    license = "GPL";
-    homepage = http://pim.kde.org;
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdepimlibs.nix b/pkgs/desktops/kde-4.10/kdepimlibs.nix
deleted file mode 100644
index 7ec1612b1e5f..000000000000
--- a/pkgs/desktops/kde-4.10/kdepimlibs.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ kde, pkgconfig, boost, cyrus_sasl, gpgme, libical, openldap, shared_mime_info
-, kdelibs, akonadi, libxslt, prison, nepomuk_core
-, shared_desktop_ontologies, qjson }:
-
-kde {
-  nativeBuildInputs = [ pkgconfig ];
-
-  buildInputs =
-    [ boost gpgme libical libxslt qjson
-      openldap cyrus_sasl akonadi shared_desktop_ontologies
-    ];
-
-  propagatedBuildInputs = [ kdelibs nepomuk_core ];
-
-  meta = {
-    description = "KDE PIM libraries";
-    license = "LGPL";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeplasma-addons.nix b/pkgs/desktops/kde-4.10/kdeplasma-addons.nix
deleted file mode 100644
index 2bd6f5037db8..000000000000
--- a/pkgs/desktops/kde-4.10/kdeplasma-addons.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ kde, kdelibs, marble, shared_desktop_ontologies, pkgconfig
-, boost, eigen, kde_workspace, attica, python, qca2, qimageblitz
-, kdepimlibs, libkexiv2, libqalculate, libXtst, libdbusmenu_qt
-, qjson, qoauth }:
-# TODO: qwt, scim, ibus
-
-kde {
-
-  KDEDIRS=marble;
-
-  buildInputs = [ kdelibs boost kde_workspace kdepimlibs attica qjson qoauth
-    eigen qca2 libXtst qimageblitz
-    libqalculate shared_desktop_ontologies marble libkexiv2 libdbusmenu_qt
-];
-
-  nativeBuildInputs = [ pkgconfig ];
-
-  meta = {
-    description = "KDE Plasma Addons";
-    license = "GPL";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/cervisia.nix b/pkgs/desktops/kde-4.10/kdesdk/cervisia.nix
deleted file mode 100644
index 1dabe46cd429..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/cervisia.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "A KDE CVS frontend";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-bazaar.nix b/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-bazaar.nix
deleted file mode 100644
index 500dffc809e9..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-bazaar.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, kdelibs, kde_baseapps }:
-
-kde {
-
-  # Needs kdebase for libkonq
-  buildInputs = [ kdelibs kde_baseapps ];
-
-  patchPhase = ''
-    sed -i 's@macro_optional_add_subdirectory(bazaar)@add_subdirectory(bazaar)@' dolphin-plugins/CMakeLists.txt
-  '';
-
-  meta = {
-    description = "Bazaar plugin for dolphin";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-git.nix b/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-git.nix
deleted file mode 100644
index 2da3603c3bec..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-git.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, kdelibs, kde_baseapps }:
-
-kde {
-
-  # Needs kdebase for libkonq
-  buildInputs = [ kdelibs kde_baseapps ];
-
-  patchPhase = ''
-    sed -i 's@macro_optional_add_subdirectory(git)@add_subdirectory(git)@' dolphin-plugins/CMakeLists.txt
-  '';
-
-  meta = {
-    description = "Git plugin for dolphin";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-hg.nix b/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-hg.nix
deleted file mode 100644
index 20925842a32d..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-hg.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, kdelibs, kde_baseapps }:
-
-kde {
-
-  # Needs kdebase for libkonq
-  buildInputs = [ kdelibs kde_baseapps ];
-
-  patchPhase = ''
-    sed -i 's@macro_optional_add_subdirectory(hg)@add_subdirectory(hg)@' dolphin-plugins/CMakeLists.txt
-  '';
-
-  meta = {
-    description = "Mercurial plugin for dolphin";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-svn.nix b/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-svn.nix
deleted file mode 100644
index fafdcc55a1f0..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/dolphin-plugins-svn.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, kdelibs, kde_baseapps }:
-
-kde {
-
-  # Needs kdebase for libkonq
-  buildInputs = [ kdelibs kde_baseapps ];
-
-  patchPhase = ''
-    sed -i 's@macro_optional_add_subdirectory(svn)@add_subdirectory(svn)@' dolphin-plugins/CMakeLists.txt
-  '';
-
-  meta = {
-    description = "Svn plugin for dolphin";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/kapptemplate.nix b/pkgs/desktops/kde-4.10/kdesdk/kapptemplate.nix
deleted file mode 100644
index 391536248dd3..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/kapptemplate.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "A KDE 4 project template generator";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/kcachegrind.nix b/pkgs/desktops/kde-4.10/kdesdk/kcachegrind.nix
deleted file mode 100644
index 65d410cca48d..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/kcachegrind.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "KDE Frontend for Callgrind/Cachegrind";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/kde-dev-scripts.nix b/pkgs/desktops/kde-4.10/kdesdk/kde-dev-scripts.nix
deleted file mode 100644
index df81145e5d60..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/kde-dev-scripts.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Various scripts to ease KDE development";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/kde-dev-utils.nix b/pkgs/desktops/kde-4.10/kdesdk/kde-dev-utils.nix
deleted file mode 100644
index 85b6ea6ac00f..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/kde-dev-utils.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs, gcc }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  preConfigure = "export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:${gcc}:${gcc.gcc}";
-
-  meta = {
-    description = "various KDE development utilities";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/kdesdk-strigi-analyzers.nix b/pkgs/desktops/kde-4.10/kdesdk/kdesdk-strigi-analyzers.nix
deleted file mode 100644
index 4d579b88ba8a..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/kdesdk-strigi-analyzers.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Strigi analyzers for diff, po and ts";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/kdesdk-thumbnailers.nix b/pkgs/desktops/kde-4.10/kdesdk/kdesdk-thumbnailers.nix
deleted file mode 100644
index f96b0df2b955..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/kdesdk-thumbnailers.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ kde, kdelibs, gettext }:
-
-kde {
-
-  buildInputs = [ kdelibs gettext ];
-
-  patches = [ ./thumbnailers-add-subdirectory.patch ];
-
-  meta = {
-    description = "PO file format thumbnailer";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/kioslave-perldoc.nix b/pkgs/desktops/kde-4.10/kdesdk/kioslave-perldoc.nix
deleted file mode 100644
index 4c45be6b4fef..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/kioslave-perldoc.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ kde, kdelibs, perl }:
-
-kde {
-
-  buildInputs = [ kdelibs perl ];
-
-  cmakeFlags = [ "-DBUILD_perldoc=ON" ];
-
-  meta = {
-    description = "perldoc: kioslave";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/kioslave-svn.nix b/pkgs/desktops/kde-4.10/kdesdk/kioslave-svn.nix
deleted file mode 100644
index 0574241353db..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/kioslave-svn.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs, subversionClient, apr, aprutil }:
-
-kde {
-
-  buildInputs = [ kdelibs subversionClient apr aprutil ];
-
-  meta = {
-    description = "Subversion kioslave";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/kompare.nix b/pkgs/desktops/kde-4.10/kdesdk/kompare.nix
deleted file mode 100644
index 1ddb4b8ea5b9..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/kompare.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "A program to view the differences between files and optionally generate a diff";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/lokalize.nix b/pkgs/desktops/kde-4.10/kdesdk/lokalize.nix
deleted file mode 100644
index 1565426eb1fc..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/lokalize.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kde, kdelibs, hunspell }:
-
-kde {
-  buildInputs = [ kdelibs hunspell ];
-
-  meta = {
-    description = "KDE 4 Computer-aided translation system";
-    longDescription = ''
-      Computer-aided translation system.
-      Do not translate what had already been translated.
-    '';
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/okteta.nix b/pkgs/desktops/kde-4.10/kdesdk/okteta.nix
deleted file mode 100644
index 058636596ad8..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/okteta.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ kde, kdelibs, qca2 }:
-
-kde {
-  buildInputs = [ kdelibs qca2 ];
-
-# TODO: Look what does -DBUILD_mobile add
-
-  enableParallelBuilding = false;
-
-  meta = {
-    description = "KDE byte editor";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/poxml.nix b/pkgs/desktops/kde-4.10/kdesdk/poxml.nix
deleted file mode 100644
index 1ab9ed49df56..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/poxml.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs, antlr }:
-
-kde {
-  buildInputs = [ kdelibs antlr ];
-
-  meta = {
-    description = "Po<->xml tools";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdesdk/thumbnailers-add-subdirectory.patch b/pkgs/desktops/kde-4.10/kdesdk/thumbnailers-add-subdirectory.patch
deleted file mode 100644
index 5b4f7643bf45..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/thumbnailers-add-subdirectory.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur kdesdk-4.10.2-upstream/kdesdk-thumbnailers/CMakeLists.txt kdesdk-4.10.2/kdesdk-thumbnailers/CMakeLists.txt
---- kdesdk-4.10.2-upstream/kdesdk-thumbnailers/CMakeLists.txt	2013-05-02 21:05:56.446226846 -0430
-+++ kdesdk-4.10.2/kdesdk-thumbnailers/CMakeLists.txt	2013-05-02 21:09:58.504053136 -0430
-@@ -9,7 +9,7 @@
- macro_log_feature(GETTEXTPO_FOUND "gettext-po" "A library for processing PO files" "www.gnu.org/software/gettext" FALSE "" "Required to build the PO thumbnailer")
- 
- if(GETTEXTPO_FOUND)
--macro_optional_add_subdirectory(po_thumbnailer)
-+add_subdirectory(po_thumbnailer)
- endif(GETTEXTPO_FOUND)
- 
- macro_display_feature_log()
diff --git a/pkgs/desktops/kde-4.10/kdesdk/umbrello.nix b/pkgs/desktops/kde-4.10/kdesdk/umbrello.nix
deleted file mode 100644
index e83a2d9a901b..000000000000
--- a/pkgs/desktops/kde-4.10/kdesdk/umbrello.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs, libxml2, libxslt, boost }:
-
-kde {
-  buildInputs = [ kdelibs libxml2 libxslt boost ];
-
-  meta = {
-    description = "Umbrello UML modeller";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdetoys/amor.nix b/pkgs/desktops/kde-4.10/kdetoys/amor.nix
deleted file mode 100644
index 936d63d544a9..000000000000
--- a/pkgs/desktops/kde-4.10/kdetoys/amor.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "KDE creature for your desktop";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdetoys/kteatime.nix b/pkgs/desktops/kde-4.10/kdetoys/kteatime.nix
deleted file mode 100644
index dacf54def4b0..000000000000
--- a/pkgs/desktops/kde-4.10/kdetoys/kteatime.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "KDE utility for making a fine cup of tea";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdetoys/ktux.nix b/pkgs/desktops/kde-4.10/kdetoys/ktux.nix
deleted file mode 100644
index 108f9be7c722..000000000000
--- a/pkgs/desktops/kde-4.10/kdetoys/ktux.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs, kde_workspace }:
-
-kde {
-  buildInputs = [ kdelibs kde_workspace ];
-
-  meta = {
-    description = "Tux Screen Saver";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/ark.nix b/pkgs/desktops/kde-4.10/kdeutils/ark.nix
deleted file mode 100644
index eb3e12281d64..000000000000
--- a/pkgs/desktops/kde-4.10/kdeutils/ark.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs, libarchive, bzip2, kde_baseapps, lzma, qjson }:
-
-kde {
-  buildInputs = [ kdelibs kde_baseapps libarchive bzip2 lzma qjson ];
-
-  meta = {
-    description = "KDE Archiving Tool";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/filelight.nix b/pkgs/desktops/kde-4.10/kdeutils/filelight.nix
deleted file mode 100644
index 25ecabed27ce..000000000000
--- a/pkgs/desktops/kde-4.10/kdeutils/filelight.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Tool to visualise file and directory sizes";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/kcalc.nix b/pkgs/desktops/kde-4.10/kdeutils/kcalc.nix
deleted file mode 100644
index 08b202e8f0e8..000000000000
--- a/pkgs/desktops/kde-4.10/kdeutils/kcalc.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs, gmp }:
-
-kde {
-  buildInputs = [ kdelibs gmp ];
-
-  meta = {
-    description = "KDE Calculator";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/kcharselect.nix b/pkgs/desktops/kde-4.10/kdeutils/kcharselect.nix
deleted file mode 100644
index d4c9c06f483d..000000000000
--- a/pkgs/desktops/kde-4.10/kdeutils/kcharselect.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "KDE character selection utility";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/kdf.nix b/pkgs/desktops/kde-4.10/kdeutils/kdf.nix
deleted file mode 100644
index 3f9da58d0a62..000000000000
--- a/pkgs/desktops/kde-4.10/kdeutils/kdf.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "KDE free disk space utility";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/kfloppy.nix b/pkgs/desktops/kde-4.10/kdeutils/kfloppy.nix
deleted file mode 100644
index 2434a4fa671f..000000000000
--- a/pkgs/desktops/kde-4.10/kdeutils/kfloppy.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Floppy disk formatting utility";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/kgpg.nix b/pkgs/desktops/kde-4.10/kdeutils/kgpg.nix
deleted file mode 100644
index f3b00a5b968c..000000000000
--- a/pkgs/desktops/kde-4.10/kdeutils/kgpg.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs, kdepimlibs }:
-
-kde {
-  buildInputs = [ kdelibs kdepimlibs ];
-
-  meta = {
-    description = "Simple KDE GUI for GPG";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/kremotecontrol.nix b/pkgs/desktops/kde-4.10/kdeutils/kremotecontrol.nix
deleted file mode 100644
index 70311a789f99..000000000000
--- a/pkgs/desktops/kde-4.10/kdeutils/kremotecontrol.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs, libXtst }:
-
-kde {
-  buildInputs = [ kdelibs libXtst ];
-
-  meta = {
-    description = "KDE remote control";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/ktimer.nix b/pkgs/desktops/kde-4.10/kdeutils/ktimer.nix
deleted file mode 100644
index 5700977349e3..000000000000
--- a/pkgs/desktops/kde-4.10/kdeutils/ktimer.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "KDE Timer";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/kwallet.nix b/pkgs/desktops/kde-4.10/kdeutils/kwallet.nix
deleted file mode 100644
index 9ec0e6c0396c..000000000000
--- a/pkgs/desktops/kde-4.10/kdeutils/kwallet.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "KDE Wallet (password storage) management tool";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/print-manager.nix b/pkgs/desktops/kde-4.10/kdeutils/print-manager.nix
deleted file mode 100644
index 99feaf3e4f99..000000000000
--- a/pkgs/desktops/kde-4.10/kdeutils/print-manager.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ kde, kdelibs
-, pythonPackages, cups, sip, pyqt4, pykde4, pycups, rhpl, system_config_printer
-, pythonDBus, makeWrapper }:
-
-let s_c_p = system_config_printer.override { withGUI = false; }; in
-
-kde rec {
-  buildInputs = [ kdelibs pythonPackages.python pythonPackages.wrapPython
-    ] ++ pythonPath;
-
-  pythonPath = [ cups pyqt4 pykde4 pycups s_c_p ];
-
-  passthru.propagatedUserEnvPackages = [ s_c_p ];
-
-  postInstall =
-    ''
-      wrapPythonPrograms
-
-      # ‘system-config-printer’ supplies some D-Bus policy that we need.
-      mkdir -p $out/nix-support
-      echo ${s_c_p} > $out/nix-support/propagated-user-env-packages
-    '';
-
-  meta = {
-    description = "KDE printer manager";
-    longDescription = "Applet to view current print jobs and configure new printers";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/superkaramba.nix b/pkgs/desktops/kde-4.10/kdeutils/superkaramba.nix
deleted file mode 100644
index cbe7a2856062..000000000000
--- a/pkgs/desktops/kde-4.10/kdeutils/superkaramba.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ kde, kdelibs, qimageblitz, python }:
-
-kde {
-  buildInputs = [ kdelibs qimageblitz python ];
-
-  cmakeFlags = [ "-DBUILD_icons=TRUE" "-DBUILD_plasma=TRUE" ];
-
-  meta = {
-    description = "A KDE Eye-candy Application";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdeutils/sweeper.nix b/pkgs/desktops/kde-4.10/kdeutils/sweeper.nix
deleted file mode 100644
index 78d56c7df30e..000000000000
--- a/pkgs/desktops/kde-4.10/kdeutils/sweeper.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Helps clean unwanted traces the user leaves on the system";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdewebdev/kfilereplace.nix b/pkgs/desktops/kde-4.10/kdewebdev/kfilereplace.nix
deleted file mode 100644
index 55e37809e07b..000000000000
--- a/pkgs/desktops/kde-4.10/kdewebdev/kfilereplace.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "Batch search and replace tool";
-    homepage = http://www.kdewebdev.org;
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdewebdev/kimagemapeditor.nix b/pkgs/desktops/kde-4.10/kdewebdev/kimagemapeditor.nix
deleted file mode 100644
index 6d22f72461f9..000000000000
--- a/pkgs/desktops/kde-4.10/kdewebdev/kimagemapeditor.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "An HTML imagemap editor";
-    homepage = http://www.nongnu.org/kimagemap/;
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdewebdev/klinkstatus.nix b/pkgs/desktops/kde-4.10/kdewebdev/klinkstatus.nix
deleted file mode 100644
index 21971beb80a0..000000000000
--- a/pkgs/desktops/kde-4.10/kdewebdev/klinkstatus.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ kde, kdelibs, libxml2, libxslt, kdepimlibs, htmlTidy, boost }:
-
-kde {
-#todo: ruby is not found. needed for some example scripts
-  buildInputs =
-    [ kdelibs kdepimlibs htmlTidy boost ];
-
-  meta = {
-    description = "A KDE link checker";
-    homepage = http://klinkstatus.kdewebdev.org;
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/kdewebdev/kommander.nix b/pkgs/desktops/kde-4.10/kdewebdev/kommander.nix
deleted file mode 100644
index d5f4337f714d..000000000000
--- a/pkgs/desktops/kde-4.10/kdewebdev/kommander.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ kde, kdelibs }:
-
-kde {
-  buildInputs = [ kdelibs ];
-
-  meta = {
-    description = "A graphical editor of scripted dialogs";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/l10n/default.nix b/pkgs/desktops/kde-4.10/l10n/default.nix
deleted file mode 100644
index fa6406043b1b..000000000000
--- a/pkgs/desktops/kde-4.10/l10n/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ stdenv, fetchurl, kdelibs, gettext, release, branch, stable }:
-
-let
-
-  inherit (stdenv.lib) attrByPath singleton;
-
-  kdeL10nDerivation =
-    { lang, saneName, sha256 }:
-
-    stdenv.mkDerivation rec {
-      name = "kde-l10n-${saneName}-${release}";
-
-      src = fetchurl {
-        url = "mirror://kde/${if stable then "" else "un"}stable/${release}/src/kde-l10n/kde-l10n-${lang}-${release}.tar.xz";
-        name = "${name}.tar.xz";
-        inherit sha256;
-      };
-
-      buildInputs = [ gettext kdelibs ];
-
-      cmakeFlags = "-Wno-dev";
-
-      meta = {
-        description = "KDE translation for ${lang}";
-        inherit branch;
-        license = "GPL";
-        platforms = stdenv.lib.platforms.linux;
-        inherit (kdelibs.meta) maintainers homepage;
-      };
-    };
-
-  kdeL10nRelease =
-    builtins.listToAttrs (
-      map ({lang, saneName, sha256}:
-        {
-          name = saneName;
-          value = kdeL10nDerivation { inherit lang saneName sha256; };
-        }
-      ) (import (./manifest + "-${release}.nix"))
-    );
-
-in
-{
-  inherit kdeL10nDerivation;
-  recurseForDerivations = true;
-} // kdeL10nRelease
diff --git a/pkgs/desktops/kde-4.10/l10n/l10n-manifest.sh b/pkgs/desktops/kde-4.10/l10n/l10n-manifest.sh
deleted file mode 100755
index ec159a1e2047..000000000000
--- a/pkgs/desktops/kde-4.10/l10n/l10n-manifest.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-
-# Usage: download kde-l10n to $dir, then run
-# $0 $dir
-
-dir=$1
-
-if [[ ! -d "${dir}" ]]; then
-  echo "${dir} is not a directory (or doesn't exist)!" >&2
-  exit 1
-fi
-
-release=$(ls "${dir}"/kde-l10n-en_GB-*.tar.xz | \
-	sed -e 's/.*en_GB-//' -e 's/\.tar\.xz//')
-
-echo "Detected release ${release}" >&2
-
-exec > "manifest-${release}.nix"
-echo "["
-for i in `cd "${dir}"; ls kde-l10n-*-${release}.tar.xz`; do
-  lang=${i%-${release}.tar.xz}
-  lang=${lang#kde-l10n-}
-  echo -n "${lang}.. " >&2
-  hash=$(nix-hash --type sha256 --flat --base32 "${dir}/${i}")
-  echo "{"
-  echo "  lang = \"${lang}\";"
-  echo "  saneName = \"$(echo $lang | sed s^@^_^g)\";"
-  echo "  sha256 = \"${hash}\";"
-  echo "}"
-  echo $hash >&2
-done
-echo "]"
diff --git a/pkgs/desktops/kde-4.10/l10n/manifest-4.10.4.nix b/pkgs/desktops/kde-4.10/l10n/manifest-4.10.4.nix
deleted file mode 100644
index 67abb386a48c..000000000000
--- a/pkgs/desktops/kde-4.10/l10n/manifest-4.10.4.nix
+++ /dev/null
@@ -1,282 +0,0 @@
-[
-{
-  lang = "ar";
-  saneName = "ar";
-  sha256 = "1pkca1z620pwd8nk53wpbg6490nzd21i71691dmp233mgb8pzwfz";
-}
-{
-  lang = "bg";
-  saneName = "bg";
-  sha256 = "1zsml7q434m5242my2y14b5b708ccrmyrvkbl231mjxdqmy137g8";
-}
-{
-  lang = "bs";
-  saneName = "bs";
-  sha256 = "0qbhix7xxabcgwyjrqhvhqfm2gs72swj2wdbh99csb8y3ms4bhwm";
-}
-{
-  lang = "ca";
-  saneName = "ca";
-  sha256 = "1hfj9ram95fsv4qbjv6mwc01sl15vw8cj0q7vy3jjvamcjlczn4q";
-}
-{
-  lang = "ca@valencia";
-  saneName = "ca_valencia";
-  sha256 = "19vjxcpvbrip18j26sbs4h16wisvpryfdf4v7z6kg716k6pgj0gb";
-}
-{
-  lang = "cs";
-  saneName = "cs";
-  sha256 = "1nvyazb2dv03k68shqj7crx01yiwzh1zs5al84ym3j18drq8b66r";
-}
-{
-  lang = "da";
-  saneName = "da";
-  sha256 = "1pclmjkb7c2c6k62pilgi6r7bxw2clpb5vj46n0rdhhr97vfschn";
-}
-{
-  lang = "de";
-  saneName = "de";
-  sha256 = "15qkm1004mq8g3y7jdhsziabf5c1c57p5h57086ngk9x61r2gfmx";
-}
-{
-  lang = "el";
-  saneName = "el";
-  sha256 = "1il49v54qfc1gy9scqal9fjpkjxk3wpzylcz6n5372n01mgs8ydz";
-}
-{
-  lang = "en_GB";
-  saneName = "en_GB";
-  sha256 = "1c25p3byhlv41b82hlpq6agpnfd5vzfm7a9fb8h7jh8va5ifqwac";
-}
-{
-  lang = "es";
-  saneName = "es";
-  sha256 = "1wa15glj0a11phcm69yaz532j4412vqx1h4cwhddyr2l3d7g135i";
-}
-{
-  lang = "et";
-  saneName = "et";
-  sha256 = "1hsq8213mzxzasydgrmcgid85r9d1p1fgkabb5wd66xz5kgjc5v7";
-}
-{
-  lang = "eu";
-  saneName = "eu";
-  sha256 = "1xw7hnlqq05bfsgb74qhis8dcnr7nllm3vm2mc4n8g5n7h8c0hq4";
-}
-{
-  lang = "fa";
-  saneName = "fa";
-  sha256 = "0z0v9m7z557jmqdngw4km4icaxhzlc5np7rzsnzgsqm2xnapc1cm";
-}
-{
-  lang = "fi";
-  saneName = "fi";
-  sha256 = "0jvy10459fc58d21azbk3jjnq1pb3n4a8v5ynw0f2pcizgivrlm3";
-}
-{
-  lang = "fr";
-  saneName = "fr";
-  sha256 = "15wnqcqz1xrdw33xiff0xfnyd56x3hj9nk4i1sxkkymfay2jkdgk";
-}
-{
-  lang = "ga";
-  saneName = "ga";
-  sha256 = "1n7vzhyph2rr22isnzr7r4yrchkzrgwa1xw00ncpmj4k81gl7yl3";
-}
-{
-  lang = "gl";
-  saneName = "gl";
-  sha256 = "0hqlhl19y9bc262kk0s5grgvg3xy0gvcvkrcwy2casmrsx3p5f1y";
-}
-{
-  lang = "he";
-  saneName = "he";
-  sha256 = "0yh6l1ypy3h1bgs1kbnjj7fbhap4a416zlsbsd7d4g71dq7hsm1p";
-}
-{
-  lang = "hi";
-  saneName = "hi";
-  sha256 = "03j1dvylczy360dndpny9qfijfnacv185qwlji7zj4x83y69zfdc";
-}
-{
-  lang = "hr";
-  saneName = "hr";
-  sha256 = "1257lwczcyh6nbp3s8078l2h6yj04wqxa4iak7k3q79l8x2jhch6";
-}
-{
-  lang = "hu";
-  saneName = "hu";
-  sha256 = "1mvqfmmajgf5iyscalmrsipa9vy5b6ap7bdarl0d1i4nwh1g8mxq";
-}
-{
-  lang = "ia";
-  saneName = "ia";
-  sha256 = "0cq6c2ky8gydzk5rz5yjgb3lp7n2d9h760q7m8skq9f8hks7vlic";
-}
-{
-  lang = "is";
-  saneName = "is";
-  sha256 = "1149l8i96iq195cjzbrrdzxck1zd34w6y8hxs8p6jz49bzf5g5c5";
-}
-{
-  lang = "it";
-  saneName = "it";
-  sha256 = "0n4b7x0xxvmlr55b602pi7bxmrcpsqcc4qk4x58x2kpb9awh896i";
-}
-{
-  lang = "ja";
-  saneName = "ja";
-  sha256 = "1dfy3kzqx0xm52jp7gzph0xm6zrwb9y3mssyw4shmnvhlf13xkki";
-}
-{
-  lang = "kk";
-  saneName = "kk";
-  sha256 = "1gd6vnh2vwn4lj8c0qmq7avaz79zv2ldqyb07d2wmvpljpifz5fk";
-}
-{
-  lang = "km";
-  saneName = "km";
-  sha256 = "0q619ddjj928v376j1ljn2k6br7zlazfkk9q4hndi6kql1712139";
-}
-{
-  lang = "ko";
-  saneName = "ko";
-  sha256 = "1jmfxpz3pf2zglysjnry0ahygvkapk6v844q1nhsmfci6mmpmlqh";
-}
-{
-  lang = "lt";
-  saneName = "lt";
-  sha256 = "01f6krx8ll9jhih5205fxsb0dz3ynwpz43byq7qyi68f1lkaxsd0";
-}
-{
-  lang = "lv";
-  saneName = "lv";
-  sha256 = "0xnl28havz92ar5gid3p2r8wap3yrsg143fghqcdiymbzwy3sb0k";
-}
-{
-  lang = "mr";
-  saneName = "mr";
-  sha256 = "1arc5ksxgwvk2i669nhm2y78qf4zd1z3z8fjpixf6ax9g3bqdghd";
-}
-{
-  lang = "nb";
-  saneName = "nb";
-  sha256 = "1fk0g008pdw4gpbzbycl6xck0m7mf56f27rfa10riy9drmi7bcbj";
-}
-{
-  lang = "nds";
-  saneName = "nds";
-  sha256 = "1g2gwslqk0zfayhd91mbgl3gwznj8npq9637c3wkk3kdnz6hcsw0";
-}
-{
-  lang = "nl";
-  saneName = "nl";
-  sha256 = "1j6dw63jph3dbi0v4rlq3mp98fijynd4n0a6z4dwmzdjzb5ccqrg";
-}
-{
-  lang = "nn";
-  saneName = "nn";
-  sha256 = "0m5i7i6rscqwwx4l0fw0bmg1247hbs3bxbnxmqbz6fv5pp29yh4v";
-}
-{
-  lang = "pa";
-  saneName = "pa";
-  sha256 = "0bn3bf6pkjvr0la5n4s3lb1ij0q2rh4qx8ig6sbkq0j822c84n11";
-}
-{
-  lang = "pl";
-  saneName = "pl";
-  sha256 = "09gw92a41ws5lxapw0160pqrqfhfnk42yshlzmdk3aav88rq1f0q";
-}
-{
-  lang = "pt";
-  saneName = "pt";
-  sha256 = "1lyh8szfwbd3jm3gsndgigz1xhzldh246c2d6f4lsry9w9557gpl";
-}
-{
-  lang = "pt_BR";
-  saneName = "pt_BR";
-  sha256 = "12vgf8qx8244brvfy7mi8ak1nxh9fclj9n2yic5ldf2wfkb7hzjd";
-}
-{
-  lang = "ro";
-  saneName = "ro";
-  sha256 = "0q995rw2bbv8vjnf9h0ywdvq8v24rkmxck1w7bf0wblcp7w4pcpq";
-}
-{
-  lang = "ru";
-  saneName = "ru";
-  sha256 = "014zcdk5kxif17mqb6ivsc44021f4hxr0d2pn2d0jlrhx4dbyvsp";
-}
-{
-  lang = "si";
-  saneName = "si";
-  sha256 = "0y80d8d18di9n0jj8ifxmdc5vgmq6bkc86id5azqrlif4rhs55jj";
-}
-{
-  lang = "sk";
-  saneName = "sk";
-  sha256 = "1q87ixrqqkhzbyb7mlk0xfnxcih057x9w596spr5br8arxr34912";
-}
-{
-  lang = "sl";
-  saneName = "sl";
-  sha256 = "1ykbh8j2x14vq7iszll4lgmg8gbnv6jql686x01896ba504144y4";
-}
-{
-  lang = "sr";
-  saneName = "sr";
-  sha256 = "03f0jjsn4bwysjs8x8iy61z0rnzm8gn3w9k85wfa0br8cjr36cji";
-}
-{
-  lang = "sv";
-  saneName = "sv";
-  sha256 = "1bf3795ddlxk9cz686jlifb18wjxfgjqfv3s45gs9q09i6sq0iv4";
-}
-{
-  lang = "tg";
-  saneName = "tg";
-  sha256 = "11w9ibw8bbkllrf4628rc5zpwwwp5plcapndwp9sb19rsdx0bnvf";
-}
-{
-  lang = "th";
-  saneName = "th";
-  sha256 = "0rv5l7zplhfr7l8a4wh4ngvh0assq97dlvh5d6x9a464k5fgwg7w";
-}
-{
-  lang = "tr";
-  saneName = "tr";
-  sha256 = "15f1rsbzljk120dq2v2wkgn4ym50yzrd9xyzgw9g22hlmy5inmm8";
-}
-{
-  lang = "ug";
-  saneName = "ug";
-  sha256 = "1f924vl3vm20p5hfyzzv6hx6cvb7ym4bf9lbch808k99jwvh6j99";
-}
-{
-  lang = "uk";
-  saneName = "uk";
-  sha256 = "1fv78nvvrd6z62fy3iqqbf77vixadl8s2hg6lkg094f1dc8l3w4n";
-}
-{
-  lang = "vi";
-  saneName = "vi";
-  sha256 = "1k2i818821bls1vqb614jq8pi6cj43rf2x2bcbcibwdmhs1xljx8";
-}
-{
-  lang = "wa";
-  saneName = "wa";
-  sha256 = "0bk9mjir5az1rnxclyijc42mfnpgbw1fzzfvw765wdcs1mkjqrdh";
-}
-{
-  lang = "zh_CN";
-  saneName = "zh_CN";
-  sha256 = "0m3z05zsg2afzfm2ws090rx9214l9zjshfxy7sww3a2nb39f798b";
-}
-{
-  lang = "zh_TW";
-  saneName = "zh_TW";
-  sha256 = "09921r007i23q1dyg9gx8zjaf3da0i2r6r673yhaq584srxivznq";
-}
-]
diff --git a/pkgs/desktops/kde-4.10/l10n/manifest-4.10.5.nix b/pkgs/desktops/kde-4.10/l10n/manifest-4.10.5.nix
deleted file mode 100644
index 9862efe0b582..000000000000
--- a/pkgs/desktops/kde-4.10/l10n/manifest-4.10.5.nix
+++ /dev/null
@@ -1,282 +0,0 @@
-[
-{
-  lang = "ar";
-  saneName = "ar";
-  sha256 = "0mxvp97sf1f6w2rfy966fdhpflqfmwv253zswaz3cv9b5m9yf5q8";
-}
-{
-  lang = "bg";
-  saneName = "bg";
-  sha256 = "0fk5r0bqnks1ygac6cs8f5gb16lr4qrh32jgdk50hnv6ad51agfv";
-}
-{
-  lang = "bs";
-  saneName = "bs";
-  sha256 = "10kc76l1fm56rhnc6wvm29ij15v2pvmsq1djvm6zxhsdm99af25k";
-}
-{
-  lang = "ca";
-  saneName = "ca";
-  sha256 = "0gn4ghvwwi09aibmx5940b159d7svnbcq25cg02lhvjvfrmyfp1j";
-}
-{
-  lang = "ca@valencia";
-  saneName = "ca_valencia";
-  sha256 = "175j2gn35vzjb17rbd0mvrxas180wq3v1x6q1caykm2qddqqmqgv";
-}
-{
-  lang = "cs";
-  saneName = "cs";
-  sha256 = "0zxa2cmcwdbdwgz5wm58v0gqzphcc1b1vzzgrrnpsmfjqb6h951c";
-}
-{
-  lang = "da";
-  saneName = "da";
-  sha256 = "0qab4gbilpb8fwyjqcvvmzms4hdbrii4xr5xgcl87v8va5gcdc8s";
-}
-{
-  lang = "de";
-  saneName = "de";
-  sha256 = "1vh9h185qa42q7gkyflp7g93hgvhxjd2cknwz0yq6dxsx8dg5iqd";
-}
-{
-  lang = "el";
-  saneName = "el";
-  sha256 = "1f8wsq9hh2d6wpd7v1bz5mchb1zjnc895mmpawy67rv6s45vx6y8";
-}
-{
-  lang = "en_GB";
-  saneName = "en_GB";
-  sha256 = "1nz7q6fq3242vjh2961r4v4kp1fywknnjrnfadgf3g0dvav2vkq8";
-}
-{
-  lang = "es";
-  saneName = "es";
-  sha256 = "1mazkh53vdvsz5zrx41fi49x44isibpwmrrqwcmpbcwdqx7iaf9v";
-}
-{
-  lang = "et";
-  saneName = "et";
-  sha256 = "0f7bi50gzrhnvif7c1h6mgscbbjvz0cqifdnaaqr9m7d9iafwwyz";
-}
-{
-  lang = "eu";
-  saneName = "eu";
-  sha256 = "0k0w849nqjsaxsi8rm4jd13fqcvk88v6j0yar36mvblh6x61qgq8";
-}
-{
-  lang = "fa";
-  saneName = "fa";
-  sha256 = "12fmd6zy14wsd2i1nszc4bl3q0asvf9wqsgwihxipw34fwa6irpv";
-}
-{
-  lang = "fi";
-  saneName = "fi";
-  sha256 = "0k76zlfjjz7vlvlz298713c27zbcybjip33wix76ldj7is9yb07v";
-}
-{
-  lang = "fr";
-  saneName = "fr";
-  sha256 = "03qxm8q3bvx4cqaxvfbdj07q2rpcwrqyp333x3jwmcc5xj731pww";
-}
-{
-  lang = "ga";
-  saneName = "ga";
-  sha256 = "09n5wpc4s2xxv1016dvg8zwbvx6lx6942lnyq3b4adl4yjcghs32";
-}
-{
-  lang = "gl";
-  saneName = "gl";
-  sha256 = "1w7hj6ma3d03wv2x651hwhxxc4ird23f0khc4z03ncpl9xvyikky";
-}
-{
-  lang = "he";
-  saneName = "he";
-  sha256 = "0jirch5cw99lcs9d83kzifb9wdqz1aqdjmi4wam0gi8nciws8hwr";
-}
-{
-  lang = "hi";
-  saneName = "hi";
-  sha256 = "02g0a4l1mlmx64acxfl6a1lqbivnwdfx98q8f9nyb3836i8i3sd7";
-}
-{
-  lang = "hr";
-  saneName = "hr";
-  sha256 = "087jww1daqqwrrxi1hz72kc39ipj6hj73cqzy4ds24hm112z58dc";
-}
-{
-  lang = "hu";
-  saneName = "hu";
-  sha256 = "1mwmbhnzvhxzcfk3j6f61jfprfwaan8mf9l4s7r8f3ddmsz66kha";
-}
-{
-  lang = "ia";
-  saneName = "ia";
-  sha256 = "0grmi972ndizf3gpjxjv79crc0si4b3dadayzmayrykndd5b30i6";
-}
-{
-  lang = "is";
-  saneName = "is";
-  sha256 = "13d8ikfhlswpaxrj9l6f0kf4dzbmgri5d3miz3r8h6lmmszq2phr";
-}
-{
-  lang = "it";
-  saneName = "it";
-  sha256 = "1m17wqak0alhkk81fhl32fcv0b2nnszjs7xia0df75z8c2js9vmm";
-}
-{
-  lang = "ja";
-  saneName = "ja";
-  sha256 = "1br0gipw4ra3bvzdal9dn8x8kldmmk4miw1z5hsimhkgc5y5amb3";
-}
-{
-  lang = "kk";
-  saneName = "kk";
-  sha256 = "0vmdfcy2dmxd6bjvz31xhjkxd2q55px70c9d6lj3fmf4bxiqlmc4";
-}
-{
-  lang = "km";
-  saneName = "km";
-  sha256 = "1snrn2yw7z2m0m3wqxgqrq1rxqnjb4ylngdnn0ym87yh7bh6kjsc";
-}
-{
-  lang = "ko";
-  saneName = "ko";
-  sha256 = "1dyymy3wdldmkxai47y25qzpcajsi18h4rl0m1izm90giwadrk85";
-}
-{
-  lang = "lt";
-  saneName = "lt";
-  sha256 = "1im120mlnvjdlh5gna9q0qfixg2zz2shhzbxih37ikzpjxr7v5zs";
-}
-{
-  lang = "lv";
-  saneName = "lv";
-  sha256 = "07303s04qkh7pa78ranvcvqs75wll427vdb0iv6sr07smd0fzf1d";
-}
-{
-  lang = "mr";
-  saneName = "mr";
-  sha256 = "1dzzzc3wkjhapmdlbp178w6rm00ibixmp4xhkbsavr7hy18a048c";
-}
-{
-  lang = "nb";
-  saneName = "nb";
-  sha256 = "039gi1ba8z9w80b6xsh3b51alq91d4phr6pmfnaqngwqmaksxidh";
-}
-{
-  lang = "nds";
-  saneName = "nds";
-  sha256 = "0bg55dl284y7wvcl40sgspnvpfiqkapvwwi02n4jyl3w4xsy3b8j";
-}
-{
-  lang = "nl";
-  saneName = "nl";
-  sha256 = "048pr21vfcwvfxpw56kil4awmx7samva4jd86g6rvrs6q85c0mxj";
-}
-{
-  lang = "nn";
-  saneName = "nn";
-  sha256 = "10xy5r3s79gh28zzy72dhs79ap616qnrqms3mgg9kdvmmi2n32nm";
-}
-{
-  lang = "pa";
-  saneName = "pa";
-  sha256 = "08ib4pbahgjww4d82vcgahc7jxky85riim1p0ck5dzhri0664zx8";
-}
-{
-  lang = "pl";
-  saneName = "pl";
-  sha256 = "0kqr4jvqsyasdacv0kxjcx5nfd6m0kd1vk7418mzbabjyb2nbvl1";
-}
-{
-  lang = "pt";
-  saneName = "pt";
-  sha256 = "0nfnwcq2n5dp721wi7arp3via0kvhf3rfq8h78k9dqs5afyhf4n1";
-}
-{
-  lang = "pt_BR";
-  saneName = "pt_BR";
-  sha256 = "1886fga94c7zp0g1hdijqj64mi8asgbmykic6n0mzin33c4rwyjs";
-}
-{
-  lang = "ro";
-  saneName = "ro";
-  sha256 = "0q51v23dviwrgy1zaq3823xh2vfm2zvkpqizgmi111m681s0n4kx";
-}
-{
-  lang = "ru";
-  saneName = "ru";
-  sha256 = "0mm8mfqlfbj0r2d4xyli2n8x8sgpw2bjxnlq8yy38pgi9pksgcsl";
-}
-{
-  lang = "si";
-  saneName = "si";
-  sha256 = "0qcvdil9gbgwf10v4j606d0vi4705vb77aq7p1kq3y57khldlhsa";
-}
-{
-  lang = "sk";
-  saneName = "sk";
-  sha256 = "1rmxh12r7i9cc7nkigxx6igvzjjq1rk3y5nm2mdjq7gcv067gp9i";
-}
-{
-  lang = "sl";
-  saneName = "sl";
-  sha256 = "0xdd5ini0b0fi5xfai533y8a5g8gyphfrz6qvivpgdd81rfckpk1";
-}
-{
-  lang = "sr";
-  saneName = "sr";
-  sha256 = "09rfcrw58f0bvqqkdcpiy56xv591yk6v0iinlabamza63h011rmk";
-}
-{
-  lang = "sv";
-  saneName = "sv";
-  sha256 = "1slznfn6ghqy5cy870apwgcygdhvbfvh1dy6rplhwnv0riwnx3ay";
-}
-{
-  lang = "tg";
-  saneName = "tg";
-  sha256 = "12ic6nd65l6w7vqymfr1djbkn8jfghc5vyyi783mdf3pwx3xjk8i";
-}
-{
-  lang = "th";
-  saneName = "th";
-  sha256 = "0v02h8gdwnabahb3invxvp2ap5x6b4a0pf0sl15phi8s2m1y9fad";
-}
-{
-  lang = "tr";
-  saneName = "tr";
-  sha256 = "10asd6ha7fjs4b11vp27xp1piycalvidv3l6z5sv9j5bs4hayp1g";
-}
-{
-  lang = "ug";
-  saneName = "ug";
-  sha256 = "11n6z1d2b2b93lj9vps4ry6k671m5lssrv4hi5nr0a1vbc1d6ix1";
-}
-{
-  lang = "uk";
-  saneName = "uk";
-  sha256 = "1lrghs0s3hmhmrqarsc29518ax95wz6gnhimxs8lyc88b4jil0p5";
-}
-{
-  lang = "vi";
-  saneName = "vi";
-  sha256 = "198rr7i673a77v3qlld1c0rm2vr86rr6nf97v4wckcvyz8b6s6i8";
-}
-{
-  lang = "wa";
-  saneName = "wa";
-  sha256 = "01glzj5vhhmv6zvrmwd4wwx0bq6b0p08ixx0rf3bh4pdbi42hiin";
-}
-{
-  lang = "zh_CN";
-  saneName = "zh_CN";
-  sha256 = "0cj8flr5c73crrwchfz3j60snzmvbr3bc1p4pnk4s3vajmwsdaas";
-}
-{
-  lang = "zh_TW";
-  saneName = "zh_TW";
-  sha256 = "0lc896x55ww3s5jz7ms0gmm22qq9yjpnbzbjfq64574pvr2m3s5y";
-}
-]
diff --git a/pkgs/desktops/kde-4.10/oxygen-icons.nix b/pkgs/desktops/kde-4.10/oxygen-icons.nix
deleted file mode 100644
index adee87c83169..000000000000
--- a/pkgs/desktops/kde-4.10/oxygen-icons.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ kde, cmake }:
-
-kde {
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "1aad2qb9zrjcild5s584q4zz6zc3wgkclv79gnfwkhmy0viqx9l6";
-
-  nativeBuildInputs = [ cmake ];
-
-  meta = {
-    description = "KDE Oxygen theme icons";
-    longDescription = "Icons for KDE's default theme";
-    license = "GPL";
-  };
-}
diff --git a/pkgs/desktops/kde-4.10/support/akonadi/default.nix b/pkgs/desktops/kde-4.10/support/akonadi/default.nix
deleted file mode 100644
index e1d8a5ef9ae7..000000000000
--- a/pkgs/desktops/kde-4.10/support/akonadi/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, cmake, qt4, shared_mime_info, libxslt, boost, automoc4, soprano, sqlite }:
-
-stdenv.mkDerivation rec {
-  name = "akonadi-1.9.2";
-  
-  src = fetchurl {
-    url = "mirror://kde/stable/akonadi/src/${name}.tar.bz2";
-    sha256 = "1ndzc7a1q1hqy4pn9xnihq6ni02zsqfdyy6z6lwn27bkb7pg64p7";
-  };
-
-  buildInputs = [ qt4 soprano libxslt boost sqlite ];
-
-  nativeBuildInputs = [ cmake automoc4 shared_mime_info ];
-
-  enableParallelBuilding = true;
-  
-  meta = with stdenv.lib; {
-    description = "KDE PIM Storage Service";
-    license = "LGPL";
-    homepage = http://pim.kde.org/akonadi;
-    maintainers = [ maintainers.sander maintainers.urkud ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/xfce/applications/gigolo.nix b/pkgs/desktops/xfce/applications/gigolo.nix
index b54ea8cc623f..9badeb5370e8 100644
--- a/pkgs/desktops/xfce/applications/gigolo.nix
+++ b/pkgs/desktops/xfce/applications/gigolo.nix
@@ -3,20 +3,16 @@
 stdenv.mkDerivation rec {
   p_name  = "gigolo";
   ver_maj = "0.4";
-  ver_min = "1";
+  ver_min = "2";
 
   src = fetchurl {
     url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
-    sha256 = "1y8p9bbv1a4qgbxl4vn6zbag3gb7gl8qj75cmhgrrw9zrvqbbww2";
+    sha256 = "0r4ij0mlnp0bqq44pyrdcpz18r1zwsksw6w5yc0jzgg7wj7wfgsm";
   };
   name = "${p_name}-${ver_maj}.${ver_min}";
 
   buildInputs = [ python gettext intltool gtk pkgconfig gvfs];
 
-  preConfigure = ''
-    sed -i "waf" -e "1 s^.*/env[ ]*python^#!${python}/bin/python^";
-  '';
-
   meta = {
     homepage = "http://goodies.xfce.org/projects/applications/${p_name}";
     description = "A frontend to easily manage connections to remote filesystems";
diff --git a/pkgs/desktops/xfce/applications/xfce4-taskmanager.nix b/pkgs/desktops/xfce/applications/xfce4-taskmanager.nix
index baef68728487..df743e4cc9c8 100644
--- a/pkgs/desktops/xfce/applications/xfce4-taskmanager.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-taskmanager.nix
@@ -3,11 +3,11 @@
 stdenv.mkDerivation rec {
   p_name  = "xfce4-taskmanager";
   ver_maj = "1.0";
-  ver_min = "0";
+  ver_min = "1";
 
   src = fetchurl {
     url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
-    sha256 = "1vm9gw7j4ngjlpdhnwdf7ifx6xrrn21011almx2vwidhk2f9zvy0";
+    sha256 = "11pfiglfg3mzsmpiwva6l7dj44zsv76vyf0282pghwcrvnb2gapm";
   };
   name = "${p_name}-${ver_maj}.${ver_min}";
 
diff --git a/pkgs/desktops/xfce/core/tumbler.nix b/pkgs/desktops/xfce/core/tumbler.nix
index 06902792624e..8988d072e2c8 100644
--- a/pkgs/desktops/xfce/core/tumbler.nix
+++ b/pkgs/desktops/xfce/core/tumbler.nix
@@ -4,11 +4,11 @@ libgsf, poppler, bzip2 }:
 stdenv.mkDerivation rec {
   p_name  = "tumbler";
   ver_maj = "0.1";
-  ver_min = "29";
+  ver_min = "30";
 
   src = fetchurl {
     url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
-    sha256 = "14zw69x5979d19brjbyq81wvbikb13vgv901gxnbw8lyc3pc9fn3";
+    sha256 = "013kacqyy1vya7kp6jgc1almp3cbbvq96a3r7f5myiihr1whvhp7";
   };
   name = "${p_name}-${ver_maj}.${ver_min}";
 
diff --git a/pkgs/development/compilers/aldor/default.nix b/pkgs/development/compilers/aldor/default.nix
index 57d1bf74154e..ddf16bc2219e 100644
--- a/pkgs/development/compilers/aldor/default.nix
+++ b/pkgs/development/compilers/aldor/default.nix
@@ -2,12 +2,12 @@
 , autoconf, automake, libtool, openjdk, perl }:
 
 stdenv.mkDerivation {
-  name = "aldor-1.1.0";
+  name = "aldor-1.2.0";
 
   src = fetchgit {
     url = "https://github.com/pippijn/aldor";
-    sha256 = "14xv3jl15ib2knsdz0bd7jx64zg1qrr33q5zcr8gli860ps8gkg3";
-    rev = "f7b95835cf709654744441ddb1c515bfc2bec998";
+    sha256 = "1l9fc2cgwabifwbijcp293abc8hcv40nzx2w31jkxh8n0plbiczn";
+    rev = "15471e75f3d65b93150f414ebcaf59a03054b68d";
   };
 
   buildInputs = [ gmp which flex bison makeWrapper autoconf automake libtool
diff --git a/pkgs/development/compilers/ats/default.nix b/pkgs/development/compilers/ats/default.nix
new file mode 100644
index 000000000000..a5ed478a879f
--- /dev/null
+++ b/pkgs/development/compilers/ats/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, gmp }:
+
+let version = "0.2.11"; in stdenv.mkDerivation {
+  name = "ats-anairiats-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/ats-lang/ats-lang-anairiats-${version}.tgz";
+    sha256 = "0rqykyx5whichx85jr4l4c9fdan0qsdd4kwd7a81k3l07zbd9fc6";
+  };
+  # this is necessary because atxt files usually include some .hats files
+  patches = [ ./install-atsdoc-hats-files.patch ];
+
+  buildInputs = [ gmp ];
+
+  meta = {
+    description = "A statically typed programming language that unifies implementation with formal specification";
+    homepage = http://www.ats-lang.org/;
+    license = stdenv.lib.licenses.gpl3Plus;
+    longDescription =
+      ''        
+        ATS is a programming language with a highly expressive type system
+	rooted in the framework Applied Type System. In particular, both
+	dependent types and linear types are available in ATS. The current
+	implementation of ATS (ATS/Anairiats) is written in ATS itself. It can
+	be as efficient as C/C++ and supports a variety of programming
+	paradigms.
+
+	In addition, ATS contains a component ATS/LF that supports a form of
+	(interactive) theorem proving, where proofs are constructed as total
+	functions. With this component, ATS advocates a programming style that
+	combines programming with theorem proving. Furthermore, this component
+	may be used as a logical framework to encode various deduction systems
+	and their (meta-)properties.
+
+	This package contains the compiler atsopt, the frontend atscc,
+	and the lexer atslex.
+      '';
+  };
+
+  platforms = stdenv.lib.platforms.all;
+}
diff --git a/pkgs/development/compilers/ats/install-atsdoc-hats-files.patch b/pkgs/development/compilers/ats/install-atsdoc-hats-files.patch
new file mode 100644
index 000000000000..93c6fa07d8a6
--- /dev/null
+++ b/pkgs/development/compilers/ats/install-atsdoc-hats-files.patch
@@ -0,0 +1,38 @@
+--- ats-lang-anairiats-0.2.11/Makefile	2013-12-10 00:43:52.000000000 +0100
++++ ats-lang-anairiats-0.2.11/Makefile	2014-03-02 07:49:06.985837425 +0100
+@@ -97,7 +97,7 @@
+ 	cd $(abs_top_srcdir)
+ 	[ -d $(bindir2) ] || $(MKDIR_P) $(bindir2)
+ 	$(MKDIR_P) $(ATSLIBHOME2)/bin
+-	find ccomp contrib doc libats libc prelude -type d \
++	find ccomp contrib doc libats libatsdoc libc prelude -type d \
+ 	  -exec $(MKDIR_P) $(ATSLIBHOME2)/\{} \; \
+ 	  -print
+ 
+@@ -105,7 +105,7 @@
+ #
+ # recursively install all files in the list except .svn control files.
+ #
+-	for d in ccomp/runtime contrib doc libats libc prelude; do \
++	for d in ccomp/runtime contrib doc libats libatsdoc libc prelude; do \
+ 	  cd $(abs_top_srcdir) && \
+ 	  $(INSTALL) -d $(ATSLIBHOME2)/"$$d" && \
+ 	  find "$$d" -name .svn -prune -o -type f \
+@@ -143,6 +143,17 @@
+ 	  $(INSTALL) -m 755 ats_env.sh $(bindir2)/"$$b" && \
+ 	  echo [ats_env.sh] is installed into $(bindir2)/"$$b"; \
+ 	done
++#
++# install atsdoc headers
++#
++	for f in \
++	    utils/atsdoc/SATS/*.sats utils/atsdoc/DATS/*.dats utils/atsdoc/HATS/*.hats; \
++	do \
++	  [ -f "$$f" ] || continue; \
++	  cd $(abs_top_srcdir) && \
++	  $(INSTALL) -m 644 -D "$$f" $(ATSLIBHOME2)/"$$f" && \
++	  echo "$$f"; \
++	done
+ 
+ install:: install_files
+ 
diff --git a/pkgs/development/compilers/ats2/default.nix b/pkgs/development/compilers/ats2/default.nix
index ae9a202a529e..c1c71b0dfe21 100644
--- a/pkgs/development/compilers/ats2/default.nix
+++ b/pkgs/development/compilers/ats2/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, gmp }:
 
-let version = "0.0.5"; in stdenv.mkDerivation {
+let version = "0.0.6"; in stdenv.mkDerivation {
   name = "ats2-postiats-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/ats2-lang/ATS2-Postiats-${version}.tgz";
-    sha256 = "1rzcqc7fwqf0y4cc14lr282r25s66jygf6cxrnf5l8p5p550l0dl";
+    sha256 = "110a4drzf656j9s5yfvxj1cwgh5g9ysnh40cv8y9qfjjkki8vd5b";
   };
 
   buildInputs = [ gmp ];
@@ -15,4 +15,6 @@ let version = "0.0.5"; in stdenv.mkDerivation {
     homepage = http://www.ats-lang.org/;
     license = stdenv.lib.licenses.gpl3Plus;
   };
+
+  platforms = stdenv.lib.platforms.all;
 }
diff --git a/pkgs/development/compilers/elm/elm-server.nix b/pkgs/development/compilers/elm/elm-server.nix
index 760a6f072de1..fce6f4a26995 100644
--- a/pkgs/development/compilers/elm/elm-server.nix
+++ b/pkgs/development/compilers/elm/elm-server.nix
@@ -1,21 +1,20 @@
-{ cabal, blazeHtml, deepseq, Elm, filepath, happstackServer, HTTP
-, mtl, parsec, transformers
+{ cabal, cmdargs, Elm, filepath, mtl, snapCore, snapServer
+, unorderedContainers
 }:
 
 cabal.mkDerivation (self: {
   pname = "elm-server";
-  version = "0.10.1";
-  sha256 = "0rh01jm9h9zbslnzy6xg7bin76gdmypannh3ly40azplw9xmf2dn";
+  version = "0.11";
+  sha256 = "1977fa03n2m2apxhbzpcn6b5y5gf7ksnpigibi8djlpp76rliaz2";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
-    blazeHtml deepseq Elm filepath happstackServer HTTP mtl parsec
-    transformers
+    cmdargs Elm filepath mtl snapCore snapServer unorderedContainers
   ];
   jailbreak = true;
   meta = {
     homepage = "http://elm-lang.org";
-    description = "The Elm language server";
+    description = "Server for developing Elm projects";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/compilers/elm/elm.nix b/pkgs/development/compilers/elm/elm.nix
index 00c5e2907c69..bc9f73b28495 100644
--- a/pkgs/development/compilers/elm/elm.nix
+++ b/pkgs/development/compilers/elm/elm.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Elm";
-  version = "0.11";
-  sha256 = "1rg1dbd2ag63in6069p6v88h1yx0snap2gdhz81lk9l66qns3f4s";
+  version = "0.12";
+  sha256 = "1gmhnpcfv49bdifvz70fif71947q482pd1dbs5c84m8sn7c5n3ss";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -23,6 +23,10 @@ cabal.mkDerivation (self: {
     transformers unionFind unorderedContainers
   ];
   doCheck = false;
+  preConfigure = ''
+    rm -f Setup.hs
+    echo -e "import Distribution.Simple\nmain=defaultMain\n" > Setup.hs
+  '';
   meta = {
     homepage = "http://elm-lang.org";
     description = "The Elm language module";
diff --git a/pkgs/development/compilers/fsharp/default.nix b/pkgs/development/compilers/fsharp/default.nix
index bb9c6d75d446..1d7955045893 100644
--- a/pkgs/development/compilers/fsharp/default.nix
+++ b/pkgs/development/compilers/fsharp/default.nix
@@ -1,18 +1,30 @@
-{ stdenv, fetchurl, mono, unzip, pkgconfig
- } :
+{ stdenv, fetchgit, mono, pkgconfig, autoconf, automake, which }:
+
 stdenv.mkDerivation rec {
-  pname = "fsharp";
-  date = "2011-08-10";
-  name = "${pname}-${date}";
+  name = "fsharp-${version}";
+  version = "3.1.0";
 
-  src = fetchurl {
-    url = "http://download.mono-project.com/sources/fsharp/fsharp-cc126f2.zip";
-    sha256 = "03j2ypnfddl2zpvg8ivhafjy8dlz49b38rdy89l8c3irxdsb7k6i";
+  src = fetchgit {
+    url = "https://github.com/fsharp/fsharp";
+    rev = "refs/heads/fsharp_31";
+    sha256 = "0d41ae31c57ec9ac8a4ea149b615ae085f3774b8877d8e53ddbf68856c32eda0";
   };
 
-  buildInputs = [mono unzip pkgconfig];
+  buildInputs = [ mono pkgconfig autoconf automake which ];
+  configurePhase = ''
+    substituteInPlace ./autogen.sh --replace "/usr/bin/env sh" "/bin/sh"
+    ./autogen.sh --prefix $out
+  '';
 
-  sourceRoot = "fsharp";
+  # Make sure the executables use the right mono binary,
+  # and set up some symlinks for backwards compatibility.
+  postInstall = ''
+    substituteInPlace $out/bin/fsharpc --replace " mono " " ${mono}/bin/mono "
+    substituteInPlace $out/bin/fsharpi --replace " mono " " ${mono}/bin/mono "
+    substituteInPlace $out/bin/fsharpiAnyCpu --replace " mono " " ${mono}/bin/mono "
+    ln -s $out/bin/fsharpc $out/bin/fsc
+    ln -s $out/bin/fsharpi $out/bin/fsi
+  '';
 
   # To fix this error when running:
   # The file "/nix/store/path/whatever.exe" is an not a valid CIL image
@@ -20,9 +32,9 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A functional CLI language";
-    homepage = "http://tryfsharp.org/";
+    homepage = "http://fsharp.org/";
     license = stdenv.lib.licenses.asl20;
-    maintainers = [ stdenv.lib.maintainers.raskin ];
+    maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin ];
     platforms = with stdenv.lib.platforms; linux;
   };
 }
diff --git a/pkgs/development/compilers/gcc-arm-embedded/default.nix b/pkgs/development/compilers/gcc-arm-embedded/default.nix
new file mode 100644
index 000000000000..62e08d1fa7c0
--- /dev/null
+++ b/pkgs/development/compilers/gcc-arm-embedded/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, bzip2, patchelf, glibc, gcc, fetchurl, version, releaseType, sha256 }:
+with stdenv.lib;
+let
+  versionParts = splitString "-" version; # 4.7 2013q3 20130916
+  majorVersion = elemAt versionParts 0; # 4.7
+  yearQuarter = elemAt versionParts 1; # 2013q3
+  underscoreVersion = replaceChars ["."] ["_"] version; # 4_7-2013q3-20130916
+  yearQuarterParts = splitString "q" yearQuarter; # 2013 3
+  year = elemAt yearQuarterParts 0; # 2013
+  quarter = elemAt yearQuarterParts 1; # 3
+  subdirName = "${majorVersion}-${year}-q${quarter}-${releaseType}"; # 4.7-2013-q3-update
+in
+stdenv.mkDerivation {
+  name = "gcc-arm-embedded-${version}";
+
+  src = fetchurl {
+    url = "https://launchpad.net/gcc-arm-embedded/${majorVersion}/${subdirName}/+download/gcc-arm-none-eabi-${underscoreVersion}-linux.tar.bz2";
+    sha256 = sha256;
+  };
+
+  buildInputs = [ bzip2 patchelf ];
+ 
+  dontPatchELF = true;
+  
+  phases = "unpackPhase patchPhase installPhase";
+  
+  installPhase = ''
+    mkdir -pv $out
+    cp -r ./* $out
+
+    for f in $(find $out); do
+      if [ -f "$f" ] && patchelf "$f" 2> /dev/null; then
+        patchelf --set-interpreter ${glibc}/lib/ld-linux.so.2 \
+                 --set-rpath $out/lib:${gcc}/lib \
+                 "$f" || true
+      fi
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors (Cortex-M0/M0+/M3/M4, Cortex-R4/R5/R7)";
+    homepage = "https://launchpad.net/gcc-arm-embedded";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/compilers/gcc/4.4/default.nix b/pkgs/development/compilers/gcc/4.4/default.nix
index e81ca3983196..99c342da780f 100644
--- a/pkgs/development/compilers/gcc/4.4/default.nix
+++ b/pkgs/development/compilers/gcc/4.4/default.nix
@@ -246,7 +246,8 @@ stdenv.mkDerivation ({
       enableMultilib version; };
 
   # ghdl does not build fine with parallel building
-  enableParallelBuilding = !langVhdl && !langAda;
+  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46173
+  #enableParallelBuilding = !langVhdl && !langAda;
 
   meta = {
     homepage = http://gcc.gnu.org/;
diff --git a/pkgs/development/compilers/ghc/7.4.2.nix b/pkgs/development/compilers/ghc/7.4.2.nix
index d1acb3d09b9e..497a59e17fa5 100644
--- a/pkgs/development/compilers/ghc/7.4.2.nix
+++ b/pkgs/development/compilers/ghc/7.4.2.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     echo "${buildMK}" > mk/build.mk
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
+  '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
     export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/ghc-${version}"
   '';
 
diff --git a/pkgs/development/compilers/ghc/7.8.1.nix b/pkgs/development/compilers/ghc/7.8.2.nix
index c9ca6fd8719b..8200c8c759e7 100644
--- a/pkgs/development/compilers/ghc/7.8.1.nix
+++ b/pkgs/development/compilers/ghc/7.8.2.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ghc, perl, gmp, ncurses }:
 
 stdenv.mkDerivation rec {
-  version = "7.8.0.20140228";
+  version = "7.8.2";
   name = "ghc-${version}";
 
   src = fetchurl {
-    url = "http://www.haskell.org/ghc/dist/7.8.1-rc2/${name}-src.tar.bz2";
-    sha256 = "09xlgz1xg0182wjy62h3j0xvnhllhjlyvj30vc3him98parnr76w";
+    url = "http://www.haskell.org/ghc/dist/7.8.2/${name}-src.tar.xz";
+    sha256 = "15kyz98zq22sgwkzy2bkx0yz98qkrzgdigz919vafd7fxnkf3la5";
   };
 
   buildInputs = [ ghc perl gmp ncurses ];
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     echo "${buildMK}" > mk/build.mk
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
+  '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
     export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/ghc-${version}"
   '';
 
diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix
index 7f5ec0985b9a..cc220eb7b1c2 100644
--- a/pkgs/development/compilers/ghc/head.nix
+++ b/pkgs/development/compilers/ghc/head.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     echo "${buildMK}" > mk/build.mk
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
+  '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
     export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/ghc-${version}"
   '';
 
diff --git a/pkgs/development/compilers/ghdl/default.nix b/pkgs/development/compilers/ghdl/default.nix
new file mode 100644
index 000000000000..cd33d3d79a70
--- /dev/null
+++ b/pkgs/development/compilers/ghdl/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchurl, gnat, zlib }:
+
+assert stdenv.system == "i686-linux";
+
+let
+  version = "0.31";
+in
+stdenv.mkDerivation rec {
+  name = "ghdl-mcode-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/ghdl/ghdl-${version}.tar.gz";
+    sha256 = "1v0l9h6906b0bvnwfi2qg5nz9vjg80isc5qgjxr1yqxpkfm2xcf0";
+  };
+
+  buildInputs = [ gnat zlib ];
+
+  # Tarbomb
+  preUnpack = ''
+    mkdir ghdl
+    cd ghdl
+  '';
+
+  sourceRoot = "translate/ghdldrv";
+
+  patchPhase = ''
+    sed -i 's,$$curdir/lib,'$out'/share/ghdl_mcode/translate/lib,' Makefile
+  '';
+
+  postBuild = ''
+    # Build the LIB
+    ln -s ghdl_mcode ghdl
+    make install.mcode
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp ghdl_mcode $out/bin
+
+    ensureDir $out/share/ghdl_mcode/translate
+    cp -R ../lib $out/share/ghdl_mcode/translate
+    cp -R ../../libraries $out/share/ghdl_mcode
+
+    ensureDir $out/share/man/man1
+    cp ../../doc/ghdl.1 $out/share/man/man1/ghdl_mcode.1
+
+    # Ghdl has some timestamps checks, storing file timestamps in '.cf' files.
+    # As we will change the timestamps to 1970-01-01 00:00:01, we also set the
+    # content of that .cf to that value. This way ghdl does not complain on
+    # the installed object files from the basic libraries (ieee, ...)
+    pushd $out
+    find . -name "*.cf" -exec \
+        sed 's/[0-9]*\.000" /19700101000001.000" /g' -i {} \;
+    popd
+  '';
+
+  meta = {
+    homepage = "http://sourceforge.net/p/ghdl-updates/wiki/Home/";
+    description = "Free VHDL simulator, mcode flavour";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/development/compilers/go/1.2.nix b/pkgs/development/compilers/go/1.2.nix
index 2abdc51e4c6a..7b7e16d837db 100644
--- a/pkgs/development/compilers/go/1.2.nix
+++ b/pkgs/development/compilers/go/1.2.nix
@@ -7,11 +7,11 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "go-1.2";
+  name = "go-1.2.1";
 
   src = fetchurl {
-    url = http://go.googlecode.com/files/go1.2.src.tar.gz;
-    sha1 = "7dd2408d40471aeb30a9e0b502c6717b5bf383a5";
+    url = http://go.googlecode.com/files/go1.2.1.src.tar.gz;
+    sha1 = "6a4b9991eddd8039438438d6aa25126ab7e07f2f";
   };
 
   buildInputs = [ bison glibc bash makeWrapper ];
@@ -60,6 +60,7 @@ stdenv.mkDerivation {
           else if stdenv.system == "armv5tel-linux" then "arm"
           else throw "Unsupported system";
   GOARM = stdenv.lib.optionalString (stdenv.system == "armv5tel-linux") "5";
+  GO386 = 387; # from Arch: don't assume sse2 on i686
 
   installPhase = ''
     mkdir -p "$out/bin"
@@ -79,7 +80,7 @@ stdenv.mkDerivation {
     homepage = http://golang.org/;
     description = "The Go Programming language";
     license = "BSD";
-    maintainers = with stdenv.lib.maintainers; [ pierron viric ];
+    maintainers = with stdenv.lib.maintainers; [ pierron viric wizeman ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/compilers/icedtea-web/default.nix b/pkgs/development/compilers/icedtea-web/default.nix
new file mode 100644
index 000000000000..c9697bac36c7
--- /dev/null
+++ b/pkgs/development/compilers/icedtea-web/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, jdk, gtk2, xulrunner, zip, pkgconfig, perl, npapi_sdk, bash }:
+
+stdenv.mkDerivation rec {
+  name = "icedtea-web-${version}";
+
+  version = "1.5";
+
+  src = fetchurl {
+    url = "http://icedtea.wildebeest.org/download/source/${name}.tar.gz";
+
+    sha256 = "0bbwa944kaam0r8ldlqrrj9z9zj54v6zdc3q663ck59shw5z828w";
+  };
+
+  buildInputs = [ gtk2 xulrunner zip pkgconfig npapi_sdk ];
+
+  preConfigure = ''
+    substituteInPlace javac.in --replace '#!/usr/bin/perl' '#!${perl}/bin/perl'
+
+    configureFlags="BIN_BASH=${bash}/bin/bash $configureFlags"
+  '';
+
+  configureFlags = [
+    "--with-jdk-home=${jdk}"
+  ];
+
+  mozillaPlugin = "/lib";
+
+  meta = {
+    description = "Java web browser plugin and an implementation of Java Web Start";
+    longDescription = ''
+      A Free Software web browser plugin running applets written in the Java
+      programming language and an implementation of Java Web Start, originally
+      based on the NetX project.
+    '';
+    homepage = http://icedtea.classpath.org/wiki/IcedTea-Web;
+    maintainers = with stdenv.lib.maintainers; [ wizeman ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/compilers/icedtea/build-fix-2.4.6.patch b/pkgs/development/compilers/icedtea/build-fix-2.4.6.patch
new file mode 100644
index 000000000000..d5fcd9f44565
--- /dev/null
+++ b/pkgs/development/compilers/icedtea/build-fix-2.4.6.patch
@@ -0,0 +1,58 @@
+
+# HG changeset patch
+# User Andrew John Hughes <gnu_andrew@member.fsf.org>
+# Date 1396030366 0
+# Node ID e8e59c50a451b45bd10cd495b81e5c61b2b4bca8
+# Parent  46f9059509fec2498b1a04ccefee538a45aeff8c
+PR1726: configure fails looking for ecj.jar before even trying to find javac
+
+2014-03-28  Andrew John Hughes  <gnu.andrew@redhat.com>
+
+	* acinclude.m4:
+	(IT_FIND_COMPILER): Check value of ECJ_JAR
+	and JAVAC here ...
+	(IT_FIND_ECJ_JAR): ... rather than here where
+	${JAVAC} may not yet be defined.
+
+diff -r 46f9059509fe -r e8e59c50a451 NEWS
+--- a/NEWS	Fri Mar 28 18:06:31 2014 +0000
++++ b/NEWS	Fri Mar 28 18:12:46 2014 +0000
+@@ -14,6 +14,9 @@
+ 
+ New in release 2.4.7 (2014-04-XX):
+ 
++* Bug fixes
++  - PR1726: configure fails looking for ecj.jar before even trying to find javac
++
+ New in release 2.4.6 (2014-03-28):
+ 
+ * Backports
+diff -r 46f9059509fe -r e8e59c50a451 acinclude.m4
+--- a/acinclude.m4	Fri Mar 28 18:06:31 2014 +0000
++++ b/acinclude.m4	Fri Mar 28 18:12:46 2014 +0000
+@@ -134,6 +134,12 @@
+   IT_USING_ECJ
+   IT_WITH_GCJ
+   
++  if test "x${ECJ_JAR}" = "xno"; then
++    if test "x${JAVAC}" = "x"; then
++      AC_MSG_ERROR("No compiler or ecj JAR file was found.")
++    fi
++  fi
++
+   if test x"${GCJ}" != xno ; then
+     JAVAC="${JAVA} -classpath ${ECJ_JAR} org.eclipse.jdt.internal.compiler.batch.Main"
+   fi
+@@ -350,11 +356,6 @@
+       fi
+   fi
+   AC_MSG_RESULT(${ECJ_JAR})
+-  if test "x${ECJ_JAR}" = "xno"; then
+-    if test "x${JAVAC}" = "x"; then
+-      AC_MSG_ERROR("No compiler or ecj JAR file was found.")
+-    fi
+-  fi
+   AC_SUBST(ECJ_JAR)
+ ])
+ 
+
diff --git a/pkgs/development/compilers/icedtea/cppflags-include-fix.patch b/pkgs/development/compilers/icedtea/cppflags-include-fix.patch
new file mode 100644
index 000000000000..8931c122538f
--- /dev/null
+++ b/pkgs/development/compilers/icedtea/cppflags-include-fix.patch
@@ -0,0 +1,16 @@
+diff -Naur openjdk-orig/jdk/make/sun/awt/mawt.gmk openjdk/jdk/make/sun/awt/mawt.gmk
+--- openjdk-orig/jdk/make/sun/awt/mawt.gmk	2012-08-28 19:13:16.000000000 -0400
++++ openjdk/jdk/make/sun/awt/mawt.gmk	2013-01-22 11:56:22.315418708 -0500
+@@ -234,12 +234,6 @@
+ endif # !HEADLESS
+ endif # PLATFORM
+ 
+-ifeq ($(PLATFORM), linux)
+-  # Checking for the X11/extensions headers at the additional location
+-  CPPFLAGS += -I$(firstword $(wildcard $(OPENWIN_HOME)/include/X11/extensions) \
+-                        $(wildcard /usr/include/X11/extensions))
+-endif
+-
+ ifeq ($(PLATFORM), macosx))
+   CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions \
+               -I$(OPENWIN_HOME)/include 
diff --git a/pkgs/development/compilers/icedtea/default.nix b/pkgs/development/compilers/icedtea/default.nix
new file mode 100644
index 000000000000..de3a013e7df9
--- /dev/null
+++ b/pkgs/development/compilers/icedtea/default.nix
@@ -0,0 +1,181 @@
+{ stdenv, fetchurl, jdk, jdkPath, ant, wget, zip, unzip, cpio, file, libxslt
+, xorg, zlib, pkgconfig, libjpeg, libpng, giflib, lcms2, gtk2, krb5, attr
+, alsaLib, procps, automake, autoconf, cups, which, perl, coreutils, binutils
+, cacert, setJavaClassPath
+}:
+
+let
+
+  /**
+   * The JRE libraries are in directories that depend on the CPU.
+   */
+  architecture =
+    if stdenv.system == "i686-linux" then
+      "i386"
+    else if stdenv.system == "x86_64-linux" then
+      "amd64"
+    else
+      throw "icedtea requires i686-linux or x86_64 linux";
+
+  srcInfo = (import ./sources.nix).icedtea7;
+
+  pkgName = "icedtea7-${srcInfo.version}";
+
+  defSrc = name:
+    with (builtins.getAttr name srcInfo.bundles); fetchurl {
+      inherit url sha256;
+      name = "${pkgName}-${name}-${baseNameOf url}";
+    };
+
+  bundleNames = builtins.attrNames srcInfo.bundles;
+
+  sources = stdenv.lib.genAttrs bundleNames (name: defSrc name);
+
+  bundleFun = name: "--with-${name}-src-zip=" + builtins.getAttr name sources;
+  bundleFlags = map bundleFun bundleNames;
+
+in
+
+with srcInfo; stdenv.mkDerivation {
+  name = pkgName;
+
+  src = fetchurl {
+    inherit url sha256;
+  };
+
+  patches = [ ./build-fix-2.4.6.patch ];
+
+  outputs = [ "out" "jre" ];
+
+  # TODO: Probably some more dependencies should be on this list but are being
+  # propagated instead
+  buildInputs = [
+    jdk ant wget zip unzip cpio file libxslt pkgconfig procps automake
+    autoconf which perl coreutils xorg.lndir
+    zlib libjpeg libpng giflib lcms2 krb5 attr alsaLib cups
+    xorg.libX11 xorg.libXtst gtk2
+  ];
+
+  configureFlags = bundleFlags ++ [
+    "--disable-bootstrap"
+    "--disable-downloading"
+
+    "--without-rhino"
+    # Uncomment this when paxctl lands in stdenv: "--with-pax=paxctl"
+    "--with-jdk-home=${jdkPath}"
+  ];
+
+  preConfigure = ''
+    unset JAVA_HOME JDK_HOME CLASSPATH JAVAC JAVACFLAGS
+
+    substituteInPlace javac.in --replace '#!/usr/bin/perl' '#!${perl}/bin/perl'
+    substituteInPlace javah.in --replace '#!/usr/bin/perl' '#!${perl}/bin/perl'
+
+    ./autogen.sh
+  '';
+
+  preBuild = ''
+    make stamps/extract.stamp
+
+    substituteInPlace openjdk/jdk/make/common/shared/Defs-utils.gmk --replace '/bin/echo' '${coreutils}/bin/echo'
+    substituteInPlace openjdk/corba/make/common/shared/Defs-utils.gmk --replace '/bin/echo' '${coreutils}/bin/echo'
+
+    patch -p0 < ${./cppflags-include-fix.patch}
+    patch -p0 < ${./fix-java-home.patch}
+  '';
+
+  NIX_NO_SELF_RPATH = true;
+
+  makeFlags = [
+    "ALSA_INCLUDE=${alsaLib}/include/alsa/version.h"
+    "ALT_UNIXCOMMAND_PATH="
+    "ALT_USRBIN_PATH="
+    "ALT_DEVTOOLS_PATH="
+    "ALT_COMPILER_PATH="
+    "ALT_CUPS_HEADERS_PATH=${cups}/include"
+    "ALT_OBJCOPY=${binutils}/bin/objcopy"
+    "SORT=${coreutils}/bin/sort"
+    "UNLIMITED_CRYPTO=1"
+  ];
+
+  installPhase = ''
+    mkdir -p $out/lib/icedtea $out/share $jre/lib/icedtea
+
+    cp -av openjdk.build/j2sdk-image/* $out/lib/icedtea
+
+    # Move some stuff to top-level.
+    mv $out/lib/icedtea/include $out/include
+    mv $out/lib/icedtea/man $out/share/man
+
+    # jni.h expects jni_md.h to be in the header search path.
+    ln -s $out/include/linux/*_md.h $out/include/
+
+    # Remove some broken manpages.
+    rm -rf $out/share/man/ja*
+
+    # Remove crap from the installation.
+    rm -rf $out/lib/icedtea/demo $out/lib/icedtea/sample
+
+    # Move the JRE to a separate output.
+    mv $out/lib/icedtea/jre $jre/lib/icedtea/
+    mkdir $out/lib/icedtea/jre
+    lndir $jre/lib/icedtea/jre $out/lib/icedtea/jre
+
+    # The following files cannot be symlinked, as it seems to violate Java security policies
+    rm $out/lib/icedtea/jre/lib/ext/*
+    cp $jre/lib/icedtea/jre/lib/ext/* $out/lib/icedtea/jre/lib/ext/
+
+    rm -rf $out/lib/icedtea/jre/bin
+    ln -s $out/lib/icedtea/bin $out/lib/icedtea/jre/bin
+
+    # Remove duplicate binaries.
+    for i in $(cd $out/lib/icedtea/bin && echo *); do
+      if [ "$i" = java ]; then continue; fi
+      if cmp -s $out/lib/icedtea/bin/$i $jre/lib/icedtea/jre/bin/$i; then
+        ln -sfn $jre/lib/icedtea/jre/bin/$i $out/lib/icedtea/bin/$i
+      fi
+    done
+
+    # Generate certificates.
+    pushd $jre/lib/icedtea/jre/lib/security
+    rm cacerts
+    perl ${./generate-cacerts.pl} $jre/lib/icedtea/jre/bin/keytool ${cacert}/etc/ca-bundle.crt
+    popd
+
+    ln -s $out/lib/icedtea/bin $out/bin
+    ln -s $jre/lib/icedtea/jre/bin $jre/bin
+  '';
+
+  # FIXME: this is unnecessary once the multiple-outputs branch is merged.
+  preFixup = ''
+    prefix=$jre stripDirs "$stripDebugList" "''${stripDebugFlags:--S}"
+    patchELF $jre
+    propagatedNativeBuildInputs+=" $jre"
+
+    # Propagate the setJavaClassPath setup hook from the JRE so that
+    # any package that depends on the JRE has $CLASSPATH set up
+    # properly.
+    mkdir -p $jre/nix-support
+    echo -n "${setJavaClassPath}" > $jre/nix-support/propagated-native-build-inputs
+
+    # Set JAVA_HOME automatically.
+    mkdir -p $out/nix-support
+    cat <<EOF > $out/nix-support/setup-hook
+    if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out/lib/icedtea; fi
+    EOF
+  '';
+
+  meta = {
+    description = "Free Java development kit based on OpenJDK 7.0 and the IcedTea project";
+    longDescription = ''
+      Free Java environment based on OpenJDK 7.0 and the IcedTea project.
+      - Full Java runtime environment
+      - Needed for executing Java Webstart programs and the free Java web browser plugin.
+    '';
+    homepage = http://icedtea.classpath.org;
+    maintainers = with stdenv.lib.maintainers; [ wizeman ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+
+  passthru = { inherit architecture; };
+}
diff --git a/pkgs/development/compilers/icedtea/fix-java-home.patch b/pkgs/development/compilers/icedtea/fix-java-home.patch
new file mode 100644
index 000000000000..5def344f1717
--- /dev/null
+++ b/pkgs/development/compilers/icedtea/fix-java-home.patch
@@ -0,0 +1,17 @@
+diff -ru -x '*~' openjdk-orig/hotspot/src/os/linux/vm/os_linux.cpp openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+--- openjdk-orig/hotspot/src/os/linux/vm/os_linux.cpp	2013-09-06 20:22:03.000000000 +0200
++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp	2014-01-24 22:44:08.223857012 +0100
+@@ -2358,12 +2358,10 @@
+                 CAST_FROM_FN_PTR(address, os::jvm_path),
+                 dli_fname, sizeof(dli_fname), NULL);
+   assert(ret, "cannot locate libjvm");
+   char *rp = NULL;
+   if (ret && dli_fname[0] != '\0') {
+-    rp = realpath(dli_fname, buf);
++    snprintf(buf, buflen, "%s", dli_fname);
+   }
+-  if (rp == NULL)
+-    return;
+ 
+   if (Arguments::created_by_gamma_launcher()) {
+     // Support for the gamma launcher.  Typical value for buf is
diff --git a/pkgs/development/compilers/icedtea/generate-cacerts.pl b/pkgs/development/compilers/icedtea/generate-cacerts.pl
new file mode 100644
index 000000000000..3bdd42f7274f
--- /dev/null
+++ b/pkgs/development/compilers/icedtea/generate-cacerts.pl
@@ -0,0 +1,366 @@
+#!/usr/bin/perl
+
+# Copyright (C) 2007, 2008 Red Hat, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# generate-cacerts.pl generates a JKS keystore named 'cacerts' from
+# OpenSSL's certificate bundle using OpenJDK's keytool.
+
+# First extract each of OpenSSL's bundled certificates into its own
+# aliased filename.
+
+# Downloaded from http://cvs.fedoraproject.org/viewvc/rpms/ca-certificates/F-12/generate-cacerts.pl?revision=1.2
+# Check and prevention of duplicate aliases added by Vlastimil Babka <caster@gentoo.org>
+
+$file = $ARGV[1];
+open(CERTS, $file);
+@certs = <CERTS>;
+close(CERTS);
+
+$pem_file_count = 0;
+$in_cert_block = 0;
+$write_current_cert = 1;
+foreach $cert (@certs)
+{
+    if ($cert =~ /Issuer: /)
+    {
+        $_ = $cert;
+        if ($cert =~ /personal-freemail/)
+        {
+            $cert_alias = "thawtepersonalfreemailca";
+        }
+        elsif ($cert =~ /personal-basic/)
+        {
+            $cert_alias = "thawtepersonalbasicca";
+        }
+        elsif ($cert =~ /personal-premium/)
+        {
+            $cert_alias = "thawtepersonalpremiumca";
+        }
+        elsif ($cert =~ /server-certs/)
+        {
+            $cert_alias = "thawteserverca";
+        }
+        elsif ($cert =~ /premium-server/)
+        {
+            $cert_alias = "thawtepremiumserverca";
+        }
+        elsif ($cert =~ /Class 1 Public Primary Certification Authority$/)
+        {
+            $cert_alias = "verisignclass1ca";
+        }
+        elsif ($cert =~ /Class 1 Public Primary Certification Authority - G2/)
+        {
+            $cert_alias = "verisignclass1g2ca";
+        }
+        elsif ($cert =~
+               /VeriSign Class 1 Public Primary Certification Authority - G3/)
+        {
+            $cert_alias = "verisignclass1g3ca";
+        }
+        elsif ($cert =~ /Class 2 Public Primary Certification Authority$/)
+        {
+            $cert_alias = "verisignclass2ca";
+        }
+        elsif ($cert =~ /Class 2 Public Primary Certification Authority - G2/)
+        {
+            $cert_alias = "verisignclass2g2ca";
+        }
+        elsif ($cert =~
+               /VeriSign Class 2 Public Primary Certification Authority - G3/)
+        {
+            $cert_alias = "verisignclass2g3ca";
+        }
+        elsif ($cert =~ /Class 3 Public Primary Certification Authority$/)
+        {
+            $cert_alias = "verisignclass3ca";
+        }
+        # Version 1 of Class 3 Public Primary Certification Authority
+        # - G2 is added.  Version 3 is excluded.  See below.
+        elsif ($cert =~
+               /VeriSign Class 3 Public Primary Certification Authority - G3/)
+        {
+            $cert_alias = "verisignclass3g3ca";
+        }
+        elsif ($cert =~
+               /RSA Data Security.*Secure Server Certification Authority/)
+        {
+            $cert_alias = "verisignserverca";
+        }
+        elsif ($cert =~ /GTE CyberTrust Global Root/)
+        {
+            $cert_alias = "gtecybertrustglobalca";
+        }
+        elsif ($cert =~ /Baltimore CyberTrust Root/)
+        {
+            $cert_alias = "baltimorecybertrustca";
+        }
+        elsif ($cert =~ /www.entrust.net\/Client_CA_Info\/CPS/)
+        {
+            $cert_alias = "entrustclientca";
+        }
+        elsif ($cert =~ /www.entrust.net\/GCCA_CPS/)
+        {
+            $cert_alias = "entrustglobalclientca";
+        }
+        elsif ($cert =~ /www.entrust.net\/CPS_2048/)
+        {
+            $cert_alias = "entrust2048ca";
+        }
+        elsif ($cert =~ /www.entrust.net\/CPS /)
+        {
+            $cert_alias = "entrustsslca";
+        }
+        elsif ($cert =~ /www.entrust.net\/SSL_CPS/)
+        {
+            $cert_alias = "entrustgsslca";
+        }
+        elsif ($cert =~ /The Go Daddy Group/)
+        {
+            $cert_alias = "godaddyclass2ca";
+        }
+        elsif ($cert =~ /Starfield Class 2 Certification Authority/)
+        {
+            $cert_alias = "starfieldclass2ca";
+        }
+        elsif ($cert =~ /ValiCert Class 2 Policy Validation Authority/)
+        {
+            $cert_alias = "valicertclass2ca";
+        }
+        elsif ($cert =~ /GeoTrust Global CA$/)
+        {
+            $cert_alias = "geotrustglobalca";
+        }
+        elsif ($cert =~ /Equifax Secure Certificate Authority/)
+        {
+            $cert_alias = "equifaxsecureca";
+        }
+        elsif ($cert =~ /Equifax Secure eBusiness CA-1/)
+        {
+            $cert_alias = "equifaxsecureebusinessca1";
+        }
+        elsif ($cert =~ /Equifax Secure eBusiness CA-2/)
+        {
+            $cert_alias = "equifaxsecureebusinessca2";
+        }
+        elsif ($cert =~ /Equifax Secure Global eBusiness CA-1/)
+        {
+            $cert_alias = "equifaxsecureglobalebusinessca1";
+        }
+        elsif ($cert =~ /Sonera Class1 CA/)
+        {
+            $cert_alias = "soneraclass1ca";
+        }
+        elsif ($cert =~ /Sonera Class2 CA/)
+        {
+            $cert_alias = "soneraclass2ca";
+        }
+        elsif ($cert =~ /AAA Certificate Services/)
+        {
+            $cert_alias = "comodoaaaca";
+        }
+        elsif ($cert =~ /AddTrust Class 1 CA Root/)
+        {
+            $cert_alias = "addtrustclass1ca";
+        }
+        elsif ($cert =~ /AddTrust External CA Root/)
+        {
+            $cert_alias = "addtrustexternalca";
+        }
+        elsif ($cert =~ /AddTrust Qualified CA Root/)
+        {
+            $cert_alias = "addtrustqualifiedca";
+        }
+        elsif ($cert =~ /UTN-USERFirst-Hardware/)
+        {
+            $cert_alias = "utnuserfirsthardwareca";
+        }
+        elsif ($cert =~ /UTN-USERFirst-Client Authentication and Email/)
+        {
+            $cert_alias = "utnuserfirstclientauthemailca";
+        }
+        elsif ($cert =~ /UTN - DATACorp SGC/)
+        {
+            $cert_alias = "utndatacorpsgcca";
+        }
+        elsif ($cert =~ /UTN-USERFirst-Object/)
+        {
+            $cert_alias = "utnuserfirstobjectca";
+        }
+        elsif ($cert =~ /America Online Root Certification Authority 1/)
+        {
+            $cert_alias = "aolrootca1";
+        }
+        elsif ($cert =~ /DigiCert Assured ID Root CA/)
+        {
+            $cert_alias = "digicertassuredidrootca";
+        }
+        elsif ($cert =~ /DigiCert Global Root CA/)
+        {
+            $cert_alias = "digicertglobalrootca";
+        }
+        elsif ($cert =~ /DigiCert High Assurance EV Root CA/)
+        {
+            $cert_alias = "digicerthighassuranceevrootca";
+        }
+        elsif ($cert =~ /GlobalSign Root CA$/)
+        {
+            $cert_alias = "globalsignca";
+        }
+        elsif ($cert =~ /GlobalSign Root CA - R2/)
+        {
+            $cert_alias = "globalsignr2ca";
+        }
+        elsif ($cert =~ /Elektronik.*Kas.*2005/)
+        {
+            $cert_alias = "extra-elektronikkas2005";
+        }
+        elsif ($cert =~ /Elektronik/)
+        {
+            $cert_alias = "extra-elektronik2005";
+        }
+        # Mozilla does not provide these certificates:
+        #   baltimorecodesigningca
+        #   gtecybertrust5ca
+        #   trustcenterclass2caii
+        #   trustcenterclass4caii
+        #   trustcenteruniversalcai
+        else
+        {
+            # Generate an alias using the OU and CN attributes of the
+            # Issuer field if both are present, otherwise use only the
+            # CN attribute.  The Issuer field must have either the OU
+            # or the CN attribute.
+            $_ = $cert;
+            if ($cert =~ /OU=/)
+            {
+                s/Issuer:.*?OU=//;
+                # Remove other occurrences of OU=.
+                s/OU=.*CN=//;
+                # Remove CN= if there were not other occurrences of OU=.
+                s/CN=//;
+                s/\/emailAddress.*//;
+                s/Certificate Authority/ca/g;
+                s/Certification Authority/ca/g;
+            }
+            elsif ($cert =~ /CN=/)
+            {
+                s/Issuer:.*CN=//;
+                s/\/emailAddress.*//;
+                s/Certificate Authority/ca/g;
+                s/Certification Authority/ca/g;
+            }
+            s/\W//g;
+            tr/A-Z/a-z/;
+            $cert_alias = "extra-$_";
+
+        }
+        while (-e "$cert_alias.pem")
+        {
+            $cert_alias = "$cert_alias" . "_";
+        }
+    }
+    # When it attempts to parse:
+    #
+    # Class 3 Public Primary Certification Authority - G2, Version 3
+    #
+    # keytool says:
+    #
+    # #2: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
+    # Unparseable AuthorityInfoAccess extension due to
+    # java.io.IOException: Invalid encoding of URI
+    #
+    # If we do not exclude this file
+    # openjdk/jdk/test/lib/security/cacerts/VerifyCACerts.java fails
+    # on this cert, printing:
+    #
+    # Couldn't verify: java.security.SignatureException: Signature
+    # does not match.
+    #
+    elsif ($cert =~
+           /A6:0F:34:C8:62:6C:81:F6:8B:F7:7D:A9:F6:67:58:8A:90:3F:7D:36/)
+    {
+        $write_current_cert = 0;
+        $pem_file_count--;
+    }
+    elsif ($cert eq "-----BEGIN CERTIFICATE-----\n")
+    {
+        $_ = $cert;
+        s/\W//g;
+        tr/A-Z/a-z/;
+        $cert_alias = "extra-$_";
+        while (-e "$cert_alias.pem")
+        {
+            $cert_alias = "$cert_alias" . "_";
+        }
+        if ($in_cert_block != 0)
+        {
+            die "$file is malformed.";
+        }
+        $in_cert_block = 1;
+        if ($write_current_cert == 1)
+        {
+            $pem_file_count++;
+            if (-e "$cert_alias.pem")
+            {
+                print "$cert_alias";
+                die "already exists"
+            }
+            open(PEM, ">$cert_alias.pem");
+            print PEM $cert;
+        }
+    }
+    elsif ($cert eq "-----END CERTIFICATE-----\n")
+    {
+        $in_cert_block = 0;
+        if ($write_current_cert == 1)
+        {
+            print PEM $cert;
+            close(PEM);
+        }
+        $write_current_cert = 1
+    }
+    else
+    {
+        if ($in_cert_block == 1 && $write_current_cert == 1)
+        {
+            print PEM $cert;
+        }
+    }
+}
+
+# Check that the correct number of .pem files were produced.
+@pem_files = <*.pem>;
+if (@pem_files != $pem_file_count)
+{
+    print "$pem_file_count";
+    die "Number of .pem files produced does not match".
+        " number of certs read from $file.";
+}
+
+# Now store each cert in the 'cacerts' file using keytool.
+$certs_written_count = 0;
+foreach $pem_file (@pem_files)
+{
+    system "$ARGV[0] -noprompt -import".
+        " -alias `basename $pem_file .pem`".
+        " -keystore cacerts -storepass 'changeit' -file $pem_file";
+    unlink($pem_file);
+    $certs_written_count++;
+}
+
+# Check that the correct number of certs were added to the keystore.
+if ($certs_written_count != $pem_file_count)
+{
+    die "Number of certs added to keystore does not match".
+        " number of certs read from $file.";
+}
diff --git a/pkgs/development/compilers/icedtea/sources.nix b/pkgs/development/compilers/icedtea/sources.nix
new file mode 100644
index 000000000000..6600c8117862
--- /dev/null
+++ b/pkgs/development/compilers/icedtea/sources.nix
@@ -0,0 +1,56 @@
+# This file is autogenerated from update.py in the same directory.
+{
+  icedtea7 = rec {
+    branch = "2.4";
+    version = "${branch}.6";
+
+    url = "http://icedtea.wildebeest.org/download/source/icedtea-${version}.tar.xz";
+    sha256 = "06gsrci7934xmlddmi9wpawpgb1mp7c8cx3jmjsq91kdljmvqcy3";
+
+    hg_url = "http://icedtea.classpath.org/hg/release/icedtea7-forest-${branch}";
+
+    bundles = {
+      openjdk = rec {
+        changeset = "b028e58c1b77";
+        url = "${hg_url}/archive/${changeset}.tar.gz";
+        sha256 = "e6be030ac5934781d9682dc3108980fa7d2330c32da3cea4ae74df11fbaa92f2";
+      };
+
+      corba = rec {
+        changeset = "48ef1bb6d120";
+        url = "${hg_url}/corba/archive/${changeset}.tar.gz";
+        sha256 = "2fcfe699797154da8b4ba5242e32468b2f3f42a0cb17039915bfb1f84887a5b6";
+      };
+
+      jaxp = rec {
+        changeset = "e0ba4b9a8b91";
+        url = "${hg_url}/jaxp/archive/${changeset}.tar.gz";
+        sha256 = "e7014057721b8392676bd24760c3f7b3dd40548abb3c8dfbe8df2fa04d7c1fca";
+      };
+
+      jaxws = rec {
+        changeset = "4bd947cd146b";
+        url = "${hg_url}/jaxws/archive/${changeset}.tar.gz";
+        sha256 = "17ed5278872ad0c9ec3a849caf1480e5942b714e35c9a4a949d09daac4b34c5a";
+      };
+
+      jdk = rec {
+        changeset = "b5282042aae0";
+        url = "${hg_url}/jdk/archive/${changeset}.tar.gz";
+        sha256 = "ab9b0e973625604b12a2f027cb2a6f9bc5160ef7df55408da6ca8a9c3aaed2d5";
+      };
+
+      langtools = rec {
+        changeset = "06eeb77dac24";
+        url = "${hg_url}/langtools/archive/${changeset}.tar.gz";
+        sha256 = "a67e62618c70ef9190b2aef2b49be9d79624be9363bda258828b17494e092477";
+      };
+
+      hotspot = rec {
+        changeset = "172674e0ab65";
+        url = "${hg_url}/hotspot/archive/${changeset}.tar.gz";
+        sha256 = "2aadfe9b1848a619bd2d35f802b3e71ef5286e7822f9e7b02ce2539ca817d9b0";
+      };
+    };
+  };
+}
diff --git a/pkgs/development/compilers/icedtea/update.py b/pkgs/development/compilers/icedtea/update.py
new file mode 100755
index 000000000000..ba3c5fc51ad1
--- /dev/null
+++ b/pkgs/development/compilers/icedtea/update.py
@@ -0,0 +1,275 @@
+#!/usr/bin/env python3
+
+import subprocess, urllib.request, re, os, tarfile
+from html.parser import HTMLParser
+
+HG_URL = 'http://icedtea.classpath.org/hg/release/icedtea{}-forest-{}'
+DOWNLOAD_URL = 'http://icedtea.wildebeest.org/download/source/'
+DOWNLOAD_HTML = DOWNLOAD_URL + '?C=M;O=D'
+
+ICEDTEA_JDKS = [7]
+
+BUNDLES = ['openjdk', 'corba', 'jaxp', 'jaxws', 'jdk', 'langtools', 'hotspot']
+
+SRC_PATH = './sources.nix'
+
+def get_output(cmd, env = None):
+	try:
+		proc = subprocess.Popen(cmd, env = env, stdout = subprocess.PIPE)
+		out = proc.communicate()[0]
+	except subprocess.CalledProcessError as e:
+		return None
+
+	return out.decode('utf-8').strip()
+
+def nix_prefetch_url(url):
+	env = os.environ.copy()
+	env['PRINT_PATH'] = '1'
+	out = get_output(['nix-prefetch-url', url], env = env)
+
+	return out.split('\n')
+
+def get_nix_attr(path, attr):
+	out = get_output(['nix-instantiate', '--eval-only', '-A', attr, path])
+
+	if len(out) < 2 or out[0] != '"' or out[-1] != '"':
+		raise Exception('Cannot find Nix attribute "{}" (parsing failure?)'.format(attr))
+
+	# Strip quotes
+	return out[1:-1]
+
+def get_jdk_attr(jdk, attr):
+	return get_nix_attr(SRC_PATH, 'icedtea{}.{}'.format(jdk, attr))
+
+class Parser(HTMLParser):
+	def __init__(self, link_regex):
+		HTMLParser.__init__(self)
+
+		self.regex = link_regex
+		self.href = None
+		self.version = None
+
+	def handle_starttag(self, tag, attrs):
+		if self.href != None or tag != 'a':
+			return
+
+		href = None
+		for attr in attrs:
+			if attr[0] == 'href':
+				href = attr[1]
+		if href == None:
+			return
+
+		m = re.match(self.regex, href)
+		if m != None:
+			self.href = href
+			self.version = m.group(1)
+
+def get_latest_version_url(major):
+	f = urllib.request.urlopen(DOWNLOAD_HTML)
+	html = f.read().decode('utf-8')
+	f.close()
+
+	parser = Parser(r'^icedtea\d?-({}\.\d[\d.]*)\.tar\.xz$'.format(major))
+	parser.feed(html)
+	parser.close()
+
+	if parser.href == None:
+		raise Exception('Error: could not find download url for major version "{}"'.format(major))
+
+	return parser.version, DOWNLOAD_URL + parser.href
+
+def get_old_bundle_attrs(jdk, bundle):
+	attrs = {}
+	for attr in ('changeset', 'url', 'sha256'):
+		attrs[attr] = get_jdk_attr(jdk, 'bundles.{}.{}'.format(bundle, attr))
+
+	return attrs
+
+def get_old_attrs(jdk):
+	attrs = {}
+
+	for attr in ('branch', 'version', 'url', 'sha256'):
+		attrs[attr] = get_jdk_attr(jdk, attr)
+
+	attrs['bundles'] = {}
+
+	for bundle in BUNDLES:
+		attrs['bundles'][bundle] = get_old_bundle_attrs(jdk, bundle)
+
+	return attrs
+
+def get_member_filename(tarball, name):
+	for fname in tarball.getnames():
+		m = re.match(r'^icedtea\d?-\d[\d.]*/{}$'.format(name), fname)
+		if m != None:
+			return m.group(0)
+
+	return None
+
+def get_member_file(tarball, name):
+	path = get_member_filename(tarball, name)
+	if path == None:
+		raise Exception('Could not find "{}" inside tarball'.format(name))
+
+	f = tarball.extractfile(path)
+	data = f.read().decode('utf-8')
+	f.close()
+
+	return data
+
+def get_new_bundle_attr(makefile, bundle, attr):
+	var = '{}_{}'.format(bundle.upper(), attr.upper())
+	regex = r'^{} = (.*?)$'.format(var)
+
+	m = re.search(regex, makefile, re.MULTILINE)
+	if m == None:
+		raise Exception('Could not find variable "{}" in Makefile.am'.format(var))
+
+	return m.group(1)
+
+def get_new_bundle_attrs(jdk, branch, path):
+	hg_url = HG_URL.format(jdk, branch)
+
+	attrs = {}
+
+	print('Opening file: "{}"'.format(path))
+	tar = tarfile.open(name = path, mode = 'r:xz')
+
+	makefile = get_member_file(tar, 'Makefile.am')
+	hotspot_map = get_member_file(tar, 'hotspot.map')
+
+	for bundle in BUNDLES:
+		battrs = {}
+
+		if bundle == 'hotspot':
+			m = re.search(r'^default (.*?) (.*?) (.*?)$', hotspot_map, re.MULTILINE)
+			if m == None:
+				raise Exception('Could not find info for hotspot bundle in hotspot.map')
+
+			battrs['url'] = '{}/archive/{}.tar.gz'.format(m.group(1), m.group(2))
+			battrs['changeset'] = m.group(2)
+			battrs['sha256'] = m.group(3)
+
+			attrs[bundle] = battrs
+			continue
+
+		changeset = get_new_bundle_attr(makefile, bundle, 'changeset')
+		battrs['changeset'] = changeset
+		battrs['sha256'] = get_new_bundle_attr(makefile, bundle, 'sha256sum')
+
+		if bundle == 'openjdk':
+			battrs['url'] = '{}/archive/{}.tar.gz'.format(hg_url, changeset)
+		else:
+			battrs['url'] = '{}/{}/archive/{}.tar.gz'.format(hg_url, bundle, changeset)
+
+		attrs[bundle] = battrs
+
+	tar.close()
+
+	return attrs
+
+def get_new_attrs(jdk):
+	print('Getting old attributes for JDK {}...'.format(jdk))
+	old_attrs = get_old_attrs(jdk)
+	attrs = {}
+
+	# The major version corresponds to a specific JDK (1 = OpenJDK6, 2 = OpenJDK7, 3 = OpenJDK8)
+	major = jdk - 5
+
+	print('Getting latest version for JDK {}...'.format(jdk))
+	version, url = get_latest_version_url(major)
+
+	print()
+	print('Old version: {}'.format(old_attrs['version']))
+	print('New version: {}'.format(version))
+	print()
+
+	if version == old_attrs['version']:
+		print('No update available, skipping...')
+		print()
+		return old_attrs
+
+	print('Update available, generating new attributes for JDK {}...'.format(jdk))
+
+	attrs['version'] = version
+	attrs['branch'] = '.'.join(version.split('.')[:2])
+	attrs['url'] = url
+
+	print('Downloading tarball from url "{}"...'.format(url))
+	print()
+	attrs['sha256'], path = nix_prefetch_url(url)
+	print()
+
+	print('Inspecting tarball for bundle information...')
+
+	attrs['bundles'] = get_new_bundle_attrs(jdk, attrs['branch'], path)
+
+	print('Done!')
+
+	return attrs
+
+def generate_jdk(jdk):
+	attrs = get_new_attrs(jdk)
+
+	branch = attrs['branch']
+	src_version = attrs['version'].replace(branch, '${branch}')
+	src_url = attrs['url'].replace(attrs['version'], '${version}')
+
+	hg_url = HG_URL.format(jdk, branch)
+	src_hg_url = HG_URL.format(jdk, '${branch}')
+
+	src =  '  icedtea{} = rec {{\n'.format(jdk)
+	src += '    branch = "{}";\n'.format(branch)
+	src += '    version = "{}";\n'.format(src_version)
+	src += '\n'
+	src += '    url = "{}";\n'.format(src_url)
+	src += '    sha256 = "{}";\n'.format(attrs['sha256'])
+	src += '\n'
+	src += '    hg_url = "{}";\n'.format(src_hg_url)
+	src += '\n'
+	src += '    bundles = {\n'
+
+	for bundle in BUNDLES:
+		battrs = attrs['bundles'][bundle]
+
+		b_url = battrs['url']
+		b_url = b_url.replace(hg_url, '${hg_url}')
+		b_url = b_url.replace(battrs['changeset'], '${changeset}')
+
+		src += '      {} = rec {{\n'.format(bundle)
+		src += '        changeset = "{}";\n'.format(battrs['changeset'])
+		src += '        url = "{}";\n'.format(b_url)
+		src += '        sha256 = "{}";\n'.format(battrs['sha256'])
+		src += '      };\n'
+
+		if bundle != BUNDLES[-1]:
+			src += '\n'
+
+	src += '    };\n'
+	src += '  };\n'
+
+	return src
+
+def generate_sources(jdks):
+	src = '# This file is autogenerated from update.py in the same directory.\n'
+	src += '{\n'
+
+	for jdk in jdks:
+		print()
+		print('Generating sources for JDK {}...'.format(jdk))
+		src += generate_jdk(jdk)
+
+	src += '}\n'
+	return src
+
+if __name__ == '__main__':
+	print('Generating {}...'.format(SRC_PATH))
+	src = generate_sources(ICEDTEA_JDKS)
+
+	f = open(SRC_PATH, 'w', encoding = 'utf-8')
+	f.write(src)
+	f.close()
+
+	print()
+	print('Update complete!')
diff --git a/pkgs/development/compilers/idris/default.nix b/pkgs/development/compilers/idris/default.nix
index a22c8bf7762a..c32c14cf5848 100644
--- a/pkgs/development/compilers/idris/default.nix
+++ b/pkgs/development/compilers/idris/default.nix
@@ -1,23 +1,23 @@
 { cabal, annotatedWlPprint, ansiTerminal, ansiWlPprint, binary
-, boehmgc, Cabal, deepseq, filepath, gmp, happy, haskeline
-, languageJava, libffi, llvmGeneral, llvmGeneralPure, mtl, network
-, parsers, split, text, time, transformers, trifecta
-, unorderedContainers, utf8String, vector, vectorBinaryInstances
-, xml, zlib
+, boehmgc, Cabal, cheapskate, deepseq, filepath, gmp, happy
+, haskeline, languageJava, lens, libffi, llvmGeneral
+, llvmGeneralPure, mtl, network, parsers, split, text, time
+, transformers, trifecta, unorderedContainers, utf8String, vector
+, vectorBinaryInstances, xml, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "idris";
-  version = "0.9.11.2";
-  sha256 = "16xgiygn0j3kl3l36lnv6wz422nz2bvn3lk86xkdfvwjpv4630yn";
+  version = "0.9.12";
+  sha256 = "151h9qkx7yw24q0b60r78hki1y8m6sxmfars7wywnbzk3kalqb6x";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    annotatedWlPprint ansiTerminal ansiWlPprint binary Cabal deepseq
-    filepath haskeline languageJava libffi llvmGeneral llvmGeneralPure
-    mtl network parsers split text time transformers trifecta
-    unorderedContainers utf8String vector vectorBinaryInstances xml
-    zlib
+    annotatedWlPprint ansiTerminal ansiWlPprint binary Cabal cheapskate
+    deepseq filepath haskeline languageJava lens libffi llvmGeneral
+    llvmGeneralPure mtl network parsers split text time transformers
+    trifecta unorderedContainers utf8String vector
+    vectorBinaryInstances xml zlib
   ];
   buildTools = [ happy ];
   extraLibraries = [ boehmgc gmp ];
diff --git a/pkgs/development/compilers/jdk/jdk7-linux.nix b/pkgs/development/compilers/jdk/jdk7-linux.nix
index 106b9fa02d79..2d2c07c67ff7 100644
--- a/pkgs/development/compilers/jdk/jdk7-linux.nix
+++ b/pkgs/development/compilers/jdk/jdk7-linux.nix
@@ -9,7 +9,7 @@
 , glib
 , libxml2
 , libav_0_8
-, ffmpeg_0_6
+, ffmpeg
 , libxslt
 , mesa_noglu
 , freetype
@@ -149,7 +149,7 @@ stdenv.mkDerivation rec {
    * libXt is only needed on amd64
    */
   libraries =
-    [stdenv.gcc.libc glib libxml2 libav_0_8 ffmpeg_0_6 libxslt mesa_noglu xlibs.libXxf86vm alsaLib fontconfig freetype gnome.pango gnome.gtk cairo gdk_pixbuf] ++
+    [stdenv.gcc.libc glib libxml2 libav_0_8 ffmpeg libxslt mesa_noglu xlibs.libXxf86vm alsaLib fontconfig freetype gnome.pango gnome.gtk cairo gdk_pixbuf] ++
     (if swingSupport then [xlibs.libX11 xlibs.libXext xlibs.libXtst xlibs.libXi xlibs.libXp xlibs.libXt xlibs.libXrender stdenv.gcc.gcc] else []);
 
   passthru.mozillaPlugin = if installjdk then "/jre/lib/${architecture}/plugins" else "/lib/${architecture}/plugins";
diff --git a/pkgs/development/compilers/julia/0.2.1.nix b/pkgs/development/compilers/julia/0.2.1.nix
new file mode 100644
index 000000000000..f7d20a1e01f0
--- /dev/null
+++ b/pkgs/development/compilers/julia/0.2.1.nix
@@ -0,0 +1,140 @@
+{ 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
+ } :
+let
+  realGcc = stdenv.gcc.gcc;
+in
+stdenv.mkDerivation rec {
+  pname = "julia";
+  version = "0.2.1";
+  name = "${pname}-${version}";
+
+  grisu_ver = "1.1.1";
+  dsfmt_ver = "2.2";
+  openblas_ver = "v0.2.2";
+  lapack_ver = "3.4.1";
+  arpack_ver = "3.1.3";
+  clp_ver = "1.14.5";
+  lighttpd_ver = "1.4.29";
+  patchelf_ver = "0.6";
+  pcre_ver = "8.31";
+
+  grisu_src = fetchurl {
+    url = "http://double-conversion.googlecode.com/files/double-conversion-${grisu_ver}.tar.gz";
+    sha256 = "e1cabb73fd69e74f145aea91100cde483aef8b79dc730fcda0a34466730d4d1d";
+  };
+  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";
+  };
+  openblas_src = fetchurl {
+    url = "https://github.com/xianyi/OpenBLAS/tarball/${openblas_ver}";
+    name = "openblas-${openblas_ver}.tar.gz";
+    sha256 = "19ffec70f9678f5c159feadc036ca47720681b782910fbaa95aa3867e7e86d8e";
+  };
+  arpack_src = fetchurl {
+    url = "http://forge.scilab.org/index.php/p/arpack-ng/downloads/607/get/";
+    name = "arpack-ng-${arpack_ver}.tar.gz";
+    sha256 = "039w7j3dr1xy35a3hp92zg2g92gmjq6xsv0g4awlb4cffy09nr2d";
+  };
+  lapack_src = fetchurl {
+    url = "http://www.netlib.org/lapack/lapack-${lapack_ver}.tgz";
+    name = "lapack-${lapack_ver}.tgz";
+    sha256 = "93b910f94f6091a2e71b59809c4db4a14655db527cfc5821ade2e8c8ab75380f";
+  };
+  clp_src = fetchurl {
+    url = "http://www.coin-or.org/download/source/Clp/Clp-${clp_ver}.tgz";
+    name = "clp-${clp_ver}.tar.gz";
+    sha256 = "e6cabe8b4319c17a9bbe6fe172194ab6cd1fe6e376f5e9969d3040636ea3a817";
+  };
+  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";
+  };
+
+  src = fetchgit {
+    url = "git://github.com/JuliaLang/julia.git";
+    rev = "e44b5939057d87c1e854077108a1a6d66203f4fa";
+    sha256 = "7ee0f267bc1ae286764ced3c0c695c335a6f8d67bd7b3ca7e4de259333c9426a";
+  };
+
+  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
+    ];
+
+  configurePhase = ''
+    for i in GMP LLVM PCRE LAPACK OPENBLAS BLAS 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}" "${clp_src}" "${patchelf_src}" "${pcre_src}" ; do
+      copy_kill_hash "$i" deps
+    done
+    copy_kill_hash "${dsfmt_src}" deps/random
+
+    ${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"''}
+    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}"
+
+    export dontPatchELF=1
+
+    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PWD/usr/lib:$PWD/usr/lib/julia"
+  '';
+
+  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
+  '';
+
+  preInstall = ''
+  '';
+
+  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;
+  };
+}
diff --git a/pkgs/development/compilers/julia/default.nix b/pkgs/development/compilers/julia/git-20131013.nix
index ae550f5692d8..ae550f5692d8 100644
--- a/pkgs/development/compilers/julia/default.nix
+++ b/pkgs/development/compilers/julia/git-20131013.nix
diff --git a/pkgs/development/compilers/llvm/3.4/clang.nix b/pkgs/development/compilers/llvm/3.4/clang.nix
index 6bb5622d0cf5..7032056f7e47 100644
--- a/pkgs/development/compilers/llvm/3.4/clang.nix
+++ b/pkgs/development/compilers/llvm/3.4/clang.nix
@@ -28,7 +28,11 @@ stdenv.mkDerivation {
   (stdenv.lib.optional (stdenv.gcc.gcc != null) "-DGCC_INSTALL_PREFIX=${stdenv.gcc.gcc}");
 
   # Clang expects to find LLVMgold in its own prefix
-  postInstall = "ln -sv ${llvm}/lib/LLVMgold.so $out/lib";
+  # Clang expects to find sanitizer libraries in its own prefix
+  postInstall = ''
+    ln -sv ${llvm}/lib/LLVMgold.so $out/lib
+    ln -sv ${llvm}/lib/clang/3.4/lib $out/lib/clang/3.4/
+  '';
 
   passthru.gcc = stdenv.gcc.gcc;
 
diff --git a/pkgs/development/compilers/llvm/3.4/llvm.nix b/pkgs/development/compilers/llvm/3.4/llvm.nix
index 7f58abea1fa9..fad11b7a123e 100644
--- a/pkgs/development/compilers/llvm/3.4/llvm.nix
+++ b/pkgs/development/compilers/llvm/3.4/llvm.nix
@@ -54,5 +54,6 @@ in stdenv.mkDerivation rec {
     license     = stdenv.lib.licenses.bsd3;
     maintainers = with stdenv.lib.maintainers; [ shlevy lovek323 raskin viric ];
     platforms   = stdenv.lib.platforms.all;
+    broken      = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/compilers/mono/build-fix-llvm.patch b/pkgs/development/compilers/mono/build-fix-llvm.patch
new file mode 100644
index 000000000000..526986ad12c7
--- /dev/null
+++ b/pkgs/development/compilers/mono/build-fix-llvm.patch
@@ -0,0 +1,12 @@
+diff --git a/lib/CodeGen/AsmPrinter/CMakeLists.txt.old b/lib/CodeGen/AsmPrinter/CMakeLists.txt
+index be484a6..c92ff46 100644
+--- a/lib/CodeGen/AsmPrinter/CMakeLists.txt.old
++++ b/lib/CodeGen/AsmPrinter/CMakeLists.txt
+@@ -10,6 +10,7 @@ add_llvm_library(LLVMAsmPrinter
+   DwarfCompileUnit.cpp
+   DwarfDebug.cpp
+   DwarfException.cpp
++  DwarfMonoException.cpp
+   ErlangGCPrinter.cpp
+   OcamlGCPrinter.cpp
+   Win64Exception.cpp
diff --git a/pkgs/development/compilers/mono/default.nix b/pkgs/development/compilers/mono/default.nix
index 88bef618f743..4ff2dacff188 100644
--- a/pkgs/development/compilers/mono/default.nix
+++ b/pkgs/development/compilers/mono/default.nix
@@ -1,13 +1,18 @@
-{stdenv, fetchurl, bison, pkgconfig, glib, gettext, perl, libgdiplus, libX11}:
+{ stdenv, fetchurl, bison, pkgconfig, glib, gettext, perl, libgdiplus, libX11, callPackage, ncurses, zlib, withLLVM ? true }:
 
+let
+  llvm     = callPackage ./llvm.nix { };
+  llvmOpts = stdenv.lib.optionalString withLLVM "--enable-llvm --enable-llvmloaded --with-llvm=${llvm}";
+in
 stdenv.mkDerivation rec {
-  name = "mono-2.11.4";
+  name = "mono-${version}";
+  version = "3.2.8";
   src = fetchurl {
     url = "http://download.mono-project.com/sources/mono/${name}.tar.bz2";
-    sha256 = "0wv8pnj02mq012sihx2scx0avyw51b5wb976wn7x86zda0vfcsnr";
+    sha256 = "0h0s42pmgrhwqaym0b1401h70dcpr179ngcsp7f8i4hl4snqrd7x";
   };
 
-  buildInputs = [bison pkgconfig glib gettext perl libgdiplus libX11];
+  buildInputs = [bison pkgconfig glib gettext perl libgdiplus libX11 ncurses zlib];
   propagatedBuildInputs = [glib];
 
   NIX_LDFLAGS = "-lgcc_s" ;
@@ -17,7 +22,7 @@ stdenv.mkDerivation rec {
 
   # In fact I think this line does not help at all to what I
   # wanted to achieve: have mono to find libgdiplus automatically
-  configureFlags = "--x-includes=${libX11}/include --x-libraries=${libX11}/lib --with-libgdiplus=${libgdiplus}/lib/libgdiplus.so";
+  configureFlags = "--x-includes=${libX11}/include --x-libraries=${libX11}/lib --with-libgdiplus=${libgdiplus}/lib/libgdiplus.so ${llvmOpts}";
 
   # Attempt to fix this error when running "mcs --version":
   # The file /nix/store/xxx-mono-2.4.2.1/lib/mscorlib.dll is an invalid CIL image
@@ -26,10 +31,14 @@ stdenv.mkDerivation rec {
   # Parallel building doesn't work, as shows http://hydra.nixos.org/build/2983601
   enableParallelBuilding = false;
 
-  preBuild = "
+  # Patch all the necessary scripts. Also, if we're using LLVM, we fix the default
+  # LLVM path to point into the Mono LLVM build, since it's private anyway.
+  preBuild = ''
     makeFlagsArray=(INSTALL=`type -tp install`)
     patchShebangs ./
-  ";
+  '' + stdenv.lib.optionalString withLLVM ''
+    substituteInPlace mono/mini/aot-compiler.c --replace "llvm_path = g_strdup (\"\")" "llvm_path = g_strdup (\"${llvm}/bin/\")"
+  '';
 
   #Fix mono DLLMap so it can find libX11 and gdiplus to run winforms apps
   #Other items in the DLLMap may need to be pointed to their store locations, I don't think this is exhaustive
@@ -46,7 +55,7 @@ stdenv.mkDerivation rec {
     homepage = http://mono-project.com/;
     description = "Cross platform, open source .NET development framework";
     platforms = with stdenv.lib.platforms; linux;
-    maintainers = with stdenv.lib.maintainers; [viric];
+    maintainers = with stdenv.lib.maintainers; [ viric thoughtpolice ];
     license = "free"; # Combination of LGPL/X11/GPL ?
   };
 }
diff --git a/pkgs/development/compilers/mono/llvm.nix b/pkgs/development/compilers/mono/llvm.nix
new file mode 100644
index 000000000000..74f85b1519c6
--- /dev/null
+++ b/pkgs/development/compilers/mono/llvm.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, fetchurl
+, perl
+, groff
+, cmake
+, python
+, libffi
+, binutils
+, libxml2
+, valgrind
+, ncurses
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  name    = "llvm-${version}";
+  version = "3.4svn-mono-f9b1a74368";
+  src = fetchurl {
+    # from the HEAD of the 'mono3' branch
+    url = "https://github.com/mono/llvm/archive/f9b1a74368ec299fc04c4cfef4b5aa0992b7b806.tar.gz";
+    name = "${name}.tar.gz";
+    sha256 = "1bbkx4p5zdnk3nbdd5jxvbwqx8cdq8z1n1nhf639i98mggs0zhdg";
+  };
+
+  patches = [ ./build-fix-llvm.patch ];
+  unpackPhase = ''
+    unpackFile ${src}
+    mv llvm-* llvm
+    sourceRoot=$PWD/llvm
+  '';
+
+  buildInputs = [ perl groff cmake libxml2 python libffi ] ++ stdenv.lib.optional stdenv.isLinux valgrind;
+
+  propagatedBuildInputs = [ ncurses zlib ];
+
+  # hacky fix: created binaries need to be run before installation
+  preBuild = ''
+    mkdir -p $out/
+    ln -sv $PWD/lib $out
+  '';
+  postBuild = "rm -fR $out";
+
+  cmakeFlags = with stdenv; [
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DLLVM_ENABLE_FFI=ON"
+    "-DLLVM_BINUTILS_INCDIR=${binutils}/include"
+    "-DCMAKE_CXX_FLAGS=-std=c++11"
+  ] ++ stdenv.lib.optional (!isDarwin) "-DBUILD_SHARED_LIBS=ON";
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Collection of modular and reusable compiler and toolchain technologies - Mono build";
+    homepage    = http://llvm.org/;
+    license     = stdenv.lib.licenses.bsd3;
+    maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
+    platforms   = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/compilers/pakcs/default.nix b/pkgs/development/compilers/pakcs/default.nix
index a3b80c02545b..37acb4f6d1f2 100644
--- a/pkgs/development/compilers/pakcs/default.nix
+++ b/pkgs/development/compilers/pakcs/default.nix
@@ -6,7 +6,7 @@ let
 
   fsrc = fetchurl {
     url = "http://www.informatik.uni-kiel.de/~pakcs/download/${fname}-src.tar.gz";
-    sha256 = "006bq6cmycq2f4xb3zmnmxyngj64hppk3a083hy0qzj7gl77zvfw";
+    sha256 = "165f29zgb7ldl51zfwgc31fk6a67w0gznp5lhvb6i5m013g2ddi8";
   };
 
 in
diff --git a/pkgs/development/compilers/sdcc/default.nix b/pkgs/development/compilers/sdcc/default.nix
index 1a51f087a28f..fe293fbc4b8d 100644
--- a/pkgs/development/compilers/sdcc/default.nix
+++ b/pkgs/development/compilers/sdcc/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, bison, flex, boost, gputils ? null }:
 
 stdenv.mkDerivation rec {
-  version = "3.3.0";
+  version = "3.4.0";
   name = "sdcc-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/sdcc/sdcc-src-${version}.tar.bz2";
-    sha256 = "1pj4hssvq34vbryvxc2jpp2b14cgxp695ygwiax6b7l2kvr62gw7";
+    sha256 = "1yavxffqdfhdyabdza936xxh9wq4cfwa385g26gjapsdp5ighsng";
   };
 
   # TODO: remove this comment when gputils != null is tested
diff --git a/pkgs/development/compilers/swi-prolog/default.nix b/pkgs/development/compilers/swi-prolog/default.nix
index aa027401b4dc..2070da0bee41 100644
--- a/pkgs/development/compilers/swi-prolog/default.nix
+++ b/pkgs/development/compilers/swi-prolog/default.nix
@@ -4,14 +4,14 @@
 }:
 
 let
-  version = "6.6.2";
+  version = "6.6.3";
 in
 stdenv.mkDerivation {
   name = "swi-prolog-${version}";
 
   src = fetchurl {
     url = "http://www.swi-prolog.org/download/stable/src/pl-${version}.tar.gz";
-    sha256 = "1kdnc1r5c4320v5s6axk6w0jnqbkza295hdi9s5kyd8r78v6x6g4";
+    sha256 = "01dr66d7rm2xvxwm6wy71bbjvfrmzxgvmaz3sl1fb63cn8d78nz3";
   };
 
   buildInputs = [ gmp readline openssl libjpeg unixODBC libXinerama
diff --git a/pkgs/development/interpreters/lua-5/5.1.darwin.patch b/pkgs/development/interpreters/lua-5/5.1.darwin.patch
new file mode 100644
index 000000000000..b7754da79baf
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/5.1.darwin.patch
@@ -0,0 +1,52 @@
+diff --git a/Makefile b/Makefile
+index 209a132..9387b09 100644
+--- a/Makefile
++++ b/Makefile
+@@ -43,7 +43,7 @@ PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
+ # What to install.
+ TO_BIN= lua luac
+ TO_INC= lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp
+-TO_LIB= liblua.a
++TO_LIB= liblua.5.1.5.dylib
+ TO_MAN= lua.1 luac.1
+
+ # Lua version and release.
+@@ -64,6 +64,8 @@ install: dummy
+ 	cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
+ 	cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
+ 	cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
++	ln -s -f liblua.5.1.5.dylib $(INSTALL_LIB)/liblua.5.1.dylib
++	ln -s -f liblua.5.1.dylib $(INSTALL_LIB)/liblua.dylib
+
+ ranlib:
+ 	cd src && cd $(INSTALL_LIB) && $(RANLIB) $(TO_LIB)
+diff --git a/src/Makefile b/src/Makefile
+index e0d4c9f..4477d7b 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -22,7 +22,7 @@ MYLIBS=
+
+ PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
+
+-LUA_A=	liblua.a
++LUA_A=	liblua.5.1.5.dylib
+ CORE_O=	lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \
+ 	lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o  \
+ 	lundump.o lvm.o lzio.o
+@@ -48,11 +48,13 @@ o:	$(ALL_O)
+ a:	$(ALL_A)
+
+ $(LUA_A): $(CORE_O) $(LIB_O)
+-	$(AR) $@ $(CORE_O) $(LIB_O)	# DLL needs all object files
+-	$(RANLIB) $@
++	$(CC) -dynamiclib -install_name $(out)/lib/liblua.5.1.dylib \
++		-compatibility_version 5.1 -current_version 5.1.5 \
++		-o liblua.5.1.5.dylib $^
+
+ $(LUA_T): $(LUA_O) $(LUA_A)
+-	$(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
++	$(CC) -fno-common $(MYLDFLAGS) \
++		-o $@ $(LUA_O) $(LUA_A) -L. -llua.5.1.5 $(LIBS)
+
+ $(LUAC_T): $(LUAC_O) $(LUA_A)
+ 	$(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
diff --git a/pkgs/development/interpreters/lua-5/5.1.nix b/pkgs/development/interpreters/lua-5/5.1.nix
index 27b1589d27fa..9a57a034ad19 100644
--- a/pkgs/development/interpreters/lua-5/5.1.nix
+++ b/pkgs/development/interpreters/lua-5/5.1.nix
@@ -18,9 +18,14 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ readline ];
 
-  patches = [ dsoPatch ];
+  patches = if stdenv.isDarwin then [ ./5.1.darwin.patch ] else [ dsoPatch ];
 
-  configurePhase = ''
+  configurePhase = 
+    if stdenv.isDarwin
+    then ''
+    makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=macosx CFLAGS="-DLUA_USE_LINUX -fno-common -O2" LDLAGS="" )
+    installFlagsArray=( TO_BIN="lua luac" TO_LIB="liblua.5.1.5.dylib" INSTALL_DATA='cp -d' )
+  '' else ''
     makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=linux CFLAGS="-DLUA_USE_LINUX -O2 -fPIC" LDLAGS="-fPIC" )
     installFlagsArray=( TO_BIN="lua luac" TO_LIB="liblua.a liblua.so liblua.so.5.1 liblua.so.5.1.5" INSTALL_DATA='cp -d' )
   '';
diff --git a/pkgs/development/interpreters/lua-5/5.2.darwin.patch b/pkgs/development/interpreters/lua-5/5.2.darwin.patch
new file mode 100644
index 000000000000..ffc3ff34be70
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/5.2.darwin.patch
@@ -0,0 +1,52 @@
+diff --git a/Makefile b/Makefile
+index 209a132..9387b09 100644
+--- a/Makefile
++++ b/Makefile
+@@ -43,5 +43,5 @@ PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
+ # What to install.
+ TO_BIN= lua luac
+ TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp
+-TO_LIB= liblua.a
++TO_LIB= liblua.${version}.dylib
+ TO_MAN= lua.1 luac.1
+
+ # Lua version and release.
+@@ -64,3 +64,5 @@ install: dummy
+ 	cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
+ 	cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
+ 	cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
++	ln -s -f liblua.${version}.dylib $(INSTALL_LIB)/liblua.${majorVersion}.dylib
++	ln -s -f liblua.${majorVersion}.dylib $(INSTALL_LIB)/liblua.dylib
+
+ ranlib:
+ 	cd src && cd $(INSTALL_LIB) && $(RANLIB) $(TO_LIB)
+diff --git a/src/Makefile b/src/Makefile
+index fea895b..d9146d0 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -28,7 +28,7 @@ MYOBJS=
+ 
+ PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
+ 
+-LUA_A=	liblua.a
++LUA_A=	liblua.${version}.dylib
+ CORE_O=	lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \
+ 	lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \
+ 	ltm.o lundump.o lvm.o lzio.o
+@@ -56,11 +56,13 @@ o:	$(ALL_O)
+ a:	$(ALL_A)
+ 
+ $(LUA_A): $(BASE_O)
+-	$(AR) $@ $(BASE_O)
+-	$(RANLIB) $@
++	$(CC) -dynamiclib -install_name $(out)/lib/liblua.${version}.dylib \
++		-compatibility_version ${version} -current_version ${version} \
++		-o liblua.${version}.dylib $^
+ 
+ $(LUA_T): $(LUA_O) $(LUA_A)
+-	$(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
++	$(CC) -fno-common $(MYLDFLAGS) \
++		-o $@ $(LUA_O) $(LUA_A) -L. -llua.${version} $(LIBS)
+ 
+ $(LUAC_T): $(LUAC_O) $(LUA_A)
+ 	$(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
diff --git a/pkgs/development/interpreters/lua-5/5.2.nix b/pkgs/development/interpreters/lua-5/5.2.nix
index 70ab0c3bdf8b..3e7323e461d1 100644
--- a/pkgs/development/interpreters/lua-5/5.2.nix
+++ b/pkgs/development/interpreters/lua-5/5.2.nix
@@ -19,9 +19,14 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ readline ];
 
-  patches = [ dsoPatch ];
+  patches = if stdenv.isDarwin then [ ./5.2.darwin.patch ] else [ dsoPatch ];
 
-  configurePhase = ''
+  configurePhase =
+    if stdenv.isDarwin
+    then ''
+    makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=macosx CFLAGS="-DLUA_USE_LINUX -fno-common -O2 -fPIC${if compat then " -DLUA_COMPAT_ALL" else ""}" LDLAGS="-fPIC" V=${majorVersion} R=${version} )
+    installFlagsArray=( TO_BIN="lua luac" TO_LIB="liblua.${version}.dylib" INSTALL_DATA='cp -d' )
+  '' else ''
     makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=linux CFLAGS="-DLUA_USE_LINUX -O2 -fPIC${if compat then " -DLUA_COMPAT_ALL" else ""}" LDLAGS="-fPIC" V=${majorVersion} R=${version} )
     installFlagsArray=( TO_BIN="lua luac" TO_LIB="liblua.a liblua.so liblua.so.${majorVersion} liblua.so.${version}" INSTALL_DATA='cp -d' )
   '';
diff --git a/pkgs/development/interpreters/luajit/default.nix b/pkgs/development/interpreters/luajit/default.nix
index f74ad18d5e41..46c0b49c3b89 100644
--- a/pkgs/development/interpreters/luajit/default.nix
+++ b/pkgs/development/interpreters/luajit/default.nix
@@ -1,28 +1,31 @@
 { stdenv, fetchurl }:
 
-stdenv.mkDerivation rec{
-    version = "2.0.2";
-    name = "LuaJIT-${version}";
+stdenv.mkDerivation rec {
+  name    = "luajit-${version}";
+  version = "2.0.3";
 
-    src = fetchurl {
-        url="http://luajit.org/download/${name}.tar.gz";
-        sha256="0f3cykihfdn3gi6na9p0xjd4jnv26z18m441n5vyg42q9abh4ln0";
-    };
+  src = fetchurl {
+    url    = "http://luajit.org/download/LuaJIT-${version}.tar.gz";
+    sha256 = "0ydxpqkmsn2c341j4r2v6r5r0ig3kbwv3i9jran3iv81s6r6rgjm";
+  };
 
-    patchPhase = stdenv.lib.optionalString (stdenv.gcc.libc != null)
-    ''
-      substituteInPlace Makefile \
-        --replace ldconfig ${stdenv.gcc.libc}/sbin/ldconfig
-    '';
+  enableParallelBuilding = true;
 
-    installPhase = ''
-        make install PREFIX=$out
-    '';
+  patchPhase = stdenv.lib.optionalString (stdenv.gcc.libc != null)
+  ''
+    substituteInPlace Makefile \
+      --replace ldconfig ${stdenv.gcc.libc}/sbin/ldconfig
+  '';
 
-    meta = {
-        description= "Just-in-time compiler and interpreter for lua 5.1.";
-        homepage = http://luajit.org;
-        license = stdenv.lib.licenses.mit;
-	platorms = stdenv.lib.platforms.linux;
-    };
+  configurePhase = false;
+  buildFlags     = [ "amalg" ]; # Build highly optimized version
+  installPhase   = "make install PREFIX=$out";
+
+  meta = {
+    description = "high-performance JIT compiler for Lua 5.1";
+    homepage    = http://luajit.org;
+    license     = stdenv.lib.licenses.mit;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
 }
diff --git a/pkgs/development/interpreters/perl/5.16/default.nix b/pkgs/development/interpreters/perl/5.16/default.nix
index a8c175453037..bbd9e003b2c7 100644
--- a/pkgs/development/interpreters/perl/5.16/default.nix
+++ b/pkgs/development/interpreters/perl/5.16/default.nix
@@ -70,6 +70,8 @@ stdenv.mkDerivation rec {
   testsToSkip = ''
     lib/Net/hostent.t \
     dist/IO/t/{io_multihomed.t,io_sock.t} \
+    dist/Net-Ping/t/*.t \
+    cpan/autodie/t/truncate.t \
     t/porting/{maintainers.t,regen.t} \
     cpan/Socket/t/get{name,addr}info.t \
   '' + optionalString stdenv.isFreeBSD ''
diff --git a/pkgs/development/interpreters/python/2.7/CVE-2014-1912.patch b/pkgs/development/interpreters/python/2.7/CVE-2014-1912.patch
new file mode 100644
index 000000000000..95399bf76073
--- /dev/null
+++ b/pkgs/development/interpreters/python/2.7/CVE-2014-1912.patch
@@ -0,0 +1,57 @@
+# Edited from Mercurial patch: deleted the NEWS hunk, since it didn't apply cleanly.
+# It added the following line to NEWS:
+# - Issue #20246: Fix buffer overflow in socket.recvfrom_into.
+
+# HG changeset patch
+# User Benjamin Peterson <benjamin@python.org>
+# Date 1389671978 18000
+# Node ID 87673659d8f7ba1623cd4914f09ad3d2ade034e9
+# Parent  2631d33ee7fbd5f0288931ef37872218d511d2e8
+complain when nbytes > buflen to fix possible buffer overflow (closes #20246)
+
+diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
+--- a/Lib/test/test_socket.py
++++ b/Lib/test/test_socket.py
+@@ -1620,6 +1620,16 @@ class BufferIOTest(SocketConnectedTest):
+ 
+     _testRecvFromIntoMemoryview = _testRecvFromIntoArray
+ 
++    def testRecvFromIntoSmallBuffer(self):
++        # See issue #20246.
++        buf = bytearray(8)
++        self.assertRaises(ValueError, self.cli_conn.recvfrom_into, buf, 1024)
++
++    def _testRecvFromIntoSmallBuffer(self):
++        with test_support.check_py3k_warnings():
++            buf = buffer(MSG*2048)
++        self.serv_conn.send(buf)
++
+ 
+ TIPC_STYPE = 2000
+ TIPC_LOWER = 200
+diff --git a/Misc/ACKS b/Misc/ACKS
+--- a/Misc/ACKS
++++ b/Misc/ACKS
+@@ -979,6 +979,7 @@ Eric V. Smith
+ Christopher Smith
+ Gregory P. Smith
+ Roy Smith
++Ryan Smith-Roberts
+ Rafal Smotrzyk
+ Dirk Soede
+ Paul Sokolovsky
+diff --git a/Misc/NEWS b/Misc/NEWS
+--- a/Modules/socketmodule.c
++++ b/Modules/socketmodule.c
+@@ -2742,6 +2742,10 @@ sock_recvfrom_into(PySocketSockObject *s
+     if (recvlen == 0) {
+         /* If nbytes was not specified, use the buffer's length */
+         recvlen = buflen;
++    } else if (recvlen > buflen) {
++        PyErr_SetString(PyExc_ValueError,
++                        "nbytes is greater than the length of the buffer");
++        goto error;
+     }
+ 
+     readlen = sock_recvfrom_guts(s, buf.buf, recvlen, flags, &addr);
+
diff --git a/pkgs/development/interpreters/python/2.7/default.nix b/pkgs/development/interpreters/python/2.7/default.nix
index e9277ce2dafb..eeadc3c8cc7f 100644
--- a/pkgs/development/interpreters/python/2.7/default.nix
+++ b/pkgs/development/interpreters/python/2.7/default.nix
@@ -28,6 +28,10 @@ let
       # patch python to put zero timestamp into pyc
       # if DETERMINISTIC_BUILD env var is set
       ./deterministic-build.patch
+
+      # See http://bugs.python.org/issue20246
+      # This will be fixed in 2.7.7.
+      ./CVE-2014-1912.patch
     ];
 
   postPatch = stdenv.lib.optionalString (stdenv.gcc.libc != null) ''
diff --git a/pkgs/development/interpreters/python/3.2/CVE-2014-1912.patch b/pkgs/development/interpreters/python/3.2/CVE-2014-1912.patch
new file mode 100644
index 000000000000..c69efd17f964
--- /dev/null
+++ b/pkgs/development/interpreters/python/3.2/CVE-2014-1912.patch
@@ -0,0 +1,57 @@
+# Edited from Mercurial patch: deleted the NEWS hunk, since it didn't apply cleanly.
+# It added the following line to NEWS:
+# - Issue #20246: Fix buffer overflow in socket.recvfrom_into.
+
+
+# HG changeset patch
+# User Benjamin Peterson <benjamin@python.org>
+# Date 1389671978 18000
+# Node ID 9c56217e5c793685eeaf0ee224848c402bdf1e4c
+# Parent  2b5cd6d4d149dea6c6941b7e07ada248b29fc9f6
+complain when nbytes > buflen to fix possible buffer overflow (closes #20246)
+
+diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
+--- a/Lib/test/test_socket.py
++++ b/Lib/test/test_socket.py
+@@ -1968,6 +1968,14 @@ class BufferIOTest(SocketConnectedTest):
+ 
+     _testRecvFromIntoMemoryview = _testRecvFromIntoArray
+ 
++    def testRecvFromIntoSmallBuffer(self):
++        # See issue #20246.
++        buf = bytearray(8)
++        self.assertRaises(ValueError, self.cli_conn.recvfrom_into, buf, 1024)
++
++    def _testRecvFromIntoSmallBuffer(self):
++        self.serv_conn.send(MSG*2048)
++
+ 
+ TIPC_STYPE = 2000
+ TIPC_LOWER = 200
+diff --git a/Misc/ACKS b/Misc/ACKS
+--- a/Misc/ACKS
++++ b/Misc/ACKS
+@@ -1020,6 +1020,7 @@ Eric V. Smith
+ Christopher Smith
+ Gregory P. Smith
+ Roy Smith
++Ryan Smith-Roberts
+ Rafal Smotrzyk
+ Dirk Soede
+ Paul Sokolovsky
+diff --git a/Misc/NEWS b/Misc/NEWS
+--- a/Modules/socketmodule.c
++++ b/Modules/socketmodule.c
+@@ -2598,6 +2598,11 @@ sock_recvfrom_into(PySocketSockObject *s
+     if (recvlen == 0) {
+         /* If nbytes was not specified, use the buffer's length */
+         recvlen = buflen;
++    } else if (recvlen > buflen) {
++        PyBuffer_Release(&pbuf);
++        PyErr_SetString(PyExc_ValueError,
++                        "nbytes is greater than the length of the buffer");
++        return NULL;
+     }
+ 
+     readlen = sock_recvfrom_guts(s, buf, recvlen, flags, &addr);
+
diff --git a/pkgs/development/interpreters/python/3.2/default.nix b/pkgs/development/interpreters/python/3.2/default.nix
index 03f2d392bd11..c103b0f59cde 100644
--- a/pkgs/development/interpreters/python/3.2/default.nix
+++ b/pkgs/development/interpreters/python/3.2/default.nix
@@ -32,6 +32,12 @@ stdenv.mkDerivation {
     sha256 = "0pxs234g08v3lar09lvzxw4vqdpwkbqmvkv894j2w7aklskcjd6v";
   };
 
+  patches =
+    [
+      # See http://bugs.python.org/issue20246
+      ./CVE-2014-1912.patch
+    ];
+
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
 
   preConfigure = ''
diff --git a/pkgs/development/interpreters/python/3.3/default.nix b/pkgs/development/interpreters/python/3.3/default.nix
index 33b67a10f19b..d744fa9672f1 100644
--- a/pkgs/development/interpreters/python/3.3/default.nix
+++ b/pkgs/development/interpreters/python/3.3/default.nix
@@ -3,6 +3,7 @@
 , db
 , gdbm
 , libX11, xproto
+, lzma
 , ncurses
 , openssl
 , readline
@@ -20,7 +21,7 @@ let
   version = "${majorVersion}.5";
 
   buildInputs = filter (p: p != null) [
-    zlib bzip2 gdbm sqlite db readline ncurses openssl tcl tk libX11 xproto
+    zlib bzip2 lzma gdbm sqlite db readline ncurses openssl tcl tk libX11 xproto
   ];
 in
 stdenv.mkDerivation {
diff --git a/pkgs/development/interpreters/python/3.4/default.nix b/pkgs/development/interpreters/python/3.4/default.nix
index 8d7da9d91e64..0b8774463245 100644
--- a/pkgs/development/interpreters/python/3.4/default.nix
+++ b/pkgs/development/interpreters/python/3.4/default.nix
@@ -3,6 +3,7 @@
 , db
 , gdbm
 , libX11, xproto
+, lzma
 , ncurses
 , openssl
 , readline
@@ -18,10 +19,10 @@ with stdenv.lib;
 let
   majorVersion = "3.4";
   version = "${majorVersion}.0";
-  fullVersion = "${version}rc2";
+  fullVersion = "${version}";
 
   buildInputs = filter (p: p != null) [
-    zlib bzip2 gdbm sqlite db readline ncurses openssl tcl tk libX11 xproto
+    zlib bzip2 lzma gdbm sqlite db readline ncurses openssl tcl tk libX11 xproto
   ];
 in
 stdenv.mkDerivation {
@@ -30,7 +31,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://www.python.org/ftp/python/${version}/Python-${fullVersion}.tar.xz";
-    sha256 = "0v37mlkwzbc8m54h3nb04x6xm2yx5fmd7flq2shn37ixf9d0ih6z";
+    sha256 = "1gjcn5c3zqg161vwzh43ciha15w0plf5v7cyfm372pnllb08cdpi";
   };
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
diff --git a/pkgs/development/libraries/SDL2/default.nix b/pkgs/development/libraries/SDL2/default.nix
index 6964d8ac8040..b122248bb231 100644
--- a/pkgs/development/libraries/SDL2/default.nix
+++ b/pkgs/development/libraries/SDL2/default.nix
@@ -22,11 +22,11 @@ let
       '';
 in
 stdenv.mkDerivation rec {
-  name = "SDL2-2.0.2";
+  name = "SDL2-2.0.3";
 
   src = fetchurl {
     url = "http://www.libsdl.org/release/${name}.tar.gz";
-    sha256 = "0l78h3wlirnxxrdw3kkm9amhgjn6xrs9l5j871r552wabbw5f0ar";
+    sha256 = "0369ngvb46x6c26h8zva4x22ywgy6mvn0wx87xqwxg40pxm9m9m5";
   };
 
   # Since `libpulse*.la' contain `-lgdbm', PulseAudio must be propagated.
diff --git a/pkgs/development/libraries/accountservice/default.nix b/pkgs/development/libraries/accountservice/default.nix
index 8cab9e39e19d..9734a6bc9804 100644
--- a/pkgs/development/libraries/accountservice/default.nix
+++ b/pkgs/development/libraries/accountservice/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, glib, intltool, libtool, gobjectIntrospection, polkit }:
+{ stdenv, fetchurl, pkgconfig, glib, intltool
+, libtool, gobjectIntrospection, polkit, systemd }:
 
 stdenv.mkDerivation rec {
   name = "accountsservice-0.6.35";
@@ -8,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0f1hzl6hw56xvwgmd4yvmdyj15xj1fafw45pzv3qarww7h0wg8b5";
   };
 
-  buildInputs = [ pkgconfig glib intltool libtool gobjectIntrospection polkit ];
+  buildInputs = [ pkgconfig glib intltool libtool
+                  gobjectIntrospection polkit systemd ];
 
+  configureFlags = [ "--with-systemdsystemunitdir=$(out)/etc/systemd/system" ];
 }
diff --git a/pkgs/development/libraries/aspell/default.nix b/pkgs/development/libraries/aspell/default.nix
index a69cee99b2b6..6b054aaf44b1 100644
--- a/pkgs/development/libraries/aspell/default.nix
+++ b/pkgs/development/libraries/aspell/default.nix
@@ -12,6 +12,13 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  preConfigure = ''
+    configureFlagsArray=(
+      --enable-pkglibdir=$out/lib/aspell
+      --enable-pkgdatadir=$out/lib/aspell
+    );
+  '';
+
   # Note: Users should define the `ASPELL_CONF' environment variable to
   # `dict-dir $HOME/.nix-profile/lib/aspell/' so that they can access
   # dictionaries installed in their profile.
diff --git a/pkgs/development/libraries/aspell/dictionaries.nix b/pkgs/development/libraries/aspell/dictionaries.nix
index 6500e602e854..79a75708c169 100644
--- a/pkgs/development/libraries/aspell/dictionaries.nix
+++ b/pkgs/development/libraries/aspell/dictionaries.nix
@@ -140,12 +140,21 @@ in {
     };
   };
 
-  pt = buildDict {
-    shortName = "pt-0.50-1";
+  pt_BR = buildDict {
+    shortName = "pt_BR-20090702";
+    fullName = "Brazilian Portuguese";
+    src = fetchurl {
+      url = mirror://gnu/aspell/dict/pt_BR/aspell6-pt_BR-20090702-0.tar.bz2;
+      sha256 = "1y09lx9zf2rnp55r16b2vgj953l3538z1vaqgflg9mdvm555bz3p";
+    };
+  };
+
+  pt_PT = buildDict {
+    shortName = "pt_PT-20070510";
     fullName = "Portuguese";
     src = fetchurl {
-      url = mirror://gnu/aspell/dict/pt/aspell-pt-0.50-1.tar.bz2;
-      sha256 = "07xzlnxxzadqsapng29p2gdwj0bijv10wpjnqlwzmkxnx6fxzkcy";
+      url = mirror://gnu/aspell/dict/pt_PT/aspell6-pt_PT-20070510-0.tar.bz2;
+      sha256 = "1mnr994cwlag6shy8865ky99lymysiln07mbldcncahg90dagdxq";
     };
   };
 
diff --git a/pkgs/development/libraries/atk/default.nix b/pkgs/development/libraries/atk/default.nix
index a93aaa5a43fc..2dca2a8e1ec5 100644
--- a/pkgs/development/libraries/atk/default.nix
+++ b/pkgs/development/libraries/atk/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, pkgconfig, perl, glib, libintlOrEmpty, gobjectIntrospection }:
 
 let
-  ver_maj = "2.10";
+  ver_maj = "2.12";
   ver_min = "0";
 in
 stdenv.mkDerivation rec {
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/atk/${ver_maj}/${name}.tar.xz";
-    sha256 = "1c2hbg66wfvibsz2ia0ri48yr62751fn950i97c53j3b0fjifsb3";
+    sha256 = "13zijfcmx7sda83qkryzsmr9hw0r3b73xkagq9cmm733fhcl7a28";
   };
 
   buildInputs = libintlOrEmpty;
diff --git a/pkgs/development/libraries/capstone/default.nix b/pkgs/development/libraries/capstone/default.nix
new file mode 100644
index 000000000000..d61c82bb7d3b
--- /dev/null
+++ b/pkgs/development/libraries/capstone/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, bash }:
+
+stdenv.mkDerivation rec {
+  name    = "capstone-${version}";
+  version = "2.1.2";
+
+  src = fetchurl {
+    url    = "http://www.capstone-engine.org/download/${version}/${name}.tgz";
+    sha256 = "1k6px3vdcsfby3lakss5sazs875kbzkzqk7cj79xrm2y5ik1vr29";
+  };
+
+  buildPhase = false;
+
+  patchPhase = ''
+    substituteInPlace make.sh --replace "/usr/bin/env bash" "${bash}/bin/bash"
+  '';
+
+  installPhase = "PREFIX=$out ./make.sh install";
+
+  meta = {
+    description = "advanced disassembly library";
+    homepage    = "http://www.capstone-engine.org";
+    license     = stdenv.lib.licenses.bsd3;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/development/libraries/clutter-gtk/default.nix b/pkgs/development/libraries/clutter-gtk/default.nix
index 040123d42766..3614d149489d 100644
--- a/pkgs/development/libraries/clutter-gtk/default.nix
+++ b/pkgs/development/libraries/clutter-gtk/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, pkgconfig, clutter, gtk3 }:
+{ fetchurl, stdenv, pkgconfig, gobjectIntrospection, clutter, gtk3 }:
 
 stdenv.mkDerivation rec {
   name = "clutter-gtk-1.4.4";
@@ -9,9 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   propagatedBuildInputs = [ clutter gtk3 ];
-  nativeBuildInputs = [ pkgconfig ];
-
-  configureFlags = [ "--disable-introspection" ]; # not needed anywhere AFAIK
+  nativeBuildInputs = [ pkgconfig gobjectIntrospection ];
 
   postBuild = "rm -rf $out/share/gtk-doc";
 
diff --git a/pkgs/development/libraries/concurrencykit/default.nix b/pkgs/development/libraries/concurrencykit/default.nix
new file mode 100644
index 000000000000..59de923ad43d
--- /dev/null
+++ b/pkgs/development/libraries/concurrencykit/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name    = "concurrencykit-${version}";
+  version = "0.4.1";
+
+  src = fetchurl {
+    url    = "http://concurrencykit.org/releases/ck-${version}.tar.gz";
+    sha256 = "1gi5gpkxvbb6vkhjm9kab7dz1av2i11f1pggxp001rqq2mi3i6aq";
+  };
+
+  meta = {
+    description = "A library of safe, high-performance concurrent data structures";
+    homepage    = "http://concurrencykit.org";
+    license     = stdenv.lib.licenses.bsd2;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/development/libraries/db/generic.nix b/pkgs/development/libraries/db/generic.nix
index de9fb27b4ec2..6217bc461249 100644
--- a/pkgs/development/libraries/db/generic.nix
+++ b/pkgs/development/libraries/db/generic.nix
@@ -5,7 +5,7 @@
 # Options from inherited versions
 , version, sha256
 , extraPatches ? [ ]
-, license ? "Berkeley Database License"
+, license ? stdenv.lib.licenses.sleepycat
 }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     url = "http://download.oracle.com/berkeley-db/${name}.tar.gz";
     sha256 = sha256;
   };
-  
+
   patches = extraPatches;
 
   configureFlags = [
diff --git a/pkgs/development/libraries/faac/default.nix b/pkgs/development/libraries/faac/default.nix
index 8bfaaf3ea497..2c4f8da77835 100644
--- a/pkgs/development/libraries/faac/default.nix
+++ b/pkgs/development/libraries/faac/default.nix
@@ -15,6 +15,6 @@ stdenv.mkDerivation rec {
     homepage = http://www.audiocoding.com/faac.html;
     # Incompatible with GPL. Some changes to the base code, included in faac,
     # are under LGPL though.
-    license = "unfree";
+    license = "unfree-redistributable";
   };
 }
diff --git a/pkgs/development/libraries/facile/default.nix b/pkgs/development/libraries/facile/default.nix
index edbe99cd8b07..5e3776afbc05 100644
--- a/pkgs/development/libraries/facile/default.nix
+++ b/pkgs/development/libraries/facile/default.nix
@@ -9,9 +9,11 @@ stdenv.mkDerivation rec {
   };
   
   dontAddPrefix = 1;
-        
-  patchPhase = "sed -e 's@mkdir@mkdir -p@' -i Makefile";
-  
+
+  patches = [ ./ocaml_4.xx.patch ];
+
+  postPatch = "sed -e 's@mkdir@mkdir -p@' -i Makefile";
+
   postConfigure = "make -C src .depend";
   
   makeFlags = "FACILEDIR=\${out}/lib/ocaml/facile";
diff --git a/pkgs/development/libraries/facile/ocaml_4.xx.patch b/pkgs/development/libraries/facile/ocaml_4.xx.patch
new file mode 100644
index 000000000000..429405fabdaa
--- /dev/null
+++ b/pkgs/development/libraries/facile/ocaml_4.xx.patch
@@ -0,0 +1,12 @@
+diff -rupN facile-1.1/src/fcl_data.ml facile-1.1-patched//src/fcl_data.ml
+--- facile-1.1/src/fcl_data.ml	2004-09-08 11:51:02.000000000 +0200
++++ facile-1.1-patched//src/fcl_data.ml	2012-12-16 13:49:36.286722670 +0100
+@@ -16,7 +16,7 @@ end
+ 
+ module Hashtbl = struct
+   type ('a, 'b) t = ('a, 'b) Hashtbl.t
+-  let create = Hashtbl.create
++  let create x = Hashtbl.create x
+   let get h = h
+ 
+   let add h k d =
diff --git a/pkgs/development/libraries/ffmpeg/0.10.nix b/pkgs/development/libraries/ffmpeg/0.10.nix
index f356bceaf401..99c823e7b297 100644
--- a/pkgs/development/libraries/ffmpeg/0.10.nix
+++ b/pkgs/development/libraries/ffmpeg/0.10.nix
@@ -21,11 +21,11 @@ assert vdpauSupport -> libvdpau != null;
 assert faacSupport -> faac != null;
 
 stdenv.mkDerivation rec {
-  name = "ffmpeg-0.10.11";
+  name = "ffmpeg-0.10.12";
 
   src = fetchurl {
     url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
-    sha256 = "1l1nyvsfafl9w0falv1hcm65r2rlxyb59har0rkrrpi56fj1ma4r";
+    sha256 = "00nvm3iysn8zincpvv1abqrxqj1ky0322dh2j9csjw983358538i";
   };
 
   # `--enable-gpl' (as well as the `postproc' and `swscale') mean that
diff --git a/pkgs/development/libraries/fmod/default.nix b/pkgs/development/libraries/fmod/default.nix
index d85a24fa63ad..ba9bb286cdfa 100644
--- a/pkgs/development/libraries/fmod/default.nix
+++ b/pkgs/development/libraries/fmod/default.nix
@@ -1,28 +1,32 @@
-{stdenv, fetchurl }:
+{ stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "fmod-42204";
-  src = if stdenv.system == "i686-linux" then
-    fetchurl {
-      url = http://www.fmod.org/index.php/release/version/fmodapi42204linux.tar.gz;
-      sha256 = "64eedc5b37c597eb925de446106d75cab0b5a79697d5ec048d34702812c08563";
-    } else if stdenv.system == "x86_64-linux" then
-    fetchurl {
-      url = http://www.fmod.org/index.php/release/version/fmodapi42204linux64.tar.gz;
-      sha256 = "3f2eec8265838a1005febe07c4971660e85010e4622911890642dc438746edf3";
-    } else throw "unsupported platform ${stdenv.system} (only i686-linux and x86_64 linux supported yet)";
+assert (stdenv.system == "x86_64-linux") || (stdenv.system == "i686-linux");
+let
+  bits = stdenv.lib.optionalString (stdenv.system == "x86_64-linux") "64";
+in
+stdenv.mkDerivation rec {
+  name    = "fmod-${version}";
+  version = "4.44.32";
 
-  preInstall = ''
-    sed -e /ldconfig/d -i Makefile
-    sed -e s@/usr/local@$out@ -i Makefile
-    sed -e s@/include/fmodex@/include@ -i Makefile
-    mkdir -p $out/lib
-    mkdir -p $out/include
+  src = fetchurl {
+    url = "http://www.fmod.org/download/fmodex/api/Linux/fmodapi44432linux.tar.gz";
+    sha256 = "071m2snzz5vc5ca7dvsf6w31nrgk5k9xb6mp7yzqdj4bkjad2hyd";
+  };
+
+  buildPhase = "true";
+  installPhase = ''
+    mkdir -p $out/lib $out/include/fmodex
+
+    cd api/inc && cp * $out/include/fmodex && cd ../lib
+    cp libfmodex${bits}-${version}.so  $out/lib/libfmodex.so
+    cp libfmodexL${bits}-${version}.so $out/lib/libfmodexL.so
   '';
 
   meta = {
-    homepage = http://www.fmod.org/;
     description = "Programming library and toolkit for the creation and playback of interactive audio";
-    license = "unfree";
+    homepage    = "http://www.fmod.org/";
+    license     = stdenv.lib.licenses.unfreeRedistributable;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
   };
 }
diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
index cd3e76316186..39be4720eb14 100644
--- a/pkgs/development/libraries/gdk-pixbuf/default.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -3,14 +3,14 @@
 
 let
   ver_maj = "2.30";
-  ver_min = "4";
+  ver_min = "6";
 in
 stdenv.mkDerivation rec {
   name = "gdk-pixbuf-${ver_maj}.${ver_min}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gdk-pixbuf/${ver_maj}/${name}.tar.xz";
-    sha256 = "0ldhpdalbyi6q5k1dz498i9hqcsd51yxq0f91ck9p0h4v38blfx1";
+    sha256 = "0nkz19xlh60bf9bqylh98n8rynpjyx1nzp1gcr6zljgvmnj4yfa3";
   };
 
   setupHook = ./setup-hook.sh;
diff --git a/pkgs/development/libraries/geoip/default.nix b/pkgs/development/libraries/geoip/default.nix
index 94c0505bc6fa..1abcb7c6943d 100644
--- a/pkgs/development/libraries/geoip/default.nix
+++ b/pkgs/development/libraries/geoip/default.nix
@@ -1,24 +1,19 @@
-a :
-let
-  s = import ./src-for-default.nix;
-  buildInputs = with a; [
-    zlib
-  ];
-in
-rec {
-  src = a.fetchUrlFromSrcInfo s;
+{ stdenv, fetchurl }:
 
-  inherit (s) name;
-  inherit buildInputs;
-  configureFlags = [];
+let version = "1.6.0"; in
 
-  /* doConfigure should be removed if not needed */
-  phaseNames = ["doConfigure" "doMakeInstall"];
+stdenv.mkDerivation {
+  name = "geoip-${version}";
+
+  src = fetchurl {
+    url = "http://geolite.maxmind.com/download/geoip/api/c/GeoIP-${version}.tar.gz";
+    sha256 = "0dd6si4cvip73kxdn43apg6yygvaf7dnk5awqfg9w2fd2ll0qnh7";
+  };
 
   meta = {
     description = "Geolocation API";
-    maintainers = [
-      a.lib.maintainers.raskin
-    ];
+    maintainers = [ stdenv.lib.maintainers.raskin ];
+    license = stdenv.lib.licenses.lgpl21;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/geoip/src-for-default.nix b/pkgs/development/libraries/geoip/src-for-default.nix
deleted file mode 100644
index 1fc4b9b8755a..000000000000
--- a/pkgs/development/libraries/geoip/src-for-default.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-rec {
-  advertisedUrl="http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.6.tar.gz";
-  version = "1.4.6";
-  url="http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.6.0.tar.gz";
-  hash = "0dd6si4cvip73kxdn43apg6yygvaf7dnk5awqfg9w2fd2ll0qnh7";
-  name = "geoip-1.6.0";
-  
-}
diff --git a/pkgs/development/libraries/geoip/src-info-for-default.nix b/pkgs/development/libraries/geoip/src-info-for-default.nix
deleted file mode 100644
index 99c79227c630..000000000000
--- a/pkgs/development/libraries/geoip/src-info-for-default.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  downloadPage = "http://geolite.maxmind.com/download/geoip/api/c/";
-  sourceRegexp = "GeoIP-[0-9.]+[.]tar[.]gz";
-  choiceCommand = "tail -1";
-  baseName = "geoip";
-}
diff --git a/pkgs/development/libraries/giflib/4.1.nix b/pkgs/development/libraries/giflib/4.1.nix
index 35d66b3647b4..13cd1c79b6a7 100644
--- a/pkgs/development/libraries/giflib/4.1.nix
+++ b/pkgs/development/libraries/giflib/4.1.nix
@@ -6,5 +6,8 @@ stdenv.mkDerivation {
     url = mirror://sourceforge/giflib/giflib-4.1.6.tar.bz2;
     sha256 = "1v9b7ywz7qg8hli0s9vv1b8q9xxb2xvqq2mg1zpr73xwqpcwxhg1";
   };
+  meta = {
+    branch = "4.1";
+  };
 }
 
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index 6fa77b233c67..033a1def3ce7 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -35,8 +35,8 @@ let
     ln -sr -t "$out/include/" "$out"/lib/*/include/* 2>/dev/null || true
   '';
 
-  ver_maj = "2.38";
-  ver_min = "2";
+  ver_maj = "2.40";
+  ver_min = "0";
 in
 with { inherit (stdenv.lib) optional optionals optionalString; };
 
@@ -45,9 +45,11 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/glib/${ver_maj}/${name}.tar.xz";
-    sha256 = "0d2px8m77603s5pm3md4bcm5d0ksbcsb6ik1w52hjslnq1a9hsh5";
+    sha256 = "1d98mbqjmc34s8095lkw1j1bwvnnkw9581yfvjaikjvfjsaz29qd";
   };
 
+  setupHook = ./setup-hook.sh;
+
   buildInputs = [ libelf ]
     ++ optionals doCheck [ tzdata libxml2 desktop_file_utils shared_mime_info ];
 
diff --git a/pkgs/development/libraries/glib/setup-hook.sh b/pkgs/development/libraries/glib/setup-hook.sh
new file mode 100644
index 000000000000..f173744e5ca6
--- /dev/null
+++ b/pkgs/development/libraries/glib/setup-hook.sh
@@ -0,0 +1,17 @@
+# Install gschemas, if any, in a package-specific directory
+installFlagsArray+=("gsettingsschemadir=$out/share/gsettings-schemas/$name/glib-2.0/schemas/")
+
+make_glib_find_gsettings_schemas() {
+    # For packages that need gschemas of other packages (e.g. empathy)
+    if [ -d "$1"/share/gsettings-schemas/*/glib-2.0/schemas ]; then
+        addToSearchPath GSETTINGS_SCHEMAS_PATH "$1/share/gsettings-schemas/"*
+    fi
+}
+
+envHooks+=(make_glib_find_gsettings_schemas)
+
+glibPreFixupPhase() {
+    addToSearchPath GSETTINGS_SCHEMAS_PATH "$out/share/gsettings-schemas/$name"
+}
+
+preFixupPhases="$preFixupPhases glibPreFixupPhase"
diff --git a/pkgs/development/libraries/glibc/2.18/cve-2012-4412+4424.patch b/pkgs/development/libraries/glibc/2.18/cve-2012-4412+4424.patch
deleted file mode 100644
index 67ffbbc217b6..000000000000
--- a/pkgs/development/libraries/glibc/2.18/cve-2012-4412+4424.patch
+++ /dev/null
@@ -1,1006 +0,0 @@
-https://projects.archlinux.org/svntogit/packages.git/tree/trunk/glibc-2.18-strcoll-CVE-2012-4412+4424.patch?h=packages/glibc
-
-diff --git a/string/strcoll_l.c b/string/strcoll_l.c
-index ecda08f..bb34a72 100644
---- a/string/strcoll_l.c
-+++ b/string/strcoll_l.c
-@@ -41,11 +41,434 @@
- 
- #include "../locale/localeinfo.h"
- 
-+/* Track status while looking for sequences in a string.  */
-+typedef struct
-+{
-+  int len;			/* Length of the current sequence.  */
-+  size_t val;			/* Position of the sequence relative to the
-+				   previous non-ignored sequence.  */
-+  size_t idxnow;		/* Current index in sequences.  */
-+  size_t idxmax;		/* Maximum index in sequences.  */
-+  size_t idxcnt;		/* Current count of indices.  */
-+  size_t backw;			/* Current Backward sequence index.  */
-+  size_t backw_stop;		/* Index where the backward sequences stop.  */
-+  const USTRING_TYPE *us;	/* The string.  */
-+  int32_t *idxarr;		/* Array to cache weight indices.  */
-+  unsigned char *rulearr;	/* Array to cache rules.  */
-+  unsigned char rule;		/* Saved rule for the first sequence.  */
-+  int32_t idx;			/* Index to weight of the current sequence.  */
-+  int32_t save_idx;		/* Save looked up index of a forward
-+				   sequence after the last backward
-+				   sequence.  */
-+  const USTRING_TYPE *back_us;	/* Beginning of the backward sequence.  */
-+} coll_seq;
-+
-+/* Get next sequence.  The weight indices are cached, so we don't need to
-+   traverse the string.  */
-+static void
-+get_next_seq_cached (coll_seq *seq, int nrules, int pass,
-+		     const unsigned char *rulesets,
-+		     const USTRING_TYPE *weights)
-+{
-+  size_t val = seq->val = 0;
-+  int len = seq->len;
-+  size_t backw_stop = seq->backw_stop;
-+  size_t backw = seq->backw;
-+  size_t idxcnt = seq->idxcnt;
-+  size_t idxmax = seq->idxmax;
-+  size_t idxnow = seq->idxnow;
-+  unsigned char *rulearr = seq->rulearr;
-+  int32_t *idxarr = seq->idxarr;
-+
-+  while (len == 0)
-+    {
-+      ++val;
-+      if (backw_stop != ~0ul)
-+	{
-+	  /* There is something pushed.  */
-+	  if (backw == backw_stop)
-+	    {
-+	      /* The last pushed character was handled.  Continue
-+		 with forward characters.  */
-+	      if (idxcnt < idxmax)
-+		{
-+		  idxnow = idxcnt;
-+		  backw_stop = ~0ul;
-+		}
-+	      else
-+		{
-+		  /* Nothing any more.  The backward sequence
-+		     ended with the last sequence in the string.  */
-+		  idxnow = ~0ul;
-+		  break;
-+		}
-+	    }
-+	  else
-+	    idxnow = --backw;
-+	}
-+      else
-+	{
-+	  backw_stop = idxcnt;
-+
-+	  while (idxcnt < idxmax)
-+	    {
-+	      if ((rulesets[rulearr[idxcnt] * nrules + pass]
-+		   & sort_backward) == 0)
-+		/* No more backward characters to push.  */
-+		break;
-+	      ++idxcnt;
-+	    }
-+
-+	  if (backw_stop == idxcnt)
-+	    {
-+	      /* No sequence at all or just one.  */
-+	      if (idxcnt == idxmax)
-+		/* Note that LEN is still zero.  */
-+		break;
-+
-+	      backw_stop = ~0ul;
-+	      idxnow = idxcnt++;
-+	    }
-+	  else
-+	    /* We pushed backward sequences.  */
-+	    idxnow = backw = idxcnt - 1;
-+	}
-+      len = weights[idxarr[idxnow]++];
-+    }
-+
-+  /* Update the structure.  */
-+  seq->val = val;
-+  seq->len = len;
-+  seq->backw_stop = backw_stop;
-+  seq->backw = backw;
-+  seq->idxcnt = idxcnt;
-+  seq->idxnow = idxnow;
-+}
-+
-+/* Get next sequence.  Traverse the string as required.  */
-+static void
-+get_next_seq (coll_seq *seq, int nrules, const unsigned char *rulesets,
-+	      const USTRING_TYPE *weights, const int32_t *table,
-+	      const USTRING_TYPE *extra, const int32_t *indirect)
-+{
-+#include WEIGHT_H
-+  size_t val = seq->val = 0;
-+  int len = seq->len;
-+  size_t backw_stop = seq->backw_stop;
-+  size_t backw = seq->backw;
-+  size_t idxcnt = seq->idxcnt;
-+  size_t idxmax = seq->idxmax;
-+  size_t idxnow = seq->idxnow;
-+  unsigned char *rulearr = seq->rulearr;
-+  int32_t *idxarr = seq->idxarr;
-+  const USTRING_TYPE *us = seq->us;
-+
-+  while (len == 0)
-+    {
-+      ++val;
-+      if (backw_stop != ~0ul)
-+	{
-+	  /* There is something pushed.  */
-+	  if (backw == backw_stop)
-+	    {
-+	      /* The last pushed character was handled.  Continue
-+		 with forward characters.  */
-+	      if (idxcnt < idxmax)
-+		{
-+		  idxnow = idxcnt;
-+		  backw_stop = ~0ul;
-+		}
-+	      else
-+		/* Nothing any more.  The backward sequence ended with
-+		   the last sequence in the string.  Note that LEN
-+		   is still zero.  */
-+		break;
-+	    }
-+	  else
-+	    idxnow = --backw;
-+	}
-+      else
-+	{
-+	  backw_stop = idxmax;
-+
-+	  while (*us != L('\0'))
-+	    {
-+	      int32_t tmp = findidx (&us, -1);
-+	      rulearr[idxmax] = tmp >> 24;
-+	      idxarr[idxmax] = tmp & 0xffffff;
-+	      idxcnt = idxmax++;
-+
-+	      if ((rulesets[rulearr[idxcnt] * nrules]
-+		   & sort_backward) == 0)
-+		/* No more backward characters to push.  */
-+		break;
-+	      ++idxcnt;
-+	    }
-+
-+	  if (backw_stop >= idxcnt)
-+	    {
-+	      /* No sequence at all or just one.  */
-+	      if (idxcnt == idxmax || backw_stop > idxcnt)
-+		/* Note that LEN is still zero.  */
-+		break;
-+
-+	      backw_stop = ~0ul;
-+	      idxnow = idxcnt;
-+	    }
-+	  else
-+	    /* We pushed backward sequences.  */
-+	    idxnow = backw = idxcnt - 1;
-+	}
-+      len = weights[idxarr[idxnow]++];
-+    }
-+
-+  /* Update the structure.  */
-+  seq->val = val;
-+  seq->len = len;
-+  seq->backw_stop = backw_stop;
-+  seq->backw = backw;
-+  seq->idxcnt = idxcnt;
-+  seq->idxmax = idxmax;
-+  seq->idxnow = idxnow;
-+  seq->us = us;
-+}
-+
-+/* Get next sequence.  Traverse the string as required.  This function does not
-+   set or use any index or rule cache.  */
-+static void
-+get_next_seq_nocache (coll_seq *seq, int nrules, const unsigned char *rulesets,
-+		      const USTRING_TYPE *weights, const int32_t *table,
-+		      const USTRING_TYPE *extra, const int32_t *indirect,
-+		      int pass)
-+{
-+#include WEIGHT_H
-+  size_t val = seq->val = 0;
-+  int len = seq->len;
-+  size_t backw_stop = seq->backw_stop;
-+  size_t backw = seq->backw;
-+  size_t idxcnt = seq->idxcnt;
-+  size_t idxmax = seq->idxmax;
-+  int32_t idx = seq->idx;
-+  const USTRING_TYPE *us = seq->us;
-+
-+  while (len == 0)
-+    {
-+      ++val;
-+      if (backw_stop != ~0ul)
-+	{
-+	  /* There is something pushed.  */
-+	  if (backw == backw_stop)
-+	    {
-+	      /* The last pushed character was handled.  Continue
-+		 with forward characters.  */
-+	      if (idxcnt < idxmax)
-+		{
-+		  idx = seq->save_idx;
-+		  backw_stop = ~0ul;
-+		}
-+	      else
-+		{
-+		  /* Nothing anymore.  The backward sequence ended with
-+		     the last sequence in the string.  Note that len is
-+		     still zero.  */
-+		  idx = 0;
-+		  break;
-+	        }
-+	    }
-+	  else
-+	    {
-+	      /* XXX Traverse BACKW sequences from the beginning of
-+		 BACKW_STOP to get the next sequence.  Is ther a quicker way
-+	         to do this?  */
-+	      size_t i = backw_stop;
-+	      us = seq->back_us;
-+	      while (i < backw)
-+		{
-+		  int32_t tmp = findidx (&us, -1);
-+		  idx = tmp & 0xffffff;
-+		  i++;
-+		}
-+	      --backw;
-+	      us = seq->us;
-+	    }
-+	}
-+      else
-+	{
-+	  backw_stop = idxmax;
-+	  int32_t prev_idx = idx;
-+
-+	  while (*us != L('\0'))
-+	    {
-+	      int32_t tmp = findidx (&us, -1);
-+	      unsigned char rule = tmp >> 24;
-+	      prev_idx = idx;
-+	      idx = tmp & 0xffffff;
-+	      idxcnt = idxmax++;
-+
-+	      /* Save the rule for the first sequence.  */
-+	      if (__glibc_unlikely (idxcnt == 0))
-+	        seq->rule = rule;
-+
-+	      if ((rulesets[rule * nrules + pass]
-+		   & sort_backward) == 0)
-+		/* No more backward characters to push.  */
-+		break;
-+	      ++idxcnt;
-+	    }
-+
-+	  if (backw_stop >= idxcnt)
-+	    {
-+	      /* No sequence at all or just one.  */
-+	      if (idxcnt == idxmax || backw_stop > idxcnt)
-+		/* Note that len is still zero.  */
-+		break;
-+
-+	      backw_stop = ~0ul;
-+	    }
-+	  else
-+	    {
-+	      /* We pushed backward sequences.  If the stream ended with the
-+		 backward sequence, then we process the last sequence we
-+		 found.  Otherwise we process the sequence before the last
-+		 one since the last one was a forward sequence.  */
-+	      seq->back_us = seq->us;
-+	      seq->us = us;
-+	      backw = idxcnt;
-+	      if (idxmax > idxcnt)
-+		{
-+		  backw--;
-+		  seq->save_idx = idx;
-+		  idx = prev_idx;
-+		}
-+	      if (backw > backw_stop)
-+		backw--;
-+	    }
-+	}
-+
-+      len = weights[idx++];
-+      /* Skip over indices of previous levels.  */
-+      for (int i = 0; i < pass; i++)
-+	{
-+	  idx += len;
-+	  len = weights[idx];
-+	  idx++;
-+	}
-+    }
-+
-+  /* Update the structure.  */
-+  seq->val = val;
-+  seq->len = len;
-+  seq->backw_stop = backw_stop;
-+  seq->backw = backw;
-+  seq->idxcnt = idxcnt;
-+  seq->idxmax = idxmax;
-+  seq->us = us;
-+  seq->idx = idx;
-+}
-+
-+/* Compare two sequences.  This version does not use the index and rules
-+   cache.  */
-+static int
-+do_compare_nocache (coll_seq *seq1, coll_seq *seq2, int position,
-+		    const USTRING_TYPE *weights)
-+{
-+  int seq1len = seq1->len;
-+  int seq2len = seq2->len;
-+  size_t val1 = seq1->val;
-+  size_t val2 = seq2->val;
-+  int idx1 = seq1->idx;
-+  int idx2 = seq2->idx;
-+  int result = 0;
-+
-+  /* Test for position if necessary.  */
-+  if (position && val1 != val2)
-+    {
-+      result = val1 > val2 ? 1 : -1;
-+      goto out;
-+    }
-+
-+  /* Compare the two sequences.  */
-+  do
-+    {
-+      if (weights[idx1] != weights[idx2])
-+	{
-+	  /* The sequences differ.  */
-+	  result = weights[idx1] - weights[idx2];
-+	  goto out;
-+	}
-+
-+      /* Increment the offsets.  */
-+      ++idx1;
-+      ++idx2;
-+
-+      --seq1len;
-+      --seq2len;
-+    }
-+  while (seq1len > 0 && seq2len > 0);
-+
-+  if (position && seq1len != seq2len)
-+    result = seq1len - seq2len;
-+
-+out:
-+  seq1->len = seq1len;
-+  seq2->len = seq2len;
-+  seq1->idx = idx1;
-+  seq2->idx = idx2;
-+  return result;
-+}
-+
-+/* Compare two sequences using the index cache.  */
-+static int
-+do_compare (coll_seq *seq1, coll_seq *seq2, int position,
-+	    const USTRING_TYPE *weights)
-+{
-+  int seq1len = seq1->len;
-+  int seq2len = seq2->len;
-+  size_t val1 = seq1->val;
-+  size_t val2 = seq2->val;
-+  int32_t *idx1arr = seq1->idxarr;
-+  int32_t *idx2arr = seq2->idxarr;
-+  int idx1now = seq1->idxnow;
-+  int idx2now = seq2->idxnow;
-+  int result = 0;
-+
-+  /* Test for position if necessary.  */
-+  if (position && val1 != val2)
-+    {
-+      result = val1 > val2 ? 1 : -1;
-+      goto out;
-+    }
-+
-+  /* Compare the two sequences.  */
-+  do
-+    {
-+      if (weights[idx1arr[idx1now]] != weights[idx2arr[idx2now]])
-+	{
-+	  /* The sequences differ.  */
-+	  result = weights[idx1arr[idx1now]] - weights[idx2arr[idx2now]];
-+	  goto out;
-+	}
-+
-+      /* Increment the offsets.  */
-+      ++idx1arr[idx1now];
-+      ++idx2arr[idx2now];
-+
-+      --seq1len;
-+      --seq2len;
-+    }
-+  while (seq1len > 0 && seq2len > 0);
-+
-+  if (position && seq1len != seq2len)
-+    result = seq1len - seq2len;
-+
-+out:
-+  seq1->len = seq1len;
-+  seq2->len = seq2len;
-+  return result;
-+}
-+
- int
--STRCOLL (s1, s2, l)
--     const STRING_TYPE *s1;
--     const STRING_TYPE *s2;
--     __locale_t l;
-+STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, __locale_t l)
- {
-   struct __locale_data *current = l->__locales[LC_COLLATE];
-   uint_fast32_t nrules = current->values[_NL_ITEM_INDEX (_NL_COLLATE_NRULES)].word;
-@@ -56,34 +479,6 @@ STRCOLL (s1, s2, l)
-   const USTRING_TYPE *weights;
-   const USTRING_TYPE *extra;
-   const int32_t *indirect;
--  uint_fast32_t pass;
--  int result = 0;
--  const USTRING_TYPE *us1;
--  const USTRING_TYPE *us2;
--  size_t s1len;
--  size_t s2len;
--  int32_t *idx1arr;
--  int32_t *idx2arr;
--  unsigned char *rule1arr;
--  unsigned char *rule2arr;
--  size_t idx1max;
--  size_t idx2max;
--  size_t idx1cnt;
--  size_t idx2cnt;
--  size_t idx1now;
--  size_t idx2now;
--  size_t backw1_stop;
--  size_t backw2_stop;
--  size_t backw1;
--  size_t backw2;
--  int val1;
--  int val2;
--  int position;
--  int seq1len;
--  int seq2len;
--  int use_malloc;
--
--#include WEIGHT_H
- 
-   if (nrules == 0)
-     return STRCMP (s1, s2);
-@@ -98,7 +493,6 @@ STRCOLL (s1, s2, l)
-     current->values[_NL_ITEM_INDEX (CONCAT(_NL_COLLATE_EXTRA,SUFFIX))].string;
-   indirect = (const int32_t *)
-     current->values[_NL_ITEM_INDEX (CONCAT(_NL_COLLATE_INDIRECT,SUFFIX))].string;
--  use_malloc = 0;
- 
-   assert (((uintptr_t) table) % __alignof__ (table[0]) == 0);
-   assert (((uintptr_t) weights) % __alignof__ (weights[0]) == 0);
-@@ -106,18 +500,13 @@ STRCOLL (s1, s2, l)
-   assert (((uintptr_t) indirect) % __alignof__ (indirect[0]) == 0);
- 
-   /* We need this a few times.  */
--  s1len = STRLEN (s1);
--  s2len = STRLEN (s2);
-+  size_t s1len = STRLEN (s1);
-+  size_t s2len = STRLEN (s2);
- 
-   /* Catch empty strings.  */
--  if (__builtin_expect (s1len == 0, 0) || __builtin_expect (s2len == 0, 0))
-+  if (__glibc_unlikely (s1len == 0) || __glibc_unlikely (s2len == 0))
-     return (s1len != 0) - (s2len != 0);
- 
--  /* We need the elements of the strings as unsigned values since they
--     are used as indeces.  */
--  us1 = (const USTRING_TYPE *) s1;
--  us2 = (const USTRING_TYPE *) s2;
--
-   /* Perform the first pass over the string and while doing this find
-      and store the weights for each character.  Since we want this to
-      be as fast as possible we are using `alloca' to store the temporary
-@@ -127,411 +516,124 @@ STRCOLL (s1, s2, l)
- 
-      Please note that the localedef programs makes sure that `position'
-      is not used at the first level.  */
--  if (! __libc_use_alloca ((s1len + s2len) * (sizeof (int32_t) + 1)))
--    {
--      idx1arr = (int32_t *) malloc ((s1len + s2len) * (sizeof (int32_t) + 1));
--      idx2arr = &idx1arr[s1len];
--      rule1arr = (unsigned char *) &idx2arr[s2len];
--      rule2arr = &rule1arr[s1len];
--
--      if (idx1arr == NULL)
--	/* No memory.  Well, go with the stack then.
--
--	   XXX Once this implementation is stable we will handle this
--	   differently.  Instead of precomputing the indeces we will
--	   do this in time.  This means, though, that this happens for
--	   every pass again.  */
--	goto try_stack;
--      use_malloc = 1;
--    }
--  else
--    {
--    try_stack:
--      idx1arr = (int32_t *) alloca (s1len * sizeof (int32_t));
--      idx2arr = (int32_t *) alloca (s2len * sizeof (int32_t));
--      rule1arr = (unsigned char *) alloca (s1len);
--      rule2arr = (unsigned char *) alloca (s2len);
--    }
- 
--  idx1cnt = 0;
--  idx2cnt = 0;
--  idx1max = 0;
--  idx2max = 0;
--  idx1now = 0;
--  idx2now = 0;
--  backw1_stop = ~0ul;
--  backw2_stop = ~0ul;
--  backw1 = ~0ul;
--  backw2 = ~0ul;
--  seq1len = 0;
--  seq2len = 0;
--  position = rulesets[0] & sort_position;
--  while (1)
--    {
--      val1 = 0;
--      val2 = 0;
--
--      /* Get the next non-IGNOREd element for string `s1'.  */
--      if (seq1len == 0)
--	do
--	  {
--	    ++val1;
--
--	    if (backw1_stop != ~0ul)
--	      {
--		/* The is something pushed.  */
--		if (backw1 == backw1_stop)
--		  {
--		    /* The last pushed character was handled.  Continue
--		       with forward characters.  */
--		    if (idx1cnt < idx1max)
--		      {
--			idx1now = idx1cnt;
--			backw1_stop = ~0ul;
--		      }
--		    else
--		      /* Nothing anymore.  The backward sequence ended with
--			 the last sequence in the string.  Note that seq1len
--			 is still zero.  */
--		      break;
--		  }
--		else
--		  idx1now = --backw1;
--	      }
--	    else
--	      {
--		backw1_stop = idx1max;
--
--		while (*us1 != L('\0'))
--		  {
--		    int32_t tmp = findidx (&us1, -1);
--		    rule1arr[idx1max] = tmp >> 24;
--		    idx1arr[idx1max] = tmp & 0xffffff;
--		    idx1cnt = idx1max++;
--
--		    if ((rulesets[rule1arr[idx1cnt] * nrules]
--			 & sort_backward) == 0)
--		      /* No more backward characters to push.  */
--		      break;
--		    ++idx1cnt;
--		  }
--
--		if (backw1_stop >= idx1cnt)
--		  {
--		    /* No sequence at all or just one.  */
--		    if (idx1cnt == idx1max || backw1_stop > idx1cnt)
--		      /* Note that seq1len is still zero.  */
--		      break;
--
--		    backw1_stop = ~0ul;
--		    idx1now = idx1cnt;
--		  }
--		else
--		  /* We pushed backward sequences.  */
--		  idx1now = backw1 = idx1cnt - 1;
--	      }
--	  }
--	while ((seq1len = weights[idx1arr[idx1now]++]) == 0);
--
--      /* And the same for string `s2'.  */
--      if (seq2len == 0)
--	do
--	  {
--	    ++val2;
--
--	    if (backw2_stop != ~0ul)
--	      {
--		/* The is something pushed.  */
--		if (backw2 == backw2_stop)
--		  {
--		    /* The last pushed character was handled.  Continue
--		       with forward characters.  */
--		    if (idx2cnt < idx2max)
--		      {
--			idx2now = idx2cnt;
--			backw2_stop = ~0ul;
--		      }
--		    else
--		      /* Nothing anymore.  The backward sequence ended with
--			 the last sequence in the string.  Note that seq2len
--			 is still zero.  */
--		      break;
--		  }
--		else
--		  idx2now = --backw2;
--	      }
--	    else
--	      {
--		backw2_stop = idx2max;
--
--		while (*us2 != L('\0'))
--		  {
--		    int32_t tmp = findidx (&us2, -1);
--		    rule2arr[idx2max] = tmp >> 24;
--		    idx2arr[idx2max] = tmp & 0xffffff;
--		    idx2cnt = idx2max++;
--
--		    if ((rulesets[rule2arr[idx2cnt] * nrules]
--			 & sort_backward) == 0)
--		      /* No more backward characters to push.  */
--		      break;
--		    ++idx2cnt;
--		  }
--
--		if (backw2_stop >= idx2cnt)
--		  {
--		    /* No sequence at all or just one.  */
--		    if (idx2cnt == idx2max || backw2_stop > idx2cnt)
--		      /* Note that seq1len is still zero.  */
--		      break;
--
--		    backw2_stop = ~0ul;
--		    idx2now = idx2cnt;
--		  }
--		else
--		  /* We pushed backward sequences.  */
--		  idx2now = backw2 = idx2cnt - 1;
--	      }
--	  }
--	while ((seq2len = weights[idx2arr[idx2now]++]) == 0);
--
--      /* See whether any or both strings are empty.  */
--      if (seq1len == 0 || seq2len == 0)
--	{
--	  if (seq1len == seq2len)
--	    /* Both ended.  So far so good, both strings are equal at the
--	       first level.  */
--	    break;
--
--	  /* This means one string is shorter than the other.  Find out
--	     which one and return an appropriate value.  */
--	  result = seq1len == 0 ? -1 : 1;
--	  goto free_and_return;
--	}
-+  coll_seq seq1, seq2;
-+  bool use_malloc = false;
-+  int result = 0;
- 
--      /* Test for position if necessary.  */
--      if (position && val1 != val2)
--	{
--	  result = val1 - val2;
--	  goto free_and_return;
--	}
-+  memset (&seq1, 0, sizeof (seq1));
-+  seq2 = seq1;
- 
--      /* Compare the two sequences.  */
--      do
--	{
--	  if (weights[idx1arr[idx1now]] != weights[idx2arr[idx2now]])
--	    {
--	      /* The sequences differ.  */
--	      result = weights[idx1arr[idx1now]] - weights[idx2arr[idx2now]];
--	      goto free_and_return;
--	    }
-+  size_t size_max = SIZE_MAX / (sizeof (int32_t) + 1);
- 
--	  /* Increment the offsets.  */
--	  ++idx1arr[idx1now];
--	  ++idx2arr[idx2now];
-+  /* If the strings are long enough to cause overflow in the size request, then
-+     skip the allocation and proceed with the non-cached routines.  */
-+  if (MIN (s1len, s2len) > size_max
-+      || MAX (s1len, s2len) > size_max - MIN (s1len, s2len))
-+    goto begin_collate;
- 
--	  --seq1len;
--	  --seq2len;
--	}
--      while (seq1len > 0 && seq2len > 0);
-+  if (! __libc_use_alloca ((s1len + s2len) * (sizeof (int32_t) + 1)))
-+    {
-+      seq1.idxarr = (int32_t *) malloc ((s1len + s2len) * (sizeof (int32_t) + 1));
- 
--      if (position && seq1len != seq2len)
-+      /* If we failed to allocate memory, we leave everything as NULL so that
-+	 we use the nocache version of traversal and comparison functions.  */
-+      if (seq1.idxarr != NULL)
- 	{
--	  result = seq1len - seq2len;
--	  goto free_and_return;
-+	  seq2.idxarr = &seq1.idxarr[s1len];
-+	  seq1.rulearr = (unsigned char *) &seq2.idxarr[s2len];
-+	  seq2.rulearr = &seq1.rulearr[s1len];
-+	  use_malloc = true;
- 	}
-     }
-+  else
-+    {
-+      seq1.idxarr = (int32_t *) alloca (s1len * sizeof (int32_t));
-+      seq2.idxarr = (int32_t *) alloca (s2len * sizeof (int32_t));
-+      seq1.rulearr = (unsigned char *) alloca (s1len);
-+      seq2.rulearr = (unsigned char *) alloca (s2len);
-+    }
- 
--  /* Now the remaining passes over the weights.  We now use the
--     indeces we found before.  */
--  for (pass = 1; pass < nrules; ++pass)
-+  int rule;
-+
-+ begin_collate:
-+  rule = 0;
-+  /* Cache values in the first pass and if needed, use them in subsequent
-+     passes.  */
-+  for (int pass = 0; pass < nrules; ++pass)
-     {
-+      seq1.idxcnt = 0;
-+      seq1.idx = 0;
-+      seq2.idx = 0;
-+      seq1.backw_stop = ~0ul;
-+      seq1.backw = ~0ul;
-+      seq2.idxcnt = 0;
-+      seq2.backw_stop = ~0ul;
-+      seq2.backw = ~0ul;
-+
-+      /* We need the elements of the strings as unsigned values since they
-+	 are used as indices.  */
-+      seq1.us = (const USTRING_TYPE *) s1;
-+      seq2.us = (const USTRING_TYPE *) s2;
-+
-       /* We assume that if a rule has defined `position' in one section
- 	 this is true for all of them.  */
--      idx1cnt = 0;
--      idx2cnt = 0;
--      backw1_stop = ~0ul;
--      backw2_stop = ~0ul;
--      backw1 = ~0ul;
--      backw2 = ~0ul;
--      position = rulesets[rule1arr[0] * nrules + pass] & sort_position;
-+      int position = rulesets[rule * nrules + pass] & sort_position;
- 
-       while (1)
- 	{
--	  val1 = 0;
--	  val2 = 0;
--
--	  /* Get the next non-IGNOREd element for string `s1'.  */
--	  if (seq1len == 0)
--	    do
--	      {
--		++val1;
--
--		if (backw1_stop != ~0ul)
--		  {
--		    /* The is something pushed.  */
--		    if (backw1 == backw1_stop)
--		      {
--			/* The last pushed character was handled.  Continue
--			   with forward characters.  */
--			if (idx1cnt < idx1max)
--			  {
--			    idx1now = idx1cnt;
--			    backw1_stop = ~0ul;
--			  }
--			else
--			  {
--			    /* Nothing anymore.  The backward sequence
--			       ended with the last sequence in the string.  */
--			    idx1now = ~0ul;
--			    break;
--			  }
--		      }
--		    else
--		      idx1now = --backw1;
--		  }
--		else
--		  {
--		    backw1_stop = idx1cnt;
--
--		    while (idx1cnt < idx1max)
--		      {
--			if ((rulesets[rule1arr[idx1cnt] * nrules + pass]
--			     & sort_backward) == 0)
--			  /* No more backward characters to push.  */
--			  break;
--			++idx1cnt;
--		      }
--
--		    if (backw1_stop == idx1cnt)
--		      {
--			/* No sequence at all or just one.  */
--			if (idx1cnt == idx1max)
--			  /* Note that seq1len is still zero.  */
--			  break;
--
--			backw1_stop = ~0ul;
--			idx1now = idx1cnt++;
--		      }
--		    else
--		      /* We pushed backward sequences.  */
--		      idx1now = backw1 = idx1cnt - 1;
--		  }
--	      }
--	    while ((seq1len = weights[idx1arr[idx1now]++]) == 0);
--
--	  /* And the same for string `s2'.  */
--	  if (seq2len == 0)
--	    do
--	      {
--		++val2;
--
--		if (backw2_stop != ~0ul)
--		  {
--		    /* The is something pushed.  */
--		    if (backw2 == backw2_stop)
--		      {
--			/* The last pushed character was handled.  Continue
--			   with forward characters.  */
--			if (idx2cnt < idx2max)
--			  {
--			    idx2now = idx2cnt;
--			    backw2_stop = ~0ul;
--			  }
--			else
--			  {
--			    /* Nothing anymore.  The backward sequence
--			       ended with the last sequence in the string.  */
--			    idx2now = ~0ul;
--			    break;
--			  }
--		      }
--		    else
--		      idx2now = --backw2;
--		  }
--		else
--		  {
--		    backw2_stop = idx2cnt;
--
--		    while (idx2cnt < idx2max)
--		      {
--			if ((rulesets[rule2arr[idx2cnt] * nrules + pass]
--			     & sort_backward) == 0)
--			  /* No more backward characters to push.  */
--			  break;
--			++idx2cnt;
--		      }
--
--		    if (backw2_stop == idx2cnt)
--		      {
--			/* No sequence at all or just one.  */
--			if (idx2cnt == idx2max)
--			  /* Note that seq2len is still zero.  */
--			  break;
--
--			backw2_stop = ~0ul;
--			idx2now = idx2cnt++;
--		      }
--		    else
--		      /* We pushed backward sequences.  */
--		      idx2now = backw2 = idx2cnt - 1;
--		  }
--	      }
--	    while ((seq2len = weights[idx2arr[idx2now]++]) == 0);
-+	  if (__glibc_unlikely (seq1.idxarr == NULL))
-+	    {
-+	      get_next_seq_nocache (&seq1, nrules, rulesets, weights, table,
-+				    extra, indirect, pass);
-+	      get_next_seq_nocache (&seq2, nrules, rulesets, weights, table,
-+				    extra, indirect, pass);
-+	    }
-+	  else if (pass == 0)
-+	    {
-+	      get_next_seq (&seq1, nrules, rulesets, weights, table, extra,
-+			    indirect);
-+	      get_next_seq (&seq2, nrules, rulesets, weights, table, extra,
-+			    indirect);
-+	    }
-+	  else
-+	    {
-+	      get_next_seq_cached (&seq1, nrules, pass, rulesets, weights);
-+	      get_next_seq_cached (&seq2, nrules, pass, rulesets, weights);
-+	    }
- 
- 	  /* See whether any or both strings are empty.  */
--	  if (seq1len == 0 || seq2len == 0)
-+	  if (seq1.len == 0 || seq2.len == 0)
- 	    {
--	      if (seq1len == seq2len)
-+	      if (seq1.len == seq2.len)
- 		/* Both ended.  So far so good, both strings are equal
- 		   at this level.  */
- 		break;
- 
- 	      /* This means one string is shorter than the other.  Find out
- 		 which one and return an appropriate value.  */
--	      result = seq1len == 0 ? -1 : 1;
-+	      result = seq1.len == 0 ? -1 : 1;
- 	      goto free_and_return;
- 	    }
- 
--	  /* Test for position if necessary.  */
--	  if (position && val1 != val2)
--	    {
--	      result = val1 - val2;
--	      goto free_and_return;
--	    }
--
--	  /* Compare the two sequences.  */
--	  do
--	    {
--	      if (weights[idx1arr[idx1now]] != weights[idx2arr[idx2now]])
--		{
--		  /* The sequences differ.  */
--		  result = (weights[idx1arr[idx1now]]
--			    - weights[idx2arr[idx2now]]);
--		  goto free_and_return;
--		}
--
--	      /* Increment the offsets.  */
--	      ++idx1arr[idx1now];
--	      ++idx2arr[idx2now];
--
--	      --seq1len;
--	      --seq2len;
--	    }
--	  while (seq1len > 0 && seq2len > 0);
--
--	  if (position && seq1len != seq2len)
--	    {
--	      result = seq1len - seq2len;
--	      goto free_and_return;
--	    }
-+	  if (__glibc_unlikely (seq1.idxarr == NULL))
-+	    result = do_compare_nocache (&seq1, &seq2, position, weights);
-+	  else
-+	    result = do_compare (&seq1, &seq2, position, weights);
-+	  if (result != 0)
-+	    goto free_and_return;
- 	}
-+
-+      if (__glibc_likely (seq1.rulearr != NULL))
-+	rule = seq1.rulearr[0];
-+      else
-+	rule = seq1.rule;
-     }
- 
-   /* Free the memory if needed.  */
-  free_and_return:
-   if (use_malloc)
--    free (idx1arr);
-+    free (seq1.idxarr);
- 
-   return result;
- }
diff --git a/pkgs/development/libraries/glibc/2.18/cve-2013-4237.patch b/pkgs/development/libraries/glibc/2.18/cve-2013-4237.patch
deleted file mode 100644
index f745cb003aa2..000000000000
--- a/pkgs/development/libraries/glibc/2.18/cve-2013-4237.patch
+++ /dev/null
@@ -1,302 +0,0 @@
-commit 91ce40854d0b7f865cf5024ef95a8026b76096f3
-Author: Florian Weimer <fweimer@redhat.com>
-Date:   Fri Aug 16 09:38:52 2013 +0200
-
-    CVE-2013-4237, BZ #14699: Buffer overflow in readdir_r
-    
-    	* sysdeps/posix/dirstream.h (struct __dirstream): Add errcode
-    	member.
-    	* sysdeps/posix/opendir.c (__alloc_dir): Initialize errcode
-    	member.
-    	* sysdeps/posix/rewinddir.c (rewinddir): Reset errcode member.
-    	* sysdeps/posix/readdir_r.c (__READDIR_R): Enforce NAME_MAX limit.
-    	Return delayed error code.  Remove GETDENTS_64BIT_ALIGNED
-    	conditional.
-    	* sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Do not define
-    	GETDENTS_64BIT_ALIGNED.
-    	* sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise.
-    	* manual/filesys.texi (Reading/Closing Directory): Document
-    	ENAMETOOLONG return value of readdir_r.  Recommend readdir more
-    	strongly.
-    	* manual/conf.texi (Limits for Files): Add portability note to
-    	NAME_MAX, PATH_MAX.
-    	(Pathconf): Add portability note for _PC_NAME_MAX, _PC_PATH_MAX.
-
-diff --git a/manual/conf.texi b/manual/conf.texi
-index 7eb8b36..c720063 100644
---- a/manual/conf.texi
-+++ b/manual/conf.texi
-@@ -1149,6 +1149,9 @@ typed ahead as input.  @xref{I/O Queues}.
- @deftypevr Macro int NAME_MAX
- The uniform system limit (if any) for the length of a file name component, not
- including the terminating null character.
-+
-+@strong{Portability Note:} On some systems, @theglibc{} defines
-+@code{NAME_MAX}, but does not actually enforce this limit.
- @end deftypevr
- 
- @comment limits.h
-@@ -1157,6 +1160,9 @@ including the terminating null character.
- The uniform system limit (if any) for the length of an entire file name (that
- is, the argument given to system calls such as @code{open}), including the
- terminating null character.
-+
-+@strong{Portability Note:} @Theglibc{} does not enforce this limit
-+even if @code{PATH_MAX} is defined.
- @end deftypevr
- 
- @cindex limits, pipe buffer size
-@@ -1476,6 +1482,9 @@ Inquire about the value of @code{POSIX_REC_MIN_XFER_SIZE}.
- Inquire about the value of @code{POSIX_REC_XFER_ALIGN}.
- @end table
- 
-+@strong{Portability Note:} On some systems, @theglibc{} does not
-+enforce @code{_PC_NAME_MAX} or @code{_PC_PATH_MAX} limits.
-+
- @node Utility Limits
- @section Utility Program Capacity Limits
- 
-diff --git a/manual/filesys.texi b/manual/filesys.texi
-index 1df9cf2..814c210 100644
---- a/manual/filesys.texi
-+++ b/manual/filesys.texi
-@@ -444,9 +444,9 @@ symbols are declared in the header file @file{dirent.h}.
- @comment POSIX.1
- @deftypefun {struct dirent *} readdir (DIR *@var{dirstream})
- This function reads the next entry from the directory.  It normally
--returns a pointer to a structure containing information about the file.
--This structure is statically allocated and can be rewritten by a
--subsequent call.
-+returns a pointer to a structure containing information about the
-+file.  This structure is associated with the @var{dirstream} handle
-+and can be rewritten by a subsequent call.
- 
- @strong{Portability Note:} On some systems @code{readdir} may not
- return entries for @file{.} and @file{..}, even though these are always
-@@ -461,19 +461,61 @@ conditions are defined for this function:
- The @var{dirstream} argument is not valid.
- @end table
- 
--@code{readdir} is not thread safe.  Multiple threads using
--@code{readdir} on the same @var{dirstream} may overwrite the return
--value.  Use @code{readdir_r} when this is critical.
-+To distinguish between an end-of-directory condition or an error, you
-+must set @code{errno} to zero before calling @code{readdir}.  To avoid
-+entering an infinite loop, you should stop reading from the directory
-+after the first error.
-+
-+In POSIX.1-2008, @code{readdir} is not thread-safe.  In @theglibc{}
-+implementation, it is safe to call @code{readdir} concurrently on
-+different @var{dirstream}s, but multiple threads accessing the same
-+@var{dirstream} result in undefined behavior.  @code{readdir_r} is a
-+fully thread-safe alternative, but suffers from poor portability (see
-+below).  It is recommended that you use @code{readdir}, with external
-+locking if multiple threads access the same @var{dirstream}.
- @end deftypefun
- 
- @comment dirent.h
- @comment GNU
- @deftypefun int readdir_r (DIR *@var{dirstream}, struct dirent *@var{entry}, struct dirent **@var{result})
--This function is the reentrant version of @code{readdir}.  Like
--@code{readdir} it returns the next entry from the directory.  But to
--prevent conflicts between simultaneously running threads the result is
--not stored in statically allocated memory.  Instead the argument
--@var{entry} points to a place to store the result.
-+This function is a version of @code{readdir} which performs internal
-+locking.  Like @code{readdir} it returns the next entry from the
-+directory.  To prevent conflicts between simultaneously running
-+threads the result is stored inside the @var{entry} object.
-+
-+@strong{Portability Note:} It is recommended to use @code{readdir}
-+instead of @code{readdir_r} for the following reasons:
-+
-+@itemize @bullet
-+@item
-+On systems which do not define @code{NAME_MAX}, it may not be possible
-+to use @code{readdir_r} safely because the caller does not specify the
-+length of the buffer for the directory entry.
-+
-+@item
-+On some systems, @code{readdir_r} cannot read directory entries with
-+very long names.  If such a name is encountered, @theglibc{}
-+implementation of @code{readdir_r} returns with an error code of
-+@code{ENAMETOOLONG} after the final directory entry has been read.  On
-+other systems, @code{readdir_r} may return successfully, but the
-+@code{d_name} member may not be NUL-terminated or may be truncated.
-+
-+@item
-+POSIX-1.2008 does not guarantee that @code{readdir} is thread-safe,
-+even when access to the same @var{dirstream} is serialized.  But in
-+current implementations (including @theglibc{}), it is safe to call
-+@code{readdir} concurrently on different @var{dirstream}s, so there is
-+no need to use @code{readdir_r} in most multi-threaded programs.  In
-+the rare case that multiple threads need to read from the same
-+@var{dirstream}, it is still better to use @code{readdir} and external
-+synchronization.
-+
-+@item
-+It is expected that future versions of POSIX will obsolete
-+@code{readdir_r} and mandate the level of thread safety for
-+@code{readdir} which is provided by @theglibc{} and other
-+implementations today.
-+@end itemize
- 
- Normally @code{readdir_r} returns zero and sets @code{*@var{result}}
- to @var{entry}.  If there are no more entries in the directory or an
-@@ -481,15 +523,6 @@ error is detected, @code{readdir_r} sets @code{*@var{result}} to a
- null pointer and returns a nonzero error code, also stored in
- @code{errno}, as described for @code{readdir}.
- 
--@strong{Portability Note:} On some systems @code{readdir_r} may not
--return a NUL terminated string for the file name, even when there is no
--@code{d_reclen} field in @code{struct dirent} and the file
--name is the maximum allowed size.  Modern systems all have the
--@code{d_reclen} field, and on old systems multi-threading is not
--critical.  In any case there is no such problem with the @code{readdir}
--function, so that even on systems without the @code{d_reclen} member one
--could use multiple threads by using external locking.
--
- It is also important to look at the definition of the @code{struct
- dirent} type.  Simply passing a pointer to an object of this type for
- the second parameter of @code{readdir_r} might not be enough.  Some
-diff --git a/sysdeps/posix/dirstream.h b/sysdeps/posix/dirstream.h
-index a7a074d..8e8570d 100644
---- a/sysdeps/posix/dirstream.h
-+++ b/sysdeps/posix/dirstream.h
-@@ -39,6 +39,8 @@ struct __dirstream
- 
-     off_t filepos;		/* Position of next entry to read.  */
- 
-+    int errcode;		/* Delayed error code.  */
-+
-     /* Directory block.  */
-     char data[0] __attribute__ ((aligned (__alignof__ (void*))));
-   };
-diff --git a/sysdeps/posix/opendir.c b/sysdeps/posix/opendir.c
-index ddfc3a7..fc05b0f 100644
---- a/sysdeps/posix/opendir.c
-+++ b/sysdeps/posix/opendir.c
-@@ -231,6 +231,7 @@ __alloc_dir (int fd, bool close_fd, int flags, const struct stat64 *statp)
-   dirp->size = 0;
-   dirp->offset = 0;
-   dirp->filepos = 0;
-+  dirp->errcode = 0;
- 
-   return dirp;
- }
-diff --git a/sysdeps/posix/readdir_r.c b/sysdeps/posix/readdir_r.c
-index b5a8e2e..8ed5c3f 100644
---- a/sysdeps/posix/readdir_r.c
-+++ b/sysdeps/posix/readdir_r.c
-@@ -40,6 +40,7 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *entry, DIRENT_TYPE **result)
-   DIRENT_TYPE *dp;
-   size_t reclen;
-   const int saved_errno = errno;
-+  int ret;
- 
-   __libc_lock_lock (dirp->lock);
- 
-@@ -70,10 +71,10 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *entry, DIRENT_TYPE **result)
- 		  bytes = 0;
- 		  __set_errno (saved_errno);
- 		}
-+	      if (bytes < 0)
-+		dirp->errcode = errno;
- 
- 	      dp = NULL;
--	      /* Reclen != 0 signals that an error occurred.  */
--	      reclen = bytes != 0;
- 	      break;
- 	    }
- 	  dirp->size = (size_t) bytes;
-@@ -106,29 +107,46 @@ __READDIR_R (DIR *dirp, DIRENT_TYPE *entry, DIRENT_TYPE **result)
-       dirp->filepos += reclen;
- #endif
- 
--      /* Skip deleted files.  */
-+#ifdef NAME_MAX
-+      if (reclen > offsetof (DIRENT_TYPE, d_name) + NAME_MAX + 1)
-+	{
-+	  /* The record is very long.  It could still fit into the
-+	     caller-supplied buffer if we can skip padding at the
-+	     end.  */
-+	  size_t namelen = _D_EXACT_NAMLEN (dp);
-+	  if (namelen <= NAME_MAX)
-+	    reclen = offsetof (DIRENT_TYPE, d_name) + namelen + 1;
-+	  else
-+	    {
-+	      /* The name is too long.  Ignore this file.  */
-+	      dirp->errcode = ENAMETOOLONG;
-+	      dp->d_ino = 0;
-+	      continue;
-+	    }
-+	}
-+#endif
-+
-+      /* Skip deleted and ignored files.  */
-     }
-   while (dp->d_ino == 0);
- 
-   if (dp != NULL)
-     {
--#ifdef GETDENTS_64BIT_ALIGNED
--      /* The d_reclen value might include padding which is not part of
--	 the DIRENT_TYPE data structure.  */
--      reclen = MIN (reclen,
--		    offsetof (DIRENT_TYPE, d_name) + sizeof (dp->d_name));
--#endif
-       *result = memcpy (entry, dp, reclen);
--#ifdef GETDENTS_64BIT_ALIGNED
-+#ifdef _DIRENT_HAVE_D_RECLEN
-       entry->d_reclen = reclen;
- #endif
-+      ret = 0;
-     }
-   else
--    *result = NULL;
-+    {
-+      *result = NULL;
-+      ret = dirp->errcode;
-+    }
- 
-   __libc_lock_unlock (dirp->lock);
- 
--  return dp != NULL ? 0 : reclen ? errno : 0;
-+  return ret;
- }
- 
- #ifdef __READDIR_R_ALIAS
-diff --git a/sysdeps/posix/rewinddir.c b/sysdeps/posix/rewinddir.c
-index 2935a8e..d4991ad 100644
---- a/sysdeps/posix/rewinddir.c
-+++ b/sysdeps/posix/rewinddir.c
-@@ -33,6 +33,7 @@ rewinddir (dirp)
-   dirp->filepos = 0;
-   dirp->offset = 0;
-   dirp->size = 0;
-+  dirp->errcode = 0;
- #ifndef NOT_IN_libc
-   __libc_lock_unlock (dirp->lock);
- #endif
-diff --git a/sysdeps/unix/sysv/linux/i386/readdir64_r.c b/sysdeps/unix/sysv/linux/i386/readdir64_r.c
-index 8ebbcfd..a7d114e 100644
---- a/sysdeps/unix/sysv/linux/i386/readdir64_r.c
-+++ b/sysdeps/unix/sysv/linux/i386/readdir64_r.c
-@@ -18,7 +18,6 @@
- #define __READDIR_R __readdir64_r
- #define __GETDENTS __getdents64
- #define DIRENT_TYPE struct dirent64
--#define GETDENTS_64BIT_ALIGNED 1
- 
- #include <sysdeps/posix/readdir_r.c>
- 
-diff --git a/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c b/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c
-index 5ed8e95..290f2c8 100644
---- a/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c
-+++ b/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c
-@@ -1,5 +1,4 @@
- #define readdir64_r __no_readdir64_r_decl
--#define GETDENTS_64BIT_ALIGNED 1
- #include <sysdeps/posix/readdir_r.c>
- #undef readdir64_r
- weak_alias (__readdir_r, readdir64_r)
diff --git a/pkgs/development/libraries/glibc/2.18/cve-2013-4332.patch b/pkgs/development/libraries/glibc/2.18/cve-2013-4332.patch
deleted file mode 100644
index 94d25d7bbe1c..000000000000
--- a/pkgs/development/libraries/glibc/2.18/cve-2013-4332.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-https://projects.archlinux.org/svntogit/packages.git/tree/trunk/glibc-2.18-malloc-corrupt-CVE-2013-4332.patch?h=packages/glibc
-
-diff --git a/malloc/malloc.c b/malloc/malloc.c
-index dd295f5..7f43ba3 100644
---- a/malloc/malloc.c
-+++ b/malloc/malloc.c
-@@ -3082,6 +3082,13 @@ __libc_pvalloc(size_t bytes)
-   size_t page_mask = GLRO(dl_pagesize) - 1;
-   size_t rounded_bytes = (bytes + page_mask) & ~(page_mask);
- 
-+  /* Check for overflow.  */
-+  if (bytes > SIZE_MAX - 2*pagesz - MINSIZE)
-+    {
-+      __set_errno (ENOMEM);
-+      return 0;
-+    }
-+
-   void *(*hook) (size_t, size_t, const void *) =
-     force_reg (__memalign_hook);
-   if (__builtin_expect (hook != NULL, 0))
-diff --git a/malloc/malloc.c b/malloc/malloc.c
-index 7f43ba3..3148c5f 100644
---- a/malloc/malloc.c
-+++ b/malloc/malloc.c
-@@ -3046,6 +3046,13 @@ __libc_valloc(size_t bytes)
- 
-   size_t pagesz = GLRO(dl_pagesize);
- 
-+  /* Check for overflow.  */
-+  if (bytes > SIZE_MAX - pagesz - MINSIZE)
-+    {
-+      __set_errno (ENOMEM);
-+      return 0;
-+    }
-+
-   void *(*hook) (size_t, size_t, const void *) =
-     force_reg (__memalign_hook);
-   if (__builtin_expect (hook != NULL, 0))
-diff --git a/malloc/malloc.c b/malloc/malloc.c
-index 3148c5f..f7718a9 100644
---- a/malloc/malloc.c
-+++ b/malloc/malloc.c
-@@ -3015,6 +3015,13 @@ __libc_memalign(size_t alignment, size_t bytes)
-   /* Otherwise, ensure that it is at least a minimum chunk size */
-   if (alignment <  MINSIZE) alignment = MINSIZE;
- 
-+  /* Check for overflow.  */
-+  if (bytes > SIZE_MAX - alignment - MINSIZE)
-+    {
-+      __set_errno (ENOMEM);
-+      return 0;
-+    }
-+
-   arena_get(ar_ptr, bytes + alignment + MINSIZE);
-   if(!ar_ptr)
-     return 0;
diff --git a/pkgs/development/libraries/glibc/2.18/cve-2013-4458.patch b/pkgs/development/libraries/glibc/2.18/cve-2013-4458.patch
deleted file mode 100644
index bec4acde7548..000000000000
--- a/pkgs/development/libraries/glibc/2.18/cve-2013-4458.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-commit 7cbcdb3699584db8913ca90f705d6337633ee10f
-Author: Siddhesh Poyarekar <siddhesh@redhat.com>
-Date:   Fri Oct 25 10:22:12 2013 +0530
-
-    Fix stack overflow due to large AF_INET6 requests
-    
-    Resolves #16072 (CVE-2013-4458).
-    
-    This patch fixes another stack overflow in getaddrinfo when it is
-    called with AF_INET6.  The AF_UNSPEC case was fixed as CVE-2013-1914,
-    but the AF_INET6 case went undetected back then.
-
-diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
-index e6ce4cf..8ff74b4 100644
---- a/sysdeps/posix/getaddrinfo.c
-+++ b/sysdeps/posix/getaddrinfo.c
-@@ -197,7 +197,22 @@ gaih_inet_serv (const char *servicename, const struct gaih_typeproto *tp,
- 				&rc, &herrno, NULL, &localcanon));	      \
-     if (rc != ERANGE || herrno != NETDB_INTERNAL)			      \
-       break;								      \
--    tmpbuf = extend_alloca (tmpbuf, tmpbuflen, 2 * tmpbuflen);		      \
-+    if (!malloc_tmpbuf && __libc_use_alloca (alloca_used + 2 * tmpbuflen))    \
-+      tmpbuf = extend_alloca_account (tmpbuf, tmpbuflen, 2 * tmpbuflen,	      \
-+				      alloca_used);			      \
-+    else								      \
-+      {									      \
-+	char *newp = realloc (malloc_tmpbuf ? tmpbuf : NULL,		      \
-+			      2 * tmpbuflen);				      \
-+	if (newp == NULL)						      \
-+	  {								      \
-+	    result = -EAI_MEMORY;					      \
-+	    goto free_and_return;					      \
-+	  }								      \
-+	tmpbuf = newp;							      \
-+	malloc_tmpbuf = true;						      \
-+	tmpbuflen = 2 * tmpbuflen;					      \
-+      }									      \
-   }									      \
-   if (status == NSS_STATUS_SUCCESS && rc == 0)				      \
-     h = &th;								      \
-@@ -209,7 +224,8 @@ gaih_inet_serv (const char *servicename, const struct gaih_typeproto *tp,
- 	{								      \
- 	  __set_h_errno (herrno);					      \
- 	  _res.options |= old_res_options & RES_USE_INET6;		      \
--	  return -EAI_SYSTEM;						      \
-+	  result = -EAI_SYSTEM;						      \
-+	  goto free_and_return;						      \
- 	}								      \
-       if (herrno == TRY_AGAIN)						      \
- 	no_data = EAI_AGAIN;						      \
diff --git a/pkgs/development/libraries/glibc/2.18/cve-2013-4788.patch b/pkgs/development/libraries/glibc/2.18/cve-2013-4788.patch
deleted file mode 100644
index cf8c7911f68a..000000000000
--- a/pkgs/development/libraries/glibc/2.18/cve-2013-4788.patch
+++ /dev/null
@@ -1,222 +0,0 @@
-commit c61b4d41c9647a54a329aa021341c0eb032b793e
-Author: Carlos O'Donell <carlos@redhat.com>
-Date:   Mon Sep 23 00:52:09 2013 -0400
-
-    BZ #15754: CVE-2013-4788
-    
-    The pointer guard used for pointer mangling was not initialized for
-    static applications resulting in the security feature being disabled.
-    The pointer guard is now correctly initialized to a random value for
-    static applications. Existing static applications need to be
-    recompiled to take advantage of the fix.
-    
-    The test tst-ptrguard1-static and tst-ptrguard1 add regression
-    coverage to ensure the pointer guards are sufficiently random
-    and initialized to a default value.
-
-diff --git a/csu/libc-start.c b/csu/libc-start.c
-index e5da3ef..c898d06 100644
---- a/csu/libc-start.c
-+++ b/csu/libc-start.c
-@@ -37,6 +37,12 @@ extern void __pthread_initialize_minimal (void);
-    in thread local area.  */
- uintptr_t __stack_chk_guard attribute_relro;
- # endif
-+# ifndef  THREAD_SET_POINTER_GUARD
-+/* Only exported for architectures that don't store the pointer guard
-+   value in thread local area.  */
-+uintptr_t __pointer_chk_guard_local
-+	attribute_relro attribute_hidden __attribute__ ((nocommon));
-+# endif
- #endif
- 
- #ifdef HAVE_PTR_NTHREADS
-@@ -195,6 +201,16 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
- # else
-   __stack_chk_guard = stack_chk_guard;
- # endif
-+
-+  /* Set up the pointer guard value.  */
-+  uintptr_t pointer_chk_guard = _dl_setup_pointer_guard (_dl_random,
-+							 stack_chk_guard);
-+# ifdef THREAD_SET_POINTER_GUARD
-+  THREAD_SET_POINTER_GUARD (pointer_chk_guard);
-+# else
-+  __pointer_chk_guard_local = pointer_chk_guard;
-+# endif
-+
- #endif
- 
-   /* Register the destructor of the dynamic linker if there is any.  */
-diff --git a/ports/sysdeps/ia64/stackguard-macros.h b/ports/sysdeps/ia64/stackguard-macros.h
-index dc683c2..3907293 100644
---- a/ports/sysdeps/ia64/stackguard-macros.h
-+++ b/ports/sysdeps/ia64/stackguard-macros.h
-@@ -2,3 +2,6 @@
- 
- #define STACK_CHK_GUARD \
-   ({ uintptr_t x; asm ("adds %0 = -8, r13;; ld8 %0 = [%0]" : "=r" (x)); x; })
-+
-+#define POINTER_CHK_GUARD \
-+  ({ uintptr_t x; asm ("adds %0 = -16, r13;; ld8 %0 = [%0]" : "=r" (x)); x; })
-diff --git a/ports/sysdeps/tile/stackguard-macros.h b/ports/sysdeps/tile/stackguard-macros.h
-index 589ea2b..f2e041b 100644
---- a/ports/sysdeps/tile/stackguard-macros.h
-+++ b/ports/sysdeps/tile/stackguard-macros.h
-@@ -4,11 +4,17 @@
- # if __WORDSIZE == 64
- #  define STACK_CHK_GUARD \
-   ({ uintptr_t x; asm ("addi %0, tp, -16; ld %0, %0" : "=r" (x)); x; })
-+#  define POINTER_CHK_GUARD \
-+  ({ uintptr_t x; asm ("addi %0, tp, -24; ld %0, %0" : "=r" (x)); x; })
- # else
- #  define STACK_CHK_GUARD \
-   ({ uintptr_t x; asm ("addi %0, tp, -8; ld4s %0, %0" : "=r" (x)); x; })
-+#  define POINTER_CHK_GUARD \
-+  ({ uintptr_t x; asm ("addi %0, tp, -12; ld4s %0, %0" : "=r" (x)); x; })
- # endif
- #else
- # define STACK_CHK_GUARD \
-   ({ uintptr_t x; asm ("addi %0, tp, -8; lw %0, %0" : "=r" (x)); x; })
-+# define POINTER_CHK_GUARD \
-+  ({ uintptr_t x; asm ("addi %0, tp, -12; lw %0, %0" : "=r" (x)); x; })
- #endif
-diff --git a/sysdeps/generic/stackguard-macros.h b/sysdeps/generic/stackguard-macros.h
-index ababf65..4fa3d96 100644
---- a/sysdeps/generic/stackguard-macros.h
-+++ b/sysdeps/generic/stackguard-macros.h
-@@ -2,3 +2,6 @@
- 
- extern uintptr_t __stack_chk_guard;
- #define STACK_CHK_GUARD __stack_chk_guard
-+
-+extern uintptr_t __pointer_chk_guard_local;
-+#define POINTER_CHK_GUARD __pointer_chk_guard_local
-diff --git a/sysdeps/i386/stackguard-macros.h b/sysdeps/i386/stackguard-macros.h
-index 8c31e19..0397629 100644
---- a/sysdeps/i386/stackguard-macros.h
-+++ b/sysdeps/i386/stackguard-macros.h
-@@ -2,3 +2,11 @@
- 
- #define STACK_CHK_GUARD \
-   ({ uintptr_t x; asm ("movl %%gs:0x14, %0" : "=r" (x)); x; })
-+
-+#define POINTER_CHK_GUARD \
-+  ({							\
-+     uintptr_t x;					\
-+     asm ("movl %%gs:%c1, %0" : "=r" (x)		\
-+	  : "i" (offsetof (tcbhead_t, pointer_guard)));	\
-+     x;							\
-+   })
-diff --git a/sysdeps/powerpc/powerpc32/stackguard-macros.h b/sysdeps/powerpc/powerpc32/stackguard-macros.h
-index 839f6a4..b3d0af8 100644
---- a/sysdeps/powerpc/powerpc32/stackguard-macros.h
-+++ b/sysdeps/powerpc/powerpc32/stackguard-macros.h
-@@ -2,3 +2,13 @@
- 
- #define STACK_CHK_GUARD \
-   ({ uintptr_t x; asm ("lwz %0,-28680(2)" : "=r" (x)); x; })
-+
-+#define POINTER_CHK_GUARD \
-+  ({												\
-+     uintptr_t x;										\
-+     asm ("lwz %0,%1(2)"									\
-+	  : "=r" (x)										\
-+	  : "i" (offsetof (tcbhead_t, pointer_guard) - TLS_TCB_OFFSET - sizeof (tcbhead_t))	\
-+         );											\
-+     x;												\
-+   })
-diff --git a/sysdeps/powerpc/powerpc64/stackguard-macros.h b/sysdeps/powerpc/powerpc64/stackguard-macros.h
-index 9da879c..4620f96 100644
---- a/sysdeps/powerpc/powerpc64/stackguard-macros.h
-+++ b/sysdeps/powerpc/powerpc64/stackguard-macros.h
-@@ -2,3 +2,13 @@
- 
- #define STACK_CHK_GUARD \
-   ({ uintptr_t x; asm ("ld %0,-28688(13)" : "=r" (x)); x; })
-+
-+#define POINTER_CHK_GUARD \
-+  ({												\
-+     uintptr_t x;										\
-+     asm ("ld %0,%1(2)"										\
-+	  : "=r" (x)										\
-+	  : "i" (offsetof (tcbhead_t, pointer_guard) - TLS_TCB_OFFSET - sizeof (tcbhead_t))	\
-+         );											\
-+     x;												\
-+   })
-diff --git a/sysdeps/s390/s390-32/stackguard-macros.h b/sysdeps/s390/s390-32/stackguard-macros.h
-index b74c579..449e8d4 100644
---- a/sysdeps/s390/s390-32/stackguard-macros.h
-+++ b/sysdeps/s390/s390-32/stackguard-macros.h
-@@ -2,3 +2,14 @@
- 
- #define STACK_CHK_GUARD \
-   ({ uintptr_t x; asm ("ear %0,%%a0; l %0,0x14(%0)" : "=a" (x)); x; })
-+
-+/* On s390/s390x there is no unique pointer guard, instead we use the
-+   same value as the stack guard.  */
-+#define POINTER_CHK_GUARD \
-+  ({							\
-+     uintptr_t x;					\
-+     asm ("ear %0,%%a0; l %0,%1(%0)"			\
-+	  : "=a" (x)					\
-+	  : "i" (offsetof (tcbhead_t, stack_guard)));	\
-+     x;							\
-+   })
-diff --git a/sysdeps/s390/s390-64/stackguard-macros.h b/sysdeps/s390/s390-64/stackguard-macros.h
-index 0cebb5f..c8270fb 100644
---- a/sysdeps/s390/s390-64/stackguard-macros.h
-+++ b/sysdeps/s390/s390-64/stackguard-macros.h
-@@ -2,3 +2,17 @@
- 
- #define STACK_CHK_GUARD \
-   ({ uintptr_t x; asm ("ear %0,%%a0; sllg %0,%0,32; ear %0,%%a1; lg %0,0x28(%0)" : "=a" (x)); x; })
-+
-+/* On s390/s390x there is no unique pointer guard, instead we use the
-+   same value as the stack guard.  */
-+#define POINTER_CHK_GUARD \
-+  ({							\
-+     uintptr_t x;					\
-+     asm ("ear %0,%%a0;"				\
-+	  "sllg %0,%0,32;"				\
-+	  "ear %0,%%a1;"				\
-+	  "lg %0,%1(%0)"				\
-+	 : "=a" (x)					\
-+	 : "i" (offsetof (tcbhead_t, stack_guard)));	\
-+     x;							\
-+   })
-diff --git a/sysdeps/sparc/sparc32/stackguard-macros.h b/sysdeps/sparc/sparc32/stackguard-macros.h
-index c0b02b0..1eef0f1 100644
---- a/sysdeps/sparc/sparc32/stackguard-macros.h
-+++ b/sysdeps/sparc/sparc32/stackguard-macros.h
-@@ -2,3 +2,6 @@
- 
- #define STACK_CHK_GUARD \
-   ({ uintptr_t x; asm ("ld [%%g7+0x14], %0" : "=r" (x)); x; })
-+
-+#define POINTER_CHK_GUARD \
-+  ({ uintptr_t x; asm ("ld [%%g7+0x18], %0" : "=r" (x)); x; })
-diff --git a/sysdeps/sparc/sparc64/stackguard-macros.h b/sysdeps/sparc/sparc64/stackguard-macros.h
-index 80f0635..cc0c12c 100644
---- a/sysdeps/sparc/sparc64/stackguard-macros.h
-+++ b/sysdeps/sparc/sparc64/stackguard-macros.h
-@@ -2,3 +2,6 @@
- 
- #define STACK_CHK_GUARD \
-   ({ uintptr_t x; asm ("ldx [%%g7+0x28], %0" : "=r" (x)); x; })
-+
-+#define POINTER_CHK_GUARD \
-+  ({ uintptr_t x; asm ("ldx [%%g7+0x30], %0" : "=r" (x)); x; })
-diff --git a/sysdeps/x86_64/stackguard-macros.h b/sysdeps/x86_64/stackguard-macros.h
-index d7fedb3..1948800 100644
---- a/sysdeps/x86_64/stackguard-macros.h
-+++ b/sysdeps/x86_64/stackguard-macros.h
-@@ -4,3 +4,8 @@
-   ({ uintptr_t x;						\
-      asm ("mov %%fs:%c1, %0" : "=r" (x)				\
- 	  : "i" (offsetof (tcbhead_t, stack_guard))); x; })
-+
-+#define POINTER_CHK_GUARD \
-+  ({ uintptr_t x;						\
-+     asm ("mov %%fs:%c1, %0" : "=r" (x)				\
-+	  : "i" (offsetof (tcbhead_t, pointer_guard))); x; })
diff --git a/pkgs/development/libraries/glibc/2.18/glibc-rh739743.patch b/pkgs/development/libraries/glibc/2.18/glibc-rh739743.patch
deleted file mode 100644
index c390b772b16d..000000000000
--- a/pkgs/development/libraries/glibc/2.18/glibc-rh739743.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-2009-04-26  Aurelien Jarno  <aurelien@aurel32.net>
-
-	* sysdeps/posix/getaddrinfo.c (rfc3484_sort): don't assign native
-	result if the result has no associated interface.
-
----
- sysdeps/posix/getaddrinfo.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/sysdeps/posix/getaddrinfo.c
-+++ b/sysdeps/posix/getaddrinfo.c
-@@ -1456,13 +1456,13 @@
- 
- 	      /* Fill in the results in all the records.  */
- 	      for (int i = 0; i < src->nresults; ++i)
--		if (src->results[i].index == a1_index)
-+		if (a1_index != -1 && src->results[i].index == a1_index)
- 		  {
- 		    assert (src->results[i].native == -1
- 			    || src->results[i].native == a1_native);
- 		    src->results[i].native = a1_native;
- 		  }
--		else if (src->results[i].index == a2_index)
-+		else if (a2_index != -1 && src->results[i].index == a2_index)
- 		  {
- 		    assert (src->results[i].native == -1
- 			    || src->results[i].native == a2_native);
-
-2009-03-15  Aurelien Jarno  <aurelien@aurel32.net>
-
-	* sysdeps/posix/getaddrinfo.c (getaddrinfo): correctly detect 
-	interface for all 127.X.Y.Z addresses.
-
----
- sysdeps/posix/getaddrinfo.c |    9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
---- a/sysdeps/posix/getaddrinfo.c
-+++ b/sysdeps/posix/getaddrinfo.c
-@@ -2265,7 +2265,14 @@
- 			  tmp.addr[0] = 0;
- 			  tmp.addr[1] = 0;
- 			  tmp.addr[2] = htonl (0xffff);
--			  tmp.addr[3] = sinp->sin_addr.s_addr;
-+			  /* Special case for lo interface, the source address
-+			     being possibly different than the interface 
-+			     address. */
-+			  if ((ntohl(sinp->sin_addr.s_addr) & 0xff000000)
-+			      == 0x7f000000)
-+			    tmp.addr[3] = htonl(0x7f000001);
-+			  else
-+			    tmp.addr[3] = sinp->sin_addr.s_addr;
- 			}
- 		      else
- 			{
diff --git a/pkgs/development/libraries/glibc/2.18/scanf.patch b/pkgs/development/libraries/glibc/2.18/scanf.patch
deleted file mode 100644
index 4eed86ca1109..000000000000
--- a/pkgs/development/libraries/glibc/2.18/scanf.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-https://sourceware.org/bugzilla/show_bug.cgi?id=15917
-
-commit a4966c6104918ac884ee1131a4ed23c5ad6b4c5a
-Author: Andreas Schwab <schwab@suse.de>
-Date:   Thu Oct 31 12:51:03 2013 +0100
-
-    Fix parsing of 0e+0 as float
-
-diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
-index 78dc2fc..e6fa8f3 100644
---- a/stdio-common/vfscanf.c
-+++ b/stdio-common/vfscanf.c
-@@ -1966,6 +1966,8 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
- 		  if (width > 0)
- 		    --width;
- 		}
-+	      else
-+		got_digit = 1;
- 	    }
- 
- 	  while (1)
diff --git a/pkgs/development/libraries/glibc/2.18/strstr-sse42-hack.patch b/pkgs/development/libraries/glibc/2.18/strstr-sse42-hack.patch
deleted file mode 100644
index cdf4c0253167..000000000000
--- a/pkgs/development/libraries/glibc/2.18/strstr-sse42-hack.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-https://bugs.archlinux.org/task/36556
-diff --git a/sysdeps/x86_64/multiarch/strstr.c b/sysdeps/x86_64/multiarch/strstr.c
-index cd63b68..03d8b9a 100644
---- a/sysdeps/x86_64/multiarch/strstr.c
-+++ b/sysdeps/x86_64/multiarch/strstr.c
-@@ -86,7 +86,7 @@
- /* Simple replacement of movdqu to address 4KB boundary cross issue.
-    If EOS occurs within less than 16B before 4KB boundary, we don't
-    cross to next page.  */
--static __m128i
-+static inline __m128i
- __m128i_strloadu (const unsigned char * p, __m128i zero)
- {
-   if (__builtin_expect ((int) ((size_t) p & 0xfff) > 0xff0, 0))
diff --git a/pkgs/development/libraries/glibc/2.18/builder.sh b/pkgs/development/libraries/glibc/2.19/builder.sh
index 3b077cbb3fd5..3b077cbb3fd5 100644
--- a/pkgs/development/libraries/glibc/2.18/builder.sh
+++ b/pkgs/development/libraries/glibc/2.19/builder.sh
diff --git a/pkgs/development/libraries/glibc/2.18/common.nix b/pkgs/development/libraries/glibc/2.19/common.nix
index 518615b1739a..b153d91934b3 100644
--- a/pkgs/development/libraries/glibc/2.18/common.nix
+++ b/pkgs/development/libraries/glibc/2.19/common.nix
@@ -13,7 +13,7 @@ cross:
 
 let
 
-  version = "2.18";
+  version = "2.19";
 
 in
 
@@ -44,31 +44,20 @@ stdenv.mkDerivation ({
       /* Don't use /etc/ld.so.cache, for non-NixOS systems.  */
       ./dont-use-system-ld-so-cache.patch
 
+      /* Don't use /etc/ld.so.preload, but /etc/ld-nix.so.preload.  */
+      ./dont-use-system-ld-so-preload.patch
+
       /* Add blowfish password hashing support.  This is needed for
          compatibility with old NixOS installations (since NixOS used
          to default to blowfish). */
       ./glibc-crypt-blowfish.patch
 
-      /* Fix for random "./sysdeps/posix/getaddrinfo.c:1467:
-         rfc3484_sort: Assertion `src->results[i].native == -1 ||
-         src->results[i].native == a2_native' failed." crashes. */
-      ./glibc-rh739743.patch
-
-      ./scanf.patch
-
       /* The command "getconf CS_PATH" returns the default search path
          "/bin:/usr/bin", which is inappropriate on NixOS machines. This
          patch extends the search path by "/run/current-system/sw/bin". */
       ./fix_path_attribute_in_getconf.patch
 
-
-      ./cve-2012-4412+4424.patch
-      ./cve-2013-4237.patch
-      ./cve-2013-4332.patch
-      ./cve-2013-4458.patch
-      ./cve-2013-4788.patch
-
-      ./strstr-sse42-hack.patch
+      ./fix-math.patch
     ];
 
   postPatch = ''
@@ -152,7 +141,7 @@ stdenv.mkDerivation ({
     }
     else fetchurl {
       url = "mirror://gnu/glibc/glibc-${version}.tar.gz";
-      sha256 = "0d3pnh6kg5r48ga5rg4lhwlc1062brr6fiqs4j23327gzssjgry8";
+      sha256 = "15n7x9mmzhd7w6s5hd9srx0h23b32gwb306x98k9ss940yvnvb8q";
     };
 
   # Remove absolute paths from `configure' & co.; build out-of-tree.
diff --git a/pkgs/development/libraries/glibc/2.18/default.nix b/pkgs/development/libraries/glibc/2.19/default.nix
index 52a94bd0a0d5..52a94bd0a0d5 100644
--- a/pkgs/development/libraries/glibc/2.18/default.nix
+++ b/pkgs/development/libraries/glibc/2.19/default.nix
diff --git a/pkgs/development/libraries/glibc/2.18/dont-use-system-ld-so-cache.patch b/pkgs/development/libraries/glibc/2.19/dont-use-system-ld-so-cache.patch
index 95f537733204..95f537733204 100644
--- a/pkgs/development/libraries/glibc/2.18/dont-use-system-ld-so-cache.patch
+++ b/pkgs/development/libraries/glibc/2.19/dont-use-system-ld-so-cache.patch
diff --git a/pkgs/development/libraries/glibc/2.19/dont-use-system-ld-so-preload.patch b/pkgs/development/libraries/glibc/2.19/dont-use-system-ld-so-preload.patch
new file mode 100644
index 000000000000..fabb6c3ec5e1
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.19/dont-use-system-ld-so-preload.patch
@@ -0,0 +1,12 @@
+diff -rupN a/elf/rtld.c b/elf/rtld.c
+--- a/elf/rtld.c	2013-08-11 00:52:55.000000001 +0200
++++ b/elf/rtld.c	2014-02-18 13:56:19.000000001 +0100
+@@ -1639,7 +1639,7 @@ ERROR: ld.so: object '%s' cannot be load
+      open().  So we do this first.  If it succeeds we do almost twice
+      the work but this does not matter, since it is not for production
+      use.  */
+-  static const char preload_file[] = "/etc/ld.so.preload";
++  static const char preload_file[] = "/etc/ld-nix.so.preload";
+   if (__builtin_expect (__access (preload_file, R_OK) == 0, 0))
+     {
+       /* Read the contents of the file.  */
diff --git a/pkgs/development/libraries/glibc/2.19/fix-math.patch b/pkgs/development/libraries/glibc/2.19/fix-math.patch
new file mode 100644
index 000000000000..516f53954ddd
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.19/fix-math.patch
@@ -0,0 +1,336 @@
+From: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date: Thu, 27 Feb 2014 15:42:09 +0000 (+0530)
+Subject: Fix sign of input to bsloww1 (BZ #16623)
+X-Git-Url: http://repo.or.cz/w/glibc.git/commitdiff_plain/1cadc85813d736f7682fa2eeadae639ab6b66c65
+
+Fix sign of input to bsloww1 (BZ #16623)
+
+In 84ba214c, I removed some redundant sign computations and in the
+process, I incorrectly got rid of a temporary variable, thus passing
+the absolute value of the input to bsloww1.  This caused #16623.
+
+This fix undoes the incorrect change.
+
+[nix]: drop docs update (wouldn't apply)
+---
+
+diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
+index ac5348f..fafe96f 100644
+--- a/math/auto-libm-test-in
++++ b/math/auto-libm-test-in
+@@ -594,6 +594,7 @@ cos 0x1.0000010b239a9p0
+ cos 0x1.00000162a932bp0
+ cos 0x1.000002d452a10p0
+ cos 0x1.000005bc7d86dp0
++cos 0x1.200145a975ce6p32
+ cos 1
+ cos 2
+ cos 3
+@@ -1748,6 +1749,7 @@ sin 7
+ sin 8
+ sin 9
+ sin 10
++sin 0x1.2001469775ce6p32
+ 
+ sincos 0
+ sincos -0
+diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
+index 8f79359..59c08a7 100644
+--- a/math/auto-libm-test-out
++++ b/math/auto-libm-test-out
+@@ -74446,6 +74446,75 @@ cos 0x1.000005bc7d86dp0
+ = cos tonearest ldbl-128ibm 0x1.000005bc7d86dp+0L : 0x8.a513ba9f703d3ffffffcb92354p-4L : inexact-ok
+ = cos towardzero ldbl-128ibm 0x1.000005bc7d86dp+0L : 0x8.a513ba9f703d3ffffffcb92354p-4L : inexact-ok
+ = cos upward ldbl-128ibm 0x1.000005bc7d86dp+0L : 0x8.a513ba9f703d3ffffffcb92358p-4L : inexact-ok
++cos 0x1.200145a975ce6p32
++= cos downward flt-32 0x1.200146p+32f : -0xf.74fbep-4f : inexact-ok
++= cos tonearest flt-32 0x1.200146p+32f : -0xf.74fbdp-4f : inexact-ok
++= cos towardzero flt-32 0x1.200146p+32f : -0xf.74fbdp-4f : inexact-ok
++= cos upward flt-32 0x1.200146p+32f : -0xf.74fbdp-4f : inexact-ok
++= cos downward dbl-64 0x1.200146p+32 : -0xf.74fbd5498fe5p-4 : inexact-ok
++= cos tonearest dbl-64 0x1.200146p+32 : -0xf.74fbd5498fe5p-4 : inexact-ok
++= cos towardzero dbl-64 0x1.200146p+32 : -0xf.74fbd5498fe48p-4 : inexact-ok
++= cos upward dbl-64 0x1.200146p+32 : -0xf.74fbd5498fe48p-4 : inexact-ok
++= cos downward ldbl-96-intel 0x1.200146p+32L : -0xf.74fbd5498fe4c0dp-4L : inexact-ok
++= cos tonearest ldbl-96-intel 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok
++= cos towardzero ldbl-96-intel 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok
++= cos upward ldbl-96-intel 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok
++= cos downward ldbl-96-m68k 0x1.200146p+32L : -0xf.74fbd5498fe4c0dp-4L : inexact-ok
++= cos tonearest ldbl-96-m68k 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok
++= cos towardzero ldbl-96-m68k 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok
++= cos upward ldbl-96-m68k 0x1.200146p+32L : -0xf.74fbd5498fe4c0cp-4L : inexact-ok
++= cos downward ldbl-128 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef59e8p-4L : inexact-ok
++= cos tonearest ldbl-128 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef59e8p-4L : inexact-ok
++= cos towardzero ldbl-128 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef59ep-4L : inexact-ok
++= cos upward ldbl-128 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef59ep-4L : inexact-ok
++= cos downward ldbl-128ibm 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef5cp-4L : inexact-ok
++= cos tonearest ldbl-128ibm 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef58p-4L : inexact-ok
++= cos towardzero ldbl-128ibm 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef58p-4L : inexact-ok
++= cos upward ldbl-128ibm 0x1.200146p+32L : -0xf.74fbd5498fe4c0c71bd9e4ef58p-4L : inexact-ok
++= cos downward flt-32 0x1.200144p+32f : 0xf.bc96cp-4f : inexact-ok
++= cos tonearest flt-32 0x1.200144p+32f : 0xf.bc96dp-4f : inexact-ok
++= cos towardzero flt-32 0x1.200144p+32f : 0xf.bc96cp-4f : inexact-ok
++= cos upward flt-32 0x1.200144p+32f : 0xf.bc96dp-4f : inexact-ok
++= cos downward dbl-64 0x1.200144p+32 : 0xf.bc96ca2c658a8p-4 : inexact-ok
++= cos tonearest dbl-64 0x1.200144p+32 : 0xf.bc96ca2c658a8p-4 : inexact-ok
++= cos towardzero dbl-64 0x1.200144p+32 : 0xf.bc96ca2c658a8p-4 : inexact-ok
++= cos upward dbl-64 0x1.200144p+32 : 0xf.bc96ca2c658bp-4 : inexact-ok
++= cos downward ldbl-96-intel 0x1.200144p+32L : 0xf.bc96ca2c658abf5p-4L : inexact-ok
++= cos tonearest ldbl-96-intel 0x1.200144p+32L : 0xf.bc96ca2c658abf6p-4L : inexact-ok
++= cos towardzero ldbl-96-intel 0x1.200144p+32L : 0xf.bc96ca2c658abf5p-4L : inexact-ok
++= cos upward ldbl-96-intel 0x1.200144p+32L : 0xf.bc96ca2c658abf6p-4L : inexact-ok
++= cos downward ldbl-96-m68k 0x1.200144p+32L : 0xf.bc96ca2c658abf5p-4L : inexact-ok
++= cos tonearest ldbl-96-m68k 0x1.200144p+32L : 0xf.bc96ca2c658abf6p-4L : inexact-ok
++= cos towardzero ldbl-96-m68k 0x1.200144p+32L : 0xf.bc96ca2c658abf5p-4L : inexact-ok
++= cos upward ldbl-96-m68k 0x1.200144p+32L : 0xf.bc96ca2c658abf6p-4L : inexact-ok
++= cos downward ldbl-128 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8fbp-4L : inexact-ok
++= cos tonearest ldbl-128 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8fbp-4L : inexact-ok
++= cos towardzero ldbl-128 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8fbp-4L : inexact-ok
++= cos upward ldbl-128 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8fb8p-4L : inexact-ok
++= cos downward ldbl-128ibm 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8cp-4L : inexact-ok
++= cos tonearest ldbl-128ibm 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a9p-4L : inexact-ok
++= cos towardzero ldbl-128ibm 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a8cp-4L : inexact-ok
++= cos upward ldbl-128ibm 0x1.200144p+32L : 0xf.bc96ca2c658abf5ace7b886a9p-4L : inexact-ok
++= cos downward dbl-64 0x1.200145a975ce6p+32 : -0x6.568e7ed3dffdp-4 : inexact-ok
++= cos tonearest dbl-64 0x1.200145a975ce6p+32 : -0x6.568e7ed3dffccp-4 : inexact-ok
++= cos towardzero dbl-64 0x1.200145a975ce6p+32 : -0x6.568e7ed3dffccp-4 : inexact-ok
++= cos upward dbl-64 0x1.200145a975ce6p+32 : -0x6.568e7ed3dffccp-4 : inexact-ok
++= cos downward ldbl-96-intel 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe8p-4L : inexact-ok
++= cos tonearest ldbl-96-intel 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok
++= cos towardzero ldbl-96-intel 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok
++= cos upward ldbl-96-intel 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok
++= cos downward ldbl-96-m68k 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe8p-4L : inexact-ok
++= cos tonearest ldbl-96-m68k 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok
++= cos towardzero ldbl-96-m68k 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok
++= cos upward ldbl-96-m68k 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfep-4L : inexact-ok
++= cos downward ldbl-128 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd726840e8p-4L : inexact-ok
++= cos tonearest ldbl-128 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd726840e4p-4L : inexact-ok
++= cos towardzero ldbl-128 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd726840e4p-4L : inexact-ok
++= cos upward ldbl-128 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd726840e4p-4L : inexact-ok
++= cos downward ldbl-128ibm 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd726842p-4L : inexact-ok
++= cos tonearest ldbl-128ibm 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd72684p-4L : inexact-ok
++= cos towardzero ldbl-128ibm 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd72684p-4L : inexact-ok
++= cos upward ldbl-128ibm 0x1.200145a975ce6p+32L : -0x6.568e7ed3dffcdfe227fd72684p-4L : inexact-ok
+ cos 1
+ = cos downward flt-32 0x1p+0f : 0x8.a514p-4f : inexact-ok
+ = cos tonearest flt-32 0x1p+0f : 0x8.a514p-4f : inexact-ok
+@@ -157744,6 +157813,75 @@ sin 10
+ = sin tonearest ldbl-128ibm 0xap+0L : -0x8.b44f7af9a7a92ce7fb22be025p-4L : inexact-ok
+ = sin towardzero ldbl-128ibm 0xap+0L : -0x8.b44f7af9a7a92ce7fb22be024cp-4L : inexact-ok
+ = sin upward ldbl-128ibm 0xap+0L : -0x8.b44f7af9a7a92ce7fb22be024cp-4L : inexact-ok
++sin 0x1.2001469775ce6p32
++= sin downward flt-32 0x1.200148p+32f : -0x5.595d8p-4f : inexact-ok
++= sin tonearest flt-32 0x1.200148p+32f : -0x5.595d8p-4f : inexact-ok
++= sin towardzero flt-32 0x1.200148p+32f : -0x5.595d78p-4f : inexact-ok
++= sin upward flt-32 0x1.200148p+32f : -0x5.595d78p-4f : inexact-ok
++= sin downward dbl-64 0x1.200148p+32 : -0x5.595d7e536fe38p-4 : inexact-ok
++= sin tonearest dbl-64 0x1.200148p+32 : -0x5.595d7e536fe34p-4 : inexact-ok
++= sin towardzero dbl-64 0x1.200148p+32 : -0x5.595d7e536fe34p-4 : inexact-ok
++= sin upward dbl-64 0x1.200148p+32 : -0x5.595d7e536fe34p-4 : inexact-ok
++= sin downward ldbl-96-intel 0x1.200148p+32L : -0x5.595d7e536fe35eep-4L : inexact-ok
++= sin tonearest ldbl-96-intel 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok
++= sin towardzero ldbl-96-intel 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok
++= sin upward ldbl-96-intel 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok
++= sin downward ldbl-96-m68k 0x1.200148p+32L : -0x5.595d7e536fe35eep-4L : inexact-ok
++= sin tonearest ldbl-96-m68k 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok
++= sin towardzero ldbl-96-m68k 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok
++= sin upward ldbl-96-m68k 0x1.200148p+32L : -0x5.595d7e536fe35ed8p-4L : inexact-ok
++= sin downward ldbl-128 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d944p-4L : inexact-ok
++= sin tonearest ldbl-128 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d94p-4L : inexact-ok
++= sin towardzero ldbl-128 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d94p-4L : inexact-ok
++= sin upward ldbl-128 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d94p-4L : inexact-ok
++= sin downward ldbl-128ibm 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9dap-4L : inexact-ok
++= sin tonearest ldbl-128ibm 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9dap-4L : inexact-ok
++= sin towardzero ldbl-128ibm 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d8p-4L : inexact-ok
++= sin upward ldbl-128ibm 0x1.200148p+32L : -0x5.595d7e536fe35edbe2ad0df9d8p-4L : inexact-ok
++= sin downward flt-32 0x1.200146p+32f : 0x4.220ffp-4f : inexact-ok
++= sin tonearest flt-32 0x1.200146p+32f : 0x4.220ffp-4f : inexact-ok
++= sin towardzero flt-32 0x1.200146p+32f : 0x4.220ffp-4f : inexact-ok
++= sin upward flt-32 0x1.200146p+32f : 0x4.220ff8p-4f : inexact-ok
++= sin downward dbl-64 0x1.200146p+32 : 0x4.220ff25f5cfp-4 : inexact-ok
++= sin tonearest dbl-64 0x1.200146p+32 : 0x4.220ff25f5cf04p-4 : inexact-ok
++= sin towardzero dbl-64 0x1.200146p+32 : 0x4.220ff25f5cfp-4 : inexact-ok
++= sin upward dbl-64 0x1.200146p+32 : 0x4.220ff25f5cf04p-4 : inexact-ok
++= sin downward ldbl-96-intel 0x1.200146p+32L : 0x4.220ff25f5cf02a4p-4L : inexact-ok
++= sin tonearest ldbl-96-intel 0x1.200146p+32L : 0x4.220ff25f5cf02a48p-4L : inexact-ok
++= sin towardzero ldbl-96-intel 0x1.200146p+32L : 0x4.220ff25f5cf02a4p-4L : inexact-ok
++= sin upward ldbl-96-intel 0x1.200146p+32L : 0x4.220ff25f5cf02a48p-4L : inexact-ok
++= sin downward ldbl-96-m68k 0x1.200146p+32L : 0x4.220ff25f5cf02a4p-4L : inexact-ok
++= sin tonearest ldbl-96-m68k 0x1.200146p+32L : 0x4.220ff25f5cf02a48p-4L : inexact-ok
++= sin towardzero ldbl-96-m68k 0x1.200146p+32L : 0x4.220ff25f5cf02a4p-4L : inexact-ok
++= sin upward ldbl-96-m68k 0x1.200146p+32L : 0x4.220ff25f5cf02a48p-4L : inexact-ok
++= sin downward ldbl-128 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679ccp-4L : inexact-ok
++= sin tonearest ldbl-128 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679ccp-4L : inexact-ok
++= sin towardzero ldbl-128 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679ccp-4L : inexact-ok
++= sin upward ldbl-128 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679cc4p-4L : inexact-ok
++= sin downward ldbl-128ibm 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679cp-4L : inexact-ok
++= sin tonearest ldbl-128ibm 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679cp-4L : inexact-ok
++= sin towardzero ldbl-128ibm 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679cp-4L : inexact-ok
++= sin upward ldbl-128ibm 0x1.200146p+32L : 0x4.220ff25f5cf02a464dbb3a679ep-4L : inexact-ok
++= sin downward dbl-64 0x1.2001469775ce6p+32 : -0x6.444fda50019fcp-4 : inexact-ok
++= sin tonearest dbl-64 0x1.2001469775ce6p+32 : -0x6.444fda50019f8p-4 : inexact-ok
++= sin towardzero dbl-64 0x1.2001469775ce6p+32 : -0x6.444fda50019f8p-4 : inexact-ok
++= sin upward dbl-64 0x1.2001469775ce6p+32 : -0x6.444fda50019f8p-4 : inexact-ok
++= sin downward ldbl-96-intel 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f6p-4L : inexact-ok
++= sin tonearest ldbl-96-intel 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok
++= sin towardzero ldbl-96-intel 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok
++= sin upward ldbl-96-intel 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok
++= sin downward ldbl-96-m68k 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f6p-4L : inexact-ok
++= sin tonearest ldbl-96-m68k 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok
++= sin towardzero ldbl-96-m68k 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok
++= sin upward ldbl-96-m68k 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f58p-4L : inexact-ok
++= sin downward ldbl-128 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca70604p-4L : inexact-ok
++= sin tonearest ldbl-128 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok
++= sin towardzero ldbl-128 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok
++= sin upward ldbl-128 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok
++= sin downward ldbl-128ibm 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca708p-4L : inexact-ok
++= sin tonearest ldbl-128ibm 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok
++= sin towardzero ldbl-128ibm 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok
++= sin upward ldbl-128ibm 0x1.2001469775ce6p+32L : -0x6.444fda50019f9f5ba3779ca706p-4L : inexact-ok
+ sincos 0
+ = sincos downward flt-32 0x0p+0f : 0x0p+0f 0x1p+0f : inexact-ok
+ = sincos tonearest flt-32 0x0p+0f : 0x0p+0f 0x1p+0f : inexact-ok
+diff --git a/sysdeps/ieee754/dbl-64/s_sin.c b/sysdeps/ieee754/dbl-64/s_sin.c
+index 6105e9f..50109b8 100644
+--- a/sysdeps/ieee754/dbl-64/s_sin.c
++++ b/sysdeps/ieee754/dbl-64/s_sin.c
+@@ -447,19 +447,21 @@ __sin (double x)
+ 	    }
+ 	  else
+ 	    {
++	      double t;
+ 	      if (a > 0)
+ 		{
+ 		  m = 1;
++		  t = a;
+ 		  db = da;
+ 		}
+ 	      else
+ 		{
+ 		  m = 0;
+-		  a = -a;
++		  t = -a;
+ 		  db = -da;
+ 		}
+-	      u.x = big + a;
+-	      y = a - (u.x - big);
++	      u.x = big + t;
++	      y = t - (u.x - big);
+ 	      res = do_sin (u, y, db, &cor);
+ 	      cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps;
+ 	      retval = ((res == res + cor) ? ((m) ? res : -res)
+@@ -671,19 +673,21 @@ __cos (double x)
+ 	    }
+ 	  else
+ 	    {
++	      double t;
+ 	      if (a > 0)
+ 		{
+ 		  m = 1;
++		  t = a;
+ 		  db = da;
+ 		}
+ 	      else
+ 		{
+ 		  m = 0;
+-		  a = -a;
++		  t = -a;
+ 		  db = -da;
+ 		}
+-	      u.x = big + a;
+-	      y = a - (u.x - big);
++	      u.x = big + t;
++	      y = t - (u.x - big);
+ 	      res = do_sin (u, y, db, &cor);
+ 	      cor = (cor > 0) ? 1.035 * cor + eps : 1.035 * cor - eps;
+ 	      retval = ((res == res + cor) ? ((m) ? res : -res)
+diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
+index f3980f8..544f1c7 100644
+--- a/sysdeps/x86_64/fpu/libm-test-ulps
++++ b/sysdeps/x86_64/fpu/libm-test-ulps
+@@ -10900,6 +10900,14 @@ idouble: 1
+ Test "cos_downward (0x1.0c152382d7365p+0)":
+ double: 1
+ idouble: 1
++Test "cos_downward (0x1.200145a975ce6p+32)":
++double: 1
++idouble: 1
++ildouble: 1
++ldouble: 1
++Test "cos_downward (0x1.200146p+32)":
++ildouble: 1
++ldouble: 1
+ Test "cos_downward (0x1.921fb4p+0)":
+ ildouble: 1
+ ldouble: 1
+@@ -11126,6 +11134,9 @@ idouble: 1
+ Test "cos_towardzero (0x1.0c152382d7365p+0)":
+ double: 1
+ idouble: 1
++Test "cos_towardzero (0x1.200146p+32)":
++double: 1
++idouble: 1
+ Test "cos_towardzero (0x1.921fb4p+0)":
+ ildouble: 1
+ ldouble: 1
+@@ -11258,6 +11269,17 @@ idouble: 1
+ Test "cos_upward (0x1.0c1524p+0)":
+ double: 1
+ idouble: 1
++Test "cos_upward (0x1.200144p+32)":
++double: 1
++idouble: 1
++Test "cos_upward (0x1.200145a975ce6p+32)":
++ildouble: 1
++ldouble: 1
++Test "cos_upward (0x1.200146p+32)":
++double: 1
++idouble: 1
++ildouble: 1
++ldouble: 1
+ Test "cos_upward (0x1.921fb4p+0)":
+ double: 1
+ idouble: 1
+@@ -15155,6 +15177,19 @@ double: 1
+ idouble: 1
+ ildouble: 1
+ ldouble: 1
++Test "sin_downward (0x1.2001469775ce6p+32)":
++double: 1
++idouble: 1
++ildouble: 1
++ldouble: 1
++Test "sin_downward (0x1.200146p+32)":
++double: 1
++idouble: 1
++Test "sin_downward (0x1.200148p+32)":
++double: 1
++idouble: 1
++ildouble: 1
++ldouble: 1
+ Test "sin_downward (0x1.921fb54442d18468p+0)":
+ ildouble: 1
+ ldouble: 1
+@@ -15383,6 +15418,9 @@ double: 1
+ idouble: 1
+ ildouble: 1
+ ldouble: 1
++Test "sin_towardzero (0x1.200146p+32)":
++double: 1
++idouble: 1
+ Test "sin_towardzero (0x1.921fb54442d18468p+0)":
+ ildouble: 1
+ ldouble: 1
+@@ -15532,6 +15570,12 @@ ldouble: 1
+ Test "sin_upward (-0x8.60a92p-4)":
+ ildouble: 1
+ ldouble: 1
++Test "sin_upward (0x1.2001469775ce6p+32)":
++ildouble: 1
++ldouble: 1
++Test "sin_upward (0x1.200148p+32)":
++ildouble: 1
++ldouble: 1
+ Test "sin_upward (0x1.921fb4p+0)":
+ double: 1
+ idouble: 1
diff --git a/pkgs/development/libraries/glibc/2.18/fix_path_attribute_in_getconf.patch b/pkgs/development/libraries/glibc/2.19/fix_path_attribute_in_getconf.patch
index 714e49db5607..714e49db5607 100644
--- a/pkgs/development/libraries/glibc/2.18/fix_path_attribute_in_getconf.patch
+++ b/pkgs/development/libraries/glibc/2.19/fix_path_attribute_in_getconf.patch
diff --git a/pkgs/development/libraries/glibc/2.18/glibc-crypt-blowfish.patch b/pkgs/development/libraries/glibc/2.19/glibc-crypt-blowfish.patch
index a0a8acdab63d..a0a8acdab63d 100644
--- a/pkgs/development/libraries/glibc/2.18/glibc-crypt-blowfish.patch
+++ b/pkgs/development/libraries/glibc/2.19/glibc-crypt-blowfish.patch
diff --git a/pkgs/development/libraries/glibc/2.18/info.nix b/pkgs/development/libraries/glibc/2.19/info.nix
index e4cdb42dd689..e4cdb42dd689 100644
--- a/pkgs/development/libraries/glibc/2.18/info.nix
+++ b/pkgs/development/libraries/glibc/2.19/info.nix
diff --git a/pkgs/development/libraries/glibc/2.18/locales-builder.sh b/pkgs/development/libraries/glibc/2.19/locales-builder.sh
index d732e208fa22..d732e208fa22 100644
--- a/pkgs/development/libraries/glibc/2.18/locales-builder.sh
+++ b/pkgs/development/libraries/glibc/2.19/locales-builder.sh
diff --git a/pkgs/development/libraries/glibc/2.18/locales.nix b/pkgs/development/libraries/glibc/2.19/locales.nix
index 9f9fb86a396d..9f9fb86a396d 100644
--- a/pkgs/development/libraries/glibc/2.18/locales.nix
+++ b/pkgs/development/libraries/glibc/2.19/locales.nix
diff --git a/pkgs/development/libraries/glibc/2.18/nix-locale-archive.patch b/pkgs/development/libraries/glibc/2.19/nix-locale-archive.patch
index 88c8adef9226..88c8adef9226 100644
--- a/pkgs/development/libraries/glibc/2.18/nix-locale-archive.patch
+++ b/pkgs/development/libraries/glibc/2.19/nix-locale-archive.patch
diff --git a/pkgs/development/libraries/glibc/2.18/rpcgen-path.patch b/pkgs/development/libraries/glibc/2.19/rpcgen-path.patch
index 3349449d9163..3349449d9163 100644
--- a/pkgs/development/libraries/glibc/2.18/rpcgen-path.patch
+++ b/pkgs/development/libraries/glibc/2.19/rpcgen-path.patch
diff --git a/pkgs/development/libraries/gnutls/3.2.nix b/pkgs/development/libraries/gnutls/3.2.nix
index fff05ed87271..45d0270de5a8 100644
--- a/pkgs/development/libraries/gnutls/3.2.nix
+++ b/pkgs/development/libraries/gnutls/3.2.nix
@@ -4,11 +4,11 @@
 assert guileBindings -> guile != null;
 
 stdenv.mkDerivation rec {
-  name = "gnutls-3.2.12";
+  name = "gnutls-3.2.12.1";
 
   src = fetchurl {
     url = "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/${name}.tar.lz";
-    sha256 = "1zwk9qkxn3190nssyamd7jsb3ag6mnnln3jwbgmjs1w306dzwafi";
+    sha256 = "1787n4iard3ad0p44xbl4aj3r3f5ir3sz0b2s27qpaaia2w4774g";
   };
 
   patches =
diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix
index da746969ed78..7686fb308383 100644
--- a/pkgs/development/libraries/gobject-introspection/default.nix
+++ b/pkgs/development/libraries/gobject-introspection/default.nix
@@ -5,7 +5,7 @@
 # In that case its about 6MB which could be separated
 
 let
-  ver_maj = "1.38";
+  ver_maj = "1.40";
   ver_min = "0";
 in
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/gobject-introspection/${ver_maj}/${name}.tar.xz";
-    sha256 = "0wvxyvgajmms2bb6k3pf1rdpnd79xdxamykzvxzmcyn1ag9yax9m";
+    sha256 = "162flbzwzz0b8axab2gimc4dglpaw88fh1d177zfg0whczlpbsln";
   };
 
   buildInputs = [ flex bison glib pkgconfig python ]
diff --git a/pkgs/development/libraries/gsasl/default.nix b/pkgs/development/libraries/gsasl/default.nix
index a4a3a01299c0..70b4ab8639d3 100644
--- a/pkgs/development/libraries/gsasl/default.nix
+++ b/pkgs/development/libraries/gsasl/default.nix
@@ -8,7 +8,10 @@ stdenv.mkDerivation rec {
     sha256 = "1rci64cxvcfr8xcjpqc4inpfq7aw4snnsbf5xz7d30nhvv8n40ii";
   };
 
-  buildInputs = [ gss libidn ];
+  buildInputs = [ libidn ]
+    ++ stdenv.lib.optional (!stdenv.isDarwin) gss;
+
+  configureFlags = stdenv.lib.optionalString stdenv.isDarwin "--with-gssapi-impl=mit";
 
   doCheck = true;
 
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index a9137ad46a77..eed4c12f2547 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -1,19 +1,29 @@
 { stdenv, fetchurl, pkgconfig, python, gst-plugins-base, orc
-, faac, faad2, libass, libkate, libmms
+, faacSupport ? false, faac ? null
+, faad2, libass, libkate, libmms
 , libmodplug, mpeg2dec, mpg123 
 , openjpeg, libopus, librsvg
 , timidity, libvdpau, wayland
 , libwebp, xvidcore, gnutls
 }:
 
+assert faacSupport -> faac != null;
+
 stdenv.mkDerivation rec {
   name = "gst-plugins-bad-1.2.3";
 
-  meta = {
-    homepage = "http://gstreamer.freedesktop.org";
-    license = stdenv.lib.licenses.gpl2Plus;
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = with stdenv.lib.maintainers; [ iyzsong ];
+  meta = with stdenv.lib; {
+    description = "Gstreamer Bad Plugins";
+    homepage    = "http://gstreamer.freedesktop.org";
+    longDescription = ''
+      a set of plug-ins that aren't up to par compared to the
+      rest.  They might be close to being good quality, but they're missing
+      something - be it a good code review, some documentation, a set of tests,
+      a real live maintainer, or some actual wide use.
+    '';
+    license     = licenses.lgpl2Plus;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ iyzsong ];
   };
 
   src = fetchurl {
@@ -25,10 +35,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gst-plugins-base orc
-    faac faad2 libass libkate libmms
+    faad2 libass libkate libmms
     libmodplug mpeg2dec mpg123 
     openjpeg libopus librsvg
     timidity libvdpau wayland
     libwebp xvidcore gnutls
-  ];
+  ] ++ stdenv.lib.optional faacSupport faac;
 }
diff --git a/pkgs/development/libraries/gstreamer/core/setup-hook.sh b/pkgs/development/libraries/gstreamer/core/setup-hook.sh
index 4e75044e732a..04863ab3b612 100644
--- a/pkgs/development/libraries/gstreamer/core/setup-hook.sh
+++ b/pkgs/development/libraries/gstreamer/core/setup-hook.sh
@@ -1,9 +1,9 @@
-addGstreamerLibPath () {
+addGstreamer1LibPath () {
     if test -d "$1/lib/gstreamer-1.0"
     then
         export GST_PLUGIN_SYSTEM_PATH_1_0="${GST_PLUGIN_SYSTEM_PATH_1_0}${GST_PLUGIN_SYSTEM_PATH_1_0:+:}$1/lib/gstreamer-1.0"
     fi
 }
 
-envHooks=(${envHooks[@]} addGstreamerLibPath)
+envHooks=(${envHooks[@]} addGstreamer1LibPath)
 
diff --git a/pkgs/development/libraries/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix
index b68de91c240f..4796ce078dfb 100644
--- a/pkgs/development/libraries/gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/default.nix
@@ -14,4 +14,8 @@ rec {
   gst-libav = callPackage ./libav { inherit gst-plugins-base; };
 
   gst-python = callPackage ./python { inherit gst-plugins-base gstreamer; };
+
+  gnonlin = callPackage ./gnonlin { inherit gst-plugins-base; };
+
+  gst-editing-services = callPackage ./ges { inherit gnonlin; };
 }
diff --git a/pkgs/development/libraries/gstreamer/ges/default.nix b/pkgs/development/libraries/gstreamer/ges/default.nix
new file mode 100644
index 000000000000..90233abe31c1
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/ges/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, python, gobjectIntrospection
+, gnonlin, libxml2
+}:
+
+stdenv.mkDerivation rec {
+  name = "gstreamer-editing-services-1.2.0";
+
+  meta = with stdenv.lib; {
+    description = "Library for creation of audio/video non-linear editors";
+    homepage    = "http://gstreamer.freedesktop.org";
+    license     = licenses.lgpl2Plus;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ iyzsong ];
+  };
+
+  src = fetchurl {
+    url = "${meta.homepage}/src/gstreamer-editing-services/${name}.tar.xz";
+    sha256 = "1n7nw8rqvwna9af55lggah44gdvfgld1igvgaya8glc37wpq89b0";
+  };
+
+  nativeBuildInputs = [ pkgconfig python gobjectIntrospection ];
+
+  propagatedBuildInputs = [ gnonlin libxml2 ];
+}
diff --git a/pkgs/development/libraries/gstreamer/gnonlin/default.nix b/pkgs/development/libraries/gstreamer/gnonlin/default.nix
new file mode 100644
index 000000000000..c45c1469cb36
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/gnonlin/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig
+, gst-plugins-base
+}:
+
+stdenv.mkDerivation rec {
+  name = "gnonlin-1.2.0";
+
+  meta = with stdenv.lib; {
+    description = "Gstreamer Non-Linear Multimedia Editing Plugins";
+    homepage    = "http://gstreamer.freedesktop.org";
+    longDescription = ''
+      Gnonlin is a library built on top of GStreamer which provides 
+      support for writing non-linear audio and video editing
+      applications. It introduces the concept of a timeline.
+    '';
+    license     = licenses.lgpl2Plus; 
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ iyzsong ];
+  };
+
+  src = fetchurl {
+    url = "${meta.homepage}/src/gnonlin/${name}.tar.xz";
+    sha256 = "15hyb0kg8sm92kj37cir4l3sa21b8zy4la1ccfhb358b4mf24vl7";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  propagatedBuildInputs = [ gst-plugins-base ];
+}
diff --git a/pkgs/development/libraries/gstreamer/good/default.nix b/pkgs/development/libraries/gstreamer/good/default.nix
index 71151c4e559c..090c84600ab7 100644
--- a/pkgs/development/libraries/gstreamer/good/default.nix
+++ b/pkgs/development/libraries/gstreamer/good/default.nix
@@ -9,11 +9,17 @@
 stdenv.mkDerivation rec {
   name = "gst-plugins-good-1.2.3";
 
-  meta = {
-    homepage = "http://gstreamer.freedesktop.org";
-    license = stdenv.lib.licenses.gpl2Plus;
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = with stdenv.lib.maintainers; [ iyzsong ];
+  meta = with stdenv.lib; {
+    description = "Gstreamer Good Plugins";
+    homepage    = "http://gstreamer.freedesktop.org";
+    longDescription = ''
+      a set of plug-ins that we consider to have good quality code,
+      correct functionality, our preferred license (LGPL for the plug-in
+      code, LGPL or LGPL-compatible for the supporting library).
+    '';
+    license     = licenses.lgpl2Plus;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ iyzsong ];
   };
 
   src = fetchurl {
diff --git a/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/default.nix b/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/default.nix
index c3510a69a123..c0cab607062d 100644
--- a/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/default.nix
@@ -2,12 +2,12 @@
 , automoc4, flex, bison, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "${pname}-0.10.2";
+  name = "${pname}-0.10.3";
   pname = "qt-gstreamer";
 
   src = fetchurl {
     url = "http://gstreamer.freedesktop.org/src/${pname}/${name}.tar.bz2";
-    sha256 = "1laryg5vgc3prdi7dmpfwa71nsrc3ngv27sgax44c4qfrgpsgwbf";
+    sha256 = "1pqg9sxzk8sdrf7pazb5v21hasqai9i4l203gbdqz29w2ll1ybsl";
   };
 
   buildInputs = [ gstreamer gst_plugins_base glib qt4 ];
diff --git a/pkgs/development/libraries/gstreamer/python/default.nix b/pkgs/development/libraries/gstreamer/python/default.nix
index eaf284e950d4..9a526de05b1c 100644
--- a/pkgs/development/libraries/gstreamer/python/default.nix
+++ b/pkgs/development/libraries/gstreamer/python/default.nix
@@ -3,16 +3,18 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "gst-python-1.1.90";
+  name = "gst-python-1.2.0";
 
   src = fetchurl {
     urls = [
       "${meta.homepage}/src/gst-python/${name}.tar.bz2"
       "mirror://gentoo/distfiles/${name}.tar.bz2"
       ];
-    sha256 = "1vsykx2l5360y19c0rxspa9nf1ilml2c1ybsv8cw8p696scryb2l";
+    sha256 = "09c6yls8ipbmwimdjr7xi3hvf2xa1xn1pv07855r7wfyzas1xbl1";
   };
 
+  patches = [ ./different-path-with-pygobject.patch ];
+
   buildInputs =
     [ pkgconfig gst-plugins-base pygtk pygobject3 ]
     ;
diff --git a/pkgs/development/libraries/gstreamer/python/different-path-with-pygobject.patch b/pkgs/development/libraries/gstreamer/python/different-path-with-pygobject.patch
new file mode 100644
index 000000000000..7326b3630f70
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/python/different-path-with-pygobject.patch
@@ -0,0 +1,20 @@
+diff -Nru gst-python-1.2.0-orig/gi/overrides/Makefile.in gst-python-1.2.0/gi/overrides/Makefile.in
+--- gst-python-1.2.0-orig/gi/overrides/Makefile.in	2014-03-22 21:47:56.235364405 +0800
++++ gst-python-1.2.0/gi/overrides/Makefile.in	2014-03-22 21:48:28.737958066 +0800
+@@ -356,7 +356,7 @@
+ 
+ # We install everything in the gi/overrides folder
+ pygioverridesdir = $(PYGI_OVERRIDES_DIR)
+-pygioverrides_PYTHON = Gst.py GstPbutils.py
++pygioverrides_PYTHON = Gst.py GstPbutils.py __init__.py
+ pygioverridesexecdir = $(PYGI_OVERRIDES_DIR)
+ EXTRA_DIST = Gst.py
+ INCLUDES = $(PYTHON_INCLUDES)
+diff -Nru gst-python-1.2.0-orig/gi/overrides/__init__.py gst-python-1.2.0/gi/overrides/__init__.py
+--- gst-python-1.2.0-orig/gi/overrides/__init__.py	1970-01-01 08:00:00.000000000 +0800
++++ gst-python-1.2.0/gi/overrides/__init__.py	2014-03-22 21:48:15.442124287 +0800
+@@ -0,0 +1,4 @@
++from pkgutil import extend_path
++
++__path__ = extend_path(__path__, __name__)
++print(__path__, __name__)
diff --git a/pkgs/development/libraries/gstreamer/ugly/default.nix b/pkgs/development/libraries/gstreamer/ugly/default.nix
index 50005004135a..4f16fa4259c8 100644
--- a/pkgs/development/libraries/gstreamer/ugly/default.nix
+++ b/pkgs/development/libraries/gstreamer/ugly/default.nix
@@ -7,11 +7,18 @@
 stdenv.mkDerivation rec {
   name = "gst-plugins-ugly-1.2.3";
 
-  meta = {
-    homepage = "http://gstreamer.freedesktop.org";
-    license = stdenv.lib.licenses.lgpl2Plus;
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = with stdenv.lib.maintainers; [ iyzsong ];
+  meta = with stdenv.lib; {
+    description = "Gstreamer Ugly Plugins";
+    homepage    = "http://gstreamer.freedesktop.org";
+    longDescription = ''
+      a set of plug-ins that have good quality and correct functionality,
+      but distributing them might pose problems.  The license on either
+      the plug-ins or the supporting libraries might not be how we'd
+      like. The code might be widely known to present patent problems.
+    '';
+    license     = licenses.lgpl2Plus;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ iyzsong ];
   };
 
   src = fetchurl {
diff --git a/pkgs/development/libraries/gtk+/2.x.nix b/pkgs/development/libraries/gtk+/2.x.nix
index fdc2c675847f..92c6debaa661 100644
--- a/pkgs/development/libraries/gtk+/2.x.nix
+++ b/pkgs/development/libraries/gtk+/2.x.nix
@@ -8,11 +8,11 @@ assert xineramaSupport -> xlibs.libXinerama != null;
 assert cupsSupport -> cups != null;
 
 stdenv.mkDerivation rec {
-  name = "gtk+-2.24.22";
+  name = "gtk+-2.24.23";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtk+/2.24/${name}.tar.xz";
-    sha256 = "0zxf810znlk80j230rbr0xscx3gm71jmf2bdiamg76rqzglvc55i";
+    sha256 = "0z2ic7fma1lmmv4ncgki3vadqp7d0qkj2d235impsplvgvi0d950";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/gtk+/3.x.nix b/pkgs/development/libraries/gtk+/3.x.nix
index 9f89fc074f18..82e2e41aff87 100644
--- a/pkgs/development/libraries/gtk+/3.x.nix
+++ b/pkgs/development/libraries/gtk+/3.x.nix
@@ -9,8 +9,8 @@ assert xineramaSupport -> xlibs.libXinerama != null;
 assert cupsSupport -> cups != null;
 
 let
-  ver_maj = "3.10";
-  ver_min = "7";
+  ver_maj = "3.12";
+  ver_min = "1";
   version = "${ver_maj}.${ver_min}";
 in
 stdenv.mkDerivation rec {
@@ -18,11 +18,9 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtk+/${ver_maj}/gtk+-${version}.tar.xz";
-    sha256 = "09wlsim4immrws0fyvpk03sspsljcsgybrwp73scycah70axxsdp";
+    sha256 = "1kbp0bmyzh7lbxv9y349vrj3d0n0hn68r5kyvg5683snvdgsx6ki";
   };
 
-  enableParallelBuilding = true;
-
   nativeBuildInputs = [ pkgconfig gettext gobjectIntrospection perl ];
 
   buildInputs = [ libxkbcommon ];
@@ -33,6 +31,11 @@ stdenv.mkDerivation rec {
     ++ optional xineramaSupport libXinerama
     ++ optional cupsSupport cups;
 
+  # demos fail to install, no idea where's the problem
+  preConfigure = "sed '/^SRC_SUBDIRS /s/demos//' -i Makefile.in";
+
+  enableParallelBuilding = true;
+
   postInstall = "rm -rf $out/share/gtk-doc";
 
   meta = {
diff --git a/pkgs/development/libraries/gtkmm/3.x.nix b/pkgs/development/libraries/gtkmm/3.x.nix
index 8649abec6378..600ea1a0278f 100644
--- a/pkgs/development/libraries/gtkmm/3.x.nix
+++ b/pkgs/development/libraries/gtkmm/3.x.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, pkgconfig, gtk3, glibmm, cairomm, pangomm, atkmm }:
 
 let
-  ver_maj = "3.10";
-  ver_min = "1";
+  ver_maj = "3.11"; # unstable version, but ATM no stable builds with gtk-3.12 and this is the version used in GNOME-3.12 "stable"
+  ver_min = "9";
 in
 stdenv.mkDerivation rec {
   name = "gtkmm-${ver_maj}.${ver_min}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtkmm/${ver_maj}/${name}.tar.xz";
-    sha256 = "0f1587pc6x8hn268vqj5zr4dvyisj5zd9zpsfxyfm1pkbjmcv9bg";
+    sha256 = "04yji82prijlwpd3blx0am1ikjy7y7ih7jd628dywdjbbfq42920";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix
index 083d0a10cdf8..3f20147d0e97 100644
--- a/pkgs/development/libraries/gvfs/default.nix
+++ b/pkgs/development/libraries/gvfs/default.nix
@@ -2,7 +2,7 @@
 , glib, dbus, udev, udisks2, libgcrypt
 , libgphoto2, avahi, libarchive, fuse, libcdio
 , libxml2, libxslt, docbook_xsl
-, lightWeight ? true, gnome, samba, makeWrapper }:
+, lightWeight ? true, gnome, samba, libgnome_keyring, gconf, makeWrapper }:
 
 let
   ver_maj = "1.18";
@@ -31,8 +31,8 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   # ToDo: one probably should specify schemas for samba and others here
-  fixupPhase = ''
-    wrapProgram $out/libexec/gvfsd --set GSETTINGS_SCHEMA_DIR "$out/share/glib-2.0/schemas"
+  preFixup = ''
+    wrapProgram $out/libexec/gvfsd --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
   '';
 
   meta = {
diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix
index 227ac58bda57..f564c4bf1bd0 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -8,11 +8,11 @@
 # (icu is a ~30 MB dependency, the rest is very small in comparison)
 
 stdenv.mkDerivation rec {
-  name = "harfbuzz-0.9.26";
+  name = "harfbuzz-0.9.27";
 
   src = fetchurl {
     url = "http://www.freedesktop.org/software/harfbuzz/release/${name}.tar.bz2";
-    sha256 = "0mz220qv3xn3lk1v94q1wgykayxnas94n8ks1liwkdazs71pvvax";
+    sha256 = "1ns7njbm45fjbc9p7gcpjc606ax120ab0i9cbx6v3mcq3kllln08";
   };
 
   configureFlags = [
diff --git a/pkgs/development/libraries/haskell/Chart-cairo/default.nix b/pkgs/development/libraries/haskell/Chart-cairo/default.nix
index 3b9e6fb4e33d..90f93edd4dcd 100644
--- a/pkgs/development/libraries/haskell/Chart-cairo/default.nix
+++ b/pkgs/development/libraries/haskell/Chart-cairo/default.nix
@@ -4,11 +4,12 @@
 
 cabal.mkDerivation (self: {
   pname = "Chart-cairo";
-  version = "1.2";
-  sha256 = "08aaf7yb2vry75g15md2012rnmyfrn7awwvba7c38d4h6vm95llg";
+  version = "1.2.2";
+  sha256 = "1bbi5bvrh8wmgzv5am5ndgdr68gd68ipparkkk9ld4majwf4vm6w";
   buildDepends = [
     cairo Chart colour dataDefaultClass lens mtl operational time
   ];
+  jailbreak = true;
   meta = {
     homepage = "https://github.com/timbod7/haskell-chart/wiki";
     description = "Cairo backend for Charts";
diff --git a/pkgs/development/libraries/haskell/Chart-diagrams/default.nix b/pkgs/development/libraries/haskell/Chart-diagrams/default.nix
index 008869713efa..22e432f2f329 100644
--- a/pkgs/development/libraries/haskell/Chart-diagrams/default.nix
+++ b/pkgs/development/libraries/haskell/Chart-diagrams/default.nix
@@ -5,13 +5,14 @@
 
 cabal.mkDerivation (self: {
   pname = "Chart-diagrams";
-  version = "1.2";
-  sha256 = "11pvyasra4mxid6826z6rkjhr71lg37fihzr8mgvjw3arascgqxz";
+  version = "1.2.2";
+  sha256 = "144dy9vp3x04s03jrkyfqczpwayb8k7dq702w9wm3d8q4ysva62q";
   buildDepends = [
     blazeSvg Chart colour dataDefaultClass diagramsCore diagramsLib
     diagramsPostscript diagramsSvg lens mtl operational SVGFonts text
     time
   ];
+  jailbreak = true;
   meta = {
     homepage = "https://github.com/timbod7/haskell-chart/wiki";
     description = "Diagrams backend for Charts";
diff --git a/pkgs/development/libraries/haskell/Chart-gtk/default.nix b/pkgs/development/libraries/haskell/Chart-gtk/default.nix
index a2e695a891da..8b1ce6b89e73 100644
--- a/pkgs/development/libraries/haskell/Chart-gtk/default.nix
+++ b/pkgs/development/libraries/haskell/Chart-gtk/default.nix
@@ -2,9 +2,10 @@
 
 cabal.mkDerivation (self: {
   pname = "Chart-gtk";
-  version = "1.2";
-  sha256 = "0qq72cf1m2gvcksa1jj5g9qi6b47pmpzh3grhs7kh3m7qyq0a56g";
+  version = "1.2.2";
+  sha256 = "1mg6nln0jwp6hals9vhhsfqiwix424fv1v1p4h99s0xwy5cna1z9";
   buildDepends = [ cairo Chart ChartCairo colour gtk mtl time ];
+  jailbreak = true;
   meta = {
     homepage = "https://github.com/timbod7/haskell-chart/wiki";
     description = "Utility functions for using the chart library with GTK";
diff --git a/pkgs/development/libraries/haskell/Chart/default.nix b/pkgs/development/libraries/haskell/Chart/default.nix
index 5f7e8c2cb4bd..7604cd28b8e3 100644
--- a/pkgs/development/libraries/haskell/Chart/default.nix
+++ b/pkgs/development/libraries/haskell/Chart/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Chart";
-  version = "1.2";
-  sha256 = "0cvp2j2hgsdk93f4rbd8y7s11hlr3zg15qkpxhd7p7sl2k6j2r5x";
+  version = "1.2.2";
+  sha256 = "0yd3xca500lbzvlvhdsbrkiy53laikq6hc290rc061agvd535a7p";
   buildDepends = [
     colour dataDefaultClass lens mtl operational time
   ];
diff --git a/pkgs/development/libraries/haskell/DAV/default.nix b/pkgs/development/libraries/haskell/DAV/default.nix
index 84ef157613e9..ac5a6636e76d 100644
--- a/pkgs/development/libraries/haskell/DAV/default.nix
+++ b/pkgs/development/libraries/haskell/DAV/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "DAV";
-  version = "0.6.1";
-  sha256 = "0j82fz5z9cwnl41qqs69gv0li25rkjndd8lnf4zy7bbdy558nxgz";
+  version = "0.6.2";
+  sha256 = "1alnjm0rfr7kwj6jax10bg8rcs8523n5dxyvw0mm65qykf78cprl";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -15,6 +15,7 @@ cabal.mkDerivation (self: {
     lens liftedBase monadControl mtl network optparseApplicative
     transformers transformersBase xmlConduit xmlHamlet
   ];
+  jailbreak = true;
   meta = {
     homepage = "http://floss.scru.org/hDAV";
     description = "RFC 4918 WebDAV support";
diff --git a/pkgs/development/libraries/haskell/Extra/default.nix b/pkgs/development/libraries/haskell/Extra/default.nix
new file mode 100644
index 000000000000..2634f8491141
--- /dev/null
+++ b/pkgs/development/libraries/haskell/Extra/default.nix
@@ -0,0 +1,19 @@
+{ cabal, bzlib, filepath, HUnit, mtl, network, pureMD5, QuickCheck
+, random, regexCompat, time, Unixutils, zlib
+}:
+
+cabal.mkDerivation (self: {
+  pname = "Extra";
+  version = "1.46.1";
+  sha256 = "0dgj72s60mhc36x7hpfdcdvxydq5d5aj006gxma9zz3hqzy5nnz9";
+  buildDepends = [
+    bzlib filepath HUnit mtl network pureMD5 QuickCheck random
+    regexCompat time Unixutils zlib
+  ];
+  meta = {
+    homepage = "http://src.seereason.com/haskell-extra";
+    description = "A grab bag of modules";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/Glob/default.nix b/pkgs/development/libraries/haskell/Glob/default.nix
index 80c0eaa44ab9..d6f07e9168dc 100644
--- a/pkgs/development/libraries/haskell/Glob/default.nix
+++ b/pkgs/development/libraries/haskell/Glob/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Glob";
-  version = "0.7.3";
-  sha256 = "0yl0wxbd03dv0hfr2aqwm9f3xnhjkdicymqv3nmhjjslqq3a59zd";
+  version = "0.7.4";
+  sha256 = "00f6xznqh27vbr8rggsrdphqsq1cvv931pa06b1grs7w01dcmw8s";
   buildDepends = [ dlist filepath transformers ];
   meta = {
     homepage = "http://iki.fi/matti.niemenmaa/glob/";
diff --git a/pkgs/development/libraries/haskell/HDBC/HDBC.nix b/pkgs/development/libraries/haskell/HDBC/HDBC.nix
index a8275c31b858..08134abf8438 100644
--- a/pkgs/development/libraries/haskell/HDBC/HDBC.nix
+++ b/pkgs/development/libraries/haskell/HDBC/HDBC.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "HDBC";
-  version = "2.3.1.2";
-  sha256 = "1rjamh8xscb9jhxgxcrs2qnvs2ipv9dqgnn0bpv5vwclmzmn5j87";
+  version = "2.4.0.0";
+  sha256 = "1zwkrr0pbgxi2y75n2sjr3xs8xa3pxbmnqg3phqkjqcz3j4gcq6y";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ convertible mtl text time utf8String ];
diff --git a/pkgs/development/libraries/haskell/HList/default.nix b/pkgs/development/libraries/haskell/HList/default.nix
index fda43c09baf1..15a7741d3351 100644
--- a/pkgs/development/libraries/haskell/HList/default.nix
+++ b/pkgs/development/libraries/haskell/HList/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "HList";
-  version = "0.3.4.0";
-  sha256 = "0jx0bfsc17c6bx621n7k0wfa5s59kcpi45p6wr8g4gyw846hjw9q";
+  version = "0.3.4.1";
+  sha256 = "02hw496qv2p0nnbz7lq7jfqnis19qqjsylyvdksqbwmjprk32rh2";
   buildDepends = [ mtl tagged ];
   testDepends = [ cmdargs doctest filepath hspec lens mtl syb ];
   buildTools = [ diffutils ];
diff --git a/pkgs/development/libraries/haskell/HStringTemplate/default.nix b/pkgs/development/libraries/haskell/HStringTemplate/default.nix
index 6f96bbbcb7f4..0f02d96fcd40 100644
--- a/pkgs/development/libraries/haskell/HStringTemplate/default.nix
+++ b/pkgs/development/libraries/haskell/HStringTemplate/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "HStringTemplate";
-  version = "0.7.1";
-  sha256 = "0hqc1496xazihlww8j90m1cwzj7cihqbfjdly9s8kjf8d5my64ld";
+  version = "0.7.3";
+  sha256 = "1gw4v16nk0878qplcx6by2bl4280lwyn9a252p6ldaqlbk9vygw8";
   buildDepends = [
     blazeBuilder deepseq filepath mtl parsec syb text time utf8String
     void
diff --git a/pkgs/development/libraries/haskell/HTF/default.nix b/pkgs/development/libraries/haskell/HTF/default.nix
index 877fa68ab008..aeb80822f619 100644
--- a/pkgs/development/libraries/haskell/HTF/default.nix
+++ b/pkgs/development/libraries/haskell/HTF/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "HTF";
-  version = "0.11.2.1";
-  sha256 = "194wjcs06cbxjfgfcax697405c0vlaklnvh705ffrxmrrww77z7l";
+  version = "0.11.3.4";
+  sha256 = "0db47fvp33k83dnhvpygprm06p3z397f5ci154vqk7krjpxb2ynx";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/HTTP/4000.2.11.nix b/pkgs/development/libraries/haskell/HTTP/4000.2.12.nix
index f48642462c60..b42703a403f4 100644
--- a/pkgs/development/libraries/haskell/HTTP/4000.2.11.nix
+++ b/pkgs/development/libraries/haskell/HTTP/4000.2.12.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "HTTP";
-  version = "4000.2.11";
-  sha256 = "17jlmh3v6k0mhd9nh1y5pf2br17lkx4wp9sa7q81wvprw998nw97";
+  version = "4000.2.12";
+  sha256 = "0zaynz8s70xzqxxrr8yjxwc7qspd4q2ig1vqjz1p4qqm72rs3jwl";
   buildDepends = [ mtl network parsec ];
   testDepends = [
     caseInsensitive conduit deepseq httpdShed httpTypes HUnit mtl
diff --git a/pkgs/development/libraries/haskell/HaXml/default.nix b/pkgs/development/libraries/haskell/HaXml/default.nix
index b490cf75d96c..996437cbeac2 100644
--- a/pkgs/development/libraries/haskell/HaXml/default.nix
+++ b/pkgs/development/libraries/haskell/HaXml/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "HaXml";
-  version = "1.24";
-  sha256 = "18kvavqa84k2121ppxngn39fjz4w63chngb3255w1fhdz13v3ydn";
+  version = "1.24.1";
+  sha256 = "1pvqgczksxasayvdb6d4g7ya7g7w1v9hsa35kaxm9bcic9y8q9az";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ filepath polyparse random ];
diff --git a/pkgs/development/libraries/haskell/HandsomeSoup/default.nix b/pkgs/development/libraries/haskell/HandsomeSoup/default.nix
new file mode 100644
index 000000000000..f20efdae4cfe
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HandsomeSoup/default.nix
@@ -0,0 +1,18 @@
+{ cabal, HTTP, hxt, hxtHttp, MaybeT, mtl, network, parsec
+, transformers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "HandsomeSoup";
+  version = "0.3.2";
+  sha256 = "0ixqk32sfv6kj41vc6fzflv6f6jwvnkvcdf9pmgkc675218ggh53";
+  buildDepends = [
+    HTTP hxt hxtHttp MaybeT mtl network parsec transformers
+  ];
+  meta = {
+    homepage = "https://github.com/egonSchiele/HandsomeSoup";
+    description = "Work with HTML more easily in HXT";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/Hipmunk/default.nix b/pkgs/development/libraries/haskell/Hipmunk/default.nix
index e2f78497a7a3..faaed63399a9 100644
--- a/pkgs/development/libraries/haskell/Hipmunk/default.nix
+++ b/pkgs/development/libraries/haskell/Hipmunk/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Hipmunk";
-  version = "5.2.0.12";
-  sha256 = "0gybmwwij6gs3gsklcvck0nc1niyh6pvirnxgrcwclrz94ivpj42";
+  version = "5.2.0.13";
+  sha256 = "0ddf7cbwaswyszq9rs5jq353npbry8l2cc7p5wq9wq97yplz10bc";
   buildDepends = [ StateVar transformers ];
   meta = {
     homepage = "https://github.com/meteficha/Hipmunk";
diff --git a/pkgs/development/libraries/haskell/JuicyPixels/default.nix b/pkgs/development/libraries/haskell/JuicyPixels/default.nix
index 5e12adc39a8f..95831927a308 100644
--- a/pkgs/development/libraries/haskell/JuicyPixels/default.nix
+++ b/pkgs/development/libraries/haskell/JuicyPixels/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "JuicyPixels";
-  version = "3.1.4.1";
-  sha256 = "12yq6wv0hs8kdckw1wgfssvnl8nvfanic8ciz8r2cjcwnlidh324";
+  version = "3.1.5";
+  sha256 = "1dcqqmj7skx17mwaf0sayqdknnz9w6q2y8z3c8ixmbjyg4jh6a66";
   buildDepends = [
     binary deepseq mtl primitive transformers vector zlib
   ];
diff --git a/pkgs/development/libraries/haskell/QuickCheck/2.7.3.nix b/pkgs/development/libraries/haskell/QuickCheck/2.7.3.nix
new file mode 100644
index 000000000000..b3acd535d8f5
--- /dev/null
+++ b/pkgs/development/libraries/haskell/QuickCheck/2.7.3.nix
@@ -0,0 +1,16 @@
+{ cabal, random, testFramework, tfRandom }:
+
+cabal.mkDerivation (self: {
+  pname = "QuickCheck";
+  version = "2.7.3";
+  sha256 = "196pz0b32m84ydwm4wk7m8512bmsxw7nsqpxbyfxsyi3ykq220yh";
+  buildDepends = [ random tfRandom ];
+  testDepends = [ testFramework ];
+  meta = {
+    homepage = "http://code.haskell.org/QuickCheck";
+    description = "Automatic testing of Haskell programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/TypeCompose/default.nix b/pkgs/development/libraries/haskell/TypeCompose/default.nix
index b7c1a23d3d5e..083f438e170d 100644
--- a/pkgs/development/libraries/haskell/TypeCompose/default.nix
+++ b/pkgs/development/libraries/haskell/TypeCompose/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "TypeCompose";
-  version = "0.9.9";
-  sha256 = "0i89r1yaglkcc1fdhn0m4hws5rqcpmkg32ddznch7a3rz1l9gqwg";
+  version = "0.9.10";
+  sha256 = "1wpldqdf6czl36fs4pvvj2z3kg1487sanqncp4rbmgrrhbfmqxxq";
   meta = {
     homepage = "https://github.com/conal/TypeCompose";
     description = "Type composition classes & instances";
diff --git a/pkgs/development/libraries/haskell/Unixutils/default.nix b/pkgs/development/libraries/haskell/Unixutils/default.nix
new file mode 100644
index 000000000000..37c1aaf6cef0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/Unixutils/default.nix
@@ -0,0 +1,14 @@
+{ cabal, filepath, pureMD5, regexTdfa, zlib }:
+
+cabal.mkDerivation (self: {
+  pname = "Unixutils";
+  version = "1.52";
+  sha256 = "1gp04mc6irycwazykl9kpyhkkryn3hbnpn08ih6cjbsm3p8yi8b4";
+  buildDepends = [ filepath pureMD5 regexTdfa zlib ];
+  meta = {
+    homepage = "http://src.seereason.com/haskell-unixutils";
+    description = "A crude interface between Haskell and Unix-like operating systems";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/active/default.nix b/pkgs/development/libraries/haskell/active/default.nix
index 99e217ba647d..7bfb0a045ee2 100644
--- a/pkgs/development/libraries/haskell/active/default.nix
+++ b/pkgs/development/libraries/haskell/active/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "active";
-  version = "0.1.0.10";
-  sha256 = "173ri9hv86sjfp3a0jp1y3v8rz0lfb6nz3yilcfvgc9sglcxa4bm";
+  version = "0.1.0.12";
+  sha256 = "0ra0wnpyc23sz2w9qk6afcxsrva55nv9vyv70dvw6xhc82vi3khs";
   buildDepends = [ newtype semigroupoids semigroups vectorSpace ];
   testDepends = [
     newtype QuickCheck semigroupoids semigroups vectorSpace
diff --git a/pkgs/development/libraries/haskell/adjunctions/default.nix b/pkgs/development/libraries/haskell/adjunctions/default.nix
index 69c7751270cf..d0804959ccb6 100644
--- a/pkgs/development/libraries/haskell/adjunctions/default.nix
+++ b/pkgs/development/libraries/haskell/adjunctions/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "adjunctions";
-  version = "4.0.2";
-  sha256 = "0c9168jmnfpzv3025n05b80b9p7jzkdzs0hzymjmh1qvz3iximq5";
+  version = "4.0.3";
+  sha256 = "0rh3vffbq407k9g95dingw6zqq3fk87pknyrqj1mrbmgrnllr8k0";
   buildDepends = [
     comonad contravariant distributive free mtl semigroupoids
     semigroups tagged transformers void
diff --git a/pkgs/development/libraries/haskell/aeson-lens/default.nix b/pkgs/development/libraries/haskell/aeson-lens/default.nix
deleted file mode 100644
index f2d1915e122c..000000000000
--- a/pkgs/development/libraries/haskell/aeson-lens/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cabal, aeson, doctest, lens, text, unorderedContainers, vector }:
-
-cabal.mkDerivation (self: {
-  pname = "aeson-lens";
-  version = "0.5.0.0";
-  sha256 = "1pr8cxkx41wi7095cp1gpqrwadwx6azcrdi1kr1ik0fs6606dkks";
-  buildDepends = [ aeson lens text unorderedContainers vector ];
-  testDepends = [ doctest ];
-  meta = {
-    description = "Lens of Aeson";
-    license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.ocharles ];
-  };
-})
diff --git a/pkgs/development/libraries/haskell/alsa-mixer/default.nix b/pkgs/development/libraries/haskell/alsa-mixer/default.nix
index 35cc7aa0c93c..0e7ef5e2a9f5 100644
--- a/pkgs/development/libraries/haskell/alsa-mixer/default.nix
+++ b/pkgs/development/libraries/haskell/alsa-mixer/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "alsa-mixer";
-  version = "0.2.0.1";
-  sha256 = "1306kw4w85d3pkdqjw8cwx77a2mbhw2hlmxcjczym1nsyp4rhyhr";
+  version = "0.2.0.2";
+  sha256 = "11sc2n879a8rb9yz54cb8vg8rplgapbymzy785p7n7638xx877hk";
   buildDepends = [ alsaCore ];
   buildTools = [ c2hs ];
   extraLibraries = [ alsaLib ];
@@ -12,5 +12,6 @@ cabal.mkDerivation (self: {
     description = "Bindings to the ALSA simple mixer API";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.stdenv.lib.platforms.linux;
+    maintainers = with self.stdenv.lib.maintainers; [ ttuegel ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/alsa-pcm/default.nix b/pkgs/development/libraries/haskell/alsa-pcm/default.nix
index 39123a176dc7..c4f39cdd7eeb 100644
--- a/pkgs/development/libraries/haskell/alsa-pcm/default.nix
+++ b/pkgs/development/libraries/haskell/alsa-pcm/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "alsa-pcm";
-  version = "0.6";
-  sha256 = "10cmlf1s9y65cs81wn7xwgcd4218n3h3p34avibv3fa7n3q9b4x1";
+  version = "0.6.0.1";
+  sha256 = "0gnq4p172sqmlks6aykzr5l2qx2shrs2fypcvs4g56c9zpk3c3ax";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/arithmoi/default.nix b/pkgs/development/libraries/haskell/arithmoi/default.nix
index 181937fdd807..082745fadf07 100644
--- a/pkgs/development/libraries/haskell/arithmoi/default.nix
+++ b/pkgs/development/libraries/haskell/arithmoi/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "arithmoi";
-  version = "0.4.0.3";
-  sha256 = "0idn312xzly636h13zmm7cw7ki64bpnniqc97nshqzgp8if5ycrc";
+  version = "0.4.0.4";
+  sha256 = "1v8qn0gjvlds6ljm9sfzzi5w3gsf7x63z0r7hcs1rvn0n3acwz6y";
   buildDepends = [ mtl random ];
   meta = {
     homepage = "https://bitbucket.org/dafis/arithmoi";
diff --git a/pkgs/development/libraries/haskell/attempt/default.nix b/pkgs/development/libraries/haskell/attempt/default.nix
index c000002d4998..2546748ee1ed 100644
--- a/pkgs/development/libraries/haskell/attempt/default.nix
+++ b/pkgs/development/libraries/haskell/attempt/default.nix
@@ -2,12 +2,12 @@
 
 cabal.mkDerivation (self: {
   pname = "attempt";
-  version = "0.4.0";
-  sha256 = "0n7srd1gy1fa0q1qzizvdgmrc078jyx47115aw85vvl74vh9qyjy";
+  version = "0.4.0.1";
+  sha256 = "1gvq04ds62kk88r2210mxd1fggp6vf5p8j5hci9vqkkss1hy9rxh";
   buildDepends = [ failure ];
   meta = {
     homepage = "http://github.com/snoyberg/attempt/tree/master";
-    description = "Concrete data type for handling extensible exceptions as failures";
+    description = "Concrete data type for handling extensible exceptions as failures. (deprecated)";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
     maintainers = [ self.stdenv.lib.maintainers.andres ];
diff --git a/pkgs/development/libraries/haskell/attoparsec-conduit/default.nix b/pkgs/development/libraries/haskell/attoparsec-conduit/default.nix
index 68b08e50686e..21a15ea80e72 100644
--- a/pkgs/development/libraries/haskell/attoparsec-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/attoparsec-conduit/default.nix
@@ -1,15 +1,14 @@
-{ cabal, attoparsec, conduit, hspec, resourcet, text, transformers
-}:
+{ cabal, conduit }:
 
 cabal.mkDerivation (self: {
   pname = "attoparsec-conduit";
-  version = "1.0.1.2";
-  sha256 = "1j05r7mvm83wgnka7asmwd1dj4ajkg548mryyhpr7dd53vn5lbx0";
-  buildDepends = [ attoparsec conduit text transformers ];
-  testDepends = [ attoparsec conduit hspec resourcet text ];
+  version = "1.1.0";
+  sha256 = "18xn3nzxfghcd88cana1jw85ijv0ysw3bp36fb6r5wsf6m79z01y";
+  buildDepends = [ conduit ];
+  noHaddock = true;
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
-    description = "Consume attoparsec parsers via conduit";
+    description = "Consume attoparsec parsers via conduit. (deprecated)";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
     maintainers = [ self.stdenv.lib.maintainers.andres ];
diff --git a/pkgs/development/libraries/haskell/authenticate-oauth/RSA2.patch b/pkgs/development/libraries/haskell/authenticate-oauth/RSA2.patch
new file mode 100644
index 000000000000..6a888aa32778
--- /dev/null
+++ b/pkgs/development/libraries/haskell/authenticate-oauth/RSA2.patch
@@ -0,0 +1,57 @@
+From c401c2c585b5345243211e981c123a92b995b448 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Sat, 25 Jan 2014 13:35:52 +0300
+Subject: [PATCH] authenticate-oauth.cabal: allow RSA-2
+
+The only cosmetic change is rename of 'ha_SHA1' to 'hashSHA1'
+
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+---
+ authenticate-oauth/Web/Authenticate/OAuth.hs | 10 ++++++++--
+ authenticate-oauth/authenticate-oauth.cabal  |  2 +-
+ 2 files changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/authenticate-oauth/Web/Authenticate/OAuth.hs b/authenticate-oauth/Web/Authenticate/OAuth.hs
+index 3f38c8c..eccd0f1 100644
+--- a/authenticate-oauth/Web/Authenticate/OAuth.hs
++++ b/authenticate-oauth/Web/Authenticate/OAuth.hs
+@@ -21,7 +21,7 @@ module Web.Authenticate.OAuth
+       paramEncode, addScope, addMaybeProxy
+     ) where
+ import           Blaze.ByteString.Builder     (toByteString, Builder)
+-import           Codec.Crypto.RSA             (ha_SHA1, rsassa_pkcs1_v1_5_sign)
++import qualified Codec.Crypto.RSA             as RSA
+ import           Control.Exception
+ import           Control.Monad
+ import           Control.Monad.IO.Class       (MonadIO, liftIO)
+@@ -346,7 +346,13 @@ genSign oa tok req =
+     PLAINTEXT ->
+       return $ BS.intercalate "&" $ map paramEncode [oauthConsumerSecret oa, tokenSecret tok]
+     RSASHA1 pr ->
+-      liftM (encode . toStrict . rsassa_pkcs1_v1_5_sign ha_SHA1 pr) (getBaseString tok req)
++      liftM (encode . toStrict . RSA.rsassa_pkcs1_v1_5_sign
++#if MIN_VERSION_RSA(2, 0, 0)
++                                     RSA.hashSHA1
++#else
++                                     RSA.ha_SHA1
++#endif
++                                     pr) (getBaseString tok req)
+ 
+ #if MIN_VERSION_http_conduit(2, 0, 0)
+ addAuthHeader :: BS.ByteString -> Credential -> Request -> Request
+diff --git a/authenticate-oauth/authenticate-oauth.cabal b/authenticate-oauth/authenticate-oauth.cabal
+index 00507da..e11c3bd 100644
+--- a/authenticate-oauth/authenticate-oauth.cabal
++++ b/authenticate-oauth/authenticate-oauth.cabal
+@@ -19,7 +19,7 @@ library
+                    , transformers                  >= 0.1      && < 0.4
+                    , bytestring                    >= 0.9
+                    , crypto-pubkey-types           >= 0.1      && < 0.5
+-                   , RSA                           >= 1.2      && < 1.3
++                   , RSA                           >= 1.2      && < 2.1
+                    , time
+                    , data-default
+                    , base64-bytestring             >= 0.1      && < 1.1
+-- 
+1.9.1
+
diff --git a/pkgs/development/libraries/haskell/authenticate-oauth/default.nix b/pkgs/development/libraries/haskell/authenticate-oauth/default.nix
index 15c8267ca3e2..9a75bd0cea50 100644
--- a/pkgs/development/libraries/haskell/authenticate-oauth/default.nix
+++ b/pkgs/development/libraries/haskell/authenticate-oauth/default.nix
@@ -7,6 +7,8 @@ cabal.mkDerivation (self: {
   pname = "authenticate-oauth";
   version = "1.4.0.8";
   sha256 = "1mc36d6lkmqywzsxhzwv4445mmwdz0rr5ibd2a1nbgw5c5jw76fy";
+  patches = [ ./RSA2.patch ];
+  patchFlags = "-p2";
   buildDepends = [
     base64Bytestring blazeBuilder blazeBuilderConduit conduit
     cryptoPubkeyTypes dataDefault httpConduit httpTypes monadControl
@@ -17,5 +19,6 @@ cabal.mkDerivation (self: {
     description = "Library to authenticate with OAuth for Haskell web applications";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.ocharles ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/authenticate/default.nix b/pkgs/development/libraries/haskell/authenticate/default.nix
index f0a1969ffbab..884f4175ba5b 100644
--- a/pkgs/development/libraries/haskell/authenticate/default.nix
+++ b/pkgs/development/libraries/haskell/authenticate/default.nix
@@ -1,16 +1,17 @@
 { cabal, aeson, attoparsec, blazeBuilder, caseInsensitive, conduit
-, httpConduit, httpTypes, network, tagsoup, text, transformers
-, unorderedContainers, xmlConduit
+, httpConduit, httpTypes, monadControl, network, resourcet
+, tagstreamConduit, text, transformers, unorderedContainers
+, xmlConduit
 }:
 
 cabal.mkDerivation (self: {
   pname = "authenticate";
-  version = "1.3.2.6";
-  sha256 = "12sgi6q6kajjhh8mns9nklxj0kwn32xs5kzi7wmw50shx0smnjrz";
+  version = "1.3.2.8";
+  sha256 = "1ylijkj32li9nm4x16d66h6a74q07m4v3n2dqm67by548wfyh1j9";
   buildDepends = [
     aeson attoparsec blazeBuilder caseInsensitive conduit httpConduit
-    httpTypes network tagsoup text transformers unorderedContainers
-    xmlConduit
+    httpTypes monadControl network resourcet tagstreamConduit text
+    transformers unorderedContainers xmlConduit
   ];
   meta = {
     homepage = "http://github.com/yesodweb/authenticate";
diff --git a/pkgs/development/libraries/haskell/aws/default.nix b/pkgs/development/libraries/haskell/aws/default.nix
index af8b2785aa96..7394583c6674 100644
--- a/pkgs/development/libraries/haskell/aws/default.nix
+++ b/pkgs/development/libraries/haskell/aws/default.nix
@@ -1,21 +1,22 @@
-{ cabal, attempt, base64Bytestring, blazeBuilder, caseInsensitive
-, cereal, conduit, cryptoApi, cryptohash, cryptohashCryptoapi
-, dataDefault, failure, filepath, httpConduit, httpTypes
+{ cabal, aeson, base16Bytestring, base64Bytestring, blazeBuilder
+, byteable, caseInsensitive, cereal, conduit, conduitExtra
+, cryptohash, dataDefault, filepath, httpConduit, httpTypes
 , liftedBase, monadControl, mtl, resourcet, text, time
-, transformers, utf8String, xmlConduit
+, transformers, unorderedContainers, utf8String, vector, xmlConduit
 }:
 
 cabal.mkDerivation (self: {
   pname = "aws";
-  version = "0.8.4";
-  sha256 = "0p4m07lw33wd82phwfvyr1alqx3bsafnf25n60h1mss7l0rzyn0i";
+  version = "0.9";
+  sha256 = "07sdz179vqfdcnm6rrdg068xdyqw8m2565bdba5a1s987vdvps21";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    attempt base64Bytestring blazeBuilder caseInsensitive cereal
-    conduit cryptoApi cryptohash cryptohashCryptoapi dataDefault
-    failure filepath httpConduit httpTypes liftedBase monadControl mtl
-    resourcet text time transformers utf8String xmlConduit
+    aeson base16Bytestring base64Bytestring blazeBuilder byteable
+    caseInsensitive cereal conduit conduitExtra cryptohash dataDefault
+    filepath httpConduit httpTypes liftedBase monadControl mtl
+    resourcet text time transformers unorderedContainers utf8String
+    vector xmlConduit
   ];
   meta = {
     homepage = "http://github.com/aristidb/aws";
diff --git a/pkgs/development/libraries/haskell/base64-conduit/default.nix b/pkgs/development/libraries/haskell/base64-conduit/default.nix
index 3a2d044de64d..0fa5a02d5a5c 100644
--- a/pkgs/development/libraries/haskell/base64-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/base64-conduit/default.nix
@@ -3,15 +3,15 @@
 
 cabal.mkDerivation (self: {
   pname = "base64-conduit";
-  version = "1.0.0";
-  sha256 = "10wjgdixk5da48jpm2i91vy3ckdqpbpgba6hzn7ak6d3qac22m9q";
+  version = "1.0.0.1";
+  sha256 = "07zhvn3fy60q04a5g5mzhkl17rap9jlh00vb4f6565bjha2k16g9";
   buildDepends = [ base64Bytestring conduit ];
   testDepends = [
     base64Bytestring conduit hspec QuickCheck transformers
   ];
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
-    description = "Base64-encode and decode streams of bytes";
+    description = "Base64-encode and decode streams of bytes. (deprecated)";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/basic-prelude/default.nix b/pkgs/development/libraries/haskell/basic-prelude/default.nix
index 8d31acb399f8..b923e444b1ec 100644
--- a/pkgs/development/libraries/haskell/basic-prelude/default.nix
+++ b/pkgs/development/libraries/haskell/basic-prelude/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "basic-prelude";
-  version = "0.3.6.0";
-  sha256 = "1sm89mva8vkhqp230g965b0k4n3g0c8w4sfsad8m1wh434g3k732";
+  version = "0.3.8";
+  sha256 = "0lywnsds0q1nr466s3pc2izfr58kp23z7ing9k7dlgbmh9cqxypg";
   buildDepends = [
     hashable liftedBase ReadArgs safe systemFilepath text transformers
     unorderedContainers vector
diff --git a/pkgs/development/libraries/haskell/bert/default.nix b/pkgs/development/libraries/haskell/bert/default.nix
index e2d482b364ec..96c421b708dd 100644
--- a/pkgs/development/libraries/haskell/bert/default.nix
+++ b/pkgs/development/libraries/haskell/bert/default.nix
@@ -1,14 +1,14 @@
-{ cabal, async, binary, binaryConduit, conduit, mtl, network
-, networkConduit, parsec, smallcheck, tasty, tastyHunit
-, tastySmallcheck, time, void
+{ cabal, async, binary, binaryConduit, conduit, conduitExtra, mtl
+, network, parsec, smallcheck, tasty, tastyHunit, tastySmallcheck
+, time, void
 }:
 
 cabal.mkDerivation (self: {
   pname = "bert";
-  version = "1.2.2.1";
-  sha256 = "1x23grykamyclx6a5jzyqwp3hwr2ma61zvmz89f3cj06sa49cgs0";
+  version = "1.2.2.2";
+  sha256 = "0bjrqgm0dpsrk1nivxmw2wvx33v7z7swgy3p5fb51vg7y81776cz";
   buildDepends = [
-    binary binaryConduit conduit mtl network networkConduit parsec time
+    binary binaryConduit conduit conduitExtra mtl network parsec time
     void
   ];
   testDepends = [
diff --git a/pkgs/development/libraries/haskell/binary-conduit/default.nix b/pkgs/development/libraries/haskell/binary-conduit/default.nix
index 0149fcabe724..4126910db752 100644
--- a/pkgs/development/libraries/haskell/binary-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/binary-conduit/default.nix
@@ -1,14 +1,14 @@
 { cabal, binary, conduit, hspec, QuickCheck, quickcheckAssertions
-, vector
+, resourcet, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "binary-conduit";
-  version = "1.2";
-  sha256 = "1m58zgmivapn51gs5983vpsivzkki94kkac014mwvnp90q46nkvx";
-  buildDepends = [ binary conduit vector ];
+  version = "1.2.1.1";
+  sha256 = "0f6ki793fbgxpsqadfj796b4rbv6zhn4v4rrd48r48zzw9hmxmzd";
+  buildDepends = [ binary conduit resourcet vector ];
   testDepends = [
-    binary conduit hspec QuickCheck quickcheckAssertions
+    binary conduit hspec QuickCheck quickcheckAssertions resourcet
   ];
   meta = {
     homepage = "http://github.com/qnikst/binary-conduit";
diff --git a/pkgs/development/libraries/haskell/blaze-builder-conduit/default.nix b/pkgs/development/libraries/haskell/blaze-builder-conduit/default.nix
index 16c352b7a332..1c6670f17ab6 100644
--- a/pkgs/development/libraries/haskell/blaze-builder-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-builder-conduit/default.nix
@@ -1,18 +1,14 @@
-{ cabal, blazeBuilder, conduit, hspec, QuickCheck, text
-, transformers
-}:
+{ cabal, conduit }:
 
 cabal.mkDerivation (self: {
   pname = "blaze-builder-conduit";
-  version = "1.0.0";
-  sha256 = "15q0b0k5dxrp9cw2b4qf9mmjwz1mmxrn3890df5rc9z6yajajrc6";
-  buildDepends = [ blazeBuilder conduit text transformers ];
-  testDepends = [
-    blazeBuilder conduit hspec QuickCheck transformers
-  ];
+  version = "1.1.0";
+  sha256 = "0xxyn3lhcn1bkybhrl5dx68d0adf26ilf34gv0mxkwpfj7m7d3k3";
+  buildDepends = [ conduit ];
+  noHaddock = true;
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
-    description = "Convert streams of builders to streams of bytestrings";
+    description = "Convert streams of builders to streams of bytestrings. (deprecated)";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
     maintainers = [ self.stdenv.lib.maintainers.andres ];
diff --git a/pkgs/development/libraries/haskell/bmp/1.2.2.1.nix b/pkgs/development/libraries/haskell/bmp/1.2.2.1.nix
deleted file mode 100644
index e018ac7a8d28..000000000000
--- a/pkgs/development/libraries/haskell/bmp/1.2.2.1.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cabal, binary }:
-
-cabal.mkDerivation (self: {
-  pname = "bmp";
-  version = "1.2.2.1";
-  sha256 = "0yxkkvpgavk9im9i9f6zpzc1n5nj2g4qsk4ck51aqz2fv6z1rhiy";
-  buildDepends = [ binary ];
-  meta = {
-    homepage = "http://code.ouroborus.net/bmp";
-    description = "Read and write uncompressed BMP image files";
-    license = self.stdenv.lib.licenses.mit;
-    platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
-  };
-})
diff --git a/pkgs/development/libraries/haskell/bmp/1.2.5.2.nix b/pkgs/development/libraries/haskell/bmp/default.nix
index 6c85c9349c99..6c85c9349c99 100644
--- a/pkgs/development/libraries/haskell/bmp/1.2.5.2.nix
+++ b/pkgs/development/libraries/haskell/bmp/default.nix
diff --git a/pkgs/development/libraries/haskell/bytestring-lexing/default.nix b/pkgs/development/libraries/haskell/bytestring-lexing/default.nix
index 8c4f2af654e1..9a013c9f2453 100644
--- a/pkgs/development/libraries/haskell/bytestring-lexing/default.nix
+++ b/pkgs/development/libraries/haskell/bytestring-lexing/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "bytestring-lexing";
-  version = "0.4.3.1";
-  sha256 = "1n0sk1xqwkj4whp0gav7hwr33xqmwl3ylqfnqix8wbwz6xpg9ygn";
+  version = "0.4.3.2";
+  sha256 = "09ymg1n21668wn4harxg0cqlz98fz990bangpy99w2z7d6cwbc05";
   buildTools = [ alex ];
   meta = {
     homepage = "http://code.haskell.org/~wren/";
diff --git a/pkgs/development/libraries/haskell/bytestring-show/default.nix b/pkgs/development/libraries/haskell/bytestring-show/default.nix
index b71b2a3ad83a..19b8f15bc6db 100644
--- a/pkgs/development/libraries/haskell/bytestring-show/default.nix
+++ b/pkgs/development/libraries/haskell/bytestring-show/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "bytestring-show";
-  version = "0.3.5.5";
-  sha256 = "0vd8f3jrzi2s119rcn20k6srk6l7ypiars1mxw1n1jrjx8ill2y4";
+  version = "0.3.5.6";
+  sha256 = "04h81a0bh2fvnkby1qafnydb29gzk6d4d311i2lbn7lm2vyjw919";
   buildDepends = [ binary ];
   meta = {
     homepage = "http://code.haskell.org/~dolio/";
diff --git a/pkgs/development/libraries/haskell/bzlib/default.nix b/pkgs/development/libraries/haskell/bzlib/default.nix
new file mode 100644
index 000000000000..cc9f244261b0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/bzlib/default.nix
@@ -0,0 +1,13 @@
+{ cabal, bzip2 }:
+
+cabal.mkDerivation (self: {
+  pname = "bzlib";
+  version = "0.5.0.4";
+  sha256 = "1vf37y7wknrihf7hipd6lihkmn7sszbgfb325my52yzbjs3baccd";
+  extraLibraries = [ bzip2 ];
+  meta = {
+    description = "Compression and decompression in the bzip2 format";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/c2hs/default.nix b/pkgs/development/libraries/haskell/c2hs/default.nix
index 90fb53051e23..9313deaf840d 100644
--- a/pkgs/development/libraries/haskell/c2hs/default.nix
+++ b/pkgs/development/libraries/haskell/c2hs/default.nix
@@ -1,12 +1,19 @@
-{ cabal, filepath, languageC }:
+{ cabal, filepath, HUnit, languageC, shelly, testFramework
+, testFrameworkHunit, text
+}:
 
 cabal.mkDerivation (self: {
   pname = "c2hs";
-  version = "0.16.5";
-  sha256 = "19h4zppn7ry7p3f7qw1kgsrf6h2bjnknycfrj3ibxys82qpv8m8y";
+  version = "0.16.6";
+  sha256 = "1yf7mcslkf6m1nizifqva8j5sxnw87bg60dw8mfgpmqvrzpbxizm";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [ filepath languageC ];
+  testDepends = [
+    filepath HUnit shelly testFramework testFrameworkHunit text
+  ];
+  jailbreak = true;
+  doCheck = false;
   meta = {
     homepage = "https://github.com/haskell/c2hs";
     description = "C->Haskell FFI tool that gives some cross-language type safety";
diff --git a/pkgs/development/libraries/haskell/c2hsc/default.nix b/pkgs/development/libraries/haskell/c2hsc/default.nix
new file mode 100644
index 000000000000..ac52a88e63b9
--- /dev/null
+++ b/pkgs/development/libraries/haskell/c2hsc/default.nix
@@ -0,0 +1,20 @@
+{ cabal, cmdargs, filepath, HStringTemplate, languageC, mtl, split
+, transformers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "c2hsc";
+  version = "0.6.5";
+  sha256 = "0c5hzi4nw9n3ir17swbwymkymnpiw958z8r2hw6656ijwqkxvzgd";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [
+    cmdargs filepath HStringTemplate languageC mtl split transformers
+  ];
+  meta = {
+    homepage = "https://github.com/jwiegley/c2hsc";
+    description = "Convert C API header files to .hsc and .hsc.helper.c files";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/case-insensitive/1.2.0.0.nix b/pkgs/development/libraries/haskell/case-insensitive/1.2.0.0.nix
new file mode 100644
index 000000000000..aa8996b0fc3f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/case-insensitive/1.2.0.0.nix
@@ -0,0 +1,17 @@
+{ cabal, deepseq, hashable, HUnit, testFramework
+, testFrameworkHunit, text
+}:
+
+cabal.mkDerivation (self: {
+  pname = "case-insensitive";
+  version = "1.2.0.0";
+  sha256 = "0ybdmqaqh9hdl3dl5kx8qhs4b67g78fhnkqnd3y2lpgqjvhnbzp4";
+  buildDepends = [ deepseq hashable text ];
+  testDepends = [ HUnit testFramework testFrameworkHunit text ];
+  meta = {
+    homepage = "https://github.com/basvandijk/case-insensitive";
+    description = "Case insensitive string comparison";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/cereal-conduit/default.nix b/pkgs/development/libraries/haskell/cereal-conduit/default.nix
index 4021b15df9cf..fa13321fff77 100644
--- a/pkgs/development/libraries/haskell/cereal-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/cereal-conduit/default.nix
@@ -2,9 +2,9 @@
 
 cabal.mkDerivation (self: {
   pname = "cereal-conduit";
-  version = "0.7.2";
-  sha256 = "03jlhpz82a7j7n0351db0h7pkxihik3fv0wgjny7i0vlq7gyqdpl";
-  buildDepends = [ cereal conduit transformers ];
+  version = "0.7.2.1";
+  sha256 = "1qjx5y8hznpanchhjfrmi0r6vmiqsj0lh9x09n563gschs8dfisw";
+  buildDepends = [ cereal conduit resourcet transformers ];
   testDepends = [ cereal conduit HUnit mtl resourcet transformers ];
   meta = {
     homepage = "https://github.com/litherum/cereal-conduit";
diff --git a/pkgs/development/libraries/haskell/cheapskate/default.nix b/pkgs/development/libraries/haskell/cheapskate/default.nix
new file mode 100644
index 000000000000..0ef18440e373
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cheapskate/default.nix
@@ -0,0 +1,20 @@
+{ cabal, blazeHtml, dataDefault, mtl, syb, text, uniplate
+, xssSanitize
+}:
+
+cabal.mkDerivation (self: {
+  pname = "cheapskate";
+  version = "0.1.0.1";
+  sha256 = "0slrvbaamnwxx89kqjcr62058j00s2dw4c16q1swf817az2p66h8";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    blazeHtml dataDefault mtl syb text uniplate xssSanitize
+  ];
+  meta = {
+    homepage = "http://github.com/jgm/cheapskate";
+    description = "Experimental markdown processor";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/checkers/default.nix b/pkgs/development/libraries/haskell/checkers/default.nix
index 4742f5104daa..06b89ba85b42 100644
--- a/pkgs/development/libraries/haskell/checkers/default.nix
+++ b/pkgs/development/libraries/haskell/checkers/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "checkers";
-  version = "0.3.1";
-  sha256 = "0lhy8bk8kkj540kjbc76j4x4xsprqwlmxdrss4r0j1bxgmfwha6p";
+  version = "0.3.2";
+  sha256 = "0v8i6754syvjh2p5qdqh95j3swkar9077gidsnahwk9h6qfsx6r3";
   buildDepends = [ QuickCheck random ];
   meta = {
     description = "Check properties on standard classes and data structures";
diff --git a/pkgs/development/libraries/haskell/chell-quickcheck/default.nix b/pkgs/development/libraries/haskell/chell-quickcheck/default.nix
new file mode 100644
index 000000000000..835747ee8813
--- /dev/null
+++ b/pkgs/development/libraries/haskell/chell-quickcheck/default.nix
@@ -0,0 +1,14 @@
+{ cabal, chell, QuickCheck, random }:
+
+cabal.mkDerivation (self: {
+  pname = "chell-quickcheck";
+  version = "0.2.2";
+  sha256 = "05qshv9vcl05khxsxyks2z7dqd8dqafjsg3awkkdhviviv5p2fp8";
+  buildDepends = [ chell QuickCheck random ];
+  meta = {
+    homepage = "https://john-millikin.com/software/chell/";
+    description = "QuickCheck support for the Chell testing library";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/chell/default.nix b/pkgs/development/libraries/haskell/chell/default.nix
new file mode 100644
index 000000000000..c69994e6868b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/chell/default.nix
@@ -0,0 +1,18 @@
+{ cabal, ansiTerminal, options, patience, random, text
+, transformers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "chell";
+  version = "0.3.3";
+  sha256 = "1k5vxipf47753d41dgr1gr4zy7y72gz2x8lcn0fgfmxi2v810nsm";
+  buildDepends = [
+    ansiTerminal options patience random text transformers
+  ];
+  meta = {
+    homepage = "https://john-millikin.com/software/chell/";
+    description = "A simple and intuitive library for automated testing";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/chunked-data/default.nix b/pkgs/development/libraries/haskell/chunked-data/default.nix
index 95b52d50b4d8..2705aee7aabd 100644
--- a/pkgs/development/libraries/haskell/chunked-data/default.nix
+++ b/pkgs/development/libraries/haskell/chunked-data/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "chunked-data";
-  version = "0.1.0.0";
-  sha256 = "1wdgvhf170rv557dwsiqy6nhys965xhs6w24ays273fv8hn3yk9l";
+  version = "0.1.0.1";
+  sha256 = "0kdq79mxi9nhy3dqw283f5ffx4rxwfrdq9cfw46ql5wmqrg2qw7r";
   buildDepends = [
     blazeBuilder monoTraversable semigroups systemFilepath text
     transformers vector
diff --git a/pkgs/development/libraries/haskell/cipher-aes/default.nix b/pkgs/development/libraries/haskell/cipher-aes/default.nix
index d68d2389e0e7..52ec2fab7114 100644
--- a/pkgs/development/libraries/haskell/cipher-aes/default.nix
+++ b/pkgs/development/libraries/haskell/cipher-aes/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cipher-aes";
-  version = "0.2.6";
-  sha256 = "0ys5a1w5pwwr74k9wzcsh1flb2jdcvnp1zz7sjs14jpxclpd8x3i";
+  version = "0.2.7";
+  sha256 = "1a5viy2frkdqhzzlipd2ik89a04gv95v4b98lgpsas2958r9c9yp";
   buildDepends = [ byteable cryptoCipherTypes securemem ];
   testDepends = [
     byteable cryptoCipherTests cryptoCipherTypes QuickCheck
diff --git a/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix b/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
index eec5677a89fa..5324054423b4 100644
--- a/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "classy-prelude-conduit";
-  version = "0.8.0";
-  sha256 = "1br2gjzafxgq6ksxl895m5acaffnswd1dhcjppx6gnyfa6i3fq1m";
+  version = "0.9.0";
+  sha256 = "1lvi5n2km6l2saspiczpkvaq6670bp658kn83s334h6s6wlba3dz";
   buildDepends = [
     classyPrelude conduit conduitCombinators monadControl resourcet
     systemFileio transformers void
diff --git a/pkgs/development/libraries/haskell/classy-prelude/default.nix b/pkgs/development/libraries/haskell/classy-prelude/default.nix
index abc0841c58e2..4c142a23f3a2 100644
--- a/pkgs/development/libraries/haskell/classy-prelude/default.nix
+++ b/pkgs/development/libraries/haskell/classy-prelude/default.nix
@@ -1,17 +1,17 @@
 { cabal, basicPrelude, chunkedData, enclosedExceptions, hashable
-, hspec, liftedBase, monoTraversable, QuickCheck, semigroups
+, hspec, liftedBase, monoTraversable, QuickCheck, semigroups, stm
 , systemFilepath, text, time, transformers, unorderedContainers
 , vector, vectorInstances
 }:
 
 cabal.mkDerivation (self: {
   pname = "classy-prelude";
-  version = "0.8.0.1";
-  sha256 = "0mj6zz53w6irs16w1pk65imhvnhp1rq3vq8s1n1xkf9gr13v3y9r";
+  version = "0.9.0";
+  sha256 = "1y4440jy7x9ns4kyb638f5lfa1h3vq3wwcwzkpswr8rf8f7z1bj6";
   buildDepends = [
     basicPrelude chunkedData enclosedExceptions hashable liftedBase
-    monoTraversable semigroups systemFilepath text time transformers
-    unorderedContainers vector vectorInstances
+    monoTraversable semigroups stm systemFilepath text time
+    transformers unorderedContainers vector vectorInstances
   ];
   testDepends = [
     hspec QuickCheck transformers unorderedContainers
diff --git a/pkgs/development/libraries/haskell/comonad/default.nix b/pkgs/development/libraries/haskell/comonad/default.nix
index 9457a2ad44dc..92c70b551561 100644
--- a/pkgs/development/libraries/haskell/comonad/default.nix
+++ b/pkgs/development/libraries/haskell/comonad/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "comonad";
-  version = "4.0";
-  sha256 = "1f57wqxy1la59kippbj924prnj53a5hwc2ppg48n9xx2wfr63iha";
+  version = "4.0.1";
+  sha256 = "1ib3spgyjbdsnpbz4alaqb1m13v48l5dpv7s68c0mi2nyjkli7lx";
   buildDepends = [
     contravariant distributive mtl semigroups tagged transformers
   ];
diff --git a/pkgs/development/libraries/haskell/conduit-combinators/default.nix b/pkgs/development/libraries/haskell/conduit-combinators/default.nix
index 5d1fa791c694..fdf5c4625fd8 100644
--- a/pkgs/development/libraries/haskell/conduit-combinators/default.nix
+++ b/pkgs/development/libraries/haskell/conduit-combinators/default.nix
@@ -1,19 +1,22 @@
-{ cabal, basicPrelude, chunkedData, conduit, hspec, monoTraversable
-, primitive, silently, systemFileio, systemFilepath, text
-, transformers, transformersBase, vector
+{ cabal, base16Bytestring, base64Bytestring, chunkedData, conduit
+, conduitExtra, hspec, monadControl, monoTraversable, mwcRandom
+, primitive, resourcet, silently, systemFileio, systemFilepath
+, text, transformers, transformersBase, unixCompat, vector, void
 }:
 
 cabal.mkDerivation (self: {
   pname = "conduit-combinators";
-  version = "0.2.0.1";
-  sha256 = "0hmy398kk37n5l4pacb2a0z9h9f1kl6vva9gsph1kiqnnz7sbr4r";
+  version = "0.2.4";
+  sha256 = "0pxzvxd1j48l7j2anv61bxv1accl0jc6vdf9vv0l3s2358smzwwv";
   buildDepends = [
-    chunkedData conduit monoTraversable primitive systemFileio
-    systemFilepath text transformers transformersBase vector
+    base16Bytestring base64Bytestring chunkedData conduit conduitExtra
+    monadControl monoTraversable mwcRandom primitive resourcet
+    systemFileio systemFilepath text transformers transformersBase
+    unixCompat vector void
   ];
   testDepends = [
-    basicPrelude chunkedData hspec monoTraversable silently text
-    transformers vector
+    base16Bytestring base64Bytestring chunkedData hspec monoTraversable
+    mwcRandom silently systemFilepath text transformers vector
   ];
   meta = {
     homepage = "https://github.com/fpco/conduit-combinators";
diff --git a/pkgs/development/libraries/haskell/conduit-extra/default.nix b/pkgs/development/libraries/haskell/conduit-extra/default.nix
new file mode 100644
index 000000000000..67b4186e6060
--- /dev/null
+++ b/pkgs/development/libraries/haskell/conduit-extra/default.nix
@@ -0,0 +1,26 @@
+{ cabal, attoparsec, blazeBuilder, conduit, exceptions, filepath
+, hspec, monadControl, network, primitive, resourcet
+, streamingCommons, text, transformers, transformersBase
+}:
+
+cabal.mkDerivation (self: {
+  pname = "conduit-extra";
+  version = "1.1.0";
+  sha256 = "08s8nafsdkd4dwmi2vsid82z8iv178vm9jbb322ygnbpf2a9y96y";
+  buildDepends = [
+    attoparsec blazeBuilder conduit filepath monadControl network
+    primitive resourcet streamingCommons text transformers
+    transformersBase
+  ];
+  testDepends = [
+    attoparsec blazeBuilder conduit exceptions hspec resourcet text
+    transformers transformersBase
+  ];
+  noHaddock = true;
+  meta = {
+    homepage = "http://github.com/snoyberg/conduit";
+    description = "Batteries included conduit: adapters for common libraries";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/conduit/default.nix b/pkgs/development/libraries/haskell/conduit/default.nix
index c5fe6d9d379d..ac6211f2b38d 100644
--- a/pkgs/development/libraries/haskell/conduit/default.nix
+++ b/pkgs/development/libraries/haskell/conduit/default.nix
@@ -1,19 +1,20 @@
-{ cabal, hspec, liftedBase, mmorph, monadControl, mtl, QuickCheck
-, resourcet, text, textStreamDecode, transformers, transformersBase
-, void
+{ cabal, exceptions, hspec, liftedBase, mmorph, monadControl, mtl
+, QuickCheck, resourcet, text, textStreamDecode, transformers
+, transformersBase, void
 }:
 
 cabal.mkDerivation (self: {
   pname = "conduit";
-  version = "1.0.15.1";
-  sha256 = "0pbrsa00x8qr856532iinw9lyliwh7gwzyd1pshdmj3gkbqpf2bv";
+  version = "1.1.0";
+  sha256 = "17y8fnvl9s3676sslhc04abs4zqh90l2rdcazxglv0sfrfsdgwnq";
   buildDepends = [
-    liftedBase mmorph monadControl mtl resourcet text textStreamDecode
-    transformers transformersBase void
+    exceptions liftedBase mmorph monadControl mtl resourcet text
+    textStreamDecode transformers transformersBase void
   ];
   testDepends = [
     hspec mtl QuickCheck resourcet text transformers void
   ];
+  doCheck = false;
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
     description = "Streaming data processing library";
diff --git a/pkgs/development/libraries/haskell/constraints/default.nix b/pkgs/development/libraries/haskell/constraints/default.nix
index 1e0dc901aaf5..333d8e6601d2 100644
--- a/pkgs/development/libraries/haskell/constraints/default.nix
+++ b/pkgs/development/libraries/haskell/constraints/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "constraints";
-  version = "0.3.4.2";
-  sha256 = "14bfar4d44yl9zxgqxj4p67ag2ndprm602l4pinfjk0ywbh63fwq";
+  version = "0.3.5";
+  sha256 = "01xrk0xqkfwzzr5jwkadkyjgrdcpslwiqfqdb7mci688xp2isi3i";
   buildDepends = [ newtype ];
   meta = {
     homepage = "http://github.com/ekmett/constraints/";
diff --git a/pkgs/development/libraries/haskell/convertible/default.nix b/pkgs/development/libraries/haskell/convertible/1.0.11.1.nix
index 8a79e50527d8..8a79e50527d8 100644
--- a/pkgs/development/libraries/haskell/convertible/default.nix
+++ b/pkgs/development/libraries/haskell/convertible/1.0.11.1.nix
diff --git a/pkgs/development/libraries/haskell/convertible/1.1.0.0.nix b/pkgs/development/libraries/haskell/convertible/1.1.0.0.nix
new file mode 100644
index 000000000000..78be057c2011
--- /dev/null
+++ b/pkgs/development/libraries/haskell/convertible/1.1.0.0.nix
@@ -0,0 +1,17 @@
+{ cabal, mtl, text, time }:
+
+cabal.mkDerivation (self: {
+  pname = "convertible";
+  version = "1.1.0.0";
+  sha256 = "0pc3z4jfjna1rz5wlfimw9fyhpasmdnwvava883s401760y99i0k";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ mtl text time ];
+  meta = {
+    homepage = "http://hackage.haskell.org/cgi-bin/hackage-scripts/package/convertible";
+    description = "Typeclasses and instances for converting between types";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/criterion/default.nix b/pkgs/development/libraries/haskell/criterion/default.nix
index ba8f1b70c77d..e106138ef249 100644
--- a/pkgs/development/libraries/haskell/criterion/default.nix
+++ b/pkgs/development/libraries/haskell/criterion/default.nix
@@ -1,15 +1,15 @@
 { cabal, aeson, binary, deepseq, filepath, Glob, hastache, mtl
-, mwcRandom, parsec, statistics, time, transformers, vector
+, mwcRandom, parsec, statistics, text, time, transformers, vector
 , vectorAlgorithms
 }:
 
 cabal.mkDerivation (self: {
   pname = "criterion";
-  version = "0.8.0.1";
-  sha256 = "1f4wsaiyq0zks71jgfx43774vxkf9l362a9kfd2jhsnxx7zkv5sq";
+  version = "0.8.0.2";
+  sha256 = "126c3i9i88wqs5ihif4kpsc1gdqas57acd8h5jbyfqhgbwi1s7gz";
   buildDepends = [
     aeson binary deepseq filepath Glob hastache mtl mwcRandom parsec
-    statistics time transformers vector vectorAlgorithms
+    statistics text time transformers vector vectorAlgorithms
   ];
   meta = {
     homepage = "https://github.com/bos/criterion";
diff --git a/pkgs/development/libraries/haskell/crypto-conduit/default.nix b/pkgs/development/libraries/haskell/crypto-conduit/default.nix
index 3668c46dc684..bcc357fbed3c 100644
--- a/pkgs/development/libraries/haskell/crypto-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/crypto-conduit/default.nix
@@ -1,15 +1,17 @@
-{ cabal, cereal, conduit, cryptoApi, cryptocipher
-, cryptohashCryptoapi, hspec, skein, transformers
+{ cabal, cereal, conduit, conduitExtra, cryptoApi, cryptocipher
+, cryptohashCryptoapi, hspec, resourcet, skein, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "crypto-conduit";
-  version = "0.5.2.2";
-  sha256 = "1969jys4za3m818jvnfcsv5hpc50bcvkrmy9lxr8fz854q01vhk2";
-  buildDepends = [ cereal conduit cryptoApi transformers ];
+  version = "0.5.3";
+  sha256 = "1xvjfkwd4rqlgyz172s2mihfqz1pac84qhc72c4zw1nwadsh6dgl";
+  buildDepends = [
+    cereal conduit conduitExtra cryptoApi resourcet transformers
+  ];
   testDepends = [
-    cereal conduit cryptoApi cryptocipher cryptohashCryptoapi hspec
-    skein transformers
+    cereal conduit conduitExtra cryptoApi cryptocipher
+    cryptohashCryptoapi hspec skein transformers
   ];
   jailbreak = true;
   doCheck = false;
diff --git a/pkgs/development/libraries/haskell/cryptohash-conduit/default.nix b/pkgs/development/libraries/haskell/cryptohash-conduit/default.nix
new file mode 100644
index 000000000000..78c0c1016592
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cryptohash-conduit/default.nix
@@ -0,0 +1,17 @@
+{ cabal, conduit, conduitExtra, cryptohash, resourcet, transformers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "cryptohash-conduit";
+  version = "0.1.1";
+  sha256 = "1kmlskgb0jx8hkzdncr24aqir9k1kyfcb2rypvkdld1yin4nslga";
+  buildDepends = [
+    conduit conduitExtra cryptohash resourcet transformers
+  ];
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-cryptohash-conduit";
+    description = "cryptohash conduit";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/cryptohash-cryptoapi/default.nix b/pkgs/development/libraries/haskell/cryptohash-cryptoapi/default.nix
index 7041bcc52856..020b34298ade 100644
--- a/pkgs/development/libraries/haskell/cryptohash-cryptoapi/default.nix
+++ b/pkgs/development/libraries/haskell/cryptohash-cryptoapi/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cryptohash-cryptoapi";
-  version = "0.1.2";
-  sha256 = "1i2qxyq5qk4jzgkl7kndy10sbmzmagamfnqvl300qm3msi9k0kfy";
+  version = "0.1.3";
+  sha256 = "0wj53p32js8lfg0i8akrljpash0jdiyv2vcqpmjbd4dq2fx81w2n";
   buildDepends = [ cereal cryptoApi cryptohash tagged ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-cryptohash-cryptoapi";
diff --git a/pkgs/development/libraries/haskell/cryptohash/default.nix b/pkgs/development/libraries/haskell/cryptohash/default.nix
index b888ce6153ab..cefa8fbbdf8e 100644
--- a/pkgs/development/libraries/haskell/cryptohash/default.nix
+++ b/pkgs/development/libraries/haskell/cryptohash/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cryptohash";
-  version = "0.11.2";
-  sha256 = "0az2p7lql1lchl85ca26b5sbvhqsv47daavyfqy84qmr3w3wyr28";
+  version = "0.11.4";
+  sha256 = "1laakkc1xzp2bmai0sfi86784wharqbyanlp1d1f1q6nj318by3y";
   buildDepends = [ byteable ];
   testDepends = [
     byteable HUnit QuickCheck testFramework testFrameworkHunit
diff --git a/pkgs/development/libraries/haskell/css-text/default.nix b/pkgs/development/libraries/haskell/css-text/default.nix
index 2cb78af7ba9c..9ab9b9f5d2da 100644
--- a/pkgs/development/libraries/haskell/css-text/default.nix
+++ b/pkgs/development/libraries/haskell/css-text/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "css-text";
-  version = "0.1.2.0.1";
-  sha256 = "0j8d9kfs9j01gqlapaahyziphkx0f55g9bbz2wwix1si7954xxhp";
+  version = "0.1.2.1";
+  sha256 = "1xi1n2f0g8y43p95lynhcg50wxbq7hqfzbfzm7fy8mn7gvd920nw";
   buildDepends = [ attoparsec text ];
   testDepends = [ attoparsec hspec QuickCheck text ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/data-accessor/data-accessor-template.nix b/pkgs/development/libraries/haskell/data-accessor/data-accessor-template.nix
index 41bd23470124..89658ead4d58 100644
--- a/pkgs/development/libraries/haskell/data-accessor/data-accessor-template.nix
+++ b/pkgs/development/libraries/haskell/data-accessor/data-accessor-template.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "data-accessor-template";
-  version = "0.2.1.10";
-  sha256 = "11a4c0g74ppl7nls0dhx6xs47dfcq1wp7bd8qgdba6hhn645afzy";
+  version = "0.2.1.11";
+  sha256 = "1n2slv287zp6pabqb7xbfi296dbikw5a4ivqmnas0c4nxikqkayx";
   buildDepends = [ dataAccessor utilityHt ];
   meta = {
     homepage = "http://www.haskell.org/haskellwiki/Record_access";
diff --git a/pkgs/development/libraries/haskell/data-accessor/data-accessor.nix b/pkgs/development/libraries/haskell/data-accessor/data-accessor.nix
index 7c1de10b20b0..8fdde66f5fd6 100644
--- a/pkgs/development/libraries/haskell/data-accessor/data-accessor.nix
+++ b/pkgs/development/libraries/haskell/data-accessor/data-accessor.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "data-accessor";
-  version = "0.2.2.3";
-  sha256 = "1fa1rbbs3m05y61w42vj4vqlcpqmz60v8mv3r0h6lx669k6ka5gj";
+  version = "0.2.2.5";
+  sha256 = "0z63fv41cnpk3h404gprk2f5jl7rrpyv97xmsgac9zgdm5zkkhm6";
   buildDepends = [ transformers ];
   meta = {
     homepage = "http://www.haskell.org/haskellwiki/Record_access";
diff --git a/pkgs/development/libraries/haskell/data-hash/default.nix b/pkgs/development/libraries/haskell/data-hash/default.nix
new file mode 100644
index 000000000000..c8e4887063c4
--- /dev/null
+++ b/pkgs/development/libraries/haskell/data-hash/default.nix
@@ -0,0 +1,15 @@
+{ cabal, QuickCheck, testFramework, testFrameworkQuickcheck2 }:
+
+cabal.mkDerivation (self: {
+  pname = "data-hash";
+  version = "0.2.0.0";
+  sha256 = "1bfsbc4fkg3jqgbgka1mg6k1fizynvvxbhf2zb0x1apgr579mcrm";
+  testDepends = [
+    QuickCheck testFramework testFrameworkQuickcheck2
+  ];
+  meta = {
+    description = "Combinators for building fast hashing functions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/data-lens-template/default.nix b/pkgs/development/libraries/haskell/data-lens-template/default.nix
index 7ba9e3f9da74..67bd753b3025 100644
--- a/pkgs/development/libraries/haskell/data-lens-template/default.nix
+++ b/pkgs/development/libraries/haskell/data-lens-template/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "data-lens-template";
-  version = "2.1.7";
-  sha256 = "108xvk5glsw016vdvjb1p3a9zh7rgbkjv5xashs1hj25f8k4cw49";
+  version = "2.1.8";
+  sha256 = "0w8x5zn3d98z0q74bqfgkb9s0ca9hd1xc53gjl759s77wm4iwa0q";
   buildDepends = [ dataLens ];
   meta = {
     homepage = "http://github.com/roconnor/data-lens-template/";
diff --git a/pkgs/development/libraries/haskell/data-ordlist/default.nix b/pkgs/development/libraries/haskell/data-ordlist/default.nix
new file mode 100644
index 000000000000..ca506bc01e90
--- /dev/null
+++ b/pkgs/development/libraries/haskell/data-ordlist/default.nix
@@ -0,0 +1,12 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "data-ordlist";
+  version = "0.4.6";
+  sha256 = "13gsvqifwlxcz10x704fy26288l0km2kfdlh4w9hl31a9vd427sx";
+  meta = {
+    description = "Set and bag operations on ordered lists";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/dataenc/default.nix b/pkgs/development/libraries/haskell/dataenc/default.nix
index 9c4de4a1b84d..6eda9ca3c439 100644
--- a/pkgs/development/libraries/haskell/dataenc/default.nix
+++ b/pkgs/development/libraries/haskell/dataenc/default.nix
@@ -6,6 +6,7 @@ cabal.mkDerivation (self: {
   sha256 = "13gajqbayar7x8sq3rw93i277gqd0bx1i34spshlj4b41fraxc8w";
   isLibrary = true;
   isExecutable = true;
+  jailbreak = true;
   meta = {
     homepage = "http://www.haskell.org/haskellwiki/Library/Data_encoding";
     description = "Data encoding library";
diff --git a/pkgs/development/libraries/haskell/dbmigrations/default.nix b/pkgs/development/libraries/haskell/dbmigrations/default.nix
index 10b3737d88a2..008cb04f2fa3 100644
--- a/pkgs/development/libraries/haskell/dbmigrations/default.nix
+++ b/pkgs/development/libraries/haskell/dbmigrations/default.nix
@@ -12,6 +12,7 @@ cabal.mkDerivation (self: {
     configurator fgl filepath HDBC HDBCPostgresql HDBCSqlite3 HUnit mtl
     random text time yamlLight
   ];
+  jailbreak = true;
   meta = {
     description = "An implementation of relational database \"migrations\"";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/dbus/default.nix b/pkgs/development/libraries/haskell/dbus/default.nix
index 304b9e84942e..7f0285dfc7aa 100644
--- a/pkgs/development/libraries/haskell/dbus/default.nix
+++ b/pkgs/development/libraries/haskell/dbus/default.nix
@@ -1,16 +1,22 @@
-{ cabal, cereal, libxmlSax, network, parsec, random, text
-, transformers, vector, xmlTypes
+{ cabal, cereal, chell, chellQuickcheck, filepath, libxmlSax
+, network, parsec, QuickCheck, random, text, transformers, vector
+, xmlTypes
 }:
 
 cabal.mkDerivation (self: {
   pname = "dbus";
-  version = "0.10.6";
-  sha256 = "0jbysa7czhp7yl3fb6sxiqppg8yb3cdk4v8hcs4y8yzwjj0lm7mf";
+  version = "0.10.7";
+  sha256 = "0xszynw6p07r7z9nlq8alx5lxfjm57gljya835ccj63hqhkr5yxh";
   buildDepends = [
     cereal libxmlSax network parsec random text transformers vector
     xmlTypes
   ];
+  testDepends = [
+    cereal chell chellQuickcheck filepath libxmlSax network parsec
+    QuickCheck random text transformers vector xmlTypes
+  ];
   jailbreak = true;
+  doCheck = false;
   meta = {
     homepage = "https://john-millikin.com/software/haskell-dbus/";
     description = "A client library for the D-Bus IPC system";
diff --git a/pkgs/development/libraries/haskell/derive/default.nix b/pkgs/development/libraries/haskell/derive/default.nix
index 0873e65d9daa..42ca82f4ac19 100644
--- a/pkgs/development/libraries/haskell/derive/default.nix
+++ b/pkgs/development/libraries/haskell/derive/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "derive";
-  version = "2.5.13";
-  sha256 = "0lmwj66s4krh29qqmkyc3cn3j4b4mhyqvlngvmy1xaigmgib5aci";
+  version = "2.5.14";
+  sha256 = "1fihcd8l4z8d6rad8h39pg5gdb75h895c2xld9574fwp3bm0zl0c";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/diagrams/cairo.nix b/pkgs/development/libraries/haskell/diagrams/cairo.nix
index c38346d189bc..bd09b67196b6 100644
--- a/pkgs/development/libraries/haskell/diagrams/cairo.nix
+++ b/pkgs/development/libraries/haskell/diagrams/cairo.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-cairo";
-  version = "1.1";
-  sha256 = "0x66qdwni3pwc2lrqy5jnyz7nqbfpr1086g1ndy6cxx8hp632zaf";
+  version = "1.1.0.2";
+  sha256 = "0y36cx89rlbmj470a6g11wlzkwzznjkjmkcpm7dzbxvfxw4pp70z";
   buildDepends = [
     cairo colour dataDefaultClass diagramsCore diagramsLib filepath
     hashable JuicyPixels lens mtl optparseApplicative split statestack
diff --git a/pkgs/development/libraries/haskell/diagrams/contrib.nix b/pkgs/development/libraries/haskell/diagrams/contrib.nix
index 34dcb3745e35..aca28a024908 100644
--- a/pkgs/development/libraries/haskell/diagrams/contrib.nix
+++ b/pkgs/development/libraries/haskell/diagrams/contrib.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-contrib";
-  version = "1.1.1.1";
-  sha256 = "1b91scy96zf2njikfyr2ir2ckiib4dlvjazrlbri6f5ds40gnhna";
+  version = "1.1.1.4";
+  sha256 = "0n2r6k65kxvk5mwm193yhzwnj3bhignq4xdslfpv2m1afdvws2y1";
   buildDepends = [
     arithmoi circlePacking colour dataDefault dataDefaultClass
     diagramsCore diagramsLib forceLayout lens MonadRandom mtl parsec
diff --git a/pkgs/development/libraries/haskell/diagrams/core.nix b/pkgs/development/libraries/haskell/diagrams/core.nix
index 3a3f74d4c272..eb9207a936fe 100644
--- a/pkgs/development/libraries/haskell/diagrams/core.nix
+++ b/pkgs/development/libraries/haskell/diagrams/core.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-core";
-  version = "1.1";
-  sha256 = "0prklz6s5zcainpkawibdg3bidmvsd2xsc1xxrmfp7lscmim736v";
+  version = "1.1.0.2";
+  sha256 = "1py1dk6w6f00kd48kxbdbxmd3rakxdmwgpb09g346vmkbxkj56mq";
   buildDepends = [
     dualTree lens MemoTrie monoidExtras newtype semigroups vectorSpace
     vectorSpacePoints
diff --git a/pkgs/development/libraries/haskell/diagrams/diagrams.nix b/pkgs/development/libraries/haskell/diagrams/diagrams.nix
index cddc5dbadcf9..6159270379e2 100644
--- a/pkgs/development/libraries/haskell/diagrams/diagrams.nix
+++ b/pkgs/development/libraries/haskell/diagrams/diagrams.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams";
-  version = "1.1";
-  sha256 = "1fdacsa57w64hkcsrriwdgdxddd7gps97fyaz2rl8wfxcl96vclr";
+  version = "1.1.0.1";
+  sha256 = "0cxmrikcxgnrki9z8i33z7fbjpkx0vw849zj1cbq1zh8ry8xhhvg";
   buildDepends = [
     diagramsContrib diagramsCore diagramsLib diagramsSvg
   ];
diff --git a/pkgs/development/libraries/haskell/diagrams/lib.nix b/pkgs/development/libraries/haskell/diagrams/lib.nix
index 323856554268..fd839e428576 100644
--- a/pkgs/development/libraries/haskell/diagrams/lib.nix
+++ b/pkgs/development/libraries/haskell/diagrams/lib.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-lib";
-  version = "1.1.0.1";
-  sha256 = "0zkxkncz8ayvahr57fgq44vgir3yghxs2y1rrp138951fcy2g3a7";
+  version = "1.1.0.6";
+  sha256 = "125krfaf73k2m73scnjdl0d76acwc6n9vhvvaqxxy1ln57caqh5x";
   buildDepends = [
     active colour dataDefaultClass diagramsCore filepath fingertree
     hashable intervals lens MemoTrie monoidExtras optparseApplicative
diff --git a/pkgs/development/libraries/haskell/diagrams/postscript.nix b/pkgs/development/libraries/haskell/diagrams/postscript.nix
index a7f85f98b093..55e2c975b0eb 100644
--- a/pkgs/development/libraries/haskell/diagrams/postscript.nix
+++ b/pkgs/development/libraries/haskell/diagrams/postscript.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-postscript";
-  version = "1.0.2";
-  sha256 = "14y8wivgxs3qvybzqk1bfqsrs5457qd5br7nk1924si5gpsgp1xx";
+  version = "1.0.2.4";
+  sha256 = "0vjzvjyrbmnjgl8ln58a44nhh4abq5q2c6fvlpxpfhxh2ligsmas";
   buildDepends = [
     dataDefaultClass diagramsCore diagramsLib dlist filepath hashable
     lens monoidExtras mtl semigroups split vectorSpace
diff --git a/pkgs/development/libraries/haskell/diagrams/svg.nix b/pkgs/development/libraries/haskell/diagrams/svg.nix
index cc5795c80a18..663a6287c623 100644
--- a/pkgs/development/libraries/haskell/diagrams/svg.nix
+++ b/pkgs/development/libraries/haskell/diagrams/svg.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "diagrams-svg";
-  version = "1.0.2";
-  sha256 = "1pbkr5qg3cjk2c23aas5y9f0bk5nsding4r4c4fdkxj49ipi4ys1";
+  version = "1.0.2.1";
+  sha256 = "1qm4vk67knl4bpp84kwm95blshf7slarpl620m8irslsq3yag507";
   buildDepends = [
     blazeMarkup blazeSvg colour diagramsCore diagramsLib filepath
     hashable lens monoidExtras mtl split time vectorSpace
diff --git a/pkgs/development/libraries/haskell/digestive-functors-aeson/default.nix b/pkgs/development/libraries/haskell/digestive-functors-aeson/default.nix
index dd098cbe183e..ba0866b72d79 100644
--- a/pkgs/development/libraries/haskell/digestive-functors-aeson/default.nix
+++ b/pkgs/development/libraries/haskell/digestive-functors-aeson/default.nix
@@ -1,14 +1,14 @@
-{ cabal, aeson, digestiveFunctors, HUnit, lens, mtl, safe, tasty
-, tastyHunit, text, vector
+{ cabal, aeson, digestiveFunctors, HUnit, lens, mtl, safe
+, scientific, tasty, tastyHunit, text, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "digestive-functors-aeson";
-  version = "1.1.5";
-  sha256 = "1mxi8zbv3hxy2crj6h6p1a885k8rd0fqhmwq7l7w7d7d73h8bmm3";
+  version = "1.1.7";
+  sha256 = "07dnwmbcyb64yp51ijwsc84r6gf4rxxc4bi3wkzwxq1ijm1qhpni";
   buildDepends = [ aeson digestiveFunctors lens safe text vector ];
   testDepends = [
-    aeson digestiveFunctors HUnit mtl tasty tastyHunit text
+    aeson digestiveFunctors HUnit mtl scientific tasty tastyHunit text
   ];
   meta = {
     homepage = "http://github.com/ocharles/digestive-functors-aeson";
diff --git a/pkgs/development/libraries/haskell/digestive-functors/default.nix b/pkgs/development/libraries/haskell/digestive-functors/default.nix
index 4abea9429a5b..d0bd50e584b8 100644
--- a/pkgs/development/libraries/haskell/digestive-functors/default.nix
+++ b/pkgs/development/libraries/haskell/digestive-functors/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "digestive-functors";
-  version = "0.7.0.0";
-  sha256 = "1zn8vn6xcmp4w39b0k33bp7zsxvnn8g8p26mch4r8ng9ldcb2y8h";
+  version = "0.7.1.0";
+  sha256 = "0ry0ircxs6ml4wdz6hrn3jnyhniwdnn1dn21imq3kv68jlhfn3by";
   buildDepends = [ mtl text time ];
   testDepends = [
     HUnit mtl QuickCheck testFramework testFrameworkHunit
diff --git a/pkgs/development/libraries/haskell/direct-sqlite/default.nix b/pkgs/development/libraries/haskell/direct-sqlite/default.nix
index 12e61ebb9efb..14be91cd1bf3 100644
--- a/pkgs/development/libraries/haskell/direct-sqlite/default.nix
+++ b/pkgs/development/libraries/haskell/direct-sqlite/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "direct-sqlite";
-  version = "2.3.11";
-  sha256 = "0pd5qv8aq47d5n2sd99yblxiq70zvmy2rc71ys73a3d846k0ncs0";
+  version = "2.3.12";
+  sha256 = "14dcgmn3mfx69qx412dc8cxa4ia3adsf8gm5q4yscpp8rf78m178";
   buildDepends = [ text ];
   testDepends = [ base16Bytestring HUnit text ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/distributive/default.nix b/pkgs/development/libraries/haskell/distributive/default.nix
index 72510e26d36d..053f938ae564 100644
--- a/pkgs/development/libraries/haskell/distributive/default.nix
+++ b/pkgs/development/libraries/haskell/distributive/default.nix
@@ -4,13 +4,13 @@
 
 cabal.mkDerivation (self: {
   pname = "distributive";
-  version = "0.4";
-  sha256 = "11zln3h7pflv1f6jfma5b505p4wnr9xrs711mhh3a8xi20n4r318";
+  version = "0.4.3.1";
+  sha256 = "17ny7nlxg6x08f88dyl15wsdhgi0cgafxdsl5wdw5vv6y0jsrx27";
   buildDepends = [ tagged transformers transformersCompat ];
   testDepends = [ doctest filepath ];
   meta = {
     homepage = "http://github.com/ekmett/distributive/";
-    description = "Haskell 98 Distributive functors -- Dual to Traversable";
+    description = "Distributive functors -- Dual to Traversable";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/dlist-instances/default.nix b/pkgs/development/libraries/haskell/dlist-instances/default.nix
new file mode 100644
index 000000000000..d168c4b35831
--- /dev/null
+++ b/pkgs/development/libraries/haskell/dlist-instances/default.nix
@@ -0,0 +1,14 @@
+{ cabal, dlist, semigroups }:
+
+cabal.mkDerivation (self: {
+  pname = "dlist-instances";
+  version = "0.1";
+  sha256 = "0r1j7djywqd7c224wc9ixkplj3m2mbf9k3ra7n92ja2kfpksm615";
+  buildDepends = [ dlist semigroups ];
+  meta = {
+    homepage = "https://github.com/gregwebs/dlist-instances";
+    description = "Difference lists instances";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/dlist/default.nix b/pkgs/development/libraries/haskell/dlist/default.nix
index 547ea9f8a478..bf63239dd812 100644
--- a/pkgs/development/libraries/haskell/dlist/default.nix
+++ b/pkgs/development/libraries/haskell/dlist/default.nix
@@ -1,9 +1,10 @@
-{ cabal, Cabal, QuickCheck }:
+{ cabal, Cabal, deepseq, QuickCheck }:
 
 cabal.mkDerivation (self: {
   pname = "dlist";
-  version = "0.6.0.1";
-  sha256 = "08q8dsczh59a0ii3nqk6yqz70msd0pndjjcg9dzq8iyknbbqbi45";
+  version = "0.7.0.1";
+  sha256 = "197k608ja69xc531r7h3gmy1mf6dsk27b3mkpgp4zdw46z6lcb5l";
+  buildDepends = [ deepseq ];
   testDepends = [ Cabal QuickCheck ];
   meta = {
     homepage = "https://github.com/spl/dlist";
diff --git a/pkgs/development/libraries/haskell/dns/default.nix b/pkgs/development/libraries/haskell/dns/default.nix
index 5b2d99fb90e5..97a120f21237 100644
--- a/pkgs/development/libraries/haskell/dns/default.nix
+++ b/pkgs/development/libraries/haskell/dns/default.nix
@@ -1,19 +1,19 @@
 { cabal, attoparsec, attoparsecConduit, binary, blazeBuilder
-, conduit, doctest, hspec, iproute, mtl, network, networkConduit
-, random
+, conduit, conduitExtra, doctest, hspec, iproute, mtl, network
+, random, resourcet
 }:
 
 cabal.mkDerivation (self: {
   pname = "dns";
-  version = "1.2.0";
-  sha256 = "1pzwvb1qycjw6qw34xhd4ap9jl0cc79d3i09b23bg0vqcz80vmpr";
+  version = "1.2.1";
+  sha256 = "0xv8mj2x8ijqgi7gnh2shr7ns9qghiczm3lw9n37mxk02zbvw8h0";
   buildDepends = [
-    attoparsec attoparsecConduit binary blazeBuilder conduit iproute
-    mtl network networkConduit random
+    attoparsec attoparsecConduit binary blazeBuilder conduit
+    conduitExtra iproute mtl network random resourcet
   ];
   testDepends = [
-    attoparsec attoparsecConduit binary blazeBuilder conduit doctest
-    hspec iproute mtl network networkConduit random
+    attoparsec attoparsecConduit binary blazeBuilder conduit
+    conduitExtra doctest hspec iproute mtl network random resourcet
   ];
   testTarget = "spec";
   meta = {
diff --git a/pkgs/development/libraries/haskell/doctest/default.nix b/pkgs/development/libraries/haskell/doctest/default.nix
index 843fd6239dcf..ad7bcfe62409 100644
--- a/pkgs/development/libraries/haskell/doctest/default.nix
+++ b/pkgs/development/libraries/haskell/doctest/default.nix
@@ -1,17 +1,17 @@
-{ cabal, deepseq, filepath, ghcPaths, hspec, HUnit, QuickCheck
-, setenv, silently, stringbuilder, syb, transformers
+{ cabal, baseCompat, deepseq, filepath, ghcPaths, hspec, HUnit
+, QuickCheck, setenv, silently, stringbuilder, syb, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "doctest";
-  version = "0.9.10.1";
-  sha256 = "1kl6bihhyj08ifij7ddpy6067s1lv2lnnp4an9wany3fzwlifbyi";
+  version = "0.9.11";
+  sha256 = "04y6y5hixqh8awl37wrss20c2drvx070w7wd6icfx7r0jqds97jr";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ deepseq filepath ghcPaths syb transformers ];
   testDepends = [
-    deepseq filepath ghcPaths hspec HUnit QuickCheck setenv silently
-    stringbuilder syb transformers
+    baseCompat deepseq filepath ghcPaths hspec HUnit QuickCheck setenv
+    silently stringbuilder syb transformers
   ];
   doCheck = false;
   noHaddock = self.stdenv.lib.versionOlder self.ghc.version "7.4";
diff --git a/pkgs/development/libraries/haskell/dsp/default.nix b/pkgs/development/libraries/haskell/dsp/default.nix
new file mode 100644
index 000000000000..c16a6888b6b7
--- /dev/null
+++ b/pkgs/development/libraries/haskell/dsp/default.nix
@@ -0,0 +1,16 @@
+{ cabal, random }:
+
+cabal.mkDerivation (self: {
+  pname = "dsp";
+  version = "0.2.3";
+  sha256 = "1h7y3b2gwbkq97lv6f9a4zssyqs422g5zj2bi9mq1a5fzy5i4v4v";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ random ];
+  meta = {
+    homepage = "http://www.haskell.org/haskellwiki/DSP";
+    description = "Haskell Digital Signal Processing";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/dual-tree/default.nix b/pkgs/development/libraries/haskell/dual-tree/default.nix
index f8ef34a17234..7b2023c0812d 100644
--- a/pkgs/development/libraries/haskell/dual-tree/default.nix
+++ b/pkgs/development/libraries/haskell/dual-tree/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "dual-tree";
-  version = "0.2.0.1";
-  sha256 = "0v9kdhnwq8nv30ci5q7n43abl0wag21i06wp8pv1xgrva4lhswm5";
+  version = "0.2.0.2";
+  sha256 = "0w0kfzij22209slddyzr2g77khcgpv4ridhvkgl8z3d5sp7ggby1";
   buildDepends = [ monoidExtras newtype semigroups ];
   jailbreak = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/dyre/default.nix b/pkgs/development/libraries/haskell/dyre/default.nix
index 8b3d2cab677a..178f01952ea4 100644
--- a/pkgs/development/libraries/haskell/dyre/default.nix
+++ b/pkgs/development/libraries/haskell/dyre/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "dyre";
-  version = "0.8.11";
-  sha256 = "0sg5csshznbbyvq72s4sps7bkjlkfxiwcy4i3ip83lrxjw1msvr8";
+  version = "0.8.12";
+  sha256 = "10hnlysy4bjvvznk8v902mlk4jx95qf972clyi1l32xkqrf30972";
   buildDepends = [
     binary executablePath filepath ghcPaths ioStorage time xdgBasedir
   ];
diff --git a/pkgs/development/libraries/haskell/errors/default.nix b/pkgs/development/libraries/haskell/errors/default.nix
index 5e55f3a6d59c..7207bfbb1858 100644
--- a/pkgs/development/libraries/haskell/errors/default.nix
+++ b/pkgs/development/libraries/haskell/errors/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "errors";
-  version = "1.4.5";
-  sha256 = "16m4psk1150319bd2hrswpp2h90l1hhh7w13arfhy4ylh8vscm4q";
+  version = "1.4.6";
+  sha256 = "1h8va76rhvs76ljdccxbmb659qk1slzkal118m85bw6lpy5wv6fi";
   buildDepends = [ either safe transformers ];
   jailbreak = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/esqueleto/default.nix b/pkgs/development/libraries/haskell/esqueleto/default.nix
index fd314d12d515..9103480d48f9 100644
--- a/pkgs/development/libraries/haskell/esqueleto/default.nix
+++ b/pkgs/development/libraries/haskell/esqueleto/default.nix
@@ -5,15 +5,16 @@
 
 cabal.mkDerivation (self: {
   pname = "esqueleto";
-  version = "1.3.5";
-  sha256 = "0lz17fr4by31h1qdw0djbsb1zx9xgll5iphqq18gp587l799iy2p";
+  version = "1.3.10";
+  sha256 = "0q333m7xaanxb1vzgf2yn6d7y3pgkbj9mjw5gnywms36v5zsfik7";
   buildDepends = [
     conduit monadLogger persistent resourcet tagged text transformers
     unorderedContainers
   ];
   testDepends = [
     conduit hspec HUnit monadControl monadLogger persistent
-    persistentSqlite persistentTemplate QuickCheck text transformers
+    persistentSqlite persistentTemplate QuickCheck resourcet text
+    transformers
   ];
   meta = {
     homepage = "https://github.com/meteficha/esqueleto";
diff --git a/pkgs/development/libraries/haskell/exceptions/default.nix b/pkgs/development/libraries/haskell/exceptions/default.nix
index 0665694212b6..5d58654e51d4 100644
--- a/pkgs/development/libraries/haskell/exceptions/default.nix
+++ b/pkgs/development/libraries/haskell/exceptions/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "exceptions";
-  version = "0.3.3";
-  sha256 = "1gng8zvsljm6xrb5gy501f1dl47z171wkic8bsivhn4rgp9lby9l";
+  version = "0.5";
+  sha256 = "0l9gpifp23j6hvyq8p48rxsnv9adqbf7z096dzvd8v5xqqybgyxi";
   buildDepends = [ mtl transformers ];
   testDepends = [
     mtl QuickCheck testFramework testFrameworkQuickcheck2 transformers
@@ -13,7 +13,7 @@ cabal.mkDerivation (self: {
   meta = {
     homepage = "http://github.com/ekmett/exceptions/";
     description = "Extensible optionally-pure exceptions";
-    license = "unknown";
+    license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
     maintainers = [ self.stdenv.lib.maintainers.ocharles ];
   };
diff --git a/pkgs/development/libraries/haskell/failure/default.nix b/pkgs/development/libraries/haskell/failure/default.nix
index bc2821e3e8c5..9c0edece3029 100644
--- a/pkgs/development/libraries/haskell/failure/default.nix
+++ b/pkgs/development/libraries/haskell/failure/default.nix
@@ -2,12 +2,12 @@
 
 cabal.mkDerivation (self: {
   pname = "failure";
-  version = "0.2.0.1";
-  sha256 = "05k62sb2xj4ddjwsbfldxkap7v5kmv04qzic4sszx5i3ykbf20fd";
+  version = "0.2.0.2";
+  sha256 = "0hvcsn7qx00613f23vvb3vjpjlcy0nfavsai9f6s3yvmyssk5kfv";
   buildDepends = [ transformers ];
   meta = {
     homepage = "http://www.haskell.org/haskellwiki/Failure";
-    description = "A simple type class for success/failure computations";
+    description = "A simple type class for success/failure computations. (deprecated)";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
     maintainers = [ self.stdenv.lib.maintainers.andres ];
diff --git a/pkgs/development/libraries/haskell/fay-base/default.nix b/pkgs/development/libraries/haskell/fay-base/default.nix
index 53f6fdce41cb..fae2c8ee93f5 100644
--- a/pkgs/development/libraries/haskell/fay-base/default.nix
+++ b/pkgs/development/libraries/haskell/fay-base/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "fay-base";
-  version = "0.19";
-  sha256 = "03jf1ig3s2dcdd26j3d3iwm9hbiq5f5q5hyg22jdvl7lmvigw36j";
+  version = "0.19.1.1";
+  sha256 = "1qn48aj7j33gvb6vmz986cqi41zvh62sbmmvwgyhpmrhsfkm5wkz";
   buildDepends = [ fay ];
   meta = {
     homepage = "https://github.com/faylang/fay-base";
diff --git a/pkgs/development/libraries/haskell/fay/default.nix b/pkgs/development/libraries/haskell/fay/default.nix
index fdce9907056c..f7bf07b4fbab 100644
--- a/pkgs/development/libraries/haskell/fay/default.nix
+++ b/pkgs/development/libraries/haskell/fay/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "fay";
-  version = "0.19.0.2";
-  sha256 = "025yhl32xr5fcsxval5rcj8jrgd6qnjq9bqbhbsr5ni8dz3ks5r3";
+  version = "0.19.2";
+  sha256 = "08lq2x87gsf5szdj613k9h3qxzpb99hjhxnq3vggs2kf0ijp6xmh";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/fb/default.nix b/pkgs/development/libraries/haskell/fb/default.nix
index dbade4c9f84f..89f8a2121f83 100644
--- a/pkgs/development/libraries/haskell/fb/default.nix
+++ b/pkgs/development/libraries/haskell/fb/default.nix
@@ -1,5 +1,5 @@
-{ cabal, aeson, attoparsec, attoparsecConduit, base16Bytestring
-, base64Bytestring, cereal, conduit, cryptoApi, cryptohash
+{ cabal, aeson, attoparsec, base16Bytestring, base64Bytestring
+, cereal, conduit, conduitExtra, cryptoApi, cryptohash
 , cryptohashCryptoapi, dataDefault, hspec, httpConduit, httpTypes
 , HUnit, liftedBase, monadControl, monadLogger, QuickCheck
 , resourcet, text, time, transformers, transformersBase
@@ -8,18 +8,17 @@
 
 cabal.mkDerivation (self: {
   pname = "fb";
-  version = "0.15.2";
-  sha256 = "1nkgw4978kwhqs7h6rlsspx2f9dbmsywjn57v2fg1c1lg271rz1d";
+  version = "1.0";
+  sha256 = "1pkjpzhdysq5vn302wipz62w6v9fibpvd4smaylv8wgn09si91ji";
   buildDepends = [
-    aeson attoparsec attoparsecConduit base16Bytestring
-    base64Bytestring cereal conduit cryptoApi cryptohash
-    cryptohashCryptoapi dataDefault httpConduit httpTypes liftedBase
-    monadControl monadLogger resourcet text time transformers
-    transformersBase unorderedContainers
+    aeson attoparsec base16Bytestring base64Bytestring cereal conduit
+    conduitExtra cryptoApi cryptohash cryptohashCryptoapi dataDefault
+    httpConduit httpTypes liftedBase monadControl monadLogger resourcet
+    text time transformers transformersBase unorderedContainers
   ];
   testDepends = [
     aeson conduit dataDefault hspec httpConduit HUnit liftedBase
-    monadControl QuickCheck text time transformers
+    monadControl QuickCheck resourcet text time transformers
   ];
   doCheck = false;
   meta = {
diff --git a/pkgs/development/libraries/haskell/fdo-notify/default.nix b/pkgs/development/libraries/haskell/fdo-notify/default.nix
new file mode 100644
index 000000000000..86f3d7e0d1de
--- /dev/null
+++ b/pkgs/development/libraries/haskell/fdo-notify/default.nix
@@ -0,0 +1,14 @@
+{ cabal, dbus }:
+
+cabal.mkDerivation (self: {
+  pname = "fdo-notify";
+  version = "0.3.1";
+  sha256 = "1n4zk1i7g34w0wk5zy8n4r63xbglxf62h8j78kv5fc2yn95l30vh";
+  buildDepends = [ dbus ];
+  meta = {
+    homepage = "http://bitbucket.org/taejo/fdo-notify/";
+    description = "Desktop Notifications client";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/filepath/default.nix b/pkgs/development/libraries/haskell/filepath/default.nix
index 0cd65bb1905e..7a2b9e75e7f9 100644
--- a/pkgs/development/libraries/haskell/filepath/default.nix
+++ b/pkgs/development/libraries/haskell/filepath/default.nix
@@ -1,9 +1,10 @@
-{ cabal }:
+{ cabal, QuickCheck, random }:
 
 cabal.mkDerivation (self: {
   pname = "filepath";
-  version = "1.3.0.1";
-  sha256 = "1ny8dz8rv883vg6hkzg3zank771cr2z9sfhii7aw4rfb71k29g5p";
+  version = "1.3.0.2";
+  sha256 = "0wvvz6cs5fh4f04a87b9s7xrnzypmnzzkn149p6xk8xi7gcvcpy2";
+  testDepends = [ QuickCheck random ];
   meta = {
     homepage = "http://www-users.cs.york.ac.uk/~ndm/filepath/";
     description = "Library for manipulating FilePaths in a cross platform way";
diff --git a/pkgs/development/libraries/haskell/filestore/default.nix b/pkgs/development/libraries/haskell/filestore/default.nix
index 04321d34ffa1..d0056dd9c35a 100644
--- a/pkgs/development/libraries/haskell/filestore/default.nix
+++ b/pkgs/development/libraries/haskell/filestore/default.nix
@@ -8,7 +8,7 @@ cabal.mkDerivation (self: {
   sha256 = "1la30bimcjngcv5dyx1a9x8lr8c4zs0dp4kzh8y5mjf8snky1avf";
   buildDepends = [ Diff filepath parsec split time utf8String xml ];
   testDepends = [ Diff filepath HUnit mtl time ];
-  doCheck = false;
+  jailbreak = true;
   meta = {
     description = "Interface for versioning file stores";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/filesystem-conduit/default.nix b/pkgs/development/libraries/haskell/filesystem-conduit/default.nix
index f1a0554e380c..3d7a1300b58a 100644
--- a/pkgs/development/libraries/haskell/filesystem-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/filesystem-conduit/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "filesystem-conduit";
-  version = "1.0.0.1";
-  sha256 = "04l8i97mr0jzkc7vc77j885n45qd2qyn5kmzxyckp3za96sjsqqw";
+  version = "1.0.0.2";
+  sha256 = "05dsl3bgyjciq6sgmba0hki7imilrjq3ddp9ip5gxl9884j1f4a1";
   buildDepends = [
     conduit systemFileio systemFilepath text transformers
   ];
@@ -14,7 +14,7 @@ cabal.mkDerivation (self: {
   ];
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
-    description = "Use system-filepath data types with conduits";
+    description = "Use system-filepath data types with conduits. (deprecated)";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/foldl/default.nix b/pkgs/development/libraries/haskell/foldl/default.nix
index 3b1c61574f0e..926c2a812a0b 100644
--- a/pkgs/development/libraries/haskell/foldl/default.nix
+++ b/pkgs/development/libraries/haskell/foldl/default.nix
@@ -1,10 +1,10 @@
-{ cabal, primitive, text, vector }:
+{ cabal, primitive, text, transformers, vector }:
 
 cabal.mkDerivation (self: {
   pname = "foldl";
-  version = "1.0.2";
-  sha256 = "11cqmw102m2bskaknl8qr7hwyn94hfv2ind5fgvjw4hwgllr8v84";
-  buildDepends = [ primitive text vector ];
+  version = "1.0.3";
+  sha256 = "0jl50bh7k8wp0nz0s0sb2zwh92yrgsm2l6szib41g7zq34mwamn9";
+  buildDepends = [ primitive text transformers vector ];
   meta = {
     description = "Composable, streaming, and efficient left folds";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/force-layout/default.nix b/pkgs/development/libraries/haskell/force-layout/default.nix
index b57abc40e200..a336c2a7e2bb 100644
--- a/pkgs/development/libraries/haskell/force-layout/default.nix
+++ b/pkgs/development/libraries/haskell/force-layout/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "force-layout";
-  version = "0.3.0.2";
-  sha256 = "0zrvsrqwl0wjv38l6zl1pa09572njdbcfbvimhpp930629zk4yb7";
+  version = "0.3.0.3";
+  sha256 = "0xix9syfiya5wx0iwzs7sp3ksqyp15vjlpir71x8md8v0hkrnh5a";
   buildDepends = [
     dataDefaultClass lens vectorSpace vectorSpacePoints
   ];
diff --git a/pkgs/development/libraries/haskell/free/default.nix b/pkgs/development/libraries/haskell/free/default.nix
index 7d8376da28e9..1c7c236ba64f 100644
--- a/pkgs/development/libraries/haskell/free/default.nix
+++ b/pkgs/development/libraries/haskell/free/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "free";
-  version = "4.5";
-  sha256 = "0hcdl02whmnyxd3mbfrncd978778irm5sx5f4z54zsigwlk822vx";
+  version = "4.6.1";
+  sha256 = "0xmnxp6x7b6pp2ap7jrjhz00cm30v334i9dcxc14d3r070h7l73w";
   buildDepends = [
     bifunctors comonad distributive mtl profunctors semigroupoids
     semigroups transformers
diff --git a/pkgs/development/libraries/haskell/fsnotify/default.nix b/pkgs/development/libraries/haskell/fsnotify/default.nix
index 1ef55d105f79..3d308f6a88fa 100644
--- a/pkgs/development/libraries/haskell/fsnotify/default.nix
+++ b/pkgs/development/libraries/haskell/fsnotify/default.nix
@@ -1,16 +1,18 @@
-{ cabal, Cabal, Glob, hinotify, hspec, QuickCheck, random
+{ stdenv, cabal, Cabal, Glob, hspec, QuickCheck, random
 , systemFileio, systemFilepath, text, time, uniqueid
+, hinotify, hfsevents
 }:
 
 cabal.mkDerivation (self: {
   pname = "fsnotify";
   version = "0.0.11";
   sha256 = "03m911pncyzgfdx4aj38azbbmj25fdm3s9l1w27zv0l730fy8ywq";
-  buildDepends = [ hinotify systemFileio systemFilepath text time ];
+  buildDepends = [ systemFileio systemFilepath text time ] ++
+    (if stdenv.isDarwin then [ hfsevents ] else [ hinotify ]);
   testDepends = [
-    Cabal Glob hinotify hspec QuickCheck random systemFileio
+    Cabal Glob hspec QuickCheck random systemFileio
     systemFilepath text time uniqueid
-  ];
+  ] ++ (if stdenv.isDarwin then [ hfsevents ] else [ hinotify ]);
   doCheck = false;
   meta = {
     description = "Cross platform library for file change notification";
diff --git a/pkgs/development/libraries/haskell/ftphs/default.nix b/pkgs/development/libraries/haskell/ftphs/default.nix
new file mode 100644
index 000000000000..c682c593ea63
--- /dev/null
+++ b/pkgs/development/libraries/haskell/ftphs/default.nix
@@ -0,0 +1,18 @@
+{ cabal, hslogger, MissingH, mtl, network, parsec, regexCompat }:
+
+cabal.mkDerivation (self: {
+  pname = "ftphs";
+  version = "1.0.9.1";
+  sha256 = "1whvawaifhi5xgmiagdayjf7m6p6vs71mvc4a4csd4vzzjr0a2yf";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    hslogger MissingH mtl network parsec regexCompat
+  ];
+  meta = {
+    homepage = "http://software.complete.org/ftphs";
+    description = "FTP Client and Server Library";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/generic-deriving/default.nix b/pkgs/development/libraries/haskell/generic-deriving/default.nix
index 5081d09939bf..9b1d911638ff 100644
--- a/pkgs/development/libraries/haskell/generic-deriving/default.nix
+++ b/pkgs/development/libraries/haskell/generic-deriving/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "generic-deriving";
-  version = "1.6.2";
-  sha256 = "1ryzg7zgnlhx6mbmpsh4fgqf2d758c94qz2zpg3jxns30hd4sfy6";
+  version = "1.6.3";
+  sha256 = "04cjyl5aphf36qbbn75midrqj151fc77z2znpal8dk52gaab2f67";
   meta = {
     description = "Generic programming library for generalised deriving";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/ghc-events/default.nix b/pkgs/development/libraries/haskell/ghc-events/default.nix
index 5b7decf9416b..a13f56e4b53d 100644
--- a/pkgs/development/libraries/haskell/ghc-events/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-events/default.nix
@@ -8,6 +8,7 @@ cabal.mkDerivation (self: {
   isExecutable = true;
   buildDepends = [ binary mtl ];
   testDepends = [ binary mtl ];
+  jailbreak = true;
   doCheck = false;
   meta = {
     description = "Library and tool for parsing .eventlog files from GHC";
diff --git a/pkgs/development/libraries/haskell/ghc-mod/default.nix b/pkgs/development/libraries/haskell/ghc-mod/default.nix
index 02c459c8e5c5..185f70785e53 100644
--- a/pkgs/development/libraries/haskell/ghc-mod/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-mod/default.nix
@@ -1,20 +1,20 @@
-{ cabal, Cabal, convertible, doctest, emacs, filepath, ghcPaths
-, ghcSybUtils, hlint, hspec, ioChoice, syb, time, transformers
+{ cabal, Cabal, convertible, doctest, emacs, filepath, ghcSybUtils
+, hlint, hspec, ioChoice, syb, time, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "ghc-mod";
-  version = "3.1.6";
-  sha256 = "1z8fzh08f38cxplf14sflpgrazlwzz6q73lvxm37xyp7gww2prhi";
+  version = "4.0.2";
+  sha256 = "10ndlydx0ymz8fbcgjjnzyak7lly34012bsghwj0i0dc5ja1pic8";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    Cabal convertible filepath ghcPaths ghcSybUtils hlint ioChoice syb
-    time transformers
+    Cabal convertible filepath ghcSybUtils hlint ioChoice syb time
+    transformers
   ];
   testDepends = [
-    Cabal convertible doctest filepath ghcPaths ghcSybUtils hlint hspec
-    ioChoice syb time transformers
+    Cabal convertible doctest filepath ghcSybUtils hlint hspec ioChoice
+    syb time transformers
   ];
   buildTools = [ emacs ];
   postInstall = ''
diff --git a/pkgs/development/libraries/haskell/ghc-mtl/default.nix b/pkgs/development/libraries/haskell/ghc-mtl/default.nix
index 1379d4a8ee8f..592961aa5549 100644
--- a/pkgs/development/libraries/haskell/ghc-mtl/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-mtl/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "ghc-mtl";
-  version = "1.1.0.0";
-  sha256 = "1vmiy00fsdp1jzmpjrz8wzxbv3185h27aspw412pmcr4v1n29kxc";
+  version = "1.2.0.0";
+  sha256 = "0fk3adc56nhi46nf2w5ybp3cd9l13qqbpd5nbhfhbqj3g73j8p5a";
   buildDepends = [ exceptions extensibleExceptions mtl ];
   meta = {
     homepage = "http://hub.darcs.net/jcpetruzza/ghc-mtl";
diff --git a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix
index 58ad2765f6b0..20fc85b95f18 100644
--- a/pkgs/development/libraries/haskell/ghcjs-dom/default.nix
+++ b/pkgs/development/libraries/haskell/ghcjs-dom/default.nix
@@ -1,10 +1,10 @@
-{ cabal, glib, gtk3, mtl, transformers, webkitgtk3 }:
+{ cabal, ghcjsBase, mtl }:
 
 cabal.mkDerivation (self: {
   pname = "ghcjs-dom";
-  version = "0.0.4";
-  sha256 = "1a3dv2l3s3aifcpivmnv308k2a1kb7r4x0z9gi83wc4xr9a8f08w";
-  buildDepends = [ glib gtk3 mtl transformers webkitgtk3 ];
+  version = "0.0.7";
+  sha256 = "1yg2c0slndg3y9bk95xkbgl8zp4lmcgw9wk3jkk1sdizn3y3yggq";
+  buildDepends = [ ghcjsBase mtl ];
   meta = {
     description = "DOM library that supports both GHCJS and WebKitGTK";
     license = self.stdenv.lib.licenses.mit;
diff --git a/pkgs/development/libraries/haskell/git-date/default.nix b/pkgs/development/libraries/haskell/git-date/default.nix
new file mode 100644
index 000000000000..9124da6c7a6f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/git-date/default.nix
@@ -0,0 +1,19 @@
+{ cabal, QuickCheck, testFramework, testFrameworkQuickcheck2, time
+, utf8String
+}:
+
+cabal.mkDerivation (self: {
+  pname = "git-date";
+  version = "0.2.1";
+  sha256 = "17xiim439igg1gfcfwpzxjkgpmfqqh9v79jm4bg0f9h5dijij79l";
+  buildDepends = [ time utf8String ];
+  testDepends = [
+    QuickCheck testFramework testFrameworkQuickcheck2 time utf8String
+  ];
+  meta = {
+    homepage = "https://github.com/singpolyma/git-date-haskell";
+    description = "Bindings to the date parsing from Git";
+    license = self.stdenv.lib.licenses.gpl2;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/github/default.nix b/pkgs/development/libraries/haskell/github/default.nix
index 0c1d0b3135d9..5fd23514583c 100644
--- a/pkgs/development/libraries/haskell/github/default.nix
+++ b/pkgs/development/libraries/haskell/github/default.nix
@@ -13,6 +13,9 @@ cabal.mkDerivation (self: {
     unorderedContainers vector
   ];
   jailbreak = true;
+  patchPhase = ''
+    sed -i -e '/^import Data.Conduit (ResourceT)/d' Github/Private.hs
+  '';
   meta = {
     homepage = "https://github.com/fpco/github";
     description = "Access to the Github API, v3";
diff --git a/pkgs/development/libraries/haskell/gnuplot/default.nix b/pkgs/development/libraries/haskell/gnuplot/default.nix
index 8390ef2520aa..f835410dbbd9 100644
--- a/pkgs/development/libraries/haskell/gnuplot/default.nix
+++ b/pkgs/development/libraries/haskell/gnuplot/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "gnuplot";
-  version = "0.5.2";
-  sha256 = "11gma33bikx97jra04vgnhikylw9wm1l37hdrsknl7mgk2qbrs74";
+  version = "0.5.2.2";
+  sha256 = "0l5hi346bhs9w11i3z6yy4mcr3k50xcp3j31g6wza9grxlfqc5av";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index e027111c6b6b..5e40bb851f08 100644
--- a/pkgs/development/libraries/haskell/hakyll/default.nix
+++ b/pkgs/development/libraries/haskell/hakyll/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hakyll";
-  version = "4.4.3.2";
-  sha256 = "1n597q4pbdka7g06524j0zvjcjpv7fgf6mga1a0kfr012sf9cqz9";
+  version = "4.5.1.0";
+  sha256 = "0p78wscz9gwg1as49wjl49ydzbv972w6wmbmvhw1rfb9d5xana1i";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -26,12 +26,6 @@ cabal.mkDerivation (self: {
     testFrameworkHunit testFrameworkQuickcheck2 text time
   ];
   doCheck = false;
-  patchPhase = ''
-    sed -i -e 's|blaze-markup.*,|blaze-markup,|' \
-      -e 's|blaze-html.*,|blaze-html,|' \
-      -e 's|pandoc-citeproc.*,|pandoc-citeproc,|' \
-      -e 's|regex-tdfa.*,|regex-tdfa,|' hakyll.cabal
-  '';
   meta = {
     homepage = "http://jaspervdj.be/hakyll";
     description = "A static website compiler library";
diff --git a/pkgs/development/libraries/haskell/hashed-storage/default.nix b/pkgs/development/libraries/haskell/hashed-storage/default.nix
index 77a4251259d3..e2a82e13b3ea 100644
--- a/pkgs/development/libraries/haskell/hashed-storage/default.nix
+++ b/pkgs/development/libraries/haskell/hashed-storage/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hashed-storage";
-  version = "0.5.10";
-  sha256 = "1k7drnk0y5apjvwsiw85032yvxllbi7ndg6h9x207gnjxm64m0h5";
+  version = "0.5.11";
+  sha256 = "0s8mnayxlvwrrii2l63b372yi5g08br6gpbgz2256d8y128mwjvk";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/haskell-names/default.nix b/pkgs/development/libraries/haskell/haskell-names/default.nix
index 519b24668ae1..74cfc4530997 100644
--- a/pkgs/development/libraries/haskell/haskell-names/default.nix
+++ b/pkgs/development/libraries/haskell/haskell-names/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "haskell-names";
-  version = "0.3.2.8";
-  sha256 = "043anrsilhd6mgc7c5qb6b7rkdf60xfgzzjn38zk6v0f41lvff99";
+  version = "0.3.3";
+  sha256 = "1f40dyrdb9c5iysmclql75l86zg3iisnyyiq5fkgixdafzsq31ir";
   buildDepends = [
     aeson Cabal dataLens dataLensTemplate filepath haskellPackages
     haskellSrcExts hseCpp mtl tagged transformers traverseWithClass
diff --git a/pkgs/development/libraries/haskell/haskell-platform/2013.2.0.0.nix b/pkgs/development/libraries/haskell/haskell-platform/2013.2.0.0.nix
index 2e0181bd1a7b..f209c39d438a 100644
--- a/pkgs/development/libraries/haskell/haskell-platform/2013.2.0.0.nix
+++ b/pkgs/development/libraries/haskell/haskell-platform/2013.2.0.0.nix
@@ -30,6 +30,7 @@ cabal.mkDerivation (self : {
     cp ${self.cabalFile} $sourceRoot/${self.pname}.cabal
     cp ${self.setupFile} $sourceRoot/Setup.hs
     touch $sourceRoot/LICENSE
+    sed -i -e 's|hashable  *==1.1.2.5,|hashable,|' $sourceRoot/${self.pname}.cabal
   '';
   noHaddock = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/haskell-src/1.0.1.6.nix b/pkgs/development/libraries/haskell/haskell-src/1.0.1.6.nix
new file mode 100644
index 000000000000..9e78f2800a7c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-src/1.0.1.6.nix
@@ -0,0 +1,15 @@
+{ cabal, happy, syb }:
+
+cabal.mkDerivation (self: {
+  pname = "haskell-src";
+  version = "1.0.1.6";
+  sha256 = "1vscvbsly7k0zqb7fi6bm38dfacyl8qgmv0h25fqkn95c0v5dif7";
+  buildDepends = [ syb ];
+  buildTools = [ happy ];
+  meta = {
+    description = "Support for manipulating Haskell source code";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hastache/default.nix b/pkgs/development/libraries/haskell/hastache/default.nix
index c864c7e0a5ff..20fc429fc63e 100644
--- a/pkgs/development/libraries/haskell/hastache/default.nix
+++ b/pkgs/development/libraries/haskell/hastache/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hastache";
-  version = "0.5.1";
-  sha256 = "05lm7mjzc1hamxcj8akq06081bhp907hrjdkhas3wzm6ran6rwn3";
+  version = "0.6.0";
+  sha256 = "1z609mhsc875ba3k6mlmlqpmqlwgxpav2asnf83yzq1q7bfs0cxh";
   buildDepends = [
     blazeBuilder filepath ieee754 mtl syb text transformers utf8String
   ];
diff --git a/pkgs/development/libraries/haskell/heist/default.nix b/pkgs/development/libraries/haskell/heist/default.nix
index 718f2088ff2c..77ebf3fd9af1 100644
--- a/pkgs/development/libraries/haskell/heist/default.nix
+++ b/pkgs/development/libraries/haskell/heist/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "heist";
-  version = "0.13.0.6";
-  sha256 = "1h34bmcb9bqkagcx3iqnp4l8z8qhngf00mki4hpk905znja6hib9";
+  version = "0.13.1";
+  sha256 = "0v9c5hhybn617nmjswqkjrf7bjb5073achfi05ivw1gblbvsj0ir";
   buildDepends = [
     aeson attoparsec blazeBuilder blazeHtml directoryTree dlist errors
     filepath hashable MonadCatchIOTransformers mtl random text time
diff --git a/pkgs/development/libraries/haskell/hfsevents/default.nix b/pkgs/development/libraries/haskell/hfsevents/default.nix
new file mode 100644
index 000000000000..624420fb0ca3
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hfsevents/default.nix
@@ -0,0 +1,16 @@
+{ cabal, cereal, mtl, text, gccApple }:
+
+cabal.mkDerivation (self: {
+  pname = "hfsevents";
+  version = "0.1.5";
+  sha256 = "0hp9jjj59smfcs51d9zjhyvgdbn46l0rl0jr98wbzg3qya0vwj5k";
+  buildDepends = [ cereal mtl text ];
+  buildTools = [ gccApple ];
+  configureFlags = "--ghc-option=-pgmc=${gccApple}/bin/gcc";
+  meta = {
+    homepage = "http://github.com/luite/hfsevents";
+    description = "File/folder watching for OS X";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.stdenv.lib.platforms.darwin;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hint/default.nix b/pkgs/development/libraries/haskell/hint/default.nix
index 5534c2fc9da8..09fdfe232a66 100644
--- a/pkgs/development/libraries/haskell/hint/default.nix
+++ b/pkgs/development/libraries/haskell/hint/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hint";
-  version = "0.4.0.0";
-  sha256 = "0xs56ws7vwdjgvg7d31iqa111342an6rxvwhh7c3h4z1bq5l1l61";
+  version = "0.4.1.0";
+  sha256 = "1hc66yfzg9jrm5h3hd52rm4ca8ha0j93rhjpjh6hhzr4a40jv0pl";
   buildDepends = [
     exceptions extensibleExceptions filepath ghcMtl ghcPaths mtl random
     utf8String
diff --git a/pkgs/development/libraries/haskell/hjsmin/default.nix b/pkgs/development/libraries/haskell/hjsmin/default.nix
index b060d3c6efe4..563372fa451b 100644
--- a/pkgs/development/libraries/haskell/hjsmin/default.nix
+++ b/pkgs/development/libraries/haskell/hjsmin/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hjsmin";
-  version = "0.1.4.5";
-  sha256 = "0lzqs20kyngbjc7wqq347b1caj0hbf29dvdpxghfpjbrgyvyqh74";
+  version = "0.1.4.6";
+  sha256 = "0z0wzgwm66ckq9h756s7srfyiv2jia9779yi86cn1zgzr8dwspvr";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -16,6 +16,7 @@ cabal.mkDerivation (self: {
     blazeBuilder Cabal HUnit languageJavascript QuickCheck
     testFramework testFrameworkHunit text
   ];
+  jailbreak = true;
   meta = {
     homepage = "http://github.com/alanz/hjsmin";
     description = "Haskell implementation of a javascript minifier";
diff --git a/pkgs/development/libraries/haskell/hledger-web/build-fix.patch b/pkgs/development/libraries/haskell/hledger-web/build-fix.patch
new file mode 100644
index 000000000000..45862bf1679c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hledger-web/build-fix.patch
@@ -0,0 +1,47 @@
+Only in hledger-web-0.22.4: dist
+diff -urw hledger-web-0.22.4-orig/Hledger/Web/Main.hs hledger-web-0.22.4/Hledger/Web/Main.hs
+--- hledger-web-0.22.4-orig/Hledger/Web/Main.hs	2014-04-07 13:00:41.168884350 +0200
++++ hledger-web-0.22.4/Hledger/Web/Main.hs	2014-04-07 13:14:46.584599468 +0200
+@@ -15,7 +15,8 @@
+ -- import Yesod.Default.Main   (defaultMain)
+ import Settings            --  (parseExtra)
+ import Application          (makeApplication)
+-import Data.Conduit.Network (HostPreference(HostIPv4))
++import Data.String
++import Data.Conduit.Network
+ import Network.Wai.Handler.Warp (runSettings, defaultSettings, settingsPort)
+ import Network.Wai.Handler.Launch (runUrlPort)
+ --
+@@ -65,7 +66,7 @@
+   app <- makeApplication opts j' AppConfig{appEnv = Development
+                                           ,appPort = p
+                                           ,appRoot = pack u
+-                                          ,appHost = HostIPv4
++                                          ,appHost = fromString "*4"
+                                           ,appExtra = Extra "" Nothing staticRoot
+                                           }
+   if server_ opts
+diff -urw hledger-web-0.22.4-orig/hledger-web.cabal hledger-web-0.22.4/hledger-web.cabal
+--- hledger-web-0.22.4-orig/hledger-web.cabal	2014-04-07 13:00:41.168884350 +0200
++++ hledger-web-0.22.4/hledger-web.cabal	2014-04-07 13:16:26.376772344 +0200
+@@ -128,7 +128,7 @@
+                    , http-conduit
+                    , http-client          >= 0.2 && < 0.3
+                    , HUnit
+-                   , network-conduit
++                   , network-conduit, conduit-extra
+                    , old-locale
+                    , parsec
+                    , regexpr              >= 0.5.1
+@@ -220,7 +220,7 @@
+                    , http-conduit
+                    , http-client          >= 0.2 && < 0.3
+                    , HUnit
+-                   , network-conduit
++                   , network-conduit, conduit-extra
+                    , old-locale
+                    , parsec
+                    , regexpr              >= 0.5.1
+Only in hledger-web-0.22.4: Setup
+Only in hledger-web-0.22.4: Setup.hi
+Only in hledger-web-0.22.4: Setup.o
diff --git a/pkgs/development/libraries/haskell/hledger-web/default.nix b/pkgs/development/libraries/haskell/hledger-web/default.nix
index eee84c338e63..58328ae9cf50 100644
--- a/pkgs/development/libraries/haskell/hledger-web/default.nix
+++ b/pkgs/development/libraries/haskell/hledger-web/default.nix
@@ -22,6 +22,7 @@ cabal.mkDerivation (self: {
   testDepends = [ hspec yesod yesodTest ];
   jailbreak = true;
   doCheck = false;
+  patches = [ ./build-fix.patch ];
   meta = {
     homepage = "http://hledger.org";
     description = "A web interface for the hledger accounting tool";
diff --git a/pkgs/development/libraries/haskell/hmatrix/default.nix b/pkgs/development/libraries/haskell/hmatrix/default.nix
index 51670f639735..bb0c48b91183 100644
--- a/pkgs/development/libraries/haskell/hmatrix/default.nix
+++ b/pkgs/development/libraries/haskell/hmatrix/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hmatrix";
-  version = "0.15.2.0";
-  sha256 = "0rlgyqgl9x08f38nznbv50asbph0zp9dqk0l156hxz792590payl";
+  version = "0.15.2.1";
+  sha256 = "0pcs3dsxmaznsb82r71f4kf7xbwvj94cy1fmyya52nv3nldnk1jg";
   buildDepends = [ binary deepseq random storableComplex vector ];
   extraLibraries = [ blas gsl liblapack ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/hoogle/default.nix b/pkgs/development/libraries/haskell/hoogle/default.nix
index 9f8c10f86fb2..995a4ef5d9a4 100644
--- a/pkgs/development/libraries/haskell/hoogle/default.nix
+++ b/pkgs/development/libraries/haskell/hoogle/default.nix
@@ -1,19 +1,19 @@
 { cabal, aeson, binary, blazeBuilder, Cabal, caseInsensitive
 , cmdargs, conduit, deepseq, filepath, haskellSrcExts, httpTypes
-, parsec, QuickCheck, random, safe, shake, tagsoup, text, time
-, transformers, uniplate, vector, vectorAlgorithms, wai, warp
+, parsec, QuickCheck, random, resourcet, safe, shake, tagsoup, text
+, time, transformers, uniplate, vector, vectorAlgorithms, wai, warp
 }:
 
 cabal.mkDerivation (self: {
   pname = "hoogle";
-  version = "4.2.29";
-  sha256 = "0w4fgf0qvd5zsa7dk99vcbr2pnyyg1hl3k0zwvp5v26v1lfijzil";
+  version = "4.2.31";
+  sha256 = "176lyj236ncq0lg7vbl4bbm1a98ficj82aranrhyxdjzmbk3i67x";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     aeson binary blazeBuilder Cabal caseInsensitive cmdargs conduit
     deepseq filepath haskellSrcExts httpTypes parsec QuickCheck random
-    safe shake tagsoup text time transformers uniplate vector
+    resourcet safe shake tagsoup text time transformers uniplate vector
     vectorAlgorithms wai warp
   ];
   testDepends = [ filepath ];
diff --git a/pkgs/development/libraries/haskell/hsimport/default.nix b/pkgs/development/libraries/haskell/hsimport/default.nix
index c114e5aae0fd..ca2808e5aba0 100644
--- a/pkgs/development/libraries/haskell/hsimport/default.nix
+++ b/pkgs/development/libraries/haskell/hsimport/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hsimport";
-  version = "0.2.10";
-  sha256 = "0xvsjgckh2jab9q7l8pvnnn5x977mb6hkhqb175m10brr13yzk4z";
+  version = "0.3";
+  sha256 = "124dimaa8v4x6vlh51v2r7569d8122l42q19bpzgqih33vw2djcs";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/hspec-meta/default.nix b/pkgs/development/libraries/haskell/hspec-meta/default.nix
index 1b9cbd089781..c522dc9f9687 100644
--- a/pkgs/development/libraries/haskell/hspec-meta/default.nix
+++ b/pkgs/development/libraries/haskell/hspec-meta/default.nix
@@ -1,16 +1,17 @@
 { cabal, ansiTerminal, deepseq, filepath, hspecExpectations, HUnit
-, QuickCheck, quickcheckIo, random, setenv, time, transformers
+, QuickCheck, quickcheckIo, random, setenv, tfRandom, time
+, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "hspec-meta";
-  version = "1.8.3";
-  sha256 = "12d254snnv8i1qqybsp6yzbqdxjf1wx8d29ja3lazb3kx12qwawd";
+  version = "1.9.2";
+  sha256 = "0df54njh3i2gq10rkibqaq36xzv16pd2pp18wy28w6x5xff5hvm5";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     ansiTerminal deepseq filepath hspecExpectations HUnit QuickCheck
-    quickcheckIo random setenv time transformers
+    quickcheckIo random setenv tfRandom time transformers
   ];
   doCheck = false;
   meta = {
diff --git a/pkgs/development/libraries/haskell/hspec/default.nix b/pkgs/development/libraries/haskell/hspec/default.nix
index 984a046f5017..8d316caf4c85 100644
--- a/pkgs/development/libraries/haskell/hspec/default.nix
+++ b/pkgs/development/libraries/haskell/hspec/default.nix
@@ -1,22 +1,22 @@
 { cabal, ansiTerminal, deepseq, doctest, filepath, ghcPaths
 , hspecExpectations, hspecMeta, HUnit, QuickCheck, quickcheckIo
-, random, setenv, silently, time, transformers
+, random, setenv, silently, tfRandom, time, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "hspec";
-  version = "1.8.3";
-  sha256 = "0k5l8r54nc0q5x3czdfxkwa606qnli3a6qm2xd3r5yl5bnz6hzh8";
+  version = "1.9.2";
+  sha256 = "0q8a1n03d70l86l2yy98j180xbnfq0ijgcf5llv439b65lc4zcyf";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     ansiTerminal deepseq filepath hspecExpectations HUnit QuickCheck
-    quickcheckIo random setenv time transformers
+    quickcheckIo random setenv tfRandom time transformers
   ];
   testDepends = [
     ansiTerminal deepseq doctest filepath ghcPaths hspecExpectations
-    hspecMeta HUnit QuickCheck quickcheckIo random setenv silently time
-    transformers
+    hspecMeta HUnit QuickCheck quickcheckIo random setenv silently
+    tfRandom time transformers
   ];
   doCheck = false;
   meta = {
diff --git a/pkgs/development/libraries/haskell/html-conduit/default.nix b/pkgs/development/libraries/haskell/html-conduit/default.nix
index 3f7b2ad507ac..244b1c2dcce2 100644
--- a/pkgs/development/libraries/haskell/html-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/html-conduit/default.nix
@@ -1,15 +1,15 @@
-{ cabal, conduit, filesystemConduit, hspec, HUnit, resourcet
+{ cabal, conduit, conduitExtra, hspec, HUnit, resourcet
 , systemFilepath, tagstreamConduit, text, transformers, xmlConduit
 , xmlTypes
 }:
 
 cabal.mkDerivation (self: {
   pname = "html-conduit";
-  version = "1.1.0.1";
-  sha256 = "0v3zlassakc34i7kzajx63s1rxn516xv7lrib0a4kn4cdlqn7kxs";
+  version = "1.1.0.4";
+  sha256 = "1bl6h38fvhiidzxly49l7jickcg0s4fy59m4cizfjarxll9cspwb";
   buildDepends = [
-    conduit filesystemConduit resourcet systemFilepath tagstreamConduit
-    text transformers xmlConduit xmlTypes
+    conduit conduitExtra resourcet systemFilepath tagstreamConduit text
+    transformers xmlConduit xmlTypes
   ];
   testDepends = [ hspec HUnit xmlConduit ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/http-client-conduit/default.nix b/pkgs/development/libraries/haskell/http-client-conduit/default.nix
index 1c47b68f06ce..019136e47ca8 100644
--- a/pkgs/development/libraries/haskell/http-client-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/http-client-conduit/default.nix
@@ -1,13 +1,14 @@
-{ cabal, conduit, httpClient, resourcet, transformers }:
+{ cabal, httpClient }:
 
 cabal.mkDerivation (self: {
   pname = "http-client-conduit";
-  version = "0.2.0.1";
-  sha256 = "0fy9vkxh7hvmp9ijifq8nx6y5y92n6d3s1vdyg53ln65pclc6jn5";
-  buildDepends = [ conduit httpClient resourcet transformers ];
+  version = "0.3.0";
+  sha256 = "0k2vq9y7kfbkhcsszjr74ahq5nw5z7dbzjhw1ixbigcr56axsd19";
+  buildDepends = [ httpClient ];
+  noHaddock = true;
   meta = {
     homepage = "https://github.com/snoyberg/http-client";
-    description = "Frontend support for using http-client with conduit";
+    description = "Frontend support for using http-client with conduit (deprecated)";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/http-client-multipart/default.nix b/pkgs/development/libraries/haskell/http-client-multipart/default.nix
index 068efdcb543d..9cad23a79991 100644
--- a/pkgs/development/libraries/haskell/http-client-multipart/default.nix
+++ b/pkgs/development/libraries/haskell/http-client-multipart/default.nix
@@ -1,18 +1,14 @@
-{ cabal, blazeBuilder, filepath, httpClient, httpTypes, mimeTypes
-, random, text, transformers
-}:
+{ cabal, httpClient }:
 
 cabal.mkDerivation (self: {
   pname = "http-client-multipart";
-  version = "0.2.0.0";
-  sha256 = "1bahkysh771p3mrfan1gmm6jyx62w3k57ba4rsnx7h1gwbilm878";
-  buildDepends = [
-    blazeBuilder filepath httpClient httpTypes mimeTypes random text
-    transformers
-  ];
+  version = "0.3.0.0";
+  sha256 = "18za6s3658hgm95rrygghrz0b643c7nkzaimb14v2hv82w3k9crg";
+  buildDepends = [ httpClient ];
+  noHaddock = true;
   meta = {
     homepage = "https://github.com/snoyberg/http-client";
-    description = "Generate multipart uploads for http-client";
+    description = "Generate multipart uploads for http-client. (deprecated)";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/http-client/default.nix b/pkgs/development/libraries/haskell/http-client/default.nix
index ff21e12bb432..8816ec91a83c 100644
--- a/pkgs/development/libraries/haskell/http-client/default.nix
+++ b/pkgs/development/libraries/haskell/http-client/default.nix
@@ -1,22 +1,22 @@
-{ cabal, base64Bytestring, blazeBuilder, caseInsensitive, cookie
-, dataDefaultClass, deepseq, failure, hspec, httpTypes
-, monadControl, network, publicsuffixlist, text, time, transformers
-, zlib, zlibBindings
+{ cabal, async, base64Bytestring, blazeBuilder, caseInsensitive
+, cookie, dataDefaultClass, deepseq, exceptions, filepath, hspec
+, httpTypes, mimeTypes, monadControl, network, publicsuffixlist
+, random, streamingCommons, text, time, transformers, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "http-client";
-  version = "0.2.2.2";
-  sha256 = "1pn38vqbb8ff3gmwkzb8a2fika2rdymnlglpi3q7yn0jsvxl5xli";
+  version = "0.3.0.2";
+  sha256 = "1r858ml809c21q9q2kv0105y89cizncxym9mf1f0f165aa2hx71m";
   buildDepends = [
     base64Bytestring blazeBuilder caseInsensitive cookie
-    dataDefaultClass deepseq failure httpTypes network publicsuffixlist
-    text time transformers zlibBindings
+    dataDefaultClass deepseq exceptions filepath httpTypes mimeTypes
+    network publicsuffixlist random streamingCommons text time
+    transformers
   ];
   testDepends = [
-    base64Bytestring blazeBuilder caseInsensitive deepseq failure hspec
+    async base64Bytestring blazeBuilder caseInsensitive deepseq hspec
     httpTypes monadControl network text time transformers zlib
-    zlibBindings
   ];
   doCheck = false;
   meta = {
diff --git a/pkgs/development/libraries/haskell/http-conduit/default.nix b/pkgs/development/libraries/haskell/http-conduit/default.nix
index 398459f60769..1ea6ebafd8cc 100644
--- a/pkgs/development/libraries/haskell/http-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/http-conduit/default.nix
@@ -1,22 +1,22 @@
-{ cabal, blazeBuilder, caseInsensitive, conduit, connection, cookie
-, dataDefaultClass, hspec, httpClient, httpClientConduit
-, httpClientMultipart, httpClientTls, httpTypes, HUnit, liftedBase
-, network, networkConduit, resourcet, text, time, transformers
-, utf8String, wai, warp, warpTls
+{ cabal, blazeBuilder, caseInsensitive, conduit, conduitExtra
+, connection, cookie, dataDefaultClass, hspec, httpClient
+, httpClientTls, httpTypes, HUnit, liftedBase, monadControl, mtl
+, network, networkConduit, resourcet, streamingCommons, text, time
+, transformers, utf8String, wai, warp, warpTls
 }:
 
 cabal.mkDerivation (self: {
   pname = "http-conduit";
-  version = "2.0.0.8";
-  sha256 = "1yralv1nalvdpgamnbjl8xm4lrx22m3v6jancrzisq38a680q96b";
+  version = "2.1.0";
+  sha256 = "1qlqhrrc130c8wvgbbbkb7qrm8gp48gkv5xanqgb26amvny98gsv";
   buildDepends = [
-    conduit httpClient httpClientConduit httpClientTls httpTypes
-    liftedBase resourcet transformers
+    conduit httpClient httpClientTls httpTypes liftedBase monadControl
+    mtl resourcet transformers
   ];
   testDepends = [
-    blazeBuilder caseInsensitive conduit connection cookie
-    dataDefaultClass hspec httpClient httpClientMultipart httpTypes
-    HUnit liftedBase network networkConduit text time transformers
+    blazeBuilder caseInsensitive conduit conduitExtra connection cookie
+    dataDefaultClass hspec httpClient httpTypes HUnit liftedBase
+    network networkConduit streamingCommons text time transformers
     utf8String wai warp warpTls
   ];
   doCheck = false;
diff --git a/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix b/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix
index 3605425436e4..ff47ba142414 100644
--- a/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix
+++ b/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix
@@ -1,21 +1,24 @@
-{ cabal, async, basicPrelude, blazeBuilder, caseInsensitive
-, conduit, dataDefaultClass, hspec, httpClient, httpConduit
+{ cabal, async, blazeBuilder, caseInsensitive, conduit
+, conduitExtra, dataDefaultClass, hspec, httpClient, httpConduit
 , httpTypes, liftedBase, monadControl, network, networkConduit
-, resourcet, text, transformers, wai, waiLogger, warp, word8
+, resourcet, streamingCommons, text, transformers, wai, waiLogger
+, warp, word8
 }:
 
 cabal.mkDerivation (self: {
   pname = "http-reverse-proxy";
-  version = "0.3.1";
-  sha256 = "1xayhjrs6nm7gm5xc6z6vhzi9iq5czdvpywamkncivjsxjlc50b8";
+  version = "0.3.1.5";
+  sha256 = "0rzwh5ph23592qycriam932bgb6q2nvjr7wayqz0sjvvxv661bk0";
   buildDepends = [
-    async basicPrelude blazeBuilder caseInsensitive conduit
+    async blazeBuilder caseInsensitive conduit conduitExtra
     dataDefaultClass httpClient httpTypes liftedBase monadControl
-    network networkConduit resourcet text wai waiLogger word8
+    network networkConduit resourcet streamingCommons text transformers
+    wai waiLogger word8
   ];
   testDepends = [
-    blazeBuilder conduit hspec httpConduit httpTypes liftedBase network
-    networkConduit transformers wai warp
+    blazeBuilder conduit conduitExtra hspec httpConduit httpTypes
+    liftedBase network networkConduit resourcet streamingCommons
+    transformers wai warp
   ];
   doCheck = false;
   meta = {
diff --git a/pkgs/development/libraries/haskell/http-types/default.nix b/pkgs/development/libraries/haskell/http-types/default.nix
index ed24e1ede749..a3fa1c8c9ee4 100644
--- a/pkgs/development/libraries/haskell/http-types/default.nix
+++ b/pkgs/development/libraries/haskell/http-types/default.nix
@@ -2,10 +2,11 @@
 
 cabal.mkDerivation (self: {
   pname = "http-types";
-  version = "0.8.3";
-  sha256 = "02l1lhl2ajbm5f7zq363nlb21dpdg1m0qsy330arccmds7z9g7a2";
+  version = "0.8.4";
+  sha256 = "0bz7g537if863vk29z72hndf1x019dj7shj1aa77pssrxma3a685";
   buildDepends = [ blazeBuilder caseInsensitive text ];
   testDepends = [ blazeBuilder hspec QuickCheck text ];
+  jailbreak = true;
   meta = {
     homepage = "https://github.com/aristidb/http-types";
     description = "Generic HTTP types for Haskell (for both client and server code)";
diff --git a/pkgs/development/libraries/haskell/hxt-http/default.nix b/pkgs/development/libraries/haskell/hxt-http/default.nix
new file mode 100644
index 000000000000..14867df7fc19
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hxt-http/default.nix
@@ -0,0 +1,14 @@
+{ cabal, HTTP, hxt, network, parsec }:
+
+cabal.mkDerivation (self: {
+  pname = "hxt-http";
+  version = "9.1.4";
+  sha256 = "176k71dc30cnjjr9y9vphs0aixs3ww16197qyc491qjrzhymm2g2";
+  buildDepends = [ HTTP hxt network parsec ];
+  meta = {
+    homepage = "http://www.fh-wedel.de/~si/HXmlToolbox/index.html";
+    description = "Interface to native Haskell HTTP package HTTP";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hxt-unicode/default.nix b/pkgs/development/libraries/haskell/hxt-unicode/default.nix
index fbe402cea5fd..55017c4193ea 100644
--- a/pkgs/development/libraries/haskell/hxt-unicode/default.nix
+++ b/pkgs/development/libraries/haskell/hxt-unicode/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hxt-unicode";
-  version = "9.0.2.1";
-  sha256 = "1ng3qaiwkaav1kmf0yxkm44887xphbx6slva3fskzx0sgkd1v0vp";
+  version = "9.0.2.2";
+  sha256 = "1iljbk7f7d4wkl592bp0vw807683sqdxfnigindkrvr9p1xvwg8r";
   buildDepends = [ hxtCharproperties ];
   meta = {
     homepage = "http://www.fh-wedel.de/~si/HXmlToolbox/index.html";
diff --git a/pkgs/development/libraries/haskell/hxt-xpath/default.nix b/pkgs/development/libraries/haskell/hxt-xpath/default.nix
new file mode 100644
index 000000000000..73e350bd77b1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hxt-xpath/default.nix
@@ -0,0 +1,14 @@
+{ cabal, filepath, hxt, parsec }:
+
+cabal.mkDerivation (self: {
+  pname = "hxt-xpath";
+  version = "9.1.2.1";
+  sha256 = "0r9xzxwdqaj0arz9pv6f272dz73m83agbln9q9bclmgqys6l0kr9";
+  buildDepends = [ filepath hxt parsec ];
+  meta = {
+    homepage = "http://www.fh-wedel.de/~si/HXmlToolbox/index.html";
+    description = "The XPath modules for HXT";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hxt/default.nix b/pkgs/development/libraries/haskell/hxt/default.nix
index 820a6549d348..440be70a60bd 100644
--- a/pkgs/development/libraries/haskell/hxt/default.nix
+++ b/pkgs/development/libraries/haskell/hxt/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hxt";
-  version = "9.3.1.3";
-  sha256 = "1ynca1d0wzql3vny9wxi47bim64h1l56gdamwkfhh4snajqkamwd";
+  version = "9.3.1.4";
+  sha256 = "0klngcnq5rdhpwim2znzcljhqw8k3x7c91bgb16g008zp3lay1rf";
   buildDepends = [
     binary deepseq filepath HUnit hxtCharproperties hxtRegexXmlschema
     hxtUnicode mtl network parsec
diff --git a/pkgs/development/libraries/haskell/hybrid-vectors/default.nix b/pkgs/development/libraries/haskell/hybrid-vectors/default.nix
index 56fd36fbe87d..0ad23b694373 100644
--- a/pkgs/development/libraries/haskell/hybrid-vectors/default.nix
+++ b/pkgs/development/libraries/haskell/hybrid-vectors/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hybrid-vectors";
-  version = "0.1";
-  sha256 = "0a5ry6xmkr0zjz0kp7qbm7kdz5yr9842gy116902djppmdn5dq05";
+  version = "0.1.2";
+  sha256 = "1scx1xr9rqdpxc1kj5zgf8w1ld1mj68hxr3nl1p352wspvpgd3qf";
   buildDepends = [ deepseq primitive vector ];
   meta = {
     homepage = "http://github.com/ekmett/hybrid-vectors";
diff --git a/pkgs/development/libraries/haskell/intervals/default.nix b/pkgs/development/libraries/haskell/intervals/default.nix
index b48aa8884ad4..73e1d2d71971 100644
--- a/pkgs/development/libraries/haskell/intervals/default.nix
+++ b/pkgs/development/libraries/haskell/intervals/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "intervals";
-  version = "0.4.1";
-  sha256 = "09pgy400r47lsa9w5g5dxydshw7lv9i4yv65ld1arssx3n59wyvl";
+  version = "0.7";
+  sha256 = "00kwq57x72xi5kca7symb98nzs1j82r6bkgvr83aqpvq0ql9ka9d";
   buildDepends = [ distributive ];
   testDepends = [ doctest filepath ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/ipprint/default.nix b/pkgs/development/libraries/haskell/ipprint/default.nix
new file mode 100644
index 000000000000..e648ae19c3dc
--- /dev/null
+++ b/pkgs/development/libraries/haskell/ipprint/default.nix
@@ -0,0 +1,13 @@
+{ cabal, Extra, haskellSrc }:
+
+cabal.mkDerivation (self: {
+  pname = "ipprint";
+  version = "0.5";
+  sha256 = "0h75k21blbnzvp5l20qsima557dx6zfrww79y7qsqf04pbd81j7s";
+  buildDepends = [ Extra haskellSrc ];
+  meta = {
+    description = "Tiny helper for pretty-printing values in ghci console";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/json-assertions/default.nix b/pkgs/development/libraries/haskell/json-assertions/default.nix
index 8797ca90029c..027cf20064e4 100644
--- a/pkgs/development/libraries/haskell/json-assertions/default.nix
+++ b/pkgs/development/libraries/haskell/json-assertions/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "json-assertions";
-  version = "1.0.1";
-  sha256 = "0rpj300knyk602wqkqipmy54xv3pn20cd06sa8irkf2wz0xribzm";
+  version = "1.0.2";
+  sha256 = "0ppj1xxbi0yrmv6vkmwkz91vvwzjd0ixj60432liwmd6h13apky0";
   buildDepends = [ aeson indexed indexedFree lens text ];
   meta = {
     homepage = "http://github.com/ocharles/json-assertions.git";
diff --git a/pkgs/development/libraries/haskell/language-c-inline/default.nix b/pkgs/development/libraries/haskell/language-c-inline/default.nix
new file mode 100644
index 000000000000..58c3e37c853f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/language-c-inline/default.nix
@@ -0,0 +1,16 @@
+{ cabal, filepath, languageCQuote, mainlandPretty }:
+
+cabal.mkDerivation (self: {
+  pname = "language-c-inline";
+  version = "0.3.0.1";
+  sha256 = "0dw1fqwg9hhwgvak0ykhafbxp4gnb2ww9lc83m8kzkyzn1ccb6hg";
+  buildDepends = [ filepath languageCQuote mainlandPretty ];
+  testDepends = [ languageCQuote ];
+  doCheck = false;
+  meta = {
+    homepage = "https://github.com/mchakravarty/language-c-inline/";
+    description = "Inline C & Objective-C code in Haskell for language interoperability";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/language-c-quote/default.nix b/pkgs/development/libraries/haskell/language-c-quote/default.nix
index 94eb72633de3..3f4ec1e54d82 100644
--- a/pkgs/development/libraries/haskell/language-c-quote/default.nix
+++ b/pkgs/development/libraries/haskell/language-c-quote/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "language-c-quote";
-  version = "0.7.6";
-  sha256 = "15sfasbrr9wzqkwv9xg9nvb3gnn4drkll3b3cappiyzkmawp2hkr";
+  version = "0.7.7";
+  sha256 = "0rj508hfv9xf30rfjhalz3yfb15vp4r4acdj8aahwfnbls2qb37v";
   buildDepends = [
     exceptionMtl exceptionTransformers filepath haskellSrcMeta
     mainlandPretty mtl srcloc syb symbol
diff --git a/pkgs/development/libraries/haskell/language-c/default.nix b/pkgs/development/libraries/haskell/language-c/default.nix
index 5b638ea9dab4..188ca99a5be9 100644
--- a/pkgs/development/libraries/haskell/language-c/default.nix
+++ b/pkgs/development/libraries/haskell/language-c/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "language-c";
-  version = "0.4.2";
-  sha256 = "07pf4v4n7kvr5inkhs24b7g55pmkk4k5ihi6s5dbc200l01wz133";
+  version = "0.4.4";
+  sha256 = "0pfadijrcfvxvdrwk8n54pqvpmi4qa5w7s0l9shxbkvpj0dmnp50";
   buildDepends = [ filepath syb ];
   buildTools = [ alex happy ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/language-ecmascript/default.nix b/pkgs/development/libraries/haskell/language-ecmascript/default.nix
index 77165ef104d1..1a53881fd29e 100644
--- a/pkgs/development/libraries/haskell/language-ecmascript/default.nix
+++ b/pkgs/development/libraries/haskell/language-ecmascript/default.nix
@@ -1,14 +1,15 @@
 { cabal, dataDefaultClass, Diff, filepath, HUnit, mtl, parsec
 , QuickCheck, testFramework, testFrameworkHunit
-, testFrameworkQuickcheck2, uniplate, wlPprint
+, testFrameworkQuickcheck2, testingFeat, uniplate, wlPprint
 }:
 
 cabal.mkDerivation (self: {
   pname = "language-ecmascript";
-  version = "0.15.4";
-  sha256 = "1drivy75lvrwjx7irdbnnqp7y6mbzbm2pbxy7zzc1nfln6g3k9x7";
+  version = "0.16.1";
+  sha256 = "0pqb1r60jjmiwk9giaxnrp9a07h4a97kp6g0nznwpdy32x849gx3";
   buildDepends = [
-    dataDefaultClass Diff mtl parsec QuickCheck uniplate wlPprint
+    dataDefaultClass Diff mtl parsec QuickCheck testingFeat uniplate
+    wlPprint
   ];
   testDepends = [
     dataDefaultClass Diff filepath HUnit mtl parsec QuickCheck
diff --git a/pkgs/development/libraries/haskell/language-javascript/default.nix b/pkgs/development/libraries/haskell/language-javascript/default.nix
index d2cc342c4774..647c3be498d0 100644
--- a/pkgs/development/libraries/haskell/language-javascript/default.nix
+++ b/pkgs/development/libraries/haskell/language-javascript/default.nix
@@ -1,17 +1,17 @@
-{ cabal, blazeBuilder, Cabal, happy, HUnit, mtl, QuickCheck
+{ cabal, alex, blazeBuilder, Cabal, happy, HUnit, mtl, QuickCheck
 , testFramework, testFrameworkHunit, utf8Light, utf8String
 }:
 
 cabal.mkDerivation (self: {
   pname = "language-javascript";
-  version = "0.5.9";
-  sha256 = "1m1fs2vaw3yn9ryd49aprxc5l10xkr86mlxxf5bk6qp51wnp9xqh";
-  buildDepends = [ blazeBuilder mtl utf8Light utf8String ];
+  version = "0.5.12";
+  sha256 = "1zzgjxqgfl6k2z4cwh0961ipfc5fminfdg2162g45h2nrv63mq05";
+  buildDepends = [ blazeBuilder mtl utf8String ];
   testDepends = [
     blazeBuilder Cabal HUnit mtl QuickCheck testFramework
     testFrameworkHunit utf8Light utf8String
   ];
-  buildTools = [ happy ];
+  buildTools = [ alex happy ];
   meta = {
     homepage = "http://github.com/alanz/language-javascript";
     description = "Parser for JavaScript";
diff --git a/pkgs/development/libraries/haskell/lens-aeson/default.nix b/pkgs/development/libraries/haskell/lens-aeson/default.nix
deleted file mode 100644
index 7ea890a5eb35..000000000000
--- a/pkgs/development/libraries/haskell/lens-aeson/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ cabal, aeson, attoparsec, doctest, filepath, genericDeriving
-, lens, semigroups, simpleReflect, text, unorderedContainers
-, utf8String, vector
-}:
-
-cabal.mkDerivation (self: {
-  pname = "lens-aeson";
-  version = "0.1.2";
-  sha256 = "1h0w8p227r8gzvgqjl210i0z7xxv3435vwyi3j7vkm7a05cdk03l";
-  buildDepends = [
-    aeson attoparsec lens text unorderedContainers utf8String 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;
-    maintainers = [ self.stdenv.lib.maintainers.ocharles ];
-  };
-})
diff --git a/pkgs/development/libraries/haskell/lens-datetime/default.nix b/pkgs/development/libraries/haskell/lens-datetime/default.nix
index 2de451f4177f..72781f39cdbc 100644
--- a/pkgs/development/libraries/haskell/lens-datetime/default.nix
+++ b/pkgs/development/libraries/haskell/lens-datetime/default.nix
@@ -2,11 +2,11 @@
 
 cabal.mkDerivation (self: {
   pname = "lens-datetime";
-  version = "0.2";
-  sha256 = "0wrs7alz1zfg1xrg04lhz01mrd1gcz2xr8b5mxfdvq94f5m87sdr";
+  version = "0.2.1";
+  sha256 = "1wqks7ynw3njlizdd9hvgrc1xjxcgcfck9ppj1lgg8wr3l2myi72";
   buildDepends = [ lens time ];
   meta = {
-    homepage = "http://github.com/klao/lens-datetime";
+    homepage = "http://github.com/nilcons/lens-datetime";
     description = "Lenses for Data.Time.* types";
     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 7c347f69ce4c..1c1fe9b7cd39 100644
--- a/pkgs/development/libraries/haskell/lens/default.nix
+++ b/pkgs/development/libraries/haskell/lens/default.nix
@@ -1,5 +1,5 @@
-{ cabal, aeson, bifunctors, comonad, constraints, contravariant
-, deepseq, distributive, doctest, exceptions, filepath
+{ cabal, aeson, 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
@@ -10,11 +10,11 @@
 
 cabal.mkDerivation (self: {
   pname = "lens";
-  version = "4.0.5";
-  sha256 = "1kjmi76zpkhkwn514inhpfhfh3pg5na1f2zw1faqnk3bylpp9h6g";
+  version = "4.1.2";
+  sha256 = "0jpr78bn7bh5v11vw21hjwzmwpzl1zgyq9l3yk3k711vz6689dg2";
   buildDepends = [
-    aeson bifunctors comonad constraints contravariant distributive
-    exceptions filepath hashable mtl parallel primitive profunctors
+    aeson bifunctors comonad contravariant distributive exceptions
+    filepath free hashable mtl parallel primitive profunctors
     reflection scientific semigroupoids semigroups split tagged text
     transformers transformersCompat unorderedContainers utf8String
     vector void zlib
diff --git a/pkgs/development/libraries/haskell/libjenkins/default.nix b/pkgs/development/libraries/haskell/libjenkins/default.nix
index 722e280c6e54..67f0b698d47b 100644
--- a/pkgs/development/libraries/haskell/libjenkins/default.nix
+++ b/pkgs/development/libraries/haskell/libjenkins/default.nix
@@ -7,6 +7,7 @@ cabal.mkDerivation (self: {
   pname = "libjenkins";
   version = "0.4.2.0";
   sha256 = "11013klk2gvcaf2d2gmi0bf3jg2m82li19szqlwb325kdjmdf546";
+  patches = [ ./new-conduit.patch ];
   buildDepends = [
     async conduit free httpClient httpConduit httpTypes lens
     monadControl network text transformers xmlConduit
@@ -17,6 +18,7 @@ cabal.mkDerivation (self: {
     transformers xmlConduit
   ];
   doCheck = false;
+  jailbreak = true;
   meta = {
     description = "Jenkins API interface";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/libjenkins/new-conduit.patch b/pkgs/development/libraries/haskell/libjenkins/new-conduit.patch
new file mode 100644
index 000000000000..fda68fde5f92
--- /dev/null
+++ b/pkgs/development/libraries/haskell/libjenkins/new-conduit.patch
@@ -0,0 +1,23 @@
+diff -Naur libjenkins-0.4.2.0-orig/libjenkins.cabal libjenkins-0.4.2.0/libjenkins.cabal
+--- libjenkins-0.4.2.0-orig/libjenkins.cabal	2014-02-17 13:11:22.000000000 -0500
++++ libjenkins-0.4.2.0/libjenkins.cabal	2014-04-07 11:40:30.046473593 -0400
+@@ -52,6 +52,7 @@
+     , text          >= 0.11
+     , transformers  >= 0.3
+     , xml-conduit   >= 1.1
++    , resourcet
+ 
+ test-suite doctest
+   default-language:  Haskell2010
+diff -Naur libjenkins-0.4.2.0-orig/src/Jenkins/Rest/Internal.hs libjenkins-0.4.2.0/src/Jenkins/Rest/Internal.hs
+--- libjenkins-0.4.2.0-orig/src/Jenkins/Rest/Internal.hs	2014-02-17 13:11:22.000000000 -0500
++++ libjenkins-0.4.2.0/src/Jenkins/Rest/Internal.hs	2014-04-07 11:40:02.221415450 -0400
+@@ -22,7 +22,7 @@
+ import           Control.Monad.Trans.Reader (ReaderT, runReaderT, ask, local)
+ import           Control.Monad.Trans.Maybe (MaybeT(..), mapMaybeT)
+ import           Data.ByteString.Lazy (ByteString)
+-import           Data.Conduit (ResourceT)
++import           Control.Monad.Trans.Resource (ResourceT)
+ import           Data.Data (Data, Typeable)
+ import           Data.Text (Text)
+ import qualified Data.Text.Encoding as Text
diff --git a/pkgs/development/libraries/haskell/libsystemd-journal/default.nix b/pkgs/development/libraries/haskell/libsystemd-journal/default.nix
new file mode 100644
index 000000000000..b30b0714d1fd
--- /dev/null
+++ b/pkgs/development/libraries/haskell/libsystemd-journal/default.nix
@@ -0,0 +1,21 @@
+{ cabal, hashable, hsyslog, pipes, pipesSafe, systemd-journal, text
+, transformers, uniplate, unixBytestring, unorderedContainers, uuid
+, vector
+}:
+
+cabal.mkDerivation (self: {
+  pname = "libsystemd-journal";
+  version = "1.1.0";
+  sha256 = "0zdql5y40d0d044mwbsr3xxmfzgnnp02a36wbbslxmrm5c3w1qi2";
+  buildDepends = [
+    hashable hsyslog pipes pipesSafe text transformers uniplate
+    unixBytestring unorderedContainers uuid vector
+  ];
+  extraLibraries = [ systemd-journal ];
+  meta = {
+    homepage = "http://github.com/ocharles/libsystemd-journal";
+    description = "Haskell bindings to libsystemd-journal";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/linear/default.nix b/pkgs/development/libraries/haskell/linear/default.nix
index b57879085bfa..1abc63c8c4b7 100644
--- a/pkgs/development/libraries/haskell/linear/default.nix
+++ b/pkgs/development/libraries/haskell/linear/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "linear";
-  version = "1.9.0.1";
-  sha256 = "1ibdv1915rqz6dp8qg1nipnwwk345n4c5n51i8nn1h7p7jp53hhs";
+  version = "1.10";
+  sha256 = "1wl0hb58znc3n5f5jv0wm6g21p080zldlq954n0lm8sjwmv39cdx";
   buildDepends = [
     adjunctions binary distributive hashable lens reflection
     semigroupoids semigroups tagged transformers unorderedContainers
diff --git a/pkgs/development/libraries/haskell/list-tries/default.nix b/pkgs/development/libraries/haskell/list-tries/default.nix
index 4eb91c67a476..a7d2a963e0de 100644
--- a/pkgs/development/libraries/haskell/list-tries/default.nix
+++ b/pkgs/development/libraries/haskell/list-tries/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "list-tries";
-  version = "0.5.1";
-  sha256 = "15lbq41rikj5vm9gfgjxz98pamnib4dcs48fr2vm9r3s3fikd2kz";
+  version = "0.5.2";
+  sha256 = "0lfl35i1k3nnv8q6bhwq4sr197fylin2hmxa4b96kfcc22xfzwy6";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ binary dlist ];
diff --git a/pkgs/development/libraries/haskell/llvm-general-pure/3.4.1.0.nix b/pkgs/development/libraries/haskell/llvm-general-pure/3.4.2.2.nix
index 200d8d00b446..bfa0ed43d0e2 100644
--- a/pkgs/development/libraries/haskell/llvm-general-pure/3.4.1.0.nix
+++ b/pkgs/development/libraries/haskell/llvm-general-pure/3.4.2.2.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "llvm-general-pure";
-  version = "3.4.1.0";
-  sha256 = "0cjzqw9k6x8akbgx4rdigvhjhfv9zlq40p789invdc514qmxhr6q";
+  version = "3.4.2.2";
+  sha256 = "0grbw0lamp0w4jzxg97jccl3jqdgqfgldpb4llvhr1l70591b0s8";
   buildDepends = [ mtl parsec setenv transformers ];
   testDepends = [
     HUnit mtl QuickCheck testFramework testFrameworkHunit
diff --git a/pkgs/development/libraries/haskell/llvm-general/3.4.1.0.nix b/pkgs/development/libraries/haskell/llvm-general/3.4.2.2.nix
index b86a65618cd2..43a346ebf191 100644
--- a/pkgs/development/libraries/haskell/llvm-general/3.4.1.0.nix
+++ b/pkgs/development/libraries/haskell/llvm-general/3.4.2.2.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "llvm-general";
-  version = "3.4.1.0";
-  sha256 = "0vh0bqkkahafhiv1sqvrncxswvz4rvb2zfwf33936fnnh5vn8vyp";
+  version = "3.4.2.2";
+  sha256 = "1dqdvv8pslblavyi14xy0bgrr1ca8d1jqp60x16zgbzkk3f2jx6a";
   buildDepends = [
     llvmGeneralPure mtl parsec setenv transformers utf8String
   ];
diff --git a/pkgs/development/libraries/haskell/logging/default.nix b/pkgs/development/libraries/haskell/logging/default.nix
new file mode 100644
index 000000000000..7cfcf1479572
--- /dev/null
+++ b/pkgs/development/libraries/haskell/logging/default.nix
@@ -0,0 +1,19 @@
+{ cabal, binary, fastLogger, hspec, liftedBase, monadControl
+, monadLogger, pcreLight, text, time, transformers, vectorSpace
+}:
+
+cabal.mkDerivation (self: {
+  pname = "logging";
+  version = "1.4.0";
+  sha256 = "0xkk6j9wa5n0qg0wp7a9bwaz328hrjk1fwanpa515hh3gvz62g94";
+  buildDepends = [
+    binary fastLogger liftedBase monadControl monadLogger pcreLight
+    text time transformers vectorSpace
+  ];
+  testDepends = [ hspec monadLogger ];
+  meta = {
+    description = "Simplified logging in IO for application writers";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/ltk/default.nix b/pkgs/development/libraries/haskell/ltk/default.nix
index 7960395eb098..df1e4be218f0 100644
--- a/pkgs/development/libraries/haskell/ltk/default.nix
+++ b/pkgs/development/libraries/haskell/ltk/default.nix
@@ -1,10 +1,12 @@
-{ cabal, Cabal, filepath, glib, gtk, mtl, parsec, transformers }:
+{ cabal, Cabal, filepath, glib, gtk3, mtl, parsec, transformers }:
 
 cabal.mkDerivation (self: {
   pname = "ltk";
-  version = "0.12.1.0";
-  sha256 = "12x6nba5bll8fgzpxii1cf87j27jk4mn5gf1bx4ahd9v30h1a0h6";
-  buildDepends = [ Cabal filepath glib gtk mtl parsec transformers ];
+  version = "0.13.1.0";
+  sha256 = "09ryyzjd3iazwiw714hsny2b9f4b1cfhyzc11k5xzin5kh5d804a";
+  buildDepends = [
+    Cabal filepath glib gtk3 mtl parsec transformers
+  ];
   meta = {
     homepage = "http://www.leksah.org";
     description = "Leksah tool kit";
diff --git a/pkgs/development/libraries/haskell/lzma-enumerator/default.nix b/pkgs/development/libraries/haskell/lzma-enumerator/default.nix
new file mode 100644
index 000000000000..f931262a91e3
--- /dev/null
+++ b/pkgs/development/libraries/haskell/lzma-enumerator/default.nix
@@ -0,0 +1,22 @@
+{ cabal, bindingsDSL, enumerator, HUnit, lzma, mtl, QuickCheck
+, testFramework, testFrameworkHunit, testFrameworkQuickcheck2
+}:
+
+cabal.mkDerivation (self: {
+  pname = "lzma-enumerator";
+  version = "0.1.3";
+  sha256 = "0pzz8bf6310p23pmsa013i8vib0xsfvlkj7zp0w9xs2xsi4j7jk1";
+  buildDepends = [ bindingsDSL enumerator mtl ];
+  testDepends = [
+    enumerator HUnit QuickCheck testFramework testFrameworkHunit
+    testFrameworkQuickcheck2
+  ];
+  extraLibraries = [ lzma ];
+  jailbreak = true;
+  meta = {
+    homepage = "http://github.com/alphaHeavy/lzma-enumerator";
+    description = "Enumerator interface for lzma/xz compression";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/math-functions/default.nix b/pkgs/development/libraries/haskell/math-functions/default.nix
index 7faca58fd855..b14449626c87 100644
--- a/pkgs/development/libraries/haskell/math-functions/default.nix
+++ b/pkgs/development/libraries/haskell/math-functions/default.nix
@@ -12,6 +12,7 @@ cabal.mkDerivation (self: {
     HUnit ieee754 QuickCheck testFramework testFrameworkHunit
     testFrameworkQuickcheck2 vector
   ];
+  doCheck = false;
   meta = {
     homepage = "https://github.com/bos/math-functions";
     description = "Special functions and Chebyshev polynomials";
diff --git a/pkgs/development/libraries/haskell/midi/default.nix b/pkgs/development/libraries/haskell/midi/default.nix
index e50843c6ff23..9467b567f829 100644
--- a/pkgs/development/libraries/haskell/midi/default.nix
+++ b/pkgs/development/libraries/haskell/midi/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "midi";
-  version = "0.2.1";
-  sha256 = "0i767y0835979s9i3wm8qwzh2awhhmfvhc5zvq2lkn8xlsp3wa6y";
+  version = "0.2.1.1";
+  sha256 = "11h4kr9a1jia1ghcyzgavcznw4771l00z736iibjpagw0b8fpip5";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/mime-mail/default.nix b/pkgs/development/libraries/haskell/mime-mail/default.nix
index fe8a9a35176f..80fc8e1b4af9 100644
--- a/pkgs/development/libraries/haskell/mime-mail/default.nix
+++ b/pkgs/development/libraries/haskell/mime-mail/default.nix
@@ -1,15 +1,16 @@
 { cabal, base64Bytestring, blazeBuilder, filepath, hspec, random
-, text
+, sendmail ? "sendmail", text
 }:
 
 cabal.mkDerivation (self: {
   pname = "mime-mail";
-  version = "0.4.4.1";
-  sha256 = "0jzbkrd62alvgyx9bkrzicz88hjjnnavpv6hl22cxnirz41h8hw0";
+  version = "0.4.5.1";
+  sha256 = "01r6dxdp3183ahggda6dizdz1c3qpmpyxn6csalzvss52ds4ilsf";
   buildDepends = [
     base64Bytestring blazeBuilder filepath random text
   ];
   testDepends = [ blazeBuilder hspec text ];
+  configureFlags = "--ghc-option=-DMIME_MAIL_SENDMAIL_PATH=\"${sendmail}\"";
   meta = {
     homepage = "http://github.com/snoyberg/mime-mail";
     description = "Compose MIME email messages";
diff --git a/pkgs/development/libraries/haskell/mime-types/default.nix b/pkgs/development/libraries/haskell/mime-types/default.nix
index 5dd5f65c9e74..50c25ada340f 100644
--- a/pkgs/development/libraries/haskell/mime-types/default.nix
+++ b/pkgs/development/libraries/haskell/mime-types/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "mime-types";
-  version = "0.1.0.3";
-  sha256 = "0mzhkqcjlnrs9mwn2crsr1m2mf6pgygs1s3ks8akz1618v6jm6y1";
+  version = "0.1.0.4";
+  sha256 = "0bxhkwz8p7mhg5kspbpc5zm4k50pc0r5pzjr6807y88x8vjpvj2x";
   buildDepends = [ text ];
   meta = {
     homepage = "https://github.com/yesodweb/wai";
diff --git a/pkgs/development/libraries/haskell/missing-foreign/default.nix b/pkgs/development/libraries/haskell/missing-foreign/default.nix
new file mode 100644
index 000000000000..9ffbc37468a7
--- /dev/null
+++ b/pkgs/development/libraries/haskell/missing-foreign/default.nix
@@ -0,0 +1,12 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "missing-foreign";
+  version = "0.1.1";
+  sha256 = "11f8pknbarlj956nmalqhd2v704z7d7xbi61hs1q8vb2p36kc6wy";
+  meta = {
+    description = "Convenience functions for FFI work";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/monad-extras/default.nix b/pkgs/development/libraries/haskell/monad-extras/default.nix
new file mode 100644
index 000000000000..9a66c5ab983d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/monad-extras/default.nix
@@ -0,0 +1,17 @@
+{ cabal, mmorph, monadControl, stm, transformers, transformersBase
+}:
+
+cabal.mkDerivation (self: {
+  pname = "monad-extras";
+  version = "0.5.7";
+  sha256 = "0dqj3n3ki679b6z5y7qw084chbahlqmj2vgj7yx0v552bl0ylzyj";
+  buildDepends = [
+    mmorph monadControl stm transformers transformersBase
+  ];
+  meta = {
+    homepage = "http://github.com/jwiegley/monad-extras";
+    description = "Extra utility functions for working with monads";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/monad-logger/default.nix b/pkgs/development/libraries/haskell/monad-logger/default.nix
index a66ad0faf01f..5468f4127fc4 100644
--- a/pkgs/development/libraries/haskell/monad-logger/default.nix
+++ b/pkgs/development/libraries/haskell/monad-logger/default.nix
@@ -1,15 +1,16 @@
-{ cabal, blazeBuilder, conduit, fastLogger, liftedBase
-, monadControl, monadLoops, mtl, resourcet, stm, stmChans, text
-, transformers, transformersBase
+{ cabal, blazeBuilder, conduit, conduitExtra, exceptions
+, fastLogger, liftedBase, monadControl, monadLoops, mtl, resourcet
+, stm, stmChans, text, transformers, transformersBase
 }:
 
 cabal.mkDerivation (self: {
   pname = "monad-logger";
-  version = "0.3.4.0";
-  sha256 = "16nrzms87klbs26rbaw4j8xal5k7glpbhg7r2x1m3gxbdhsp696n";
+  version = "0.3.6";
+  sha256 = "0a3dbk3c1jv8zbxrb5vzf5ypwwzkamxd35rm8pjn13aqcnnznniq";
   buildDepends = [
-    blazeBuilder conduit fastLogger liftedBase monadControl monadLoops
-    mtl resourcet stm stmChans text transformers transformersBase
+    blazeBuilder conduit conduitExtra exceptions fastLogger liftedBase
+    monadControl monadLoops mtl resourcet stm stmChans text
+    transformers transformersBase
   ];
   meta = {
     homepage = "https://github.com/kazu-yamamoto/logger";
diff --git a/pkgs/development/libraries/haskell/monadloc/default.nix b/pkgs/development/libraries/haskell/monadloc/default.nix
new file mode 100644
index 000000000000..9ff7383565e1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/monadloc/default.nix
@@ -0,0 +1,14 @@
+{ cabal, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "monadloc";
+  version = "0.7.1";
+  sha256 = "1a773nysrsj61ka7bdacb0i7dxlgb1fjz3x5w9c1w1dv7rmhynmj";
+  buildDepends = [ transformers ];
+  meta = {
+    homepage = "http://github.com/pepeiborra/monadloc";
+    description = "A class for monads which can keep a monadic call trace";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/mono-traversable/default.nix b/pkgs/development/libraries/haskell/mono-traversable/default.nix
index 5119863500dd..113a4b67b414 100644
--- a/pkgs/development/libraries/haskell/mono-traversable/default.nix
+++ b/pkgs/development/libraries/haskell/mono-traversable/default.nix
@@ -1,15 +1,16 @@
-{ cabal, comonad, foldl, hashable, hspec, QuickCheck, semigroupoids
-, semigroups, text, transformers, unorderedContainers, vector
-, vectorAlgorithms, vectorInstances
+{ cabal, comonad, dlist, dlistInstances, foldl, hashable, hspec
+, QuickCheck, semigroupoids, semigroups, text, transformers
+, unorderedContainers, vector, vectorAlgorithms, vectorInstances
 }:
 
 cabal.mkDerivation (self: {
   pname = "mono-traversable";
-  version = "0.4.0.1";
-  sha256 = "049skbjwz49c9qz2nys2hn6pc4gqn1a91b5kl9z6hjs9fnaic6ng";
+  version = "0.4.0.4";
+  sha256 = "1ikrdhr4f3755xim6j9db60a9y0mpdnljmck84qh47yk2axfp0n9";
   buildDepends = [
-    comonad hashable semigroupoids semigroups text transformers
-    unorderedContainers vector vectorAlgorithms vectorInstances
+    comonad dlist dlistInstances hashable semigroupoids semigroups text
+    transformers unorderedContainers vector vectorAlgorithms
+    vectorInstances
   ];
   testDepends = [
     foldl hspec QuickCheck semigroups text transformers
diff --git a/pkgs/development/libraries/haskell/monoid-extras/default.nix b/pkgs/development/libraries/haskell/monoid-extras/default.nix
index 17df8cbeecc2..b9987255c0f3 100644
--- a/pkgs/development/libraries/haskell/monoid-extras/default.nix
+++ b/pkgs/development/libraries/haskell/monoid-extras/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "monoid-extras";
-  version = "0.3.3.1";
-  sha256 = "1176sazk10vapia1qvcm2rxckn2vxfav21277rsgf11hvn3lzznc";
+  version = "0.3.3.2";
+  sha256 = "0v4xir47ki83f9w2rii06w3jwrvqljnbiivgh6k8jxl0bdfslh11";
   buildDepends = [ groups semigroupoids semigroups ];
   jailbreak = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/mtl/2.1.3.1.nix b/pkgs/development/libraries/haskell/mtl/2.1.3.1.nix
new file mode 100644
index 000000000000..e9fa49510c18
--- /dev/null
+++ b/pkgs/development/libraries/haskell/mtl/2.1.3.1.nix
@@ -0,0 +1,15 @@
+{ cabal, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "mtl";
+  version = "2.1.3.1";
+  sha256 = "1xpn2wjmqbh2cg1yssc6749xpgcqlrrg4iilwqgkcjgvaxlpdbvp";
+  buildDepends = [ transformers ];
+  meta = {
+    homepage = "http://github.com/ekmett/mtl";
+    description = "Monad classes, using functional dependencies";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/network-conduit-tls/default.nix b/pkgs/development/libraries/haskell/network-conduit-tls/default.nix
index 4884a462a6d4..e4c5bb7ab6b1 100644
--- a/pkgs/development/libraries/haskell/network-conduit-tls/default.nix
+++ b/pkgs/development/libraries/haskell/network-conduit-tls/default.nix
@@ -1,17 +1,18 @@
-{ cabal, conduit, connection, cprngAes, dataDefault, HUnit
-, monadControl, mtl, network, networkConduit, systemFileio
+{ cabal, conduit, conduitExtra, connection, cprngAes, dataDefault
+, HUnit, monadControl, mtl, network, streamingCommons, systemFileio
 , systemFilepath, tls, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "network-conduit-tls";
-  version = "1.0.4.2";
-  sha256 = "1pgb6k6g10hy2k4sihj88n6w7400d4grja2crhhv1cydqdn858rc";
+  version = "1.1.0";
+  sha256 = "1q9wx7bvr4a65rkyfn2vd3h9bfpsvm9zcqqjhjsrgb91l6x5bdqi";
   buildDepends = [
-    conduit connection cprngAes dataDefault monadControl network
-    networkConduit systemFileio systemFilepath tls transformers
+    conduit conduitExtra connection cprngAes dataDefault monadControl
+    network streamingCommons systemFileio systemFilepath tls
+    transformers
   ];
-  testDepends = [ conduit connection HUnit mtl networkConduit ];
+  testDepends = [ conduit conduitExtra connection HUnit mtl ];
   meta = {
     homepage = "https://github.com/snoyberg/conduit";
     description = "Create TLS-aware network code with conduits";
diff --git a/pkgs/development/libraries/haskell/network-conduit/default.nix b/pkgs/development/libraries/haskell/network-conduit/default.nix
index c2f00b68f8f1..1f252c03660d 100644
--- a/pkgs/development/libraries/haskell/network-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/network-conduit/default.nix
@@ -1,17 +1,14 @@
-{ cabal, conduit, liftedBase, monadControl, network, transformers
-}:
+{ cabal, conduit }:
 
 cabal.mkDerivation (self: {
   pname = "network-conduit";
-  version = "1.0.4";
-  sha256 = "1a7p3gs0rczx0rhz27410rr6fzy3l0nsj6kk5wi0nqvqfyh7jb9c";
-  buildDepends = [
-    conduit liftedBase monadControl network transformers
-  ];
-  testDepends = [ conduit ];
+  version = "1.1.0";
+  sha256 = "06amxl8rg4zfnmgc1iyq5mxy9qihcqddqgqkbfvaf25mwr43992p";
+  buildDepends = [ conduit ];
+  noHaddock = true;
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
-    description = "Stream socket data using conduits";
+    description = "Stream socket data using conduits. (deprecated)";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
     maintainers = [ self.stdenv.lib.maintainers.andres ];
diff --git a/pkgs/development/libraries/haskell/network-simple/default.nix b/pkgs/development/libraries/haskell/network-simple/default.nix
index 72d8c8af8c89..cde31643c719 100644
--- a/pkgs/development/libraries/haskell/network-simple/default.nix
+++ b/pkgs/development/libraries/haskell/network-simple/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "network-simple";
-  version = "0.3.0";
-  sha256 = "046nbgdwazbqffcim1gxry1mf35yg41g52zdk86h9whhiwjzlywz";
+  version = "0.3.1";
+  sha256 = "0bk015d0np07887flah76vgrgrqaqj4x1sdxmghvazj8c78nkan8";
   buildDepends = [ exceptions network transformers ];
   meta = {
     homepage = "https://github.com/k0001/network-simple";
diff --git a/pkgs/development/libraries/haskell/numeric-prelude/default.nix b/pkgs/development/libraries/haskell/numeric-prelude/default.nix
index 9fb5d334a4d5..4fac81b01f93 100644
--- a/pkgs/development/libraries/haskell/numeric-prelude/default.nix
+++ b/pkgs/development/libraries/haskell/numeric-prelude/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "numeric-prelude";
-  version = "0.4.0.3";
-  sha256 = "0lgjnkvbz14cqsm5fjafl8g5mkclcdvpwa3kpz9radmg2x09rsnl";
+  version = "0.4.1";
+  sha256 = "1y1dg4bk811xmz3p23g8kjl6vxns3gs8qj671971c06nccfl1h5r";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/options/default.nix b/pkgs/development/libraries/haskell/options/default.nix
new file mode 100644
index 000000000000..3772a142a58d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/options/default.nix
@@ -0,0 +1,16 @@
+{ cabal, chell, chellQuickcheck, monadsTf, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "options";
+  version = "1.0";
+  sha256 = "0d40d6k1c8v2b0bgchgl54sk9wx28kysp8bjws8bwjcmmd57775f";
+  buildDepends = [ monadsTf transformers ];
+  testDepends = [ chell chellQuickcheck monadsTf transformers ];
+  doCheck = false;
+  meta = {
+    homepage = "https://john-millikin.com/software/haskell-options/";
+    description = "A powerful and easy-to-use command-line option parser";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/optparse-applicative/default.nix b/pkgs/development/libraries/haskell/optparse-applicative/default.nix
index 6f7ef601d61a..da681b324a71 100644
--- a/pkgs/development/libraries/haskell/optparse-applicative/default.nix
+++ b/pkgs/development/libraries/haskell/optparse-applicative/default.nix
@@ -1,14 +1,16 @@
-{ cabal, HUnit, testFramework, testFrameworkHunit
+{ cabal, ansiWlPprint, HUnit, QuickCheck, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2
 , testFrameworkThPrime, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "optparse-applicative";
-  version = "0.7.0.2";
-  sha256 = "1pq620236x8fch9nkq4g4vganbzksnwj8z1bb80c2mwvf6sbg5ci";
-  buildDepends = [ transformers ];
+  version = "0.8.0.1";
+  sha256 = "19k7jw9hrns5i8dr67jxadaqnj0cmn991hl00fwymg4awv34p1w3";
+  buildDepends = [ ansiWlPprint transformers ];
   testDepends = [
-    HUnit testFramework testFrameworkHunit testFrameworkThPrime
+    HUnit QuickCheck testFramework testFrameworkHunit
+    testFrameworkQuickcheck2 testFrameworkThPrime
   ];
   jailbreak = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/parsers/default.nix b/pkgs/development/libraries/haskell/parsers/0.10.3.nix
index 84e5619167ab..84e5619167ab 100644
--- a/pkgs/development/libraries/haskell/parsers/default.nix
+++ b/pkgs/development/libraries/haskell/parsers/0.10.3.nix
diff --git a/pkgs/development/libraries/haskell/parsers/0.11.nix b/pkgs/development/libraries/haskell/parsers/0.11.nix
new file mode 100644
index 000000000000..c5d91f167cc6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/parsers/0.11.nix
@@ -0,0 +1,19 @@
+{ cabal, attoparsec, charset, doctest, filepath, parsec, text
+, transformers, unorderedContainers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "parsers";
+  version = "0.11";
+  sha256 = "0k3xm9ww4q2wkjik4n4ww6ys79kl7xyzbhcb7xi81jz9py0xciqd";
+  buildDepends = [
+    attoparsec 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;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/persistent-mysql/default.nix b/pkgs/development/libraries/haskell/persistent-mysql/default.nix
new file mode 100644
index 000000000000..7ff8a9de430e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/persistent-mysql/default.nix
@@ -0,0 +1,19 @@
+{ cabal, aeson, blazeBuilder, conduit, monadControl, mysql
+, mysqlSimple, persistent, resourcet, text, transformers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "persistent-mysql";
+  version = "1.3.0.2";
+  sha256 = "0yv2f8zqypbp5swdpxmgnfmmfsr6lwhb27k0hl9bh7ya76anhvqy";
+  buildDepends = [
+    aeson blazeBuilder conduit monadControl mysql mysqlSimple
+    persistent resourcet text transformers
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/book/persistent";
+    description = "Backend for the persistent library using MySQL database server";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/persistent-postgresql/default.nix b/pkgs/development/libraries/haskell/persistent-postgresql/default.nix
index e529747e7a75..85b1a10b5ba0 100644
--- a/pkgs/development/libraries/haskell/persistent-postgresql/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-postgresql/default.nix
@@ -1,14 +1,15 @@
 { cabal, aeson, blazeBuilder, conduit, monadControl, persistent
-, postgresqlLibpq, postgresqlSimple, text, time, transformers
+, postgresqlLibpq, postgresqlSimple, resourcet, text, time
+, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "persistent-postgresql";
-  version = "1.3.0.3";
-  sha256 = "00frqpv7wbksbjl714nhrian45p61kggxhpin9hawbwn2siwsg2m";
+  version = "1.3.0.5";
+  sha256 = "0abk38jzc7k93wrzn3pq90xj0mqln4nqrgzmmy0d3p4gmbzmnnia";
   buildDepends = [
     aeson blazeBuilder conduit monadControl persistent postgresqlLibpq
-    postgresqlSimple text time transformers
+    postgresqlSimple resourcet text time transformers
   ];
   jailbreak = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/persistent-sqlite/default.nix b/pkgs/development/libraries/haskell/persistent-sqlite/default.nix
index 009aa3b62995..cb12d9cbe843 100644
--- a/pkgs/development/libraries/haskell/persistent-sqlite/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-sqlite/default.nix
@@ -1,15 +1,16 @@
 { cabal, aeson, conduit, monadControl, monadLogger, persistent
-, text, transformers
+, resourcet, text, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "persistent-sqlite";
-  version = "1.3.0.3";
-  sha256 = "0b7dp2hiza02rnnph44rd2vls06jipmixi32icbijmcqk83hfglq";
+  version = "1.3.0.5";
+  sha256 = "05b7byc4z7mhni90cj2aan63f599wv0511zqbsm6kbylk1zpyizb";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    aeson conduit monadControl monadLogger persistent text transformers
+    aeson conduit monadControl monadLogger persistent resourcet text
+    transformers
   ];
   meta = {
     homepage = "http://www.yesodweb.com/book/persistent";
diff --git a/pkgs/development/libraries/haskell/persistent-template/default.nix b/pkgs/development/libraries/haskell/persistent-template/default.nix
index 1340ceaaf957..994632c40e20 100644
--- a/pkgs/development/libraries/haskell/persistent-template/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-template/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "persistent-template";
-  version = "1.3.1.2";
-  sha256 = "1gdwwx55ihnqxgyw0wsx0pr4dcs2hdbp5xbnx6l1j03rn5x1sglq";
+  version = "1.3.1.3";
+  sha256 = "0q5ysv1r6p4mg79waq2g6ql11rap6znawkplddblpaa8lq9qalj6";
   buildDepends = [
     aeson monadControl monadLogger persistent text transformers
     unorderedContainers
diff --git a/pkgs/development/libraries/haskell/persistent/default.nix b/pkgs/development/libraries/haskell/persistent/default.nix
index 1a61e5f76a0a..b16c89dac709 100644
--- a/pkgs/development/libraries/haskell/persistent/default.nix
+++ b/pkgs/development/libraries/haskell/persistent/default.nix
@@ -1,17 +1,17 @@
 { cabal, aeson, attoparsec, base64Bytestring, blazeHtml
 , blazeMarkup, conduit, hspec, liftedBase, monadControl
-, monadLogger, pathPieces, poolConduit, resourcet, scientific
+, monadLogger, pathPieces, resourcePool, resourcet, scientific
 , silently, sqlite, text, time, transformers, transformersBase
 , unorderedContainers, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "persistent";
-  version = "1.3.0.3";
-  sha256 = "0p9h43wvm1l9va6s6p71y6r5ifgvbqz8ypc86pmzbphq6712jnsl";
+  version = "1.3.0.6";
+  sha256 = "0rj5yi8nziym9cb9c9vw6vdjflf2yfz02i39p6dsdy084f1ivpk8";
   buildDepends = [
     aeson attoparsec base64Bytestring blazeHtml blazeMarkup conduit
-    liftedBase monadControl monadLogger pathPieces poolConduit
+    liftedBase monadControl monadLogger pathPieces resourcePool
     resourcet scientific silently text time transformers
     transformersBase unorderedContainers vector
   ];
diff --git a/pkgs/development/libraries/haskell/pipes-attoparsec/default.nix b/pkgs/development/libraries/haskell/pipes-attoparsec/default.nix
index 7204286671e1..d886d17478ba 100644
--- a/pkgs/development/libraries/haskell/pipes-attoparsec/default.nix
+++ b/pkgs/development/libraries/haskell/pipes-attoparsec/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "pipes-attoparsec";
-  version = "0.4.0.1";
-  sha256 = "0f536x0l135b5pd14l6lri7kinwh2m4p7qw054lacw362y7004zf";
+  version = "0.5.0";
+  sha256 = "1xpqna850lxawx0m84lzaxwrwfw4vccr7jjf199ir7bmwwhqlr5h";
   buildDepends = [ attoparsec pipes pipesParse text transformers ];
   testDepends = [
     attoparsec HUnit mmorph pipes pipesParse tasty tastyHunit text
diff --git a/pkgs/development/libraries/haskell/pipes-network/default.nix b/pkgs/development/libraries/haskell/pipes-network/default.nix
index b70527ecdadd..1b816a704f26 100644
--- a/pkgs/development/libraries/haskell/pipes-network/default.nix
+++ b/pkgs/development/libraries/haskell/pipes-network/default.nix
@@ -7,6 +7,7 @@ cabal.mkDerivation (self: {
   buildDepends = [
     network networkSimple pipes pipesSafe transformers
   ];
+  jailbreak = true;
   meta = {
     homepage = "https://github.com/k0001/pipes-network";
     description = "Use network sockets together with the pipes library";
diff --git a/pkgs/development/libraries/haskell/pipes-safe/default.nix b/pkgs/development/libraries/haskell/pipes-safe/default.nix
index dddc27157dd6..c1d5a603da0c 100644
--- a/pkgs/development/libraries/haskell/pipes-safe/default.nix
+++ b/pkgs/development/libraries/haskell/pipes-safe/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "pipes-safe";
-  version = "2.0.2";
-  sha256 = "004xjf0aqa73gxn8kj9844pwbkriv3hk9sbnwxx26pgvqvwjlrsj";
+  version = "2.1.0";
+  sha256 = "0qm02hwmrqlncnlxix7mdgzbf0mzally4k7ydwg06nqi35bb7s3j";
   buildDepends = [ exceptions pipes transformers ];
   meta = {
     description = "Safety for the pipes ecosystem";
diff --git a/pkgs/development/libraries/haskell/pool-conduit/default.nix b/pkgs/development/libraries/haskell/pool-conduit/default.nix
index e97fbb983a71..cb1682673af8 100644
--- a/pkgs/development/libraries/haskell/pool-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/pool-conduit/default.nix
@@ -2,14 +2,14 @@
 
 cabal.mkDerivation (self: {
   pname = "pool-conduit";
-  version = "0.1.2.1";
-  sha256 = "1mcx66xv1irxd66cfv23h4n7fplg5a0hyldlgk8km0k395mjw8k8";
+  version = "0.1.2.3";
+  sha256 = "1myjbmbh0jm89ycx9d961mpgw8hp7al8wgnsls4p19gvr73gcbfv";
   buildDepends = [
     monadControl resourcePool resourcet transformers
   ];
   meta = {
     homepage = "http://www.yesodweb.com/book/persistent";
-    description = "Resource pool allocations via ResourceT";
+    description = "Resource pool allocations via ResourceT. (deprecated)";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
     maintainers = [ self.stdenv.lib.maintainers.andres ];
diff --git a/pkgs/development/libraries/haskell/postgresql-simple/default.nix b/pkgs/development/libraries/haskell/postgresql-simple/default.nix
index d1be8d1d896c..20222609cffa 100644
--- a/pkgs/development/libraries/haskell/postgresql-simple/default.nix
+++ b/pkgs/development/libraries/haskell/postgresql-simple/default.nix
@@ -1,15 +1,15 @@
 { cabal, aeson, attoparsec, base16Bytestring, blazeBuilder
-, blazeTextual, cryptohash, HUnit, postgresqlLibpq, text, time
-, transformers, uuid, vector
+, blazeTextual, cryptohash, hashable, HUnit, postgresqlLibpq
+, scientific, text, time, transformers, uuid, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "postgresql-simple";
-  version = "0.4.0.2";
-  sha256 = "0gx9jmmzv6aaa6z88i3j51f5hp153dbwzw3x7jx329c5pjp536g9";
+  version = "0.4.2.1";
+  sha256 = "1547n7rh0gsrjaa8f9lc4diljpps09kdf0gkm0cjf1gk2kr7lh94";
   buildDepends = [
-    aeson attoparsec blazeBuilder blazeTextual postgresqlLibpq text
-    time transformers uuid vector
+    aeson attoparsec blazeBuilder blazeTextual hashable postgresqlLibpq
+    scientific text time transformers uuid vector
   ];
   testDepends = [
     aeson base16Bytestring cryptohash HUnit text time vector
diff --git a/pkgs/development/libraries/haskell/process-conduit/default.nix b/pkgs/development/libraries/haskell/process-conduit/default.nix
index 45ac44951667..3ecd88515b2f 100644
--- a/pkgs/development/libraries/haskell/process-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/process-conduit/default.nix
@@ -1,13 +1,14 @@
-{ cabal, conduit, controlMonadLoop, hspec, mtl, shakespeareText
-, text
+{ cabal, conduit, controlMonadLoop, hspec, mtl, resourcet
+, shakespeare, shakespeareText, text
 }:
 
 cabal.mkDerivation (self: {
   pname = "process-conduit";
-  version = "1.0.0.1";
-  sha256 = "1b1bya316gxj3rgn7qpjmmcllgy9aac69rqw664sw1rnypnic780";
+  version = "1.1.0.0";
+  sha256 = "1b3snck651cpb7i3c78cn264zrjan3lzydf59209abkvb6fv1hql";
   buildDepends = [
-    conduit controlMonadLoop mtl shakespeareText text
+    conduit controlMonadLoop mtl resourcet shakespeare shakespeareText
+    text
   ];
   testDepends = [ conduit hspec ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/profunctors/default.nix b/pkgs/development/libraries/haskell/profunctors/default.nix
index 41e4fc6eeb05..300d2e66f89c 100644
--- a/pkgs/development/libraries/haskell/profunctors/default.nix
+++ b/pkgs/development/libraries/haskell/profunctors/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "profunctors";
-  version = "4.0.2";
-  sha256 = "1p98pczrxvhk1imwics25b5ac59qzixblns83a1k9zszvz42kmix";
+  version = "4.0.3";
+  sha256 = "0rdr75nqzxaly47vnpbmska608k457dgpzi5wfcqhmw996kh5inh";
   buildDepends = [ comonad semigroupoids tagged transformers ];
   meta = {
     homepage = "http://github.com/ekmett/profunctors/";
diff --git a/pkgs/development/libraries/haskell/project-template/default.nix b/pkgs/development/libraries/haskell/project-template/default.nix
index f4c9214b0b63..58dc06e6aa58 100644
--- a/pkgs/development/libraries/haskell/project-template/default.nix
+++ b/pkgs/development/libraries/haskell/project-template/default.nix
@@ -1,19 +1,19 @@
-{ cabal, base64Bytestring, base64Conduit, basicPrelude, conduit
-, hspec, mtl, QuickCheck, resourcet, systemFileio, systemFilepath
-, text, transformers
+{ cabal, base64Bytestring, conduit, conduitExtra, hspec, mtl
+, QuickCheck, resourcet, systemFileio, systemFilepath, text
+, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "project-template";
-  version = "0.1.3.2";
-  sha256 = "076xq5hwi7bfn3cmx8zd19vnj6lj2p7qm2waam94qqw2m466xq50";
+  version = "0.1.4.1";
+  sha256 = "1vsx8a4kzdcwbdy47hb2wz32najsa6bqq6jkyal9nbc5ydwb65lb";
   buildDepends = [
-    base64Bytestring base64Conduit basicPrelude conduit mtl resourcet
-    systemFileio systemFilepath text transformers
+    base64Bytestring conduit conduitExtra mtl resourcet systemFileio
+    systemFilepath text transformers
   ];
   testDepends = [
-    base64Bytestring basicPrelude conduit hspec QuickCheck
-    systemFilepath text transformers
+    base64Bytestring conduit hspec QuickCheck resourcet systemFilepath
+    text transformers
   ];
   meta = {
     homepage = "https://github.com/fpco/haskell-ide";
diff --git a/pkgs/development/libraries/haskell/quickcheck-instances/default.nix b/pkgs/development/libraries/haskell/quickcheck-instances/default.nix
index 3260fd17e9e5..b45fab000ca5 100644
--- a/pkgs/development/libraries/haskell/quickcheck-instances/default.nix
+++ b/pkgs/development/libraries/haskell/quickcheck-instances/default.nix
@@ -2,11 +2,12 @@
 
 cabal.mkDerivation (self: {
   pname = "quickcheck-instances";
-  version = "0.3.7";
-  sha256 = "0zf2b2zisfx7j7i4jnb79w5hhk5dy53w23fi876flx3vl6mfvszw";
+  version = "0.3.8";
+  sha256 = "0132a37zi1haz1aaggxa1hr421bcmxlbaa4m2l53m2rmr4z5mgkg";
   buildDepends = [
     hashable QuickCheck text time unorderedContainers
   ];
+  jailbreak = true;
   meta = {
     homepage = "https://github.com/aslatter/qc-instances";
     description = "Common quickcheck instances";
diff --git a/pkgs/development/libraries/haskell/quickcheck-io/default.nix b/pkgs/development/libraries/haskell/quickcheck-io/default.nix
index b7c33b6d1a0a..9e345f800531 100644
--- a/pkgs/development/libraries/haskell/quickcheck-io/default.nix
+++ b/pkgs/development/libraries/haskell/quickcheck-io/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "quickcheck-io";
-  version = "0.1.0";
-  sha256 = "167ds7c7p1lcfsylxhq2sr0jxbviyim1n42dhyr0s0b6hazw8cjs";
+  version = "0.1.1";
+  sha256 = "16q3sqvxnaqmbb1zbda8f61mdlmmzxhrznqxab113lmg380nwfm2";
   buildDepends = [ HUnit QuickCheck ];
   meta = {
     description = "Use HUnit assertions as QuickCheck properties";
diff --git a/pkgs/development/libraries/haskell/random-fu/default.nix b/pkgs/development/libraries/haskell/random-fu/default.nix
index 8dd228ad3db3..41999e535e04 100644
--- a/pkgs/development/libraries/haskell/random-fu/default.nix
+++ b/pkgs/development/libraries/haskell/random-fu/default.nix
@@ -1,14 +1,14 @@
-{ cabal, erf, gamma, monadLoops, mtl, randomShuffle, randomSource
-, rvar, syb, transformers, vector
+{ cabal, erf, mathFunctions, monadLoops, mtl, randomShuffle
+, randomSource, rvar, syb, transformers, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "random-fu";
-  version = "0.2.4.0";
-  sha256 = "1wiwh52qfs699mcj3ylwc97pyabczn6dr8j92qczs89g8vvi91wd";
+  version = "0.2.5.0";
+  sha256 = "1yfq7mvplzdk64i7z5ip8vjynn48a65z28xrhcv91qi0yjxsxdm0";
   buildDepends = [
-    erf gamma monadLoops mtl randomShuffle randomSource rvar syb
-    transformers vector
+    erf mathFunctions monadLoops mtl randomShuffle randomSource rvar
+    syb transformers vector
   ];
   meta = {
     homepage = "https://github.com/mokus0/random-fu";
diff --git a/pkgs/development/libraries/haskell/recaptcha/default.nix b/pkgs/development/libraries/haskell/recaptcha/default.nix
index 37fb26208f48..2d3fb430fe27 100644
--- a/pkgs/development/libraries/haskell/recaptcha/default.nix
+++ b/pkgs/development/libraries/haskell/recaptcha/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "recaptcha";
-  version = "0.1";
-  sha256 = "de00e6e3aadd99a1cd036ce4b413ebe02d59c1b9cfd3032f122735cca1f25144";
+  version = "0.1.0.2";
+  sha256 = "04sdfp6bmcd3qkz1iqxijfiqa4qf78m5d16r9gjv90ckqf68kbih";
   buildDepends = [ HTTP network xhtml ];
   meta = {
     homepage = "http://github.com/jgm/recaptcha/tree/master";
diff --git a/pkgs/development/libraries/haskell/resourcet/default.nix b/pkgs/development/libraries/haskell/resourcet/default.nix
index 913e77483e44..7995227a8c0d 100644
--- a/pkgs/development/libraries/haskell/resourcet/default.nix
+++ b/pkgs/development/libraries/haskell/resourcet/default.nix
@@ -1,13 +1,14 @@
-{ cabal, hspec, liftedBase, mmorph, monadControl, mtl, transformers
-, transformersBase
+{ cabal, exceptions, hspec, liftedBase, mmorph, monadControl, mtl
+, transformers, transformersBase
 }:
 
 cabal.mkDerivation (self: {
   pname = "resourcet";
-  version = "0.4.10";
-  sha256 = "0mgwcgacf4ilyh54s862p8jqv1f42dkp287sdkpswyai1pxlvipz";
+  version = "1.1.1";
+  sha256 = "0v80wlxpcikr41p8wxa2kr184ghp94bgb5fwym9c27k8djig2awy";
   buildDepends = [
-    liftedBase mmorph monadControl mtl transformers transformersBase
+    exceptions liftedBase mmorph monadControl mtl transformers
+    transformersBase
   ];
   testDepends = [ hspec liftedBase transformers ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/retry/default.nix b/pkgs/development/libraries/haskell/retry/default.nix
new file mode 100644
index 000000000000..d57898593b27
--- /dev/null
+++ b/pkgs/development/libraries/haskell/retry/default.nix
@@ -0,0 +1,15 @@
+{ cabal, dataDefault, liftedBase, monadControl, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "retry";
+  version = "0.3.0.0";
+  sha256 = "00yjk5784h4w1cckw17w1k5r94acc3ycnprk642ndgggz3lxm36n";
+  buildDepends = [
+    dataDefault liftedBase monadControl transformers
+  ];
+  meta = {
+    description = "Retry combinators for monadic actions that may fail";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/sample-frame/default.nix b/pkgs/development/libraries/haskell/sample-frame/default.nix
index f8acbf1fda83..8e9478ed5e2a 100644
--- a/pkgs/development/libraries/haskell/sample-frame/default.nix
+++ b/pkgs/development/libraries/haskell/sample-frame/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "sample-frame";
-  version = "0.0.2";
-  sha256 = "1k1fyslgw5vvn9a38mhp7c9j1xxf75ys010rcn2vr3pm6aj868sx";
+  version = "0.0.3";
+  sha256 = "0ivj0bcnqqc805np62bdpvh8v4ykmw86ph5rp7k54bbv9wd31bsv";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ QuickCheck storableRecord ];
diff --git a/pkgs/development/libraries/haskell/sbv/default.nix b/pkgs/development/libraries/haskell/sbv/default.nix
new file mode 100644
index 000000000000..a4450bdc8924
--- /dev/null
+++ b/pkgs/development/libraries/haskell/sbv/default.nix
@@ -0,0 +1,19 @@
+{ cabal, deepseq, filepath, HUnit, mtl, QuickCheck, random, syb }:
+
+cabal.mkDerivation (self: {
+  pname = "sbv";
+  version = "3.0";
+  sha256 = "16k9f0x4amg7mm8ib22nyk1rngrbf9311gl2m15hbdq49jp8ik9i";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    deepseq filepath HUnit mtl QuickCheck random syb
+  ];
+  testDepends = [ filepath HUnit syb ];
+  meta = {
+    homepage = "http://leventerkok.github.com/sbv/";
+    description = "SMT Based Verification: Symbolic Haskell theorem prover using SMT solving";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/scotty-hastache/default.nix b/pkgs/development/libraries/haskell/scotty-hastache/default.nix
index 76e6fe45ad12..7f10ad2d68f1 100644
--- a/pkgs/development/libraries/haskell/scotty-hastache/default.nix
+++ b/pkgs/development/libraries/haskell/scotty-hastache/default.nix
@@ -1,14 +1,13 @@
-{ cabal, blazeHtml, blazeMarkup, filepath, hastache, httpTypes, mtl
-, scotty, text, wai, warp
+{ cabal, filepath, hastache, httpTypes, mtl, scotty, text, wai
+, warp
 }:
 
 cabal.mkDerivation (self: {
   pname = "scotty-hastache";
-  version = "0.2.0";
-  sha256 = "105cxlasj4sl4ddzg8ms6k95078q10zcm2c86jcn76s0jmv95669";
+  version = "0.2.1";
+  sha256 = "1yyip8iq1n71iidmpbfs7rifxvpphyrcaf4z394rx36hq72ka8dn";
   buildDepends = [
-    blazeHtml blazeMarkup filepath hastache httpTypes mtl scotty text
-    wai warp
+    filepath hastache httpTypes mtl scotty text wai warp
   ];
   meta = {
     homepage = "https://github.com/scotty-web/scotty-hastache";
diff --git a/pkgs/development/libraries/haskell/scotty/default.nix b/pkgs/development/libraries/haskell/scotty/default.nix
index e51c2a7a64c0..cc5ae2604777 100644
--- a/pkgs/development/libraries/haskell/scotty/default.nix
+++ b/pkgs/development/libraries/haskell/scotty/default.nix
@@ -1,15 +1,15 @@
-{ cabal, aeson, blazeBuilder, caseInsensitive, conduit, dataDefault
-, httpTypes, mtl, regexCompat, text, transformers, wai, waiExtra
-, warp
+{ cabal, aeson, blazeBuilder, caseInsensitive, conduit
+, conduitExtra, dataDefault, httpTypes, mtl, regexCompat, text
+, transformers, wai, waiExtra, warp
 }:
 
 cabal.mkDerivation (self: {
   pname = "scotty";
-  version = "0.6.2";
-  sha256 = "0szki6wcmhj20kxhmgidgf930xwhiq03qrk8m0x8aklcjzkhvy69";
+  version = "0.7.2";
+  sha256 = "1y14af3qciwycgaxzx6rjan2jgfchjzs4zbxzh8p8s1d0l4gsqlb";
   buildDepends = [
-    aeson blazeBuilder caseInsensitive conduit dataDefault httpTypes
-    mtl regexCompat text transformers wai waiExtra warp
+    aeson blazeBuilder caseInsensitive conduit conduitExtra dataDefault
+    httpTypes mtl regexCompat text transformers wai waiExtra warp
   ];
   jailbreak = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/semigroupoids/default.nix b/pkgs/development/libraries/haskell/semigroupoids/default.nix
index e0dbf4568049..c46bfa910b09 100644
--- a/pkgs/development/libraries/haskell/semigroupoids/default.nix
+++ b/pkgs/development/libraries/haskell/semigroupoids/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "semigroupoids";
-  version = "4.0";
-  sha256 = "12h2b9pisy21xca3x9ilj0aix9clni0za35d2dmv55gb8y8df54l";
+  version = "4.0.1";
+  sha256 = "0w4r4nmyq94aq9xlyvrankipfwdmlcz2ghqicn9drqfjirhi8lrl";
   buildDepends = [
     comonad contravariant distributive semigroups transformers
   ];
diff --git a/pkgs/development/libraries/haskell/semigroups/default.nix b/pkgs/development/libraries/haskell/semigroups/default.nix
index 432eb77ae3ee..22dfb5e8896f 100644
--- a/pkgs/development/libraries/haskell/semigroups/default.nix
+++ b/pkgs/development/libraries/haskell/semigroups/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "semigroups";
-  version = "0.12.2";
-  sha256 = "0qk6m477iwk17j2a1yfxfkhvfrdv94nnx32zlqjqqxjfbi71c30g";
+  version = "0.13.0.1";
+  sha256 = "12zd1pvggjj81hi7vm9z8fxcwsg6r2xbsg3qjs8snnybadi0qlfl";
   buildDepends = [ hashable nats text unorderedContainers ];
   meta = {
     homepage = "http://github.com/ekmett/semigroups/";
diff --git a/pkgs/development/libraries/haskell/shake/default.nix b/pkgs/development/libraries/haskell/shake/default.nix
index f7505c62fc19..3e769f5e6015 100644
--- a/pkgs/development/libraries/haskell/shake/default.nix
+++ b/pkgs/development/libraries/haskell/shake/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shake";
-  version = "0.11.3";
-  sha256 = "0j4b9fd60kvkayf5zgr8d8w0i4k8ly2v0vnfg80k0lkwpka7nwzl";
+  version = "0.11.4";
+  sha256 = "0gkj7zdy500zf58yscr5fq1ghj0kb3hywcv97r1xmi6ydccgf4ni";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/shakespeare-css/default.nix b/pkgs/development/libraries/haskell/shakespeare-css/default.nix
index 4a2305cce2a4..8f06ee67361f 100644
--- a/pkgs/development/libraries/haskell/shakespeare-css/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare-css/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shakespeare-css";
-  version = "1.0.7.1";
-  sha256 = "1qw8hlldzdijp0vgikrbj83q4wmx6i1vswn4314dwjxcihljl8ls";
+  version = "1.0.7.4";
+  sha256 = "1lb3w0498bdsd2cmz2ns11dv5abif0wsilbqy0ymfb1dgl2rbpmz";
   buildDepends = [ parsec shakespeare text transformers ];
   testDepends = [ hspec HUnit shakespeare text ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/shelly/default.nix b/pkgs/development/libraries/haskell/shelly/default.nix
index 3ebc62932cf2..5a7171c46199 100644
--- a/pkgs/development/libraries/haskell/shelly/default.nix
+++ b/pkgs/development/libraries/haskell/shelly/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shelly";
-  version = "1.5.0.1";
-  sha256 = "19mfxdwnzv01bxd0l5q2z4mbdp7r8p6z2bm083vjlxx7cc35wv7a";
+  version = "1.5.2";
+  sha256 = "1iyn3xxmqbrx6xfay364m2qgflscmz9crr051jpzg0b629b8wssa";
   buildDepends = [
     async mtl systemFileio systemFilepath text time unixCompat
   ];
diff --git a/pkgs/development/libraries/haskell/singletons/default.nix b/pkgs/development/libraries/haskell/singletons/default.nix
index 48f12cd88258..e233dc60cc0e 100644
--- a/pkgs/development/libraries/haskell/singletons/default.nix
+++ b/pkgs/development/libraries/haskell/singletons/default.nix
@@ -1,10 +1,13 @@
-{ cabal, mtl, syb, thDesugar }:
+{ cabal, Cabal, constraints, filepath, mtl, tasty, tastyGolden
+, thDesugar
+}:
 
 cabal.mkDerivation (self: {
   pname = "singletons";
-  version = "0.9.3";
-  sha256 = "0m90k3ygm04c0gjfiaw5rmajyn2yz0ldcqm2xmm39d10270skpb4";
-  buildDepends = [ mtl syb thDesugar ];
+  version = "0.10.0";
+  sha256 = "14vnkw9ihrs3xg3lhb3wkyfz59lsaz4c3iqh3hqy7x9gmifgggwr";
+  buildDepends = [ mtl thDesugar ];
+  testDepends = [ Cabal constraints filepath tasty tastyGolden ];
   noHaddock = true;
   meta = {
     homepage = "http://www.cis.upenn.edu/~eir/packages/singletons";
diff --git a/pkgs/development/libraries/haskell/smtps-gmail/default.nix b/pkgs/development/libraries/haskell/smtps-gmail/default.nix
index d41a37d1e5be..eb8d97805a02 100644
--- a/pkgs/development/libraries/haskell/smtps-gmail/default.nix
+++ b/pkgs/development/libraries/haskell/smtps-gmail/default.nix
@@ -1,23 +1,19 @@
-{ cabal, base64String, cprngAes, network, tlsExtra, utf8String
+{ cabal, base64Bytestring, cprngAes, dataDefault, filepath
+, mimeMail, network, stringsearch, text, tls
 }:
 
 cabal.mkDerivation (self: {
   pname = "smtps-gmail";
-  version = "1.0.0";
-  sha256 = "0kv5m8rg5z1iic10av3bscdygnph1iab4b22sq3hmx6a93abqkc2";
-  isLibrary = true;
-  isExecutable = true;
+  version = "1.1.1";
+  sha256 = "1ccj9rmbplh0c7h6rpg3ry213nb1lrhf7hm2vl7kq9lv0nb7cy97";
   buildDepends = [
-    base64String cprngAes network tlsExtra utf8String
+    base64Bytestring cprngAes dataDefault filepath mimeMail network
+    stringsearch text tls
   ];
   meta = {
     homepage = "https://github.com/enzoh/smtps-gmail";
-    description = "Gmail API";
+    description = "Gmail SMTP Client";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
   };
-  # adding a Setup script as it's needed by nix
-  preConfigure = ''
-    printf "import Distribution.Simple\nmain = defaultMain\n" > Setup.hs
-  '';
 })
diff --git a/pkgs/development/libraries/haskell/snap-cors/default.nix b/pkgs/development/libraries/haskell/snap-cors/default.nix
new file mode 100644
index 000000000000..d805817838a5
--- /dev/null
+++ b/pkgs/development/libraries/haskell/snap-cors/default.nix
@@ -0,0 +1,19 @@
+{ cabal, attoparsec, caseInsensitive, hashable, network, snap, text
+, transformers, unorderedContainers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "snap-cors";
+  version = "1.2.2";
+  sha256 = "1f32sj7y87lr0wjs3j3ynh95c4j4yx4fzizbgdfnjai1apcjkhcs";
+  buildDepends = [
+    attoparsec caseInsensitive hashable network snap text transformers
+    unorderedContainers
+  ];
+  meta = {
+    homepage = "http://github.com/ocharles/snap-cors";
+    description = "Add CORS headers to Snap applications";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/snap/core.nix b/pkgs/development/libraries/haskell/snap/core.nix
index 7bc8d6e4b573..0a1d1b7c5cf4 100644
--- a/pkgs/development/libraries/haskell/snap/core.nix
+++ b/pkgs/development/libraries/haskell/snap/core.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "snap-core";
-  version = "0.9.6.0";
-  sha256 = "0v5bp8dw867gq92p3qw3h2yv6bhr2b7gy72rs26m9crk2dsfx9pa";
+  version = "0.9.6.2";
+  sha256 = "1s77p2q4zrpw2fksklqc9sgcb214fijsk88lqqasdiw9kb9xmwij";
   buildDepends = [
     attoparsec attoparsecEnumerator blazeBuilder blazeBuilderEnumerator
     bytestringMmap caseInsensitive deepseq enumerator filepath hashable
diff --git a/pkgs/development/libraries/haskell/snap/loader-dynamic.nix b/pkgs/development/libraries/haskell/snap/loader-dynamic.nix
index abe4d4cc074b..ec054cc80653 100644
--- a/pkgs/development/libraries/haskell/snap/loader-dynamic.nix
+++ b/pkgs/development/libraries/haskell/snap/loader-dynamic.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "snap-loader-dynamic";
-  version = "0.10";
-  sha256 = "0wnrsbnf3crfxhhraz4my08m6yhmqj632rv6cdy9ili3wxjkqd57";
+  version = "0.10.0.1";
+  sha256 = "0iqhspvfp0d6qivis2l3v0rqrnb8qbzvi4n53zgyb9cwvqxx5fix";
   buildDepends = [ directoryTree hint mtl snapCore time ];
   meta = {
     homepage = "http://snapframework.com/";
diff --git a/pkgs/development/libraries/haskell/snap/server.nix b/pkgs/development/libraries/haskell/snap/server.nix
index 80cffd6b4321..4dca1dea2843 100644
--- a/pkgs/development/libraries/haskell/snap/server.nix
+++ b/pkgs/development/libraries/haskell/snap/server.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "snap-server";
-  version = "0.9.4.0";
-  sha256 = "0jcg99byygdxx42p1w0a8nvyh2w2hrqj2j9n76hf7sa65f67j828";
+  version = "0.9.4.2";
+  sha256 = "05na8gqbqy0nznasaxfkp4hr7h0s6ypm8000mhn50d27v8nk526m";
   buildDepends = [
     attoparsec attoparsecEnumerator blazeBuilder blazeBuilderEnumerator
     caseInsensitive enumerator MonadCatchIOTransformers mtl network
diff --git a/pkgs/development/libraries/haskell/snap/snap.nix b/pkgs/development/libraries/haskell/snap/snap.nix
index 3a656d65b33a..3d361a69b874 100644
--- a/pkgs/development/libraries/haskell/snap/snap.nix
+++ b/pkgs/development/libraries/haskell/snap/snap.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "snap";
-  version = "0.13.2.2";
-  sha256 = "097bv45646g5qanc5ik0lpfm8g7zd1f5ymlxkilgcnvc72wiwkjm";
+  version = "0.13.2.4";
+  sha256 = "1806nd6gzih66c9gg2iz3dxr4qcd4jkgamz8pv9x3zkk7n5jqga0";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/statistics/default.nix b/pkgs/development/libraries/haskell/statistics/0.10.5.2.nix
index 518d22ee1d46..518d22ee1d46 100644
--- a/pkgs/development/libraries/haskell/statistics/default.nix
+++ b/pkgs/development/libraries/haskell/statistics/0.10.5.2.nix
diff --git a/pkgs/development/libraries/haskell/statistics/0.11.0.0.nix b/pkgs/development/libraries/haskell/statistics/0.11.0.0.nix
new file mode 100644
index 000000000000..11d2ff6daa69
--- /dev/null
+++ b/pkgs/development/libraries/haskell/statistics/0.11.0.0.nix
@@ -0,0 +1,28 @@
+{ cabal, binary, deepseq, erf, HUnit, ieee754, mathFunctions
+, monadPar, mwcRandom, primitive, QuickCheck, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2, vector
+, vectorAlgorithms, vectorBinaryInstances
+}:
+
+cabal.mkDerivation (self: {
+  pname = "statistics";
+  version = "0.11.0.0";
+  sha256 = "1pmkdy7v78ajl5b5rjshgabhcakb9ji5wlq79ajr1b5adif1d1d9";
+  buildDepends = [
+    binary deepseq erf mathFunctions monadPar mwcRandom primitive
+    vector vectorAlgorithms vectorBinaryInstances
+  ];
+  testDepends = [
+    binary erf HUnit ieee754 mathFunctions mwcRandom primitive
+    QuickCheck testFramework testFrameworkHunit
+    testFrameworkQuickcheck2 vector vectorAlgorithms
+  ];
+  doCheck = false;
+  meta = {
+    homepage = "https://github.com/bos/statistics";
+    description = "A library of statistical types, data, and functions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/stm-chans/default.nix b/pkgs/development/libraries/haskell/stm-chans/default.nix
index e8bd79a9a80a..2b8c9d1080ae 100644
--- a/pkgs/development/libraries/haskell/stm-chans/default.nix
+++ b/pkgs/development/libraries/haskell/stm-chans/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "stm-chans";
-  version = "3.0.0";
-  sha256 = "1nnl5h88dshcmk0ydhkf84kkf6989igxry9r0z7lwlxfgf7q9nim";
+  version = "3.0.0.2";
+  sha256 = "1zsa092yjxsdq8nm2yqagdfpip3i3ff3xdwvys99ns7ridxbyynh";
   buildDepends = [ stm ];
   meta = {
     homepage = "http://code.haskell.org/~wren/";
diff --git a/pkgs/development/libraries/haskell/stm-conduit/default.nix b/pkgs/development/libraries/haskell/stm-conduit/default.nix
index 412dfa1fcd21..201a2ea02f97 100644
--- a/pkgs/development/libraries/haskell/stm-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/stm-conduit/default.nix
@@ -1,16 +1,17 @@
-{ cabal, async, cereal, cerealConduit, conduit, HUnit, liftedAsync
-, liftedBase, monadControl, monadLoops, QuickCheck, resourcet, stm
-, stmChans, testFramework, testFrameworkHunit
+{ cabal, async, cereal, cerealConduit, conduit, conduitExtra, HUnit
+, liftedAsync, liftedBase, monadControl, monadLoops, QuickCheck
+, resourcet, stm, stmChans, testFramework, testFrameworkHunit
 , testFrameworkQuickcheck2, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "stm-conduit";
-  version = "2.2.2";
-  sha256 = "0a6yi35iw0p18asr6l8370kndmvim097vklayads6gbk74gg67cy";
+  version = "2.4.0";
+  sha256 = "03ifxr3pspwmzf0xdh7mj3q1wiz13d86w9pdhiqa6b1d1qw6rvha";
   buildDepends = [
-    async cereal cerealConduit conduit liftedAsync liftedBase
-    monadControl monadLoops resourcet stm stmChans transformers
+    async cereal cerealConduit conduit conduitExtra liftedAsync
+    liftedBase monadControl monadLoops resourcet stm stmChans
+    transformers
   ];
   testDepends = [
     conduit HUnit QuickCheck resourcet stm stmChans testFramework
diff --git a/pkgs/development/libraries/haskell/stm/2.4.3.nix b/pkgs/development/libraries/haskell/stm/2.4.3.nix
new file mode 100644
index 000000000000..28c3da5cba23
--- /dev/null
+++ b/pkgs/development/libraries/haskell/stm/2.4.3.nix
@@ -0,0 +1,13 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "stm";
+  version = "2.4.3";
+  sha256 = "0vzw4s06d5scfy4ircl81ym8ylkw9ckzsp8rq950dvipmaj1xhis";
+  meta = {
+    description = "Software Transactional Memory";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/streaming-commons/default.nix b/pkgs/development/libraries/haskell/streaming-commons/default.nix
new file mode 100644
index 000000000000..4bcb46887bc8
--- /dev/null
+++ b/pkgs/development/libraries/haskell/streaming-commons/default.nix
@@ -0,0 +1,17 @@
+{ cabal, async, deepseq, hspec, network, QuickCheck, text
+, transformers, zlib
+}:
+
+cabal.mkDerivation (self: {
+  pname = "streaming-commons";
+  version = "0.1.1";
+  sha256 = "1mzpdhdc5kq9pfpsjs6v1j1qa1pdj1ca4s32z4bjq751jayj6ds6";
+  buildDepends = [ network text transformers zlib ];
+  testDepends = [ async deepseq hspec network QuickCheck text zlib ];
+  meta = {
+    homepage = "https://github.com/fpco/streaming-commons";
+    description = "Common lower-level functions needed by various streaming data libraries";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/syntactic/default.nix b/pkgs/development/libraries/haskell/syntactic/default.nix
new file mode 100644
index 000000000000..e18cf7b59371
--- /dev/null
+++ b/pkgs/development/libraries/haskell/syntactic/default.nix
@@ -0,0 +1,22 @@
+{ cabal, constraints, dataHash, mtl, QuickCheck, tasty, tastyGolden
+, tastyQuickcheck, tastyTh, transformers, treeView, tuple
+, utf8String
+}:
+
+cabal.mkDerivation (self: {
+  pname = "syntactic";
+  version = "1.11";
+  sha256 = "1j4k4qwi17x9z0cjf9adndaj5wbs8prs36xpz2icf7mlwcr9pvrz";
+  buildDepends = [
+    constraints dataHash mtl transformers treeView tuple
+  ];
+  testDepends = [
+    mtl QuickCheck tasty tastyGolden tastyQuickcheck tastyTh utf8String
+  ];
+  meta = {
+    homepage = "https://github.com/emilaxelsson/syntactic";
+    description = "Generic abstract syntax, and utilities for embedded languages";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/system-filepath/default.nix b/pkgs/development/libraries/haskell/system-filepath/default.nix
index 2e060e252dd9..fba75d7b847d 100644
--- a/pkgs/development/libraries/haskell/system-filepath/default.nix
+++ b/pkgs/development/libraries/haskell/system-filepath/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "system-filepath";
-  version = "0.4.9";
-  sha256 = "0qxbibq6lj7gyw62crp774pv2a8cm83rllw5yjjsg372nk4m1is0";
+  version = "0.4.10";
+  sha256 = "176g5jm1gd6lrkmhfz9qh5aqwfbpwyr30yknfcc49wl7jkfhisiq";
   buildDepends = [ deepseq text ];
   meta = {
     homepage = "https://john-millikin.com/software/haskell-filesystem/";
diff --git a/pkgs/development/libraries/haskell/tagged/default.nix b/pkgs/development/libraries/haskell/tagged/default.nix
index ee808800c55f..d62033e8d16a 100644
--- a/pkgs/development/libraries/haskell/tagged/default.nix
+++ b/pkgs/development/libraries/haskell/tagged/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "tagged";
-  version = "0.7";
-  sha256 = "1g78hl6sib1mhg016gy3fqw78x72jsgqizsgim8a1pysjzq0y6zm";
+  version = "0.7.1";
+  sha256 = "036k5k44971fq6zdxc36kkic9ma93mcas7zk48i32s60iznnfc6v";
   meta = {
     homepage = "http://github.com/ekmett/tagged";
     description = "Haskell 98 phantom types to avoid unsafely passing dummy arguments";
diff --git a/pkgs/development/libraries/haskell/tagshare/default.nix b/pkgs/development/libraries/haskell/tagshare/default.nix
new file mode 100644
index 000000000000..be56d518121b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/tagshare/default.nix
@@ -0,0 +1,13 @@
+{ cabal, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "tagshare";
+  version = "0.0";
+  sha256 = "1q3chp1rmwmxa8rxv7548wsvbqbng6grrnv1587p08385sp4ncfj";
+  buildDepends = [ mtl ];
+  meta = {
+    description = "TagShare - explicit sharing with tags";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/tagstream-conduit/default.nix b/pkgs/development/libraries/haskell/tagstream-conduit/default.nix
index c28301e41830..ecdcbb1b63c1 100644
--- a/pkgs/development/libraries/haskell/tagstream-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/tagstream-conduit/default.nix
@@ -1,17 +1,19 @@
 { cabal, attoparsec, attoparsecConduit, blazeBuilder
-, blazeBuilderConduit, caseInsensitive, conduit, dataDefault, hspec
-, HUnit, QuickCheck, text, transformers, xmlConduit
+, blazeBuilderConduit, caseInsensitive, conduit, conduitExtra
+, dataDefault, hspec, HUnit, QuickCheck, resourcet, text
+, transformers, xmlConduit
 }:
 
 cabal.mkDerivation (self: {
   pname = "tagstream-conduit";
-  version = "0.5.5";
-  sha256 = "17157chhw610f8az6c25qzq5mmhpb1a8m12kdc2k8khgynpkrj5f";
+  version = "0.5.5.1";
+  sha256 = "0bpxjhqqqigfnwcxx3h2am5zmgr1lyaxaac3lnz490j6zf8x9jn7";
   buildDepends = [
     attoparsec attoparsecConduit blazeBuilder blazeBuilderConduit
-    caseInsensitive conduit dataDefault text transformers xmlConduit
+    caseInsensitive conduit conduitExtra dataDefault resourcet text
+    transformers xmlConduit
   ];
-  testDepends = [ conduit hspec HUnit QuickCheck text ];
+  testDepends = [ conduit hspec HUnit QuickCheck resourcet text ];
   meta = {
     homepage = "http://github.com/yihuang/tagstream-conduit";
     description = "streamlined html tag parser";
diff --git a/pkgs/development/libraries/haskell/tasty-quickcheck/default.nix b/pkgs/development/libraries/haskell/tasty-quickcheck/default.nix
index 86ee3437cbb2..ee8483595092 100644
--- a/pkgs/development/libraries/haskell/tasty-quickcheck/default.nix
+++ b/pkgs/development/libraries/haskell/tasty-quickcheck/default.nix
@@ -1,10 +1,10 @@
-{ cabal, QuickCheck, random, tagged, tasty }:
+{ cabal, QuickCheck, tagged, tasty }:
 
 cabal.mkDerivation (self: {
   pname = "tasty-quickcheck";
-  version = "0.8";
-  sha256 = "10d7chqrlp1fjphnkiykxd22g4mfp69kmihd705sxb0y0mrdfh8x";
-  buildDepends = [ QuickCheck random tagged tasty ];
+  version = "0.8.0.3";
+  sha256 = "0dng415dsdg86rliwmz5hpn2111cn0x494c0vmdmzv5qgvx5naf6";
+  buildDepends = [ QuickCheck tagged tasty ];
   meta = {
     description = "QuickCheck support for the Tasty test framework";
     license = self.stdenv.lib.licenses.mit;
diff --git a/pkgs/development/libraries/haskell/tasty/default.nix b/pkgs/development/libraries/haskell/tasty/default.nix
index 6fcdf9a4cb3c..13e4e37e4b06 100644
--- a/pkgs/development/libraries/haskell/tasty/default.nix
+++ b/pkgs/development/libraries/haskell/tasty/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "tasty";
-  version = "0.8";
-  sha256 = "12r8ml45r1dq3vmjkibxkla5rmmyrm11js26kmkha110ji8hnflg";
+  version = "0.8.0.4";
+  sha256 = "016niwympxbxpg3yq7samgh92l20wxm2h6cwhqal4zdj8n9262j0";
   buildDepends = [
     ansiTerminal async deepseq mtl optparseApplicative regexTdfa stm
     tagged unboundedDelays
diff --git a/pkgs/development/libraries/haskell/temporary/default.nix b/pkgs/development/libraries/haskell/temporary/default.nix
index 5bb668e86a87..585eaf58682d 100644
--- a/pkgs/development/libraries/haskell/temporary/default.nix
+++ b/pkgs/development/libraries/haskell/temporary/default.nix
@@ -2,9 +2,10 @@
 
 cabal.mkDerivation (self: {
   pname = "temporary";
-  version = "1.2.0.1";
-  sha256 = "12z8qnqn1fg9ymaav5ds7gk067lmj0bv1lhhxcnvmvjcpk1l5b54";
+  version = "1.2.0.2";
+  sha256 = "1ynvhmc6b385sn8qw3sni3cwmz7pmppns546416xil9mhbiya87z";
   buildDepends = [ exceptions filepath transformers ];
+  jailbreak = true;
   meta = {
     homepage = "http://www.github.com/batterseapower/temporary";
     description = "Portable temporary file and directory support for Windows and Unix, based on code from Cabal";
diff --git a/pkgs/development/libraries/haskell/testing-feat/default.nix b/pkgs/development/libraries/haskell/testing-feat/default.nix
new file mode 100644
index 000000000000..5e6a8177d1a1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/testing-feat/default.nix
@@ -0,0 +1,13 @@
+{ cabal, mtl, QuickCheck, tagshare }:
+
+cabal.mkDerivation (self: {
+  pname = "testing-feat";
+  version = "0.4.0.1";
+  sha256 = "1fqp5k8kwnn7qqggyy5scsxmkvd1pibc5sfs7v1myrp0azkc25cp";
+  buildDepends = [ mtl QuickCheck tagshare ];
+  meta = {
+    description = "Functional Enumeration of Algebraic Types";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/texmath/default.nix b/pkgs/development/libraries/haskell/texmath/default.nix
index 8dd3f5c6fc96..7c97f5b8e3f9 100644
--- a/pkgs/development/libraries/haskell/texmath/default.nix
+++ b/pkgs/development/libraries/haskell/texmath/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "texmath";
-  version = "0.6.6";
-  sha256 = "0mbimlvqsfx6w4dvilidy5cd9732kf6bnfnn6n7rnmq88avxxnmc";
+  version = "0.6.6.1";
+  sha256 = "0s6rh4frjc76g1nmwhnnpnsszrnhpi9zx478zqiln1fg0yc9fhxq";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ pandocTypes parsec syb xml ];
diff --git a/pkgs/development/libraries/haskell/text-icu/default.nix b/pkgs/development/libraries/haskell/text-icu/default.nix
index 6dc42beee408..222475b24bb9 100644
--- a/pkgs/development/libraries/haskell/text-icu/default.nix
+++ b/pkgs/development/libraries/haskell/text-icu/default.nix
@@ -12,6 +12,7 @@ cabal.mkDerivation (self: {
     testFrameworkQuickcheck2 text
   ];
   extraLibraries = [ icu ];
+  doCheck = !self.stdenv.isDarwin;
   meta = {
     homepage = "https://github.com/bos/text-icu";
     description = "Bindings to the ICU library";
diff --git a/pkgs/development/libraries/haskell/text-stream-decode/default.nix b/pkgs/development/libraries/haskell/text-stream-decode/default.nix
index eb55d68666c5..0530804d84b1 100644
--- a/pkgs/development/libraries/haskell/text-stream-decode/default.nix
+++ b/pkgs/development/libraries/haskell/text-stream-decode/default.nix
@@ -2,13 +2,13 @@
 
 cabal.mkDerivation (self: {
   pname = "text-stream-decode";
-  version = "0.1.0.4";
-  sha256 = "041winxbqkz1y6vx6sgbhl925n5qxii2q7ijcwa85sj4dkrqpafr";
+  version = "0.1.0.5";
+  sha256 = "1s2lncs5k8rswg1bpf4vz5p1maj46bsgf7ar4lzcla9bf3f4bppy";
   buildDepends = [ text ];
   testDepends = [ deepseq hspec text ];
   meta = {
     homepage = "http://github.com/fpco/text-stream-decode";
-    description = "Streaming decoding functions for UTF encodings";
+    description = "Streaming decoding functions for UTF encodings. (deprecated)";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/tf-random/default.nix b/pkgs/development/libraries/haskell/tf-random/default.nix
new file mode 100644
index 000000000000..79e27f87fc69
--- /dev/null
+++ b/pkgs/development/libraries/haskell/tf-random/default.nix
@@ -0,0 +1,13 @@
+{ cabal, primitive, random, time }:
+
+cabal.mkDerivation (self: {
+  pname = "tf-random";
+  version = "0.5";
+  sha256 = "0445r2nns6009fmq0xbfpyv7jpzwv0snccjdg7hwj4xk4z0cwc1f";
+  buildDepends = [ primitive random time ];
+  meta = {
+    description = "High-quality splittable pseudorandom number generator";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/th-desugar/default.nix b/pkgs/development/libraries/haskell/th-desugar/default.nix
index f3aa1628aae7..827828d64741 100644
--- a/pkgs/development/libraries/haskell/th-desugar/default.nix
+++ b/pkgs/development/libraries/haskell/th-desugar/default.nix
@@ -1,10 +1,11 @@
-{ cabal, mtl, syb }:
+{ cabal, hspec, HUnit, mtl, syb }:
 
 cabal.mkDerivation (self: {
   pname = "th-desugar";
-  version = "1.2.1";
-  sha256 = "12a8m1vzfbn728psaiqxwngmksrbybci3g7a47z04rjbsjf3cy4v";
+  version = "1.3.1";
+  sha256 = "1wi0c5d1w6vjjk580zhypgqnnkndcsx4cmx5qy01w97h6kyj8913";
   buildDepends = [ mtl syb ];
+  testDepends = [ hspec HUnit mtl syb ];
   meta = {
     homepage = "http://www.cis.upenn.edu/~eir/packages/th-desugar";
     description = "Functions to desugar Template Haskell";
diff --git a/pkgs/development/libraries/haskell/thyme/default.nix b/pkgs/development/libraries/haskell/thyme/default.nix
index 08563c6f2c5d..e321f21b2ca4 100644
--- a/pkgs/development/libraries/haskell/thyme/default.nix
+++ b/pkgs/development/libraries/haskell/thyme/default.nix
@@ -1,18 +1,18 @@
-{ cabal, aeson, attoparsec, Cabal, deepseq, filepath, lens
-, QuickCheck, random, systemPosixRedirect, text, time, transformers
+{ cabal, aeson, attoparsec, Cabal, deepseq, filepath, mtl
+, profunctors, QuickCheck, random, systemPosixRedirect, text, time
 , vector, vectorSpace
 }:
 
 cabal.mkDerivation (self: {
   pname = "thyme";
-  version = "0.3.1.1";
-  sha256 = "00c15zy7190mghpvrpwl0hp8w1mp386vvff8w2zdpgl792cvdby8";
+  version = "0.3.3.0";
+  sha256 = "0mpwwpc82xcdyawz87rcmvga1miw7cx538nnh379m2ibn0g71zaa";
   buildDepends = [
-    aeson attoparsec deepseq lens QuickCheck random text time
-    transformers vector vectorSpace
+    aeson attoparsec deepseq mtl profunctors QuickCheck random text
+    time vector vectorSpace
   ];
   testDepends = [
-    attoparsec Cabal filepath lens QuickCheck random
+    attoparsec Cabal filepath mtl profunctors QuickCheck random
     systemPosixRedirect text time vectorSpace
   ];
   doCheck = false;
diff --git a/pkgs/development/libraries/haskell/time-recurrence/default.nix b/pkgs/development/libraries/haskell/time-recurrence/default.nix
new file mode 100644
index 000000000000..0e23f84ebfc2
--- /dev/null
+++ b/pkgs/development/libraries/haskell/time-recurrence/default.nix
@@ -0,0 +1,19 @@
+{ cabal, dataOrdlist, HUnit, mtl, testFramework, testFrameworkHunit
+, time
+}:
+
+cabal.mkDerivation (self: {
+  pname = "time-recurrence";
+  version = "0.9.2";
+  sha256 = "1arqmkagmswimbh78qfz5bcilk9i14w29j4vf4i89d00vac3vrzm";
+  buildDepends = [ dataOrdlist mtl time ];
+  testDepends = [
+    dataOrdlist HUnit mtl testFramework testFrameworkHunit time
+  ];
+  meta = {
+    homepage = "http://github.com/hellertime/time-recurrence";
+    description = "Generate recurring dates";
+    license = self.stdenv.lib.licenses.gpl3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/timeparsers/default.nix b/pkgs/development/libraries/haskell/timeparsers/default.nix
new file mode 100644
index 000000000000..57c9c7e3da7d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/timeparsers/default.nix
@@ -0,0 +1,13 @@
+{ cabal, attoparsec, convertible, mtl, time }:
+
+cabal.mkDerivation (self: {
+  pname = "timeparsers";
+  version = "0.3.2";
+  sha256 = "1dicp58f2amn5rgmnlfjpv4aj7ak6jrdlba2marglddvj4ycq1h7";
+  buildDepends = [ attoparsec convertible mtl time ];
+  meta = {
+    description = "Attoparsec parsers for various Date/Time formats";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/timezone-olson/default.nix b/pkgs/development/libraries/haskell/timezone-olson/default.nix
index 4cce59f61658..6a0e81383f74 100644
--- a/pkgs/development/libraries/haskell/timezone-olson/default.nix
+++ b/pkgs/development/libraries/haskell/timezone-olson/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "timezone-olson";
-  version = "0.1.3";
-  sha256 = "02x3wq03h2zjhxrcv6vnq9hrzggdvpnj7zj8rcrq4scf67q6h8gc";
+  version = "0.1.4";
+  sha256 = "1l5j6gqi9vlx7sifn7vv3by4z9ha3h6klfds4ywqv3dv0gh5725k";
   buildDepends = [ binary extensibleExceptions time timezoneSeries ];
   meta = {
     homepage = "http://projects.haskell.org/time-ng/";
diff --git a/pkgs/development/libraries/haskell/tls/1.2.2.nix b/pkgs/development/libraries/haskell/tls/1.2.6.nix
index 638299d4a426..15019265f911 100644
--- a/pkgs/development/libraries/haskell/tls/1.2.2.nix
+++ b/pkgs/development/libraries/haskell/tls/1.2.6.nix
@@ -1,5 +1,5 @@
-{ cabal, asn1Encoding, asn1Types, cereal, cipherAes, cipherRc4
-, cprngAes, cryptohash, cryptoNumbers, cryptoPubkey
+{ cabal, asn1Encoding, asn1Types, byteable, cereal, cipherAes
+, cipherRc4, cprngAes, cryptohash, cryptoNumbers, cryptoPubkey
 , cryptoPubkeyTypes, cryptoRandom, dataDefaultClass, mtl, network
 , QuickCheck, testFramework, testFrameworkQuickcheck2, time, x509
 , x509Store, x509Validation
@@ -7,12 +7,13 @@
 
 cabal.mkDerivation (self: {
   pname = "tls";
-  version = "1.2.2";
-  sha256 = "156l859mfpdax5rg1frwa5ms5bzggaja0mi795hh8i5c3ah7hfcp";
+  version = "1.2.6";
+  sha256 = "16r60acz9q84dv91jms9qaqvc53r98761ap9ijj3pifizzxcyswi";
   buildDepends = [
-    asn1Encoding asn1Types cereal cipherAes cipherRc4 cryptohash
-    cryptoNumbers cryptoPubkey cryptoPubkeyTypes cryptoRandom
-    dataDefaultClass mtl network x509 x509Store x509Validation
+    asn1Encoding asn1Types byteable cereal cipherAes cipherRc4
+    cryptohash cryptoNumbers cryptoPubkey cryptoPubkeyTypes
+    cryptoRandom dataDefaultClass mtl network x509 x509Store
+    x509Validation
   ];
   testDepends = [
     cereal cprngAes cryptoPubkey cryptoRandom dataDefaultClass mtl
diff --git a/pkgs/development/libraries/haskell/tree-view/default.nix b/pkgs/development/libraries/haskell/tree-view/default.nix
new file mode 100644
index 000000000000..7ceefb815d8d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/tree-view/default.nix
@@ -0,0 +1,13 @@
+{ cabal, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "tree-view";
+  version = "0.4";
+  sha256 = "0mzywp6nipc6zs98dy4ny2s3r9d745lqpjazfnj5y4hx8swyckgn";
+  buildDepends = [ mtl ];
+  meta = {
+    description = "Render trees as foldable HTML and Unicode art";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/trifecta/default.nix b/pkgs/development/libraries/haskell/trifecta/default.nix
index d9a9a2a01c5a..09f3b112c1b7 100644
--- a/pkgs/development/libraries/haskell/trifecta/default.nix
+++ b/pkgs/development/libraries/haskell/trifecta/default.nix
@@ -6,25 +6,14 @@
 
 cabal.mkDerivation (self: {
   pname = "trifecta";
-  version = "1.4.1";
-  sha256 = "0w8x9n7n57y997iajm42z44nm846fj88shc04dffn1xif3jw5zfc";
+  version = "1.4.2";
+  sha256 = "13kj1xz2bxixsqsrywdx3snl1hjkyv437ifwfrys1m4hnkv4aqai";
   buildDepends = [
     ansiTerminal ansiWlPprint blazeBuilder blazeHtml blazeMarkup
     charset comonad deepseq fingertree hashable lens mtl parsers
     reducers semigroups transformers unorderedContainers utf8String
   ];
   testDepends = [ doctest filepath ];
-  postPatch = ''
-    substituteInPlace trifecta.cabal \
-      --replace "blaze-html           >= 0.5     && < 0.6," "blaze-html           >= 0.5     && < 0.8," \
-      --replace "blaze-html           >= 0.5     && < 0.7," "blaze-html           >= 0.5     && < 0.8," \
-      --replace "blaze-markup         >= 0.5     && < 0.6," "blaze-markup         >= 0.5     && < 0.7," \
-      --replace "hashable             >= 1.2.1   && < 1.3," "hashable             >= 1.1     && < 1.3," \
-      --replace "hashable             >= 1.2     && < 1.3," "hashable             >= 1.1     && < 1.3," \
-      --replace "fingertree           >= 0.0.1   && < 0.1," "fingertree           >= 0.0.1   && < 0.2," \
-      --replace "comonad              == 3.*,"              "comonad              >= 3       && < 5," \
-      --replace "comonad              >= 3       && < 4,"   "comonad              >= 3       && < 5,"
-  '';
   meta = {
     homepage = "http://github.com/ekmett/trifecta/";
     description = "A modern parser combinator library with convenient diagnostics";
diff --git a/pkgs/development/libraries/haskell/twitter-conduit/default.nix b/pkgs/development/libraries/haskell/twitter-conduit/default.nix
new file mode 100644
index 000000000000..4d14ed4582af
--- /dev/null
+++ b/pkgs/development/libraries/haskell/twitter-conduit/default.nix
@@ -0,0 +1,28 @@
+{ cabal, aeson, attoparsec, attoparsecConduit, authenticateOauth
+, conduit, dataDefault, doctest, failure, filepath, hlint
+, httpClient, httpConduit, httpTypes, lens, liftedBase
+, monadControl, monadLogger, resourcet, shakespeare, text, time
+, transformers, transformersBase, twitterTypes
+}:
+
+cabal.mkDerivation (self: {
+  pname = "twitter-conduit";
+  version = "0.0.2.1";
+  sha256 = "1z0d8hwjrdw8gkww9zkn9cqv3g40my952li8pm3c164d7ywswszq";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    aeson attoparsec attoparsecConduit authenticateOauth conduit
+    dataDefault failure httpClient httpConduit httpTypes lens
+    liftedBase monadControl monadLogger resourcet shakespeare text time
+    transformers transformersBase twitterTypes
+  ];
+  testDepends = [ doctest filepath hlint ];
+  meta = {
+    homepage = "https://github.com/himura/twitter-conduit";
+    description = "Twitter API package with conduit interface and Streaming API support";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.ocharles ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/twitter-types/default.nix b/pkgs/development/libraries/haskell/twitter-types/default.nix
new file mode 100644
index 000000000000..05c37c02f417
--- /dev/null
+++ b/pkgs/development/libraries/haskell/twitter-types/default.nix
@@ -0,0 +1,23 @@
+{ cabal, aeson, attoparsec, httpTypes, HUnit, shakespeare
+, testFramework, testFrameworkHunit, testFrameworkThPrime, text
+, unorderedContainers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "twitter-types";
+  version = "0.2.20140407";
+  sha256 = "171m7fqq82g630r1x5advq04qfkdljvc8d8ygyafr2x44ss2a996";
+  buildDepends = [ aeson httpTypes text unorderedContainers ];
+  testDepends = [
+    aeson attoparsec httpTypes HUnit shakespeare testFramework
+    testFrameworkHunit testFrameworkThPrime text unorderedContainers
+  ];
+  doCheck = false;
+  meta = {
+    homepage = "https://github.com/himura/twitter-types";
+    description = "Twitter JSON parser and types";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.ocharles ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/type-level-natural-number/default.nix b/pkgs/development/libraries/haskell/type-level-natural-number/default.nix
index 8dff0ffd58fc..62690186ee8f 100644
--- a/pkgs/development/libraries/haskell/type-level-natural-number/default.nix
+++ b/pkgs/development/libraries/haskell/type-level-natural-number/default.nix
@@ -2,10 +2,10 @@
 
 cabal.mkDerivation (self: {
   pname = "type-level-natural-number";
-  version = "1.1.1";
-  sha256 = "1zc26nckpcixxp1m818jhzi3dj1ysnjfc2xliq4rpmf5583k6mjw";
+  version = "2.0";
+  sha256 = "17zgm5ys1z61kxxczz3bzi9m3c48py6pvyx3cqk3xlh1w7n58ryk";
   meta = {
-    description = "Simple, Haskell 2010-compatible type level natural numbers";
+    description = "Simple type level natural numbers";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/unbounded-delays/default.nix b/pkgs/development/libraries/haskell/unbounded-delays/default.nix
index 69f6ac60ac36..78484a2a75ab 100644
--- a/pkgs/development/libraries/haskell/unbounded-delays/default.nix
+++ b/pkgs/development/libraries/haskell/unbounded-delays/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "unbounded-delays";
-  version = "0.1.0.6";
-  sha256 = "0yykb9jqxhvbngvp2gbzb0ch2cmzdxx8km62dclyvr3xbv6hk1h7";
+  version = "0.1.0.7";
+  sha256 = "1nv50i90hgvcl51w7s8x1c1ylpzyrbvs2mz5zfn68lr1ix2lk879";
   meta = {
     homepage = "https://github.com/basvandijk/unbounded-delays";
     description = "Unbounded thread delays and timeouts";
diff --git a/pkgs/development/libraries/haskell/unix-bytestring/default.nix b/pkgs/development/libraries/haskell/unix-bytestring/default.nix
index 174fc925aae7..484ab6148a2a 100644
--- a/pkgs/development/libraries/haskell/unix-bytestring/default.nix
+++ b/pkgs/development/libraries/haskell/unix-bytestring/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "unix-bytestring";
-  version = "0.3.7";
-  sha256 = "1qwgs2bwga057csfa8izq0kc5vwi2vcaz2snlcgp0h9vql3qmvrg";
+  version = "0.3.7.2";
+  sha256 = "0n1i7pcdwhs0wz6spf3pndr8i74qn0cdzr3p46w4r4mvvwr76i2s";
   meta = {
     homepage = "http://code.haskell.org/~wren/";
     description = "Unix/Posix-specific functions for ByteStrings";
diff --git a/pkgs/development/libraries/haskell/unix-process-conduit/default.nix b/pkgs/development/libraries/haskell/unix-process-conduit/default.nix
index a52f9fe04fb6..73343bf307bc 100644
--- a/pkgs/development/libraries/haskell/unix-process-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/unix-process-conduit/default.nix
@@ -2,13 +2,13 @@
 
 cabal.mkDerivation (self: {
   pname = "unix-process-conduit";
-  version = "0.2.2.2";
-  sha256 = "0an4lwwkzr902r0rxa35i9kdm5cpgdfmg5m06zsxzbck3mry7871";
+  version = "0.2.2.3";
+  sha256 = "0ldgjwdvshggygxn9fpnxvb01dba0q0bn9f7iiw5xgqhli46nvcy";
   buildDepends = [ conduit filepath stm time transformers ];
   testDepends = [ conduit hspec transformers ];
   meta = {
     homepage = "https://github.com/snoyberg/conduit";
-    description = "Run processes on Unix systems, with a conduit interface";
+    description = "Run processes on Unix systems, with a conduit interface (deprecated)";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/unix-time/default.nix b/pkgs/development/libraries/haskell/unix-time/default.nix
index 0ca4ea5f5c24..e329c1ef4067 100644
--- a/pkgs/development/libraries/haskell/unix-time/default.nix
+++ b/pkgs/development/libraries/haskell/unix-time/default.nix
@@ -5,6 +5,7 @@ cabal.mkDerivation (self: {
   version = "0.2.2";
   sha256 = "0xnl12mscc5nwjl9s2lx4xr8q8agzcpxh3bmxxidfjrg19drfwrm";
   testDepends = [ doctest hspec QuickCheck time ];
+  configureFlags = self.stdenv.lib.optionalString self.enableSharedLibraries "--ghc-option=-fPIC";
   meta = {
     description = "Unix time parser/formatter and utilities";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/uri/default.nix b/pkgs/development/libraries/haskell/uri/default.nix
new file mode 100644
index 000000000000..aa94c931e541
--- /dev/null
+++ b/pkgs/development/libraries/haskell/uri/default.nix
@@ -0,0 +1,14 @@
+{ cabal, parsec, safe, utf8String }:
+
+cabal.mkDerivation (self: {
+  pname = "uri";
+  version = "0.1.6.2";
+  sha256 = "0f2ms8awm4x7pw8ms6in0mxspqmnhv8bxas0947rkrzc5m9k0h3s";
+  buildDepends = [ parsec safe utf8String ];
+  meta = {
+    homepage = "http://gitorious.org/uri";
+    description = "Library for working with URIs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/vacuum-graphviz/default.nix b/pkgs/development/libraries/haskell/vacuum-graphviz/default.nix
new file mode 100644
index 000000000000..2db9e3c83c12
--- /dev/null
+++ b/pkgs/development/libraries/haskell/vacuum-graphviz/default.nix
@@ -0,0 +1,14 @@
+{ cabal, filepath, graphviz, vacuum }:
+
+cabal.mkDerivation (self: {
+  pname = "vacuum-graphviz";
+  version = "2.1.0.1";
+  sha256 = "093ba6n30a6gyifnk3bd50rkx8qldjqq9vsk92pnq152ibs36b2m";
+  buildDepends = [ filepath graphviz vacuum ];
+  jailbreak = true;
+  meta = {
+    description = "A library for transforming vacuum graphs into GraphViz output";
+    license = self.stdenv.lib.licenses.gpl3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/vty/default.nix b/pkgs/development/libraries/haskell/vty/default.nix
index 3bcadc78a978..8a8ed40adb44 100644
--- a/pkgs/development/libraries/haskell/vty/default.nix
+++ b/pkgs/development/libraries/haskell/vty/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "vty";
-  version = "4.7.3";
-  sha256 = "0x059mzw6v2xf92fdhy0ilyqbics2as6dqrdr6njpp0m6qykkybb";
+  version = "4.7.5";
+  sha256 = "0ahd5qjszfw1xbl5jxhzfw31mny8hp8clw9qciv15xn442prvvpr";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/wai-app-static/default.nix b/pkgs/development/libraries/haskell/wai-app-static/default.nix
index 412fd3f16e6c..45dd5562a28b 100644
--- a/pkgs/development/libraries/haskell/wai-app-static/default.nix
+++ b/pkgs/development/libraries/haskell/wai-app-static/default.nix
@@ -1,19 +1,22 @@
 { cabal, base64Bytestring, blazeBuilder, blazeHtml, blazeMarkup
-, cereal, cryptoApi, cryptoConduit, cryptohashCryptoapi, fileEmbed
-, filepath, hspec, httpDate, httpTypes, mimeTypes, network
-, systemFileio, systemFilepath, text, time, transformers
-, unixCompat, unorderedContainers, wai, waiTest, zlib
+, byteable, cryptohash, cryptohashConduit, fileEmbed, filepath
+, hspec, httpDate, httpTypes, mimeTypes, network
+, optparseApplicative, systemFileio, systemFilepath, text, time
+, transformers, unixCompat, unorderedContainers, wai, waiExtra
+, waiTest, warp, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "wai-app-static";
-  version = "2.0.0.3";
-  sha256 = "0anbmp6wjk1qba1skr08fkm5y9lm58kfghzcgzgx8hrid7w85fb7";
+  version = "2.0.1";
+  sha256 = "1mygyp70rmhnkc0s8626cxrkvcbil92v4gnx70iz26gfb5q9lc7d";
+  isLibrary = true;
+  isExecutable = true;
   buildDepends = [
-    base64Bytestring blazeBuilder blazeHtml blazeMarkup cereal
-    cryptoApi cryptoConduit cryptohashCryptoapi fileEmbed filepath
-    httpDate httpTypes mimeTypes systemFileio systemFilepath text time
-    transformers unixCompat unorderedContainers wai zlib
+    base64Bytestring blazeBuilder blazeHtml blazeMarkup byteable
+    cryptohash cryptohashConduit fileEmbed filepath httpDate httpTypes
+    mimeTypes optparseApplicative systemFileio systemFilepath text time
+    transformers unixCompat unorderedContainers wai waiExtra warp zlib
   ];
   testDepends = [
     hspec httpDate httpTypes mimeTypes network text time transformers
diff --git a/pkgs/development/libraries/haskell/wai-extra/default.nix b/pkgs/development/libraries/haskell/wai-extra/default.nix
index 50e4d983d755..ef91a8726874 100644
--- a/pkgs/development/libraries/haskell/wai-extra/default.nix
+++ b/pkgs/development/libraries/haskell/wai-extra/default.nix
@@ -1,23 +1,24 @@
 { cabal, ansiTerminal, base64Bytestring, blazeBuilder
-, blazeBuilderConduit, caseInsensitive, conduit, dataDefault
-, fastLogger, hspec, httpTypes, HUnit, liftedBase, network
-, resourcet, stringsearch, text, time, transformers, void, wai
-, waiLogger, waiTest, word8, zlib, zlibBindings, zlibConduit
+, blazeBuilderConduit, caseInsensitive, conduit, conduitExtra
+, dataDefault, fastLogger, hspec, httpTypes, HUnit, liftedBase
+, network, resourcet, stringsearch, text, time, transformers, void
+, wai, waiLogger, waiTest, word8, zlib, zlibBindings, zlibConduit
 }:
 
 cabal.mkDerivation (self: {
   pname = "wai-extra";
-  version = "2.1.0";
-  sha256 = "14aj1c6i58jyg79y516sa2l39y4i7az3l5lp6fkxkgqgzl5dxs6c";
+  version = "2.1.1.1";
+  sha256 = "1mqpy1klr4b5dvgk89hqyd8c2vg7rl0vypy3m9hxr2r4bzifkqc1";
   buildDepends = [
     ansiTerminal base64Bytestring blazeBuilder blazeBuilderConduit
-    caseInsensitive conduit dataDefault fastLogger httpTypes liftedBase
-    network resourcet stringsearch text time transformers void wai
-    waiLogger word8 zlibConduit
+    caseInsensitive conduit conduitExtra dataDefault fastLogger
+    httpTypes liftedBase network resourcet stringsearch text time
+    transformers void wai waiLogger word8 zlibConduit
   ];
   testDepends = [
-    blazeBuilder conduit dataDefault fastLogger hspec httpTypes HUnit
-    resourcet text transformers wai waiTest zlib zlibBindings
+    blazeBuilder conduit conduitExtra dataDefault fastLogger hspec
+    httpTypes HUnit resourcet text transformers wai waiTest zlib
+    zlibBindings
   ];
   jailbreak = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/wai-handler-launch/default.nix b/pkgs/development/libraries/haskell/wai-handler-launch/default.nix
index f25206e69acf..9be534725825 100644
--- a/pkgs/development/libraries/haskell/wai-handler-launch/default.nix
+++ b/pkgs/development/libraries/haskell/wai-handler-launch/default.nix
@@ -1,14 +1,14 @@
-{ cabal, blazeBuilder, blazeBuilderConduit, conduit, httpTypes
-, transformers, wai, warp, zlibConduit
+{ cabal, blazeBuilder, blazeBuilderConduit, conduit, conduitExtra
+, httpTypes, transformers, wai, warp, zlibConduit
 }:
 
 cabal.mkDerivation (self: {
   pname = "wai-handler-launch";
-  version = "2.0.1.1";
-  sha256 = "10izbri1a8mjb2q4r1badw63qbp3vxnw5v2hzskq6911bckqkskc";
+  version = "2.0.1.2";
+  sha256 = "1mcjxv4dkcc5rx1bj8zc5m2q2ifcdwhsl4x4fnrv1ir9kclzsm7q";
   buildDepends = [
-    blazeBuilder blazeBuilderConduit conduit httpTypes transformers wai
-    warp zlibConduit
+    blazeBuilder blazeBuilderConduit conduit conduitExtra httpTypes
+    transformers wai warp zlibConduit
   ];
   meta = {
     description = "Launch a web app in the default browser";
diff --git a/pkgs/development/libraries/haskell/wai-middleware-static/default.nix b/pkgs/development/libraries/haskell/wai-middleware-static/default.nix
index e496d5266db3..8c0540ee1014 100644
--- a/pkgs/development/libraries/haskell/wai-middleware-static/default.nix
+++ b/pkgs/development/libraries/haskell/wai-middleware-static/default.nix
@@ -2,13 +2,13 @@
 
 cabal.mkDerivation (self: {
   pname = "wai-middleware-static";
-  version = "0.4.0.2";
-  sha256 = "0nw54h8baphjdwsd118g9j5w4g2mnb2hrny0n4ih4jlqlcqam3lf";
+  version = "0.5.0.0";
+  sha256 = "0mvsm1ff7i2v09gchkc60r8klin1lb0w690m2kwhf9q6y7fxphdf";
   buildDepends = [ filepath httpTypes mtl text wai ];
   jailbreak = true;
   meta = {
     homepage = "https://github.com/scotty-web/scotty";
-    description = "WAI middleware that intercepts requests to static files";
+    description = "WAI middleware that serves requests to static files";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/wai-test/default.nix b/pkgs/development/libraries/haskell/wai-test/default.nix
index 1d7b184d6dfd..e55bf8805e35 100644
--- a/pkgs/development/libraries/haskell/wai-test/default.nix
+++ b/pkgs/development/libraries/haskell/wai-test/default.nix
@@ -1,15 +1,15 @@
 { cabal, blazeBuilder, blazeBuilderConduit, caseInsensitive
-, conduit, cookie, hspec, httpTypes, HUnit, network, text
-, transformers, wai
+, conduit, conduitExtra, cookie, deepseq, hspec, httpTypes, network
+, text, transformers, wai
 }:
 
 cabal.mkDerivation (self: {
   pname = "wai-test";
-  version = "2.0.0.2";
-  sha256 = "0085whb8jav2zasmgi8z62anm6i509lc2w0988vqlcrds7rrknc8";
+  version = "2.0.1.1";
+  sha256 = "08mkn6v8kxlcn2qb5rz9m5mqzl9wy43mxs2jzl1gavkf9bhwc93s";
   buildDepends = [
-    blazeBuilder blazeBuilderConduit caseInsensitive conduit cookie
-    httpTypes HUnit network text transformers wai
+    blazeBuilder blazeBuilderConduit caseInsensitive conduit
+    conduitExtra cookie deepseq httpTypes network text transformers wai
   ];
   testDepends = [ hspec wai ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/wai-websockets/default.nix b/pkgs/development/libraries/haskell/wai-websockets/default.nix
index 4b4038fd4111..5558f2e32ce1 100644
--- a/pkgs/development/libraries/haskell/wai-websockets/default.nix
+++ b/pkgs/development/libraries/haskell/wai-websockets/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "wai-websockets";
-  version = "2.1.0";
-  sha256 = "094imqhkn4ghifgp2qhs4hnby3zzdd84fhmyvvy7igcpz1rmll7a";
+  version = "2.1.0.1";
+  sha256 = "1ic1wgfp16j6lhypn1psmicafjavbhq5rvm32xqwkb65abhpg571";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/wai/default.nix b/pkgs/development/libraries/haskell/wai/default.nix
index f17b999f1497..18c6e08c0b36 100644
--- a/pkgs/development/libraries/haskell/wai/default.nix
+++ b/pkgs/development/libraries/haskell/wai/default.nix
@@ -1,13 +1,14 @@
-{ cabal, blazeBuilder, conduit, httpTypes, network, text
-, transformers, vault
+{ cabal, blazeBuilder, conduit, conduitExtra, httpTypes, network
+, text, transformers, vault
 }:
 
 cabal.mkDerivation (self: {
   pname = "wai";
-  version = "2.1.0";
-  sha256 = "0n3dgm1pwv9baxrx0qh0iq1mh9i7ihhki3h4ks5k74d37w7bwcjy";
+  version = "2.1.0.2";
+  sha256 = "02hj07s3vlhbd2hds5pyksghildadjqhr8mmiyabwb7ap8iybidg";
   buildDepends = [
-    blazeBuilder conduit httpTypes network text transformers vault
+    blazeBuilder conduit conduitExtra httpTypes network text
+    transformers vault
   ];
   meta = {
     homepage = "https://github.com/yesodweb/wai";
diff --git a/pkgs/development/libraries/haskell/warp-tls/default.nix b/pkgs/development/libraries/haskell/warp-tls/default.nix
index c21e3b0d4328..cca9da9eb3df 100644
--- a/pkgs/development/libraries/haskell/warp-tls/default.nix
+++ b/pkgs/development/libraries/haskell/warp-tls/default.nix
@@ -1,14 +1,15 @@
-{ cabal, conduit, cprngAes, dataDefaultClass, network
-, networkConduit, tls, transformers, wai, warp
+{ cabal, conduit, conduitExtra, cprngAes, dataDefaultClass, network
+, networkConduit, resourcet, streamingCommons, tls, transformers
+, wai, warp
 }:
 
 cabal.mkDerivation (self: {
   pname = "warp-tls";
-  version = "2.0.3.1";
-  sha256 = "1cyf4syblisi5hana7h2g72yyrjln40v3b6jq2253nglqip79l5w";
+  version = "2.0.3.3";
+  sha256 = "03fjghsa9zvrvg7ickph577zzr62n91gsb99v9k47s4nd2xri2rj";
   buildDepends = [
-    conduit cprngAes dataDefaultClass network networkConduit tls
-    transformers wai warp
+    conduit conduitExtra cprngAes dataDefaultClass network
+    networkConduit resourcet streamingCommons tls transformers wai warp
   ];
   meta = {
     homepage = "http://github.com/yesodweb/wai";
diff --git a/pkgs/development/libraries/haskell/warp/default.nix b/pkgs/development/libraries/haskell/warp/default.nix
index 7ebc7af36270..75ccd0e6f5d4 100644
--- a/pkgs/development/libraries/haskell/warp/default.nix
+++ b/pkgs/development/libraries/haskell/warp/default.nix
@@ -1,23 +1,25 @@
-{ cabal, blazeBuilder, blazeBuilderConduit, caseInsensitive
-, conduit, doctest, hashable, hspec, HTTP, httpDate, httpTypes
-, HUnit, liftedBase, network, networkConduit, QuickCheck
-, simpleSendfile, time, transformers, unixCompat, void, wai
+{ cabal, async, blazeBuilder, blazeBuilderConduit, caseInsensitive
+, conduit, conduitExtra, doctest, hashable, hspec, HTTP, httpDate
+, httpTypes, HUnit, liftedBase, network, networkConduit, QuickCheck
+, simpleSendfile, streamingCommons, text, time, transformers
+, unixCompat, void, wai
 }:
 
 cabal.mkDerivation (self: {
   pname = "warp";
-  version = "2.1.1";
-  sha256 = "1nldm0pq1q5m91mhss4h23dxdqwqmvfdmcpq5grc1rqjb88mgm25";
+  version = "2.1.4";
+  sha256 = "090xbjqwj8wzxiaal2jdsk7dbqv07c1cw32w7v8xxi2dkvv6nwbb";
   buildDepends = [
-    blazeBuilder blazeBuilderConduit caseInsensitive conduit hashable
-    httpDate httpTypes liftedBase network networkConduit simpleSendfile
-    transformers unixCompat void wai
+    blazeBuilder blazeBuilderConduit caseInsensitive conduit
+    conduitExtra hashable httpDate httpTypes liftedBase network
+    networkConduit simpleSendfile streamingCommons text transformers
+    unixCompat void wai
   ];
   testDepends = [
-    blazeBuilder blazeBuilderConduit caseInsensitive conduit doctest
-    hashable hspec HTTP httpDate httpTypes HUnit liftedBase network
-    networkConduit QuickCheck simpleSendfile time transformers
-    unixCompat void wai
+    async blazeBuilder blazeBuilderConduit caseInsensitive conduit
+    conduitExtra doctest hashable hspec HTTP httpDate httpTypes HUnit
+    liftedBase network networkConduit QuickCheck simpleSendfile
+    streamingCommons text time transformers unixCompat void wai
   ];
   doCheck = false;
   meta = {
diff --git a/pkgs/development/libraries/haskell/websockets/default.nix b/pkgs/development/libraries/haskell/websockets/default.nix
index c0d500ace719..cc5caddb6ec9 100644
--- a/pkgs/development/libraries/haskell/websockets/default.nix
+++ b/pkgs/development/libraries/haskell/websockets/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "websockets";
-  version = "0.8.2.0";
-  sha256 = "1gphlil7n0g9y6vqwyn9fc4sl2ccninznc59p11052j8q6yb34ia";
+  version = "0.8.2.1";
+  sha256 = "0ayh20a6xj3ab9ld3lmrazx94vbbf1xn65nxcpkq7cvm8ggim7a6";
   buildDepends = [
     attoparsec base64Bytestring binary blazeBuilder caseInsensitive
     entropy ioStreams mtl network random SHA text
diff --git a/pkgs/development/libraries/haskell/wxHaskell/fix-bogus-pointer-assignment.patch b/pkgs/development/libraries/haskell/wxHaskell/fix-bogus-pointer-assignment.patch
deleted file mode 100644
index 38551d24d43f..000000000000
--- a/pkgs/development/libraries/haskell/wxHaskell/fix-bogus-pointer-assignment.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -ubr wxc-0.90.0.4-orig/src/cpp/eljpen.cpp wxc-0.90.0.4/src/cpp/eljpen.cpp
---- wxc-0.90.0.4-orig/src/cpp/eljpen.cpp	2012-07-03 12:12:17.000000000 +0200
-+++ wxc-0.90.0.4/src/cpp/eljpen.cpp	2013-01-07 12:09:50.296417007 +0100
-@@ -156,7 +156,7 @@
- EWXWEXPORT(void,wxPen_GetStipple)(void* self,wxBitmap* _ref)

- {

- #if defined(__WXGTK__)

--    *_ref = NULL;

-+    _ref = NULL;

- #else

-     *_ref = *(((wxPen*)self)->GetStipple());

- #endif

-Only in wxc-0.90.0.4/src/cpp: eljpen.cpp.orig
diff --git a/pkgs/development/libraries/haskell/wxHaskell/wx.nix b/pkgs/development/libraries/haskell/wxHaskell/wx.nix
index dc030f68059a..90bfdc5ca0a3 100644
--- a/pkgs/development/libraries/haskell/wxHaskell/wx.nix
+++ b/pkgs/development/libraries/haskell/wxHaskell/wx.nix
@@ -2,9 +2,10 @@
 
 cabal.mkDerivation (self: {
   pname = "wx";
-  version = "0.90.0.1";
-  sha256 = "116vlpssjcyzil99xmz3azc2vl97iban3gdpxd593q5gi24l838m";
+  version = "0.90.1.0";
+  sha256 = "1669mrd73c3v7c4yc0zgyqsnfgzb7561v1wd168y06d0db1nlkn9";
   buildDepends = [ stm wxcore ];
+  preConfigure = "find . -type f -exec touch {} +";
   meta = {
     homepage = "http://haskell.org/haskellwiki/WxHaskell";
     description = "wxHaskell";
diff --git a/pkgs/development/libraries/haskell/wxHaskell/wxc.nix b/pkgs/development/libraries/haskell/wxHaskell/wxc.nix
index d95b07121af1..b816c3007f99 100644
--- a/pkgs/development/libraries/haskell/wxHaskell/wxc.nix
+++ b/pkgs/development/libraries/haskell/wxHaskell/wxc.nix
@@ -2,15 +2,14 @@
 
 cabal.mkDerivation (self: {
   pname = "wxc";
-  version = "0.90.0.4";
-  sha256 = "1bh20i1rb8ng0ni1v98nm8qv5wni19dvxwf5i3ijxhrxqdq4i7p6";
+  version = "0.90.1.1";
+  sha256 = "0cvfphskvsq3lsl24h6jh8r6yw5jg8qa9wdc883yasfvmzmxwwgc";
   buildDepends = [ wxdirect ];
   extraLibraries = [ libX11 mesa wxGTK ];
+  noHaddock = true;
   postInstall = ''
     cp -v dist/build/libwxc.so.${self.version} $out/lib/libwxc.so
   '';
-  patches = [ ./fix-bogus-pointer-assignment.patch ];
-  noHaddock = true;
   meta = {
     homepage = "http://haskell.org/haskellwiki/WxHaskell";
     description = "wxHaskell C++ wrapper";
diff --git a/pkgs/development/libraries/haskell/wxHaskell/wxcore.nix b/pkgs/development/libraries/haskell/wxHaskell/wxcore.nix
index 5dde5e8fc3f6..ae01992db975 100644
--- a/pkgs/development/libraries/haskell/wxHaskell/wxcore.nix
+++ b/pkgs/development/libraries/haskell/wxHaskell/wxcore.nix
@@ -4,13 +4,10 @@
 
 cabal.mkDerivation (self: {
   pname = "wxcore";
-  version = "0.90.0.3";
-  sha256 = "0d79hr6cz9zj3w57h6630nfnsmfq1w73gz04jjmlhwh8ih557imw";
+  version = "0.90.1.1";
+  sha256 = "1ma6vjf87b493vz3sj6hxzifqixk62n6b5gvixpfzfig1lysddgp";
   buildDepends = [ filepath parsec stm time wxc wxdirect ];
   extraLibraries = [ libX11 mesa wxGTK ];
-  patchPhase = ''
-    sed -i -e 's|containers >=.*|containers|' wxcore.cabal
-  '';
   meta = {
     homepage = "http://haskell.org/haskellwiki/WxHaskell";
     description = "wxHaskell core";
diff --git a/pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix b/pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix
index 08512c206255..63bc82d6f67b 100644
--- a/pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix
+++ b/pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix
@@ -1,15 +1,12 @@
-{ cabal, parsec, strict, time }:
+{ cabal, filepath, parsec, strict, time }:
 
 cabal.mkDerivation (self: {
   pname = "wxdirect";
-  version = "0.90.0.1";
-  sha256 = "04jslgxw601g6wh8f2wrdnipzh6x0487kfxb89fkgfgjhxrkfyr3";
+  version = "0.90.1.1";
+  sha256 = "0ibhxl4n66w094jhca01z2vmibgz0nn7qddgxzqngvajzjvnha98";
   isLibrary = true;
   isExecutable = true;
-  buildDepends = [ parsec strict time ];
-  patchPhase = ''
-    sed -i -e 's|containers >=.*|containers|' wxdirect.cabal
-  '';
+  buildDepends = [ filepath parsec strict time ];
   meta = {
     homepage = "http://haskell.org/haskellwiki/WxHaskell";
     description = "helper tool for building wxHaskell";
diff --git a/pkgs/development/libraries/haskell/xml-conduit/default.nix b/pkgs/development/libraries/haskell/xml-conduit/default.nix
index 28a5beb966f8..d31f1d0e70d7 100644
--- a/pkgs/development/libraries/haskell/xml-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/xml-conduit/default.nix
@@ -1,20 +1,21 @@
 { cabal, attoparsec, attoparsecConduit, blazeBuilder
-, blazeBuilderConduit, blazeHtml, blazeMarkup, conduit, dataDefault
-, deepseq, failure, hspec, HUnit, monadControl, resourcet
-, systemFilepath, text, transformers, xmlTypes
+, blazeBuilderConduit, blazeHtml, blazeMarkup, conduit
+, conduitExtra, dataDefault, deepseq, hspec, HUnit, monadControl
+, resourcet, systemFilepath, text, transformers, xmlTypes
 }:
 
 cabal.mkDerivation (self: {
   pname = "xml-conduit";
-  version = "1.1.0.9";
-  sha256 = "01sx8yblknv0dyi7z6k6icfvwjvl4dyhrka1d6y1793xcp1mkxs6";
+  version = "1.2.0.1";
+  sha256 = "0ry3h1csblssv2x8b63hvl2gqc0wyzyqbvp6iyisrk77wkz72jw9";
   buildDepends = [
     attoparsec attoparsecConduit blazeBuilder blazeBuilderConduit
-    blazeHtml blazeMarkup conduit dataDefault deepseq failure
+    blazeHtml blazeMarkup conduit conduitExtra dataDefault deepseq
     monadControl resourcet systemFilepath text transformers xmlTypes
   ];
   testDepends = [
-    blazeMarkup conduit hspec HUnit text transformers xmlTypes
+    blazeMarkup conduit hspec HUnit resourcet text transformers
+    xmlTypes
   ];
   meta = {
     homepage = "http://github.com/snoyberg/xml";
diff --git a/pkgs/development/libraries/haskell/xml-hamlet/default.nix b/pkgs/development/libraries/haskell/xml-hamlet/default.nix
index 885620f0648a..346891cc68d5 100644
--- a/pkgs/development/libraries/haskell/xml-hamlet/default.nix
+++ b/pkgs/development/libraries/haskell/xml-hamlet/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "xml-hamlet";
-  version = "0.4.0.6";
-  sha256 = "05izdqpxw0gq2wgs4ckr55xvzfk5ay7xpbcvihj66myiah5azqwy";
+  version = "0.4.0.7";
+  sha256 = "05rygs3ja3zc87az151mkbm4llrnshzrqf1mfpbwx4ysfgjkvq7b";
   buildDepends = [ parsec shakespeare text xmlConduit ];
   testDepends = [ hspec HUnit parsec shakespeare text xmlConduit ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/xss-sanitize/default.nix b/pkgs/development/libraries/haskell/xss-sanitize/default.nix
index e92d761edcbc..31f7a06c1fe2 100644
--- a/pkgs/development/libraries/haskell/xss-sanitize/default.nix
+++ b/pkgs/development/libraries/haskell/xss-sanitize/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "xss-sanitize";
-  version = "0.3.5";
-  sha256 = "13iggcivpvzlzlx0n1pb6lyw55lc7d7hzihf1llphq6lmdy6l49s";
+  version = "0.3.5.2";
+  sha256 = "1lkawsing0x776078qi1565aj1nr4smxhql1xzfw0bjihbgs1d6b";
   buildDepends = [
     attoparsec cssText network tagsoup text utf8String
   ];
diff --git a/pkgs/development/libraries/haskell/yaml/default.nix b/pkgs/development/libraries/haskell/yaml/default.nix
index 35106292f85e..5b0d4ad3f470 100644
--- a/pkgs/development/libraries/haskell/yaml/default.nix
+++ b/pkgs/development/libraries/haskell/yaml/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yaml";
-  version = "0.8.7.2";
-  sha256 = "00dmmws0gmp9fb2ha6z055ix7jlsiry24bwhkl226b680gi9a84d";
+  version = "0.8.8.1";
+  sha256 = "1lkw05rx88jckzlkslb945zswn6g7i3vxsgxpj9pkcxvh3y9zagv";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -13,8 +13,8 @@ cabal.mkDerivation (self: {
     unorderedContainers vector
   ];
   testDepends = [
-    aeson conduit hspec HUnit text transformers unorderedContainers
-    vector
+    aeson conduit hspec HUnit resourcet text transformers
+    unorderedContainers vector
   ];
   meta = {
     homepage = "http://github.com/snoyberg/yaml/";
diff --git a/pkgs/development/libraries/haskell/yesod-auth/default.nix b/pkgs/development/libraries/haskell/yesod-auth/default.nix
index 6857b6f02d76..182e6bcf5b27 100644
--- a/pkgs/development/libraries/haskell/yesod-auth/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-auth/default.nix
@@ -1,21 +1,23 @@
-{ cabal, aeson, authenticate, blazeHtml, blazeMarkup, dataDefault
-, emailValidate, fileEmbed, hamlet, httpConduit, httpTypes
-, liftedBase, mimeMail, network, persistent, persistentTemplate
-, pureMD5, pwstoreFast, random, resourcet, safe, SHA
-, shakespeareCss, shakespeareJs, text, time, transformers
-, unorderedContainers, wai, yesodCore, yesodForm, yesodPersistent
+{ cabal, aeson, authenticate, base16Bytestring, blazeHtml
+, blazeMarkup, cryptohash, dataDefault, emailValidate, fileEmbed
+, hamlet, httpConduit, httpTypes, liftedBase, mimeMail, network
+, persistent, persistentTemplate, pwstoreFast, random, resourcet
+, safe, shakespeare, shakespeareCss, shakespeareJs, text, time
+, transformers, unorderedContainers, wai, yesodCore, yesodForm
+, yesodPersistent
 }:
 
 cabal.mkDerivation (self: {
   pname = "yesod-auth";
-  version = "1.2.7";
-  sha256 = "0arszd7nk7rwm0xnjb2vqk2zf7lcwyw1ncxyxdmdxxvmh28lymwk";
+  version = "1.3.0.4";
+  sha256 = "0r4xhr9xg6n3jxpj3mrcaf4mgzz8h4is772k84sgnir5my9lrsr7";
   buildDepends = [
-    aeson authenticate blazeHtml blazeMarkup dataDefault emailValidate
-    fileEmbed hamlet httpConduit httpTypes liftedBase mimeMail network
-    persistent persistentTemplate pureMD5 pwstoreFast random resourcet
-    safe SHA shakespeareCss shakespeareJs text time transformers
-    unorderedContainers wai yesodCore yesodForm yesodPersistent
+    aeson authenticate base16Bytestring blazeHtml blazeMarkup
+    cryptohash dataDefault emailValidate fileEmbed hamlet httpConduit
+    httpTypes liftedBase mimeMail network persistent persistentTemplate
+    pwstoreFast random resourcet safe shakespeare shakespeareCss
+    shakespeareJs text time transformers unorderedContainers wai
+    yesodCore yesodForm yesodPersistent
   ];
   meta = {
     homepage = "http://www.yesodweb.com/";
diff --git a/pkgs/development/libraries/haskell/yesod-bin/default.nix b/pkgs/development/libraries/haskell/yesod-bin/default.nix
index 50071e8cffe3..46b78fcbd8f5 100644
--- a/pkgs/development/libraries/haskell/yesod-bin/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-bin/default.nix
@@ -1,25 +1,25 @@
 { cabal, attoparsec, base64Bytestring, blazeBuilder, Cabal, conduit
-, dataDefaultClass, fileEmbed, filepath, filesystemConduit
-, fsnotify, ghcPaths, httpConduit, httpReverseProxy, httpTypes
-, liftedBase, network, networkConduit, optparseApplicative, parsec
+, conduitExtra, dataDefaultClass, fileEmbed, filepath, fsnotify
+, ghcPaths, httpConduit, httpReverseProxy, httpTypes, liftedBase
+, network, networkConduit, optparseApplicative, parsec
 , projectTemplate, resourcet, shakespeare, shakespeareCss
-, shakespeareJs, shakespeareText, split, systemFileio
-, systemFilepath, tar, text, time, transformers, unixCompat
-, unorderedContainers, wai, warp, yaml, zlib
+, shakespeareJs, shakespeareText, split, streamingCommons
+, systemFileio, systemFilepath, tar, text, time, transformers
+, unixCompat, unorderedContainers, wai, warp, yaml, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "yesod-bin";
-  version = "1.2.7.1";
-  sha256 = "1lbnn7lzgpw0xsbnlax41q5hqb1bv9irmncgjvv18y8mpf5zcncs";
+  version = "1.2.8";
+  sha256 = "0hic32k1ii1j2hrwxj7pc7vv26dmq8rv7h7as1fw0bwlysrnw8nm";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
-    attoparsec base64Bytestring blazeBuilder Cabal conduit
-    dataDefaultClass fileEmbed filepath filesystemConduit fsnotify
-    ghcPaths httpConduit httpReverseProxy httpTypes liftedBase network
-    networkConduit optparseApplicative parsec projectTemplate resourcet
-    shakespeare shakespeareCss shakespeareJs shakespeareText split
+    attoparsec base64Bytestring blazeBuilder Cabal conduit conduitExtra
+    dataDefaultClass fileEmbed filepath fsnotify ghcPaths httpConduit
+    httpReverseProxy httpTypes liftedBase network networkConduit
+    optparseApplicative parsec projectTemplate resourcet shakespeare
+    shakespeareCss shakespeareJs shakespeareText split streamingCommons
     systemFileio systemFilepath tar text time transformers unixCompat
     unorderedContainers wai warp yaml zlib
   ];
diff --git a/pkgs/development/libraries/haskell/yesod-core/default.nix b/pkgs/development/libraries/haskell/yesod-core/default.nix
index bd1116267fa1..5051eaff6982 100644
--- a/pkgs/development/libraries/haskell/yesod-core/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-core/default.nix
@@ -1,30 +1,32 @@
 { cabal, aeson, async, attoparsecConduit, blazeBuilder, blazeHtml
 , blazeMarkup, caseInsensitive, cereal, clientsession, conduit
-, cookie, dataDefault, failure, fastLogger, hamlet, hspec
-, httpTypes, HUnit, liftedBase, monadControl, monadLogger, network
-, networkConduit, parsec, pathPieces, QuickCheck, random, resourcet
-, safe, shakespeare, shakespeareCss, shakespeareI18n, shakespeareJs
-, text, time, transformers, transformersBase, unixCompat, vector
-, wai, waiExtra, waiLogger, waiTest, warp, yesodRoutes
+, conduitExtra, cookie, dataDefault, exceptions, fastLogger, hamlet
+, hspec, httpTypes, HUnit, liftedBase, monadControl, monadLogger
+, mtl, network, networkConduit, parsec, pathPieces, QuickCheck
+, random, resourcet, safe, shakespeare, shakespeareCss
+, shakespeareI18n, shakespeareJs, streamingCommons, text, time
+, transformers, transformersBase, unixCompat, vector, wai, waiExtra
+, waiLogger, waiTest, warp, yesodRoutes
 }:
 
 cabal.mkDerivation (self: {
   pname = "yesod-core";
-  version = "1.2.7";
-  sha256 = "1gkpx0d7hyvn45254aj40iy4k0bf3kkrvmxnw3q1mvqc3k1kdxqn";
+  version = "1.2.12";
+  sha256 = "0bgi140v2z25cfvcydzaif7id8mv341r8iclkiz0lbqxs7d29zxz";
   buildDepends = [
     aeson attoparsecConduit blazeBuilder blazeHtml blazeMarkup
-    caseInsensitive cereal clientsession conduit cookie dataDefault
-    failure fastLogger hamlet httpTypes liftedBase monadControl
-    monadLogger parsec pathPieces random resourcet safe shakespeare
-    shakespeareCss shakespeareI18n shakespeareJs text time transformers
-    transformersBase unixCompat vector wai waiExtra waiLogger warp
-    yesodRoutes
+    caseInsensitive cereal clientsession conduit conduitExtra cookie
+    dataDefault exceptions fastLogger hamlet httpTypes liftedBase
+    monadControl monadLogger mtl parsec pathPieces random resourcet
+    safe shakespeare shakespeareCss shakespeareI18n shakespeareJs text
+    time transformers transformersBase unixCompat vector wai waiExtra
+    waiLogger warp yesodRoutes
   ];
   testDepends = [
-    async blazeBuilder conduit hamlet hspec httpTypes HUnit liftedBase
-    network networkConduit QuickCheck random resourcet shakespeareCss
-    shakespeareJs text transformers wai waiTest
+    async blazeBuilder conduit conduitExtra hamlet hspec httpTypes
+    HUnit liftedBase network networkConduit QuickCheck random resourcet
+    shakespeare shakespeareCss shakespeareJs streamingCommons text
+    transformers wai waiTest
   ];
   jailbreak = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/yesod-form/default.nix b/pkgs/development/libraries/haskell/yesod-form/default.nix
index a42e0a50bc40..42e1f13242e8 100644
--- a/pkgs/development/libraries/haskell/yesod-form/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-form/default.nix
@@ -1,18 +1,19 @@
 { cabal, aeson, attoparsec, blazeBuilder, blazeHtml, blazeMarkup
-, cryptoApi, dataDefault, emailValidate, hamlet, hspec, network
-, persistent, resourcet, shakespeareCss, shakespeareJs, text, time
-, transformers, wai, xssSanitize, yesodCore, yesodPersistent
+, byteable, dataDefault, emailValidate, hamlet, hspec, network
+, persistent, resourcet, shakespeare, shakespeareCss, shakespeareJs
+, text, time, transformers, wai, xssSanitize, yesodCore
+, yesodPersistent
 }:
 
 cabal.mkDerivation (self: {
   pname = "yesod-form";
-  version = "1.3.7";
-  sha256 = "01fv3c5db702nm9dk5ynvn5mf9vc4a1rkjn31zlw260jlgqy4vsn";
+  version = "1.3.8.2";
+  sha256 = "0sx2rk4z4hzwz3nzcg487wm5bdpdm612ikp0slfph1wkzc39h12a";
   buildDepends = [
-    aeson attoparsec blazeBuilder blazeHtml blazeMarkup cryptoApi
+    aeson attoparsec blazeBuilder blazeHtml blazeMarkup byteable
     dataDefault emailValidate hamlet network persistent resourcet
-    shakespeareCss shakespeareJs text time transformers wai xssSanitize
-    yesodCore yesodPersistent
+    shakespeare shakespeareCss shakespeareJs text time transformers wai
+    xssSanitize yesodCore yesodPersistent
   ];
   testDepends = [ hspec text time ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/yesod-persistent/default.nix b/pkgs/development/libraries/haskell/yesod-persistent/default.nix
index 42b55bcee6a6..432adeee9af8 100644
--- a/pkgs/development/libraries/haskell/yesod-persistent/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-persistent/default.nix
@@ -1,15 +1,15 @@
-{ cabal, blazeBuilder, conduit, hspec, liftedBase, persistent
-, persistentSqlite, persistentTemplate, poolConduit, resourcet
-, text, transformers, waiTest, yesodCore
+{ cabal, blazeBuilder, conduit, hspec, persistent, persistentSqlite
+, persistentTemplate, resourcePool, resourcet, text, transformers
+, waiTest, yesodCore
 }:
 
 cabal.mkDerivation (self: {
   pname = "yesod-persistent";
-  version = "1.2.2.1";
-  sha256 = "0vihd94yh4xipvz193p2fd1sqlbwdj0619l21gpdy307sng50kjn";
+  version = "1.2.2.3";
+  sha256 = "1699grrxb1qwfiivh9ihnczkcbwl4gcqdk7m02lc09r9gjr920p8";
   buildDepends = [
-    blazeBuilder conduit liftedBase persistent persistentTemplate
-    poolConduit resourcet transformers yesodCore
+    blazeBuilder conduit persistent persistentTemplate resourcePool
+    resourcet transformers yesodCore
   ];
   testDepends = [
     blazeBuilder conduit hspec persistent persistentSqlite text waiTest
diff --git a/pkgs/development/libraries/haskell/yesod-static/default.nix b/pkgs/development/libraries/haskell/yesod-static/default.nix
index 757367b73935..78d941b371b6 100644
--- a/pkgs/development/libraries/haskell/yesod-static/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-static/default.nix
@@ -1,6 +1,6 @@
-{ cabal, base64Bytestring, cereal, conduit, cryptoConduit
-, cryptohashCryptoapi, dataDefault, fileEmbed, filepath, hjsmin
-, hspec, httpTypes, HUnit, mimeTypes, processConduit, resourcet
+{ cabal, async, base64Bytestring, byteable, conduit, conduitExtra
+, cryptohash, cryptohashConduit, dataDefault, fileEmbed, filepath
+, hjsmin, hspec, httpTypes, HUnit, mimeTypes, resourcet
 , shakespeareCss, systemFileio, systemFilepath, text, transformers
 , unixCompat, unorderedContainers, wai, waiAppStatic, waiTest
 , yesodCore, yesodTest
@@ -8,19 +8,19 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-static";
-  version = "1.2.2.1";
-  sha256 = "1dsr3gv6hf42islw2018y4yajvkd9j627fkdlz45309cyjns55jg";
+  version = "1.2.2.4";
+  sha256 = "1dpd175kd1yda2fs8zzs00j8nhdvzsgqywkkh934qz7zr7p1rawl";
   buildDepends = [
-    base64Bytestring cereal conduit cryptoConduit cryptohashCryptoapi
-    dataDefault fileEmbed filepath hjsmin httpTypes mimeTypes
-    processConduit resourcet shakespeareCss systemFileio systemFilepath
-    text transformers unixCompat unorderedContainers wai waiAppStatic
+    async base64Bytestring byteable conduit conduitExtra cryptohash
+    cryptohashConduit dataDefault fileEmbed filepath hjsmin httpTypes
+    mimeTypes resourcet shakespeareCss systemFileio systemFilepath text
+    transformers unixCompat unorderedContainers wai waiAppStatic
     yesodCore
   ];
   testDepends = [
-    base64Bytestring cereal conduit cryptoConduit cryptohashCryptoapi
-    dataDefault fileEmbed filepath hjsmin hspec httpTypes HUnit
-    mimeTypes processConduit resourcet shakespeareCss systemFileio
+    async base64Bytestring byteable conduit conduitExtra cryptohash
+    cryptohashConduit dataDefault fileEmbed filepath hjsmin hspec
+    httpTypes HUnit mimeTypes resourcet shakespeareCss systemFileio
     systemFilepath text transformers unixCompat unorderedContainers wai
     waiAppStatic waiTest yesodCore yesodTest
   ];
diff --git a/pkgs/development/libraries/haskell/yesod-test/default.nix b/pkgs/development/libraries/haskell/yesod-test/default.nix
index c4ad5b29acdc..9a9cdc4e295c 100644
--- a/pkgs/development/libraries/haskell/yesod-test/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-test/default.nix
@@ -1,19 +1,18 @@
 { cabal, attoparsec, blazeBuilder, blazeHtml, blazeMarkup
 , caseInsensitive, cookie, hspec, htmlConduit, httpTypes, HUnit
-, monadControl, network, persistent, poolConduit, text, time
-, transformers, wai, waiTest, xmlConduit, xmlTypes, yesodCore
-, yesodForm
+, monadControl, network, persistent, text, time, transformers, wai
+, waiTest, xmlConduit, xmlTypes, yesodCore, yesodForm
 }:
 
 cabal.mkDerivation (self: {
   pname = "yesod-test";
-  version = "1.2.1";
-  sha256 = "1f92q9wjj6npxfsjibw0qlg6pai721mwkjcadh121bwgrancflyr";
+  version = "1.2.1.2";
+  sha256 = "12b747sd5rrypv1i2b5rpa3qgpnzibwjw7rlv02hyz8g7kf6wvbm";
   buildDepends = [
     attoparsec blazeBuilder blazeHtml blazeMarkup caseInsensitive
     cookie hspec htmlConduit httpTypes HUnit monadControl network
-    persistent poolConduit text time transformers wai waiTest
-    xmlConduit xmlTypes yesodCore
+    persistent text time transformers wai waiTest xmlConduit xmlTypes
+    yesodCore
   ];
   testDepends = [
     hspec htmlConduit HUnit text xmlConduit yesodCore yesodForm
diff --git a/pkgs/development/libraries/haskell/yesod/default.nix b/pkgs/development/libraries/haskell/yesod/default.nix
index 130e6eb9c334..a3416cf59c6d 100644
--- a/pkgs/development/libraries/haskell/yesod/default.nix
+++ b/pkgs/development/libraries/haskell/yesod/default.nix
@@ -1,19 +1,20 @@
-{ cabal, aeson, blazeHtml, blazeMarkup, dataDefault, fastLogger
-, hamlet, monadControl, monadLogger, networkConduit, safe
-, shakespeareCss, shakespeareJs, text, transformers
-, unorderedContainers, wai, waiExtra, warp, yaml, yesodAuth
-, yesodCore, yesodForm, yesodPersistent
+{ cabal, aeson, blazeHtml, blazeMarkup, conduitExtra, dataDefault
+, fastLogger, hamlet, monadControl, monadLogger, networkConduit
+, safe, shakespeare, shakespeareCss, shakespeareJs, text
+, transformers, unorderedContainers, wai, waiExtra, warp, yaml
+, yesodAuth, yesodCore, yesodForm, yesodPersistent
 }:
 
 cabal.mkDerivation (self: {
   pname = "yesod";
-  version = "1.2.5";
-  sha256 = "0vcszhd8vasfpm754bz1vyarhlkffj3kbrfcq9q5gqmm389jfpk2";
+  version = "1.2.5.2";
+  sha256 = "0vvpzyfwzgnnd8h60pqz5z1474isp487p43vx7cyzhj423c50p6r";
   buildDepends = [
-    aeson blazeHtml blazeMarkup dataDefault fastLogger hamlet
-    monadControl monadLogger networkConduit safe shakespeareCss
-    shakespeareJs text transformers unorderedContainers wai waiExtra
-    warp yaml yesodAuth yesodCore yesodForm yesodPersistent
+    aeson blazeHtml blazeMarkup conduitExtra dataDefault fastLogger
+    hamlet monadControl monadLogger networkConduit safe shakespeare
+    shakespeareCss shakespeareJs text transformers unorderedContainers
+    wai waiExtra warp yaml yesodAuth yesodCore yesodForm
+    yesodPersistent
   ];
   meta = {
     homepage = "http://www.yesodweb.com/";
diff --git a/pkgs/development/libraries/haskell/zlib-bindings/default.nix b/pkgs/development/libraries/haskell/zlib-bindings/default.nix
index f69be8ae99e2..ba4751af2fe3 100644
--- a/pkgs/development/libraries/haskell/zlib-bindings/default.nix
+++ b/pkgs/development/libraries/haskell/zlib-bindings/default.nix
@@ -2,13 +2,13 @@
 
 cabal.mkDerivation (self: {
   pname = "zlib-bindings";
-  version = "0.1.1.3";
-  sha256 = "18jhav7chbapakm9mwn7bn9lgvip7qaz61dw5gwv2nyalvm96qfr";
+  version = "0.1.1.5";
+  sha256 = "02ciywlz4wdlymgc3jsnicz9kzvymjw1www2163gxidnz4wb8fy8";
   buildDepends = [ zlib ];
   testDepends = [ hspec QuickCheck zlib ];
   meta = {
     homepage = "http://github.com/snoyberg/zlib-bindings";
-    description = "Low-level bindings to the zlib package";
+    description = "Low-level bindings to the zlib package. (deprecated)";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
     maintainers = [ self.stdenv.lib.maintainers.andres ];
diff --git a/pkgs/development/libraries/haskell/zlib-conduit/default.nix b/pkgs/development/libraries/haskell/zlib-conduit/default.nix
index b283c496a299..3029cc8c3b61 100644
--- a/pkgs/development/libraries/haskell/zlib-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/zlib-conduit/default.nix
@@ -1,16 +1,14 @@
-{ cabal, conduit, hspec, QuickCheck, resourcet, transformers, void
-, zlibBindings
-}:
+{ cabal, conduit }:
 
 cabal.mkDerivation (self: {
   pname = "zlib-conduit";
-  version = "1.0.0";
-  sha256 = "0q0l4qw1f2cwjj71n4i082ba47x1xba695q8xk0ky2vw5s8cg0bv";
-  buildDepends = [ conduit transformers void zlibBindings ];
-  testDepends = [ conduit hspec QuickCheck resourcet transformers ];
+  version = "1.1.0";
+  sha256 = "1b22mca8bbg7f84h8y0qsb5ckzg2dw1b26y27x7b7xdxqbwpz93a";
+  buildDepends = [ conduit ];
+  noHaddock = true;
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
-    description = "Streaming compression/decompression via conduits";
+    description = "Streaming compression/decompression via conduits. (deprecated)";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
     maintainers = [ self.stdenv.lib.maintainers.andres ];
diff --git a/pkgs/development/libraries/ibus/default.nix b/pkgs/development/libraries/ibus/default.nix
index 75eb1b4134c0..905f11dfdc22 100644
--- a/pkgs/development/libraries/ibus/default.nix
+++ b/pkgs/development/libraries/ibus/default.nix
@@ -21,9 +21,9 @@ stdenv.mkDerivation rec {
 
   preBuild = "patchShebangs ./scripts";
 
-  postInstall = ''
+  preFixup = ''
     for f in "$out"/bin/*; do
-      wrapProgram "$f" --prefix XDG_DATA_DIRS : "$out/share" \
+      wrapProgram "$f" --prefix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
                        --prefix PYTHONPATH : "$(toPythonPath ${pygobject3})" \
                        --prefix LD_LIBRARY_PATH : "${gnome3.gtk3}/lib:${atk}/lib:$out/lib" \
                        --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH:$out/lib/girepository-1.0" \
diff --git a/pkgs/development/libraries/kdevplatform/default.nix b/pkgs/development/libraries/kdevplatform/default.nix
index 2ff2fac296d8..6f874450fc58 100644
--- a/pkgs/development/libraries/kdevplatform/default.nix
+++ b/pkgs/development/libraries/kdevplatform/default.nix
@@ -1,16 +1,16 @@
 { stdenv, fetchurl, cmake, kdelibs, subversion, qt4, automoc4, perl, phonon,
-  gettext, pkgconfig, apr, aprutil, boost, qjson }:
+  gettext, pkgconfig, apr, aprutil, boost, qjson, grantlee }:
 
 stdenv.mkDerivation rec {
-  name = "kdevplatform-1.3.1";
+  name = "kdevplatform-1.6.0";
 
   src = fetchurl {
-    url = "mirror://kde/stable/kdevelop/4.3.1/src/${name}.tar.bz2";
-    sha256 = "1fiqwabw5ilhw1jwvvr743dym12y3kxrs3zlqahz57yncdsglcl6";
+    url = "mirror://kde/stable/kdevelop/4.6.0/src/${name}.tar.xz";
+    sha256 = "cdf7c88ca8860258f46e41d2107c826a307212fd041345bee54fbd70c9794f80";
   };
 
   propagatedBuildInputs = [ kdelibs qt4 phonon ];
-  buildInputs = [ apr aprutil subversion boost qjson ];
+  buildInputs = [ apr aprutil subversion boost qjson grantlee ];
 
   nativeBuildInputs = [ cmake automoc4 gettext pkgconfig ];
 
diff --git a/pkgs/development/libraries/libarchive/default.nix b/pkgs/development/libraries/libarchive/default.nix
index b7b001e44eb2..5e728d9b3dd1 100644
--- a/pkgs/development/libraries/libarchive/default.nix
+++ b/pkgs/development/libraries/libarchive/default.nix
@@ -13,8 +13,8 @@ stdenv.mkDerivation rec {
   };
 
   patches = [(fetchurl {
-    url = "https://github.com/libarchive/libarchive/commit/22531545514043e04633e1c015c7540b9de9dbe4.patch";
-    sha256 = "0c1a0prlpq5nn7zgs7cqvw9xnmhkkc8l0mpsip86k1lafircqhzh";
+    url = "https://github.com/libarchive/libarchive/commit/22531545514043e04633e1c015c7540b9de9dbe4.diff";
+    sha256 = "1466ddrkdh2r8idmj3v7fk2gwnhc1kdxvyczdpnqms0qlmas6fj5";
     name = "CVE-2013-0211.patch";
   })];
 
diff --git a/pkgs/development/libraries/libav/default.nix b/pkgs/development/libraries/libav/default.nix
index c99059bf034f..04d51edf5310 100644
--- a/pkgs/development/libraries/libav/default.nix
+++ b/pkgs/development/libraries/libav/default.nix
@@ -26,8 +26,8 @@ with { inherit (stdenv.lib) optional optionals; };
 
 let
   result = {
-    libav_9   = libavFun  "9.11"  "1ad7vyxp0w8dw6ngc16fz0ngsjlgk6h8bpphghqia5sqkbl10ca3";
-    libav_0_8 = libavFun "0.8.10" "0sxmj4qsd3ljygvdjz7ly46nf7sqmaqka4hx65b1jdji12al1djc";
+    libav_9   = libavFun  "9.12"  "1wm0nf12c1p138y54jh71mvbpikrpk43zc9m2qhpjm9pgnagizk0";
+    libav_0_8 = libavFun "0.8.11" "0nhm0mzz2aj78sgmw9xf20a1mlgig78cv1nyhx4zrq7nvgqf8d2r";
   };
 
   libavFun = version : sha256 : stdenv.mkDerivation rec {
diff --git a/pkgs/development/libraries/libdvdread/default.nix b/pkgs/development/libraries/libdvdread/default.nix
index ee5d2e5e50e0..2593274d89bb 100644
--- a/pkgs/development/libraries/libdvdread/default.nix
+++ b/pkgs/development/libraries/libdvdread/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, libdvdcss}:
 
 stdenv.mkDerivation {
-  name = "libdvdread-4.1.3";
+  name = "libdvdread-4.2.1";
   
   src = fetchurl {
-    url = http://www.mplayerhq.hu/MPlayer/releases/dvdnav/libdvdread-4.1.3.tar.bz2;
-    sha1 = "fc4c7ba3e49929191e057b435bc4f867583ea8d5";
+    url = http://dvdnav.mplayerhq.hu/releases/libdvdread-4.2.1.tar.xz;
+    sha256 = "af9b98f049580a6521d56c978b736d3d609562dd12955e11d50e26d97542dcd4";
   };
 
   buildInputs = [libdvdcss];
diff --git a/pkgs/development/libraries/libgsf/default.nix b/pkgs/development/libraries/libgsf/default.nix
index 0c79b20b5645..dbcdabc89510 100644
--- a/pkgs/development/libraries/libgsf/default.nix
+++ b/pkgs/development/libraries/libgsf/default.nix
@@ -4,11 +4,11 @@
 with { inherit (stdenv.lib) optionals; };
 
 stdenv.mkDerivation rec {
-  name = "libgsf-1.14.28";
+  name = "libgsf-1.14.30";
 
   src = fetchurl {
     url    = "mirror://gnome/sources/libgsf/1.14/${name}.tar.xz";
-    sha256 = "1r6bkwramb6qglmgbjmqvr5sahbfmql057ql97mx99fs3x7r357a";
+    sha256 = "0w2v1a9sxsymd1mcy4mwsz4r6za9iwq69rj86nb939p41d4c6j6b";
   };
 
   nativeBuildInputs = [ pkgconfig intltool ];
diff --git a/pkgs/development/libraries/libjpeg-turbo/default.nix b/pkgs/development/libraries/libjpeg-turbo/default.nix
index 8976e7431928..bf27e074dd58 100644
--- a/pkgs/development/libraries/libjpeg-turbo/default.nix
+++ b/pkgs/development/libraries/libjpeg-turbo/default.nix
@@ -1,15 +1,13 @@
 { stdenv, fetchurl, nasm }:
 
 stdenv.mkDerivation rec {
-  name = "libjpeg-turbo-1.3.0";
+  name = "libjpeg-turbo-1.3.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/libjpeg-turbo/${name}.tar.gz";
-    sha256 = "0d0jwdmj3h89bxdxlwrys2mw18mqcj4rzgb5l2ndpah8zj600mr6";
+    sha256 = "1fbgcvlnn3d5gvf0v9jnlcabpv2z3nwxclzyabahxi6x2xs90cn1";
   };
 
-  patches = [ ./libjpeg-turbo-1.3.0-CVE-2013-6629-and-6630.patch ];
-
   buildInputs = [ nasm ];
 
   doCheck = true;
diff --git a/pkgs/development/libraries/libjpeg-turbo/libjpeg-turbo-1.3.0-CVE-2013-6629-and-6630.patch b/pkgs/development/libraries/libjpeg-turbo/libjpeg-turbo-1.3.0-CVE-2013-6629-and-6630.patch
deleted file mode 100644
index 8c0f9c75054a..000000000000
--- a/pkgs/development/libraries/libjpeg-turbo/libjpeg-turbo-1.3.0-CVE-2013-6629-and-6630.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Thanks to the sources below; this patch discovered via Gentoo.
-
-http://bugzilla.redhat.com/show_bug.cgi?id=1031734
-http://bugzilla.redhat.com/show_bug.cgi?id=1031749
-http://sourceforge.net/p/libjpeg-turbo/code/1090/
-
---- libjpeg-turbo-1.3.0/jdmarker.c
-+++ libjpeg-turbo-1.3.0/jdmarker.c
-@@ -304,7 +304,7 @@
- /* Process a SOS marker */
- {
-   INT32 length;
--  int i, ci, n, c, cc;
-+  int i, ci, n, c, cc, pi;
-   jpeg_component_info * compptr;
-   INPUT_VARS(cinfo);
- 
-@@ -348,6 +348,13 @@
-     
-     TRACEMS3(cinfo, 1, JTRC_SOS_COMPONENT, cc,
- 	     compptr->dc_tbl_no, compptr->ac_tbl_no);
-+
-+    /* This CSi (cc) should differ from the previous CSi */
-+    for (pi = 0; pi < i; pi++) {
-+      if (cinfo->cur_comp_info[pi] == compptr) {
-+        ERREXIT1(cinfo, JERR_BAD_COMPONENT_ID, cc);
-+      }
-+    }
-   }
- 
-   /* Collect the additional scan parameters Ss, Se, Ah/Al. */
-@@ -465,6 +472,8 @@
-     for (i = 0; i < count; i++)
-       INPUT_BYTE(cinfo, huffval[i], return FALSE);
- 
-+    MEMZERO(&huffval[count], (256 - count) * SIZEOF(UINT8));
-+
-     length -= count;
- 
-     if (index & 0x10) {		/* AC table definition */
diff --git a/pkgs/development/libraries/libmsgpack/default.nix b/pkgs/development/libraries/libmsgpack/default.nix
new file mode 100644
index 000000000000..26dc6be8382c
--- /dev/null
+++ b/pkgs/development/libraries/libmsgpack/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, autoconf, automake, libtool, ruby }:
+
+stdenv.mkDerivation rec {
+  version = "0.5.8";
+  name = "libmsgpack-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/msgpack/msgpack-c/archive/cpp-${version}.tar.gz";
+    sha256 = "1h6k9kdbfavmw3by5kk3raszwa64hn9k8yw9rdhvl5m8g2lks89k";
+  };
+
+  buildInputs = [ autoconf automake libtool ruby ];
+
+  outputs = [ "out" "lib" ];
+
+  preConfigure = "./bootstrap";
+
+  postInstall = ''
+    mkdir -p $lib/lib
+    mv $out/lib/*.so.* $lib/lib/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "MessagePack implementation for C and C++";
+    homepage = http://msgpack.org;
+    maintainers = [ maintainers.redbaron ];
+    license = licenses.asl20;
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/libmusicbrainz/5.x.nix b/pkgs/development/libraries/libmusicbrainz/5.x.nix
new file mode 100644
index 000000000000..7cdb8fb46910
--- /dev/null
+++ b/pkgs/development/libraries/libmusicbrainz/5.x.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, cmake, neon, libdiscid }:
+
+stdenv.mkDerivation rec {
+  name = "libmusicbrainz-5.0.1";
+
+  buildInputs = [ cmake neon libdiscid ];
+
+  src = fetchurl {
+    url = "https://github.com/downloads/metabrainz/libmusicbrainz/${name}.tar.gz";
+    md5 = "a0406b94c341c2b52ec0fe98f57cadf3";
+  };
+
+  dontUseCmakeBuildDir=true;
+
+  meta = {
+    homepage = http://musicbrainz.org/doc/libmusicbrainz;
+    description = "MusicBrainz Client Library (5.x version)";
+    longDescription = ''
+      The libmusicbrainz (also known as mb_client or MusicBrainz Client
+      Library) is a development library geared towards developers who wish to
+      add MusicBrainz lookup capabilities to their applications.'';
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/libnotify/default.nix b/pkgs/development/libraries/libnotify/default.nix
index 00308bf9471a..2b82fe2a4bc5 100644
--- a/pkgs/development/libraries/libnotify/default.nix
+++ b/pkgs/development/libraries/libnotify/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, automake, autoconf, libtool, glib, gdk_pixbuf }:
+{ stdenv, fetchurl, pkgconfig, automake, autoconf, libtool
+, glib, gdk_pixbuf, gobjectIntrospection, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   ver_maj = "0.7";
@@ -9,23 +10,15 @@ stdenv.mkDerivation rec {
     url = "mirror://gnome/sources/libnotify/${ver_maj}/${name}.tar.xz";
     sha256 = "0dyq8zgjnnzcah31axnx6afb21kl7bks1gvrg4hjh3nk02j1rxhf";
   };
-  src_m4 = fetchurl {
-    url = "mirror://gentoo/distfiles/introspection-20110205.m4.tar.bz2";
-    sha256 = "1cnqh7aaji648nfd5537v7xaak8hgww3bpifhwam7bl0sc3ad523";
-  };
 
   # see Gentoo ebuild - we don't need to depend on gtk+(2/3)
-  preConfigure = ''
-    cd m4
-    tar xvf ${src_m4}
-    cd ..
-
+  preAutoreconf = ''
     sed -i -e 's:noinst_PROG:check_PROG:' tests/Makefile.am || die
     sed -i -e '/PKG_CHECK_MODULES(TESTS/d' configure.ac || die
-    AT_M4DIR=. autoreconf
   '';
 
-  buildInputs = [ pkgconfig automake autoconf glib gdk_pixbuf ];
+  buildInputs = [ pkgconfig automake autoconf autoreconfHook
+                  libtool glib gdk_pixbuf gobjectIntrospection ];
 
   meta = {
     homepage = http://galago-project.org/; # very obsolete but found no better
diff --git a/pkgs/development/libraries/liboauth/default.nix b/pkgs/development/libraries/liboauth/default.nix
index 5a3b54544b54..b3eee8ed4342 100644
--- a/pkgs/development/libraries/liboauth/default.nix
+++ b/pkgs/development/libraries/liboauth/default.nix
@@ -2,11 +2,11 @@
 
 
 stdenv.mkDerivation rec {
-  name = "liboauth-1.0.1";
+  name = "liboauth-1.0.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/liboauth/${name}.tar.gz";
-    sha256 = "12wdwq09nba8dzzcgcpbzmgcjr141ky69pm78s15hyyvw4px71sh";
+    sha256 = "1qs58yzydw20dmzvx22i541w641kwd6ja80s9na1az32n1krh6zv";
   };
 
   buildInputs = [ nss openssl ];
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     description = "C library implementing the OAuth secure authentication protocol";
     homepage = http://liboauth.sourceforge.net/;
+    repositories.git = https://github.com/x42/liboauth.git;
   };
 
 }
diff --git a/pkgs/development/libraries/libopus/default.nix b/pkgs/development/libraries/libopus/default.nix
index b1bf65d0fe67..78b264506f01 100644
--- a/pkgs/development/libraries/libopus/default.nix
+++ b/pkgs/development/libraries/libopus/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fixedPoint ? false }:
+{ stdenv, fetchurl, fixedPoint ? false, withCustomModes ? false }:
 
 let
   version = "1.1";
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "158xprn2086arvdib3vbbygz7z6jqkw2nci7nlywzzwallap0wmr";
   };
 
-  configureFlags = stdenv.lib.optionalString fixedPoint "--enable-fixed-point";
+  configureFlags = stdenv.lib.optional fixedPoint "--enable-fixed-point"
+                ++ stdenv.lib.optional withCustomModes "--enable-custom-modes";
 
   doCheck = true;
 
diff --git a/pkgs/development/libraries/libpwquality/default.nix b/pkgs/development/libraries/libpwquality/default.nix
new file mode 100644
index 000000000000..aaa39783fa72
--- /dev/null
+++ b/pkgs/development/libraries/libpwquality/default.nix
@@ -0,0 +1,12 @@
+{ stdenv, cracklib, fetchurl, python }:
+
+stdenv.mkDerivation rec {
+  name = "libpwquality-1.2.3";
+
+  src = fetchurl {
+    url = "https://fedorahosted.org/releases/l/i/libpwquality/${name}.tar.bz2";
+    sha256 = "0sjiabvl5277nfxyy96jdz65a0a3pmkkwrfbziwgik83gg77j75i";
+  };
+
+  buildInputs = [ cracklib python ];
+}
diff --git a/pkgs/development/libraries/libresample/default.nix b/pkgs/development/libraries/libresample/default.nix
new file mode 100644
index 000000000000..9ef1ada0a424
--- /dev/null
+++ b/pkgs/development/libraries/libresample/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, cmake}:
+
+let
+  patch = fetchurl {
+    url = http://ftp.debian.org/debian/pool/main/libr/libresample/libresample_0.1.3-3.diff.gz;
+    sha256 = "063w8rqxw87fc89gas47vk0ll7xl8cy7d8g70gm1l62bqkkajklx";
+  };
+in
+stdenv.mkDerivation {
+  name = "libresample-0.1.3";
+  src = fetchurl {
+    url = http://ftp.debian.org/debian/pool/main/libr/libresample/libresample_0.1.3.orig.tar.gz;
+    sha256 = "05a8mmh1bw5afqx0kfdqzmph4x2npcs4idx0p0v6q95lwf22l8i0";
+  };
+  patches = [ patch ];
+  preConfigure = ''
+    cat debian/patches/1001_shlib-cmake.patch | patch -p1
+  '';
+  buildInputs = [ cmake ];
+  
+  meta = {
+    description = "A real-time library for sampling rate conversion library";
+    license = stdenv.lib.licenses.lgpl2Plus;
+    homepage = https://ccrma.stanford.edu/~jos/resample/Free_Resampling_Software.html;
+    maintainers = stdenv.lib.maintainers.sander;
+  };
+}
diff --git a/pkgs/development/libraries/libseccomp/default.nix b/pkgs/development/libraries/libseccomp/default.nix
new file mode 100644
index 000000000000..a66d31d2ec44
--- /dev/null
+++ b/pkgs/development/libraries/libseccomp/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, getopt, bash }:
+
+stdenv.mkDerivation rec {
+  name    = "libseccomp-${version}";
+  version = "2.1.1";
+
+  src = fetchurl {
+    url    = "mirror://sourceforge/libseccomp/libseccomp-${version}.tar.gz";
+    sha256 = "0744mjx5m3jl1hzz13zypivl88m0wn44mf5gsrd3yf3w80gc24l8";
+  };
+
+  # This fixes the check for 'getopt' to function appropriately.
+  # Additionally, this package can optionally include the kernel
+  # headers if they exist, or use its own inline copy of the source
+  # for talking to the seccomp filter - we opt to always use the
+  # inline copy
+  patchPhase = ''
+    substituteInPlace ./configure --replace "/bin/bash" "${bash}/bin/bash"
+    substituteInPlace ./configure --replace "verify_deps getopt" ""
+    substituteInPlace ./configure --replace getopt ${getopt}/bin/getopt
+    substituteInPlace ./configure --replace 'opt_sysinc_seccomp="yes"' 'opt_sysinc_seccomp="no"'
+  '';
+
+  meta = {
+    description = "high level library for the Linux Kernel seccomp filter";
+    homepage    = "http://sourceforge.net/projects/libseccomp";
+    license     = stdenv.lib.licenses.lgpl2;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/development/libraries/libsigcxx/default.nix b/pkgs/development/libraries/libsigcxx/default.nix
index a127e7322eb7..610d14568ae5 100644
--- a/pkgs/development/libraries/libsigcxx/default.nix
+++ b/pkgs/development/libraries/libsigcxx/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, gnum4 }:
 
 stdenv.mkDerivation rec {
-  name = "libsigc++-2.2.11";
+  name = "libsigc++-2.3.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libsigc++/2.2/${name}.tar.xz";
-    sha256 = "0ms93q7r8zznsqkfdj1ds9533f0aqfaw3kdkqv154rzmfigh8d4q";
+    url = "mirror://gnome/sources/libsigc++/2.3/${name}.tar.xz";
+    sha256 = "14q3sq6d43f6wfcmwhw4v1aal4ba0h5x9v6wkxy2dnqznd95il37";
   };
 
   buildInputs = [ pkgconfig gnum4 ];
diff --git a/pkgs/development/libraries/libtasn1/default.nix b/pkgs/development/libraries/libtasn1/default.nix
index 42fa2578062d..d90e1c225641 100644
--- a/pkgs/development/libraries/libtasn1/default.nix
+++ b/pkgs/development/libraries/libtasn1/default.nix
@@ -1,13 +1,15 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, perl, texinfo }:
 
 stdenv.mkDerivation rec {
-  name = "libtasn1-2.14";
+  name = "libtasn1-3.4";
 
   src = fetchurl {
     url = "mirror://gnu/libtasn1/${name}.tar.gz";
-    sha256 = "0m1x2p04xpacl18dzv1hmsm2fk97gi167ra5h4kmjy16436kcadw";
+    sha256 = "1j5cwsjk9wai700ljsr5qyzywijrr5ba05hhg4mkgqlg8mx50lzk";
   };
 
+  buildInputs = [ perl texinfo ];
+
   doCheck = true;
 
   meta = {
diff --git a/pkgs/development/libraries/libtorrent-rasterbar/default.nix b/pkgs/development/libraries/libtorrent-rasterbar/default.nix
index 9c4d3bfd2dd9..0745313b41e7 100644
--- a/pkgs/development/libraries/libtorrent-rasterbar/default.nix
+++ b/pkgs/development/libraries/libtorrent-rasterbar/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "libtorrent-rasterbar-${version}";
-  version = "0.16.15";
+  version = "0.16.16";
   
   src = fetchurl {
-    url = mirror://sourceforge/libtorrent/libtorrent-rasterbar-0.16.15.tar.gz;
-    sha256 = "0xcz4hphgkcdxcbmgzk27mxn7478hy417pn55zn5hnpllgndy3w2";
+    url = mirror://sourceforge/libtorrent/libtorrent-rasterbar-0.16.16.tar.gz;
+    sha256 = "1a3yxwjs4qb0rwx6cfpvar0a8jmavb6ik580b27md08jhvq80if7";
   };
 
   buildInputs = [ boost pkgconfig openssl zlib python libiconvOrNull geoip ];
diff --git a/pkgs/development/libraries/libtxc_dxtn_s2tc/default.nix b/pkgs/development/libraries/libtxc_dxtn_s2tc/default.nix
new file mode 100644
index 000000000000..86f5029e9a59
--- /dev/null
+++ b/pkgs/development/libraries/libtxc_dxtn_s2tc/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, autoreconfHook, mesa }:
+
+let version = "1.0"; in
+
+stdenv.mkDerivation rec {
+  name = "libtxc_dxtn_s2tc-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/divVerent/s2tc/archive/v${version}.tar.gz";
+    sha256 = "0ibfdib277fhbqvxzan0bmglwnsl1y1rw2g8skvz82l1sfmmn752";
+  };
+
+  buildInputs = [ autoreconfHook mesa ];
+
+  meta = {
+    description = "A patent-free S3TC compatible implementation";
+    homepage = https://github.com/divVerent/s2tc;
+    repositories.git = https://github.com/divVerent/s2tc.git;
+    license = stdenv.lib.licenses.mit;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.page ];
+  };
+}
diff --git a/pkgs/development/libraries/liburcu/default.nix b/pkgs/development/libraries/liburcu/default.nix
index 44daabe6a736..e7f627f62f77 100644
--- a/pkgs/development/libraries/liburcu/default.nix
+++ b/pkgs/development/libraries/liburcu/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "0.8.1";
+  version = "0.8.4";
   name = "liburcu-${version}";
 
   src = fetchurl {
     url = "http://lttng.org/files/urcu/userspace-rcu-${version}.tar.bz2";
-    sha256 = "07p0lh43j7i1606m4l1dxm195z6fcfz74fmx7q2d7mrhn2bzc240";
+    sha256 = "04py48xphylb246mpkzvld0yprj5h7cyv6pydr8b25aax5bs3h4n";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libvirt-glib/default.nix b/pkgs/development/libraries/libvirt-glib/default.nix
new file mode 100644
index 000000000000..afce119e3961
--- /dev/null
+++ b/pkgs/development/libraries/libvirt-glib/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, pkgconfig, libvirt, glib, libxml2, intltool, libtool, yajl
+, nettle, libgcrypt, python, pygobject, gobjectIntrospection, libcap_ng
+}:
+
+stdenv.mkDerivation rec {
+  name = "libvirt-glib-0.1.8";
+
+  src = fetchurl {
+    url = "http://libvirt.org/sources/glib/${name}.tar.gz";
+    sha256 = "0ld7g9vlpdzx8rm90i8y1gnpygkn20x5z12gvsgms7dy5nala3ns";
+  };
+
+  buildInputs = [
+    pkgconfig libvirt glib libxml2 intltool libtool yajl nettle libgcrypt
+    python pygobject gobjectIntrospection libcap_ng
+  ];
+
+  # Compiler flag -fstack-protector-all fixes this build error:
+  #
+  #   ./.libs/libvirt-glib-1.0.so: undefined reference to `__stack_chk_guard'
+  #
+  # And the extra include path fixes this build error:
+  #
+  #   In file included from ../libvirt-gobject/libvirt-gobject-domain-device.h:30:0,
+  #                    from /tmp/nix-build-libvirt-glib-0.1.7.drv-2/libvirt-glib-0.1.7/libvirt-gobject/libvirt-gobject.h:33,
+  #                    from <stdin>:4:
+  #   ../libvirt-gobject/libvirt-gobject-domain.h:33:29: fatal error: libvirt/libvirt.h: No such file or directory
+  #   compilation terminated.
+  #   make[3]: *** [LibvirtGObject-1.0.gir] Error 1
+  preConfigure = ''
+    export NIX_CFLAGS_COMPILE="-fstack-protector-all -I${libvirt}/include"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Library for working with virtual machines";
+    longDescription = ''
+      libvirt-glib wraps libvirt to provide a high-level object-oriented API better
+      suited for glib-based applications, via three libraries:
+
+      - libvirt-glib    - GLib main loop integration & misc helper APIs
+      - libvirt-gconfig - GObjects for manipulating libvirt XML documents
+      - libvirt-gobject - GObjects for managing libvirt objects
+    '';
+    homepage = http://libvirt.org/;
+    license = licenses.lgpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index d883f1da9caa..587fbfe48d32 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, pkgconfig, libxml2, gnutls, devicemapper, perl, python
 , iproute, iptables, readline, lvm2, utillinux, udev, libpciaccess, gettext
 , libtasn1, ebtables, libgcrypt, yajl, makeWrapper, pmutils, libcap_ng
-, dnsmasq
+, dnsmasq, libnl
 }:
 
 let version = "1.2.2"; in
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     pkgconfig libxml2 gnutls devicemapper perl python readline lvm2
     utillinux udev libpciaccess gettext libtasn1 libgcrypt yajl makeWrapper
-    libcap_ng
+    libcap_ng libnl
   ];
 
   preConfigure = ''
@@ -29,7 +29,8 @@ stdenv.mkDerivation rec {
     "--localstatedir=/var"
     "--sysconfdir=/etc"
     "--with-init-script=redhat"
-    "--without-macvtap"
+    "--with-macvtap"
+    "--with-virtualport"
   ];
 
   installFlags = [
@@ -50,11 +51,13 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = http://libvirt.org/;
+    repositories.git = git://libvirt.org/libvirt.git;
     description = ''
       A toolkit to interact with the virtualization capabilities of recent
       versions of Linux (and other OSes)
     '';
     license = licenses.lgpl2Plus;
+    maintainers = with maintainers; [ wizeman ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libwebp/default.nix b/pkgs/development/libraries/libwebp/default.nix
index 854af5942f90..6800541d923f 100644
--- a/pkgs/development/libraries/libwebp/default.nix
+++ b/pkgs/development/libraries/libwebp/default.nix
@@ -1,14 +1,20 @@
-{stdenv, fetchurl, libpng, libjpeg}:
+{ stdenv, fetchurl, libpng, libjpeg, giflib, libtiff }:
 
 stdenv.mkDerivation rec {
-  name = "libwebp-0.1.3";
-  
+  name = "libwebp-0.4.0";
+
   src = fetchurl {
     url = "http://webp.googlecode.com/files/${name}.tar.gz";
-    sha256 = "1fkssvg99s9ypswh4ywkirgcy1wmy3b6388f3cqj4a4vwdb89ca0";
+    sha256 = "0sadjkx8m6sf064r5gngjvz4b5246q3j27dlaml5b1k3x5vkb49i";
   };
 
-  buildInputs = [ libpng libjpeg ];
+  buildInputs = [ libpng libjpeg giflib libtiff ];
+
+  configureFlags = [
+    "--enable-libwebpmux"
+    "--enable-libwebpdemux"
+    "--enable-libwebpdecoder"
+  ];
 
   meta = {
     homepage = http://code.google.com/p/webp/;
diff --git a/pkgs/development/libraries/libxklavier/default.nix b/pkgs/development/libraries/libxklavier/default.nix
index ac5c6146cbae..18f57473fb91 100644
--- a/pkgs/development/libraries/libxklavier/default.nix
+++ b/pkgs/development/libraries/libxklavier/default.nix
@@ -1,12 +1,15 @@
 { stdenv, fetchurl, pkgconfig, libX11, libXi, xkeyboard_config, libxml2
-, libICE, glib, libxkbfile, isocodes }:
+, libICE, glib, libxkbfile, isocodes, gobjectIntrospection }:
 
+let
+  version = "5.3";
+in
 stdenv.mkDerivation rec {
-  name = "libxklavier-5.0";
+  name = "libxklavier-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/gswitchit/${name}.tar.bz2";
-    sha256 = "1c2dxinjfpq1lzxi0z46r0j80crbmwb0lkvnh6987cjjlwblpnfz";
+    url = "mirror://gnome/sources/libxklavier/${version}/${name}.tar.xz";
+    sha256 = "016lpdv35z0qsw1cprdc2k5qzkdi5waj6qmr0a2q6ljn9g2kpv7b";
   };
 
   # TODO: enable xmodmap support, needs xmodmap DB
@@ -14,6 +17,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
 
+  buildInputs = [ gobjectIntrospection ];
+
   configureFlags = ''
     --with-xkb-base=${xkeyboard_config}/etc/X11/xkb
     --disable-xmodmap-support
diff --git a/pkgs/development/libraries/libyaml/default.nix b/pkgs/development/libraries/libyaml/default.nix
index 15ba83b757aa..d0ad17048aa5 100644
--- a/pkgs/development/libraries/libyaml/default.nix
+++ b/pkgs/development/libraries/libyaml/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl }:
 let
-  version = "0.1.5";
+  version = "0.1.6";
 in
 stdenv.mkDerivation {
   name = "libyaml-${version}";
 
   src = fetchurl {
     url = "http://pyyaml.org/download/libyaml/yaml-${version}.tar.gz";
-    sha256 = "1vrv5ly58bkmcyc049ad180f2m8iav6l9h3v8l2fqdmrny7yx1zs";
+    sha256 = "0j9731s5zjb8mjx7wzf6vh7bsqi38ay564x6s9nri2nh9cdrg9kx";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 68333892fd4c..9452ae0a7c21 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -23,8 +23,8 @@ else
 */
 
 let
-  version = "9.2.5";
-  # this is the default search path for DRI drivers (note: X server no longer introduces an overriding env var)
+  version = "10.0.4";
+  # this is the default search path for DRI drivers
   driverLink = "/run/opengl-driver" + stdenv.lib.optionalString stdenv.isi686 "-32";
 in
 with { inherit (stdenv.lib) optional optionals optionalString; };
@@ -34,21 +34,23 @@ stdenv.mkDerivation {
 
   src =  fetchurl {
     url = "ftp://ftp.freedesktop.org/pub/mesa/${version}/MesaLib-${version}.tar.bz2";
-    sha256 = "1w3bxclgwl2hwyxk3za7dbdakb8jsya7afck35cz0v8pxppvjsml";
+    sha256 = "0h2sq8h0l7415vsqfkb7mn1rxm62m2anpi9swlca69fbpr9bavpz";
   };
 
   prePatch = "patchShebangs .";
 
   patches = [
     ./static-gallium.patch
-    ./dricore-gallium.patch
-    ./werror-wundef.patch
+   # TODO: revive ./dricore-gallium.patch when it gets ported (from Ubuntu),
+   #  as it saved ~35 MB in $drivers; watch https://launchpad.net/ubuntu/+source/mesa/+changelog
   ];
 
   # Change the search path for EGL drivers from $drivers/* to driverLink
   postPatch = ''
     sed '/D_EGL_DRIVER_SEARCH_DIR=/s,EGL_DRIVER_INSTALL_DIR,${driverLink}/lib/egl,' \
       -i src/egl/main/Makefile.am
+  '' + /* work around RTTI LLVM problems */ ''
+    patch -R -p1 < ${./rtti.patch}
   '';
 
   outputs = ["out" "drivers" "osmesa"];
@@ -70,7 +72,7 @@ stdenv.mkDerivation {
 
     "--with-dri-drivers=i965,r200,radeon"
     "--with-gallium-drivers=i915,nouveau,r300,r600,svga,swrast,radeonsi"
-    "--with-egl-platforms=x11,wayland,drm" "--enable-gbm" "--enable-shared-glapi"
+    "--with-egl-platforms=x11,wayland,drm" "--enable-gbm"
   ]
     ++ optional enableTextureFloats "--enable-texture-float"
     ++ optionals enableExtraFeatures [
@@ -93,8 +95,7 @@ stdenv.mkDerivation {
     ;
 
   enableParallelBuilding = true;
-  #doCheck = true; # https://bugs.freedesktop.org/show_bug.cgi?id=67672,
-    # also, 10.* links bad due to some RTTI problem
+  #doCheck = true; # https://bugs.freedesktop.org/show_bug.cgi?id=67672
 
   # move gallium-related stuff to $drivers, so $out doesn't depend on LLVM;
   #   also move libOSMesa to $osmesa, as it's relatively big
diff --git a/pkgs/development/libraries/mesa/dricore-gallium.patch b/pkgs/development/libraries/mesa/dricore-gallium.patch
deleted file mode 100644
index 9a8b6768277b..000000000000
--- a/pkgs/development/libraries/mesa/dricore-gallium.patch
+++ /dev/null
@@ -1,216 +0,0 @@
-commit 5208f187c7dade2c33385a56c1a5f1c3cedc8377 (HEAD, nix-patches)
-Author: Vladimír Čunát <vcunat@gmail.com>
-Date:   Mon May 13 11:34:59 2013 +0200
-
-    118-dricore-gallium.patch
-
-diff --git a/configure.ac b/configure.ac
-index be89843..08f6761 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -928,6 +928,8 @@ AC_SUBST([GLESv2_LIB_DEPS])
- AC_SUBST([GLESv2_PC_LIB_PRIV])
- 
- DRI_LIB_DEPS="\$(top_builddir)/src/mesa/libdricore/libdricore${VERSION}.la"
-+MESAGALLIUM_LIBS="${DRI_LIB_DEPS}"
-+AC_SUBST([MESAGALLIUM_LIBS], ${MESAGALLIUM_LIBS})
- 
- AC_SUBST([HAVE_XF86VIDMODE])
- 
-diff --git a/src/gallium/auxiliary/Makefile.am b/src/gallium/auxiliary/Makefile.am
-index 3cdec83..53ff69b 100644
---- a/src/gallium/auxiliary/Makefile.am
-+++ b/src/gallium/auxiliary/Makefile.am
-@@ -34,14 +34,14 @@ if LLVM_NEEDS_FNORTTI
- 
- AM_CXXFLAGS += -fno-rtti
- 
--libgallium_la_LIBADD = $(LLVM_LIBS)
--
- endif
- 
- libgallium_la_SOURCES += \
- 	$(GALLIVM_SOURCES) \
- 	$(GALLIVM_CPP_SOURCES)
- 
-+libgallium_la_LIBADD = ../../mesa/libdricore/libmesagallium.la $(LLVM_LIBS) $(GALLIUM_DRI_LIB_DEPS)
-+
- endif
- 
- indices/u_indices_gen.c: $(srcdir)/indices/u_indices_gen.py
-diff --git a/src/gallium/targets/dri-i915/Makefile.am b/src/gallium/targets/dri-i915/Makefile.am
-index f4f9030..e9b9462 100644
---- a/src/gallium/targets/dri-i915/Makefile.am
-+++ b/src/gallium/targets/dri-i915/Makefile.am
-@@ -49,7 +49,7 @@ i915_dri_la_SOURCES = \
- i915_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
- 
- i915_dri_la_LIBADD = \
--	$(top_builddir)/src/mesa/libmesagallium.la \
-+	@MESAGALLIUM_LIBS@ \
- 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
- 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
- 	$(top_builddir)/src/gallium/winsys/i915/drm/libi915drm.la \
-diff --git a/src/gallium/targets/dri-nouveau/Makefile.am b/src/gallium/targets/dri-nouveau/Makefile.am
-index 69ccf32..fef4c63 100644
---- a/src/gallium/targets/dri-nouveau/Makefile.am
-+++ b/src/gallium/targets/dri-nouveau/Makefile.am
-@@ -48,7 +48,7 @@ nouveau_dri_la_SOURCES = \
- nouveau_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
- 
- nouveau_dri_la_LIBADD = \
--	$(top_builddir)/src/mesa/libmesagallium.la \
-+	@MESAGALLIUM_LIBS@ \
- 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
- 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
- 	$(top_builddir)/src/gallium/winsys/nouveau/drm/libnouveaudrm.la \
-diff --git a/src/gallium/targets/dri-r300/Makefile.am b/src/gallium/targets/dri-r300/Makefile.am
-index 8c0215d..6beb536 100644
---- a/src/gallium/targets/dri-r300/Makefile.am
-+++ b/src/gallium/targets/dri-r300/Makefile.am
-@@ -49,7 +49,7 @@ r300_dri_la_SOURCES = \
- r300_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
- 
- r300_dri_la_LIBADD = \
--	$(top_builddir)/src/mesa/libmesagallium.la \
-+	@MESAGALLIUM_LIBS@ \
- 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
- 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
- 	$(top_builddir)/src/gallium/winsys/radeon/drm/libradeonwinsys.la \
-diff --git a/src/gallium/targets/dri-r600/Makefile.am b/src/gallium/targets/dri-r600/Makefile.am
-index 2b3524b..d40fb89 100644
---- a/src/gallium/targets/dri-r600/Makefile.am
-+++ b/src/gallium/targets/dri-r600/Makefile.am
-@@ -48,7 +48,7 @@ r600_dri_la_SOURCES = \
- r600_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
- 
- r600_dri_la_LIBADD = \
--	$(top_builddir)/src/mesa/libmesagallium.la \
-+	@MESAGALLIUM_LIBS@ \
- 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
- 	$(top_builddir)/src/gallium/drivers/r600/libr600.la \
- 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
-diff --git a/src/gallium/targets/dri-radeonsi/Makefile.am b/src/gallium/targets/dri-radeonsi/Makefile.am
-index f7d87a6..87ab2aa 100644
---- a/src/gallium/targets/dri-radeonsi/Makefile.am
-+++ b/src/gallium/targets/dri-radeonsi/Makefile.am
-@@ -49,7 +49,7 @@ radeonsi_dri_la_SOURCES = \
- radeonsi_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
- 
- radeonsi_dri_la_LIBADD = \
--	$(top_builddir)/src/mesa/libmesagallium.la \
-+	@MESAGALLIUM_LIBS@ \
- 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
- 	$(top_builddir)/src/gallium/drivers/radeonsi/libradeonsi.la \
- 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
-diff --git a/src/gallium/targets/dri-swrast/Makefile.am b/src/gallium/targets/dri-swrast/Makefile.am
-index 1104379..72d2401 100644
---- a/src/gallium/targets/dri-swrast/Makefile.am
-+++ b/src/gallium/targets/dri-swrast/Makefile.am
-@@ -49,7 +49,7 @@ swrast_dri_la_SOURCES = \
- swrast_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
- 
- swrast_dri_la_LIBADD = \
--	$(top_builddir)/src/mesa/libmesagallium.la \
-+	@MESAGALLIUM_LIBS@ \
- 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
- 	$(top_builddir)/src/gallium/state_trackers/dri/sw/libdrisw.la \
- 	$(top_builddir)/src/gallium/winsys/sw/dri/libswdri.la \
-diff --git a/src/gallium/targets/dri-vmwgfx/Makefile.am b/src/gallium/targets/dri-vmwgfx/Makefile.am
-index ca7df65..4384976 100644
---- a/src/gallium/targets/dri-vmwgfx/Makefile.am
-+++ b/src/gallium/targets/dri-vmwgfx/Makefile.am
-@@ -48,7 +48,7 @@ vmwgfx_dri_la_SOURCES = \
- vmwgfx_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
- 
- vmwgfx_dri_la_LIBADD = \
--	$(top_builddir)/src/mesa/libmesagallium.la \
-+	@MESAGALLIUM_LIBS@ \
- 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
- 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
- 	$(top_builddir)/src/gallium/winsys/svga/drm/libsvgadrm.la \
-diff --git a/src/gallium/targets/egl-static/Makefile.am b/src/gallium/targets/egl-static/Makefile.am
-index 5c40ae8..6922ab2 100644
---- a/src/gallium/targets/egl-static/Makefile.am
-+++ b/src/gallium/targets/egl-static/Makefile.am
-@@ -104,7 +104,7 @@ AM_CPPFLAGS += \
- 	$(API_DEFINES)
- 
- egl_gallium_la_LIBADD += \
--	$(top_builddir)/src/mesa/libmesagallium.la
-+	@MESAGALLIUM_LIBS@
- # make st/mesa built-in when there is a single glapi provider
- if HAVE_SHARED_GLAPI
- egl_gallium_la_LIBADD += \
-diff --git a/src/mesa/Makefile.am b/src/mesa/Makefile.am
-index 41483dd..0045a673 100644
---- a/src/mesa/Makefile.am
-+++ b/src/mesa/Makefile.am
-@@ -75,9 +75,6 @@ noinst_LTLIBRARIES += libmesa.la
- else
- check_LTLIBRARIES = libmesa.la
- endif
--if HAVE_GALLIUM
--noinst_LTLIBRARIES += libmesagallium.la
--endif
- 
- SRCDIR = $(top_srcdir)/src/mesa/
- BUILDDIR = $(top_builddir)/src/mesa/
-@@ -119,15 +116,6 @@ libmesa_la_LIBADD = \
-         $()
- libmesa_la_LDFLAGS =
- 
--libmesagallium_la_SOURCES = \
--	$(MESA_GALLIUM_FILES) \
--        $(MESA_ASM_FILES_FOR_ARCH)
--
--libmesagallium_la_LIBADD = \
--        $(top_builddir)/src/glsl/libglsl.la \
--        $(top_builddir)/src/mesa/program/libprogram.la \
--        $()
--
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = gl.pc
- 
-diff --git a/src/mesa/libdricore/Makefile.am b/src/mesa/libdricore/Makefile.am
-index 753548e..8761418 100644
---- a/src/mesa/libdricore/Makefile.am
-+++ b/src/mesa/libdricore/Makefile.am
-@@ -42,6 +42,7 @@ libdricore@VERSION@_la_SOURCES = \
- libdricore@VERSION@_la_LDFLAGS = -version-number 1:0
- libdricore@VERSION@_la_LIBADD = \
-         ../program/libdricore_program.la \
-+        $(top_builddir)/src/mapi/shared-glapi/libglapi.la
-         $()
- 
- if HAVE_X86_ASM
-@@ -65,8 +66,10 @@ AM_CPPFLAGS += \
-         -I$(top_srcdir)/src/mesa/sparc
- endif
- 
-+lib_LTLIBRARIES =
-+
- if HAVE_DRI
--lib_LTLIBRARIES = libdricore@VERSION@.la
-+lib_LTLIBRARIES += libdricore@VERSION@.la
- 
- # Provide compatibility with scripts for the old Mesa build system for
- # a while by putting a link to the driver into /lib of the build tree.
-@@ -76,6 +79,17 @@ all-local: libdricore@VERSION@.la
- 	ln -sf libdricore@VERSION@.so.1 $(top_builddir)/$(LIB_DIR)/libdricore@VERSION@.so
- endif
- 
-+libmesagallium_la_SOURCES = \
-+	$(STATETRACKER_FILES)
-+libmesagallium_la_CFLAGS = @LLVM_CFLAGS@
-+libmesagallium_la_CXXFLAGS = @LLVM_CXXFLAGS@
-+libmesagallium_la_LIBADD = libdricore@VERSION@.la $(LLVM_LIBS)
-+
-+if HAVE_GALLIUM
-+noinst_LTLIBRARIES = libmesagallium.la
-+endif
-+
-+
- CLEANFILES = \
- 	$(top_builddir)/$(LIB_DIR)/libdricore@VERSION@.so.1 \
- 	$(top_builddir)/$(LIB_DIR)/libdricore@VERSION@.so
diff --git a/pkgs/development/libraries/mesa/rtti.patch b/pkgs/development/libraries/mesa/rtti.patch
new file mode 100644
index 000000000000..6b123139013d
--- /dev/null
+++ b/pkgs/development/libraries/mesa/rtti.patch
@@ -0,0 +1,72 @@
+http://lists.freedesktop.org/archives/mesa-dev/2013-October/046311.html
+
+* As discussed on the mailing list,
+  forced no-rtti breaks C++ public
+  API's such as the Haiku C++ libGL.so
+* -fno-rtti *can* be still set however
+  instead of blindly forcing -fno-rtti,
+  we can rely on the llvm-config
+  --cppflags output.
+  If the system llvm is built without
+  rtti (default), the no-rtti flag will be
+  present in llvm-config --cppflags
+  (which we pick up on)
+  If llvm is built with rtti
+  (REQUIRES_RTTI=1), then -fno-rtti is
+  removed from llvm-config --cppflags.
+* We could selectively add / remove rtti
+  from various components, however mixing
+  rtti and non-rtti code is tricky and
+  could introduce bugs.
+* This needs impact tested.
+---
+ configure.ac                      | 1 -
+ scons/llvm.py                     | 3 ---
+ src/gallium/auxiliary/Makefile.am | 6 ------
+ 3 files changed, 10 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0d082d2..3335575 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1943,7 +1943,6 @@ AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes)
+ AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes)
+ AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
+ AM_CONDITIONAL(HAVE_MESA_LLVM, test x$MESA_LLVM = x1)
+-AM_CONDITIONAL(LLVM_NEEDS_FNORTTI, test $LLVM_VERSION_INT -ge 302)
+ 
+ AC_SUBST([ELF_LIB])
+ 
+diff --git a/scons/llvm.py b/scons/llvm.py
+index 7cd609c..c1c3736 100644
+--- a/scons/llvm.py
++++ b/scons/llvm.py
+@@ -195,9 +195,6 @@ def generate(env):
+             if llvm_version >= distutils.version.LooseVersion('3.1'):
+                 components.append('mcjit')
+ 
+-            if llvm_version >= distutils.version.LooseVersion('3.2'):
+-                env.Append(CXXFLAGS = ('-fno-rtti',))
+-
+             env.ParseConfig('llvm-config --libs ' + ' '.join(components))
+             env.ParseConfig('llvm-config --ldflags')
+         except OSError:
+diff --git a/src/gallium/auxiliary/Makefile.am b/src/gallium/auxiliary/Makefile.am
+index 670e124..2d2d8d4 100644
+--- a/src/gallium/auxiliary/Makefile.am
++++ b/src/gallium/auxiliary/Makefile.am
+@@ -25,12 +25,6 @@ AM_CXXFLAGS += \
+ 	$(GALLIUM_CFLAGS) \
+ 	$(LLVM_CXXFLAGS)
+ 
+-if LLVM_NEEDS_FNORTTI
+-
+-AM_CXXFLAGS += -fno-rtti
+-
+-endif
+-
+ libgallium_la_SOURCES += \
+ 	$(GALLIVM_SOURCES) \
+ 	$(GALLIVM_CPP_SOURCES)
+-- 
+1.8.4
diff --git a/pkgs/development/libraries/mesa/static-gallium.patch b/pkgs/development/libraries/mesa/static-gallium.patch
index 755682d9f1e8..bb3f60eaf88a 100644
--- a/pkgs/development/libraries/mesa/static-gallium.patch
+++ b/pkgs/development/libraries/mesa/static-gallium.patch
@@ -1,11 +1,4 @@
-commit 2c910b6f186616cac8134e2a2cbe239c8351ed99
-Author: Vladimír Čunát <vcunat@gmail.com>
-Date:   Mon May 13 11:34:34 2013 +0200
-
-    117-static-gallium.patch
-    
-    Conflicts (moving of VISIBILITY_ confused the merge):
-    	src/gallium/auxiliary/Makefile.am
+117-static-gallium.patch from Ubuntu Trusty
 
 diff --git a/configure.ac b/configure.ac
 index b9fcb0b..be89843 100644
diff --git a/pkgs/development/libraries/mesa/werror-wundef.patch b/pkgs/development/libraries/mesa/werror-wundef.patch
deleted file mode 100644
index 4663f68bd7d3..000000000000
--- a/pkgs/development/libraries/mesa/werror-wundef.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -rupN Mesa-9.2.0-orig/include/GL/gl.h Mesa-9.2.0/include/GL/gl.h
---- Mesa-9.2.0-orig/include/GL/gl.h	2013-08-14 03:34:42.000000000 +0200
-+++ Mesa-9.2.0/include/GL/gl.h	2013-09-24 19:34:58.319140812 +0200
-@@ -2088,7 +2088,7 @@ typedef void (APIENTRYP PFNGLMULTITEXCOO
- 
- 
- 
--#if GL_ARB_shader_objects
-+#if defined(GL_ARB_shaders_objects) && GL_ARB_shader_objects
- 
- #ifndef GL_MESA_shader_debug
- #define GL_MESA_shader_debug 1
diff --git a/pkgs/development/libraries/minizip/default.nix b/pkgs/development/libraries/minizip/default.nix
new file mode 100644
index 000000000000..b71920446e4c
--- /dev/null
+++ b/pkgs/development/libraries/minizip/default.nix
@@ -0,0 +1,14 @@
+{ stdenv, zlib, autoconf, automake, libtool }:
+
+stdenv.mkDerivation {
+  name = "minizip-${zlib.version}";
+  inherit (zlib) src;
+
+  nativeBuildInputs = [ autoconf automake libtool ];
+  buildInputs = [ zlib ];
+
+  preConfigure = ''
+    cd contrib/minizip
+    autoreconf -vfi
+  '';
+}
diff --git a/pkgs/development/libraries/mps/default.nix b/pkgs/development/libraries/mps/default.nix
new file mode 100644
index 000000000000..6e1e8c8e1138
--- /dev/null
+++ b/pkgs/development/libraries/mps/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, autoreconfHook, sqlite }:
+
+stdenv.mkDerivation rec {
+  name = "mps-${version}";
+  version = "1.113.0";
+
+  src = fetchurl {
+    url    = "http://www.ravenbrook.com/project/mps/release/${version}/mps-kit-${version}.tar.gz";
+    sha256 = "0v4difh3yl2mvpvnwlavhaags945l1452g07fllhdbpzgbjay79i";
+  };
+
+  buildInputs = [ autoreconfHook sqlite ];
+
+  # Fix a slightly annoying build failure in 'make install'
+  patchPhase = "substituteInPlace ./Makefile.in --replace /hot/Release /hot";
+
+  meta = {
+    description = "A flexible memory management and garbage collection library";
+    homepage    = "http://www.ravenbrook.com/project/mps";
+    license     = stdenv.lib.licenses.sleepycat;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index 2e5db48b7df3..993993cecd07 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation (rec {
   patches = [ ./patch-ac ];
 
   configureFlags = ''
-    --with-shared --without-debug --enable-pc-files
+    --with-shared --without-debug --enable-pc-files --enable-symlinks
     ${if unicode then "--enable-widec" else ""}${if cxx then "" else "--without-cxx-binding"}
   '';
 
diff --git a/pkgs/development/libraries/npapi-sdk/default.nix b/pkgs/development/libraries/npapi-sdk/default.nix
new file mode 100644
index 000000000000..255468e78103
--- /dev/null
+++ b/pkgs/development/libraries/npapi-sdk/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "npapi-sdk-${version}";
+
+  version = "0.27.2";
+
+  src = fetchurl {
+    url = "https://bitbucket.org/mgorny/npapi-sdk/downloads/${name}.tar.bz2";
+
+    sha256 = "0xxfcsjmmgbbyl9zwpzdshbx27grj5fnzjfmldmm9apws2yk9gq1";
+  };
+
+  meta = with stdenv.lib; {
+    description = "NPAPI-SDK is a bundle of NPAPI headers by Mozilla";
+
+    homepage = https://code.google.com/p/npapi-sdk/;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ wizeman ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/openldap/default.nix b/pkgs/development/libraries/openldap/default.nix
index c4be3358049f..c8e8ff352773 100644
--- a/pkgs/development/libraries/openldap/default.nix
+++ b/pkgs/development/libraries/openldap/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, openssl, cyrus_sasl, db, groff}:
 
 stdenv.mkDerivation rec {
-  name = "openldap-2.4.38";
+  name = "openldap-2.4.39";
 
   src = fetchurl {
     url = "ftp://ftp.nl.uu.net/pub/unix/db/openldap/openldap-release/${name}.tgz";
-    sha256 = "1l8zng86alhcmmmw09r1c4dzl7yvk6dy5fq9zia96pgck4srl848";
+    sha256 = "19zq9dc7dl03wmqd11fbsdii1npyq1vlicl3nxbfygqh8xrwhrw2";
   };
 
   buildInputs = [ openssl cyrus_sasl db groff ];
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 7d7ccacd14ad..0d57018dcd6f 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -2,7 +2,7 @@
 , withCryptodev ? false, cryptodevHeaders }:
 
 let
-  name = "openssl-1.0.1f";
+  name = "openssl-1.0.1g";
 
   opensslCrossSystem = stdenv.lib.attrByPath [ "openssl" "system" ]
     (throw "openssl needs its platform name cross building" null)
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
       "http://www.openssl.org/source/${name}.tar.gz"
       "http://openssl.linux-mirror.org/source/${name}.tar.gz"
     ];
-    sha256 = "0nnbr70dg67raqsqvlypzxa1v5xsv9gp91f9pavyckfn2w5sihkc";
+    sha256 = "0a70qdqccg16nw4bbawa6pjvzn05vfp5wkwg6jl0grch7f683jsk";
   };
 
   patches = patchesCross false;
diff --git a/pkgs/development/libraries/pango/default.nix b/pkgs/development/libraries/pango/default.nix
index b94a00b1b541..2dc71bb2d11b 100644
--- a/pkgs/development/libraries/pango/default.nix
+++ b/pkgs/development/libraries/pango/default.nix
@@ -9,9 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "08aqis6j8nd1lb4f2h4h9d9kjvp54iwf8zvqzss0qn4v7nfcjyvx";
   };
 
-  buildInputs = [ gobjectIntrospection ]
-    ++ stdenv.lib.optionals stdenv.isDarwin [ gettext fontconfig ];
-
+  buildInputs = with stdenv.lib;
+    optional (!stdenv.isDarwin) gobjectIntrospection # build problems of itself and flex
+    ++ optionals stdenv.isDarwin [ gettext fontconfig ];
 
   nativeBuildInputs = [ pkgconfig ];
 
diff --git a/pkgs/development/libraries/readline/readline6.3.nix b/pkgs/development/libraries/readline/readline6.3.nix
new file mode 100644
index 000000000000..2f99b9d72183
--- /dev/null
+++ b/pkgs/development/libraries/readline/readline6.3.nix
@@ -0,0 +1,49 @@
+{ fetchurl, stdenv, ncurses }:
+
+stdenv.mkDerivation (rec {
+  name = "readline-6.3";
+
+  src = fetchurl {
+    url = "mirror://gnu/readline/${name}.tar.gz";
+    sha256 = "0hzxr9jxqqx5sxsv9vmlxdnvlr9vi4ih1avjb869hbs6p5qn1fjn";
+  };
+
+  propagatedBuildInputs = [ncurses];
+
+  patchFlags = "-p0";
+
+  patches =
+    [ ./link-against-ncurses.patch ];
+
+  meta = {
+    description = "GNU Readline, a library for interactive line editing";
+
+    longDescription = ''
+      The GNU Readline library provides a set of functions for use by
+      applications that allow users to edit command lines as they are
+      typed in.  Both Emacs and vi editing modes are available.  The
+      Readline library includes additional functions to maintain a
+      list of previously-entered command lines, to recall and perhaps
+      reedit those lines, and perform csh-like history expansion on
+      previous commands.
+
+      The history facilites are also placed into a separate library,
+      the History library, as part of the build process.  The History
+      library may be used without Readline in applications which
+      desire its capabilities.
+    '';
+
+    homepage = http://savannah.gnu.org/projects/readline/;
+
+    license = "GPLv3+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+  };
+}
+
+//
+
+# Don't run the native `strip' when cross-compiling.
+(if (stdenv ? cross)
+ then { dontStrip = true; }
+ else { }))
diff --git a/pkgs/development/libraries/ruby_ncursesw_sup/default.nix b/pkgs/development/libraries/ruby_ncursesw_sup/default.nix
index 67041ad06078..8d55bafeb20d 100644
--- a/pkgs/development/libraries/ruby_ncursesw_sup/default.nix
+++ b/pkgs/development/libraries/ruby_ncursesw_sup/default.nix
@@ -1,11 +1,12 @@
 { stdenv, fetchurl, ncurses, ruby, rubygems }:
 
 stdenv.mkDerivation rec {
-  name = ''ncursesw-sup-afd962b9c06108ff0643e98593c5605314d76917'';
+  name = "ncursesw-sup-${version}";
+  version = "1.4.6";
 
   src = fetchurl {
-    url = "https://github.com/sup-heliotrope/ncursesw-ruby/archive/afd962b9c06108ff0643e98593c5605314d76917.tar.gz";
-    sha256 = "13i286p4bm8zqg9xh96a1dg7wkywj9m6975gbh3w43d3rmfc1h6a";
+    url = "https://github.com/sup-heliotrope/ncursesw-ruby/archive/v${version}.tar.gz";
+    sha256 = "1fzmj5kqh2aql7r7jys8cyf7mb78kz71yc4a6gh74h9s8pybyhh7";
   };
 
   meta = {
@@ -32,12 +33,12 @@ stdenv.mkDerivation rec {
     # For some reason, the installation phase doesn't work with the default
     # make install command run by gem (we'll fix it and do it ourselves later)
     gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \
-        --bindir "$out/bin" --no-rdoc --no-ri ncursesw-sup-1.3.1.2.gem || true
+        --bindir "$out/bin" --no-rdoc --no-ri ncursesw-${version}.gem || true
 
     # Needed for ruby to recognise the gem
     cp ncursesw.gemspec "$out/${ruby.gemPath}/specifications"
 
-    cd "$out/${ruby.gemPath}/gems/ncursesw-sup-1.3.1.2"
+    cd "$out/${ruby.gemPath}/gems/ncursesw-${version}"
     mkdir src
     mv lib src
     sed -i "s/srcdir = ./srcdir = src/" Makefile
diff --git a/pkgs/development/libraries/spice-gtk/default.nix b/pkgs/development/libraries/spice-gtk/default.nix
index 60bf24dfd784..adb1fe90558e 100644
--- a/pkgs/development/libraries/spice-gtk/default.nix
+++ b/pkgs/development/libraries/spice-gtk/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchurl, pkgconfig, gtk, spice_protocol, intltool, celt_0_5_1
 , openssl, pulseaudio, pixman, gobjectIntrospection, libjpeg_turbo, zlib
-, cyrus_sasl, python, pygtk, autoconf, automake, libtool }:
+, cyrus_sasl, python, pygtk, autoconf, automake, libtool, usbredir
+, gtk3, enableGTK3 ? false }:
 
 with stdenv.lib;
 
@@ -13,9 +14,9 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    gtk spice_protocol celt_0_5_1 openssl pulseaudio pixman gobjectIntrospection
-    libjpeg_turbo zlib cyrus_sasl python pygtk
-  ];
+    spice_protocol celt_0_5_1 openssl pulseaudio pixman gobjectIntrospection
+    libjpeg_turbo zlib cyrus_sasl python pygtk usbredir
+  ] ++ (if enableGTK3 then [ gtk3 ] else [ gtk ]);
 
   nativeBuildInputs = [ pkgconfig intltool libtool autoconf automake ];
 
@@ -31,7 +32,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--disable-maintainer-mode"
-    "--with-gtk=2.0"
+    (if enableGTK3 then "--with-gtk3" else "--with-gtk=2.0")
   ];
 
   dontDisableStatic = true; # Needed by the coroutine test
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index de96ab58eaef..ec392e715315 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -3,11 +3,11 @@
 assert readline != null -> ncurses != null;
 
 stdenv.mkDerivation {
-  name = "sqlite-3.8.0.2";
+  name = "sqlite-3.8.4.3";
 
   src = fetchurl {
-    url = http://www.sqlite.org/2013/sqlite-autoconf-3080002.tar.gz;
-    sha1 = "294c30e882a0d45877bce09afe72d08ccfc6b650";
+    url = "http://www.sqlite.org/2014/sqlite-autoconf-3080403.tar.gz";
+    sha1 = "zd9nqg1fc41222hvzvmvzr92z80b3wvh";
   };
 
   buildInputs = [ readline ncurses ];
diff --git a/pkgs/development/libraries/telepathy/glib/default.nix b/pkgs/development/libraries/telepathy/glib/default.nix
index 78d2d520050a..6c0806ec4cd1 100644
--- a/pkgs/development/libraries/telepathy/glib/default.nix
+++ b/pkgs/development/libraries/telepathy/glib/default.nix
@@ -2,11 +2,11 @@
 , gobjectIntrospection, valaSupport ? true, vala }:
 
 stdenv.mkDerivation rec {
-  name = "telepathy-glib-0.22.1";
+  name = "telepathy-glib-0.24.0";
 
   src = fetchurl {
     url = "${meta.homepage}/releases/telepathy-glib/${name}.tar.gz";
-    sha256 = "0vf2drh7g55nxyd0mxyn9sf99m981dagnvv9yc3q9f4k8x092a78";
+    sha256 = "ae0002134991217f42e503c43dea7817853afc18863b913744d51ffa029818cf";
   };
 
   configureFlags = stdenv.lib.optional valaSupport "--enable-vala-bindings";
diff --git a/pkgs/development/libraries/thrift/default.nix b/pkgs/development/libraries/thrift/default.nix
index 0153cfa62ace..e1129d25ef4e 100644
--- a/pkgs/development/libraries/thrift/default.nix
+++ b/pkgs/development/libraries/thrift/default.nix
@@ -15,6 +15,10 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
+  # Workaround to make the python wrapper not drop this package:
+  # pythonFull.override { extraLibs = [ thrift ]; }
+  pythonPath = [];
+
   buildInputs = [
     boost zlib libevent openssl python automake autoconf libtool pkgconfig
     bison flex
diff --git a/pkgs/development/libraries/usbredir/default.nix b/pkgs/development/libraries/usbredir/default.nix
new file mode 100644
index 000000000000..7f05daab0210
--- /dev/null
+++ b/pkgs/development/libraries/usbredir/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, libusb }:
+
+stdenv.mkDerivation rec {
+  name = "usbredir-${version}";
+  version = "0.6";
+
+  src = fetchurl {
+    url = "http://spice-space.org/download/usbredir/${name}.tar.bz2";
+    sha256 = "028184960044ea4124030000b3c55a35c3238835116e3a0fbcaff449df2c8edf";
+  };
+
+  buildInputs = [ pkgconfig libusb ];
+  propagatedBuildInputs = [ libusb ];
+
+  meta = with stdenv.lib; {
+    description = "USB traffic redirection protocol";
+    homepage = http://spice-space.org/page/UsbRedir;
+    license = licenses.lgpl21;
+
+    maintainers = [ maintainers.offline ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/v8/3.14.nix b/pkgs/development/libraries/v8/3.14.nix
new file mode 100644
index 000000000000..0564e6887957
--- /dev/null
+++ b/pkgs/development/libraries/v8/3.14.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchsvn, gyp, readline, python, which }:
+
+assert readline != null;
+
+let
+  system = stdenv.system;
+  arch = if system == "i686-linux" then "ia32" else if system == "x86_64-linux" || system == "x86_64-darwin" then "x64" else "";
+  version = "3.14.5.9";
+in
+
+assert arch != "";
+
+stdenv.mkDerivation {
+    name = "v8-${version}";
+
+    src = fetchsvn {
+      url = "http://v8.googlecode.com/svn/tags/${version}";
+      sha256 = "18qp5qp5xrb6f00w01cklz358yrl54pks963f5rwvwz82d8sfyqr";
+      name = "v8-${version}-src";
+    };
+
+    patches = [ ./fix-GetLocalizedMessage-usage.patch ];
+
+    configurePhase = ''
+      mkdir build/gyp
+      ln -sv ${gyp}/bin/gyp build/gyp/gyp
+    '';
+
+    nativeBuildInputs = [ which ];
+    buildInputs = [ readline python ];
+
+    buildFlags = [
+      "library=shared"
+      "console=readline"
+      "${arch}.release"
+    ];
+
+    # http://code.google.com/p/v8/issues/detail?id=2149
+    NIX_CFLAGS_COMPILE = "-Wno-unused-local-typedefs -Wno-aggressive-loop-optimizations";
+
+    enableParallelBuilding = true;
+
+    installPhase = ''
+      mkdir -p $out/bin
+      mkdir -p $out/lib
+      mv -v out/${arch}.release/d8 $out/bin
+
+      ${if stdenv.system == "x86_64-darwin" then
+        "mv -v out/${arch}.release/libv8.dylib $out/lib"
+      else
+        "mv -v out/${arch}.release/lib.target/libv8.so $out/lib"}
+      mv -v include $out/
+    '';
+
+    postFixup = if stdenv.isDarwin then ''
+      install_name_tool -change /usr/local/lib/libv8.dylib $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.gcc.gcc}/lib/libgcc_s.1.dylib $out/bin/d8
+      install_name_tool -id $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.gcc.gcc}/lib/libgcc_s.1.dylib $out/lib/libv8.dylib
+    '' else null;
+
+    meta = with stdenv.lib; {
+      description = "V8 is Google's open source JavaScript engine";
+      platforms = platforms.linux ++ platforms.darwin;
+      license = licenses.bsd3;
+    };
+}
diff --git a/pkgs/development/libraries/v8/default.nix b/pkgs/development/libraries/v8/default.nix
index 0564e6887957..db8e491caae3 100644
--- a/pkgs/development/libraries/v8/default.nix
+++ b/pkgs/development/libraries/v8/default.nix
@@ -1,65 +1,66 @@
-{ stdenv, fetchsvn, gyp, readline, python, which }:
+{ stdenv, fetchurl, gyp, readline, python, which, icu }:
 
 assert readline != null;
 
 let
-  system = stdenv.system;
-  arch = if system == "i686-linux" then "ia32" else if system == "x86_64-linux" || system == "x86_64-darwin" then "x64" else "";
-  version = "3.14.5.9";
+  arch = if stdenv.is64bit then "x64" else "ia32";
 in
 
-assert arch != "";
+stdenv.mkDerivation rec {
+  name = "v8-${version}";
+  version = "3.25.9";
 
-stdenv.mkDerivation {
-    name = "v8-${version}";
+  src = fetchurl {
+    url = "https://commondatastorage.googleapis.com/chromium-browser-official/"
+        + "${name}.tar.bz2";
+    sha256 = "0x6czv99dr701vljyb4ghyhhc5rmv7vfkpvigcnrqz2an9q1pc28";
+  };
 
-    src = fetchsvn {
-      url = "http://v8.googlecode.com/svn/tags/${version}";
-      sha256 = "18qp5qp5xrb6f00w01cklz358yrl54pks963f5rwvwz82d8sfyqr";
-      name = "v8-${version}-src";
-    };
+  configurePhase = ''
+    PYTHONPATH="tools/generate_shim_headers:$PYTHONPATH" \
+      ${gyp}/bin/gyp \
+        -f make \
+        --generator-output="out" \
+        -Dflock_index=0 \
+        -Dv8_enable_i18n_support=1 \
+        -Duse_system_icu=1 \
+        -Dconsole=readline \
+        -Dcomponent=shared_library \
+        -Dv8_target_arch=${arch} \
+        --depth=. -Ibuild/standalone.gypi \
+        build/all.gyp
+  '';
 
-    patches = [ ./fix-GetLocalizedMessage-usage.patch ];
+  nativeBuildInputs = [ which ];
+  buildInputs = [ readline python icu ];
 
-    configurePhase = ''
-      mkdir build/gyp
-      ln -sv ${gyp}/bin/gyp build/gyp/gyp
-    '';
+  buildFlags = [
+    "LINK=g++"
+    "-C out"
+    "builddir=$(CURDIR)/Release"
+    "BUILDTYPE=Release"
+  ];
 
-    nativeBuildInputs = [ which ];
-    buildInputs = [ readline python ];
+  enableParallelBuilding = true;
 
-    buildFlags = [
-      "library=shared"
-      "console=readline"
-      "${arch}.release"
-    ];
+  installPhase = ''
+    install -vD out/Release/d8 "$out/bin/d8"
+    ${if stdenv.system == "x86_64-darwin" then ''
+    install -vD out/Release/lib.target/libv8.dylib "$out/lib/libv8.dylib"
+    '' else ''
+    install -vD out/Release/lib.target/libv8.so "$out/lib/libv8.so"
+    ''}
+    cp -vr include "$out/"
+  '';
 
-    # http://code.google.com/p/v8/issues/detail?id=2149
-    NIX_CFLAGS_COMPILE = "-Wno-unused-local-typedefs -Wno-aggressive-loop-optimizations";
+  postFixup = if stdenv.isDarwin then ''
+    install_name_tool -change /usr/local/lib/libv8.dylib $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.gcc.gcc}/lib/libgcc_s.1.dylib $out/bin/d8
+    install_name_tool -id $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.gcc.gcc}/lib/libgcc_s.1.dylib $out/lib/libv8.dylib
+  '' else null;
 
-    enableParallelBuilding = true;
-
-    installPhase = ''
-      mkdir -p $out/bin
-      mkdir -p $out/lib
-      mv -v out/${arch}.release/d8 $out/bin
-
-      ${if stdenv.system == "x86_64-darwin" then
-        "mv -v out/${arch}.release/libv8.dylib $out/lib"
-      else
-        "mv -v out/${arch}.release/lib.target/libv8.so $out/lib"}
-      mv -v include $out/
-    '';
-
-    postFixup = if stdenv.isDarwin then ''
-      install_name_tool -change /usr/local/lib/libv8.dylib $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.gcc.gcc}/lib/libgcc_s.1.dylib $out/bin/d8
-      install_name_tool -id $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.gcc.gcc}/lib/libgcc_s.1.dylib $out/lib/libv8.dylib
-    '' else null;
-
-    meta = with stdenv.lib; {
-      description = "V8 is Google's open source JavaScript engine";
-      platforms = platforms.linux ++ platforms.darwin;
-      license = licenses.bsd3;
-    };
+  meta = with stdenv.lib; {
+    description = "V8 is Google's open source JavaScript engine";
+    platforms = platforms.linux ++ platforms.darwin;
+    license = licenses.bsd3;
+  };
 }
diff --git a/pkgs/development/libraries/webkit/bison26.patch b/pkgs/development/libraries/webkit/bison26.patch
deleted file mode 100644
index 95898adeb8a6..000000000000
--- a/pkgs/development/libraries/webkit/bison26.patch
+++ /dev/null
@@ -1,515 +0,0 @@
-Index: /trunk/Source/WebCore/ChangeLog

-===================================================================

---- /trunk/Source/WebCore/ChangeLog	(revision 124098)

-+++ /trunk/Source/WebCore/ChangeLog	(revision 124099)

-@@ -1,2 +1,27 @@

-+2012-07-30  Alexis Menard  <alexis.menard@openbossa.org>

-+

-+        Build fix with newer bison 2.6.

-+        https://bugs.webkit.org/show_bug.cgi?id=92264

-+

-+        Reviewed by Adam Barth.

-+

-+        As stated in http://www.gnu.org/software/bison/manual/html_node/Table-of-Symbols.html

-+        YYLEX_PARAM and YYPARSE_PARAM are depecreated since version 1.875. So far all Mac OS

-+        version I had access to as well as recent Linux runs at least version 2.3 so it's safe

-+        to use the replacement of these deprecated macros in favor of %lex-param and %parse-param.

-+        As announced http://lists.gnu.org/archive/html/info-gnu/2012-07/msg00011.html with the release

-+        of version 2.6 YYLEX_PARAM and YYPARSE_PARAM are not supported anymore.

-+

-+        No new tests : build fix and the patch should not trigger any regressions

-+

-+        * css/CSSGrammar.y:

-+        * css/CSSParser.cpp:

-+        * xml/XPathGrammar.y: Refactored a bit to not use an intermediate PARSER define.

-+        * xml/XPathParser.cpp: bison 2.6 declare xpathyyparse in the .h file now, i.e. XPathGrammar.h

-+        therefore including this file within the namespace {} declarations leads to xpathyyparse being

-+        defined part of WebCore::XPath namespaces but the actual implementation of xpathyyparse is in XPathGrammar.cpp

-+        (generated) and not implemented within the WebCore::XPath so it lead to linking issues. Last, XPathGrammar.h needs 

-+        to be included after the other includes as it uses some XPath types. It breaks the style but CSSParser.cpp is doing the same.

-+

- 2012-07-30  Sadrul Habib Chowdhury  <sadrul@chromium.org>

- 

-Index: /trunk/Source/WebCore/css/CSSParser.cpp

-===================================================================

---- /trunk/Source/WebCore/css/CSSParser.cpp	(revision 124098)

-+++ /trunk/Source/WebCore/css/CSSParser.cpp	(revision 124099)

-@@ -115,5 +115,5 @@

- #endif

- 

--extern int cssyyparse(void* parser);

-+extern int cssyyparse(WebCore::CSSParser*);

- 

- using namespace std;

-Index: /trunk/Source/WebCore/css/CSSGrammar.y

-===================================================================

---- /trunk/Source/WebCore/css/CSSGrammar.y	(revision 124098)

-+++ /trunk/Source/WebCore/css/CSSGrammar.y	(revision 124099)

-@@ -54,11 +54,10 @@

- #define YYDEBUG 0

- 

--// FIXME: Replace with %parse-param { CSSParser* parser } once we can depend on bison 2.x

--#define YYPARSE_PARAM parser

--#define YYLEX_PARAM parser

--

- %}

- 

- %pure_parser

-+

-+%parse-param { CSSParser* parser }

-+%lex-param { CSSParser* parser }

- 

- %union {

-@@ -90,5 +89,5 @@

- %{

- 

--static inline int cssyyerror(const char*)

-+static inline int cssyyerror(void*, const char*)

- {

-     return 1;

-Index: /trunk/Source/WebCore/xml/XPathParser.cpp

-===================================================================

---- /trunk/Source/WebCore/xml/XPathParser.cpp	(revision 124098)

-+++ /trunk/Source/WebCore/xml/XPathParser.cpp	(revision 124099)

-@@ -33,22 +33,19 @@

- #include "XPathException.h"

- #include "XPathNSResolver.h"

-+#include "XPathPath.h"

- #include "XPathStep.h"

- #include <wtf/StdLibExtras.h>

- #include <wtf/text/StringHash.h>

- 

--int xpathyyparse(void*);

--

-+using namespace WebCore;

- using namespace WTF;

- using namespace Unicode;

--

--namespace WebCore {

--namespace XPath {

--

--class LocationPath;

--

--#include "XPathGrammar.h"    

-+using namespace XPath;

-+

-+extern int xpathyyparse(WebCore::XPath::Parser*);

-+#include "XPathGrammar.h"

- 

- Parser* Parser::currentParser = 0;

--    

-+

- enum XMLCat { NameStart, NameCont, NotPartOfName };

- 

-@@ -631,4 +628,2 @@

- }

- 

--}

--}

-Index: /trunk/Source/WebCore/xml/XPathGrammar.y

-===================================================================

---- /trunk/Source/WebCore/xml/XPathGrammar.y	(revision 124098)

-+++ /trunk/Source/WebCore/xml/XPathGrammar.y	(revision 124099)

-@@ -35,4 +35,5 @@

- #include "XPathPath.h"

- #include "XPathPredicate.h"

-+#include "XPathStep.h"

- #include "XPathVariableReference.h"

- #include <wtf/FastMalloc.h>

-@@ -45,6 +46,4 @@

- #define YYDEBUG 0

- #define YYMAXDEPTH 10000

--#define YYPARSE_PARAM parserParameter

--#define PARSER static_cast<Parser*>(parserParameter)

- 

- using namespace WebCore;

-@@ -54,4 +53,5 @@

- 

- %pure_parser

-+%parse-param { WebCore::XPath::Parser* parser }

- 

- %union

-@@ -72,5 +72,5 @@

- 

- static int xpathyylex(YYSTYPE* yylval) { return Parser::current()->lex(yylval); }

--static void xpathyyerror(const char*) { }

-+static void xpathyyerror(void*, const char*) { }

-     

- %}

-@@ -119,5 +119,5 @@

-     OrExpr

-     {

--        PARSER->m_topExpr = $1;

-+        parser->m_topExpr = $1;

-     }

-     ;

-@@ -139,5 +139,5 @@

-     {

-         $$ = new LocationPath;

--        PARSER->registerParseNode($$);

-+        parser->registerParseNode($$);

-     }

-     |

-@@ -151,5 +151,5 @@

-         $$ = $2;

-         $$->insertFirstStep($1);

--        PARSER->unregisterParseNode($1);

-+        parser->unregisterParseNode($1);

-     }

-     ;

-@@ -160,6 +160,6 @@

-         $$ = new LocationPath;

-         $$->appendStep($1);

--        PARSER->unregisterParseNode($1);

--        PARSER->registerParseNode($$);

-+        parser->unregisterParseNode($1);

-+        parser->registerParseNode($$);

-     }

-     |

-@@ -167,5 +167,5 @@

-     {

-         $$->appendStep($3);

--        PARSER->unregisterParseNode($3);

-+        parser->unregisterParseNode($3);

-     }

-     |

-@@ -174,6 +174,6 @@

-         $$->appendStep($2);

-         $$->appendStep($3);

--        PARSER->unregisterParseNode($2);

--        PARSER->unregisterParseNode($3);

-+        parser->unregisterParseNode($2);

-+        parser->unregisterParseNode($3);

-     }

-     ;

-@@ -184,9 +184,9 @@

-         if ($2) {

-             $$ = new Step(Step::ChildAxis, *$1, *$2);

--            PARSER->deletePredicateVector($2);

-+            parser->deletePredicateVector($2);

-         } else

-             $$ = new Step(Step::ChildAxis, *$1);

--        PARSER->deleteNodeTest($1);

--        PARSER->registerParseNode($$);

-+        parser->deleteNodeTest($1);

-+        parser->registerParseNode($$);

-     }

-     |

-@@ -195,6 +195,6 @@

-         String localName;

-         String namespaceURI;

--        if (!PARSER->expandQName(*$1, localName, namespaceURI)) {

--            PARSER->m_gotNamespaceError = true;

-+        if (!parser->expandQName(*$1, localName, namespaceURI)) {

-+            parser->m_gotNamespaceError = true;

-             YYABORT;

-         }

-@@ -202,9 +202,9 @@

-         if ($2) {

-             $$ = new Step(Step::ChildAxis, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI), *$2);

--            PARSER->deletePredicateVector($2);

-+            parser->deletePredicateVector($2);

-         } else

-             $$ = new Step(Step::ChildAxis, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI));

--        PARSER->deleteString($1);

--        PARSER->registerParseNode($$);

-+        parser->deleteString($1);

-+        parser->registerParseNode($$);

-     }

-     |

-@@ -213,9 +213,9 @@

-         if ($3) {

-             $$ = new Step($1, *$2, *$3);

--            PARSER->deletePredicateVector($3);

-+            parser->deletePredicateVector($3);

-         } else

-             $$ = new Step($1, *$2);

--        PARSER->deleteNodeTest($2);

--        PARSER->registerParseNode($$);

-+        parser->deleteNodeTest($2);

-+        parser->registerParseNode($$);

-     }

-     |

-@@ -224,6 +224,6 @@

-         String localName;

-         String namespaceURI;

--        if (!PARSER->expandQName(*$2, localName, namespaceURI)) {

--            PARSER->m_gotNamespaceError = true;

-+        if (!parser->expandQName(*$2, localName, namespaceURI)) {

-+            parser->m_gotNamespaceError = true;

-             YYABORT;

-         }

-@@ -231,9 +231,9 @@

-         if ($3) {

-             $$ = new Step($1, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI), *$3);

--            PARSER->deletePredicateVector($3);

-+            parser->deletePredicateVector($3);

-         } else

-             $$ = new Step($1, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI));

--        PARSER->deleteString($2);

--        PARSER->registerParseNode($$);

-+        parser->deleteString($2);

-+        parser->registerParseNode($$);

-     }

-     |

-@@ -260,6 +260,6 @@

-             $$ = new Step::NodeTest(Step::NodeTest::CommentNodeTest);

- 

--        PARSER->deleteString($1);

--        PARSER->registerNodeTest($$);

-+        parser->deleteString($1);

-+        parser->registerNodeTest($$);

-     }

-     |

-@@ -267,6 +267,6 @@

-     {

-         $$ = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest);

--        PARSER->deleteString($1);        

--        PARSER->registerNodeTest($$);

-+        parser->deleteString($1);

-+        parser->registerNodeTest($$);

-     }

-     |

-@@ -274,7 +274,7 @@

-     {

-         $$ = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest, $3->stripWhiteSpace());

--        PARSER->deleteString($1);        

--        PARSER->deleteString($3);

--        PARSER->registerNodeTest($$);

-+        parser->deleteString($1);

-+        parser->deleteString($3);

-+        parser->registerNodeTest($$);

-     }

-     ;

-@@ -294,6 +294,6 @@

-         $$ = new Vector<Predicate*>;

-         $$->append(new Predicate($1));

--        PARSER->unregisterParseNode($1);

--        PARSER->registerPredicateVector($$);

-+        parser->unregisterParseNode($1);

-+        parser->registerPredicateVector($$);

-     }

-     |

-@@ -301,5 +301,5 @@

-     {

-         $$->append(new Predicate($2));

--        PARSER->unregisterParseNode($2);

-+        parser->unregisterParseNode($2);

-     }

-     ;

-@@ -316,5 +316,5 @@

-     {

-         $$ = new Step(Step::DescendantOrSelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));

--        PARSER->registerParseNode($$);

-+        parser->registerParseNode($$);

-     }

-     ;

-@@ -324,5 +324,5 @@

-     {

-         $$ = new Step(Step::SelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));

--        PARSER->registerParseNode($$);

-+        parser->registerParseNode($$);

-     }

-     |

-@@ -330,5 +330,5 @@

-     {

-         $$ = new Step(Step::ParentAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));

--        PARSER->registerParseNode($$);

-+        parser->registerParseNode($$);

-     }

-     ;

-@@ -338,6 +338,6 @@

-     {

-         $$ = new VariableReference(*$1);

--        PARSER->deleteString($1);

--        PARSER->registerParseNode($$);

-+        parser->deleteString($1);

-+        parser->registerParseNode($$);

-     }

-     |

-@@ -350,6 +350,6 @@

-     {

-         $$ = new StringExpression(*$1);

--        PARSER->deleteString($1);

--        PARSER->registerParseNode($$);

-+        parser->deleteString($1);

-+        parser->registerParseNode($$);

-     }

-     |

-@@ -357,6 +357,6 @@

-     {

-         $$ = new Number($1->toDouble());

--        PARSER->deleteString($1);

--        PARSER->registerParseNode($$);

-+        parser->deleteString($1);

-+        parser->registerParseNode($$);

-     }

-     |

-@@ -370,6 +370,6 @@

-         if (!$$)

-             YYABORT;

--        PARSER->deleteString($1);

--        PARSER->registerParseNode($$);

-+        parser->deleteString($1);

-+        parser->registerParseNode($$);

-     }

-     |

-@@ -379,7 +379,7 @@

-         if (!$$)

-             YYABORT;

--        PARSER->deleteString($1);

--        PARSER->deleteExpressionVector($3);

--        PARSER->registerParseNode($$);

-+        parser->deleteString($1);

-+        parser->deleteExpressionVector($3);

-+        parser->registerParseNode($$);

-     }

-     ;

-@@ -390,6 +390,6 @@

-         $$ = new Vector<Expression*>;

-         $$->append($1);

--        PARSER->unregisterParseNode($1);

--        PARSER->registerExpressionVector($$);

-+        parser->unregisterParseNode($1);

-+        parser->registerExpressionVector($$);

-     }

-     |

-@@ -397,5 +397,5 @@

-     {

-         $$->append($3);

--        PARSER->unregisterParseNode($3);

-+        parser->unregisterParseNode($3);

-     }

-     ;

-@@ -413,7 +413,7 @@

-         $$->addSubExpression($1);

-         $$->addSubExpression($3);

--        PARSER->unregisterParseNode($1);

--        PARSER->unregisterParseNode($3);

--        PARSER->registerParseNode($$);

-+        parser->unregisterParseNode($1);

-+        parser->unregisterParseNode($3);

-+        parser->registerParseNode($$);

-     }

-     ;

-@@ -431,7 +431,7 @@

-         $3->setAbsolute(true);

-         $$ = new Path(static_cast<Filter*>($1), $3);

--        PARSER->unregisterParseNode($1);

--        PARSER->unregisterParseNode($3);

--        PARSER->registerParseNode($$);

-+        parser->unregisterParseNode($1);

-+        parser->unregisterParseNode($3);

-+        parser->registerParseNode($$);

-     }

-     |

-@@ -441,8 +441,8 @@

-         $3->setAbsolute(true);

-         $$ = new Path(static_cast<Filter*>($1), $3);

--        PARSER->unregisterParseNode($1);

--        PARSER->unregisterParseNode($2);

--        PARSER->unregisterParseNode($3);

--        PARSER->registerParseNode($$);

-+        parser->unregisterParseNode($1);

-+        parser->unregisterParseNode($2);

-+        parser->unregisterParseNode($3);

-+        parser->registerParseNode($$);

-     }

-     ;

-@@ -454,7 +454,7 @@

-     {

-         $$ = new Filter($1, *$2);

--        PARSER->unregisterParseNode($1);

--        PARSER->deletePredicateVector($2);

--        PARSER->registerParseNode($$);

-+        parser->unregisterParseNode($1);

-+        parser->deletePredicateVector($2);

-+        parser->registerParseNode($$);

-     }

-     ;

-@@ -466,7 +466,7 @@

-     {

-         $$ = new LogicalOp(LogicalOp::OP_Or, $1, $3);

--        PARSER->unregisterParseNode($1);

--        PARSER->unregisterParseNode($3);

--        PARSER->registerParseNode($$);

-+        parser->unregisterParseNode($1);

-+        parser->unregisterParseNode($3);

-+        parser->registerParseNode($$);

-     }

-     ;

-@@ -478,7 +478,7 @@

-     {

-         $$ = new LogicalOp(LogicalOp::OP_And, $1, $3);

--        PARSER->unregisterParseNode($1);

--        PARSER->unregisterParseNode($3);

--        PARSER->registerParseNode($$);

-+        parser->unregisterParseNode($1);

-+        parser->unregisterParseNode($3);

-+        parser->registerParseNode($$);

-     }

-     ;

-@@ -490,7 +490,7 @@

-     {

-         $$ = new EqTestOp($2, $1, $3);

--        PARSER->unregisterParseNode($1);

--        PARSER->unregisterParseNode($3);

--        PARSER->registerParseNode($$);

-+        parser->unregisterParseNode($1);

-+        parser->unregisterParseNode($3);

-+        parser->registerParseNode($$);

-     }

-     ;

-@@ -502,7 +502,7 @@

-     {

-         $$ = new EqTestOp($2, $1, $3);

--        PARSER->unregisterParseNode($1);

--        PARSER->unregisterParseNode($3);

--        PARSER->registerParseNode($$);

-+        parser->unregisterParseNode($1);

-+        parser->unregisterParseNode($3);

-+        parser->registerParseNode($$);

-     }

-     ;

-@@ -514,7 +514,7 @@

-     {

-         $$ = new NumericOp(NumericOp::OP_Add, $1, $3);

--        PARSER->unregisterParseNode($1);

--        PARSER->unregisterParseNode($3);

--        PARSER->registerParseNode($$);

-+        parser->unregisterParseNode($1);

-+        parser->unregisterParseNode($3);

-+        parser->registerParseNode($$);

-     }

-     |

-@@ -522,7 +522,7 @@

-     {

-         $$ = new NumericOp(NumericOp::OP_Sub, $1, $3);

--        PARSER->unregisterParseNode($1);

--        PARSER->unregisterParseNode($3);

--        PARSER->registerParseNode($$);

-+        parser->unregisterParseNode($1);

-+        parser->unregisterParseNode($3);

-+        parser->registerParseNode($$);

-     }

-     ;

-@@ -534,7 +534,7 @@

-     {

-         $$ = new NumericOp($2, $1, $3);

--        PARSER->unregisterParseNode($1);

--        PARSER->unregisterParseNode($3);

--        PARSER->registerParseNode($$);

-+        parser->unregisterParseNode($1);

-+        parser->unregisterParseNode($3);

-+        parser->registerParseNode($$);

-     }

-     ;

-@@ -547,6 +547,6 @@

-         $$ = new Negative;

-         $$->addSubExpression($2);

--        PARSER->unregisterParseNode($2);

--        PARSER->registerParseNode($$);

-+        parser->unregisterParseNode($2);

-+        parser->registerParseNode($$);

-     }

-     ;

diff --git a/pkgs/development/libraries/webkit/default.nix b/pkgs/development/libraries/webkit/default.nix
deleted file mode 100644
index ef4d259cb029..000000000000
--- a/pkgs/development/libraries/webkit/default.nix
+++ /dev/null
@@ -1,106 +0,0 @@
-args : with args; 
-let 
-  s = import ./src-for-default.nix; # 1.8.3 needs newer gtk3, wait for x-updates
-  version = lib.attrByPath ["version"] s.version args;
-in
-rec {
-  src = fetchurl {
-    url = s.url;
-    sha256 = s.hash;
-  };
-
-  buildInputs = with xlibs; [
-    pkgconfig libtool intltool autoconf automake gperf bison flex
-    gtk3 gtk2 glib atk cairo pango fontconfig freetype libsoup gtkdoc
-    libjpeg libpng libtiff libxml2 libxslt sqlite icu curl
-    which libproxy geoclue enchant python ruby perl
-    mesa libXt libXrender renderproto libXcomposite compositeproto
-    libXdamage damageproto kbproto
-    ];
-
-  propagatedBuildInputs = [
-    gstreamer gst_plugins_base gst_ffmpeg gst_plugins_good
-    ];
-
-  configureFlags = [
-    # "--enable-3D-transforms" # no longer recognized
-    "--enable-web-sockets"
-    "--enable-web-timing"
-
-    # https://bugs.webkit.org/show_bug.cgi?id=55294
-    "--enable-image-resizer"
-
-    "--enable-geolocation"
-
-    # Not implemented?
-    # "--enable-web-audio"
-
-    "--enable-mathml"
-
-    #"--enable-wml"
-
-    # https://bugs.webkit.org/show_bug.cgi?id=45110
-    #"--enable-indexed-database"
-
-    # Doesn't work in release...
-    #"--enable-xhtmlmp"
-
-    # "--enable-input-speech"
-
-    #"--enable-file-writer" # no longer recognized
-    "--enable-blob"
-
-    # https://bugs.webkit.org/show_bug.cgi?id=59430
-    # "--enable-directory-upload"
-
-    # https://bugs.webkit.org/show_bug.cgi?id=58443
-    # "--enable-file-system"
-
-    "--enable-dependency-tracking" # to fix parallel building
-    ];
-
-  # instead of enableParallelBuilding = true;
-  makeFlags = "-j$NIX_BUILD_CORES";
-
-  /* doConfigure should be specified separately */
-  phaseNames = ["doPatch" "fixConfigure" /* "paranoidFixComments" */ "doConfigure" (doPatchShebangs ".") 
-    "doReplaceUsrBin" "doMakeInstall" "doAddPrograms"];
-
-  patches = [ ./bison26.patch ]; # http://trac.webkit.org/changeset/124099
-  patchFlags = "-p2";
-
-  #doCheck = true; # tests still have problems
-
-  doReplaceUsrBin = fullDepEntry (''
-    for i in $(find . -name '*.pl') $(find . -name '*.pm'); do 
-        sed -e 's@/usr/bin/gcc@gcc@' -i $i
-    done
-  '') ["minInit" "doUnpack"];
-
-  doAddPrograms = fullDepEntry (''
-    mkdir -p $out/bin
-    for i in Programs/.libs/* Programs/*; do 
-        cp $i $out/bin/webkit-program-$(basename $i) || true
-    done
-  '') ["minInit" "doMake" "defEnsureDir"];
-      
-  paranoidFixComments = fullDepEntry (''
-    sed -re 's@( |^)//.*@/* & */@' -i $(find . -name '*.c' -o -name '*.h')
-  '') ["minInit" "doUnpack"];
-
-  # See http://archive.linuxfromscratch.org/mail-archives/blfs-dev/2012-April/022893.html
-  fixConfigure = fullDepEntry (''
-    sed   -i -e 's/=GSTREAMER_0_10_REQUIRED_VERSION/=\$GSTREAMER_0_10_REQUIRED_VERSION/' \
-      -e 's/=GSTREAMER_0_10_PLUGINS_BASE_REQUIRED_VERSION/=\$GSTREAMER_0_10_PLUGINS_BASE_REQUIRED_VERSION/' \
-      configure{,.ac}
-  '') ["minInit" "doUnpack"];
-
-  name = s.name;
-  meta = {
-    description = "WebKit - a fast and correct HTML renderer";
-    maintainers = [stdenv.lib.maintainers.raskin];
-  };
-  passthru = {
-    inherit gstreamer gst_plugins_base gst_plugins_good gst_ffmpeg libsoup;
-  };
-}
diff --git a/pkgs/development/libraries/webkit/gtk2.nix b/pkgs/development/libraries/webkit/gtk2.nix
deleted file mode 100644
index c2e3b9b06dd6..000000000000
--- a/pkgs/development/libraries/webkit/gtk2.nix
+++ /dev/null
@@ -1,109 +0,0 @@
-
-args : with args; 
-let 
-  s = import ./src-for-gtk2.nix;
-  version = lib.attrByPath ["version"] s.version args;
-in
-rec {
-  src = fetchurl {
-    url = s.url;
-    sha256 = s.hash;
-  };
-
-  buildInputs = with xlibs; [
-    pkgconfig libtool intltool autoconf automake gperf bison flex
-    gtk2 glib atk cairo pango fontconfig freetype libsoup gtkdoc
-    libjpeg libpng libtiff libxml2 libxslt sqlite icu curl
-    which libproxy geoclue enchant python ruby perl
-    mesa libXt libXrender renderproto libXcomposite compositeproto
-    libXdamage damageproto kbproto
-    ];
-
-  propagatedBuildInputs = [
-    gstreamer gst_plugins_base gst_ffmpeg gst_plugins_good
-    ];
-
-  configureFlags = [
-    "--with-gtk=2.0"
-
-    # "--enable-3D-transforms" # no longer recognized
-    "--enable-web-sockets"
-    "--enable-web-timing"
-
-    # https://bugs.webkit.org/show_bug.cgi?id=55294
-    "--enable-image-resizer"
-
-    "--enable-geolocation"
-
-    # Not implemented?
-    # "--enable-web-audio"
-
-    "--enable-mathml"
-
-    #"--enable-wml"
-
-    # https://bugs.webkit.org/show_bug.cgi?id=45110
-    #"--enable-indexed-database"
-
-    # Doesn't work in release...
-    #"--enable-xhtmlmp"
-
-    # "--enable-input-speech"
-
-    #"--enable-file-writer" # no longer recognized
-    "--enable-blob"
-
-    # https://bugs.webkit.org/show_bug.cgi?id=59430
-    # "--enable-directory-upload"
-
-    # https://bugs.webkit.org/show_bug.cgi?id=58443
-    # "--enable-file-system"
-
-    "--enable-dependency-tracking" # to fix parallel building
-    ];
-
-  # instead of enableParallelBuilding = true;
-  makeFlags = "-j$NIX_BUILD_CORES";
-
-  /* doConfigure should be specified separately */
-  phaseNames = ["doPatch" "fixConfigure" /* "paranoidFixComments" */ "doConfigure" (doPatchShebangs ".") 
-    "doReplaceUsrBin" "doMakeInstall" "doAddPrograms"];
-
-  patches = [ ./bison26.patch ]; # http://trac.webkit.org/changeset/124099
-  patchFlags = "-p2";
-
-  #doCheck = true; # tests still have problems
-
-  doReplaceUsrBin = fullDepEntry (''
-    for i in $(find . -name '*.pl') $(find . -name '*.pm'); do 
-        sed -e 's@/usr/bin/gcc@gcc@' -i $i
-    done
-  '') ["minInit" "doUnpack"];
-
-  doAddPrograms = fullDepEntry (''
-    mkdir -p $out/bin
-    for i in Programs/.libs/* Programs/*; do 
-        cp $i $out/bin/webkit-program-$(basename $i) || true
-    done
-  '') ["minInit" "doMake" "defEnsureDir"];
-      
-  paranoidFixComments = fullDepEntry (''
-    sed -re 's@( |^)//.*@/* & */@' -i $(find . -name '*.c' -o -name '*.h')
-  '') ["minInit" "doUnpack"];
-
-  # See http://archive.linuxfromscratch.org/mail-archives/blfs-dev/2012-April/022893.html
-  fixConfigure = fullDepEntry (''
-    sed   -i -e 's/=GSTREAMER_0_10_REQUIRED_VERSION/=\$GSTREAMER_0_10_REQUIRED_VERSION/' \
-      -e 's/=GSTREAMER_0_10_PLUGINS_BASE_REQUIRED_VERSION/=\$GSTREAMER_0_10_PLUGINS_BASE_REQUIRED_VERSION/' \
-      configure{,.ac}
-  '') ["minInit" "doUnpack"];
-
-  name = s.name;
-  meta = {
-    description = "WebKit - a fast and correct HTML renderer";
-    maintainers = [stdenv.lib.maintainers.raskin];
-  };
-  passthru = {
-    inherit gstreamer gst_plugins_base gst_plugins_good gst_ffmpeg libsoup;
-  };
-}
diff --git a/pkgs/development/libraries/webkit/src-for-default.nix b/pkgs/development/libraries/webkit/src-for-default.nix
deleted file mode 100644
index 65bcd4350960..000000000000
--- a/pkgs/development/libraries/webkit/src-for-default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-rec {
-   version="1.8.1";
-   name="webkit-1.8.1";
-   hash="0a1v3v8dp2cl332qr51j4fpl0rwpgxbf29hn3zdim9hcniv6l4ls";
-   url="http://webkitgtk.org/releases/webkit-1.8.1.tar.xz";
-   advertisedUrl="http://webkitgtk.org/releases/webkit-1.8.1.tar.xz";
-  
-  
-}
-
diff --git a/pkgs/development/libraries/webkit/src-for-gtk2.nix b/pkgs/development/libraries/webkit/src-for-gtk2.nix
deleted file mode 100644
index 65bcd4350960..000000000000
--- a/pkgs/development/libraries/webkit/src-for-gtk2.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-rec {
-   version="1.8.1";
-   name="webkit-1.8.1";
-   hash="0a1v3v8dp2cl332qr51j4fpl0rwpgxbf29hn3zdim9hcniv6l4ls";
-   url="http://webkitgtk.org/releases/webkit-1.8.1.tar.xz";
-   advertisedUrl="http://webkitgtk.org/releases/webkit-1.8.1.tar.xz";
-  
-  
-}
-
diff --git a/pkgs/development/libraries/webkit/src-for-svn.nix b/pkgs/development/libraries/webkit/src-for-svn.nix
deleted file mode 100644
index f90bafbf6dc3..000000000000
--- a/pkgs/development/libraries/webkit/src-for-svn.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-rec {
-   version="r86499";
-   name="webkit-r86499";
-   hash="04sfwri81x2d9y3z0v7rhrr40vn0bxcbnhb8a0gymqkwa1ngpzmp";
-   url="http://builds.nightly.webkit.org/files/trunk/src/WebKit-r86499.tar.bz2";
-   advertisedUrl="http://builds.nightly.webkit.org/files/trunk/src/WebKit-r86499.tar.bz2";
-  
-  
-}
diff --git a/pkgs/development/libraries/webkit/src-info-for-default.nix b/pkgs/development/libraries/webkit/src-info-for-default.nix
deleted file mode 100644
index c4e5b8a6fd6e..000000000000
--- a/pkgs/development/libraries/webkit/src-info-for-default.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  downloadPage = "http://webkitgtk.org/?page=download";
-  versionExtractorSedScript = "s/.*-([.0-9]+)[.].*/\\1/";
-  versionReferenceCreator = "s/-([.0-9.]+)[.]/-\${version}./";
-  baseName = "webkit";
-}
diff --git a/pkgs/development/libraries/webkit/src-info-for-svn.nix b/pkgs/development/libraries/webkit/src-info-for-svn.nix
deleted file mode 100644
index 994cae544cb2..000000000000
--- a/pkgs/development/libraries/webkit/src-info-for-svn.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  downloadPage = "http://nightly.webkit.org/";
-  versionExtractorSedScript = "s/.*-(r[0-9]+)[.].*/\\1/";
-  versionReferenceCreator = "s/-(r[0-9.]+)[.]/-\${version}./";
-  baseName = "webkit";
-}
diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix
index 8f8551ac9b63..8497ea9ae942 100644
--- a/pkgs/development/libraries/webkitgtk/default.nix
+++ b/pkgs/development/libraries/webkitgtk/default.nix
@@ -3,10 +3,12 @@
 , gtk2, gtk3, wayland, libwebp, enchant
 , libxml2, libsoup, libsecret, libxslt, harfbuzz
 , gst-plugins-base
+, withGtk2 ? false
+, enableIntrospection ? true
 }:
 
 stdenv.mkDerivation rec {
-  name = "webkitgtk-2.2.4";
+  name = "webkitgtk-2.4.0";
 
   meta = {
     description = "Web content rendering engine, GTK+ port";
@@ -18,22 +20,23 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://webkitgtk.org/releases/${name}.tar.xz";
-    sha256 = "0x2d9hds5yazwdakkhrh3dk5qxscb169imi056q2qq53zhdyw6jy";
+    sha256 = "1fyz6ysw7npy5wa7m1zg05zrj0gi0wdlpjbqix03iq4ym36pflnw";
   };
 
   patches = [ ./webcore-svg-libxml-cflags.patch ];
 
+  CC = "cc";
+
   prePatch = ''
     patchShebangs Tools/gtk
-
-    for i in $(find . -name '*.p[l|m]'); do
-      sed -e 's@/usr/bin/gcc@gcc@' -i $i
-    done
   '';
 
-  configureFlags = [
+  configureFlags = with stdenv.lib; [
     "--disable-geolocation"
-    "--enable-introspection"
+    (optionalString enableIntrospection "--enable-introspection")
+  ] ++ stdenv.lib.optional withGtk2 [
+    "--with-gtk=2.0"
+    "--disable-webkit2"
   ];
 
   dontAddDisableDepTrack = true;
@@ -49,7 +52,10 @@ stdenv.mkDerivation rec {
     gst-plugins-base
   ];
 
-  propagatedBuildInputs = [ gtk3 libsoup ];
+  propagatedBuildInputs = [
+    libsoup
+    (if withGtk2 then gtk2 else gtk3)
+  ];
 
   #enableParallelBuilding = true; # build problems on Hydra
 }
diff --git a/pkgs/development/libraries/wildmidi/default.nix b/pkgs/development/libraries/wildmidi/default.nix
index eb55d1d60f41..5b3f9e03ac7a 100644
--- a/pkgs/development/libraries/wildmidi/default.nix
+++ b/pkgs/development/libraries/wildmidi/default.nix
@@ -1,22 +1,22 @@
-{ stdenv, fetchurl, alsaLib, freepats }:
+{ stdenv, fetchurl, cmake, alsaLib, freepats }:
 
 stdenv.mkDerivation rec {
-  name = "wildmidi-0.2.3.5";
+  name = "wildmidi-0.3.6";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/wildmidi/wildmidi/${name}.tar.gz";
-    sha256 = "0m75753mn0rbwja180c2qk53s149wp4k35dijr2i6pa7sc12fr00";
+    url = "https://github.com/Mindwerks/wildmidi/archive/${name}.tar.gz";
+    sha256 = "0y8r812f8h9jqlajwbzni7f23k8kfcp4wxz3jdq75z902bsmdzpf";
   };
 
-  # NOTE: $out in configureFlags, like this:
-  #   configureFlags = "--disable-werror --with-wildmidi-cfg=$out/etc/wildmidi.cfg";
-  # is not expanded, so use this workaround:
-  preConfigure = ''
-    configureFlags="--disable-werror --with-wildmidi-cfg=$out/etc/wildmidi.cfg"
-  '';
+  nativeBuildInputs = [ cmake ];
 
   buildInputs = [ alsaLib ];
 
+  preConfigure = ''
+    substituteInPlace CMakeLists.txt \
+      --replace /etc/wildmidi $out/etc
+  '';
+
   postInstall = ''
     mkdir "$out"/etc
     echo "dir ${freepats}" > "$out"/etc/wildmidi.cfg
diff --git a/pkgs/development/libraries/xmlrpc-c/default.nix b/pkgs/development/libraries/xmlrpc-c/default.nix
index ef7a65599a92..9f578e4b9dde 100644
--- a/pkgs/development/libraries/xmlrpc-c/default.nix
+++ b/pkgs/development/libraries/xmlrpc-c/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, curl }:
 
 stdenv.mkDerivation rec {
-  name = "xmlrpc-c-1.25.26";
+  name = "xmlrpc-c-1.25.27";
 
   src = fetchurl {
     url = "mirror://sourceforge/xmlrpc-c/${name}.tgz";
-    sha256 = "1f82vsdkldhk1sfqyh6z0ylp5769x4fx3rnd2hw0c6fhx8swcmgj";
+    sha256 = "0g9m9n258lpbs42a2lagd4h7qim1g34gkaqyx8h50qrsk49ipspn";
   };
 
   buildInputs = [ curl ];
diff --git a/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix
index 0d4abaf25e0a..f1eea80ab7a3 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/pkgs/development/libraries/zlib/default.nix
@@ -40,4 +40,6 @@ stdenv.mkDerivation rec {
 
   # zlib doesn't like the automatic --disable-shared from the Cygwin stdenv.
   cygwinConfigureEnableShared = true;
+
+  passthru.version = version;
 }
diff --git a/pkgs/development/mobile/titaniumenv/examples/default.nix b/pkgs/development/mobile/titaniumenv/examples/default.nix
index b81fcd41bcb9..556b96975b4e 100644
--- a/pkgs/development/mobile/titaniumenv/examples/default.nix
+++ b/pkgs/development/mobile/titaniumenv/examples/default.nix
@@ -4,15 +4,16 @@
 , tiVersion ? "3.2.2.GA"
 , rename ? false
 , newBundleId ? "com.example.kitchensink", iosMobileProvisioningProfile ? null, iosCertificate ? null, iosCertificateName ? "Example", iosCertificatePassword ? ""
+, allowUnfree ? false
 }:
 
 let
-  pkgs = import nixpkgs {};
+  pkgs = import nixpkgs { config.allowUnfree = allowUnfree; };
 in
 rec {
   kitchensink_android_debug = pkgs.lib.genAttrs systems (system:
   let
-    pkgs = import nixpkgs { inherit system; };
+    pkgs = import nixpkgs { inherit system; config.allowUnfree = allowUnfree; };
   in
   import ./kitchensink {
     inherit (pkgs) fetchgit;
@@ -23,7 +24,7 @@ rec {
   
   kitchensink_android_release = pkgs.lib.genAttrs systems (system:
   let
-    pkgs = import nixpkgs { inherit system; };
+    pkgs = import nixpkgs { inherit system; config.allowUnfree = allowUnfree; };
   in
   import ./kitchensink {
     inherit (pkgs) fetchgit;
@@ -35,7 +36,7 @@ rec {
   
   emulate_kitchensink_debug = pkgs.lib.genAttrs systems (system:
   let
-    pkgs = import nixpkgs { inherit system; };
+    pkgs = import nixpkgs { inherit system; config.allowUnfree = allowUnfree; };
   in
   import ./emulate-kitchensink {
     inherit (pkgs) androidenv;
@@ -44,7 +45,7 @@ rec {
   
   emulate_kitchensink_release = pkgs.lib.genAttrs systems (system:
   let
-    pkgs = import nixpkgs { inherit system; };
+    pkgs = import nixpkgs { inherit system; config.allowUnfree = allowUnfree; };
   in
   import ./emulate-kitchensink {
     inherit (pkgs) androidenv;
@@ -78,7 +79,7 @@ rec {
   };
 } else {}) // (if rename then
   let
-    pkgs = import nixpkgs { system = "x86_64-darwin"; };
+    pkgs = import nixpkgs { system = "x86_64-darwin"; config.allowUnfree = allowUnfree; };
   in
   {
     kitchensink_ipa = import ./kitchensink {
diff --git a/pkgs/development/ocaml-modules/ocamlnet/default.nix b/pkgs/development/ocaml-modules/ocamlnet/default.nix
index c1960d4706e4..f1bf39a283d6 100644
--- a/pkgs/development/ocaml-modules/ocamlnet/default.nix
+++ b/pkgs/development/ocaml-modules/ocamlnet/default.nix
@@ -1,20 +1,20 @@
-{stdenv, fetchurl, ncurses, ocaml, findlib, ocaml_pcre, camlzip, openssl, ocaml_ssl, lablgtk, cryptokit }:
+{stdenv, fetchurl, ncurses, ocaml, findlib, ocaml_pcre, camlzip, openssl, ocaml_ssl, cryptokit }:
 
 let
   ocaml_version = (builtins.parseDrvName ocaml.name).version;
 in
 
 stdenv.mkDerivation {
-  name = "ocamlnet-3.6.3";
+  name = "ocamlnet-3.7.3";
 
   src = fetchurl {
-    url = http://download.camlcity.org/download/ocamlnet-3.6.3.tar.gz;
-    sha256 = "c62fe0a4db6c63c04e24c8d76bcb504054f0b59a7a41c1abcbb8dd504afc9f29";
+    url = http://download.camlcity.org/download/ocamlnet-3.7.3.tar.gz;
+    sha256 = "0s24icyrxkqqai91rgxpf52s1fx70j7p12c8vq9vcmvdhll6kp2d";
   };
 
-  buildInputs = [ncurses ocaml findlib ocaml_pcre camlzip openssl ocaml_ssl lablgtk cryptokit];
+  buildInputs = [ncurses ocaml findlib ocaml_pcre camlzip openssl ocaml_ssl cryptokit];
 
-  propagatedbuildInputs = [ncurses ocaml_pcre camlzip openssl ocaml_ssl lablgtk cryptokit];
+  propagatedbuildInputs = [ncurses ocaml_pcre camlzip openssl ocaml_ssl cryptokit];
 
   patches = [ ./configure.patch ];
 
diff --git a/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix b/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
index 9310e3ca0816..5d22970155b6 100644
--- a/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
+++ b/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, buildPerlPackage, zlib, stdenv }:
 
 buildPerlPackage rec {
-  name = "Compress-Raw-Zlib-2.063";
+  name = "Compress-Raw-Zlib-2.065";
 
   src = fetchurl {
-    url = "mirror://cpan/modules/by-module/Compress/${name}.tar.gz";
-    sha256 = "16cn9pq4pngncs3qhlam0yw2l0q7hq4qfdyxp03jaad6ndc4dzp9";
+    url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz";
+    sha256 = "1i09h3dvn8ipaj1l2nq2qd19wzhn7wcpbsipdkcniwi0sgy1kf1p";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/perl-modules/DBD-Pg/default.nix b/pkgs/development/perl-modules/DBD-Pg/default.nix
index be5faa330aea..619f2f14b96b 100644
--- a/pkgs/development/perl-modules/DBD-Pg/default.nix
+++ b/pkgs/development/perl-modules/DBD-Pg/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, buildPerlPackage, DBI, postgresql }:
 
 buildPerlPackage rec {
-  name = "DBD-Pg-2.19.3";
+  name = "DBD-Pg-3.0.0";
 
   src = fetchurl {
-    url = "mirror://cpan/modules/by-module/DBD/${name}.tar.gz";
-    sha256 = "0ai6p2094hrh6kjlwfjvpw2z8wqa3scr4ba3p6rqza3z9c9hsd9p";
+    url = "mirror://cpan/authors/id/T/TU/TURNSTEP/${name}.tar.gz";
+    sha256 = "10s1dhpxxqfl421388l6gzfdm1gzxf5iah42i1w6yji9mgkz8hf8";
   };
 
   buildInputs = [ postgresql ];
diff --git a/pkgs/development/perl-modules/DBD-SQLite/default.nix b/pkgs/development/perl-modules/DBD-SQLite/default.nix
index 06688ded22a5..7b1741c3d1e9 100644
--- a/pkgs/development/perl-modules/DBD-SQLite/default.nix
+++ b/pkgs/development/perl-modules/DBD-SQLite/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, buildPerlPackage, DBI, sqlite }:
 
 buildPerlPackage rec {
-  name = "DBD-SQLite-1.37";
+  name = "DBD-SQLite-1.42";
 
   src = fetchurl {
-    url = "mirror://cpan/authors/id/A/AD/ADAMK/${name}.tar.gz";
-    sha256 = "0197kvlziaj2wfdbzlhdlqmzvb29fmfyy6y2isbbwlg0b0f7ccd1";
+    url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/${name}.tar.gz";
+    sha256 = "14x9cjsc8dz8ad1nad0bqiq9cbk1rjfb8h5y0rpk3pdl38y6afxb";
   };
 
   propagatedBuildInputs = [ DBI ];
diff --git a/pkgs/development/perl-modules/maatkit/default.nix b/pkgs/development/perl-modules/maatkit/default.nix
index d9a1f777f3ab..b30e2f12fc62 100644
--- a/pkgs/development/perl-modules/maatkit/default.nix
+++ b/pkgs/development/perl-modules/maatkit/default.nix
@@ -1,11 +1,11 @@
 {buildPerlPackage, stdenv, fetchurl, DBDmysql}:
 
 buildPerlPackage rec {
-  name = "maatkit-4790";
+  name = "maatkit-7540";
 
   src = fetchurl {
     url = "http://maatkit.googlecode.com/files/${name}.tar.gz" ;
-    sha256 = "0lf6dgh1w96m234hrkhagyyvv1m1ldchpzsg6iswvkj6sbvv7d7h";
+    sha256 = "1a7rxrddkrsfxb2wj01ha91ld0vapfkqcy8j9p08l76zz2l8p2v1";
   };
 
   buildInputs = [ DBDmysql ] ;
diff --git a/pkgs/development/python-modules/ecdsa/default.nix b/pkgs/development/python-modules/ecdsa/default.nix
new file mode 100644
index 000000000000..f668f3c6ac3b
--- /dev/null
+++ b/pkgs/development/python-modules/ecdsa/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, buildPythonPackage, openssl }:
+
+buildPythonPackage rec {
+  name = "ecdsa-0.11";
+
+  src = fetchurl {
+    url = "https://pypi.python.org/packages/source/e/ecdsa/${name}.tar.gz";
+    sha256 = "134mbq5xsvx54k9xm7zrizvh9imxmcz1w9mhyfr99p4i7wcnqfwf";
+  };
+
+  buildInputs = [ openssl ];
+
+  meta = {
+    homepage = "http://github.com/warner/python-ecdsa";
+    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 d0234c29ed9a..9dedd3ceae73 100644
--- a/pkgs/development/python-modules/generic/default.nix
+++ b/pkgs/development/python-modules/generic/default.nix
@@ -163,7 +163,6 @@ python.stdenv.mkDerivation (attrs // {
     export PYTHONPATH="/tmp/$name/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
     python setup.py develop --prefix /tmp/$name
     ${postShellHook}
-    return
   '';
 
   meta = with lib.maintainers; {
diff --git a/pkgs/development/python-modules/slowaes/default.nix b/pkgs/development/python-modules/slowaes/default.nix
new file mode 100644
index 000000000000..e45ffdfb2e17
--- /dev/null
+++ b/pkgs/development/python-modules/slowaes/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl, buildPythonPackage }:
+
+buildPythonPackage rec {
+  name = "slowaes-0.1a1";
+
+  src = fetchurl {
+    url = "https://pypi.python.org/packages/source/s/slowaes/${name}.tar.gz";
+    sha256 = "83658ae54cc116b96f7fdb12fdd0efac3a4e8c7c7064e3fac3f4a881aa54bf09";
+  };
+
+  meta = {
+    homepage = "http://code.google.com/p/slowaes/";
+    description = "AES implemented in pure python";
+    license = stdenv.lib.licenses.asl20;
+  };
+}
diff --git a/pkgs/development/python-modules/virtualenv-change-prefix.patch b/pkgs/development/python-modules/virtualenv-change-prefix.patch
index d3e588bd1cd2..958187f982fe 100644
--- a/pkgs/development/python-modules/virtualenv-change-prefix.patch
+++ b/pkgs/development/python-modules/virtualenv-change-prefix.patch
@@ -1,8 +1,23 @@
-Without this patch `virtualenv --python=python2.7 .` fails with an error because it notices that the python readline.so is not in the same path as python2.7. I assume this is to avoid copying the wrong file on systems where it is possible to find incompatible libraries by accident. Adding "/nix/store" to the prefix fixes this problem. Unfortunately readline is still not available if you just run `virtualenv .`.
+Without this patch `virtualenv --python=python2.7 .` fails with an
+error because it notices that the python readline.so is not in the
+same path as python2.7. I assume this is to avoid copying the wrong
+file on systems where it is possible to find incompatible libraries by
+accident. Adding "/nix/store" to the prefix fixes this problem.
 
---- virtualenv-1.8.4/virtualenv.py        2013-01-16 23:43:37.583615220 +0100
-+++ virtualenv-1.8.4/virtualenv.py        2013-01-16 23:44:47.885973431 +0100
-@@ -1135,17 +1135,7 @@
+A sitecustomize.py is created in the virtualenv which makes libraries
+from the python specified by the --python argument available to the
+virtualenv. For example, this makes readline and sqlite3 available
+when a wrapped python is specified. If no --python argument is passed,
+it will only add the path to the python used when building
+`virtualenv`, which is the unwrapped python, so sqlite3 won't be
+available.
+
+
+diff --git a/virtualenv.py b/virtualenv.py
+index d3e76a7..cb307fa 100755
+--- a/virtualenv.py
++++ b/virtualenv.py
+@@ -1051,17 +1051,7 @@ def path_locations(home_dir):
  
  
  def change_prefix(filename, dst_prefix):
@@ -21,7 +36,7 @@ Without this patch `virtualenv --python=python2.7 .` fails with an error because
  
      if hasattr(sys, 'real_prefix'):
          prefixes.append(sys.real_prefix)
-@@ -1162,6 +1152,8 @@
+@@ -1078,6 +1068,8 @@ def change_prefix(filename, dst_prefix):
              if src_prefix != os.sep: # sys.prefix == "/"
                  assert relpath[0] == os.sep
                  relpath = relpath[1:]
@@ -30,3 +45,15 @@ Without this patch `virtualenv --python=python2.7 .` fails with an error because
              return join(dst_prefix, relpath)
      assert False, "Filename %s does not start with any of these prefixes: %s" % \
          (filename, prefixes)
+@@ -1190,6 +1182,11 @@ def install_python(home_dir, lib_dir, inc_dir, bin_dir, site_packages, clear, sy
+     site_filename_dst = change_prefix(site_filename, home_dir)
+     site_dir = os.path.dirname(site_filename_dst)
+     writefile(site_filename_dst, SITE_PY)
++    wrapper_path = join(prefix, "lib", py_version, "site-packages")
++    writefile(
++        join(site_dir, 'sitecustomize.py',),
++        "import sys; sys.path.append('%s')" % wrapper_path
++    )
+     writefile(join(site_dir, 'orig-prefix.txt'), prefix)
+     site_packages_filename = join(site_dir, 'no-global-site-packages.txt')
+     if not site_packages:
diff --git a/pkgs/development/python-modules/wxPython/3.0.nix b/pkgs/development/python-modules/wxPython/3.0.nix
new file mode 100644
index 000000000000..9aa6148643bd
--- /dev/null
+++ b/pkgs/development/python-modules/wxPython/3.0.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, wxGTK, pythonPackages, openglSupport ? true }:
+
+assert wxGTK.unicode;
+
+with stdenv.lib;
+
+let version = "3.0.0.0"; in
+
+stdenv.mkDerivation {
+  name = "wxPython-${version}";
+  
+  builder = ./builder3.0.sh;
+  
+  src = fetchurl {
+    url = "mirror://sourceforge/wxpython/wxPython-src-${version}.tar.bz2";
+    sha256 = "af88695e820dd914e8375dc91ecb736f6fb605979bb38460ace61bbea494dc11";
+  };
+  
+  buildInputs = [ pkgconfig wxGTK (wxGTK.gtk) pythonPackages.python pythonPackages.wrapPython ]
+                ++ optional openglSupport pythonPackages.pyopengl;
+
+  inherit openglSupport;
+
+  passthru = { inherit wxGTK openglSupport; };
+}
diff --git a/pkgs/development/python-modules/wxPython/builder3.0.sh b/pkgs/development/python-modules/wxPython/builder3.0.sh
new file mode 100644
index 000000000000..7403c67d0912
--- /dev/null
+++ b/pkgs/development/python-modules/wxPython/builder3.0.sh
@@ -0,0 +1,22 @@
+source $stdenv/setup
+
+flags="WXPORT=gtk2 NO_HEADERS=1 BUILD_GLCANVAS=${openglSupport?1:0} UNICODE=1"
+
+configurePhase() {
+    cd wxPython
+}
+
+buildPhase() {
+    python setup.py $flags build
+}
+
+installPhase() {
+    python setup.py $flags install --prefix=$out
+
+    # Ugly workaround for Nixpkgs/111.
+    ln -s $out/lib/python*/site-packages/wx-*-gtk2-unicode/* $out/lib/python*/site-packages
+    
+    wrapPythonPrograms    
+}
+
+genericBuild
diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix
index 97565bec98e7..a6ea2c2f59d4 100644
--- a/pkgs/development/tools/analysis/valgrind/default.nix
+++ b/pkgs/development/tools/analysis/valgrind/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1w6n5qvxy2ssbczcl1c2yd2ggjn3ipay2hvpn10laly2dfh73bz6";
   };
 
+  patches = [ ./glibc-2.19.patch ];
+
   # Perl is needed for `cg_annotate'.
   # GDB is needed to provide a sane default for `--db-command'.
   nativeBuildInputs = [ perl ];
@@ -15,7 +17,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  patchPhase =
+  postPatch =
     # Apple's GCC doesn't recognize `-arch' (as of version 4.2.1, build 5666).
     ''
       echo "getting rid of the \`-arch' GCC option..."
diff --git a/pkgs/development/tools/analysis/valgrind/glibc-2.19.patch b/pkgs/development/tools/analysis/valgrind/glibc-2.19.patch
new file mode 100644
index 000000000000..137b0a325b04
--- /dev/null
+++ b/pkgs/development/tools/analysis/valgrind/glibc-2.19.patch
@@ -0,0 +1,39 @@
+https://projects.archlinux.org/svntogit/packages.git/plain/trunk/valgrind-3.9.0-glibc-2.19.patch?h=packages/valgrind
+
+diff -Naur valgrind-3.9.0-orig/configure valgrind-3.9.0/configure
+--- valgrind-3.9.0-orig/configure	2013-11-01 09:33:32.000000000 +1000
++++ valgrind-3.9.0/configure	2014-02-08 09:28:06.063248544 +1000
+@@ -6689,6 +6689,16 @@
+ 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
++     2.19)
++	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.19 family" >&5
++$as_echo "2.19 family" >&6; }
++
++$as_echo "#define GLIBC_2_19 1" >>confdefs.h
++
++	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	;;
+      darwin)
+ 	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin" >&5
+ $as_echo "Darwin" >&6; }
+diff -Naur valgrind-3.9.0-orig/configure.ac valgrind-3.9.0/configure.ac
+--- valgrind-3.9.0-orig/configure.ac	2013-11-01 09:28:16.000000000 +1000
++++ valgrind-3.9.0/configure.ac	2014-02-08 09:27:38.870385366 +1000
+@@ -918,6 +918,13 @@
+ 	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ 	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ 	;;
++     2.19)
++	AC_MSG_RESULT(2.19 family)
++	AC_DEFINE([GLIBC_2_19], 1, [Define to 1 if you're using glibc 2.19.x])
++	DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
++	DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
++	;;
+      darwin)
+ 	AC_MSG_RESULT(Darwin)
+ 	AC_DEFINE([DARWIN_LIBC], 1, [Define to 1 if you're using Darwin])
diff --git a/pkgs/development/tools/build-managers/buildbot-slave/default.nix b/pkgs/development/tools/build-managers/buildbot-slave/default.nix
index b28c4d9296fa..f21be7cc48c7 100644
--- a/pkgs/development/tools/build-managers/buildbot-slave/default.nix
+++ b/pkgs/development/tools/build-managers/buildbot-slave/default.nix
@@ -1,12 +1,12 @@
 { stdenv, buildPythonPackage, fetchurl, coreutils, twisted }:
 
 buildPythonPackage (rec {
-  name = "buildbot-slave-0.8.7p1";
+  name = "buildbot-slave-0.8.8";
   namePrefix = "";
 
   src = fetchurl {
     url = "http://buildbot.googlecode.com/files/${name}.tar.gz";
-    sha256 = "1p7a0srab6ifljh9vi25awvxfrxljj9s0hi1jipiiykyhjihgnxv";
+    sha256 = "1k1pk3y0rk6j01wc491jblryr4ajqg1ing9m3sjaw9s5sga34xcb";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/tools/build-managers/buildbot/default.nix b/pkgs/development/tools/build-managers/buildbot/default.nix
index c872d67146b3..2d7c63fdc7de 100644
--- a/pkgs/development/tools/build-managers/buildbot/default.nix
+++ b/pkgs/development/tools/build-managers/buildbot/default.nix
@@ -9,12 +9,12 @@
 assert enableDebugClient -> pygobject != null && pyGtkGlade != null;
 
 buildPythonPackage (rec {
-  name = "buildbot-0.8.7p1";
+  name = "buildbot-0.8.8";
   namePrefix = "";
 
   src = fetchurl {
     url = "http://buildbot.googlecode.com/files/${name}.tar.gz";
-    sha256 = "0xjpk8510fhryl1g4mczz319h62il8hw9rh1rzvsfmffgf43zvld";
+    sha256 = "1l1rsy82zv8582wypw00ac0k0wsr82ky74f3np4clbrxv3ry64sh";
   };
 
   patchPhase =
diff --git a/pkgs/development/tools/build-managers/ninja/default.nix b/pkgs/development/tools/build-managers/ninja/default.nix
index b5c0b0a03dae..75c2da8a28de 100644
--- a/pkgs/development/tools/build-managers/ninja/default.nix
+++ b/pkgs/development/tools/build-managers/ninja/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = http://martine.github.io/ninja/;
     license = licenses.asl20;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/development/tools/documentation/haddock/2.14.2.nix b/pkgs/development/tools/documentation/haddock/2.14.2.nix
new file mode 100644
index 000000000000..c4677f202ddd
--- /dev/null
+++ b/pkgs/development/tools/documentation/haddock/2.14.2.nix
@@ -0,0 +1,22 @@
+{ cabal, alex, Cabal, deepseq, filepath, ghcPaths, happy, hspec
+, QuickCheck, xhtml
+}:
+
+cabal.mkDerivation (self: {
+  pname = "haddock";
+  version = "2.14.2";
+  sha256 = "0h96jj6y093h4gcqpiq0nyv7h5wjg8ji7z1im9ydivmsv0627prk";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ Cabal deepseq filepath ghcPaths xhtml ];
+  testDepends = [ Cabal deepseq filepath hspec QuickCheck ];
+  buildTools = [ alex happy ];
+  doCheck = false;
+  meta = {
+    homepage = "http://www.haskell.org/haddock/";
+    description = "A documentation-generation tool for Haskell libraries";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/BNFC/default.nix b/pkgs/development/tools/haskell/BNFC/default.nix
index 3cb85b86acbd..ebe8d2c3e24c 100644
--- a/pkgs/development/tools/haskell/BNFC/default.nix
+++ b/pkgs/development/tools/haskell/BNFC/default.nix
@@ -1,4 +1,4 @@
-{ cabal, mtl, fetchurl }:
+{ cabal, mtl, fetchurl, alex, happy }:
 
 cabal.mkDerivation (self: {
   pname = "BNFC";
@@ -7,8 +7,10 @@ cabal.mkDerivation (self: {
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ mtl ];
+  buildTools = [ alex happy ];
   patches = [ (fetchurl { url = "https://github.com/BNFC/bnfc/pull/3.patch"; sha256 = "103l04ylzswgxrmpv5zy6dd0jyr96z21mdkpgk1z4prvn8wjl624"; }) ];
   patchFlags = "-p2";
+  preConfigure = "runhaskell Setup.lhs clean";
   meta = {
     homepage = "http://bnfc.digitalgrammars.com/";
     description = "A compiler front-end generator";
diff --git a/pkgs/development/tools/haskell/HaRe/default.nix b/pkgs/development/tools/haskell/HaRe/default.nix
index 6c128c25073e..7cbc66305847 100644
--- a/pkgs/development/tools/haskell/HaRe/default.nix
+++ b/pkgs/development/tools/haskell/HaRe/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "HaRe";
-  version = "0.7.1.4";
-  sha256 = "000vdvm38a3d3jpjg3cgsfl11w8jzvl0haqz78fy3zblqlndxy1m";
+  version = "0.7.2.2";
+  sha256 = "0w9cjs3r99k4mf835higcsllk0h8lbich1v9wb2pvwbqi3i9r0sp";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/haskell/cabal-delete/default.nix b/pkgs/development/tools/haskell/cabal-delete/default.nix
new file mode 100644
index 000000000000..65a7b4d3211a
--- /dev/null
+++ b/pkgs/development/tools/haskell/cabal-delete/default.nix
@@ -0,0 +1,34 @@
+{ cabal, fetchgit, bytestring ? null, containers ? null, directory ? null,
+  filepath, process ? null, attoparsec, ghcPaths, transformers }:
+
+let
+  tag = "0.5.2.0";
+in
+
+cabal.mkDerivation (self: {
+  pname = "cabal-delete";
+  version = "${tag}";
+  src = fetchgit {
+    url = git://github.com/iquiw/cabal-delete.git;
+    rev = "refs/tags/v${tag}";
+    sha256 = "1ap319isjg8bafm4jz2krfwvvg11hj5yk0g99a3l1a3a36hpdgzw";
+  };
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [
+      bytestring
+      containers
+      directory
+      filepath
+      process
+      attoparsec
+      ghcPaths
+      transformers
+  ];
+  meta = {
+    homepage = "https://github.com/iquiw/cabal-delete";
+    description = "Uninstall packages installed by cabal";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/tools/haskell/cabal-meta/default.nix b/pkgs/development/tools/haskell/cabal-meta/default.nix
new file mode 100644
index 000000000000..62048e2893b3
--- /dev/null
+++ b/pkgs/development/tools/haskell/cabal-meta/default.nix
@@ -0,0 +1,18 @@
+{ cabal, hspec, shelly, systemFileio, systemFilepath, text }:
+
+cabal.mkDerivation (self: {
+  pname = "cabal-meta";
+  version = "0.4.1.2";
+  sha256 = "17ln9j0n9rb0kbnp37fi9yaf932dacrdmf3jrp301r886kh2a7kk";
+  isLibrary = true;
+  isExecutable = true;
+  doCheck = false;
+  buildDepends = [ shelly systemFileio systemFilepath text ];
+  testDepends = [ hspec shelly systemFilepath text ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "build multiple packages at once";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/tools/haskell/cabal2nix/default.nix b/pkgs/development/tools/haskell/cabal2nix/default.nix
index 9dc8536a4c09..7ad20ee066b2 100644
--- a/pkgs/development/tools/haskell/cabal2nix/default.nix
+++ b/pkgs/development/tools/haskell/cabal2nix/default.nix
@@ -3,8 +3,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal2nix";
-  version = "1.60";
-  sha256 = "1jp4rq8gfdz5knm9cbralhjyw2a391cck49422bskl7c23p94y3l";
+  version = "1.61";
+  sha256 = "058bwswkhsj3rbxl42n23ri79smmhkaj6wid4c6x02yl3m8l7xsy";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [ Cabal filepath hackageDb HTTP mtl regexPosix ];
diff --git a/pkgs/development/tools/haskell/cake3/default.nix b/pkgs/development/tools/haskell/cake3/default.nix
new file mode 100644
index 000000000000..c5c35ac571cb
--- /dev/null
+++ b/pkgs/development/tools/haskell/cake3/default.nix
@@ -0,0 +1,23 @@
+{ cabal, attoparsec, deepseq, filepath, haskellSrcMeta
+, languageJavascript, mimeTypes, monadloc, mtl, optparseApplicative
+, syb, systemFilepath, text, textFormat
+}:
+
+cabal.mkDerivation (self: {
+  pname = "cake3";
+  version = "0.4.0.0";
+  sha256 = "15v50m60fr2mgfm2irxfaw4pi2s3bx187p0y0ns20rqfy0dasxyx";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    attoparsec deepseq filepath haskellSrcMeta languageJavascript
+    mimeTypes monadloc mtl optparseApplicative syb systemFilepath text
+    textFormat
+  ];
+  meta = {
+    homepage = "https://github.com/grwlf/cake3";
+    description = "Third cake the Makefile EDSL";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/tools/haskell/hlint/default.nix b/pkgs/development/tools/haskell/hlint/default.nix
index 860148cf244d..17ae7d508d3f 100644
--- a/pkgs/development/tools/haskell/hlint/default.nix
+++ b/pkgs/development/tools/haskell/hlint/default.nix
@@ -1,15 +1,16 @@
-{ cabal, cpphs, filepath, haskellSrcExts, hscolour, transformers
-, uniplate
+{ cabal, cmdargs, cpphs, filepath, haskellSrcExts, hscolour
+, transformers, uniplate
 }:
 
 cabal.mkDerivation (self: {
   pname = "hlint";
-  version = "1.8.57";
-  sha256 = "062fpyjd3mha9faxdpg763sigafl4mvl8qqw3z31zkafz361qzm4";
+  version = "1.8.60";
+  sha256 = "10kc4g9sipd5758n3x2xndaw1c887263gvff0y395drfgqh5qxal";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    cpphs filepath haskellSrcExts hscolour transformers uniplate
+    cmdargs cpphs filepath haskellSrcExts hscolour transformers
+    uniplate
   ];
   jailbreak = true;
   meta = {
diff --git a/pkgs/development/tools/haskell/keter/default.nix b/pkgs/development/tools/haskell/keter/default.nix
index b8cf2466b10a..1cffefd6da31 100644
--- a/pkgs/development/tools/haskell/keter/default.nix
+++ b/pkgs/development/tools/haskell/keter/default.nix
@@ -1,28 +1,27 @@
 { cabal, aeson, async, attoparsec, blazeBuilder, caseInsensitive
-, conduit, dataDefault, filepath, fsnotify, httpClient
-, httpClientConduit, httpConduit, httpReverseProxy, httpTypes
-, liftedBase, mtl, network, networkConduit, networkConduitTls
-, random, regexTdfa, stm, systemFileio, systemFilepath, tar, text
-, time, transformers, unixCompat, unixProcessConduit
+, conduit, conduitExtra, dataDefault, filepath, fsnotify, hspec
+, httpConduit, httpReverseProxy, httpTypes, liftedBase, mtl
+, network, networkConduitTls, random, regexTdfa, stm, systemFileio
+, systemFilepath, tar, text, time, transformers, unixCompat
 , unorderedContainers, vector, wai, waiAppStatic, waiExtra, warp
 , warpTls, yaml, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "keter";
-  version = "1.2.0";
-  sha256 = "06iz01ci1mcxjqs7dknxgjlkl783sdf680b54schxxirg268cxh3";
+  version = "1.3.0";
+  sha256 = "1fvb93iga4c0kfv29ksrmn9bjznl7wfspg1v9a5d3svwrszl4is3";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     aeson async attoparsec blazeBuilder caseInsensitive conduit
-    dataDefault filepath fsnotify httpClient httpClientConduit
-    httpConduit httpReverseProxy httpTypes liftedBase mtl network
-    networkConduit networkConduitTls random regexTdfa stm systemFileio
-    systemFilepath tar text time transformers unixCompat
-    unixProcessConduit unorderedContainers vector wai waiAppStatic
+    conduitExtra dataDefault filepath fsnotify httpConduit
+    httpReverseProxy httpTypes liftedBase mtl network networkConduitTls
+    random regexTdfa stm systemFileio systemFilepath tar text time
+    transformers unixCompat unorderedContainers vector wai waiAppStatic
     waiExtra warp warpTls yaml zlib
   ];
+  testDepends = [ conduit hspec transformers ];
   meta = {
     homepage = "http://www.yesodweb.com/";
     description = "Web application deployment manager, focusing on Haskell web frameworks";
diff --git a/pkgs/development/tools/haskell/rehoo/default.nix b/pkgs/development/tools/haskell/rehoo/default.nix
new file mode 100644
index 000000000000..016070f66c33
--- /dev/null
+++ b/pkgs/development/tools/haskell/rehoo/default.nix
@@ -0,0 +1,19 @@
+{ cabal, cmdargs, parallelIo, shelly, split, systemFilepath, text
+}:
+
+cabal.mkDerivation (self: {
+  pname = "rehoo";
+  version = "0.3.1";
+  sha256 = "0pwmz1q2866yj8hxbvha4v1smhppkd3jsrrhbhmbxw137l54ijgf";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [
+    cmdargs parallelIo shelly split systemFilepath text
+  ];
+  meta = {
+    homepage = "https://github.com/jwiegley/rehoo";
+    description = "Rebuild default.hoo from many .hoo files in the current directory";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/tools/haskell/timeplot/default.nix b/pkgs/development/tools/haskell/timeplot/default.nix
index fc8c0e3f0526..84444522d195 100644
--- a/pkgs/development/tools/haskell/timeplot/default.nix
+++ b/pkgs/development/tools/haskell/timeplot/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "timeplot";
-  version = "1.0.23";
-  sha256 = "0z87yzqv1bjclvyslzpclhrbfm4vcyz0q32jr4kbnfwjk3s8zyi2";
+  version = "1.0.24";
+  sha256 = "1k6xinnnc0723mbf0yvqn6qipjr3hcvy2qjv38sy7f5h0gp8lfhc";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/haskell/una/default.nix b/pkgs/development/tools/haskell/una/default.nix
new file mode 100644
index 000000000000..172949818a60
--- /dev/null
+++ b/pkgs/development/tools/haskell/una/default.nix
@@ -0,0 +1,16 @@
+{ cabal, cmdargs, filepath, ioStorage }:
+
+cabal.mkDerivation (self: {
+  pname = "una";
+  version = "2.1.0";
+  sha256 = "0gpycwd0dgnw7cdicpn19wv1xb4jq3j9dfzry2ilv85h02zkwfvh";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ cmdargs filepath ioStorage ];
+  meta = {
+    homepage = "https://github.com/jwiegley/una";
+    description = "Universal un-archiver utility";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/tools/misc/automake/automake-1.12.x.nix b/pkgs/development/tools/misc/automake/automake-1.12.x.nix
index 8bee4790bcb7..269d423f2fab 100644
--- a/pkgs/development/tools/misc/automake/automake-1.12.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.12.x.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, perl, autoconf, makeWrapper, doCheck ? false }:
 
 stdenv.mkDerivation rec {
-  name = "automake-1.12.4";
+  name = "automake-1.12.6";
 
   # TODO: Remove the `aclocal' wrapper when $ACLOCAL_PATH support is
   # available upstream; see
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnu/automake/${name}.tar.xz";
-    sha256 = "0wppdm0wfizs6nmiwlkigcmh2pn33dywdkl7b407j3pvwn622vsi";
+    sha256 = "1ynvca8z4aqcwr94rf7j1bfiid2w9w250y9qhnyj9vmi8lhsnd7q";
   };
 
   buildInputs = [perl autoconf makeWrapper];
diff --git a/pkgs/development/tools/misc/babeltrace/default.nix b/pkgs/development/tools/misc/babeltrace/default.nix
index d19bb24eb370..aa8e70b5edc5 100644
--- a/pkgs/development/tools/misc/babeltrace/default.nix
+++ b/pkgs/development/tools/misc/babeltrace/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, glib, libuuid, popt }:
 
 stdenv.mkDerivation rec {
-  name = "babeltrace-1.1.1";
+  name = "babeltrace-1.2.1";
 
   src = fetchurl {
     url = "http://www.efficios.com/files/babeltrace/${name}.tar.bz2";
-    sha256 = "04jc1yd3aaq59fmpzswzc78cywpq7wzjfqdlsg7xc76ivb8cggfz";
+    sha256 = "1pwg0y57iy4c8wynb6bj7f6bxaiclmxcm4f3nllpw9brhbdzygc1";
   };
 
   buildInputs = [ pkgconfig glib libuuid popt ];
diff --git a/pkgs/development/tools/misc/cpphs/default.nix b/pkgs/development/tools/misc/cpphs/default.nix
index 8d03d8ee4cb2..72a6571f3ccf 100644
--- a/pkgs/development/tools/misc/cpphs/default.nix
+++ b/pkgs/development/tools/misc/cpphs/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cpphs";
-  version = "1.18.3";
-  sha256 = "0m2083ynjfxad4ykvpm6c7q1clrm7nsvbwv10abhyzqkpazyzzxy";
+  version = "1.18.4";
+  sha256 = "0rmcq66wn7lsc5g1wk6bbsr7jiw8h6bz5cbvdywnv7vmwsx8gh51";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ polyparse ];
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index 0d3eb5c824fa..b3a86a03d97c 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -8,7 +8,7 @@
 
 let
 
-  basename = "gdb-7.6.2";
+  basename = "gdb-7.7";
 
   # Whether (cross-)building for GNU/Hurd.  This is an approximation since
   # having `stdenv ? cross' doesn't tell us if we're building `crossDrv' and
@@ -27,9 +27,11 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnu/gdb/${basename}.tar.bz2";
-    sha256 = "1s6hjqmq7xz10hqx45dgrpfh5mla578shn3zxgnrsv66w4n0wsig";
+    sha256 = "08vcb97j1b7vxwq6088wb6s3g3bm8iwikd922y0xsgbbxv3d2104";
   };
 
+  patches = [ ./edit-signals.patch ];
+
   # I think python is not a native input, but I leave it
   # here while I will not need it cross building
   nativeBuildInputs = [ texinfo python ]
diff --git a/pkgs/development/tools/misc/gdb/edit-signals.patch b/pkgs/development/tools/misc/gdb/edit-signals.patch
new file mode 100644
index 000000000000..e9da8035ef5b
--- /dev/null
+++ b/pkgs/development/tools/misc/gdb/edit-signals.patch
@@ -0,0 +1,25 @@
+Patch adapted from
+https://www.sourceware.org/ml/gdb-patches/2012-08/msg00439.html
+
+Without it, spawning a terminal 'vim' from gdb 'edit' cmd, makes
+all gdb grazy.
+
+diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
+index 7ea0fec..be5455c 100644
+--- a/gdb/tui/tui-win.c
++++ b/gdb/tui/tui-win.c
+@@ -831,11 +831,12 @@ void
+ tui_initialize_win (void)
+ {
+ #ifdef SIGWINCH
+-#ifdef HAVE_SIGACTION
++#if defined (HAVE_SIGACTION) && defined (SA_RESTART)
+   struct sigaction old_winch;
+ 
+-  memset (&old_winch, 0, sizeof (old_winch));
++  sigemptyset (&old_winch.sa_mask);
+   old_winch.sa_handler = &tui_sigwinch_handler;
++  old_winch.sa_flags = SA_RESTART;
+   sigaction (SIGWINCH, &old_winch, NULL);
+ #else
+   signal (SIGWINCH, &tui_sigwinch_handler);
diff --git a/pkgs/development/tools/misc/global/default.nix b/pkgs/development/tools/misc/global/default.nix
index d1cd59d8828a..fdb5f72af830 100644
--- a/pkgs/development/tools/misc/global/default.nix
+++ b/pkgs/development/tools/misc/global/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, libtool, ncurses }:
 
 stdenv.mkDerivation rec {
-  name = "global-6.2.9";
+  name = "global-6.2.12";
 
   src = fetchurl {
     url = "mirror://gnu/global/${name}.tar.gz";
-    sha256 = "00y38kp0zbpjl9c9phldy7j2ihqc54qn4cdgk0azbjdsv75k3n6q";
+    sha256 = "05jkhya1cs6yqhkf8nw5x56adkxxrqyga7sq7hx44dbf7alczwfa";
   };
 
   buildInputs = [ libtool ncurses ];
@@ -42,6 +42,6 @@ stdenv.mkDerivation rec {
     homepage = http://www.gnu.org/software/global/;
 
     maintainers = [ stdenv.lib.maintainers.ludo ];
-    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/misc/lsof/default.nix b/pkgs/development/tools/misc/lsof/default.nix
index 2469a0210b35..ec3a5e9bcbf6 100644
--- a/pkgs/development/tools/misc/lsof/default.nix
+++ b/pkgs/development/tools/misc/lsof/default.nix
@@ -12,7 +12,9 @@ stdenv.mkDerivation {
   
   preBuild = "sed -i Makefile -e 's/^CFGF=/&	-DHASIPv6=1/;';";
   
-  configurePhase = "./Configure -n linux;";
+  configurePhase = if stdenv.isDarwin
+    then "./Configure -n darwin;"
+    else "./Configure -n linux;";
   
   installPhase = ''
     mkdir -p $out/bin $out/man/man8
diff --git a/pkgs/development/tools/misc/ltrace/default.nix b/pkgs/development/tools/misc/ltrace/default.nix
index a436f29df14c..1d20d8eef456 100644
--- a/pkgs/development/tools/misc/ltrace/default.nix
+++ b/pkgs/development/tools/misc/ltrace/default.nix
@@ -1,17 +1,18 @@
 { stdenv, fetchurl, elfutils }:
 
 stdenv.mkDerivation rec {
-  name = "ltrace-0.5.3";
+  name = "ltrace-0.7.3";
 
   src = fetchurl {
-    url = ftp://ftp.debian.org/debian/pool/main/l/ltrace/ltrace_0.5.3.orig.tar.gz;
-    sha256 = "0cmyw8zyw8b1gszrwizcm53cr0mig1iw3kv18v5952m9spb2frjw";
+    url = ftp://ftp.debian.org/debian/pool/main/l/ltrace/ltrace_0.7.3.orig.tar.bz2;
+    sha256 = "00wmbdghqbz6x95m1mcdd3wd46l6hgcr4wggdp049dbifh3qqvqf";
   };
 
   buildInputs = [ elfutils ];
 
-  preBuild =
+  preConfigure =
     ''
+      configureFlags="--disable-werror"
       makeFlagsArray=(INSTALL="install -c")
     '';
 
diff --git a/pkgs/development/tools/misc/lttng-tools/default.nix b/pkgs/development/tools/misc/lttng-tools/default.nix
index 1d223d83a65f..541385d8bec2 100644
--- a/pkgs/development/tools/misc/lttng-tools/default.nix
+++ b/pkgs/development/tools/misc/lttng-tools/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, popt, libuuid, liburcu, lttngUst, kmod }:
 
 stdenv.mkDerivation rec {
-  name = "lttng-tools-2.3.0";
+  name = "lttng-tools-2.4.1";
 
   src = fetchurl {
     url = "https://lttng.org/files/lttng-tools/${name}.tar.bz2";
-    sha256 = "16j55xqrh00mjbcvdmdkfxchavi7jsxlpnfjqc1g1d3x65ss9wri";
+    sha256 = "1v9f7a3c2shwgn4g759bblgr27h9ql9sfq71r1mbkf8rd235g2jr";
   };
 
   buildInputs = [ popt libuuid liburcu lttngUst ];
diff --git a/pkgs/development/tools/misc/lttng-ust/default.nix b/pkgs/development/tools/misc/lttng-ust/default.nix
index 014a97a91581..0cba211f28b9 100644
--- a/pkgs/development/tools/misc/lttng-ust/default.nix
+++ b/pkgs/development/tools/misc/lttng-ust/default.nix
@@ -12,11 +12,11 @@
 # Debian builds with std.h (systemtap).
 
 stdenv.mkDerivation rec {
-  name = "lttng-ust-2.3.0";
+  name = "lttng-ust-2.4.1";
 
   src = fetchurl {
     url = "https://lttng.org/files/lttng-ust/${name}.tar.bz2";
-    sha256 = "1hazjybrppyaakvfp1bs92vx0n2sgcsw0m6i5hwq7xq8vij7cj4q";
+    sha256 = "1nx9b1haiylajzjy03wgfcy85nwg578c6gy8ip55y8cabjrw0hp1";
   };
 
   buildInputs = [ liburcu ];
diff --git a/pkgs/development/tools/misc/texinfo/5.2.nix b/pkgs/development/tools/misc/texinfo/5.2.nix
index 1bb8fca0ecff..0a7446fe5344 100644
--- a/pkgs/development/tools/misc/texinfo/5.2.nix
+++ b/pkgs/development/tools/misc/texinfo/5.2.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ncurses, perl, xz }:
+{ stdenv, fetchurl, ncurses, perl, xz, interactive ? false }:
 
 stdenv.mkDerivation rec {
   name = "texinfo-5.2";
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1njfwh2z34r2c4r0iqa7v24wmjzvsfyz4vplzry8ln3479lfywal";
   };
 
-  buildInputs = [ ncurses perl xz ];
+  buildInputs = [ perl xz ]
+    ++ stdenv.lib.optional interactive ncurses;
 
   preInstall = ''
     installFlags="TEXMF=$out/texmf-dist";
diff --git a/pkgs/development/tools/misc/uhd/default.nix b/pkgs/development/tools/misc/uhd/default.nix
index d49077a5ef6d..67ef086941e3 100644
--- a/pkgs/development/tools/misc/uhd/default.nix
+++ b/pkgs/development/tools/misc/uhd/default.nix
@@ -8,15 +8,15 @@
 
 stdenv.mkDerivation rec {
   name = "uhd-${version}";
-  version = "3.5.4";
+  version = "3.7.0";
 
   # UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz
   # and xxx.yyy.zzz. Hrmpf...
 
   src = fetchurl {
     name = "${name}.tar.gz";
-    url = "https://github.com/EttusResearch/uhd/archive/release_003_005_004.tar.gz";
-    sha256 = "1l11dv72r4ynfpw58aacq0kjylzw85yapv3kzc76lg6qgdb0pqrd";
+    url = "https://github.com/EttusResearch/uhd/archive/release_003_007_000.tar.gz";
+    sha256 = "0x9imfy63s6wlbilr2n82c15nd33ix0mbap0q1xwh2pj1mk4d5jk";
   };
 
   cmakeFlags = "-DLIBUSB_INCLUDE_DIRS=${libusb1}/include/libusb-1.0";
@@ -27,10 +27,10 @@ stdenv.mkDerivation rec {
   preConfigure = "cd host";
 
   # Firmware images are downloaded (pre-built)
-  uhdImagesName = "uhd-images_003.005.004-release";
+  uhdImagesName = "uhd-images_003.007.000-release";
   uhdImagesSrc = fetchurl {
     url = "http://files.ettus.com/binaries/maint_images/archive/${uhdImagesName}.tar.gz";
-    sha256 = "0lgy9076vshlaq7l4n3q1hka3q4xxzdz7mqh7kawg4dziq7j8nl6";
+    sha256 = "0vb0rc5ji8n6l6ycvd7pbazxzm0ihvkmqm77jflqrd3kky8r722d";
   };
 
   postPhases = [ "installFirmware" ];
diff --git a/pkgs/development/tools/neoload/default.nix b/pkgs/development/tools/neoload/default.nix
index 384e724dfad8..8b00d17ac7d1 100644
--- a/pkgs/development/tools/neoload/default.nix
+++ b/pkgs/development/tools/neoload/default.nix
@@ -13,9 +13,9 @@ if !licenseAccepted then throw ''
 else assert licenseAccepted;
 
 # the installer is very picky and demands 1.7.0.07
-let dotInstall4j = writeTextFile { name = "dot-install4j"; text = ''
-      JRE_VERSION	${jre}	1	7	0	7
-      JRE_INFO	${jre}	94
+let dotInstall4j = path: writeTextFile { name = "dot-install4j"; text = ''
+      JRE_VERSION	${jre}${path}	1	7	0	7
+      JRE_INFO	${jre}${path}	94
     ''; };
 
     responseVarfile = writeTextFile { name = "response.varfile"; text = ''
@@ -48,7 +48,6 @@ in stdenv.mkDerivation rec {
 
   installPhase = ''
     mkdir -p $out/lib/neoload
-    ln -s ${jre} $out/lib/neoload/jre
 
     # the installer wants to use its internal JRE
     # disable this. The extra spaces are needed because the installer carries
@@ -56,7 +55,7 @@ in stdenv.mkDerivation rec {
     sed -e 's/^if \[ -f jre.tar.gz/if false          /' $src > installer
     chmod a+x installer
 
-    cp ${dotInstall4j} .install4j
+    cp ${dotInstall4j ""} .install4j
     chmod u+w .install4j
 
     sed -e "s|INSTALLDIR|$out|" ${responseVarfile} > response.varfile
@@ -66,7 +65,7 @@ in stdenv.mkDerivation rec {
     bash -ic './installer -q -varfile response.varfile'
 
     for i in $out/bin/*; do
-      wrapProgram $i --run 'cp ${dotInstall4j} ~/.install4j' \
+      wrapProgram $i --run 'cp ${dotInstall4j "/lib/openjdk/jre"} ~/.install4j' \
                      --run 'chmod u+w ~/.install4j'
     done
 
@@ -75,7 +74,7 @@ in stdenv.mkDerivation rec {
       name=$(basename "$i")
       sed -e 's|/lib/neoload/bin|/bin|' "$i" > "$out/share/applications/$name"
     done
-    rm $out/lib/neoload/*.desktop $out/lib/neoload/uninstall
+    rm -r $out/lib/neoload/*.desktop $out/lib/neoload/uninstall
 
   '';
 
diff --git a/pkgs/development/tools/parsing/flex/default.nix b/pkgs/development/tools/parsing/flex/2.5.35.nix
index 8047080a125d..8047080a125d 100644
--- a/pkgs/development/tools/parsing/flex/default.nix
+++ b/pkgs/development/tools/parsing/flex/2.5.35.nix
diff --git a/pkgs/development/tools/parsing/flex/2.5.39.nix b/pkgs/development/tools/parsing/flex/2.5.39.nix
new file mode 100644
index 000000000000..f12f89f6e24c
--- /dev/null
+++ b/pkgs/development/tools/parsing/flex/2.5.39.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, bison, m4 }:
+
+stdenv.mkDerivation {
+  name = "flex-2.5.39";
+
+  src = fetchurl {
+    url = mirror://sourceforge/flex/flex-2.5.39.tar.bz2;
+    sha256 = "0zv15giw3gma03y2bzw78hjfy49vyir7vbcgnh9bb3637dgvblmd";
+  };
+
+  buildInputs = [ bison ];
+
+  propagatedNativeBuildInputs = [ m4 ];
+
+  postConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
+    sed -i Makefile -e 's/-no-undefined//;'
+  '';
+
+  crossAttrs = {
+    preConfigure = ''
+      export ac_cv_func_malloc_0_nonnull=yes
+      export ac_cv_func_realloc_0_nonnull=yes
+    '';
+  };
+
+  meta = {
+    homepage = http://flex.sourceforge.net/;
+    description = "A fast lexical analyser generator";
+  };
+}
diff --git a/pkgs/development/web/nodejs/default.nix b/pkgs/development/web/nodejs/default.nix
index 062d7f4ec066..3b1b64679722 100644
--- a/pkgs/development/web/nodejs/default.nix
+++ b/pkgs/development/web/nodejs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, openssl, python, zlib, v8, utillinux, http-parser, c-ares, pkgconfig, runCommand }:
+{ stdenv, fetchurl, openssl, python, zlib, v8_3_14, utillinux, http-parser, c-ares, pkgconfig, runCommand }:
 
 let
   dtrace = runCommand "dtrace-native" {} ''
@@ -10,7 +10,7 @@ let
 
   # !!! Should we also do shared libuv?
   deps = {
-    inherit v8 openssl zlib http-parser;
+    inherit v8_3_14 openssl zlib http-parser;
     cares = c-ares;
   };
 
diff --git a/pkgs/games/minecraft-server/default.nix b/pkgs/games/minecraft-server/default.nix
new file mode 100644
index 000000000000..bfa5a69dfc32
--- /dev/null
+++ b/pkgs/games/minecraft-server/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, jre }:
+
+with import <nixpkgs> {};
+
+stdenv.mkDerivation rec {
+  name    = "minecraft-server-${version}";
+  version = "1.7.5";
+
+  src  = fetchurl {
+    url    = "http://s3.amazonaws.com/Minecraft.Download/versions/${version}/minecraft_server.${version}.jar";
+    sha256 = "0f3sh3fws02yl4xqa8qrvn0cchfp0hymqrf30c5syzzcz9w4l8pq";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin $out/lib/minecraft
+    cp -v $src $out/lib/minecraft/server.jar
+
+    cat > $out/bin/minecraft-server << EOF
+    #!/bin/sh
+    exec ${jre}/bin/java \$@ -jar $out/lib/minecraft/server.jar nogui
+    EOF
+
+    chmod +x $out/bin/minecraft-server
+  '';
+
+  phases = "installPhase";
+
+  meta = {
+    description = "Minecraft Server";
+    homepage    = "https://minecraft.net";
+    license     = stdenv.lib.licenses.unfreeRedistributable;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/games/minecraft/default.nix b/pkgs/games/minecraft/default.nix
index 6a3d528bde08..b4ec7eb311ff 100644
--- a/pkgs/games/minecraft/default.nix
+++ b/pkgs/games/minecraft/default.nix
@@ -2,11 +2,11 @@
 , mesa, openal, alsaOss }:
 
 stdenv.mkDerivation {
-  name = "minecraft-1.4.7";
+  name = "minecraft-2013.07.01";
 
   src = fetchurl {
-    url = "https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft.jar";
-    sha256 = "92db974aa759a3f17f3cd61550fa5010e335c57dd813dad9e39b9cc013420a49";
+    url = "https://s3.amazonaws.com/Minecraft.Download/launcher/Minecraft.jar";
+    sha256 = "04pj4l5q0a64jncm2kk45r7nxnxa2z9n110dcxbbahdi6wk0png8";
   };
 
   phases = "installPhase";
diff --git a/pkgs/games/mnemosyne/default.nix b/pkgs/games/mnemosyne/default.nix
new file mode 100644
index 000000000000..1d23640ce8b1
--- /dev/null
+++ b/pkgs/games/mnemosyne/default.nix
@@ -0,0 +1,57 @@
+{ stdenv
+, fetchurl
+, buildPythonPackage
+, pyqt4
+, matplotlib
+, cherrypy
+, sqlite3
+}:
+let 
+  version = "2.2.1";
+in buildPythonPackage rec {
+  name = "mnemosyne-${version}";
+  src = fetchurl {
+    url    = "http://sourceforge.net/projects/mnemosyne-proj/files/mnemosyne/${name}/Mnemosyne-${version}.tar.gz";
+    sha256 = "7f5dd06a879b9ab059592355412182ee286e78e124aa25d588cacf9e4ab7c423";
+  };
+  pythonPath = [
+    pyqt4
+    matplotlib
+    cherrypy
+    sqlite3
+  ];
+  preConfigure = ''
+    substituteInPlace setup.py --replace /usr $out
+    find . -type f -exec grep -H sys.exec_prefix {} ';' | cut -d: -f1 | xargs sed -i s,sys.exec_prefix,\"$out\",
+  '';
+  installCommand = "python setup.py install --prefix=$out";
+  meta = {
+    homepage = "http://mnemosyne-proj.org/";
+    description = "Spaced-repetition software.";
+    longDescription = ''
+      The Mnemosyne Project has two aspects:
+
+        * It's a free flash-card tool which optimizes your learning process.
+        * It's a research project into the nature of long-term memory.
+
+      We strive to provide a clear, uncluttered piece of software, easy to use
+      and to understand for newbies, but still infinitely customisable through
+      plugins and scripts for power users.
+
+      ## Efficient learning
+
+      Mnemosyne uses a sophisticated algorithm to schedule the best time for
+      a card to come up for review. Difficult cards that you tend to forget
+      quickly will be scheduled more often, while Mnemosyne won't waste your
+      time on things you remember well.
+
+      ## Memory research
+
+      If you want, anonymous statistics on your learning process can be
+      uploaded to a central server for analysis. This data will be valuable to
+      study the behaviour of our memory over a very long time period. The
+      results will be used to improve the scheduling algorithms behind the
+      software even further.  
+    '';
+  };
+}
diff --git a/pkgs/games/openttd/default.nix b/pkgs/games/openttd/default.nix
index 6b385bc2e564..7e2b4221d523 100644
--- a/pkgs/games/openttd/default.nix
+++ b/pkgs/games/openttd/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "openttd-${version}";
-  version = "1.3.3";
+  version = "1.4.0";
 
   src = fetchurl {
     url = "http://binaries.openttd.org/releases/${version}/${name}-source.tar.xz";
-    sha256 = "0pfagqw8i1c6zrzarlwivrcac8b8ai1inam9qc01hj3h04nfv4b9";
+    sha256 = "0m89pr7m7xg71q1j3869dfrbhv88g90cw9zn0jlpg8crsj4wnnyq";
   };
 
   buildInputs = [ SDL libpng pkgconfig xz zlib freetype fontconfig ];
diff --git a/pkgs/games/planetaryannihilation/default.nix b/pkgs/games/planetaryannihilation/default.nix
new file mode 100755
index 000000000000..009d07d4456c
--- /dev/null
+++ b/pkgs/games/planetaryannihilation/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, config, fetchurl, patchelf, makeWrapper, xlibs, gtk, glib, udev, alsaLib, atk
+, nspr, fontconfig, cairo, pango, nss, freetype, gnome3, gdk_pixbuf, curl, systemd, xorg }:
+
+# TODO: use dynamic attributes once Nix 1.7 is out
+assert ((config.planetary_annihilation or null).url or null) != null;
+assert ((config.planetary_annihilation or null).sha256 or null) != null;
+
+/* to setup:
+ $ cat ~/.nixpkgs/config.nix
+ {
+  planetary_annihilation = {
+    url = "file:///home/user/PA_Linux_62857.tar.bz2";
+    sha256 = "0imi3k5144dsn3ka9khx3dj76klkw46ga7m6rddqjk4yslwabh3k";
+  };
+}
+*/
+
+stdenv.mkDerivation {
+  name = "planetary-annihalation";
+
+  src = fetchurl {
+    inherit (config.planetary_annihilation) url sha256;
+  };
+
+  buildInputs = [ patchelf makeWrapper ];
+ 
+  installPhase = ''
+    mkdir -p $out/{bin,lib}
+
+    cp -R * $out/
+    mv $out/*.so $out/lib
+    rm $out/libstdc++.so.6
+    ln -s $out/PA $out/bin/PA
+
+    ln -s ${systemd}/lib/libudev.so.1 $out/lib/libudev.so.0
+
+    patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" "$out/PA"
+    patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" --set-rpath "${stdenv.lib.makeLibraryPath [ stdenv.gcc.gcc xlibs.libXdamage xorg.libXfixes gtk glib stdenv.glibc "$out" xlibs.libXext pango udev xlibs.libX11 xlibs.libXcomposite alsaLib atk nspr fontconfig cairo pango nss freetype gnome3.gconf gdk_pixbuf xlibs.libXrender ]}:{stdenv.gcc.gcc}/lib64:${stdenv.glibc}/lib64" "$out/host/CoherentUI_Host.bin" 
+
+    wrapProgram $out/PA --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.gcc.gcc stdenv.glibc xlibs.libX11 xlibs.libXcursor gtk glib curl "$out" ]}:${stdenv.gcc.gcc}/lib64:${stdenv.glibc}/lib64"
+
+    for f in $out/lib/*; do
+      patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ stdenv.gcc.gcc curl xlibs.libX11 stdenv.glibc xlibs.libXcursor "$out" ]}:${stdenv.gcc.gcc}/lib64:${stdenv.glibc}/lib64" $f
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.uberent.com/pa/;
+    description = "next-generation RTS that takes the genre to a planetary scale";
+    license = "unfree";
+    platforms = platforms.linux;
+    maintainers = [ maintainers.iElectric ];
+  };
+}
diff --git a/pkgs/games/spring/springlobby.nix b/pkgs/games/spring/springlobby.nix
index 34760db7c68d..b5c8ef0154c2 100644
--- a/pkgs/games/spring/springlobby.nix
+++ b/pkgs/games/spring/springlobby.nix
@@ -3,11 +3,11 @@
 stdenv.mkDerivation rec {
 
   name = "springlobby-${version}";
-  version = "0.180";
+  version = "0.186";
 
   src = fetchurl {
     url = "http://www.springlobby.info/tarballs/springlobby-${version}.tar.bz2";
-    sha256 = "0v2pwrwiwiggyl95rcyfj3pdlwsss5vcmnyzd40r9swb9gyi55na";
+    sha256 = "0pj7v85gl76hxvfhcypxsayk8lnnhgjn2irawgx49p80wsivl64k";
   };
 
   buildInputs = [
@@ -15,8 +15,6 @@ stdenv.mkDerivation rec {
     libnotify gtk doxygen makeWrapper
   ];
 
-  patches = [ ./unitsync_path_find.patch ];
-
   prePatch = ''
     substituteInPlace tools/regen_config_header.sh --replace "#!/usr/bin/env bash" "#!${bash}/bin/bash"
     substituteInPlace tools/test-susynclib.awk --replace "#!/usr/bin/awk" "#!${gawk}/bin/awk"
@@ -31,14 +29,15 @@ stdenv.mkDerivation rec {
   postInstall = ''
     wrapProgram $out/bin/springlobby \
       --prefix PATH : "${spring}/bin" \
-      --set SPRING_LIB_DIRS "${spring}/lib"
+      --set SPRING_BUNDLE_DIR "${spring}/lib"
   '';
 
   meta = with stdenv.lib; {
     homepage = http://springlobby.info/;
+    repositories.git = git://github.com/springlobby/springlobby.git;
     description = "Cross-platform lobby client for the Spring RTS project";
     license = licenses.gpl2;
-    maintainers = [ maintainers.phreedom maintainers.qknight maintainers.iElectric ];
+    maintainers = with maintainers; [ phreedom qknight iElectric ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/spring/unitsync_path_find.patch b/pkgs/games/spring/unitsync_path_find.patch
deleted file mode 100644
index 66257a5f52fc..000000000000
--- a/pkgs/games/spring/unitsync_path_find.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/settings.cpp	2013-12-02 10:09:19.000000000 +0000
-+++ b/src/settings.cpp-new	2014-02-10 11:39:48.265628767 +0000
-@@ -498,6 +498,7 @@
- 
- wxString Settings::AutoFindUnitSync(wxPathList pl) const
- {
-+	pl.AddEnvList( _T( "SPRING_LIB_DIRS" ) );
- 	wxString retpath = pl.FindValidPath( _T( "unitsync" ) + GetLibExtension() );
- 	if ( retpath.IsEmpty() )
- 		retpath = pl.FindValidPath( _T( "libunitsync" ) + GetLibExtension() );
diff --git a/pkgs/games/super-tux-kart/default.nix b/pkgs/games/super-tux-kart/default.nix
index 46f22d332ccb..cd2698665f62 100644
--- a/pkgs/games/super-tux-kart/default.nix
+++ b/pkgs/games/super-tux-kart/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     echo Building internal Irrlicht
     cd lib/irrlicht/source/Irrlicht/
+    cp "${mesa}"/include/GL/{gl,glx,wgl}ext.h .
     NDEBUG=1 make ''${enableParallelBuilding:+-j''${NIX_BUILD_CORES} -l''${NIX_BUILD_CORES}}
     cd -
   '';
diff --git a/pkgs/games/widelands/boost_and_cmake_die_die_die.patch b/pkgs/games/widelands/boost_and_cmake_die_die_die.patch
deleted file mode 100644
index f008be35e378..000000000000
--- a/pkgs/games/widelands/boost_and_cmake_die_die_die.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- widelands-build17-src.old/CMakeLists.txt	2012-04-23 02:46:49.000000000 -0700
-+++ widelands-build17-src/CMakeLists.txt	2012-07-14 19:49:14.000000000 -0700
-@@ -140,8 +140,6 @@
- else (WL_UNIT_TESTS)
-   message(STATUS "Disabled Unit Tests")
-   set (Boost_FIND_COMPONENTS signals)
--  set (Boost_USE_STATIC_LIBS   ON)
--  set (Boost_USE_MULTITHREADED ON)
-   set (Boost_DETAILED_FAILURE_MSG ON)
-   find_package(Boost 1.35.0 COMPONENTS signals REQUIRED)
- endif (WL_UNIT_TESTS)
diff --git a/pkgs/games/widelands/default.nix b/pkgs/games/widelands/default.nix
index 65c991340728..b6008bd7e76a 100644
--- a/pkgs/games/widelands/default.nix
+++ b/pkgs/games/widelands/default.nix
@@ -1,77 +1,46 @@
-x@{builderDefsPackage
-  , libjpeg, boost, SDL, SDL_gfx, SDL_image, SDL_net, SDL_ttf, SDL_sound
-  , gettext, zlib, libiconv, libpng, python, expat, lua5, glew, doxygen
-  , cmake, ggz_base_libs, mesa, SDL_mixer
-  , ...}:
-builderDefsPackage
-(a :  
-let 
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
-    [];
+{ stdenv, fetchurl, cmake, python, gettext
+, boost, libpng, zlib, glew, lua
+, SDL, SDL_image, SDL_mixer, SDL_net, SDL_ttf, SDL_gfx
+}:
 
-  buildInputs = map (n: builtins.getAttr n x)
-    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
-  sourceInfo = rec {
-    baseName="widelands";
-    version="build17";
-    name="${baseName}-${version}";
-    project="${baseName}";
-    url="https://launchpadlibrarian.net/102893896/widelands-build17-src.tar.bz2";
-    hash="be48b3b8f342a537b39a3aec2f7702250a6a47e427188ba3bece67d7d90f3cc5";
-  };
-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 = ["killBuildDir" "doPatch"  "doCmake" "doMakeInstall" "createScript"];
-
-  patches = [ ./boost_and_cmake_die_die_die.patch ]; 
-      
-  killBuildDir = a.fullDepEntry ''
-    rm -r build
-  '' ["minInit" "doUnpack"];
-
-  cmakeFlags = [
-    "-DLUA_LIBRARIES=-llua"
-    "-DWL_PORTABLE=true"
-  ];
-
-  createScript = a.fullDepEntry ''
-    mkdir -p "$out/bin"
-    echo '#! ${a.stdenv.shell}' >> "$out/bin/widelands"
-    echo "cd \"$out/share/games/widelands\"" >> "$out/bin/widelands"
-    echo "\"$out/games/widelands\" \"\$@\"" >> "$out/bin/widelands"
-    chmod a+x "$out/bin/widelands"
-  '' ["minInit"];
+stdenv.mkDerivation {
+  name = "widelands-18";
 
-  meta = {
-    description = "Widelands RTS with multiple-goods economy";
+  meta = with stdenv.lib; {
+    description = "RTS with multiple-goods economy";
+    homepage    = "http://widelands.org/";
     longDescription = ''
       Widelands is a real time strategy game based on "The Settlers" and "The
       Settlers II". It has a single player campaign mode, as well as a networked
-      multiplayer mode. 
+      multiplayer mode.
     '';
-
-    maintainers = with a.lib.maintainers;
-    [
-      raskin
-      jcumming
-    ];
-    platforms = a.lib.platforms.linux;
+    license        = licenses.gpl2Plus;
+    platforms      = platforms.linux;
+    maintainers    = with maintainers; [ raskin jcumming ];
     hydraPlatforms = [];
-    license = a.lib.licenses.gpl2Plus;
   };
-  passthru = {
-    updateInfo = {
-      downloadPage = "https://launchpad.net/widelands/+download";
-    };
+
+
+  src = fetchurl {
+    url = "https://launchpad.net/widelands/build18/build-18/+download/"
+        + "widelands-build18-src.tar.bz2";
+    sha256 = "1qvx1cwkf61iwq0qkngvg460dsxqsfvk36qc7jf7mzwkiwbxkzvd";
   };
-}) x
 
+  preConfigure = ''
+    cmakeFlags="
+      -DWL_INSTALL_PREFIX=$out
+      -DWL_INSTALL_BINDIR=bin
+      -DWL_INSTALL_DATADIR=share/widelands
+    "
+  '';
+
+  nativeBuildInputs = [ cmake python gettext ];
+
+  buildInputs = [
+    boost libpng zlib glew lua
+    SDL SDL_image SDL_mixer SDL_net SDL_ttf SDL_gfx
+  ];
+
+  enableParallelBuilding = true;
+}
diff --git a/pkgs/misc/themes/gtk2/oxygen-gtk/default.nix b/pkgs/misc/themes/gtk2/oxygen-gtk/default.nix
index 1bd4d5f35b4a..c3d846c566ce 100644
--- a/pkgs/misc/themes/gtk2/oxygen-gtk/default.nix
+++ b/pkgs/misc/themes/gtk2/oxygen-gtk/default.nix
@@ -2,12 +2,12 @@
   cmake, dbus_glib, glib, gtk, gdk_pixbuf, pkgconfig, xorg }:
 
 stdenv.mkDerivation rec {
-  version = "1.4.4";
+  version = "1.4.5";
   name = "oxygen-gtk2-${version}";
 
   src = fetchurl {
     url = "mirror://kde/stable/oxygen-gtk2/${version}/src/${name}.tar.bz2";
-    sha256 = "1w3300v7kclpaccvd0wsajgay4mgg2fbbi1nd0zak0p5nn40sqf8";
+    sha256 = "00ykq4aafakdkvww7kz84bvg9wc2gdji4m7z87f49hj1jxm84v2v";
   };
 
   buildInputs = [ cmake dbus_glib glib gtk gdk_pixbuf
diff --git a/pkgs/os-specific/linux/acpid/default.nix b/pkgs/os-specific/linux/acpid/default.nix
index a0ae59a5a5bb..c9d45835cfd0 100644
--- a/pkgs/os-specific/linux/acpid/default.nix
+++ b/pkgs/os-specific/linux/acpid/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "acpid-2.0.21";
+  name = "acpid-2.0.22";
 
   src = fetchurl {
     url = "mirror://sourceforge/acpid2/${name}.tar.xz";
-    sha256 = "0vv3zz8p3wxhlp35aqgqvzn6lda595wzn7php3k47jwci1cpxrn4";
+    sha256 = "0cdbcy5xjdcyp2x6hzgpv6a9vg9bbxmypmfvv1qzgj43897la49x";
   };
 
   preBuild = ''
diff --git a/pkgs/os-specific/linux/bluez/bluez5.nix b/pkgs/os-specific/linux/bluez/bluez5.nix
index 4938f7f44706..f9f5c185bbd0 100644
--- a/pkgs/os-specific/linux/bluez/bluez5.nix
+++ b/pkgs/os-specific/linux/bluez/bluez5.nix
@@ -1,22 +1,22 @@
-{ stdenv, fetchurl, pkgconfig, dbus, glib, libusb, alsaLib, python,
+{ stdenv, fetchurl, pkgconfig, dbus, glib, alsaLib, python,
   pythonPackages, pythonDBus, readline, libsndfile, udev, libical,
   systemd }:
 
 assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
-  name = "bluez-5.12";
+  name = "bluez-5.16";
    
   src = fetchurl {
     url = "mirror://kernel/linux/bluetooth/${name}.tar.xz";
-    sha256 = "0zk183gjsxissq9gma962cyvyqxydai8n6jgslxx0mpk2m7mgvvm";
+    sha256 = "0qxivd64az3qziw82axj2ksilllxq4fnb6fdrnlxr6d74550kmf8";
   };
 
   pythonPath = with pythonPackages;
     [ pythonDBus pygobject pygobject3 recursivePthLoader ];
 
   buildInputs =
-    [ pkgconfig dbus.libs glib libusb alsaLib python pythonPackages.wrapPython
+    [ pkgconfig dbus.libs glib alsaLib python pythonPackages.wrapPython
       readline libsndfile udev libical
       # Disables GStreamer; not clear what it gains us other than a
       # zillion extra dependencies.
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = http://www.bluez.org/;
+    repositories.git = https://git.kernel.org/pub/scm/bluetooth/bluez.git;
     description = "Bluetooth support for Linux";
     platforms = platforms.linux;
   };
diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix
index fd1e83100ed5..7226acf0e579 100644
--- a/pkgs/os-specific/linux/busybox/default.nix
+++ b/pkgs/os-specific/linux/busybox/default.nix
@@ -37,11 +37,11 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "busybox-1.21.1";
+  name = "busybox-1.22.1";
 
   src = fetchurl {
     url = "http://busybox.net/downloads/${name}.tar.bz2";
-    sha256 = "00qk938q90jv14mxmadm8pgs3jymkknc6xicw4512mn85s8y0nyd";
+    sha256 = "12v7nri79v8gns3inmz4k24q7pcnwi00hybs0wddfkcy1afh42xf";
   };
 
   configurePhase = ''
diff --git a/pkgs/os-specific/linux/cifs-utils/default.nix b/pkgs/os-specific/linux/cifs-utils/default.nix
index bef8de495ad3..ce609c5be476 100644
--- a/pkgs/os-specific/linux/cifs-utils/default.nix
+++ b/pkgs/os-specific/linux/cifs-utils/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "cifs-utils-6.2";
+  name = "cifs-utils-6.3";
 
   src = fetchurl {
     url = "ftp://ftp.samba.org/pub/linux-cifs/cifs-utils/${name}.tar.bz2";
-    sha256 = "0cydya7l7xwxk2j1g1659kbvb4jzql11ivb6cldwwfg19qvnwrrl";
+    sha256 = "0nrpd3ibzfhdxgq1pw0jhzx163z5jvq4qcjxl35qlqj74lm3pxzz";
   };
 
   makeFlags = "root_sbindir=$(out)/sbin";
diff --git a/pkgs/os-specific/linux/conky/default.nix b/pkgs/os-specific/linux/conky/default.nix
index 086b792b4cd4..3e95daba29e3 100644
--- a/pkgs/os-specific/linux/conky/default.nix
+++ b/pkgs/os-specific/linux/conky/default.nix
@@ -1,5 +1,33 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, curl, wirelesstools, glib, openssl
-, ncurses }:
+{ stdenv, fetchurl, pkgconfig
+
+# dependencies
+, glib, ncurses
+
+# optional features without extra dependencies
+, mpdSupport   ? true
+
+# optional features with extra dependencies
+, x11Support   ? false, x11           ? null
+, xdamage      ? false, libXdamage    ? null
+, wireless     ? false, wirelesstools ? null
+, luaSupport   ? false, lua5          ? null
+
+, rss          ? false
+, weatherMetar ? false
+, weatherXoap  ? false
+, curl ? null, libxml2 ? null
+}:
+
+assert luaSupport -> lua5          != null;
+assert wireless   -> wirelesstools != null;
+assert x11Support -> x11           != null;
+assert xdamage    -> x11Support && libXdamage != null;
+
+assert rss          -> curl != null && libxml2 != null;
+assert weatherMetar -> curl != null;
+assert weatherXoap  -> curl != null && libxml2 != null;
+
+with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "conky-1.9.0";
@@ -9,17 +37,35 @@ stdenv.mkDerivation rec {
     sha256 = "0vxvjmi3cdvnp994sv5zcdyncfn0mlxa71p2wm9zpyrmy58bbwds";
   };
 
-  patches = [ ./stdbool.patch ];
+  buildInputs = [ pkgconfig glib ncurses ]
+    ++ optional  luaSupport   lua5
+    ++ optional  wireless     wirelesstools
+    ++ optional  x11Support   x11
+    ++ optional  xdamage      libXdamage
+
+    ++ optionals rss          [ curl libxml2 ]
+    ++ optional  weatherMetar curl
+    ++ optionals weatherXoap  [ curl libxml2 ]
+    ;
 
-  buildInputs = [ pkgconfig libxml2 curl wirelesstools glib openssl ncurses ];
   configureFlags =
-    (map (x: "--disable-${x}") [ "x11" "xdamage" "own-window" "xft" "lua" ])
-    ++ (map (x: "--enable-${x}") [ "mpd" "double-buffer" "wlan" "rss"
-                                   "weather-metar" "weather-xoap" ]);
+    let flag = state: flags: if state then map (x: "--enable-${x}")  flags
+                                      else map (x: "--disable-${x}") flags;
+     in flag mpdSupport   [ "mpd" ]
+
+     ++ flag luaSupport   [ "lua" ]
+     ++ flag wireless     [ "wlan" ]
+     ++ flag x11Support   [ "x11" "xft" "argb" "double-buffer" "own-window" ] # conky won't compile without --enable-own-window
+     ++ flag xdamage      [ "xdamage" ]
+
+     ++ flag rss          [ "rss" ]
+     ++ flag weatherMetar [ "weather-metar" ]
+     ++ flag weatherXoap  [ "weather-xoap" ]
+     ;
 
   meta = {
     homepage = http://conky.sourceforge.net/;
-    description = "Conky is an advanced, highly configurable system monitor complied without X based on torsmo";
+    description = "Conky is an 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/conky/stdbool.patch b/pkgs/os-specific/linux/conky/stdbool.patch
deleted file mode 100644
index 3f0b714a1f0c..000000000000
--- a/pkgs/os-specific/linux/conky/stdbool.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/conky.c b/src/conky.c
-index 5848b61..69a3d45 100644
---- a/src/conky.c
-+++ b/src/conky.c
-@@ -34,6 +34,7 @@
- #include "common.h"
- #include "timed_thread.h"
- #include <stdarg.h>
-+#include <stdbool.h>
- #include <math.h>
- #include <time.h>
- #include <locale.h>
diff --git a/pkgs/os-specific/linux/cpufrequtils/default.nix b/pkgs/os-specific/linux/cpufrequtils/default.nix
index c94e22adb381..d056e60f2da3 100644
--- a/pkgs/os-specific/linux/cpufrequtils/default.nix
+++ b/pkgs/os-specific/linux/cpufrequtils/default.nix
@@ -10,6 +10,11 @@ stdenv.mkDerivation rec {
     sha256 = "127i38d4w1hv2dzdy756gmbhq25q3k34nqb2s0xlhsfhhdqs0lq0";
   };
 
+  patches = [
+    # I am not 100% sure that this is ok, but it breaks repeatable builds.
+    ./remove-pot-creation-date.patch
+  ];
+
   patchPhase = ''
     sed -e "s@= /usr/bin/@= @g" \
       -e "s@/usr/@$out/@" \
diff --git a/pkgs/os-specific/linux/cpufrequtils/remove-pot-creation-date.patch b/pkgs/os-specific/linux/cpufrequtils/remove-pot-creation-date.patch
new file mode 100644
index 000000000000..0116ed9eab0c
--- /dev/null
+++ b/pkgs/os-specific/linux/cpufrequtils/remove-pot-creation-date.patch
@@ -0,0 +1,24 @@
+diff -u cpufrequtils-008/Makefile cpufrequtils-008.new/Makefile
+--- cpufrequtils-008/Makefile	2012-05-06 01:17:18.000000000 +0200
++++ cpufrequtils-008.new/Makefile	2013-08-16 20:52:29.961086536 +0200
+@@ -205,7 +205,8 @@
+ 	@xgettext --default-domain=$(PACKAGE) --add-comments \
+ 		--keyword=_ --keyword=N_ $(UTIL_SRC) && \
+ 	test -f $(PACKAGE).po && \
+-	mv -f $(PACKAGE).po po/$(PACKAGE).pot
++	mv -f $(PACKAGE).po po/$(PACKAGE).pot && \
++        sed -i -e'/POT-Creation/d' po/*.pot
+ 
+ update-gmo: po/$(PACKAGE).pot
+ 	 @for HLANG in $(LANGUAGES); do \
+@@ -217,6 +218,7 @@
+ 			echo "msgmerge for $$HLANG failed!"; \
+ 			rm -f po/$$HLANG.new.po; \
+ 		fi; \
++		sed -i -e'/POT-Creation/d' po/*.po; \
+ 		msgfmt --statistics -o po/$$HLANG.gmo po/$$HLANG.po; \
+ 	done;
+ 
+Common subdirectories: cpufrequtils-008/man and cpufrequtils-008.new/man
+Common subdirectories: cpufrequtils-008/po and cpufrequtils-008.new/po
+Common subdirectories: cpufrequtils-008/utils and cpufrequtils-008.new/utils
diff --git a/pkgs/os-specific/linux/criu/default.nix b/pkgs/os-specific/linux/criu/default.nix
new file mode 100644
index 000000000000..349d690e4d19
--- /dev/null
+++ b/pkgs/os-specific/linux/criu/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, protobuf, protobufc, asciidoc, xmlto, utillinux }:
+
+assert stdenv.system == "x86_64-linux";
+stdenv.mkDerivation rec {
+  name    = "criu-${version}";
+  version = "1.2";
+
+  src = fetchurl {
+    url    = "http://download.openvz.org/criu/${name}.tar.bz2";
+    sha256 = "04xlnqvgbjd5wfmi97m5rr76a3agkz8g96hdyzhc6x8gd52bbg9y";
+  };
+
+  enableParallelBuilding = true;
+  buildInputs = [ protobuf protobufc asciidoc xmlto ];
+
+  patchPhase = ''
+    chmod +w ./scripts/gen-offsets.sh
+    substituteInPlace ./scripts/gen-offsets.sh --replace hexdump ${utillinux}/bin/hexdump
+  '';
+
+  buildPhase = ''
+    make config PREFIX=$out
+    make PREFIX=$out
+  '';
+
+  installPhase = ''
+    mkdir -p $out/etc/logrotate.d
+    make install PREFIX=$out LIBDIR=$out/lib ASCIIDOC=${asciidoc}/bin/asciidoc XMLTO=${xmlto}/bin/xmlto
+  '';
+
+  meta = {
+    description = "userspace checkpoint/restore for Linux";
+    homepage    = "http://criu.org";
+    license     = stdenv.lib.licenses.gpl2;
+    platforms   = [ "x86_64-linux" ];
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/os-specific/linux/gradm/default.nix b/pkgs/os-specific/linux/gradm/default.nix
index 680547be57cf..62a3cfa631e7 100644
--- a/pkgs/os-specific/linux/gradm/default.nix
+++ b/pkgs/os-specific/linux/gradm/default.nix
@@ -15,7 +15,6 @@ stdenv.mkDerivation rec {
     substituteInPlace ./Makefile --replace "/usr/include/security/pam_" "${pam}/include/security/pam_"
     substituteInPlace ./gradm_defs.h --replace "/sbin/grlearn"   "$out/sbin/grlearn"
     substituteInPlace ./gradm_defs.h --replace "/sbin/gradm"     "$out/sbin/gradm"
-    substituteInPlace ./gradm_defs.h --replace "/sbin/gradm_pam" "$out/sbin/gradm_pam"
   '';
 
   postInstall = ''
@@ -25,6 +24,8 @@ stdenv.mkDerivation rec {
     KERNEL=="grsec",          MODE="0622"
     LABEL="permissions_end"
     EOF
+
+    echo "inherit-learn /nix/store" >> $out/etc/grsec/learn_config
   '';
 
   makeFlags =
diff --git a/pkgs/os-specific/linux/hostapd/default.nix b/pkgs/os-specific/linux/hostapd/default.nix
index 410fa6a7ad64..a8988f0a4529 100644
--- a/pkgs/os-specific/linux/hostapd/default.nix
+++ b/pkgs/os-specific/linux/hostapd/default.nix
@@ -2,11 +2,11 @@
 stdenv.mkDerivation rec {
 
   name = "hostapd-${version}";
-  version = "2.0";
+  version = "2.1";
 
   src = fetchurl {
     url = "http://hostap.epitest.fi/releases/${name}.tar.gz";
-    sha256 = "262ce394b930bccc3d65fb99ee380f28d36444978f524c845a98e8e29f4e9d35";
+    sha256 = "121gpcs1ws7m2v8jk091jhmz3pm2xmhwkv96gqkyb4k0bgsi0waw";
   };
 
   buildInputs = [ libnl openssl pkgconfig ];
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = http://hostap.epitest.fi;
+    repositories.git = git://w1.fi/hostap.git;
     description = "A user space daemon for access point and authentication servers";
     license = licenses.gpl2;
     maintainers = [ maintainers.phreedom ];
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 8b96a321634d..15473ea257c5 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -167,7 +167,11 @@ with stdenv.lib;
   STRICT_DEVMEM y # Filter access to /dev/mem
   SECURITY_SELINUX_BOOTPARAM_VALUE 0 # Disable SELinux by default
   DEVKMEM n # Disable /dev/kmem
-  CC_STACKPROTECTOR y # Detect buffer overflows on the stack
+  ${if versionOlder version "3.14" then ''
+    CC_STACKPROTECTOR y # Detect buffer overflows on the stack
+  '' else ''
+    CC_STACKPROTECTOR_REGULAR y
+  ''}
   ${optionalString (versionAtLeast version "3.12") ''
     USER_NS y # Support for user namespaces
   ''}
@@ -307,6 +311,11 @@ with stdenv.lib;
   9P_FSCACHE y
   9P_FS_POSIX_ACL y
 
+  # Enable transparent support for huge pages.
+  TRANSPARENT_HUGEPAGE? y
+  TRANSPARENT_HUGEPAGE_ALWAYS? n
+  TRANSPARENT_HUGEPAGE_MADVISE? y
+
   ${kernelPlatform.kernelExtraConfig or ""}
   ${extraConfig}
 ''
diff --git a/pkgs/os-specific/linux/kernel/linux-3.10.nix b/pkgs/os-specific/linux/kernel/linux-3.10.nix
index 748611ab1b5f..138dad2eda5d 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.10.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.10.31";
+  version = "3.10.37";
   extraMeta.branch = "3.10";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "1nz8203avjjin3sivx6h6ddsramk37vp02g9lw2ix3hxji0lsz1m";
+    sha256 = "0dh52s9jdvgs75dai5zqlx52xahdrscp048yd96x699hcl3g99d7";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.12.nix b/pkgs/os-specific/linux/kernel/linux-3.12.nix
index d276de69446a..e997e1951efb 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.13";
+  version = "3.12.17";
   extraMeta.branch = "3.12";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "08r4k64v0nkr0dnmir3n3x7f4i83akl3ahx9cl7rbj29zc4ninmd";
+    sha256 = "1knjmzk5gyab0b1prmna2bb8zz19sjmmjm24h6agmpq6q4bbnc5q";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.13.nix b/pkgs/os-specific/linux/kernel/linux-3.13.nix
index 361106bf0654..e63756a8c68e 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.13.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.13.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.13.6";
+  version = "3.13.10";
   extraMeta.branch = "3.13";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "10j1rc63y0rcrnc2rx8jyczqg42gcbijd83qqd795qrrp5wnf7qw";
+    sha256 = "00j7123r4zxypas5bs5c8girii6jrz5dwg4zzicgj3gj3frirah3";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.11.nix b/pkgs/os-specific/linux/kernel/linux-3.14.nix
index 6c3c37663c68..e81619becdfc 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.11.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.14.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.11.10";
-  extraMeta.branch = "3.11";
+  version = "3.14.1";
+  extraMeta.branch = "3.14";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "00g4rbkjsmyzzm9zmdll8qqs1mffa0pybwjpn9jnli2kgh9inzyb";
+    sha256 = "1njm8gvlj7cq0m1051yxszl4f63383a7sv1na13hkqkv36kipgqx";
   };
 
   features.iwlwifi = true;
@@ -14,4 +14,4 @@ import ./generic.nix (args // rec {
   features.needsCifsUtils = true;
   features.canDisableNetfilterConntrackHelpers = true;
   features.netfilterRPFilter = true;
-})
+} // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-3.2.nix b/pkgs/os-specific/linux/kernel/linux-3.2.nix
index cee4bf31dfe9..a73ded41edfc 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.2.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.2.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.2.55";
+  version = "3.2.57";
   extraMeta.branch = "3.2";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "15fj7kd3ba52in1siqbdq45i7xzb53yy88l9k4bgfgds3j8wxj9m";
+    sha256 = "0njiqa5fi82a4dls9z1cp33lza00bg15x93c19bsyalp53xqbnab";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.4.nix b/pkgs/os-specific/linux/kernel/linux-3.4.nix
index a7bfee210ad8..07712b4d01c7 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.4.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.4.81";
+  version = "3.4.87";
   extraMeta.branch = "3.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "17m8b9wcsz8ryakhk8v85iknylkjlbsx69wkj1rbvqi2f1sjihx5";
+    sha256 = "1b7isypwjnhvdqsjnq2gsylfasjk560fq0klx18gj3kvyx6ijmqd";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix
index dd1998147602..30e2a37cb91b 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -100,9 +100,14 @@ let
         ln -sv ${configfile} $buildRoot/.config
         make $makeFlags "''${makeFlagsArray[@]}" oldconfig
         runHook postConfigure
+
+        buildFlagsArray+=("KBUILD_BUILD_TIMESTAMP=Thu Jan 1 00:00:01 UTC 1970")
       '';
 
-      buildFlags = [ "KBUILD_BUILD_VERSION=1-NixOS" platform.kernelTarget ] ++ optional isModular "modules";
+      buildFlags = [
+        "KBUILD_BUILD_VERSION=1-NixOS"
+        platform.kernelTarget
+      ] ++ optional isModular "modules";
 
       installFlags = [
         "INSTALLKERNEL=${installkernel}"
@@ -198,6 +203,7 @@ let
         repositories.git = https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git;
         maintainers = [
           maintainers.shlevy
+          maintainers.thoughtpolice
         ];
         platforms = platforms.linux;
       };
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index 22f9ee9d876c..f42bf440c3b9 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -18,6 +18,18 @@ let
       };
     };
 
+  grsecPatch = { grversion ? "3.0", kversion, revision, branch, sha256 }:
+    { name = "grsecurity-${grversion}-${kversion}";
+      inherit grversion kversion revision;
+      patch = fetchurl {
+        url = "http://grsecurity.net/${branch}/grsecurity-${grversion}-${kversion}-${revision}.patch";
+        inherit sha256;
+      };
+      features.grsecurity = true;
+      # The grsec kernel patchset includes AppArmor patches
+      features.apparmor = true;
+    };
+
   makeAppArmorPatch = {apparmor, version}:
     stdenv.mkDerivation {
       name = "apparmor-${version}.patch";
@@ -26,6 +38,7 @@ let
         cat ${apparmor}/kernel-patches/${version}/* > $out
       '';
     };
+
 in
 
 rec {
@@ -44,12 +57,6 @@ rec {
     features.apparmor = true;
   };
 
-  sec_perm_2_6_24 =
-    { name = "sec_perm-2.6.24";
-      patch = ./sec_perm-2.6.24.patch;
-      features.secPermPatch = true;
-    };
-
   no_xsave =
     { name = "no-xsave";
       patch = ./no-xsave.patch;
@@ -77,31 +84,29 @@ rec {
     sha256 = "00b1rqgd4yr206dxp4mcymr56ymbjcjfa4m82pxw73khj032qw3j";
   };
 
+  grsecurity_stable = grsecPatch
+    { kversion  = "3.2.57";
+      revision  = "201404131252";
+      branch    = "stable";
+      sha256    = "1yic257h2vy3175c34i54873lc93y0m57rw1d059wz1wxy9waiwl";
+    };
 
-  grsecurity_3_0_3_2_55 =
-    { name = "grsecurity-3.0-3.2.55";
-      patch = fetchurl {
-        url = http://grsecurity.net/stable/grsecurity-3.0-3.2.55-201403142107.patch;
-        sha256 = "0v858lizqbvp0czpx5vg0h1sd5mb5kik1qhv4hh7y01cx6dywam2";
-      };
-      features.grsecurity = true;
-      # The grsec kernel patch seems to include the apparmor patches as of 3.0-3.2.55
-      features.apparmor = true;
+  grsecurity_vserver = grsecPatch
+    { kversion  = "3.2.57";
+      revision  = "vs2.3.2.16-201404131253";
+      branch    = "vserver";
+      sha256    = "0grhd9hbk952dwr91syi5pda1iccmcd8s0l3ki13689z8ns35f7k";
     };
 
-  grsecurity_3_0_3_13_6 =
-    { name = "grsecurity-3.0-3.13.6";
-      patch = fetchurl {
-        url = http://grsecurity.net/test/grsecurity-3.0-3.13.6-201403142112.patch;
-        sha256 = "12wdibf7xfqjwr1cnar3nskgrlm04w68impaq4a3xg1blb9nxxhr";
-      };
-      features.grsecurity = true;
-      # The grsec kernel patch seems to include the apparmor patches as of 3.0-3.13.6
-      features.apparmor = true;
+  grsecurity_unstable = grsecPatch
+    { kversion  = "3.13.10";
+      revision  = "201404141717";
+      branch    = "test";
+      sha256    = "1vraf9g7za0syx5c1x1ks7kgaxc9mjspy6pvgrs0vi326v12sqnx";
     };
 
-  grsec_path =
-    { name = "grsec-path";
+  grsec_fix_path =
+    { name = "grsec-fix-path";
       patch = ./grsec-path.patch;
     };
 }
diff --git a/pkgs/os-specific/linux/kernel/sec_perm-2.6.24.patch b/pkgs/os-specific/linux/kernel/sec_perm-2.6.24.patch
deleted file mode 100644
index de9b29949c3d..000000000000
--- a/pkgs/os-specific/linux/kernel/sec_perm-2.6.24.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Index: linux-2.6.24-rc3/security/security.c
-===================================================================
-RCS file: /ext1/sysadm/transparent/repository/linux-2.6.24-rc3/security/security.c,v
-retrieving revision 1.1
-retrieving revision 1.2
-diff -u -p -r1.1 -r1.2
---- linux-2.6.24-rc3/security/security.c	21 Nov 2007 13:03:11 -0000	1.1
-+++ linux-2.6.24-rc3/security/security.c	21 Nov 2007 13:07:55 -0000	1.2
-@@ -409,6 +409,7 @@ int security_inode_permission(struct ino
- 		return 0;
- 	return security_ops->inode_permission(inode, mask, nd);
- }
-+EXPORT_SYMBOL(security_inode_permission);
- 
- int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
- {
diff --git a/pkgs/os-specific/linux/lockdep/default.nix b/pkgs/os-specific/linux/lockdep/default.nix
new file mode 100644
index 000000000000..77cb43a7b53c
--- /dev/null
+++ b/pkgs/os-specific/linux/lockdep/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name    = "lockdep-${version}";
+  version = "3.14";
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
+    sha256 = "61558aa490855f42b6340d1a1596be47454909629327c49a5e4e10268065dffa";
+  };
+
+  preConfigure = "cd tools/lib/lockdep";
+  installPhase = ''
+    mkdir -p $out/bin $out/lib $out/include
+
+    cp -R include/liblockdep $out/include
+    make install DESTDIR=$out prefix=""
+
+    substituteInPlace $out/bin/lockdep --replace "./liblockdep.so" "$out/lib/liblockdep.so"
+  '';
+
+  meta = {
+    description = "userspace locking validation tool built on the Linux kernel";
+    homepage    = "https://kernel.org/";
+    license     = stdenv.lib.licenses.gpl2;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/os-specific/linux/lttng-modules/default.nix b/pkgs/os-specific/linux/lttng-modules/default.nix
index 1673472036f3..8e20bf1e3d3f 100644
--- a/pkgs/os-specific/linux/lttng-modules/default.nix
+++ b/pkgs/os-specific/linux/lttng-modules/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, kernel }:
 
 stdenv.mkDerivation rec {
-  pname = "lttng-modules-2.3.0";
+  pname = "lttng-modules-2.4.1";
   name = "${pname}-${kernel.version}";
 
   src = fetchurl {
     url = "https://lttng.org/files/lttng-modules/${pname}.tar.bz2";
-    sha256 = "0l9fbmpsjvm5pbrc6axy8chdp21j4b8fm0hmjhpk658ll0iixmpb";
+    sha256 = "1qn1qm8lwqw9ri9wfkf6k3d58gl9rwffmpbpkwx21v1fw95zi92k";
   };
 
   patches = [ ./lttng-fix-build-error-on-linux-3.2.patch ];
diff --git a/pkgs/os-specific/linux/lxc/default.nix b/pkgs/os-specific/linux/lxc/default.nix
index d59bb142f9f6..12305687c299 100644
--- a/pkgs/os-specific/linux/lxc/default.nix
+++ b/pkgs/os-specific/linux/lxc/default.nix
@@ -3,21 +3,25 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "lxc-1.0.1";
+  name = "lxc-1.0.3";
 
   src = fetchurl {
     url = "http://github.com/lxc/lxc/archive/${name}.tar.gz";
-    sha256 = "14fjzicv1s3niwag301i7m9vb9jlh3hnd9ks9jjkzp8xyxgb0rrv";
+    sha256 = "04k45jgj2i501yhm467s1a1yk7h7q0fjhspys158w1a2m1hari4z";
   };
 
   buildInputs = [ libcap apparmor perl docbook2x gnutls autoreconfHook pkgconfig ];
 
   patches = [ ./install-localstatedir-in-store.patch ./support-db2x.patch ];
 
-  preConfigure = "export XML_CATALOG_FILES=${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml";
+  preConfigure = ''
+    export XML_CATALOG_FILES=${docbook_xml_dtd_45}/xml/dtd/docbook/catalog.xml
+    substituteInPlace doc/rootfs/Makefile.am --replace '@LXCROOTFSMOUNT@' '$out/lib/lxc/rootfs'
+  '';
 
   configureFlags = [
     "--localstatedir=/var"
+    "--with-rootfs-path=/var/lib/lxc/rootfs"
     "--enable-doc"
     "--enable-tests"
     "--enable-apparmor"
diff --git a/pkgs/os-specific/linux/microcode/intel.nix b/pkgs/os-specific/linux/microcode/intel.nix
index d96a49436251..8de75fbc734e 100644
--- a/pkgs/os-specific/linux/microcode/intel.nix
+++ b/pkgs/os-specific/linux/microcode/intel.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, microcode2ucode }:
 
-let version = "20130906"; in
+let version = "20140122"; in
 
 stdenv.mkDerivation {
   name = "microcode-intel-${version}";
 
   src = fetchurl {
-    url = "http://downloadmirror.intel.com/23166/eng/microcode-${version}.tgz";
-    sha256 = "11k327icvijadq2zkgkc3sqwzraip9cviqm25566g09523ds0svv";
+    url = "http://downloadmirror.intel.com/23574/eng/microcode-${version}.tgz";
+    sha256 = "0r5ldb1jvrf0b6b112v3wdr7ikf2zky2jgby2lnqi1xwd34x42k8";
   };
 
   buildInputs = [ microcode2ucode ];
diff --git a/pkgs/os-specific/linux/musl/default.nix b/pkgs/os-specific/linux/musl/default.nix
new file mode 100644
index 000000000000..014591f0b55f
--- /dev/null
+++ b/pkgs/os-specific/linux/musl/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name    = "musl-${version}";
+  version = "1.0.0";
+
+  src = fetchurl {
+    url    = "http://www.musl-libc.org/releases/${name}.tar.gz";
+    sha256 = "0chs9h8k4d0iwv8w7n1w02nll3ypwqa2gag6r4czznkj55fz9mqs";
+  };
+
+  enableParallelBuilding = true;
+  configurePhase = ''
+    ./configure --enable-shared --enable-static --prefix=$out --syslibdir=$out/lib
+  '';
+
+  meta = {
+    description = "An efficient, small, quality libc implementation";
+    homepage    = "http://www.musl-libc.org";
+    license     = stdenv.lib.licenses.mit;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index 1632f4f4ecbf..74863496a0f7 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -12,7 +12,7 @@ assert (!libsOnly) -> kernel != null;
 
 let
 
-  versionNumber = "331.38";
+  versionNumber = "331.49";
 
 in
 
@@ -21,18 +21,18 @@ stdenv.mkDerivation {
 
   builder = ./builder.sh;
 
-  patches = optional (kernel ? version && versionAtLeast kernel.version "3.13") ./kernel-3.13.patch ;
+  patches = optional (kernel ? version && versionAtLeast kernel.version "3.14") ./kernel-3.14.patch;
 
   src =
     if stdenv.system == "i686-linux" then
       fetchurl {
         url = "http://us.download.nvidia.com/XFree86/Linux-x86/${versionNumber}/NVIDIA-Linux-x86-${versionNumber}.run";
-        sha256 = "1x1b70lnw2ipwlyff7czxqrgz8yyq87djzgmgs9p3lmczy7lsvir";
+        sha256 = "00d7bq8cfxk52qd4y226fz8m9m3mjq45fbgr3q7k08jyy9qmswmn";
       }
     else if stdenv.system == "x86_64-linux" then
       fetchurl {
         url = "http://us.download.nvidia.com/XFree86/Linux-x86_64/${versionNumber}/NVIDIA-Linux-x86_64-${versionNumber}-no-compat32.run";
-        sha256 = "1ljafiqnyhj355mjp3r8wmb806xm6mbrn0x1dfgqh5pv9imhszhp";
+        sha256 = "0q3lvl1lypi33i847nqz4k3161ackh2n9kgyjn6v2c480f405hfk";
       }
     else throw "nvidia-x11 does not support platform ${stdenv.system}";
 
diff --git a/pkgs/os-specific/linux/nvidia-x11/kernel-3.13.patch b/pkgs/os-specific/linux/nvidia-x11/kernel-3.13.patch
deleted file mode 100644
index 477ac1369e0a..000000000000
--- a/pkgs/os-specific/linux/nvidia-x11/kernel-3.13.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-diff -rupN NVIDIA-Linux-x86_64-331.38.orig/kernel/nv-acpi.c NVIDIA-Linux-x86_64-331.38/kernel/nv-acpi.c
---- NVIDIA-Linux-x86_64-331.38.orig/kernel/nv-acpi.c	2014-01-25 09:39:47.126966926 +0100
-+++ NVIDIA-Linux-x86_64-331.38/kernel/nv-acpi.c	2014-01-26 09:59:45.853427603 +0100
-@@ -303,7 +303,10 @@ static int nv_acpi_remove(struct acpi_de
- 
-     if (pNvAcpiObject->notify_handler_installed)
-     {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
-+ /* beginning with 3.13, acpi_remove_notify_handler() waits for events to finish */
-         NV_ACPI_OS_WAIT_EVENTS_COMPLETE();
-+#endif
- 
-         // remove event notifier
-         status = acpi_remove_notify_handler(device->handle, ACPI_DEVICE_NOTIFY, nv_acpi_event);
-@@ -1076,10 +1079,17 @@ RM_STATUS NV_API_CALL nv_acpi_dsm_method
-     NvU8 argument3[4]; /* For all DSM sub functions, input size is 4 */
-     NvU32 data_size;
-     acpi_handle dev_handle  = NULL;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
- #ifdef DEVICE_ACPI_HANDLE
-     nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv); 
-     dev_handle = DEVICE_ACPI_HANDLE(&nvl->dev->dev);
- #endif
-+#else
-+#ifdef ACPI_HANDLE
-+    nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv); 
-+    dev_handle = ACPI_HANDLE(&nvl->dev->dev);
-+#endif
-+#endif
- 
-     if (!dev_handle)
-         return RM_ERR_NOT_SUPPORTED;
-@@ -1179,12 +1189,21 @@ RM_STATUS NV_API_CALL nv_acpi_ddc_method
-     NvU32 i;
-     acpi_handle dev_handle  = NULL;
-     acpi_handle lcd_dev_handle  = NULL;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
- #ifdef DEVICE_ACPI_HANDLE
-     nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv); 
-     dev_handle = DEVICE_ACPI_HANDLE(&nvl->dev->dev);
- #else
-         return RM_ERR_NOT_SUPPORTED;
- #endif
-+#else
-+#ifdef ACPI_HANDLE
-+    nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv); 
-+    dev_handle = ACPI_HANDLE(&nvl->dev->dev);
-+#else
-+        return RM_ERR_NOT_SUPPORTED;
-+#endif
-+#endif
-     if (!dev_handle)
-         return RM_ERR_INVALID_ARGUMENT;
- 
-@@ -1294,12 +1313,21 @@ RM_STATUS NV_API_CALL nv_acpi_rom_method
-     struct acpi_object_list input = { 2, rom_arg };
-     acpi_handle dev_handle  = NULL;
-     uint32_t offset, length;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
- #ifdef DEVICE_ACPI_HANDLE
-     nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv); 
--    dev_handle = DEVICE_ACPI_HANDLE(&nvl->dev->dev);
-+    dev_handle = ACPI_DEVICE_HANDLE(&nvl->dev->dev);
- #else
-     return RM_ERR_NOT_SUPPORTED;
- #endif
-+#else
-+#ifdef ACPI_HANDLE
-+    nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv); 
-+    dev_handle = ACPI_HANDLE(&nvl->dev->dev);
-+#else
-+    return RM_ERR_NOT_SUPPORTED;
-+#endif
-+#endif
- 
-     if (!dev_handle)
-         return RM_ERR_INVALID_ARGUMENT;
-@@ -1364,12 +1392,21 @@ RM_STATUS NV_API_CALL nv_acpi_dod_method
-     union acpi_object *dod;
-     acpi_handle dev_handle = NULL;
-     NvU32 i, count = (*pSize / sizeof(NvU32));
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
- #ifdef DEVICE_ACPI_HANDLE
-     nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
-     dev_handle = DEVICE_ACPI_HANDLE(&nvl->dev->dev);
- #else
-     return RM_ERR_NOT_SUPPORTED;
- #endif
-+#else
-+#ifdef ACPI_HANDLE
-+    nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
-+    dev_handle = ACPI_HANDLE(&nvl->dev->dev);
-+#else
-+    return RM_ERR_NOT_SUPPORTED;
-+#endif
-+#endif
- 
-     if (!dev_handle)
-         return RM_ERR_INVALID_ARGUMENT;
-diff -rupN NVIDIA-Linux-x86_64-331.38.orig/kernel/uvm/nvidia_uvm_linux.h NVIDIA-Linux-x86_64-331.38/kernel/uvm/nvidia_uvm_linux.h
---- NVIDIA-Linux-x86_64-331.38.orig/kernel/uvm/nvidia_uvm_linux.h	2014-01-25 09:39:47.172966925 +0100
-+++ NVIDIA-Linux-x86_64-331.38/kernel/uvm/nvidia_uvm_linux.h	2014-01-25 09:46:40.572999245 +0100
-@@ -405,11 +405,17 @@ typedef void irqreturn_t;
- // not require the RCU's read lock on current->cred.
- //
- //
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)
-+#define NV_KUID_TO_UID(value) (__kuid_val(value))
-+#else
-+#define NV_KUID_TO_UID(value) (value)
-+#endif
-+
- #if defined(NV_TASK_STRUCT_HAS_CRED)
- #define NV_CURRENT_EUID() \
--    (((typeof(*current->cred) __force __kernel *)current->cred)->euid)
-+        NV_KUID_TO_UID(((typeof(*current->cred) __force __kernel *)current->cred)->euid)
- #else
--#define NV_CURRENT_EUID() (current->euid)
-+#define NV_CURRENT_EUID() NV_KUID_TO_UID(current->euid)
- #endif
- 
- #define NV_ATOMIC_SET(data,val)         atomic_set(&(data), (val))
diff --git a/pkgs/os-specific/linux/nvidia-x11/kernel-3.14.patch b/pkgs/os-specific/linux/nvidia-x11/kernel-3.14.patch
new file mode 100644
index 000000000000..07fb7652d32d
--- /dev/null
+++ b/pkgs/os-specific/linux/nvidia-x11/kernel-3.14.patch
@@ -0,0 +1,12 @@
+--- a/kernel/nv-linux.h         2014-01-09 04:49:25.000000000 +0200

++++ b/kernel/nv-linux.h         2014-02-05 16:46:55.552408568 +0200

+@@ -273,8 +273,7 @@

+ #endif

+ 

+ #if !defined(NV_VMWARE) && defined(CONFIG_ACPI)

+-#include <acpi/acpi.h>

+-#include <acpi/acpi_drivers.h>

++#include <linux/acpi.h>

+ #if defined(NV_ACPI_DEVICE_OPS_HAS_MATCH) || defined(ACPI_VIDEO_HID)

+ #define NV_LINUX_ACPI_EVENTS_SUPPORTED 1

+ #endif

diff --git a/pkgs/os-specific/linux/pax-utils/default.nix b/pkgs/os-specific/linux/pax-utils/default.nix
index 8d58873d5c12..83f0dc1e82d2 100644
--- a/pkgs/os-specific/linux/pax-utils/default.nix
+++ b/pkgs/os-specific/linux/pax-utils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "pax-utils-${version}";
-  version = "0.7";
+  version = "0.8.1";
 
   src = fetchurl {
     url = "http://dev.gentoo.org/~vapier/dist/${name}.tar.xz";
-    sha256 = "111vmwn0ikrmy3s0w3rzpbzwrphawljrmcjya0isg5yam7lwxi0s";
+    sha256 = "1fgm70s52x48dxjihs0rcwmpfsi2dxbjzcilxy9fzg0i39dz4kw4";
   };
 
   makeFlags = [
diff --git a/pkgs/os-specific/linux/procps-ng/default.nix b/pkgs/os-specific/linux/procps-ng/default.nix
index 0b3389f903a8..cd8a8eaec133 100644
--- a/pkgs/os-specific/linux/procps-ng/default.nix
+++ b/pkgs/os-specific/linux/procps-ng/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, ncurses }:
 
 stdenv.mkDerivation {
-  name = "procps-ng-3.3.9";
+  name = "procps-3.3.9";
 
   src = fetchurl {
     url = mirror://sourceforge/procps-ng/procps-ng-3.3.9.tar.xz;
diff --git a/pkgs/os-specific/linux/procps/watch.nix b/pkgs/os-specific/linux/procps/watch.nix
new file mode 100644
index 000000000000..2547e26def4b
--- /dev/null
+++ b/pkgs/os-specific/linux/procps/watch.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation {
+  name = "watch-0.2.0";
+
+  src = fetchurl {
+    url = http://procps.sourceforge.net/procps-3.2.8.tar.gz;
+    sha256 = "0d8mki0q4yamnkk4533kx8mc0jd879573srxhg6r2fs3lkc6iv8i";
+  };
+
+  buildInputs = [ ncurses ];
+
+  makeFlags = "watch usrbin_execdir=$(out)/bin" +
+              (if stdenv.isDarwin then " PKG_LDFLAGS=" else "");
+
+  enableParallelBuilding = true;
+
+  crossAttrs = {
+    CC = stdenv.cross.config + "-gcc";
+  };
+
+  installPhase = "mkdir $out; mkdir -p $out/bin; cp -p watch $out/bin";
+
+  meta = {
+    homepage = http://sourceforge.net/projects/procps/;
+    description = "Utility for watch the output of a given command at intervals";
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/os-specific/linux/psmisc/default.nix b/pkgs/os-specific/linux/psmisc/default.nix
index 0e423f85d66f..1215c5261f4f 100644
--- a/pkgs/os-specific/linux/psmisc/default.nix
+++ b/pkgs/os-specific/linux/psmisc/default.nix
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/psmisc/${name}.tar.gz";
-    sha256 = "1p13s2323mi2868y4fzy3q2kkmv4fn1ggabqnjf202x4030vjj1q";
+    sha256 = "0nhlm1vrrwn4a845p6y4nnnb4liq70n74zbdd5dq844jc6nkqclp";
   };
 
   buildInputs = [ncurses];
diff --git a/pkgs/os-specific/linux/shadow/default.nix b/pkgs/os-specific/linux/shadow/default.nix
index 1055fccd8aa3..9d024ae3109c 100644
--- a/pkgs/os-specific/linux/shadow/default.nix
+++ b/pkgs/os-specific/linux/shadow/default.nix
@@ -26,6 +26,8 @@ stdenv.mkDerivation rec {
 
   patches = [ ./keep-path.patch dots_in_usernames ];
 
+  outputs = [ "out" "su" ];
+
   # Assume System V `setpgrp (void)', which is the default on GNU variants
   # (`AC_FUNC_SETPGRP' is not cross-compilation capable.)
   preConfigure = "export ac_cv_func_setpgrp_void=yes";
@@ -35,10 +37,14 @@ stdenv.mkDerivation rec {
       substituteInPlace lib/nscd.c --replace /usr/sbin/nscd ${glibc}/sbin/nscd
     '';
 
-  # Don't install ‘groups’, since coreutils already provides it.
   postInstall =
     ''
+      # Don't install ‘groups’, since coreutils already provides it.
       rm $out/bin/groups $out/share/man/man1/groups.*
+
+      # Move the su binary into the su package
+      mkdir -p $su/bin
+      mv $out/bin/su $su/bin
     '';
 
   meta = {
diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix
new file mode 100644
index 000000000000..6f5bb3869bb2
--- /dev/null
+++ b/pkgs/os-specific/linux/sysdig/default.nix
@@ -0,0 +1,41 @@
+{stdenv, fetchurl, cmake, luajit, kernel}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="sysdig";
+    version="0.1.79";
+    name="${baseName}-${version}";
+    hash="04ng4q859xxlpsnavx6rcgmq7frzgbzxm0p5zmdsmhz8m6hfvz7l";
+    url="https://github.com/draios/sysdig/archive/0.1.79.tar.gz";
+    sha256="04ng4q859xxlpsnavx6rcgmq7frzgbzxm0p5zmdsmhz8m6hfvz7l";
+  };
+  buildInputs = [
+    cmake luajit kernel
+  ];
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+
+  cmakeFlags = [
+    "-DUSE_BUNDLED_LUAJIT=OFF"
+  ];
+  makeFlags = [
+    "KERNELDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+  ];
+  postInstall = ''
+    mkdir -p $out/lib/modules/${kernel.modDirVersion}/misc/sysdig
+    cp driver/*.ko $out/lib/modules/${kernel.modDirVersion}/misc/sysdig
+  '';
+
+  meta = {
+    inherit (s) version;
+    description = ''A tracepoint-based system tracing tool for Linux'';
+    license = stdenv.lib.licenses.gpl2 ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/sysdig/default.upstream b/pkgs/os-specific/linux/sysdig/default.upstream
new file mode 100644
index 000000000000..7071d9825007
--- /dev/null
+++ b/pkgs/os-specific/linux/sysdig/default.upstream
@@ -0,0 +1,3 @@
+url https://github.com/draios/sysdig/releases
+ensure_choice
+version '.*/([0-9.]+)[.]tar[.].*' '\1'
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index caa69a9e3a8a..0afaf7b03703 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
     [ # These are all changes between upstream and
       # https://github.com/edolstra/systemd/tree/nixos-v203.
       ./fixes.patch
+      ./fix_console_in_containers.patch
     ]
     ++ stdenv.lib.optional stdenv.isArm ./libc-bug-accept4-arm.patch;
 
diff --git a/pkgs/os-specific/linux/systemd/fix_console_in_containers.patch b/pkgs/os-specific/linux/systemd/fix_console_in_containers.patch
new file mode 100644
index 000000000000..005c00282020
--- /dev/null
+++ b/pkgs/os-specific/linux/systemd/fix_console_in_containers.patch
@@ -0,0 +1,14 @@
+diff -ruN systemd-203/units/getty@.service.m4 systemd-203-patched/units/getty@.service.m4
+--- systemd-203/units/getty@.service.m4	2013-01-07 22:50:49.083315575 +0100
++++ systemd-203-patched/units/getty@.service.m4	2014-03-18 09:54:40.002476232 +0100
+@@ -23,7 +23,9 @@
+ # On systems without virtual consoles, don't start any getty. (Note
+ # that serial gettys are covered by serial-getty@.service, not this
+ # unit
+-ConditionPathExists=/dev/tty0
++ConditionPathExists=|/dev/tty0
++ConditionVirtualization=|lxc
++ConditionVirtualization=|lxc-libvirt
+ 
+ [Service]
+ # the VT is cleared by TTYVTDisallocate
diff --git a/pkgs/os-specific/linux/udisks/1-default.nix b/pkgs/os-specific/linux/udisks/1-default.nix
index 19cfec9f0657..09731d54ab75 100644
--- a/pkgs/os-specific/linux/udisks/1-default.nix
+++ b/pkgs/os-specific/linux/udisks/1-default.nix
@@ -3,14 +3,14 @@
 , libxslt, docbook_xsl, utillinux }:
 
 stdenv.mkDerivation rec {
-  name = "udisks-1.0.5";
+  name = "udisks-1.0.4";
 
   src = fetchurl {
     url = "http://hal.freedesktop.org/releases/${name}.tar.gz";
-    sha256 = "0wbg3jrv8limdgvcygf4dqin3y6d30y9pcmmk711vq571vmq5v7j";
+    sha256 = "1xgqifddwaavmjc8c30i0mdffyirsld7c6qhfyjw7f9khwv8jjw5";
   };
 
-  patches = [ ./purity.patch ./no-pci-db.patch ];
+  patches = [ ./purity.patch ./no-pci-db.patch ./cve-2014-0004.patch ];
 
   postPatch =
     ''
@@ -28,11 +28,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
 
-  configureFlags = [
-    "--localstatedir=/var"
-    "--enable-lvm2"
-    "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
-  ];
+  configureFlags = "--localstatedir=/var --enable-lvm2";
 
   meta = {
     homepage = http://www.freedesktop.org/wiki/Software/udisks;
diff --git a/pkgs/os-specific/linux/udisks/cve-2014-0004.patch b/pkgs/os-specific/linux/udisks/cve-2014-0004.patch
new file mode 100644
index 000000000000..ce907507538f
--- /dev/null
+++ b/pkgs/os-specific/linux/udisks/cve-2014-0004.patch
@@ -0,0 +1,82 @@
+commit ebf61ed8471a45cf8bce7231de00cb1bbc140708
+Author: Martin Pitt <martin.pitt@ubuntu.com>
+Date:   Wed Mar 5 14:07:44 2014 +0100
+
+    Fix buffer overflow in mount path parsing
+    
+    In the mount monitor we parse mount points from /proc/self/mountinfo.  Ensure
+    that we don't overflow the buffers on platforms where mount paths could be
+    longer than PATH_MAX (unknown if that can actually happen), as at least the
+    mount paths for hotpluggable devices are somewhat user-controlled.
+    
+    Thanks to Florian Weimer for discovering this bug, and to David Zeuthen
+    for his initial patch!
+    
+    CVE-2014-0004
+
+Index: udisks-1.0.4/src/mount-monitor.c
+===================================================================
+--- udisks-1.0.4.orig/src/mount-monitor.c	2011-08-25 20:27:33.000000000 +0200
++++ udisks-1.0.4/src/mount-monitor.c	2014-03-10 13:38:18.309406561 +0100
+@@ -39,6 +39,11 @@
+ #include "mount.h"
+ #include "private.h"
+ 
++/* build a %Ns format string macro with N == PATH_MAX */
++#define xstr(s) str(s)
++#define str(s) #s
++#define PATH_MAX_FMT "%" xstr(PATH_MAX) "s"
++
+ /*--------------------------------------------------------------------------------------------------------------*/
+ 
+ enum
+@@ -320,8 +325,8 @@ mount_monitor_ensure (MountMonitor *moni
+       guint mount_id;
+       guint parent_id;
+       guint major, minor;
+-      gchar encoded_root[PATH_MAX];
+-      gchar encoded_mount_point[PATH_MAX];
++      gchar encoded_root[PATH_MAX + 1];
++      gchar encoded_mount_point[PATH_MAX + 1];
+       gchar *mount_point;
+       dev_t dev;
+ 
+@@ -329,7 +334,7 @@ mount_monitor_ensure (MountMonitor *moni
+         continue;
+ 
+       if (sscanf (lines[n],
+-                  "%d %d %d:%d %s %s",
++                  "%d %d %d:%d " PATH_MAX_FMT " " PATH_MAX_FMT,
+                   &mount_id,
+                   &parent_id,
+                   &major,
+@@ -340,6 +345,8 @@ mount_monitor_ensure (MountMonitor *moni
+           g_warning ("Error parsing line '%s'", lines[n]);
+           continue;
+         }
++      encoded_root[sizeof encoded_root - 1] = '\0';
++      encoded_mount_point[sizeof encoded_mount_point - 1] = '\0';
+ 
+       /* ignore mounts where only a subtree of a filesystem is mounted */
+       if (g_strcmp0 (encoded_root, "/") != 0)
+@@ -358,15 +365,17 @@ mount_monitor_ensure (MountMonitor *moni
+           sep = strstr (lines[n], " - ");
+           if (sep != NULL)
+             {
+-              gchar fstype[PATH_MAX];
+-              gchar mount_source[PATH_MAX];
++              gchar fstype[PATH_MAX + 1];
++              gchar mount_source[PATH_MAX + 1];
+               struct stat statbuf;
+ 
+-              if (sscanf (sep + 3, "%s %s", fstype, mount_source) != 2)
++              if (sscanf (sep + 3, PATH_MAX_FMT " " PATH_MAX_FMT, fstype, mount_source) != 2)
+                 {
+                   g_warning ("Error parsing things past - for '%s'", lines[n]);
+                   continue;
+                 }
++              fstype[sizeof fstype - 1] = '\0';
++              mount_source[sizeof mount_source - 1] = '\0';
+ 
+               if (g_strcmp0 (fstype, "btrfs") != 0)
+                 continue;
diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix
index 3f676d37dd87..ec43ee1e64f4 100644
--- a/pkgs/os-specific/linux/util-linux/default.nix
+++ b/pkgs/os-specific/linux/util-linux/default.nix
@@ -36,6 +36,10 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional (ncurses != null) ncurses
     ++ stdenv.lib.optional (perl != null) perl;
 
+  postInstall = ''
+    rm $out/bin/su # su should be supplied by the su package (shadow)
+  '';
+
   enableParallelBuilding = true;
 
   meta = {
diff --git a/pkgs/os-specific/linux/v4l2loopback/default.nix b/pkgs/os-specific/linux/v4l2loopback/default.nix
new file mode 100644
index 000000000000..5b88d4c75560
--- /dev/null
+++ b/pkgs/os-specific/linux/v4l2loopback/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, kernel, kmod }:
+
+stdenv.mkDerivation rec {
+  name = "v4l2loopback-${version}-${kernel.version}";
+  version = "0.8.0";
+
+  src = fetchurl {
+    url = "https://github.com/umlaeute/v4l2loopback/archive/v${version}.tar.gz";
+    sha256 = "1rhsgc4prrj8s6njixic7fs5m3gs94v9hhf3am6lnfh5yv6yab9h";
+  };
+  
+  preBuild = ''
+    substituteInPlace Makefile --replace "modules_install" "INSTALL_MOD_PATH=$out modules_install"
+    sed -i '/depmod/d' Makefile
+    export PATH=${kmod}/sbin:$PATH
+  '';
+  
+  buildInputs = [ kmod ];
+  
+  makeFlags = [
+    "KERNELRELEASE=${kernel.modDirVersion}"
+    "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A kernel module to create V4L2 loopback devices";
+    homepage = https://github.com/umlaeute/v4l2loopback;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.iElectric ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/servers/amqp/qpid-cpp/default.nix b/pkgs/servers/amqp/qpid-cpp/default.nix
index 9fc3520002c9..69c0a3dff41c 100644
--- a/pkgs/servers/amqp/qpid-cpp/default.nix
+++ b/pkgs/servers/amqp/qpid-cpp/default.nix
@@ -1,22 +1,17 @@
-{ stdenv, fetchurl, cmake, python, boost, libuuid }:
+{ stdenv, fetchurl, cmake, python, boost, libuuid, ruby }:
 
 stdenv.mkDerivation rec {
   name = "${project}-cpp-${version}";
 
   project = "qpid";
-  version = "0.24";
+  version = "0.26";
 
   src = fetchurl {
     url = "mirror://apache/${project}/${version}/${name}.tar.gz";
-    sha256 = "08nfks5jjipy5i4b6mz62ijrz5ryq32c478ix7l3fzmaim3cy8b8";
+    sha256 = "1c03yi19d5h5h78h37add9csmy0mzvvmvn7zkcalwszabdhsb5yk";
   };
 
-  buildInputs = [ cmake python boost libuuid ];
-
-  # workaround this
-  #/nix/store/n38ns73bm4iv62fihd9ih5b39w54yyaf-boost-1.54.0/include/boost/ptr_container/detail/map_iterator.hpp:52:48:
-  #error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
-  cmakeFlags = "-DENABLE_WARNINGS=OFF";
+  buildInputs = [ cmake python boost libuuid ruby ];
 
   # the subdir managementgen wants to install python stuff in ${python} and
   # the installation tries to create some folders in /var
diff --git a/pkgs/servers/amqp/rabbitmq-server/default.nix b/pkgs/servers/amqp/rabbitmq-server/default.nix
index 4bb05a23fafc..45a6c2189db6 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.2.1";
+  version = "3.2.4";
 
   src = fetchurl {
     url = "http://www.rabbitmq.com/releases/rabbitmq-server/v${version}/${name}.tar.gz";
-    sha256 = "0j9yx64sdgkv0h20zjs65aa2ag6wwv50i6hd3x69m0cc6shzcc0f";
+    sha256 = "17rvqhzcb7rscp228vmgixk0rsqi42m820jzxj9g5wid6qmzjc59";
   };
 
   buildInputs =
diff --git a/pkgs/servers/apcupsd/default.nix b/pkgs/servers/apcupsd/default.nix
index 6489d4dcefff..ad8685d3d422 100644
--- a/pkgs/servers/apcupsd/default.nix
+++ b/pkgs/servers/apcupsd/default.nix
@@ -2,13 +2,15 @@
 , enableCgiScripts ? true, gd
 }:
 
+assert enableCgiScripts -> gd != null;
+
 stdenv.mkDerivation rec {
   pname = "apcupsd";
-  name = "${pname}-3.14.11";
+  name = "${pname}-3.14.12";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${name}.tar.gz";
-    sha256 = "0wrb8vdc872f1x0gw21b5c81h0vxvsc7yks5qzbq2j3hkbl2vixd";
+    sha256 = "0h54ahj65nqrgmdcg81h1gp0zlxg9hwwhg8pmx6z9zcwn4y70kqv";
   };
 
   buildInputs = [ pkgconfig utillinux man ] ++ stdenv.lib.optional enableCgiScripts gd;
diff --git a/pkgs/servers/gpsd/default.nix b/pkgs/servers/gpsd/default.nix
index a52ca2b6871b..62fbd3337f7a 100644
--- a/pkgs/servers/gpsd/default.nix
+++ b/pkgs/servers/gpsd/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
         systemd=yes udevdir="$out/lib/udev" chrpath=no
   '';
 
-  doCheck = true;
+  doCheck = false;
 
   checkPhase = ''
     export LD_LIBRARY_PATH="$PWD"
diff --git a/pkgs/servers/http/apache-httpd/2.4.nix b/pkgs/servers/http/apache-httpd/2.4.nix
index 2bbe9798de46..7deab6584f83 100644
--- a/pkgs/servers/http/apache-httpd/2.4.nix
+++ b/pkgs/servers/http/apache-httpd/2.4.nix
@@ -14,12 +14,12 @@ assert sslSupport -> aprutil.sslSupport && openssl != null;
 assert ldapSupport -> aprutil.ldapSupport && openldap != null;
 
 stdenv.mkDerivation rec {
-  version = "2.4.7";
+  version = "2.4.9";
   name = "apache-httpd-${version}";
 
   src = fetchurl {
     url = "mirror://apache/httpd/httpd-${version}.tar.bz2";
-    sha256 = "06z7ij0avr8f3rvp6ifk3dn8j73i17cn4avz4fp1as43061qsdk4";
+    sha256 = "00vnhki0rdwlhl4cjgvkq5vpf8szx2sdd3yi7bcg7jj7z86wk37p";
   };
 
   buildInputs = [perl] ++
diff --git a/pkgs/servers/http/apache-modules/mod_dnssd/default.nix b/pkgs/servers/http/apache-modules/mod_dnssd/default.nix
new file mode 100644
index 000000000000..06f12820a10d
--- /dev/null
+++ b/pkgs/servers/http/apache-modules/mod_dnssd/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, apacheHttpd_2_2, apr, avahi }:
+
+stdenv.mkDerivation rec {
+  name = "mod_dnssd-0.6";
+
+  src = fetchurl {
+    url = "http://0pointer.de/lennart/projects/mod_dnssd/${name}.tar.gz";
+    sha256 = "2cd171d76eba398f03c1d5bcc468a1756f4801cd8ed5bd065086e4374997c5aa";
+  };
+
+  configureFlags = [ "--disable-lynx" ];
+
+  buildInputs = [ pkgconfig apacheHttpd_2_2 avahi apr ];
+
+  installPhase = ''
+    mkdir -p $out/modules
+    cp src/.libs/mod_dnssd.so $out/modules
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://0pointer.de/lennart/projects/mod_dnssd;
+    description = "Provide Zeroconf support via DNS-SD using Avahi";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ lethalman ];
+  };
+}
+
diff --git a/pkgs/servers/http/nginx/default.nix b/pkgs/servers/http/nginx/default.nix
index f2bc07656364..757d4cb9566d 100644
--- a/pkgs/servers/http/nginx/default.nix
+++ b/pkgs/servers/http/nginx/default.nix
@@ -5,10 +5,10 @@
 , moreheaders ? false}:
 
 let
-  version = "1.4.6";
+  version = "1.4.7";
   mainSrc = fetchurl {
     url = "http://nginx.org/download/nginx-${version}.tar.gz";
-    sha256 = "1ihjb3dqw4icc5pvgaqbp740cyr4m8zxjfvj3v3bkd88swamp2vs";
+    sha256 = "09mnw4f1yk64f21xq4k65x4r76pmrszyzc4iixkr0w41fr5gzf13";
   };
 
   rtmp-ext = fetchgit {
@@ -71,7 +71,8 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A reverse proxy and lightweight webserver";
-    maintainers = [ stdenv.lib.maintainers.raskin];
+    homepage = http://nginx.org;
+    maintainers = [ stdenv.lib.maintainers.raskin ];
     platforms = stdenv.lib.platforms.all;
     inherit version;
   };
diff --git a/pkgs/servers/http/tomcat/6.0.nix b/pkgs/servers/http/tomcat/6.0.nix
index d8304ba4dbee..ee0049ce08f6 100644
--- a/pkgs/servers/http/tomcat/6.0.nix
+++ b/pkgs/servers/http/tomcat/6.0.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl }:
 
-let version = "6.0.37"; in
+let version = "6.0.39"; in
 
 stdenv.mkDerivation rec {
   name = "apache-tomcat-${version}";
 
   src = fetchurl {
     url = "mirror://apache/tomcat/tomcat-6/v${version}/bin/${name}.tar.gz";
-    sha256 = "000v63amhbyp8nkw3a4pff1vm4nxri5n9j7rknhnqaxzab3sp49y";
+    sha256 = "19qix6affhc252n03smjf482drg3nxd27shni1gvhphgj3zfmgfy";
   };
 
   installPhase =
diff --git a/pkgs/servers/irc/ngircd/default.nix b/pkgs/servers/irc/ngircd/default.nix
new file mode 100644
index 000000000000..738881e2aafe
--- /dev/null
+++ b/pkgs/servers/irc/ngircd/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, zlib, openssl, pam, libiconvOrNull }:
+
+stdenv.mkDerivation rec {
+  name = "ngircd-21";
+
+  src = fetchurl {
+    url = "http://ngircd.barton.de/pub/ngircd/${name}.tar.xz";
+    sha256 = "19llx54zy6hc8k7kcs1f234qc20mqpnlnb30c663c42jxq5x6xii";
+  };
+
+  configureFlags = [
+    "--with-syslog"
+    "--with-zlib"
+    "--with-pam"
+    "--with-openssl"
+    "--enable-ipv6"
+    "--with-iconv"
+  ];
+
+  buildInputs = [ zlib pam openssl libiconvOrNull ];
+
+  meta = {
+    description = "Next Generation IRC Daemon";
+    homepage    = http://ngircd.barton.de;
+    license     = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+    platforms   = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/servers/monitoring/munin/default.nix b/pkgs/servers/monitoring/munin/default.nix
index a0c0423042e8..8d1b03ddf344 100644
--- a/pkgs/servers/monitoring/munin/default.nix
+++ b/pkgs/servers/monitoring/munin/default.nix
@@ -1,15 +1,14 @@
-{ stdenv, fetchgit, makeWrapper, which, coreutils, rrdtool, perl, perlPackages
+{ stdenv, fetchurl, makeWrapper, which, coreutils, rrdtool, perl, perlPackages
 , python, ruby, openjdk, nettools
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.0.19";
+  version = "2.0.20";
   name = "munin-${version}";
 
-  src = fetchgit {
-    url = "git://github.com/munin-monitoring/munin.git";
-    rev = "refs/tags/${version}";
-    sha256 = "0027rrdrmcql68b475jlxnfgkijbfngynkjpdii6fgaszswqz3ay";
+  src = fetchurl {
+    url = "https://github.com/munin-monitoring/munin/archive/${version}.tar.gz";
+    sha256 = "17b24fsr8abipq09hipnh6cd4h2aiwyzyjhg0wpplngwals54qmc";
   };
 
   buildInputs = [ 
diff --git a/pkgs/servers/monitoring/net-snmp/default.nix b/pkgs/servers/monitoring/net-snmp/default.nix
index ad44860e7bd8..30317d25cff7 100644
--- a/pkgs/servers/monitoring/net-snmp/default.nix
+++ b/pkgs/servers/monitoring/net-snmp/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, autoreconfHook, file, openssl, perl }:
+{ stdenv, fetchurl, autoreconfHook, file, openssl, perl, unzip }:
 
 stdenv.mkDerivation rec {
-  name = "net-snmp-5.7.2";
+  name = "net-snmp-5.7.2.1";
 
   src = fetchurl {
-    url = "mirror://sourceforge/net-snmp/${name}.tar.gz";
-    sha256 = "05mqrv22c65405d6v91cqf4hvczkkvvyy5lsxw8h8g0zrjs33v89";
+    url = "mirror://sourceforge/net-snmp/${name}.zip";
+    sha256 = "1nj3b2x4fhsh82nra99128vqp2lfw5wx91ka8nqwzxvik59hb4dc";
   };
 
   preConfigure =
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
       "--with-persistent-directory=/var/lib/net-snmp"
     ];
 
-  buildInputs = [ autoreconfHook file openssl perl ];
+  buildInputs = [ autoreconfHook file openssl perl unzip ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/servers/monitoring/seyren/default.nix b/pkgs/servers/monitoring/seyren/default.nix
new file mode 100644
index 000000000000..541c377c4049
--- /dev/null
+++ b/pkgs/servers/monitoring/seyren/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, makeWrapper, jre }:
+
+stdenv.mkDerivation rec {
+  name = "seyren-${version}";
+  version = "1.0.0";
+
+  src = fetchurl {
+    url = "https://github.com/scobal/seyren/releases/download/${version}/seyren-${version}.jar";
+    sha256 = "14p97yzfyacvavfms8qs3q5515vpfkjlfvislbwrf7qa89xzz8x0";
+  };
+
+  phases = ["installPhase"];
+
+  buildInputs = [ makeWrapper jre src ];
+
+  installPhase = ''
+    ensureDir "$out"/bin
+    makeWrapper "${jre}/bin/java" "$out"/bin/seyren --add-flags "-jar $src"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An alerting dashboard for Graphite";
+    homepage = https://github.com/scobal/seyren;
+    license = licenses.asl20;
+    maintainers = [ maintainers.offline ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/servers/news/leafnode/default.nix b/pkgs/servers/news/leafnode/default.nix
new file mode 100644
index 000000000000..9da83fe891fe
--- /dev/null
+++ b/pkgs/servers/news/leafnode/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pcre }:
+
+stdenv.mkDerivation rec {
+  name = "leafnode-2.0.0.alpha20121101a.12";
+
+  src = fetchurl {
+    url = "http://home.pages.de/~mandree/leafnode/beta/leafnode-2.0.0.alpha20121101a.tar.bz2";
+    sha256 = "096w4gxj08m3vwmyv4sxpmbl8dn6mzqfmrhc32jgyca6qzlrdin8";
+  };
+
+  configureFlags = "--enable-runas-user=nobody";
+
+  postConfigure = ''
+      # The is_validfqdn is far too restrictive, and only allows
+      # Internet-facing servers to run.  In order to run leafnode via
+      # localhost only, we need to disable this check.
+      sed -i validatefqdn.c -e 's/int is_validfqdn(const char \*f) {/int is_validfqdn(const char *f) { return 1;/;'
+  '';
+
+  buildInputs = [ pcre];
+
+  meta = {
+    homepage = "http://leafnode.sourceforge.net/";
+    description = "Leafnode implements a store & forward NNTP proxy";
+    license = "X11";
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/servers/nosql/mongodb/default.nix b/pkgs/servers/nosql/mongodb/default.nix
index 6956271e992c..a5a021b93545 100644
--- a/pkgs/servers/nosql/mongodb/default.nix
+++ b/pkgs/servers/nosql/mongodb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, scons, boost, v8, gperftools, pcre, snappy }:
+{ stdenv, fetchurl, scons, boost, v8_3_14, gperftools, pcre, snappy }:
 
 let version = "2.4.8"; in stdenv.mkDerivation rec {
   name = "mongodb-${version}";
@@ -8,7 +8,7 @@ let version = "2.4.8"; in stdenv.mkDerivation rec {
     sha256 = "1p6gnharypglfp39halp72fig96fqjhakyy7m76a1prxwpjkqw7x";
   };
 
-  nativeBuildInputs = [ scons boost v8 gperftools pcre snappy ];
+  nativeBuildInputs = [ scons boost v8_3_14 gperftools pcre snappy ];
 
   postPatch = ''
     substituteInPlace SConstruct \
diff --git a/pkgs/servers/nosql/rethinkdb/default.nix b/pkgs/servers/nosql/rethinkdb/default.nix
index e81ccb396322..ec1dbd763646 100644
--- a/pkgs/servers/nosql/rethinkdb/default.nix
+++ b/pkgs/servers/nosql/rethinkdb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, which, protobuf, v8, ncurses, gperftools, boost, m4 }:
+{ stdenv, fetchurl, which, protobuf, v8_3_14, ncurses, gperftools, boost, m4 }:
 
 stdenv.mkDerivation rec {
   name = "rethinkdb-1.11.2";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = "--lib-path ${gperftools}/lib";
 
-  buildInputs = [ protobuf v8 ncurses boost ];
+  buildInputs = [ protobuf v8_3_14 ncurses boost ];
 
   nativeBuildInputs = [ which m4 ];
 
diff --git a/pkgs/servers/openafs-client/default.nix b/pkgs/servers/openafs-client/default.nix
index ba0b80fc61e8..47c8c12edef6 100644
--- a/pkgs/servers/openafs-client/default.nix
+++ b/pkgs/servers/openafs-client/default.nix
@@ -4,11 +4,11 @@
 assert stdenv.isLinux;
 
 stdenv.mkDerivation {
-  name = "openafs-1.6.1-${kernel.version}";
+  name = "openafs-1.6.6-${kernel.version}";
 
   src = fetchurl {
-    url = http://www.openafs.org/dl/openafs/1.6.1/openafs-1.6.1-src.tar.bz2;
-    sha256 = "1c7mid0dwl2x0sikr70bi5cs881y6pa4dfwkdmr3jscvx3wgfpnh";
+    url = http://www.openafs.org/dl/openafs/1.6.6/openafs-1.6.6-src.tar.bz2;
+    sha256 = "0xfa64hvz0avp89zgz8ksmp24s6ns0z3103m4mspshhhdlikypk3";
   };
 
   buildInputs = [ autoconf automake flex yacc ncurses perl which ];
@@ -41,6 +41,5 @@ stdenv.mkDerivation {
     license = stdenv.lib.licenses.ipl10;
     platforms = stdenv.lib.platforms.linux;
     maintainers = stdenv.lib.maintainers.z77z;
-    broken = true;
   };
 }
diff --git a/pkgs/servers/rippled/default.nix b/pkgs/servers/rippled/default.nix
new file mode 100644
index 000000000000..66a0743b367f
--- /dev/null
+++ b/pkgs/servers/rippled/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, scons, pkgconfig, openssl, protobuf, boost155, zlib}:
+
+stdenv.mkDerivation rec {
+  name = "rippled-${version}";
+  version = "0.23.0";
+
+  src = fetchurl {
+    url = "https://github.com/ripple/rippled/archive/${version}.tar.gz";
+    sha256 = "0js734sk11jn19fyp403mk6p62azlc6s9kyhr5jfg466fiak537p";
+  };
+
+  patches = [ ./scons-env.patch ];
+
+  buildInputs = [ scons pkgconfig openssl protobuf boost155 zlib ];
+
+  RIPPLED_BOOST_HOME = boost155.out;
+  RIPPLED_ZLIB_HOME = zlib.out;
+  buildPhase = "scons build/rippled";
+
+  installPhase = ''
+    mkdir -p $out/bin    
+    cp build/rippled $out/bin/
+  '';
+
+  meta = {
+    description = "Ripple P2P payment network reference server";
+    homepage = "https://ripple.com";
+    maintainers = stdenv.lib.maintainers.emery;
+    license = stdenv.lib.licenses.isc;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/servers/rippled/scons-env.patch b/pkgs/servers/rippled/scons-env.patch
new file mode 100644
index 000000000000..5b80e77bb2e0
--- /dev/null
+++ b/pkgs/servers/rippled/scons-env.patch
@@ -0,0 +1,46 @@
+diff --git a/SConstruct b/SConstruct
+index 8ba8bbd..95eab3b 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -24,6 +24,8 @@ USING_CLANG = OSX or os.environ.get('CC', None) == 'clang'
+ #
+ BOOST_HOME = os.environ.get("RIPPLED_BOOST_HOME", None)
+ 
++ZLIB_HOME = os.environ.get("RIPPLED_ZLIB_HOME", None)
++
+ 
+ if OSX or Ubuntu or Debian or Archlinux:
+     CTAGS = 'ctags'
+@@ -36,7 +38,7 @@ else:
+ # scons tools
+ #
+ 
+-HONOR_ENVS = ['CC', 'CXX', 'PATH']
++HONOR_ENVS = ['CC', 'CXX', 'PATH', 'PKG_CONFIG_PATH']
+ 
+ env = Environment(
+     tools = ['default', 'protoc'],
+@@ -156,8 +158,8 @@ INCLUDE_PATHS = [
+     'build/proto'
+     ]
+ 
+-# if BOOST_HOME:
+-#     INCLUDE_PATHS.append(BOOST_HOME)
++if BOOST_HOME:
++    INCLUDE_PATHS.append("%s/include" % BOOST_HOME)
+ 
+ #-------------------------------------------------------------------------------
+ #
+@@ -261,7 +263,11 @@ env.Append(
+ # such, as installed into `/usr/lib/`
+ if BOOST_HOME is not None:
+     env.Prepend(
+-        LIBPATH = ["%s/stage/lib" % BOOST_HOME])
++        LIBPATH = ["%s/lib" % BOOST_HOME])
++
++if ZLIB_HOME is not None:
++    env.Prepend(
++        LIBPATH = ["%s/lib" % ZLIB_HOME])
+ 
+ if not OSX:
+     env.Append(LINKFLAGS = [
diff --git a/pkgs/servers/search/elasticsearch/default.nix b/pkgs/servers/search/elasticsearch/default.nix
index 165a01517b43..c6939ce5f7a4 100644
--- a/pkgs/servers/search/elasticsearch/default.nix
+++ b/pkgs/servers/search/elasticsearch/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, makeWrapper, jre, utillinux }:
 stdenv.mkDerivation rec {
-  name = "elasticsearch-1.0.0";
+  name = "elasticsearch-1.0.1";
 
   src = fetchurl {
     url = "https://download.elasticsearch.org/elasticsearch/elasticsearch/${name}.tar.gz";
-    sha256 = "06ym7hl47339a5dav2hawnxv820y0lbvh9xxd0lfp1f815vbql01";
+    sha256 = "0nwv7llw7gk94alfcpxxy0lybhnw7fggv30v7ylsxn20id9g7kba";
   };
 
   patches = [ ./es-home.patch ];
diff --git a/pkgs/servers/shellinabox/default.nix b/pkgs/servers/shellinabox/default.nix
index 49d7810a3c20..acff3a84a31e 100644
--- a/pkgs/servers/shellinabox/default.nix
+++ b/pkgs/servers/shellinabox/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pam, openssl, openssh }:
+{ stdenv, fetchurl, pam, openssl, openssh, shadow }:
 
 stdenv.mkDerivation {
   name = "shellinabox-2.14";
@@ -7,12 +7,17 @@ stdenv.mkDerivation {
     url = "https://shellinabox.googlecode.com/files/shellinabox-2.14.tar.gz";
     sha1 = "9e01f58c68cb53211b83d0f02e676e0d50deb781";
   };
+
   buildInputs = [pam openssl openssh];
 
+  patches = [ ./shellinabox-minus.patch ];
+
   # Disable GSSAPIAuthentication errors as well as correct hardcoded path. Take /usr/games's place. 
   preConfigure = ''
     substituteInPlace ./shellinabox/service.c --replace "-oGSSAPIAuthentication=no" ""
     substituteInPlace ./shellinabox/launcher.c --replace "/usr/games" "${openssh}/bin"
+    substituteInPlace ./shellinabox/service.c --replace "/bin/login" "${shadow}/bin/login"
+    substituteInPlace ./shellinabox/launcher.c --replace "/bin/login" "${shadow}/bin/login"
     '';
   meta = {
     homepage = https://code.google.com/p/shellinabox;
diff --git a/pkgs/servers/shellinabox/shellinabox-minus.patch b/pkgs/servers/shellinabox/shellinabox-minus.patch
new file mode 100644
index 000000000000..2e30bd9c8aa1
--- /dev/null
+++ b/pkgs/servers/shellinabox/shellinabox-minus.patch
@@ -0,0 +1,28 @@
+diff -ru shellinabox-2.14/shellinabox/vt100.js shellinabox-2.14.new/shellinabox/vt100.js
+--- shellinabox-2.14/shellinabox/vt100.js	2012-04-21 21:30:44.000000000 +0400
++++ shellinabox-2.14.new/shellinabox/vt100.js	2014-03-27 16:33:31.012344164 +0400
+@@ -2676,6 +2676,7 @@
+       switch (key) {
+       case  33: /* Page Up      */ this.scrollBack();                   return;
+       case  34: /* Page Down    */ this.scrollFore();                   return;
++      case 173: /* _            */ ch = this.applyModifiers(95, event); break;
+       default:                                                          break;
+       }
+     }
+@@ -2738,6 +2739,7 @@
+       case 123: /* F12          */ ch = '\u001B[24~';                   break;
+       case 144: /* Num Lock     */                                      return;
+       case 145: /* Scroll Lock  */                                      return;
++      case 173: /* -            */ ch = this.applyModifiers(45, event); break;
+       case 186: /* ;            */ ch = this.applyModifiers(59, event); break;
+       case 187: /* =            */ ch = this.applyModifiers(61, event); break;
+       case 188: /* ,            */ ch = this.applyModifiers(44, event); break;
+@@ -2882,6 +2884,7 @@
+     case 109: /* - -> _ */ u = 45; s =  95; break;
+     case 111: /* / -> ? */ u = 47; s =  63; break;
+ 
++    case 173: /* - -> _ */ u = 45; s =  95; break;
+     case 186: /* ; -> : */ u = 59; s =  58; break;
+     case 187: /* = -> + */ u = 61; s =  43; break;
+     case 188: /* , -> < */ u = 44; s =  60; break;
+
diff --git a/pkgs/servers/shishi/default.nix b/pkgs/servers/shishi/default.nix
index a5d31ca354d0..2e0a4e84f6c7 100644
--- a/pkgs/servers/shishi/default.nix
+++ b/pkgs/servers/shishi/default.nix
@@ -1,15 +1,13 @@
 { fetchurl, stdenv, libtasn1, libgcrypt, gnutls }:
 
 stdenv.mkDerivation rec {
-  name = "shishi-1.0.1";
+  name = "shishi-1.0.2";
 
   src = fetchurl {
     url = "mirror://gnu/shishi/${name}.tar.gz";
-    sha256 = "13c6w9rpaqb3am65nrn86byvmll5r78pld2vb0i68491vww4fzlx";
+    sha256 = "032qf72cpjdfffq1yq54gz3ahgqf2ijca4vl31sfabmjzq9q370d";
   };
 
-  patches = [ ./no-gets.patch ];
-
   buildInputs = [ libtasn1 libgcrypt gnutls ] ;
 
   NIX_CFLAGS_COMPILE
diff --git a/pkgs/servers/shishi/no-gets.patch b/pkgs/servers/shishi/no-gets.patch
deleted file mode 100644
index 12137204f455..000000000000
--- a/pkgs/servers/shishi/no-gets.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/gl/stdio.in.h b/gl/stdio.in.h
-index 06d9780..fa04a10 100644
---- a/gl/stdio.in.h
-+++ b/gl/stdio.in.h
-@@ -713,10 +713,13 @@ _GL_CXXALIAS_SYS (gets, char *, (char *s));
- # endif
- _GL_CXXALIASWARN (gets);
- /* It is very rare that the developer ever has full control of stdin,
--   so any use of gets warrants an unconditional warning.  Assume it is
--   always declared, since it is required by C89.  */
-+   so any use of gets warrants an unconditional warning; besides C11
-+   removed it.  */
-+#ifdef gets
-+#undef gets
- _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
- #endif
-+#endif
- 
- 
- #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index db6797a8d687..a6105c128906 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, cmake, ncurses, openssl, bison, boost, libxml2, libaio, judy, libevent, groff }:
 
 stdenv.mkDerivation rec {
-  name = "mariadb-10.0.8";
+  name = "mariadb-10.0.10";
 
   src = fetchurl {
-    url = "http://tweedo.com/mirror/mariadb/${name}/kvm-tarbake-jaunty-x86/${name}.tar.gz";
-    md5 = "2b925d0beae8101f1f3f98102da91bf7";
+    url = "https://fossies.org/linux/misc/${name}.tar.gz";
+    md5 = "14ce22b8197d4eae88d237776d47220f";
   };
 
   buildInputs = [ cmake ncurses openssl bison boost libxml2 libaio judy libevent groff ];
diff --git a/pkgs/servers/sql/mysql/5.5.x.nix b/pkgs/servers/sql/mysql/5.5.x.nix
index e8da8a48d65f..782019f8ee06 100644
--- a/pkgs/servers/sql/mysql/5.5.x.nix
+++ b/pkgs/servers/sql/mysql/5.5.x.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "mysql-${version}";
-  version = "5.5.34";
+  version = "5.5.37";
 
   src = fetchurl {
     url = "http://cdn.mysql.com/Downloads/MySQL-5.5/${name}.tar.gz";
-    md5 = "930970a42d51e48599deb7fe01778a4a";
+    md5 = "bf1d80c66d4822ec6036300399a33c03";
   };
 
   buildInputs = [ cmake bison ncurses openssl readline zlib ]
diff --git a/pkgs/servers/sql/postgresql/9.3.x.nix b/pkgs/servers/sql/postgresql/9.3.x.nix
index 3b5c820c94d1..672eeb8da6e1 100644
--- a/pkgs/servers/sql/postgresql/9.3.x.nix
+++ b/pkgs/servers/sql/postgresql/9.3.x.nix
@@ -1,5 +1,7 @@
 { stdenv, fetchurl, zlib, readline, libossp_uuid }:
 
+with stdenv.lib;
+
 let version = "9.3.3"; in
 
 stdenv.mkDerivation rec {
@@ -10,13 +12,13 @@ stdenv.mkDerivation rec {
     sha256 = "e925d8abe7157bd8bece6b7c0dd0c343d87a2b4336f85f4681ce596af99c3879";
   };
 
-  buildInputs = [ zlib readline libossp_uuid ];
+  buildInputs = [ zlib readline ] ++ optionals (!stdenv.isDarwin) [ libossp_uuid ];
 
   enableParallelBuilding = true;
 
   makeFlags = [ "world" ];
 
-  configureFlags =
+  configureFlags = optional (!stdenv.isDarwin)
     ''
       --with-ossp-uuid
     '';
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index beca7414c363..0ec14c8d62cd 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -20,11 +20,11 @@ let
   })) // {inherit ;};
 
   bdftopcf = (stdenv.mkDerivation ((if overrides ? bdftopcf then overrides.bdftopcf else x: x) {
-    name = "bdftopcf-1.0.3";
+    name = "bdftopcf-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/bdftopcf-1.0.3.tar.bz2;
-      sha256 = "02hx981f7jfwylxj21s91yvv4h597nqqzz3vd6ar81zyn84b944w";
+      url = mirror://xorg/individual/app/bdftopcf-1.0.4.tar.bz2;
+      sha256 = "1617zmgnx50n7vxlqyj84fl7vnk813jjqmi6jpigyz1xp9br1xga";
     };
     buildInputs = [pkgconfig libXfont ];
   })) // {inherit libXfont ;};
@@ -489,32 +489,42 @@ let
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
 
+  glamoregl = (stdenv.mkDerivation ((if overrides ? glamoregl then overrides.glamoregl else x: x) {
+    name = "glamor-egl-0.6.0";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = mirror://xorg/individual/driver/glamor-egl-0.6.0.tar.bz2;
+      sha256 = "1jg5clihklb9drh1jd7nhhdsszla6nv7xmbvm8yvakh5wrb1nlv6";
+    };
+    buildInputs = [pkgconfig dri2proto xorgserver ];
+  })) // {inherit dri2proto xorgserver ;};
+
   glproto = (stdenv.mkDerivation ((if overrides ? glproto then overrides.glproto else x: x) {
-    name = "glproto-1.4.16";
+    name = "glproto-1.4.17";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/proto/glproto-1.4.16.tar.bz2;
-      sha256 = "13arnb4bz5pn89bxbh3shr8gihkhyznpjnq3zzr05msygwx6dpal";
+      url = mirror://xorg/individual/proto/glproto-1.4.17.tar.bz2;
+      sha256 = "0h5ykmcddwid5qj6sbrszgkcypwn3mslvswxpgy2n2iixnyr9amd";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
 
   iceauth = (stdenv.mkDerivation ((if overrides ? iceauth then overrides.iceauth else x: x) {
-    name = "iceauth-1.0.5";
+    name = "iceauth-1.0.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/iceauth-1.0.5.tar.bz2;
-      sha256 = "1aq6v671s2x5rc6zn0rgxb4wddg4vq94mckw3cpwl7ccrjjvd5hl";
+      url = mirror://xorg/individual/app/iceauth-1.0.6.tar.bz2;
+      sha256 = "1x72y99dxf2fxnlyf0yrf9yzd8xzimxshy6l8mprwhrv6lvhi6dx";
     };
     buildInputs = [pkgconfig libICE xproto ];
   })) // {inherit libICE xproto ;};
 
   imake = (stdenv.mkDerivation ((if overrides ? imake then overrides.imake else x: x) {
-    name = "imake-1.0.5";
+    name = "imake-1.0.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/util/imake-1.0.5.tar.bz2;
-      sha256 = "1h8ww97aymm10l9qn21n1b9x5ypjrqr10qpf48jjcbc9fg77gklr";
+      url = mirror://xorg/individual/util/imake-1.0.6.tar.bz2;
+      sha256 = "1786k6jsazpr37v2b6qlsznjjp5lgyb869hx5m4ahax7n3yq72gs";
     };
     buildInputs = [pkgconfig xproto ];
   })) // {inherit xproto ;};
@@ -550,11 +560,11 @@ let
   })) // {inherit applewmproto libX11 libXext xextproto ;};
 
   libFS = (stdenv.mkDerivation ((if overrides ? libFS then overrides.libFS else x: x) {
-    name = "libFS-1.0.5";
+    name = "libFS-1.0.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libFS-1.0.5.tar.bz2;
-      sha256 = "01v1z6hy702pcxz89kqb84w9gjjrvnjqsxc2zzvswlw0vl2k1sr2";
+      url = mirror://xorg/individual/lib/libFS-1.0.6.tar.bz2;
+      sha256 = "1mxfsvj9m3pn8cdkcn4kg190zp665mf4pv0083g6xykvsgxzq1wh";
     };
     buildInputs = [pkgconfig fontsproto xproto xtrans ];
   })) // {inherit fontsproto xproto xtrans ;};
@@ -570,11 +580,11 @@ let
   })) // {inherit xproto xtrans ;};
 
   libSM = (stdenv.mkDerivation ((if overrides ? libSM then overrides.libSM else x: x) {
-    name = "libSM-1.2.1";
+    name = "libSM-1.2.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libSM-1.2.1.tar.bz2;
-      sha256 = "07bzi6xwlhq36f60qfspjbz0qjj7zcgayi1vp4ihgx34kib1vhck";
+      url = mirror://xorg/individual/lib/libSM-1.2.2.tar.bz2;
+      sha256 = "1gc7wavgs435g9qkp9jw4lhmaiq6ip9llv49f054ad6ryp4sib0b";
     };
     buildInputs = [pkgconfig libICE libuuid xproto xtrans ];
   })) // {inherit libICE libuuid xproto xtrans ;};
@@ -590,11 +600,11 @@ let
   })) // {inherit windowswmproto libX11 libXext xextproto ;};
 
   libX11 = (stdenv.mkDerivation ((if overrides ? libX11 then overrides.libX11 else x: x) {
-    name = "libX11-1.6.1";
+    name = "libX11-1.6.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libX11-1.6.1.tar.bz2;
-      sha256 = "14hqf180dxax3xf65bq95psd4bx8az1q1l6lxsjzbd2qdg0lz98h";
+      url = mirror://xorg/individual/lib/libX11-1.6.2.tar.bz2;
+      sha256 = "05mx0s0vqzds3qjc1gmjr2s6x2ll37z4lfhgm7p2w7936zl2g81a";
     };
     buildInputs = [pkgconfig inputproto kbproto libxcb xextproto xf86bigfontproto xproto xtrans ];
   })) // {inherit inputproto kbproto libxcb xextproto xf86bigfontproto xproto xtrans ;};
@@ -610,31 +620,31 @@ let
   })) // {inherit scrnsaverproto libX11 libXext xextproto ;};
 
   libXau = (stdenv.mkDerivation ((if overrides ? libXau then overrides.libXau else x: x) {
-    name = "libXau-1.0.7";
+    name = "libXau-1.0.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXau-1.0.7.tar.bz2;
-      sha256 = "12d4f7sdv2pjxhk0lcay0pahccddszkw579dc59daqi37r8bllvi";
+      url = mirror://xorg/individual/lib/libXau-1.0.8.tar.bz2;
+      sha256 = "1wm4pv12f36cwzhldpp7vy3lhm3xdcnp4f184xkxsp7b18r7gm7x";
     };
     buildInputs = [pkgconfig xproto ];
   })) // {inherit xproto ;};
 
   libXaw = (stdenv.mkDerivation ((if overrides ? libXaw then overrides.libXaw else x: x) {
-    name = "libXaw-1.0.11";
+    name = "libXaw-1.0.12";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXaw-1.0.11.tar.bz2;
-      sha256 = "14ll7ndf5njc30hz2w197qvwp7fqj7y14wq4p1cyxlbipfn79a47";
+      url = mirror://xorg/individual/lib/libXaw-1.0.12.tar.bz2;
+      sha256 = "1xnv7jy86j9vhmw74frkzcraynqbw1p1s79jasargsgwfi433z4n";
     };
     buildInputs = [pkgconfig libX11 libXext xextproto libXmu libXpm xproto libXt ];
   })) // {inherit libX11 libXext xextproto libXmu libXpm xproto libXt ;};
 
   libXcomposite = (stdenv.mkDerivation ((if overrides ? libXcomposite then overrides.libXcomposite else x: x) {
-    name = "libXcomposite-0.4.3";
+    name = "libXcomposite-0.4.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXcomposite-0.4.3.tar.bz2;
-      sha256 = "1b8sniijb85v4my6v30ma9yqnwl4hkclci9l1hqxnipfyhl4sa9j";
+      url = mirror://xorg/individual/lib/libXcomposite-0.4.4.tar.bz2;
+      sha256 = "0y21nfpa5s8qmx0srdlilyndas3sgl0c6rc26d5fx2vx436m1qpd";
     };
     buildInputs = [pkgconfig compositeproto libX11 libXfixes xproto ];
   })) // {inherit compositeproto libX11 libXfixes xproto ;};
@@ -650,11 +660,11 @@ let
   })) // {inherit fixesproto libX11 libXfixes xproto libXrender ;};
 
   libXdamage = (stdenv.mkDerivation ((if overrides ? libXdamage then overrides.libXdamage else x: x) {
-    name = "libXdamage-1.1.3";
+    name = "libXdamage-1.1.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXdamage-1.1.3.tar.bz2;
-      sha256 = "1a678bwap74sqczbr2z4y4fvbr35km3inkm8bi1igjyk4v46jqdw";
+      url = mirror://xorg/individual/lib/libXdamage-1.1.4.tar.bz2;
+      sha256 = "1bamagq7g6s0d23l8rb3nppj8ifqj05f7z9bhbs4fdg8az3ffgvw";
     };
     buildInputs = [pkgconfig damageproto fixesproto libX11 xextproto libXfixes xproto ];
   })) // {inherit damageproto fixesproto libX11 xextproto libXfixes xproto ;};
@@ -730,11 +740,11 @@ let
   })) // {inherit libX11 libXext xextproto xineramaproto ;};
 
   libXmu = (stdenv.mkDerivation ((if overrides ? libXmu then overrides.libXmu else x: x) {
-    name = "libXmu-1.1.1";
+    name = "libXmu-1.1.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXmu-1.1.1.tar.bz2;
-      sha256 = "1pbym8rrznxqd60zwf7w4xpf27sa72bky2knginqcfnca32q343h";
+      url = mirror://xorg/individual/lib/libXmu-1.1.2.tar.bz2;
+      sha256 = "02wx6jw7i0q5qwx87yf94fsn3h0xpz1k7dz1nkwfwm1j71ydqvkm";
     };
     buildInputs = [pkgconfig libX11 libXext xextproto xproto libXt ];
   })) // {inherit libX11 libXext xextproto xproto libXt ;};
@@ -750,21 +760,21 @@ let
   })) // {inherit printproto libX11 libXau libXext xextproto ;};
 
   libXpm = (stdenv.mkDerivation ((if overrides ? libXpm then overrides.libXpm else x: x) {
-    name = "libXpm-3.5.10";
+    name = "libXpm-3.5.11";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXpm-3.5.10.tar.bz2;
-      sha256 = "0dd737ch4q9gr151wff1m3q2j7wf3pip4y81601xdrsh8wipxnx6";
+      url = mirror://xorg/individual/lib/libXpm-3.5.11.tar.bz2;
+      sha256 = "07041q4k8m4nirzl7lrqn8by2zylx0xvh6n0za301qqs3njszgf5";
     };
     buildInputs = [pkgconfig libX11 libXext xextproto xproto libXt ];
   })) // {inherit libX11 libXext xextproto xproto libXt ;};
 
   libXrandr = (stdenv.mkDerivation ((if overrides ? libXrandr then overrides.libXrandr else x: x) {
-    name = "libXrandr-1.4.1";
+    name = "libXrandr-1.4.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libXrandr-1.4.1.tar.bz2;
-      sha256 = "01dr1wvyxq2y4yq4hilgglkjlvn551dmnl4l65nfm8nh1x4s056r";
+      url = mirror://xorg/individual/lib/libXrandr-1.4.2.tar.bz2;
+      sha256 = "1b95p3l84ppv6j7dbbmg0zrz6k8xdwvnag1l6ajm3gk9qwdb79ya";
     };
     buildInputs = [pkgconfig randrproto renderproto libX11 libXext xextproto xproto libXrender ];
   })) // {inherit randrproto renderproto libX11 libXext xextproto xproto libXrender ;};
@@ -810,11 +820,11 @@ let
   })) // {inherit inputproto recordproto libX11 libXext xextproto libXi ;};
 
   libXv = (stdenv.mkDerivation ((if overrides ? libXv then overrides.libXv else x: x) {
-    name = "libXv-1.0.8";
+    name = "libXv-1.0.10";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libXv-1.0.8.tar.bz2;
-      sha256 = "1mvkmypf9rsr3lr161hf9sjadlirb116jfp5lk70j29r8x9yn02g";
+      url = mirror://xorg/individual/lib/libXv-1.0.10.tar.bz2;
+      sha256 = "09a5j6bisysiipd0nw6s352565bp0n6gbyhv5hp63s3cd3w95zjm";
     };
     buildInputs = [pkgconfig videoproto libX11 libXext xextproto xproto ];
   })) // {inherit videoproto libX11 libXext xextproto xproto ;};
@@ -870,11 +880,11 @@ let
   })) // {inherit dmxproto libX11 libXext xextproto ;};
 
   libfontenc = (stdenv.mkDerivation ((if overrides ? libfontenc then overrides.libfontenc else x: x) {
-    name = "libfontenc-1.1.1";
+    name = "libfontenc-1.1.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libfontenc-1.1.1.tar.bz2;
-      sha256 = "0zq1483xy31sssq0h3xxf8y1v4q14cp8rv164ayn7fsn30pq2wny";
+      url = mirror://xorg/individual/lib/libfontenc-1.1.2.tar.bz2;
+      sha256 = "0qign0ivqk166l9yfd51gw9lbhgs718bcrmvc40yicjr6gnyz959";
     };
     buildInputs = [pkgconfig xproto zlib ];
   })) // {inherit xproto zlib ;};
@@ -950,11 +960,11 @@ let
   })) // {inherit libfontenc ;};
 
   makedepend = (stdenv.mkDerivation ((if overrides ? makedepend then overrides.makedepend else x: x) {
-    name = "makedepend-1.0.4";
+    name = "makedepend-1.0.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/makedepend-1.0.4.tar.bz2;
-      sha256 = "1zpp2b9dfvlnfj2i1mzdyn785rpl7vih5lap7kcpiv80xspbhmmb";
+      url = mirror://xorg/individual/util/makedepend-1.0.5.tar.bz2;
+      sha256 = "09alw99r6y2bbd1dc786n3jfgv4j520apblyn7cw6jkjydshba7p";
     };
     buildInputs = [pkgconfig xproto ];
   })) // {inherit xproto ;};
@@ -970,11 +980,11 @@ let
   })) // {inherit ;};
 
   mkfontscale = (stdenv.mkDerivation ((if overrides ? mkfontscale then overrides.mkfontscale else x: x) {
-    name = "mkfontscale-1.1.0";
+    name = "mkfontscale-1.1.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/mkfontscale-1.1.0.tar.bz2;
-      sha256 = "1539h3ws66vcql6sf2831bcs0r4d9b05lcgpswkw33lvcxighmff";
+      url = mirror://xorg/individual/app/mkfontscale-1.1.1.tar.bz2;
+      sha256 = "0cdpn1ii2iw1vg2ga4w62acrh78gzgf0vza4g8wx5kkp4jcifh14";
     };
     buildInputs = [pkgconfig libfontenc freetype xproto zlib ];
   })) // {inherit libfontenc freetype xproto zlib ;};
@@ -1050,11 +1060,11 @@ let
   })) // {inherit ;};
 
   sessreg = (stdenv.mkDerivation ((if overrides ? sessreg then overrides.sessreg else x: x) {
-    name = "sessreg-1.0.7";
+    name = "sessreg-1.0.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/sessreg-1.0.7.tar.bz2;
-      sha256 = "0lifgjxdvc6lwyjk90slddnr12fsv88ldy6qhklr5av409cfwd47";
+      url = mirror://xorg/individual/app/sessreg-1.0.8.tar.bz2;
+      sha256 = "1hy4wvgawajf4qw2k51fkcjzxw0drx60ydzpmqhj7k1g4z3cqahf";
     };
     buildInputs = [pkgconfig xproto ];
   })) // {inherit xproto ;};
@@ -1080,31 +1090,31 @@ let
   })) // {inherit libICE libSM libXmu libXt ;};
 
   twm = (stdenv.mkDerivation ((if overrides ? twm then overrides.twm else x: x) {
-    name = "twm-1.0.7";
+    name = "twm-1.0.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/twm-1.0.7.tar.bz2;
-      sha256 = "0i6dbf5vafi5hm4bcmnj6r412cncjlv9hkkbr6bzlh15qvg56p8g";
+      url = mirror://xorg/individual/app/twm-1.0.8.tar.bz2;
+      sha256 = "0i1ff8h2gh1ab311da5dlhl0nrma0qbrk403ymzi4cnnacikaq3n";
     };
     buildInputs = [pkgconfig libICE libSM libX11 libXext libXmu xproto libXt ];
   })) // {inherit libICE libSM libX11 libXext libXmu xproto libXt ;};
 
   utilmacros = (stdenv.mkDerivation ((if overrides ? utilmacros then overrides.utilmacros else x: x) {
-    name = "util-macros-1.17";
+    name = "util-macros-1.19.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/util-macros-1.17.tar.bz2;
-      sha256 = "1vbmrcn5n3wp4pyw0n4c3pyvzlc4yf7jzgngavfdq5zwfbgfsybx";
+      url = mirror://xorg/individual/util/util-macros-1.19.0.tar.bz2;
+      sha256 = "1fnhpryf55l0yqajxn0cxan3kvsjzi67nlanz8clwqzf54cb2d98";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
 
   videoproto = (stdenv.mkDerivation ((if overrides ? videoproto then overrides.videoproto else x: x) {
-    name = "videoproto-2.3.1";
+    name = "videoproto-2.3.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/videoproto-2.3.1.tar.bz2;
-      sha256 = "0nk3i6gwkqq1w8zwn7bxz344pi1dwcjrmf6hr330h7hxjcj6viry";
+      url = mirror://xorg/individual/proto/videoproto-2.3.2.tar.bz2;
+      sha256 = "1dnlkd9nb0m135lgd6hd61vc29sdyarsyya8aqpx7z10p261dbld";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
@@ -1130,21 +1140,21 @@ let
   })) // {inherit libX11 libXext libXft libXmu libXrender ;};
 
   xauth = (stdenv.mkDerivation ((if overrides ? xauth then overrides.xauth else x: x) {
-    name = "xauth-1.0.7";
+    name = "xauth-1.0.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xauth-1.0.7.tar.bz2;
-      sha256 = "1382wdfiakgckbw1xxavzh1nm34q21b1zzy96qp7ws66xc48rxw4";
+      url = mirror://xorg/individual/app/xauth-1.0.8.tar.bz2;
+      sha256 = "1xylgy7qrf8w76gg1sa6x8ckv14q1nv0h554ndgrss8clpknlsd8";
     };
-    buildInputs = [pkgconfig libX11 libXau libXext libXmu ];
-  })) // {inherit libX11 libXau libXext libXmu ;};
+    buildInputs = [pkgconfig libX11 libXau libXext libXmu xproto ];
+  })) // {inherit libX11 libXau libXext libXmu xproto ;};
 
   xbacklight = (stdenv.mkDerivation ((if overrides ? xbacklight then overrides.xbacklight else x: x) {
-    name = "xbacklight-1.2.0";
+    name = "xbacklight-1.2.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xbacklight-1.2.0.tar.bz2;
-      sha256 = "199n9qszjiz82nbjz6ychh0xl15igm535mv0830wk4m59w9xclji";
+      url = mirror://xorg/individual/app/xbacklight-1.2.1.tar.bz2;
+      sha256 = "0arnd1j8vzhzmw72mqhjjcb2qwcbs9qphsy3ps593ajyld8wzxhp";
     };
     buildInputs = [pkgconfig libxcb xcbutil ];
   })) // {inherit libxcb xcbutil ;};
@@ -1220,14 +1230,14 @@ let
   })) // {inherit gperf m4 libxcb xproto ;};
 
   xclock = (stdenv.mkDerivation ((if overrides ? xclock then overrides.xclock else x: x) {
-    name = "xclock-1.0.6";
+    name = "xclock-1.0.7";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xclock-1.0.6.tar.bz2;
-      sha256 = "1l1zxr69p0734fnx9rdqw79ahr273hr050sm8xdc0n51n1bnzfr1";
+      url = mirror://xorg/individual/app/xclock-1.0.7.tar.bz2;
+      sha256 = "1l3xv4bsca6bwxx73jyjz0blav86i7vwffkhdb1ac81y9slyrki3";
     };
-    buildInputs = [pkgconfig libX11 libXaw libXft libxkbfile libXmu libXrender libXt ];
-  })) // {inherit libX11 libXaw libXft libxkbfile libXmu libXrender libXt ;};
+    buildInputs = [pkgconfig libX11 libXaw libXft libxkbfile libXmu xproto libXrender libXt ];
+  })) // {inherit libX11 libXaw libXft libxkbfile libXmu xproto libXrender libXt ;};
 
   xcmiscproto = (stdenv.mkDerivation ((if overrides ? xcmiscproto then overrides.xcmiscproto else x: x) {
     name = "xcmiscproto-1.2.2";
@@ -1260,11 +1270,11 @@ let
   })) // {inherit libpng libX11 libXcursor ;};
 
   xcursorthemes = (stdenv.mkDerivation ((if overrides ? xcursorthemes then overrides.xcursorthemes else x: x) {
-    name = "xcursor-themes-1.0.3";
+    name = "xcursor-themes-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xcursor-themes-1.0.3.tar.bz2;
-      sha256 = "1is4bak0qkkhv63mfa5l7492r475586y52yzfxyv3psppn662ilr";
+      url = mirror://xorg/individual/data/xcursor-themes-1.0.4.tar.bz2;
+      sha256 = "11mv661nj1p22sqkv87ryj2lcx4m68a04b0rs6iqh3fzp42jrzg3";
     };
     buildInputs = [pkgconfig libXcursor ];
   })) // {inherit libXcursor ;};
@@ -1280,14 +1290,14 @@ let
   })) // {inherit libX11 libXau libXaw libXdmcp libXext libXft libXinerama libXmu libXpm libXt ;};
 
   xdpyinfo = (stdenv.mkDerivation ((if overrides ? xdpyinfo then overrides.xdpyinfo else x: x) {
-    name = "xdpyinfo-1.3.0";
+    name = "xdpyinfo-1.3.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xdpyinfo-1.3.0.tar.bz2;
-      sha256 = "0gypsvpmay3lsh3b1dg29pjxv95pkrr21d4w6ys02mrbld24kvi3";
+      url = mirror://xorg/individual/app/xdpyinfo-1.3.1.tar.bz2;
+      sha256 = "154b29zlrq33lmni883jgwyrb2kx7z8h52jx1s3ys5x5d582iydf";
     };
-    buildInputs = [pkgconfig libdmx libX11 libxcb libXcomposite libXext libXi libXinerama libXrender libXtst libXxf86dga libXxf86misc libXxf86vm ];
-  })) // {inherit libdmx libX11 libxcb libXcomposite libXext libXi libXinerama libXrender libXtst libXxf86dga libXxf86misc libXxf86vm ;};
+    buildInputs = [pkgconfig libdmx libX11 libxcb libXcomposite libXext libXi libXinerama xproto libXrender libXtst libXxf86dga libXxf86misc libXxf86vm ];
+  })) // {inherit libdmx libX11 libxcb libXcomposite libXext libXi libXinerama xproto libXrender libXtst libXxf86dga libXxf86misc libXxf86vm ;};
 
   xdriinfo = (stdenv.mkDerivation ((if overrides ? xdriinfo then overrides.xdriinfo else x: x) {
     name = "xdriinfo-1.0.4";
@@ -1300,11 +1310,11 @@ let
   })) // {inherit glproto libX11 ;};
 
   xev = (stdenv.mkDerivation ((if overrides ? xev then overrides.xev else x: x) {
-    name = "xev-1.2.0";
+    name = "xev-1.2.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xev-1.2.0.tar.bz2;
-      sha256 = "13xk5z7vy87rnn4574z0jfzymdivyc7pl4axim81sx0pmdysg1ip";
+      url = mirror://xorg/individual/app/xev-1.2.1.tar.bz2;
+      sha256 = "0hv296mysglcgkx6lj1wxc23kshb2kix1a8yqppxj5vz16mpzw8i";
     };
     buildInputs = [pkgconfig libX11 xproto libXrandr ];
   })) // {inherit libX11 xproto libXrandr ;};
@@ -1400,11 +1410,11 @@ let
   })) // {inherit inputproto xorgserver xproto ;};
 
   xf86inputsynaptics = (stdenv.mkDerivation ((if overrides ? xf86inputsynaptics then overrides.xf86inputsynaptics else x: x) {
-    name = "xf86-input-synaptics-1.7.3";
+    name = "xf86-input-synaptics-1.7.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-input-synaptics-1.7.3.tar.bz2;
-      sha256 = "1m9j5shypv3dmxxfxjcmj01glay4gqqlchxqav89a4cn8ch9falb";
+      url = mirror://xorg/individual/driver/xf86-input-synaptics-1.7.4.tar.bz2;
+      sha256 = "1xssjj0qxarzsc4m69ay5ydkwgq27qajzih2c7sjk7nkgggx58jn";
     };
     buildInputs = [pkgconfig inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ];
   })) // {inherit inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ;};
@@ -1460,14 +1470,14 @@ let
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
 
   xf86videoati = (stdenv.mkDerivation ((if overrides ? xf86videoati then overrides.xf86videoati else x: x) {
-    name = "xf86-video-ati-7.2.0";
+    name = "xf86-video-ati-7.3.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-ati-7.2.0.tar.bz2;
-      sha256 = "1i5fknbbhynl5hv2dzznzcf0yadpm28jzvx7xl38vlfpr3ymw3zk";
+      url = mirror://xorg/individual/driver/xf86-video-ati-7.3.0.tar.bz2;
+      sha256 = "1zj6401km2zgc32vhw7jfkaklsllsm9xpbs79zh9da8r94n0fz0h";
     };
-    buildInputs = [pkgconfig fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
-  })) // {inherit fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
+    buildInputs = [pkgconfig fontsproto glamoregl libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
+  })) // {inherit fontsproto glamoregl libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
 
   xf86videocirrus = (stdenv.mkDerivation ((if overrides ? xf86videocirrus then overrides.xf86videocirrus else x: x) {
     name = "xf86-video-cirrus-1.5.2";
@@ -1546,8 +1556,8 @@ let
       url = mirror://xorg/individual/driver/xf86-video-intel-2.21.15.tar.bz2;
       sha256 = "1z6ncmpszmwqi9xr590c4kp4gjjf7mndcr56r35x2bx7h87i8nkx";
     };
-    buildInputs = [pkgconfig dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto xorgserver xproto libXrender libXvMC ];
-  })) // {inherit dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto xorgserver xproto libXrender libXvMC ;};
+    buildInputs = [pkgconfig dri2proto fontsproto glamoregl libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto xorgserver xproto libXrender libXvMC ];
+  })) // {inherit dri2proto fontsproto glamoregl libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto xorgserver xproto libXrender libXvMC ;};
 
   xf86videomach64 = (stdenv.mkDerivation ((if overrides ? xf86videomach64 then overrides.xf86videomach64 else x: x) {
     name = "xf86-video-mach64-6.9.4";
@@ -1569,6 +1579,16 @@ let
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
 
+  xf86videomodesetting = (stdenv.mkDerivation ((if overrides ? xf86videomodesetting then overrides.xf86videomodesetting else x: x) {
+    name = "xf86-video-modesetting-0.8.1";
+    builder = ./builder.sh;
+    src = fetchurl {
+      url = mirror://xorg/individual/driver/xf86-video-modesetting-0.8.1.tar.bz2;
+      sha256 = "1jhjhgji6169sj7489qahcnmi8cf7y22wvj8qsmrg537rgbxia1v";
+    };
+    buildInputs = [pkgconfig fontsproto libdrm udev libpciaccess randrproto libX11 xextproto xorgserver xproto ];
+  })) // {inherit fontsproto libdrm udev libpciaccess randrproto libX11 xextproto xorgserver xproto ;};
+
   xf86videoneomagic = (stdenv.mkDerivation ((if overrides ? xf86videoneomagic then overrides.xf86videoneomagic else x: x) {
     name = "xf86-video-neomagic-1.2.8";
     builder = ./builder.sh;
@@ -1730,11 +1750,11 @@ let
   })) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ;};
 
   xf86videovmware = (stdenv.mkDerivation ((if overrides ? xf86videovmware then overrides.xf86videovmware else x: x) {
-    name = "xf86-video-vmware-13.0.1";
+    name = "xf86-video-vmware-13.0.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-vmware-13.0.1.tar.bz2;
-      sha256 = "0ggyz3yl1ly0p9c9lva5z3892vm033z49py3svd2wh92bi0xlbc0";
+      url = mirror://xorg/individual/driver/xf86-video-vmware-13.0.2.tar.bz2;
+      sha256 = "0m1wfsv34s4pyr5ry87yyjb2p6vmy6vyypdz5jx0sqnkx8n3vfn8";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xineramaproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xineramaproto xorgserver xproto ;};
@@ -1790,14 +1810,14 @@ let
   })) // {inherit libX11 libXxf86vm ;};
 
   xhost = (stdenv.mkDerivation ((if overrides ? xhost then overrides.xhost else x: x) {
-    name = "xhost-1.0.5";
+    name = "xhost-1.0.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xhost-1.0.5.tar.bz2;
-      sha256 = "0l483y6wfrjh37j16b41kpi2nc7ss5rvndafpbaylrs87ygx2w18";
+      url = mirror://xorg/individual/app/xhost-1.0.6.tar.bz2;
+      sha256 = "1hlxm0is9nks1cx033s1733kkib9ivx2bxa3pb9yayqavwibkxd6";
     };
-    buildInputs = [pkgconfig libX11 libXau libXmu ];
-  })) // {inherit libX11 libXau libXmu ;};
+    buildInputs = [pkgconfig libX11 libXau libXmu xproto ];
+  })) // {inherit libX11 libXau libXmu xproto ;};
 
   xineramaproto = (stdenv.mkDerivation ((if overrides ? xineramaproto then overrides.xineramaproto else x: x) {
     name = "xineramaproto-1.2.1";
@@ -1810,21 +1830,21 @@ let
   })) // {inherit ;};
 
   xinit = (stdenv.mkDerivation ((if overrides ? xinit then overrides.xinit else x: x) {
-    name = "xinit-1.3.2";
+    name = "xinit-1.3.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xinit-1.3.2.tar.bz2;
-      sha256 = "0d821rlqwyn2js7bkzicyp894n9gqv1hahxs285pas1zm3d7z1m1";
+      url = mirror://xorg/individual/app/xinit-1.3.3.tar.bz2;
+      sha256 = "1bq0mqy7y305g2rds1g5443f3d2kgxzafqhmiyabbmg3ws6qgckl";
     };
-    buildInputs = [pkgconfig libX11 ];
-  })) // {inherit libX11 ;};
+    buildInputs = [pkgconfig libX11 xproto ];
+  })) // {inherit libX11 xproto ;};
 
   xinput = (stdenv.mkDerivation ((if overrides ? xinput then overrides.xinput else x: x) {
-    name = "xinput-1.6.0";
+    name = "xinput-1.6.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xinput-1.6.0.tar.bz2;
-      sha256 = "0zl4cdgnzh9shz20yn7hz889v4nkbyqwx0nb7dh6arn7abchgc2a";
+      url = mirror://xorg/individual/app/xinput-1.6.1.tar.bz2;
+      sha256 = "07w7zlpdhpwzzshg8q0y152cy3wl2fj7x1897glnp2la487jsqxp";
     };
     buildInputs = [pkgconfig inputproto libX11 libXext libXi libXinerama libXrandr ];
   })) // {inherit inputproto libX11 libXext libXi libXinerama libXrandr ;};
@@ -1850,11 +1870,11 @@ let
   })) // {inherit libX11 libxkbfile ;};
 
   xkbutils = (stdenv.mkDerivation ((if overrides ? xkbutils then overrides.xkbutils else x: x) {
-    name = "xkbutils-1.0.3";
+    name = "xkbutils-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xkbutils-1.0.3.tar.bz2;
-      sha256 = "1ga913pw6chssf2016kjyjl6ar2lj83pa497w97ak2kq603sy2g4";
+      url = mirror://xorg/individual/app/xkbutils-1.0.4.tar.bz2;
+      sha256 = "0c412isxl65wplhl7nsk12vxlri29lk48g3p52hbrs3m0awqm8fj";
     };
     buildInputs = [pkgconfig inputproto libX11 libXaw xproto libXt ];
   })) // {inherit inputproto libX11 libXaw xproto libXt ;};
@@ -1870,14 +1890,14 @@ let
   })) // {inherit libX11 xproto ;};
 
   xkill = (stdenv.mkDerivation ((if overrides ? xkill then overrides.xkill else x: x) {
-    name = "xkill-1.0.3";
+    name = "xkill-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xkill-1.0.3.tar.bz2;
-      sha256 = "1ac110qbb9a4x1dim3vaghvdk3jc708i2p3f4rmag33458khg0xx";
+      url = mirror://xorg/individual/app/xkill-1.0.4.tar.bz2;
+      sha256 = "0bl1ky8ps9jg842j4mnmf4zbx8nkvk0h77w7bqjlpwij9wq2mvw8";
     };
-    buildInputs = [pkgconfig libX11 libXmu ];
-  })) // {inherit libX11 libXmu ;};
+    buildInputs = [pkgconfig libX11 libXmu xproto ];
+  })) // {inherit libX11 libXmu xproto ;};
 
   xlsatoms = (stdenv.mkDerivation ((if overrides ? xlsatoms then overrides.xlsatoms else x: x) {
     name = "xlsatoms-1.1.1";
@@ -1890,11 +1910,11 @@ let
   })) // {inherit libxcb ;};
 
   xlsclients = (stdenv.mkDerivation ((if overrides ? xlsclients then overrides.xlsclients else x: x) {
-    name = "xlsclients-1.1.2";
+    name = "xlsclients-1.1.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xlsclients-1.1.2.tar.bz2;
-      sha256 = "1l97j15mg4wfzpm81wlpzagfjff7v4fwn7s2z2rpksk3gfcg7r8w";
+      url = mirror://xorg/individual/app/xlsclients-1.1.3.tar.bz2;
+      sha256 = "0g9x7rrggs741x9xwvv1k9qayma980d88nhdqw7j3pn3qvy6d5jx";
     };
     buildInputs = [pkgconfig libxcb ];
   })) // {inherit libxcb ;};
@@ -1910,21 +1930,21 @@ let
   })) // {inherit libXaw libXt ;};
 
   xmodmap = (stdenv.mkDerivation ((if overrides ? xmodmap then overrides.xmodmap else x: x) {
-    name = "xmodmap-1.0.7";
+    name = "xmodmap-1.0.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xmodmap-1.0.7.tar.bz2;
-      sha256 = "1dg47lay4vhrl9mfq3cfc6741a0m2n8wd4ljagd21ix3qklys8pg";
+      url = mirror://xorg/individual/app/xmodmap-1.0.8.tar.bz2;
+      sha256 = "1hwzm54m4ng09ls9i4bq0x84zbyhamgzasgrvhxxp8jqk34f7qpg";
     };
     buildInputs = [pkgconfig libX11 xproto ];
   })) // {inherit libX11 xproto ;};
 
   xorgcffiles = (stdenv.mkDerivation ((if overrides ? xorgcffiles then overrides.xorgcffiles else x: x) {
-    name = "xorg-cf-files-1.0.4";
+    name = "xorg-cf-files-1.0.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/util/xorg-cf-files-1.0.4.tar.bz2;
-      sha256 = "0s86h66b3w4623m88fg2csp41cnr08qc8i3gkj85k3wpwj1wxs9n";
+      url = mirror://xorg/individual/util/xorg-cf-files-1.0.5.tar.bz2;
+      sha256 = "1m3ypq0xcy46ghxc0svl1rbhpy3zvgmy0aa2mn7w7v7d8d8bh8zd";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
@@ -1970,61 +1990,61 @@ let
   })) // {inherit libX11 libXmu xproto ;};
 
   xprop = (stdenv.mkDerivation ((if overrides ? xprop then overrides.xprop else x: x) {
-    name = "xprop-1.2.1";
+    name = "xprop-1.2.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xprop-1.2.1.tar.bz2;
-      sha256 = "18zi2any13zlb7f34fzyw6lkiwkd6k2scp3b800a1f4rj0c7m407";
+      url = mirror://xorg/individual/app/xprop-1.2.2.tar.bz2;
+      sha256 = "1ilvhqfjcg6f1hqahjkp8qaay9rhvmv2blvj3w9asraq0aqqivlv";
     };
     buildInputs = [pkgconfig libX11 xproto ];
   })) // {inherit libX11 xproto ;};
 
   xproto = (stdenv.mkDerivation ((if overrides ? xproto then overrides.xproto else x: x) {
-    name = "xproto-7.0.23";
+    name = "xproto-7.0.25";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xproto-7.0.23.tar.bz2;
-      sha256 = "17lkmi12f89qvg4jj5spqzwzc24fmsqq68dv6kpy7r7b944lmq5d";
+      url = mirror://xorg/individual/proto/xproto-7.0.25.tar.bz2;
+      sha256 = "1zh977hrfxxdyhlxr9qjfa2xl8qrb4v43a2b708kdz2gvj2p894j";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
 
   xrandr = (stdenv.mkDerivation ((if overrides ? xrandr then overrides.xrandr else x: x) {
-    name = "xrandr-1.3.5";
+    name = "xrandr-1.4.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xrandr-1.3.5.tar.bz2;
-      sha256 = "03lq1c1q4w5cf2ijs4b34v008lshibha9zv5lw08xpyhk9xgyn8h";
+      url = mirror://xorg/individual/app/xrandr-1.4.2.tar.bz2;
+      sha256 = "1g4hnj53wknsjwiqivyy3jl4qw7jwrpncz7d5p2z29zq5zlnxrxj";
     };
     buildInputs = [pkgconfig libX11 xproto libXrandr libXrender ];
   })) // {inherit libX11 xproto libXrandr libXrender ;};
 
   xrdb = (stdenv.mkDerivation ((if overrides ? xrdb then overrides.xrdb else x: x) {
-    name = "xrdb-1.0.9";
+    name = "xrdb-1.1.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xrdb-1.0.9.tar.bz2;
-      sha256 = "1dza5a34nj68fzhlgwf18i5bk0n24ig28yihwpjy7vwn57hh2934";
+      url = mirror://xorg/individual/app/xrdb-1.1.0.tar.bz2;
+      sha256 = "0nsnr90wazcdd50nc5dqswy0bmq6qcj14nnrhyi7rln9pxmpp0kk";
     };
-    buildInputs = [pkgconfig libX11 libXmu ];
-  })) // {inherit libX11 libXmu ;};
+    buildInputs = [pkgconfig libX11 libXmu xproto ];
+  })) // {inherit libX11 libXmu xproto ;};
 
   xrefresh = (stdenv.mkDerivation ((if overrides ? xrefresh then overrides.xrefresh else x: x) {
-    name = "xrefresh-1.0.4";
+    name = "xrefresh-1.0.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xrefresh-1.0.4.tar.bz2;
-      sha256 = "0ywxzwa4kmnnmf8idr8ssgcil9xvbhnk155zpsh2i8ay93mh5586";
+      url = mirror://xorg/individual/app/xrefresh-1.0.5.tar.bz2;
+      sha256 = "1mlinwgvql6s1rbf46yckbfr9j22d3c3z7jx3n6ix7ca18dnf4rj";
     };
-    buildInputs = [pkgconfig libX11 ];
-  })) // {inherit libX11 ;};
+    buildInputs = [pkgconfig libX11 xproto ];
+  })) // {inherit libX11 xproto ;};
 
   xset = (stdenv.mkDerivation ((if overrides ? xset then overrides.xset else x: x) {
-    name = "xset-1.2.2";
+    name = "xset-1.2.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xset-1.2.2.tar.bz2;
-      sha256 = "1s61mvscd0h7y6anljarj7nkii6plhs8ndx1fm8b1f1h00a1qdv1";
+      url = mirror://xorg/individual/app/xset-1.2.3.tar.bz2;
+      sha256 = "0qw0iic27bz3yz2wynf1gxs70hhkcf9c4jrv7zhlg1mq57xz90j3";
     };
     buildInputs = [pkgconfig libX11 libXext libXmu xproto libXxf86misc ];
   })) // {inherit libX11 libXext libXmu xproto libXxf86misc ;};
@@ -2040,41 +2060,41 @@ let
   })) // {inherit libX11 xbitmaps libXcursor libXmu ;};
 
   xtrans = (stdenv.mkDerivation ((if overrides ? xtrans then overrides.xtrans else x: x) {
-    name = "xtrans-1.3.3";
+    name = "xtrans-1.3.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/xtrans-1.3.3.tar.bz2;
-      sha256 = "1gq9i9p1q7wgaj1vm1n5mrw0rp0bpcdk4hdy9yj82i92rsnv8bb2";
+      url = mirror://xorg/individual/lib/xtrans-1.3.4.tar.bz2;
+      sha256 = "0fjq9xa37k1czkidj3c5sads51gibrjvrxz9ag3hh9fmxzilwk85";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
 
   xvinfo = (stdenv.mkDerivation ((if overrides ? xvinfo then overrides.xvinfo else x: x) {
-    name = "xvinfo-1.1.1";
+    name = "xvinfo-1.1.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xvinfo-1.1.1.tar.bz2;
-      sha256 = "119rd93d7661ll1rfcdssn78l0b97326smziyr2f5wdwj2hlmiv0";
+      url = mirror://xorg/individual/app/xvinfo-1.1.2.tar.bz2;
+      sha256 = "1qsh7fszi727l3vwlaf9pb7bpikdv15smrx5qhlgg3kqzl7xklzf";
     };
-    buildInputs = [pkgconfig libX11 libXv ];
-  })) // {inherit libX11 libXv ;};
+    buildInputs = [pkgconfig libX11 xproto libXv ];
+  })) // {inherit libX11 xproto libXv ;};
 
   xwd = (stdenv.mkDerivation ((if overrides ? xwd then overrides.xwd else x: x) {
-    name = "xwd-1.0.5";
+    name = "xwd-1.0.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xwd-1.0.5.tar.bz2;
-      sha256 = "0fkg6msy2zg7rda2rpxb7j6vmrdmqmk72xsxnyhz97196ykjnx82";
+      url = mirror://xorg/individual/app/xwd-1.0.6.tar.bz2;
+      sha256 = "0ybx48agdvjp9lgwvcw79r1x6jbqbyl3fliy3i5xwy4d4si9dcrv";
     };
     buildInputs = [pkgconfig libX11 xproto ];
   })) // {inherit libX11 xproto ;};
 
   xwininfo = (stdenv.mkDerivation ((if overrides ? xwininfo then overrides.xwininfo else x: x) {
-    name = "xwininfo-1.1.2";
+    name = "xwininfo-1.1.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xwininfo-1.1.2.tar.bz2;
-      sha256 = "0fmcr5yl03xw7m8p9h1rk67rrj7gp5x16a547xhmg8idw2f6r9lg";
+      url = mirror://xorg/individual/app/xwininfo-1.1.3.tar.bz2;
+      sha256 = "1y1zn8ijqslb5lfpbq4bb78kllhch8in98ps7n8fg3dxjpmb13i1";
     };
     buildInputs = [pkgconfig libX11 libxcb xproto ];
   })) // {inherit libX11 libxcb xproto ;};
diff --git a/pkgs/servers/x11/xorg/extra.list b/pkgs/servers/x11/xorg/extra.list
index 867e050bce05..3abfed675f83 100644
--- a/pkgs/servers/x11/xorg/extra.list
+++ b/pkgs/servers/x11/xorg/extra.list
@@ -6,4 +6,3 @@ http://xcb.freedesktop.org/dist/xcb-util-image-0.3.9.tar.bz2
 http://xcb.freedesktop.org/dist/xcb-util-keysyms-0.3.9.tar.bz2
 http://xcb.freedesktop.org/dist/xcb-util-renderutil-0.3.8.tar.bz2
 http://xcb.freedesktop.org/dist/xcb-util-wm-0.4.1.tar.bz2
-http://xorg.freedesktop.org/releases/individual/util/util-macros-1.17.tar.bz2
diff --git a/pkgs/servers/x11/xorg/old.list b/pkgs/servers/x11/xorg/old.list
index 68c88594932b..7019273dd11a 100644
--- a/pkgs/servers/x11/xorg/old.list
+++ b/pkgs/servers/x11/xorg/old.list
@@ -1,15 +1,15 @@
-mirror://xorg/individual/app/twm-1.0.7.tar.bz2
-mirror://xorg/individual/app/xclock-1.0.6.tar.bz2
+mirror://xorg/individual/app/twm-1.0.8.tar.bz2
+mirror://xorg/individual/app/xclock-1.0.7.tar.bz2
 mirror://xorg/individual/app/xdm-1.1.11.tar.bz2
 mirror://xorg/individual/app/xeyes-1.1.1.tar.bz2
 mirror://xorg/individual/app/xfs-1.1.3.tar.bz2
-mirror://xorg/individual/app/xinit-1.3.2.tar.bz2
+mirror://xorg/individual/app/xinit-1.3.3.tar.bz2
 mirror://xorg/individual/app/xmessage-1.0.4.tar.bz2
 mirror://xorg/individual/lib/libXp-1.0.2.tar.bz2
 mirror://xorg/individual/lib/libXxf86misc-1.0.3.tar.bz2
 mirror://xorg/individual/proto/printproto-1.0.5.tar.bz2
 mirror://xorg/individual/proto/xf86miscproto-0.9.3.tar.bz2
 mirror://xorg/individual/util/gccmakedep-1.0.2.tar.bz2
-mirror://xorg/individual/util/imake-1.0.5.tar.bz2
+mirror://xorg/individual/util/imake-1.0.6.tar.bz2
 mirror://xorg/individual/util/lndir-1.0.3.tar.bz2
-mirror://xorg/individual/util/xorg-cf-files-1.0.4.tar.bz2
+mirror://xorg/individual/util/xorg-cf-files-1.0.5.tar.bz2
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index 8b2617f06216..3f591cb7c0e3 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -37,6 +37,10 @@ in
       '';
   };
 
+  glamoregl = attrs: attrs // {
+    installFlags = "sdkdir=\${out}/include/xorg configdir=\${out}/share/X11/xorg.conf.d";
+  };
+
   imake = attrs: attrs // {
     inherit (xorg) xorgcffiles;
     x11BuildHook = ./imake.sh;
@@ -158,7 +162,7 @@ in
 
   xf86inputsynaptics = attrs: attrs // {
     buildInputs = attrs.buildInputs ++ [args.mtdev];
-    installFlags = "sdkdir=\${out}/include/xorg configdir=\${out}/include/xorg";
+    installFlags = "sdkdir=\${out}/include/xorg configdir=\${out}/share/X11/xorg.conf.d";
   };
 
   xf86inputvmmouse = attrs: attrs // {
@@ -169,6 +173,10 @@ in
     ];
   };
 
+  xf86videoati = attrs: attrs // {
+    NIX_CFLAGS_COMPILE = "-I${xorg.glamoregl}/include/xorg";
+  };
+
   xf86videonv = attrs: attrs // {
     patches = [( args.fetchurl {
       url = http://cgit.freedesktop.org/xorg/driver/xf86-video-nv/patch/?id=fc78fe98222b0204b8a2872a529763d6fe5048da;
@@ -178,10 +186,6 @@ in
 
   xf86videovmware = attrs: attrs // {
     buildInputs =  attrs.buildInputs ++ [ args.mesa_drivers ]; # for libxatracker
-    patches = [( args.fetchurl {
-      url = https://projects.archlinux.org/svntogit/packages.git/plain/trunk/xatracker-v2-fixes.patch?h=packages/xf86-video-vmware;
-      sha256 = "1k5a3zf2bzmw84di31b8zfy51n2mqrr01xjfy5nw7395qv5r5cvs";
-    })];
   };
 
   xdriinfo = attrs: attrs // {
@@ -197,10 +201,12 @@ in
   };
 
   xkeyboardconfig = attrs: attrs // {
-    #TODO: resurrect patches for US_intl and Esperanto?
 
     buildInputs = attrs.buildInputs ++ [args.intltool];
 
+    #TODO: resurrect patches for US_intl?
+    patches = [ ./xkeyboard-config-eo.patch ];
+
     # 1: compatibility for X11/xkb location
     # 2: I think pkgconfig/ is supposed to be in /lib/
     postInstall = ''
@@ -209,13 +215,6 @@ in
     '';
   };
 
-  xmodmap = attrs: attrs // {
-    patches = [(args.fetchurl {
-      url = http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-apps/xmodmap/files/xmodmap-1.0.7-_GNU_SOURCE.patch;
-      sha256 = "0q3zhy0wy1kkbpagzav8869fais4lw5q5vybgjj7wkmak06c5648";
-      name = "new-gcc.patch";
-    })];
-  };
   xorgserver = with xorg; attrs: attrs // {
     configureFlags = [
       "--enable-xcsecurity" # enable SECURITY extension
@@ -277,6 +276,6 @@ in
   };
 
   xwd = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++ [xorg.libXt];
+    buildInputs = with xorg; attrs.buildInputs ++ [libXt libxkbfile];
   };
 }
diff --git a/pkgs/servers/x11/xorg/tarballs-7.7.list b/pkgs/servers/x11/xorg/tarballs-7.7.list
index 24279ac70f9b..a3faf2569264 100644
--- a/pkgs/servers/x11/xorg/tarballs-7.7.list
+++ b/pkgs/servers/x11/xorg/tarballs-7.7.list
@@ -1,5 +1,5 @@
 mirror://xorg/X11R7.7/src/everything/applewmproto-1.4.2.tar.bz2
-mirror://xorg/X11R7.7/src/everything/bdftopcf-1.0.3.tar.bz2
+mirror://xorg/individual/app/bdftopcf-1.0.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/bigreqsproto-1.1.2.tar.bz2
 mirror://xorg/X11R7.7/src/everything/compositeproto-0.4.2.tar.bz2
 mirror://xorg/X11R7.7/src/everything/damageproto-1.2.1.tar.bz2
@@ -46,25 +46,25 @@ mirror://xorg/X11R7.7/src/everything/font-sun-misc-1.0.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/font-util-1.3.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/font-winitzki-cyrillic-1.0.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/font-xfree86-type1-1.0.4.tar.bz2
-mirror://xorg/individual/proto/glproto-1.4.16.tar.bz2
-mirror://xorg/X11R7.7/src/everything/iceauth-1.0.5.tar.bz2
+mirror://xorg/individual/proto/glproto-1.4.17.tar.bz2
+mirror://xorg/individual/app/iceauth-1.0.6.tar.bz2
 mirror://xorg/individual/proto/inputproto-2.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/kbproto-1.0.6.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libAppleWM-1.4.1.tar.bz2
 mirror://xorg/individual/lib/libdmx-1.1.3.tar.bz2
 mirror://xorg/individual/lib/libxshmfence-1.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libfontenc-1.1.1.tar.bz2
-mirror://xorg/individual/lib/libFS-1.0.5.tar.bz2
+mirror://xorg/individual/lib/libfontenc-1.1.2.tar.bz2
+mirror://xorg/individual/lib/libFS-1.0.6.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libICE-1.0.8.tar.bz2
 mirror://xorg/individual/lib/libpciaccess-0.13.2.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libSM-1.2.1.tar.bz2
+mirror://xorg/individual/lib/libSM-1.2.2.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libWindowsWM-1.0.1.tar.bz2
-mirror://xorg/individual/lib/libX11-1.6.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXau-1.0.7.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXaw-1.0.11.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXcomposite-0.4.3.tar.bz2
+mirror://xorg/individual/lib/libX11-1.6.2.tar.bz2
+mirror://xorg/individual/lib/libXau-1.0.8.tar.bz2
+mirror://xorg/individual/lib/libXaw-1.0.12.tar.bz2
+mirror://xorg/individual/lib/libXcomposite-0.4.4.tar.bz2
 mirror://xorg/individual/lib/libXcursor-1.1.14.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXdamage-1.1.3.tar.bz2
+mirror://xorg/individual/lib/libXdamage-1.1.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXdmcp-1.1.1.tar.bz2
 mirror://xorg/individual/lib/libXext-1.3.2.tar.bz2
 mirror://xorg/individual/lib/libXfixes-5.0.1.tar.bz2
@@ -73,44 +73,44 @@ mirror://xorg/X11R7.7/src/everything/libXft-2.3.1.tar.bz2
 mirror://xorg/individual/lib/libXi-1.7.2.tar.bz2
 mirror://xorg/individual/lib/libXinerama-1.1.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libxkbfile-1.0.8.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXmu-1.1.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXpm-3.5.10.tar.bz2
-mirror://xorg/individual/lib/libXrandr-1.4.1.tar.bz2
+mirror://xorg/individual/lib/libXmu-1.1.2.tar.bz2
+mirror://xorg/individual/lib/libXpm-3.5.11.tar.bz2
+mirror://xorg/individual/lib/libXrandr-1.4.2.tar.bz2
 mirror://xorg/individual/lib/libXrender-0.9.8.tar.bz2
 mirror://xorg/individual/lib/libXres-1.0.7.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXScrnSaver-1.2.2.tar.bz2
 mirror://xorg/individual/lib/libXt-1.1.4.tar.bz2
 mirror://xorg/individual/lib/libXtst-1.2.2.tar.bz2
-mirror://xorg/individual/lib/libXv-1.0.8.tar.bz2
+mirror://xorg/individual/lib/libXv-1.0.10.tar.bz2
 mirror://xorg/individual/lib/libXvMC-1.0.8.tar.bz2
 mirror://xorg/individual/lib/libXxf86dga-1.1.4.tar.bz2
 mirror://xorg/individual/lib/libXxf86vm-1.1.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/luit-1.1.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/makedepend-1.0.4.tar.bz2
+mirror://xorg/individual/util/makedepend-1.0.5.tar.bz2
 mirror://xorg/X11R7.7/src/everything/mkfontdir-1.0.7.tar.bz2
-mirror://xorg/X11R7.7/src/everything/mkfontscale-1.1.0.tar.bz2
+mirror://xorg/individual/app/mkfontscale-1.1.1.tar.bz2
 mirror://xorg/individual/proto/randrproto-1.4.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/recordproto-1.14.2.tar.bz2
 mirror://xorg/X11R7.7/src/everything/renderproto-0.11.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/resourceproto-1.2.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/scrnsaverproto-1.2.2.tar.bz2
-mirror://xorg/X11R7.7/src/everything/sessreg-1.0.7.tar.bz2
+mirror://xorg/individual/app/sessreg-1.0.8.tar.bz2
 mirror://xorg/X11R7.7/src/everything/setxkbmap-1.3.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/smproxy-1.0.5.tar.bz2
-mirror://xorg/X11R7.7/src/everything/util-macros-1.17.tar.bz2
-mirror://xorg/X11R7.7/src/everything/videoproto-2.3.1.tar.bz2
+mirror://xorg/individual/util/util-macros-1.19.0.tar.bz2
+mirror://xorg/individual/proto/videoproto-2.3.2.tar.bz2
 mirror://xorg/X11R7.7/src/everything/windowswmproto-1.0.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/x11perf-1.5.4.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xauth-1.0.7.tar.bz2
-mirror://xorg/individual/app/xbacklight-1.2.0.tar.bz2
+mirror://xorg/individual/app/xauth-1.0.8.tar.bz2
+mirror://xorg/individual/app/xbacklight-1.2.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xbitmaps-1.1.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xcmiscproto-1.2.2.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xcmsdb-1.0.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xcursorgen-1.0.5.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xcursor-themes-1.0.3.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xdpyinfo-1.3.0.tar.bz2
+mirror://xorg/individual/data/xcursor-themes-1.0.4.tar.bz2
+mirror://xorg/individual/app/xdpyinfo-1.3.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xdriinfo-1.0.4.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xev-1.2.0.tar.bz2
+mirror://xorg/individual/app/xev-1.2.1.tar.bz2
 mirror://xorg/individual/proto/xextproto-7.3.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86bigfontproto-1.2.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86dgaproto-2.1.tar.bz2
@@ -119,12 +119,13 @@ mirror://xorg/individual/driver/xf86-input-evdev-2.8.2.tar.bz2
 mirror://xorg/individual/driver/xf86-input-joystick-1.6.2.tar.bz2
 mirror://xorg/individual/driver/xf86-input-keyboard-1.8.0.tar.bz2
 mirror://xorg/individual/driver/xf86-input-mouse-1.9.0.tar.bz2
-mirror://xorg/individual/driver/xf86-input-synaptics-1.7.3.tar.bz2
+mirror://xorg/individual/driver/xf86-input-synaptics-1.7.4.tar.bz2
 mirror://xorg/individual/driver/xf86-input-vmmouse-13.0.0.tar.bz2
 mirror://xorg/individual/driver/xf86-input-void-1.4.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-ark-0.7.5.tar.bz2
 mirror://xorg/individual/driver/xf86-video-ast-0.98.0.tar.bz2
-mirror://xorg/individual/driver/xf86-video-ati-7.2.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-ati-7.3.0.tar.bz2
+mirror://xorg/individual/driver/glamor-egl-0.6.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-nouveau-1.0.10.tar.bz2
 mirror://xorg/individual/driver/xf86-video-cirrus-1.5.2.tar.bz2
 mirror://xorg/individual/driver/xf86-video-dummy-0.3.7.tar.bz2
@@ -136,6 +137,7 @@ mirror://xorg/individual/driver/xf86-video-i128-1.3.6.tar.bz2
 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.8.1.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
@@ -151,35 +153,35 @@ mirror://xorg/individual/driver/xf86-video-tga-1.2.2.tar.bz2
 mirror://xorg/individual/driver/xf86-video-trident-1.3.6.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86-video-v4l-0.2.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-vesa-2.3.3.tar.bz2
-mirror://xorg/individual/driver/xf86-video-vmware-13.0.1.tar.bz2
+mirror://xorg/individual/driver/xf86-video-vmware-13.0.2.tar.bz2
 mirror://xorg/individual/driver/xf86-video-voodoo-1.2.5.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86-video-wsfb-0.4.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86vidmodeproto-2.3.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xgamma-1.0.5.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xhost-1.0.5.tar.bz2
+mirror://xorg/individual/app/xhost-1.0.6.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xineramaproto-1.2.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xinput-1.6.0.tar.bz2
+mirror://xorg/individual/app/xinput-1.6.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xkbcomp-1.2.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xkbevd-1.1.3.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xkbutils-1.0.3.tar.bz2
+mirror://xorg/individual/app/xkbutils-1.0.4.tar.bz2
 mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.11.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xkill-1.0.3.tar.bz2
+mirror://xorg/individual/app/xkill-1.0.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xlsatoms-1.1.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xlsclients-1.1.2.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xmodmap-1.0.7.tar.bz2
+mirror://xorg/individual/app/xlsclients-1.1.3.tar.bz2
+mirror://xorg/individual/app/xmodmap-1.0.8.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xorg-docs-1.7.tar.bz2
 mirror://xorg/individual/xserver/xorg-server-1.14.5.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xorg-sgml-doctools-1.11.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xpr-1.0.4.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xprop-1.2.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xproto-7.0.23.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xrandr-1.3.5.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xrdb-1.0.9.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xrefresh-1.0.4.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xset-1.2.2.tar.bz2
+mirror://xorg/individual/app/xprop-1.2.2.tar.bz2
+mirror://xorg/individual/proto/xproto-7.0.25.tar.bz2
+mirror://xorg/individual/app/xrandr-1.4.2.tar.bz2
+mirror://xorg/individual/app/xrdb-1.1.0.tar.bz2
+mirror://xorg/individual/app/xrefresh-1.0.5.tar.bz2
+mirror://xorg/individual/app/xset-1.2.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xsetroot-1.1.0.tar.bz2
-mirror://xorg/individual/lib/xtrans-1.3.3.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xvinfo-1.1.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xwd-1.0.5.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xwininfo-1.1.2.tar.bz2
+mirror://xorg/individual/lib/xtrans-1.3.4.tar.bz2
+mirror://xorg/individual/app/xvinfo-1.1.2.tar.bz2
+mirror://xorg/individual/app/xwd-1.0.6.tar.bz2
+mirror://xorg/individual/app/xwininfo-1.1.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xwud-1.0.4.tar.bz2
diff --git a/pkgs/servers/x11/xorg/xf86-video-intel-testing.nix b/pkgs/servers/x11/xorg/xf86-video-intel-testing.nix
new file mode 100644
index 000000000000..5877643fb1b1
--- /dev/null
+++ b/pkgs/servers/x11/xorg/xf86-video-intel-testing.nix
@@ -0,0 +1,14 @@
+{ stdenv, fetchurl, pkgconfig, libdrm, udev, xorg }:
+
+with xorg;
+
+(stdenv.mkDerivation ({
+  name = "xf86-video-intel-2.99.911";
+  builder = ./builder.sh;
+  src = fetchurl {
+    url = mirror://xorg/individual/driver/xf86-video-intel-2.99.911.tar.bz2;
+    sha256 = "1mkhfa10304xvs763dz1kj93zkmdidlfxhsy5j8ljkfc3d4nhyjf";
+  };
+  buildInputs = [pkgconfig dri2proto fontsproto glamoregl libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXcursor libXdamage libXext xextproto xf86driproto libXfixes libXinerama xorgserver xproto libXrandr libXrender libXtst libXvMC ];
+})) // {inherit dri2proto fontsproto glamoregl libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXcursor libXdamage libXext xextproto xf86driproto libXfixes libXinerama xorgserver xproto libXrandr libXrender libXtst libXvMC ;}
+
diff --git a/pkgs/servers/x11/xorg/xkeyboard-config-eo.patch b/pkgs/servers/x11/xorg/xkeyboard-config-eo.patch
new file mode 100644
index 000000000000..f288a5c0f6dd
--- /dev/null
+++ b/pkgs/servers/x11/xorg/xkeyboard-config-eo.patch
@@ -0,0 +1,71 @@
+diff --git a/rules/base.xml.in b/rules/base.xml.in
+index ec321f8..e9c3546 100644
+--- a/rules/base.xml.in
++++ b/rules/base.xml.in
+@@ -1786,6 +1786,13 @@
+     </layout>
+     <layout>
+       <configItem>
++        <name>eo</name>
++        <_shortDescription>Esp</_shortDescription>
++        <_description>Esperanto</_description>
++      </configItem>
++    </layout>
++    <layout>
++      <configItem>
+         <name>ir</name>
+         <_shortDescription>Irn</_shortDescription>
+         <_description>Iran</_description>
+diff --git a/symbols/Makefile.am b/symbols/Makefile.am
+index 97c816d..d7e3a4e 100644
+--- a/symbols/Makefile.am
++++ b/symbols/Makefile.am
+@@ -10,7 +10,7 @@ bt by braille \
+ ca cd \
+ ch cn cz \
+ de dk \
+-ee es et epo \
++ee eo es et epo \
+ fi fo fr \
+ gb ge gh gn \
+ gr hr hu \
+diff --git a/symbols/Makefile.in b/symbols/Makefile.in
+index b5be077..5cddcc7 100644
+--- a/symbols/Makefile.in
++++ b/symbols/Makefile.in
+@@ -222,7 +222,7 @@ bt by braille \
+ ca cd \
+ ch cn cz \
+ de dk \
+-ee es et epo \
++ee eo es et epo \
+ fi fo fr \
+ gb ge gh gn \
+ gr hr hu \
+diff --git a/symbols/eo b/symbols/eo
+new file mode 100644
+index 0000000..d6358c9
+--- /dev/null
++++ b/symbols/eo
+@@ -0,0 +1,21 @@
++// $XFree86$
++
++partial alphanumeric_keys
++xkb_symbols "basic" {
++
++     // Describes the differences between a very simple en_US
++     // keyboard and a simple Esperanto keyboard
++     // Press AltGr or Windows Menu key together with C, H, J, S, U
++     // to get accented letters.
++     // 2001 by Radovan Garabik <garabik@melkor.dnp.fmph.uniba.sk>
++
++    key.type = "FOUR_LEVEL";
++
++    key <AD02>  { [w,W, ubreve,Ubreve ] };
++    key <AD07>  { [u,U, ubreve, Ubreve ] };
++    key <AC02>  { [s,S, scircumflex,    Scircumflex ] };
++    key <AC05>  { [g,G, gcircumflex,Gcircumflex ] };
++    key <AC06>  { [h,H, hcircumflex,Hcircumflex ] };
++    key <AC07>  { [j,J, jcircumflex,Jcircumflex ] };
++    key <AB03>  { [c,C, ccircumflex,Ccircumflex ] };
++};
diff --git a/pkgs/shells/ipython/default.nix b/pkgs/shells/ipython/default.nix
index b9b9129cb486..cb0cc95c4ced 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-1.1.0";
+  name = "ipython-2.0.0";
   namePrefix = "";
 
   src = fetchurl {
     url = "http://pypi.python.org/packages/source/i/ipython/${name}.tar.gz";
-    sha256 = "1glivwy7k2dciy0y5i39syngip84nrqhpggn4glmpd2s49jllkkc";
+    sha256 = "0fl9sznx83y2ck8wh5zr8avzjm5hz6r0xz38ij2fil3gin7w10sf";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/shells/zsh/default.nix b/pkgs/shells/zsh/default.nix
index 50a33700b3b2..37ffb09288e0 100644
--- a/pkgs/shells/zsh/default.nix
+++ b/pkgs/shells/zsh/default.nix
@@ -2,13 +2,13 @@
 
 let
 
-  version = "5.0.2";
+  version = "5.0.5";
 
   documentation = fetchurl {
     url = "mirror://sourceforge/zsh/zsh-${version}-doc.tar.bz2";
-    sha256 = "99ee08cfc91935af8714bd98db652f016d6c7a8a71ba7c6d6223910cd0b7fbf1";
+    sha256 = "1wljqii2lkz5kc4y3xs65isnahvnlj678b9zv31bn444mapjpwp4";
   };
-  
+
 in
 
 stdenv.mkDerivation {
@@ -16,9 +16,9 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/zsh/zsh-${version}.tar.bz2";
-    sha256 = "eb220ae5a8076191ec6b4c6a5a2f18122d074a19f25b45f0320b44b8166c5a03";
+    sha256 = "1bwfz9n850pclzmzrb437icfhzv1s5pgh2dhs92f194gdkxx4936";
   };
-  
+
   buildInputs = [ ncurses coreutils ];
 
   preConfigure = ''
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index 6e74af5fce52..4ee9251f4bb8 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -12,17 +12,11 @@ let lib = import ../../../lib; in lib.makeOverridable (
 , extraBuildInputs ? []
 }:
 
-if ! builtins ? langVersion then
-
-  abort "This version of Nixpkgs requires Nix >= 1.2, please upgrade!"
-
-else
-
 let
 
-  allowUnfree = config.allowUnfree or true && builtins.getEnv "HYDRA_DISALLOW_UNFREE" != "1";
+  allowUnfree = config.allowUnfree or false || builtins.getEnv "NIXPKGS_ALLOW_UNFREE" == "1";
 
-  allowBroken = builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1";
+  allowBroken = config.allowBroken or false || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1";
 
   unsafeGetAttrPos = builtins.unsafeGetAttrPos or (n: as: null);
 
@@ -64,7 +58,16 @@ let
           pos' = if pos != null then "‘" + pos.file + ":" + toString pos.line + "’" else "«unknown-file»";
         in
         if !allowUnfree && (let l = lib.lists.toList attrs.meta.license or []; in lib.lists.elem "unfree" l || lib.lists.elem "unfree-redistributable" l) then
-          throw "package ‘${attrs.name}’ in ${pos'} has an unfree license, refusing to evaluate"
+          throw ''package ‘${attrs.name}’ in ${pos'} has an unfree license, refusing to evaluate.
+                 You can set
+                    { nixpkgs.config.allowUnfree = true; }
+                 in configuration.nix to override this.
+                 If you use Nix standalone, you can add
+                    { config.allowUnfree = true; }
+                 to ~/.nixpkgs/config.nix or pass
+                    --arg config '{ allowUnfree = true; }'
+                 on the command line.
+                ''
         else if !allowBroken && attrs.meta.broken or false then
           throw "you can't use package ‘${attrs.name}’ in ${pos'} because it has been marked as broken"
         else if !allowBroken && attrs.meta.platforms or null != null && !lib.lists.elem result.system attrs.meta.platforms then
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index 4740c6386339..1d79a45678c2 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -304,9 +304,11 @@ substitute() {
 
     local -a params=("$@")
 
-    local n p pattern replacement varName
+    local n p pattern replacement varName content
 
-    local content="$(cat $input)"
+    # a slightly hacky way to keep newline at the end
+    content="$(cat $input; echo -n X)"
+    content="${content%X}"
 
     for ((n = 2; n < ${#params[*]}; n += 1)); do
         p=${params[$n]}
@@ -877,7 +879,7 @@ genericBuild() {
     if [ -z "$phases" ]; then
         phases="$prePhases unpackPhase patchPhase $preConfigurePhases \
             configurePhase $preBuildPhases buildPhase checkPhase \
-            $preInstallPhases installPhase fixupPhase installCheckPhase \
+            $preInstallPhases installPhase $preFixupPhases fixupPhase installCheckPhase \
             $preDistPhases distPhase $postPhases";
     fi
 
diff --git a/pkgs/stdenv/mingw/setup.sh b/pkgs/stdenv/mingw/setup.sh
index 592580a829e3..c757eb7ae54c 100755
--- a/pkgs/stdenv/mingw/setup.sh
+++ b/pkgs/stdenv/mingw/setup.sh
@@ -725,7 +725,7 @@ genericBuild() {
     if test -z "$phases"; then
         phases="$prePhases unpackPhase patchPhase $preConfigurePhases \
             configurePhase $preBuildPhases buildPhase checkPhase \
-            $preInstallPhases installPhase fixupPhase \
+            $preInstallPhases installPhase $preFixupPhases fixupPhase \
             $preDistPhases distPhase $postPhases";
     fi
 
diff --git a/pkgs/tools/X11/xdg-user-dirs/default.nix b/pkgs/tools/X11/xdg-user-dirs/default.nix
new file mode 100644
index 000000000000..bb26c0f46ceb
--- /dev/null
+++ b/pkgs/tools/X11/xdg-user-dirs/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, libxslt, docbook_xsl }:
+
+stdenv.mkDerivation rec {
+  name = "xdg-user-dirs-0.15";
+  
+  src = fetchurl {
+    url = "http://user-dirs.freedesktop.org/releases/${name}.tar.gz";
+    sha256 = "20b4a751f41d0554bce3e0ce5e8d934be98cc62d48f0b90a894c3e1916552786";
+  };
+
+  buildInputs = [ libxslt docbook_xsl ];
+
+  meta = with stdenv.lib; {
+    homepage = http://freedesktop.org/wiki/Software/xdg-user-dirs;
+    description = "A tool to help manage well known user directories like the desktop folder and the music folder";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ lethalman ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/admin/gtk-vnc/default.nix b/pkgs/tools/admin/gtk-vnc/default.nix
index d4c45b7ba964..c3a82b2e4a27 100644
--- a/pkgs/tools/admin/gtk-vnc/default.nix
+++ b/pkgs/tools/admin/gtk-vnc/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchurl
+{ stdenv, fetchurl, gobjectIntrospection
 , python, gtk, pygtk, gnutls, cairo, libtool, glib, pkgconfig, libtasn1
 , libffi, cyrus_sasl, intltool, perl, perlPackages, firefoxPkgs, pulseaudio
-, kbproto, libX11, libXext, xextproto, pygobject, libgcrypt }:
-
+, kbproto, libX11, libXext, xextproto, pygobject, libgcrypt, gtk3, vala
+, pygobject3, enableGTK3 ? false }:
 
 stdenv.mkDerivation rec {
   name = "gtk-vnc-${version}";
@@ -14,21 +14,24 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    python gtk pygtk gnutls cairo libtool pkgconfig glib libffi libgcrypt
-    intltool cyrus_sasl pulseaudio pygobject perl perlPackages.TextCSV
-  ];
+    python gnutls cairo libtool pkgconfig glib libffi libgcrypt
+    intltool cyrus_sasl pulseaudio perl perlPackages.TextCSV
+    gobjectIntrospection
+  ] ++ (if enableGTK3 then [ gtk3 vala pygobject3 ] else [ gtk pygtk pygobject ]);
 
   NIX_CFLAGS_COMPILE = "-fstack-protector-all";
   configureFlags = [
     "--with-python"
     "--with-examples"
+    (if enableGTK3 then "--with-gtk=3.0" else "--with-gtk=2.0")
   ];
 
-  makeFlags = "CODEGENDIR=${pygobject}/share/pygobject/2.0/codegen/ DEFSDIR=${pygtk}/share/pygtk/2.0/defs/";
+  makeFlags = stdenv.lib.optionalString (!enableGTK3)
+    "CODEGENDIR=${pygobject}/share/pygobject/2.0/codegen/ DEFSDIR=${pygtk}/share/pygtk/2.0/defs/";
 
   meta = with stdenv.lib; {
     description = "A GTK VNC widget";
-    maintainers = with maintainers; [ raskin ];
+    maintainers = with maintainers; [ raskin offline ];
     platforms = platforms.linux;
     license = licenses.lgpl21;
   };
diff --git a/pkgs/tools/archivers/unrar/default.nix b/pkgs/tools/archivers/unrar/default.nix
index c790f767f12e..a3ab95d1ab84 100644
--- a/pkgs/tools/archivers/unrar/default.nix
+++ b/pkgs/tools/archivers/unrar/default.nix
@@ -1,28 +1,32 @@
 {stdenv, fetchurl}:
+
+let
+  version = "5.1.2";
+in
 stdenv.mkDerivation {
-  name = "unrar-3.9.10";
+  name = "unrar-${version}";
 
   src = fetchurl {
-    url = http://www.rarlab.com/rar/unrarsrc-3.9.10.tar.gz;
-    sha256 = "0yi0i2j4srca8cag96ajc80m5xb5328ydzjab6y8h1bhypc2fiiv";
+    url = "http://www.rarlab.com/rar/unrarsrc-${version}.tar.gz";
+    sha256 = "0344cn4w3lw2111m3g431khiyndx9ibbp952bli1inx2fixps9cq";
   };
 
-  # Add a missing objects to the library
-  #patchPhase = ''
-  #  sed -i 's/^\(LIB_OBJ=.*\)/\1 recvol.o rs.o/' makefile.unix
-  #'';
-
-  buildPhase = ''
-    make -f makefile.unix unrar
-    rm *.o
-    make -f makefile.unix lib CXXFLAGS="-fPIC -O2 -DSILENT";
+  patchPhase = ''
+    sed -i \
+      -e "/CXX=/d" \
+      -e "/CXXFLAGS=/d" \
+      makefile
   '';
 
   installPhase = ''
-    mkdir -p $out/bin $out/lib
+    mkdir -p $out/bin
     cp unrar $out/bin
-    cp libunrar.so $out/lib
   '';
 
-  buildInputs = [];
+  meta = {
+    description = "Utility for RAR archives";
+    license = "freeware";
+    maintainers = [ stdenv.lib.maintainers.emery ];
+    platforms = stdenv.lib.platforms.linux; # arbitrary
+  };
 }
diff --git a/pkgs/tools/audio/gvolicon/default.nix b/pkgs/tools/audio/gvolicon/default.nix
new file mode 100644
index 000000000000..311e420c6a31
--- /dev/null
+++ b/pkgs/tools/audio/gvolicon/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, makeWrapper, alsaLib, pkgconfig, fetchgit, gnome3, hicolor_icon_theme, gdk_pixbuf, librsvg }:
+
+stdenv.mkDerivation {
+  name = "gvolicon";
+  src = fetchgit {
+    url = "https://github.com/Unia/gvolicon";
+    rev = "26343415de836e0b05aa0b480c0c69cc2ed9e419";
+    sha256 = "68858840a45b5f74803e85116c6219f805d6d944c00354662889549910856cdd";
+  };
+
+  buildInputs = [ pkgconfig makeWrapper alsaLib gnome3.gtk ];
+  propagatedBuildInputs = [ gnome3.gnome_icon_theme gnome3.gnome_icon_theme_symbolic hicolor_icon_theme gdk_pixbuf librsvg ];
+  installPhase = ''
+    make install PREFIX=$out
+    wrapProgram "$out/bin/gvolicon" \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gnome3.gtk}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/gvolicon:$XDG_ICON_DIRS"
+    '';
+
+  meta = {
+    description = "A simple and lightweight volume icon that sits in your system tray.";
+    homepage = "https://github.com/Unia/gvolicon";
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl3Plus;
+    maintainer = stdenv.lib.maintainers.bennofs;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/tools/backup/duply/default.nix b/pkgs/tools/backup/duply/default.nix
index 91718fc02f7b..73ef23059f45 100644
--- a/pkgs/tools/backup/duply/default.nix
+++ b/pkgs/tools/backup/duply/default.nix
@@ -3,11 +3,11 @@
 }:
 
 stdenv.mkDerivation {
-  name = "duply-1.6.0";
+  name = "duply-1.7.3";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/ftplicity/duply%20%28simple%20duplicity%29/1.6.x/duply_1.6.0.tgz";
-    sha256 = "1i1yy4z6fcf3lq2k72cqcyqspm7pa1m949f8l9yscjm47bwp5g8f";
+    url = "mirror://sourceforge/project/ftplicity/duply%20%28simple%20duplicity%29/1.7.x/duply_1.7.3.tgz";
+    sha256 = "1lq5gwz69l8g4ki4anvmjdngbs9nin124j1zb9kbcnqj0s5jkbp0";
   };
 
   buildInputs = [ txt2man makeWrapper ];
diff --git a/pkgs/tools/backup/httrack/default.nix b/pkgs/tools/backup/httrack/default.nix
index 4fa3345d220a..a77689c85fca 100644
--- a/pkgs/tools/backup/httrack/default.nix
+++ b/pkgs/tools/backup/httrack/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, zlib, openssl }:
 
 stdenv.mkDerivation rec {
-  version = "3.47.27";
+  version = "3.48.3";
   name = "httrack-${version}";
 
   src = fetchurl {
     url = "http://mirror.httrack.com/httrack-${version}.tar.gz";
-    sha256 = "1qgrs9wdqq4v9ywlb1b89i95w4a36y741l49xbpmb7mb7nvbz5kw";
+    sha256 = "1lg5rrql01q3z7fwcij5p64r22x4vbswcky80gajx5f62kxlxn0r";
   };
 
   buildInputs = [ zlib openssl ];
diff --git a/pkgs/tools/backup/wal-e/default.nix b/pkgs/tools/backup/wal-e/default.nix
new file mode 100644
index 000000000000..b1cc248e1a52
--- /dev/null
+++ b/pkgs/tools/backup/wal-e/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pythonPackages, lzop, postgresql, pv }:
+
+pythonPackages.buildPythonPackage rec {
+  name = "wal-e-${version}";
+  version = "0.6.9";
+
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "https://github.com/wal-e/wal-e/archive/v${version}.tar.gz";
+    sha256 = "1yzz9hic8amq7mp0kh04hsmwisk5r374ddja5g8345bl8y3bzbgk";
+  };
+
+  # needs tox
+  doCheck = false;
+
+  propagatedBuildInputs = [
+    pythonPackages.boto
+    pythonPackages.gevent
+    postgresql
+    lzop
+    pv
+  ];
+
+  meta = {
+    description = "A Postgres WAL-shipping disaster recovery and replication toolkit";
+    homepage = https://github.com/wal-e/wal-e;
+    maintainers = [ stdenv.lib.maintainers.rickynils ];
+    licenses = stdenv.lib.licenses.bsd3;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/compression/bsdiff/builder.sh b/pkgs/tools/compression/bsdiff/builder.sh
deleted file mode 100644
index f2792a40a60c..000000000000
--- a/pkgs/tools/compression/bsdiff/builder.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-source $stdenv/setup
-
-installFlags="PREFIX=$out INSTALL=install"
-
-mkdir -p "$out/bin"
-mkdir -p "$out/man/man1"
-
-genericBuild
diff --git a/pkgs/tools/compression/bsdiff/default.nix b/pkgs/tools/compression/bsdiff/default.nix
index 81210490883f..1d693f781e6c 100644
--- a/pkgs/tools/compression/bsdiff/default.nix
+++ b/pkgs/tools/compression/bsdiff/default.nix
@@ -1,14 +1,37 @@
-{stdenv, fetchurl, bzip2}:
+{ stdenv, fetchurl, bzip2 }:
+
+stdenv.mkDerivation rec {
+  name    = "bsdiff-${version}";
+  version = "4.3";
 
-stdenv.mkDerivation {
-  name = "bsdiff-4.3";
-  builder = ./builder.sh;
   src = fetchurl {
-    url = http://www.daemonology.net/bsdiff/bsdiff-4.3.tar.gz;
+    url    = "http://www.daemonology.net/bsdiff/${name}.tar.gz";
     sha256 = "0j2zm3z271x5aw63mwhr3vymzn45p2vvrlrpm9cz2nywna41b0hq";
   };
+
   buildInputs = [ bzip2 ];
-  patchPhase = ''
-    sed 's/^\.//g' -i Makefile
+  patches = [ ./include-systypes.patch ];
+
+  buildPhase = ''
+    cc -O3 -lbz2 bspatch.c -o bspatch
+    cc -O3 -lbz2 bsdiff.c  -o bsdiff
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/man/man1
+
+    cp bsdiff    $out/bin
+    cp bspatch   $out/bin
+    cp bsdiff.1  $out/share/man/man1
+    cp bspatch.1 $out/share/man/man1
   '';
+
+  meta = {
+    description = "An efficient binary diff/patch tool";
+    homepage    = "http://www.daemonology.net/bsdiff";
+    license     = stdenv.lib.licenses.bsd2;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
 }
diff --git a/pkgs/tools/compression/bsdiff/include-systypes.patch b/pkgs/tools/compression/bsdiff/include-systypes.patch
new file mode 100644
index 000000000000..d070a8bb0f85
--- /dev/null
+++ b/pkgs/tools/compression/bsdiff/include-systypes.patch
@@ -0,0 +1,12 @@
+diff --git a/bspatch.c b/bspatch.c
+index 643c60b..543379c 100644
+--- a/bspatch.c
++++ b/bspatch.c
+@@ -28,6 +28,7 @@
+ __FBSDID("$FreeBSD: src/usr.bin/bsdiff/bspatch/bspatch.c,v 1.1 2005/08/06 01:59:06 cperciva Exp $");
+ #endif
+ 
++#include <sys/types.h>
+ #include <bzlib.h>
+ #include <stdlib.h>
+ #include <stdio.h>
diff --git a/pkgs/tools/filesystems/btrfsprogs/default.nix b/pkgs/tools/filesystems/btrfsprogs/default.nix
index 16c5b58c38da..a41b2f28d854 100644
--- a/pkgs/tools/filesystems/btrfsprogs/default.nix
+++ b/pkgs/tools/filesystems/btrfsprogs/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, attr, acl, zlib, libuuid, e2fsprogs, lzo }:
 
-let version = "3.12"; in
+let version = "3.14"; in
 
 stdenv.mkDerivation rec {
   name = "btrfs-progs-${version}";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/mason/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    sha256 = "1pwcjf9jqdiy8445r1xkazqa07xmapnn0ylyz7yzphci3ib66zh9";
+    sha256 = "1qjy4bc96nfzkdjp6hwb85aasqs87nkmgi8pl6qa6cpvml3627cq";
   };
 
   buildInputs = [ attr acl zlib libuuid e2fsprogs lzo ];
diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix
index 16e836e2ddc2..dcbf7235e49c 100644
--- a/pkgs/tools/filesystems/e2fsprogs/default.nix
+++ b/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   };
 
   # libuuid, libblkid, uuidd and fsck are in util-linux-ng (the "libuuid" dependency).
-  configureFlags = "--enable-elf-shlibs --disable-libuuid --disable-libblkid --disable-uuidd --disable-fsck";
+  configureFlags = "--enable-elf-shlibs --disable-libuuid --disable-libblkid --disable-uuidd --disable-fsck --enable-symlink-install";
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/tools/filesystems/f2fs-tools/default.nix b/pkgs/tools/filesystems/f2fs-tools/default.nix
new file mode 100644
index 000000000000..f52ead32acd4
--- /dev/null
+++ b/pkgs/tools/filesystems/f2fs-tools/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchgit, autoconf, automake, libtool, pkgconfig, libuuid }:
+
+stdenv.mkDerivation rec {
+  name = "f2fs-tools-${version}";
+  version = "1.3.0";
+
+  src = fetchgit {
+    url = git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git;
+    rev = "refs/tags/v${version}";
+    sha256 = "1r97k91qaf42jz623jqy0wm97yjq1ym034q4fdhfirq27s46sn6i";
+  };
+
+  buildInputs = [ autoconf automake libtool pkgconfig libuuid ];
+
+  preConfigure = ''
+    sed -i '/AC_SUBST/d' configure.ac
+    autoreconf --install
+  '';
+
+  meta = {
+    homepage = "http://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-tools.git/";
+    description = "Userland tools for the f2fs filesystem";
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.emery ];
+  };
+}
diff --git a/pkgs/tools/filesystems/mtpfs/default.nix b/pkgs/tools/filesystems/mtpfs/default.nix
new file mode 100644
index 000000000000..7725b0d7af8e
--- /dev/null
+++ b/pkgs/tools/filesystems/mtpfs/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, pkgconfig, fuse, libmtp, glib, libmad, libid3tag }:
+
+stdenv.mkDerivation rec {
+  name = "mtpfs-1.1";
+
+  buildInputs = [ pkgconfig fuse libmtp glib libid3tag libmad ];
+
+  # adding LIBS is a hack, duno why it does not find libid3tag.so by adding buildInputs
+  preConfigure = ''
+    export MAD_CFLAGS=${libmad}/include
+    export MAD_LIBS=${libmad}/lib/libmad.so
+    export LIBS=${libid3tag}/lib/libid3tag.so
+  '';
+
+  src = fetchurl {
+    url = "http://www.adebenham.com/files/mtp/${name}.tar.gz";
+    sha256 = "07acrqb17kpif2xcsqfqh5j4axvsa4rnh6xwnpqab5b9w5ykbbqv";
+  };
+
+  meta = {
+    homepage = https://code.google.com/p/mtpfs/;
+    description = "FUSE Filesystem providing access to MTP devices";
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.qknight ];
+  };
+}
diff --git a/pkgs/tools/graphics/pfstools/default.nix b/pkgs/tools/graphics/pfstools/default.nix
index 9b0a83725eaa..fbd1778faefd 100644
--- a/pkgs/tools/graphics/pfstools/default.nix
+++ b/pkgs/tools/graphics/pfstools/default.nix
@@ -2,11 +2,11 @@
 freeglut, bzip2, libX11, libpng, expat, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "pfstools-1.8.3";
+  name = "pfstools-1.8.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/pfstools/${name}.tar.gz";
-    sha256 = "1j3pzwpxvsx9220176bfjallc73jyda61xqkvnmlxqfd3n7ycgx1";
+    sha256 = "01kk2r8afrb3vrhm8abfjdhhan97lzpapc4n8w1mpdp3kv9miy9c";
   };
 
   configureFlags = "--with-moc=${qt4}/bin/moc";
diff --git a/pkgs/tools/graphics/qrencode/default.nix b/pkgs/tools/graphics/qrencode/default.nix
index 3b83a18fd36e..892ef54cdeee 100644
--- a/pkgs/tools/graphics/qrencode/default.nix
+++ b/pkgs/tools/graphics/qrencode/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libpng, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "qrencode-3.2.0";
+  name = "qrencode-3.4.3";
 
   src = fetchurl {
     url = "${meta.homepage}/${name}.tar.bz2";
-    sha256 = "13q6cz2lif8d7y95f8sgfqaxc1qr0sz9nl2xh71lfmx7v5ybri03";
+    sha256 = "163sb580p570p27imc6jhkfdw15kzp8vy1jq92nip1rwa63i9myz";
   };
 
   buildInputs = [ libpng ];
diff --git a/pkgs/tools/misc/apparix/default.nix b/pkgs/tools/misc/apparix/default.nix
new file mode 100644
index 000000000000..693ca27a88d9
--- /dev/null
+++ b/pkgs/tools/misc/apparix/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "apparix-11-062";
+
+  src = fetchurl {
+    url = "http://micans.org/apparix/src/${name}.tar.gz";
+    sha256 = "211bb5f67b32ba7c3e044a13e4e79eb998ca017538e9f4b06bc92d5953615235";
+  };
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    homepage = http://micans.org/apparix;
+    description = "Add directory bookmarks, distant listing, and distant editing to the command line";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/autorandr/default.nix b/pkgs/tools/misc/autorandr/default.nix
index 2c7505260a69..960d85ab6be6 100644
--- a/pkgs/tools/misc/autorandr/default.nix
+++ b/pkgs/tools/misc/autorandr/default.nix
@@ -16,6 +16,7 @@ in
     src = fetchgit {
       inherit rev;
       url = "https://github.com/wertarbyte/autorandr.git";
+      sha256 = "1x8agg6mf5jr0imw7dznr8kxyw970bf252bda9q7b0z4yksya2zd"; 
     };
 
     patchPhase = ''
diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index e5f9eb1be2c0..b0dbb049cbf7 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -58,7 +58,9 @@ let
     # and {Open,Free}BSD.
     doCheck = stdenv ? glibc;
 
-    enableParallelBuilding = true;
+    # Saw random failures like ‘help2man: can't get '--help' info from
+    # man/sha512sum.td/sha512sum’.
+    enableParallelBuilding = false;
 
     NIX_LDFLAGS = optionalString selinuxSupport "-lsepol";
 
diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix
index cbcbbb2bb4aa..8d6cbc1359bb 100644
--- a/pkgs/tools/misc/file/default.nix
+++ b/pkgs/tools/misc/file/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "file-5.14";
+  name = "file-5.17";
 
   buildInputs = [ zlib ];
 
   src = fetchurl {
     url = "ftp://ftp.astron.com/pub/file/${name}.tar.gz";
-    sha256 = "1r3zqxr7al5yy2595hd9hxwc14iij021p46d5my3n2lhs0fs06s6";
+    sha256 = "1jl31jli87s5xnjq14r1fh72qc95562qbr5f63d68yrq3ca9gsrz";
   };
 
   meta = {
diff --git a/pkgs/tools/misc/logstash-forwarder/default.nix b/pkgs/tools/misc/logstash-forwarder/default.nix
new file mode 100644
index 000000000000..52180c75c981
--- /dev/null
+++ b/pkgs/tools/misc/logstash-forwarder/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchgit, go }:
+stdenv.mkDerivation {
+  name = "logstash-forwarder-20140410";
+  src = fetchgit {
+    url = https://github.com/elasticsearch/logstash-forwarder.git;
+    rev = "ec504792108ab6536b45bcf6dff6d26a6b56fef3";
+    sha256 = "309545ceaec171bee997cad260bef1433e041b9f3bfe617d475bcf79924f943d";
+  };
+  buildInputs = [ go ];
+  installPhase = ''
+    mkdir -p $out/bin
+    cp build/bin/logstash-forwarder $out/bin
+  '';
+
+  meta = {
+    license = stdenv.lib.licenses.asl20;
+    homepage = https://github.com/elasticsearch/logstash-forwarder;
+  };
+}
diff --git a/pkgs/tools/misc/mc/default.nix b/pkgs/tools/misc/mc/default.nix
index 88194ec0fdf3..594947ba13d5 100644
--- a/pkgs/tools/misc/mc/default.nix
+++ b/pkgs/tools/misc/mc/default.nix
@@ -2,11 +2,11 @@
 , libX11, libICE, perl, zip, unzip, gettext, slang}:
 
 stdenv.mkDerivation rec {
-  name = "mc-4.8.11";
+  name = "mc-4.8.12";
   
   src = fetchurl {
-    url = http://www.midnight-commander.org/downloads/mc-4.8.11.tar.bz2;
-    sha256 = "1yjm6rp9h3491mar7vdw88mgvydmz7zdj97mmjkqyf5bidx4w2hf";
+    url = http://www.midnight-commander.org/downloads/mc-4.8.12.tar.bz2;
+    sha256 = "15lkwcis0labshq9k8c2fqdwv8az2c87qpdqwp5p31s8gb1gqm0h";
   };
   
   buildInputs = [ pkgconfig perl glib gpm slang zip unzip file gettext libX11 libICE e2fsprogs ];
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "File Manager and User Shell for the GNU Project";
     homepage = http://www.midnight-commander.org;
+    repositories.git = git://github.com/MidnightCommander/mc.git;
     license = "GPLv2+";
     maintainers = [ stdenv.lib.maintainers.sander ];
   };
diff --git a/pkgs/tools/misc/mdbtools/git.nix b/pkgs/tools/misc/mdbtools/git.nix
index e7342d9b3e61..2805514965ea 100644
--- a/pkgs/tools/misc/mdbtools/git.nix
+++ b/pkgs/tools/misc/mdbtools/git.nix
@@ -1,22 +1,25 @@
 { stdenv, fetchurl, fetchgit, glib, readline, bison, flex, pkgconfig,
-  libiconv, autoconf, automake, libtool }:
+  libiconv, autoconf, automake, libtool, which, txt2man, gnome_doc_utils,
+  scrollkeeper}:
 
 stdenv.mkDerivation {
   name = "mdbtools-git";
 
   src = fetchgit {
     url = "http://github.com/brianb/mdbtools.git";
-    rev = "5ac44b69d9375cca3e1055b70fd22abf7fbf17ab";
-    sha256 = "094e6b480c6fda3a000d0d8539b209d2d7c204a440660a21c11f2e1c9b3aa345";
+    rev = "dfd752ec022097ee1e0999173aa604d8a0c0ca8b";
+    sha256 = "0ibj36yxlhwjgi7cj170lwpbzdbgidkq5p8raa59v76bdrxwmb0n";
   };
 
   buildInputs = [glib readline bison flex pkgconfig libiconv autoconf automake
-    libtool];
+    libtool which txt2man gnome_doc_utils scrollkeeper ];
 
   preConfigure = ''
     sed -e 's@static \(GHashTable [*]mdb_backends;\)@\1@' -i src/libmdb/backend.c
-    export NIX_LDFLAGS="$NIX_LDFLAGS -liconv"
-    ./autogen.sh
+    sed -e '/ENABLE_GTK_DOC/aAM_CONDITIONAL(HAVE_GNOME_DOC_UTILS, test x$enable_gtk_doc = xyes)' \
+    -e  '/ENABLE_GTK_DOC/aAM_CONDITIONAL(ENABLE_SK, test x$enable_scrollkeeper = xyes)'          \
+    -i configure.ac
+    autoreconf -i -f
   '';
 
   meta = {
diff --git a/pkgs/tools/misc/minicom/default.nix b/pkgs/tools/misc/minicom/default.nix
index 2ab1195020c3..8ede3aa918b1 100644
--- a/pkgs/tools/misc/minicom/default.nix
+++ b/pkgs/tools/misc/minicom/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, ncurses }:
 
 stdenv.mkDerivation rec {
-  name = "minicom-2.6.2";
+  name = "minicom-2.7";
 
   src = fetchurl {
-    url = "http://alioth.debian.org/frs/download.php/file/3869/${name}.tar.gz";
-    sha256 = "0s4ibk8scspm8a0raf5s4zgp9b82c4bn529rir9abzqlg5gj3kzk";
+    url = "http://alioth.debian.org/frs/download.php/file/3977/${name}.tar.gz";
+    sha256 = "1x04m4k7c71j5cnhzpjrbz43dd96k4mpkd0l87v5skrgp1isdhws";
   };
 
   buildInputs = [ncurses];
diff --git a/pkgs/tools/misc/pastebinit/default.nix b/pkgs/tools/misc/pastebinit/default.nix
new file mode 100644
index 000000000000..cf41de29c500
--- /dev/null
+++ b/pkgs/tools/misc/pastebinit/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, python3Packages }:
+
+python3Packages.buildPythonPackage rec {
+  version = "1.4.1";
+  name = "pastebinit-${version}";
+
+  src = fetchurl {
+    url = "https://launchpad.net/pastebinit/trunk/${version}/+download/${name}.tar.bz2";
+    md5 = "b771872a9483cf92be90a3e4420fd3c9";
+  };
+
+  configurePhase = "export DETERMINISTIC_BUILD=1";
+
+  buildPhase = "";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/etc
+    cp -a pastebinit $out/bin
+    cp -a pastebin.d $out/etc
+    substituteInPlace $out/bin/pastebinit --replace "'/etc/pastebin.d" "'$out/etc/pastebin.d"
+  '';
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://launchpad.net/pastebinit;
+    description = "A software that lets you send anything you want directly to a pastebin from the command line";
+    maintainers = with maintainers; [ lethalman ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/units/default.nix b/pkgs/tools/misc/units/default.nix
index 0d1a962cbf66..84f0f63bd252 100644
--- a/pkgs/tools/misc/units/default.nix
+++ b/pkgs/tools/misc/units/default.nix
@@ -1,13 +1,14 @@
 {stdenv, fetchurl}:
 stdenv.mkDerivation {
-  name = "units-2.02";
+  name = "units-2.10";
 
   src = fetchurl {
-    url = mirror://gnu/units/units-2.02.tar.gz;
-    sha256 = "16jfji9g1zc99agd5dcinajinhcxr4dgq2lrbc9md69ir5qgld1b";
+    url = mirror://gnu/units/units-2.10.tar.gz;
+    sha256 = "0fa4bk5aqyis5zisz6l8mqqk76njj6zgx3pbrjp5kvraz1dz78lc";
   };
 
   meta = {
     description = "Unit conversion tool";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 3edce28151ea..1a99cb291c47 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, python, zip }:
 
 let
-  version = "2014.03.12";
+  version = "2014.04.02";
 in
 stdenv.mkDerivation rec {
   name = "youtube-dl-${version}";
 
   src = fetchurl {
     url = "http://youtube-dl.org/downloads/${version}/${name}.tar.gz";
-    sha256 = "1fap7mx2bmfr1jv7v5n2khl72mbasnzlasqd8gi654cl9xp12p5x";
+    sha256 = "1c9d5wjl0aaqfvz868wbkr3dwby9vjkx0hkbnwx0wnpg48nlnwpm";
   };
 
   buildInputs = [ python ];
diff --git a/pkgs/tools/networking/cjdns/builder.sh b/pkgs/tools/networking/cjdns/builder.sh
new file mode 100644
index 000000000000..c2e3701c0468
--- /dev/null
+++ b/pkgs/tools/networking/cjdns/builder.sh
@@ -0,0 +1,9 @@
+source $stdenv/setup
+
+unpackPhase
+cd git-export
+
+bash do
+
+mkdir -p $out/sbin
+cp cjdroute $out/sbin
diff --git a/pkgs/tools/networking/cjdns/default.nix b/pkgs/tools/networking/cjdns/default.nix
index b42f202099b1..48e21f4507e5 100644
--- a/pkgs/tools/networking/cjdns/default.nix
+++ b/pkgs/tools/networking/cjdns/default.nix
@@ -1,31 +1,27 @@
-{ stdenv, fetchgit, cmake }:
+{ stdenv, fetchgit, nodejs, which, python27 }:
 
 let
-  rev = "f7b02ac0cc";
+  date = "20140303";
+  rev = "f11ce1fd4795b0173ac0ef18c8a6f752aa824adb";
 in
 stdenv.mkDerivation {
-  name = "cjdns-20130620-${stdenv.lib.strings.substring 0 7 rev}";
+  name = "cjdns-${date}-${stdenv.lib.strings.substring 0 7 rev}";
 
   src = fetchgit {
-    url = "https://github.com/cjdelisle/cjdns.git";
+    url = "git://github.com/cjdelisle/cjdns.git";
     inherit rev;
-    sha256 = "1580a62yhph62nv7q2jdqrbkyk9a9g5i17snibkxyykc7rili5zq";
+    sha256 = "1bxhf9f1v0slf9mz3ll6jf45mkwvwxlf3yqxx9k23kjyr1nsc8s8";
   };
 
-  preConfigure = ''
-    sed -i -e '/toolchain.*CACHE/d' CMakeLists.txt
-  '';
+  buildInputs = [ which python27 nodejs];
 
-  doCheck = true;
-  checkPhase = "ctest";
-
-  buildInputs = [ cmake ];
+  builder = ./builder.sh;
 
   meta = {
     homepage = https://github.com/cjdelisle/cjdns;
     description = "Encrypted networking for regular people";
-    license = "GPLv3+";
-    maintainers = with stdenv.lib.maintainers; [viric];
-    platforms = with stdenv.lib.platforms; linux;
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = with stdenv.lib.maintainers; [ viric emery ];
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/dd-agent/default.nix b/pkgs/tools/networking/dd-agent/default.nix
index d9fa49320a5a..1e0f26cc92cd 100644
--- a/pkgs/tools/networking/dd-agent/default.nix
+++ b/pkgs/tools/networking/dd-agent/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl, python, sysstat, unzip }:
+{ stdenv, fetchurl, python, sysstat, unzip, tornado, makeWrapper }:
 
 stdenv.mkDerivation rec {
-    version = "4.0.1";
+    version = "4.2.0";
     name = "dd-agent-${version}";
 
     src = fetchurl {
       url = "https://github.com/DataDog/dd-agent/archive/${version}.zip";
-      sha256 = "0gybdbjkj7qwnzic03xkypagb30zhm22gp3nkwrdhi8fdmwz3nm1";
+      sha256 = "0lp3h3flb50i64kgkj9kyyf3p1xm0nipxi22w5pmhb71l678d216";
     };
 
-    buildInputs = [ python unzip ];
-    propagatedBuildInputs = [ python ];
+    buildInputs = [ python unzip makeWrapper ];
+    propagatedBuildInputs = [ python tornado ];
 
     postUnpack = "export sourceRoot=$sourceRoot/packaging";
 
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
     postInstall = ''
       mv $out/usr/* $out
       rmdir $out/usr
+      wrapProgram $out/bin/dd-forwarder --prefix PYTHONPATH : $PYTHONPATH
     '';
 
     meta = {
diff --git a/pkgs/tools/networking/dhcpcd/default.nix b/pkgs/tools/networking/dhcpcd/default.nix
index fe683c382853..758e3fd79805 100644
--- a/pkgs/tools/networking/dhcpcd/default.nix
+++ b/pkgs/tools/networking/dhcpcd/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   installFlags = "DBDIR=\${TMPDIR}/db SYSCONFDIR=$(out)/etc";
 
   # Check that the udev plugin got built.
-  postInstall = "[ -e $out/lib/dhcpcd/dev/udev.so ]";
+  postInstall = stdenv.lib.optional (udev != null) "[ -e $out/lib/dhcpcd/dev/udev.so ]";
 
   meta = {
     description = "A client for the Dynamic Host Configuration Protocol (DHCP)";
diff --git a/pkgs/tools/networking/dnsmasq/default.nix b/pkgs/tools/networking/dnsmasq/default.nix
index 0c5dfc6fd748..d8f62913ad50 100644
--- a/pkgs/tools/networking/dnsmasq/default.nix
+++ b/pkgs/tools/networking/dnsmasq/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "dnsmasq-2.68";
+  name = "dnsmasq-2.69";
 
   src = fetchurl {
     url = "http://www.thekelleys.org.uk/dnsmasq/${name}.tar.gz";
-    sha256 = "0bvw16i83ybiajskma59zjiqw59vzlcqf8f69k0crwak3zb1j820";
+    sha256 = "1zf4d6kjbsn6gwfwvmch1y84q67na1qhh0gyd50ip1vjsmw2l4i7";
   };
 
   makeFlags = "DESTDIR= BINDIR=$(out)/bin MANDIR=$(out)/man LOCALEDIR=$(out)/share/locale";
diff --git a/pkgs/tools/networking/easyrsa/default.nix b/pkgs/tools/networking/easyrsa/default.nix
index 99cfb92a18b6..e49c32aac704 100644
--- a/pkgs/tools/networking/easyrsa/default.nix
+++ b/pkgs/tools/networking/easyrsa/default.nix
@@ -26,7 +26,8 @@ stdenv.mkDerivation rec {
 
   # Make sane defaults and patch default config vars
   postInstall = ''
-    for prog in $(find "$out/share/easy-rsa" -executable); do
+    cp $out/share/easy-rsa/openssl-1.0.0.cnf $out/share/easy-rsa/openssl.cnf
+    for prog in $(find "$out/share/easy-rsa" -executable -type f); do
       makeWrapper "$prog" "$out/bin/$(basename $prog)" \
         --set EASY_RSA "$out/share/easy-rsa" \
         --set OPENSSL "${openssl}/bin/openssl" \
diff --git a/pkgs/tools/networking/iperf/default.nix b/pkgs/tools/networking/iperf/default.nix
index 2ee8a90cb4af..33d8ee2fd636 100644
--- a/pkgs/tools/networking/iperf/default.nix
+++ b/pkgs/tools/networking/iperf/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = "http://sourceforge.net/projects/iperf/"; 
     description = "Tool to measure IP bandwidth using UDP or TCP";
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = "as-is";
   };
 }
diff --git a/pkgs/tools/networking/isync/default.nix b/pkgs/tools/networking/isync/default.nix
index 86986ed9b954..ed01ccacd797 100644
--- a/pkgs/tools/networking/isync/default.nix
+++ b/pkgs/tools/networking/isync/default.nix
@@ -1,14 +1,13 @@
 { fetchurl, stdenv, openssl, pkgconfig, db }:
 
 stdenv.mkDerivation rec {
-  name = "isync-1.0.6";
+  name = "isync-1.1.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/isync/${name}.tar.gz";
-    sha256 = "0bv3hw6mc9xi55q6lpyz1w3dyrk6rlxa8ny2x1b44mrnbrx7chz5";
+    sha256 = "51f5618c239013fb770f98ae269f24ee417214efaaf7e22821b4a27cf9a9213c";
   };
 
-  patches = [ ./isync-recursice-imap.patch ]; # usefull patch to enable subfolders listing
   buildInputs = [ openssl pkgconfig db ];
 
   meta = {
diff --git a/pkgs/tools/networking/lftp/default.nix b/pkgs/tools/networking/lftp/default.nix
index 2bc575bbd02b..434ddbce3e71 100644
--- a/pkgs/tools/networking/lftp/default.nix
+++ b/pkgs/tools/networking/lftp/default.nix
@@ -1,20 +1,22 @@
 { stdenv, fetchurl, gnutls, pkgconfig, readline, zlib, xz }:
 
 stdenv.mkDerivation rec {
-  name = "lftp-4.4.5";
+  name = "lftp-4.4.15";
 
   src = fetchurl {
-    url = "ftp://ftp.tuwien.ac.at/infosys/browsers/ftp/lftp/${name}.tar.xz";
-    sha256 = "1p3nxsd2an9pdwc3vgwxy8p5nnjrc7mhilikjaddy62cyvxdbpxq";
+    url = "http://lftp.yar.ru/ftp/${name}.tar.gz";
+    sha256 = "1iw0xvvi9wr7grm6dwbxgm8ms98pg5skj44q477gxzrrff9dvvvp";
   };
 
   patches = [ ./no-gets.patch ];
 
   buildInputs = [ gnutls pkgconfig readline zlib ];
 
-  meta = {
-    homepage = http://lftp.yar.ru/;
+  meta = with stdenv.lib; {
     description = "A file transfer program supporting a number of network protocols";
-    license = "GPL";
+    homepage = http://lftp.yar.ru/;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/tools/networking/mailutils/default.nix b/pkgs/tools/networking/mailutils/default.nix
index 8ebe7df35e76..3ac82e51bf8b 100644
--- a/pkgs/tools/networking/mailutils/default.nix
+++ b/pkgs/tools/networking/mailutils/default.nix
@@ -51,5 +51,8 @@ stdenv.mkDerivation rec {
 
     # Some of the dependencies fail to build on {cyg,dar}win.
     platforms = stdenv.lib.platforms.gnu;
+
+    # Tests fail since gcc 4.8
+    broken = true;
   };
 }
diff --git a/pkgs/tools/networking/miniupnpd/default.nix b/pkgs/tools/networking/miniupnpd/default.nix
index b5002d229903..ef3db0a4a21f 100644
--- a/pkgs/tools/networking/miniupnpd/default.nix
+++ b/pkgs/tools/networking/miniupnpd/default.nix
@@ -1,20 +1,16 @@
-{ stdenv, fetchurl, iptables, libnfnetlink, libnetfilter_conntrack }:
+{ stdenv, fetchurl, iptables, libnfnetlink }:
 
 assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
-  name = "miniupnpd-1.7.20121005";
+  name = "miniupnpd-1.8.20140401";
 
   src = fetchurl {
     url = "http://miniupnp.free.fr/files/download.php?file=${name}.tar.gz";
-    sha256 = "03kaxj808hgj1zf2528pzilgywgh70mh0qivjb5nm3spziiq32sv";
+    sha256 = "1gfdbfqcw6ih830si51yzqbyymgcbwkiv9vk5dwnxs78b7xgyv88";
   };
 
-  buildInputs = [ iptables libnfnetlink libnetfilter_conntrack ];
-
-  patchPhase = ''
-    sed -i -e 's/upnputils\.o -lnfnetlink/upnputils.o/' Makefile.linux
-  '';
+  buildInputs = [ iptables libnfnetlink ];
 
   NIX_CFLAGS_COMPILE = "-DIPTABLES_143";
 
@@ -24,12 +20,9 @@ stdenv.mkDerivation rec {
 
   makeFlags = "LIBS=";
 
-  installFlags = "PREFIX=$(out) INSTALLPREFIX=$(out)";
+  buildFlags = "miniupnpd genuuid";
 
-  preInstall =
-    ''
-      mkdir -p $out/share/man/man8
-    '';
+  installFlags = "PREFIX=$(out) INSTALLPREFIX=$(out)";
 
   meta = {
     homepage = http://miniupnp.free.fr/;
diff --git a/pkgs/tools/networking/mosh/default.nix b/pkgs/tools/networking/mosh/default.nix
index 2708210af805..e781af7c235a 100644
--- a/pkgs/tools/networking/mosh/default.nix
+++ b/pkgs/tools/networking/mosh/default.nix
@@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
     '';
     license = "GPLv3+";
     maintainers = with stdenv.lib.maintainers; [viric];
-    platforms = with stdenv.lib.platforms; linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/tools/networking/mtr/default.nix b/pkgs/tools/networking/mtr/default.nix
index 45dcb087bd76..c463c94d6109 100644
--- a/pkgs/tools/networking/mtr/default.nix
+++ b/pkgs/tools/networking/mtr/default.nix
@@ -10,10 +10,10 @@ let
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
     baseName="mtr";
-    version="0.82";
+    version="0.85";
     name="${baseName}-${version}";
     url="ftp://ftp.bitwizard.nl/${baseName}/${name}.tar.gz";
-    hash="185nx4y6xn7vv6l3pbyc0ljmwfl4si4zszwad1jkbq1scb4mgd7k";
+    hash="1jqrz8mil3lraaqgc87dyvx8d4bf3vq232pfx9mksxnkbphp4qvd";
   };
 in
 rec {
@@ -25,9 +25,11 @@ rec {
   inherit (sourceInfo) name version;
   inherit buildInputs;
 
+  patches = [ ./edd425.patch ];
+
   /* doConfigure should be removed if not needed */
-  phaseNames = ["doConfigure" "doMakeInstall"];
-      
+  phaseNames = ["doConfigure" "doPatch" "doMakeInstall"];
+
   meta = {
     description = "A network diagnostics tool";
     maintainers = with a.lib.maintainers;
@@ -35,7 +37,7 @@ rec {
       raskin
     ];
     platforms = with a.lib.platforms;
-      linux;
+      unix;
     license = a.lib.licenses.gpl2;
   };
   passthru = {
diff --git a/pkgs/tools/networking/mtr/edd425.patch b/pkgs/tools/networking/mtr/edd425.patch
new file mode 100644
index 000000000000..b950cacd2e57
--- /dev/null
+++ b/pkgs/tools/networking/mtr/edd425.patch
@@ -0,0 +1,218 @@
+diff --git a/asn.c b/asn.c
+index eac8d5e..33622ca 100644
+--- a/asn.c
++++ b/asn.c
+@@ -16,6 +16,8 @@
+     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+ 
++#include "config.h"
++
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -35,7 +37,6 @@
+ #include <sys/socket.h>
+ #include <search.h>
+ 
+-#include "config.h"
+ #include "mtr.h"
+ #include "asn.h"
+ 
+diff --git a/curses.c b/curses.c
+index eacc40d..b96daee 100644
+--- a/curses.c
++++ b/curses.c
+@@ -16,7 +16,8 @@
+     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+ 
+-#include <config.h>
++#include "config.h"
++
+ #include <strings.h>
+ #include <unistd.h>
+ 
+diff --git a/display.c b/display.c
+index aa369ee..3545467 100644
+--- a/display.c
++++ b/display.c
+@@ -16,7 +16,8 @@
+     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+ 
+-#include <config.h>
++#include "config.h"
++
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <sys/types.h>
+diff --git a/dns.c b/dns.c
+index e89fd4b..4076b71 100644
+--- a/dns.c
++++ b/dns.c
+@@ -22,7 +22,8 @@
+     Released under GPL, as above.
+ */
+ 
+-#include <config.h>
++#include "config.h"
++
+ #include <sys/types.h>
+ #include <sys/time.h>
+ #include <sys/select.h>
+diff --git a/getopt.c b/getopt.c
+index 3d43e26..e2f8758 100644
+--- a/getopt.c
++++ b/getopt.c
+@@ -27,7 +27,7 @@
+ #endif
+ 
+ #ifdef HAVE_CONFIG_H
+-#include <config.h>
++#include "config.h"
+ #endif
+ 
+ #if !defined (__STDC__) || !__STDC__
+diff --git a/getopt1.c b/getopt1.c
+index bccf8b2..0a2d405 100644
+--- a/getopt1.c
++++ b/getopt1.c
+@@ -16,7 +16,7 @@
+    Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+ 
+ #ifdef HAVE_CONFIG_H
+-#include <config.h>
++#include "config.h"
+ #endif
+ 
+ #include "getopt.h"
+diff --git a/gtk.c b/gtk.c
+index 38ed507..7faa132 100644
+--- a/gtk.c
++++ b/gtk.c
+@@ -17,7 +17,7 @@
+     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+ 
+-#include <config.h>
++#include "config.h"
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/mtr.c b/mtr.c
+index 50eb464..416b744 100644
+--- a/mtr.c
++++ b/mtr.c
+@@ -16,19 +16,21 @@
+     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+ 
++#include "config.h"
++
+ #include <sys/types.h>
+-#include <config.h>
+-#include <netdb.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <netinet/in.h>
+-#include <sys/socket.h>
+ #include <unistd.h>
+-#include <strings.h>
+-#include <time.h>
+ #include <errno.h>
+ #include <string.h>
++#include <strings.h>
++
++#include <netdb.h>
++#include <netinet/in.h>
++#include <sys/socket.h>
++#include <time.h>
+ #include <ctype.h>
+ #include <assert.h>
+ #include <fcntl.h>
+diff --git a/net.c b/net.c
+index 1c8d28f..d648804 100644
+--- a/net.c
++++ b/net.c
+@@ -16,7 +16,7 @@
+     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+ 
+-#include <config.h>
++#include "config.h"
+ 
+ #if defined(HAVE_SYS_XTI_H)
+ #include <sys/xti.h>
+@@ -1562,4 +1562,4 @@ void net_harvest_fds(void)
+   net_add_fds(&writefd, &maxfd);
+   select(maxfd, NULL, &writefd, NULL, &tv);
+   net_process_fds(&writefd);
+-}
+\ No newline at end of file
++}
+diff --git a/raw.c b/raw.c
+index 8b0df47..0e1f4f4 100644
+--- a/raw.c
++++ b/raw.c
+@@ -18,7 +18,8 @@
+     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+ 
+-#include <config.h>
++#include "config.h"
++
+ #include <ctype.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+@@ -27,7 +28,6 @@
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+ 
+-
+ #include "mtr.h"
+ #include "raw.h"
+ #include "net.h"
+diff --git a/report.c b/report.c
+index 71040e4..39b2fb2 100644
+--- a/report.c
++++ b/report.c
+@@ -16,7 +16,8 @@
+     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+ 
+-#include <config.h>
++#include "config.h"
++
+ #include <sys/types.h>
+ #include <stdio.h>
+ #include <netdb.h>
+diff --git a/select.c b/select.c
+index 31bfd5f..7553675 100644
+--- a/select.c
++++ b/select.c
+@@ -16,7 +16,8 @@
+     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+ 
+-#include <config.h>
++#include "config.h"
++
+ #include <sys/types.h>
+ #include <sys/time.h>
+ #include <stdlib.h>
+diff --git a/split.c b/split.c
+index 642353e..5ead235 100644
+--- a/split.c
++++ b/split.c
+@@ -20,7 +20,8 @@
+     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+ 
+-#include <config.h>
++#include "config.h"
++
+ #include <ctype.h>
+ #include <stdlib.h>
+ #include <stdio.h>
diff --git a/pkgs/tools/networking/nbd/default.nix b/pkgs/tools/networking/nbd/default.nix
index 54f6689582dc..b2943eb2aced 100644
--- a/pkgs/tools/networking/nbd/default.nix
+++ b/pkgs/tools/networking/nbd/default.nix
@@ -1,14 +1,11 @@
 { stdenv, fetchurl, pkgconfig, glib }:
 
-let
-  name = "nbd-3.7";
-in
-stdenv.mkDerivation {
-  inherit name;
+stdenv.mkDerivation rec {
+  name = "nbd-3.8";
 
   src = fetchurl {
     url = "mirror://sourceforge/nbd/${name}.tar.xz";
-    sha256 = "1k4bvg5rg4q6b58y4kd9qwj07sznsfbknlpc6y1bk6c48rgr3d0b";
+    sha256 = "1qnkzrnc9m4n814ciqh95q9j8l7d6yd7sn36q8yn0dmi1rvj78j8";
   };
 
   buildInputs = [ pkgconfig glib ] ++ stdenv.lib.optional (stdenv ? glibc) stdenv.glibc.kernelHeaders;
diff --git a/pkgs/tools/networking/ndjbdns/default.nix b/pkgs/tools/networking/ndjbdns/default.nix
new file mode 100644
index 000000000000..e2dc1fd1eafd
--- /dev/null
+++ b/pkgs/tools/networking/ndjbdns/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, systemd, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  version = "1.05.9";
+  name = "ndjbdns-${version}";
+  src = fetchurl {
+    url = "http://pjp.dgplug.org/ndjbdns/${name}.tar.gz";
+    sha256 = "0gf3hlmr6grcn6dzflf83lqqfp6hk3ldhbc7z0a1rrh059m93ap5";
+  };
+
+  buildInputs = [ pkgconfig systemd ];
+
+  meta = with stdenv.lib; {
+    description = "N-DJBDNS is a brand new release of the Djbdns. Djbdns is a fully‐fledged Domain Name System(DNS), originally written by the eminent author of qmail, Dr. D J Bernstein.";
+    homepage = http://pjp.dgplug.org/ndjbdns/;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.msackman ];
+    platforms = platforms.linux;
+  };
+
+}
\ No newline at end of file
diff --git a/pkgs/tools/networking/network-manager-applet/default.nix b/pkgs/tools/networking/network-manager-applet/default.nix
index 6db55ada1929..8d0d4521b868 100644
--- a/pkgs/tools/networking/network-manager-applet/default.nix
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    gnome3.gtk libglade networkmanager libnotify libsecret dbus_glib
+    gnome3.gtk libglade networkmanager libnotify libsecret dbus_glib gsettings_desktop_schemas
     polkit isocodes makeWrapper udev gnome3.gconf gnome3.libgnome_keyring
   ];
 
@@ -44,9 +44,12 @@ stdenv.mkDerivation rec {
     ln -s ${networkmanager_openvpn}/libexec/* $out/libexec/
     ln -s ${networkmanager_vpnc}/libexec/* $out/libexec/
     ln -s ${networkmanager_openconnect}/libexec/* $out/libexec/
+  '';
+
+  preFixup = ''
     wrapProgram "$out/bin/nm-applet" \
       --prefix GIO_EXTRA_MODULES : "${glib_networking}/lib/gio/modules" \
-      --prefix XDG_DATA_DIRS : "${gsettings_desktop_schemas}/share:${gnome3.gtk}/share:$out/share" \
+      --prefix XDG_DATA_DIRS : "${gnome3.gtk}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
       --set GCONF_CONFIG_SOURCE "xml::~/.gconf" \
       --prefix PATH ":" "${gnome3.gconf}/bin"
   '';
@@ -57,9 +60,5 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ phreedom urkud rickynils ];
     platforms = platforms.linux;
-
-    # resolve collision between evince and nm-applet for
-    # gschemas.compiled
-    priority = 6;
   };
 }
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index 0b68ec83b522..6926b9aa82aa 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -18,11 +18,11 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "openssh-6.5p1";
+  name = "openssh-6.6p1";
 
   src = fetchurl {
     url = "ftp://ftp.nl.uu.net/pub/OpenBSD/OpenSSH/portable/${name}.tar.gz";
-    sha256 = "09wh7mi65aahyxd2xvq1makckhd5laid8c0pb8njaidrbpamw6d1";
+    sha256 = "1fq3w86q05y5nn6z878wm312k0svaprw8k007188fd259dkg1ha8";
   };
 
   prePatch = stdenv.lib.optionalString hpnSupport
@@ -31,7 +31,17 @@ stdenv.mkDerivation rec {
       export NIX_LDFLAGS="$NIX_LDFLAGS -lgcc_s"
     '';
 
-  patches = [ ./locale_archive.patch ];
+  patches = [
+    ./locale_archive.patch
+    (fetchurl {
+      name = "CVE-2014-2653.patch";
+      url = "http://anonscm.debian.org/gitweb/?p=pkg-ssh/openssh.git;a=blobdiff_plain;"
+        + "f=sshconnect.c;h=324f5e0a396a4da9885d121bbbef87f6ccf2b149;"
+        + "hp=87c3770c0fd5c7ff41227c45b4528985eaea54a6;hb=63d5fa28e16d96db6bac2dbe3fcecb65328f8966;"
+        + "hpb=9cbb60f5e4932634db04c330c88abc49cc5567bd";
+      sha256 = "160c434igl2r8q4cavhdlwvnbqizx444sjrhg98f997pyhz524h9";
+    })
+  ];
 
   buildInputs = [ zlib openssl libedit pkgconfig pam ]
     ++ stdenv.lib.optional withKerberos [ kerberos ];
diff --git a/pkgs/tools/networking/pdnsd/default.nix b/pkgs/tools/networking/pdnsd/default.nix
index 4b111475e696..14f57b61a2f1 100644
--- a/pkgs/tools/networking/pdnsd/default.nix
+++ b/pkgs/tools/networking/pdnsd/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     description = "Permanent DNS caching";
     homepage = http://www.phys.uu.nl/~rombouts/pdnsd.html;
     license = "GPLv3+";
-    platforms = with stdenv.lib.platforms; linux;
+    platforms = stdenv.lib.platforms.unix;
     maintainers = with stdenv.lib.maintainers; [viric];
   };
 }
diff --git a/pkgs/tools/networking/socat/default.nix b/pkgs/tools/networking/socat/default.nix
index 7da82796b1cf..84ba2106a26a 100644
--- a/pkgs/tools/networking/socat/default.nix
+++ b/pkgs/tools/networking/socat/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     description = "A utility for bidirectional data transfer between two independent data channels";
     homepage = http://www.dest-unreach.org/socat/;
     repositories.git = git://repo.or.cz/socat.git;
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
     license = stdenv.lib.licenses.gpl2;
     maintainers = stdenv.lib.maintainers.eelco;
   };
diff --git a/pkgs/tools/networking/spiped/default.nix b/pkgs/tools/networking/spiped/default.nix
new file mode 100644
index 000000000000..ac2736ffb19e
--- /dev/null
+++ b/pkgs/tools/networking/spiped/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, openssl, coreutils }:
+
+stdenv.mkDerivation rec {
+  name    = "spiped-${version}";
+  version = "1.3.1";
+
+  src = fetchurl {
+    url    = "http://www.tarsnap.com/spiped/${name}.tgz";
+    sha256 = "1viglk61v1v2ga1n31r0h8rvib5gy2h02lhhbbnqh2s6ps1sjn4a";
+  };
+
+  buildInputs = [ openssl ];
+  patches = [ ./no-dev-stderr.patch ];
+
+  postPatch = ''
+    substituteInPlace POSIX/posix-l.sh --replace "rm" "${coreutils}/bin/rm"
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/man/man1
+    make install BINDIR=$out/bin MAN1DIR=$out/share/man/man1
+  '';
+
+  meta = {
+    description = "utility for secure encrypted channels between sockets";
+    homepage    = "https://www.tarsnap.com/spiped.html";
+    license     = stdenv.lib.licenses.bsd2;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/tools/networking/spiped/no-dev-stderr.patch b/pkgs/tools/networking/spiped/no-dev-stderr.patch
new file mode 100644
index 000000000000..742a2e483d4c
--- /dev/null
+++ b/pkgs/tools/networking/spiped/no-dev-stderr.patch
@@ -0,0 +1,26 @@
+From 7a2bbb0d0098d7a33ad3794d0199879ad50e755a Mon Sep 17 00:00:00 2001
+From: Austin Seipp <aseipp@pobox.com>
+Date: Tue, 8 Apr 2014 06:21:41 -0500
+Subject: [PATCH] Remove use of /dev/stderr
+
+Signed-off-by: Austin Seipp <aseipp@pobox.com>
+---
+ POSIX/posix-l.sh | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/POSIX/posix-l.sh b/POSIX/posix-l.sh
+index b3f0e31..71d6fe8 100755
+--- a/POSIX/posix-l.sh
++++ b/POSIX/posix-l.sh
+@@ -7,8 +7,6 @@ for LIB in rt xnet; do
+ 		fi
+ 		printf "%s" "-l${LIB}";
+ 		FIRST=NO;
+-	else
+-		echo "WARNING: POSIX violation: make's CC doesn't understand -l${LIB}" >/dev/stderr
+ 	fi
+ 	rm -f a.out
+ done
+-- 
+1.8.3.2
+
diff --git a/pkgs/tools/networking/sproxy-web/default.nix b/pkgs/tools/networking/sproxy-web/default.nix
new file mode 100644
index 000000000000..fa3221a77598
--- /dev/null
+++ b/pkgs/tools/networking/sproxy-web/default.nix
@@ -0,0 +1,26 @@
+{ cabal, aeson, blazeHtml, blazeMarkup, configurator, hflags
+, httpTypes, mtl, postgresqlSimple, resourcePool, scotty, text
+, waiExtra, waiMiddlewareStatic, fetchurl
+}:
+
+cabal.mkDerivation (self: {
+  pname = "sproxy-web";
+  version = "0.1.0.2";
+  src = fetchurl {
+    url = "https://github.com/zalora/sproxy-web/archive/0.1.0.2.tar.gz";
+    sha256 = "1rdzglvsas0rdgq3j5c9ll411yk168x7v3l7w8zdjgafa947j4d4";
+  };
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [
+    aeson blazeHtml blazeMarkup configurator hflags httpTypes mtl
+    postgresqlSimple resourcePool scotty text waiExtra
+    waiMiddlewareStatic
+  ];
+  meta = {
+    homepage = "http://bitbucket.org/zalorasea/sproxy-web";
+    description = "Web interface to sproxy";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/tools/networking/sproxy/default.nix b/pkgs/tools/networking/sproxy/default.nix
new file mode 100644
index 000000000000..342da193ffc7
--- /dev/null
+++ b/pkgs/tools/networking/sproxy/default.nix
@@ -0,0 +1,36 @@
+{ cabal, aeson, attoparsec, caseInsensitive, certificate
+, concurrentExtra, cryptoRandom, curl, dataDefault, hslogger, hspec
+, HTTP, httpTypes, interpolatedstringPerl6, mtl, network
+, optparseApplicative, postgresqlSimple, safe, SHA, split
+, stringConversions, time, tls, unorderedContainers, utf8String
+, x509, yaml, fetchurl
+}:
+
+cabal.mkDerivation (self: {
+  pname = "sproxy";
+  version = "0.7.4";
+  src = fetchurl {
+    url = "https://github.com/zalora/sproxy/archive/0.7.4.tar.gz";
+    sha256 = "1zlsln0ihg7p8jk5gdvm9as6gk4fs8vaa547iq2yvna4c1wb4amr";
+  };
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [
+    aeson attoparsec caseInsensitive certificate concurrentExtra
+    cryptoRandom curl dataDefault hslogger HTTP httpTypes
+    interpolatedstringPerl6 mtl network optparseApplicative
+    postgresqlSimple safe SHA split stringConversions time tls
+    unorderedContainers utf8String x509 yaml
+  ];
+  testDepends = [
+    aeson attoparsec caseInsensitive certificate concurrentExtra
+    cryptoRandom curl dataDefault hslogger hspec HTTP httpTypes
+    interpolatedstringPerl6 mtl network optparseApplicative
+    postgresqlSimple safe SHA split stringConversions time tls
+    unorderedContainers utf8String x509 yaml
+  ];
+  meta = {
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/tools/networking/stunnel/default.nix b/pkgs/tools/networking/stunnel/default.nix
index cb93e8a504b8..0ea7a948c8d5 100644
--- a/pkgs/tools/networking/stunnel/default.nix
+++ b/pkgs/tools/networking/stunnel/default.nix
@@ -1,22 +1,22 @@
 { stdenv, fetchurl, openssl }:
 
-stdenv.mkDerivation {
-  name = "stunnel-4.56";
-  
+stdenv.mkDerivation rec {
+  name    = "stunnel-${version}";
+  version = "5.01";
+
   src = fetchurl {
-    url = http://www.stunnel.org/downloads/stunnel-4.56.tar.gz;
-    sha256 = "14qjhwfa0y17ipnd5mc970vfmralvgaxfl6fk0rl91vdwbxjrblw";
+    url    = "http://www.stunnel.org/downloads/${name}.tar.gz";
+    sha256 = "0sw87x7yrgjx43a5x0cy71p2vr5j0l8n5pv49hq159p8zxcbyr95";
   };
 
-  buildInputs = [openssl];
+  buildInputs = [ openssl ];
+  configureFlags = [ "--with-ssl=${openssl}" ];
 
-  configureFlags = [
-    "--with-ssl=${openssl}"
-  ];
-  
   meta = {
-    description = "Stunnel - Universal SSL wrapper";
-    homepage = http://www.stunnel.org/;
-    license = "GPLv2";
+    description = "universal tls/ssl wrapper";
+    homepage    = "http://www.stunnel.org/";
+    license     = stdenv.lib.licenses.gpl2Plus;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
   };
 }
diff --git a/pkgs/tools/networking/tcpflow/default.nix b/pkgs/tools/networking/tcpflow/default.nix
new file mode 100644
index 000000000000..9c5f6f44ae05
--- /dev/null
+++ b/pkgs/tools/networking/tcpflow/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, openssl, zlib, libpcap, boost, cairo}:
+let
+  s = # Generated upstream information
+  rec {
+    baseName="tcpflow";
+    version="1.4.4";
+    name="${baseName}-${version}";
+    hash="0k2lxlvn1x8avkrijc22scrj4p2g5agfskbgfc2d0w9zgrg61xdn";
+    url="http://www.digitalcorpora.org/downloads/tcpflow/tcpflow-1.4.4.tar.gz";
+    sha256="0k2lxlvn1x8avkrijc22scrj4p2g5agfskbgfc2d0w9zgrg61xdn";
+  };
+  buildInputs = [
+    openssl zlib libpcap boost cairo
+  ];
+in
+stdenv.mkDerivation {
+  inherit (s) name version;
+  inherit buildInputs;
+  src = fetchurl {
+    inherit (s) url sha256;
+  };
+  meta = {
+    inherit (s) version;
+    description = ''TCP stream extractor'';
+    license = stdenv.lib.licenses.gpl3 ;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/tcpflow/default.upstream b/pkgs/tools/networking/tcpflow/default.upstream
new file mode 100644
index 000000000000..72802e4d0469
--- /dev/null
+++ b/pkgs/tools/networking/tcpflow/default.upstream
@@ -0,0 +1 @@
+url http://www.digitalcorpora.org/downloads/tcpflow/
diff --git a/pkgs/tools/networking/telnet/default.nix b/pkgs/tools/networking/telnet/default.nix
index c0dbf710ffb9..9827b62c6c4a 100644
--- a/pkgs/tools/networking/telnet/default.nix
+++ b/pkgs/tools/networking/telnet/default.nix
@@ -4,7 +4,8 @@ stdenv.mkDerivation {
   name = "telnet-1.2";
 
   src = fetchurl {
-    url = ftp://ftp.suse.com/pub/people/kukuk/ipv6/telnet-bsd-1.2.tar.bz2;
+    #url = ftp://ftp.suse.com/pub/people/kukuk/ipv6/telnet-bsd-1.2.tar.bz2; # broken
+    url = mirror://gentoo/distfiles/telnet-bsd-1.2.tar.bz2;
     sha256 = "0cs7ks22dhcn5qfjv2vl6ikhw93x68gg33zdn5f5cxgg81kx5afn";
   };
 
diff --git a/pkgs/tools/package-management/checkinstall/default.nix b/pkgs/tools/package-management/checkinstall/default.nix
index 2fbf5282ee12..1320720ed170 100644
--- a/pkgs/tools/package-management/checkinstall/default.nix
+++ b/pkgs/tools/package-management/checkinstall/default.nix
@@ -29,6 +29,9 @@ stdenv.mkDerivation {
 
     # Fix a `conflicting types for 'scandir'' error on Glibc 2.11.
     ./scandir.patch
+
+    # Fix a `conflicting types for 'readlink'' error since Glibc 2.19
+    ./readlink-types.patch
   ]
 
   ++ stdenv.lib.optional (stdenv.system == "x86_64-linux") 
diff --git a/pkgs/tools/package-management/checkinstall/readlink-types.patch b/pkgs/tools/package-management/checkinstall/readlink-types.patch
new file mode 100644
index 000000000000..a860607fcf66
--- /dev/null
+++ b/pkgs/tools/package-management/checkinstall/readlink-types.patch
@@ -0,0 +1,19 @@
+Extracted from Arch's patch
+https://projects.archlinux.org/svntogit/community.git/tree/trunk/build-fix.patch?h=packages/checkinstall
+diff -wbBur checkinstall-1.6.2/installwatch/installwatch.c checkinstall-1.6.2.my/installwatch/installwatch.c
+--- checkinstall-1.6.2/installwatch/installwatch.c	2008-11-16 19:20:53.000000000 +0300
++++ checkinstall-1.6.2.my/installwatch/installwatch.c	2010-01-15 18:55:50.112716628 +0300
+@@ -2938,13 +2938,8 @@
+ 	return result;
+ }
+ 
+-#if (GLIBC_MINOR <= 4)
+-int readlink(const char *path,char *buf,size_t bufsiz) {
+-	int result;
+-#else
+ ssize_t readlink(const char *path,char *buf,size_t bufsiz) {
+ 	ssize_t result;
+-#endif
+ 	instw_t instw;
+ 	int status;
+ 
diff --git a/pkgs/tools/package-management/disnix/default.nix b/pkgs/tools/package-management/disnix/default.nix
index 5c9120cf33ed..ff29316edbf2 100644
--- a/pkgs/tools/package-management/disnix/default.nix
+++ b/pkgs/tools/package-management/disnix/default.nix
@@ -4,8 +4,8 @@ stdenv.mkDerivation {
   name = "disnix-0.3pre8aa12b65ced9029f7c17a494cee25e6ffc69fdea";
   
   src = fetchurl {
-    url = http://hydra.nixos.org/build/6763179/download/4/disnix-0.3pre8aa12b65ced9029f7c17a494cee25e6ffc69fdea.tar.gz;
-    sha256 = "0zmsaz1kvc7dl1igh6z74jxy3w5p2zbfm9jsczdjdh3947fkni4p";
+    url = http://hydra.nixos.org/build/9876935/download/4/disnix-0.3pre15e93a364ad9439d8336e659921600d48252045d.tar.gz;
+    sha256 = "1kgc6cacpp3ly7c62ah6pdprdl1bab08b4ir4dcrrm44x6fa1k63";
   };
   
   buildInputs = [ pkgconfig dbus_glib libxml2 libxslt getopt nixUnstable libintlOrEmpty libiconvOrEmpty dysnomia ];
diff --git a/pkgs/tools/package-management/disnix/disnixos/default.nix b/pkgs/tools/package-management/disnix/disnixos/default.nix
index 4c811dd3f71f..7420353499f5 100644
--- a/pkgs/tools/package-management/disnix/disnixos/default.nix
+++ b/pkgs/tools/package-management/disnix/disnixos/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl, disnix, socat, pkgconfig }:
+{ stdenv, fetchurl, disnix, socat, pkgconfig, getopt }:
 
 stdenv.mkDerivation {
   name = "disnixos-0.2prebb320d396f93d7062c28d6a54105d8e8196b9d99";
   
   src = fetchurl {
-    url = http://hydra.nixos.org/build/6769017/download/3/disnixos-0.2prebb320d396f93d7062c28d6a54105d8e8196b9d99.tar.gz;
-    sha256 = "0jw05qjn0fbf4xb2g8a8i0padmsw17ayr4acw7z784bljrm1z055";
+    url = http://hydra.nixos.org/build/9877039/download/3/disnixos-0.2preb10c56eeb1be3046645eea90c779e2d64045581f.tar.gz;
+    sha256 = "1pkpf6vp9q3jjp212lghbs1km8iqh4rm9xa5jm0dqb5ya25f0jf2";
   };
   
-  buildInputs = [ socat pkgconfig disnix ];
+  buildInputs = [ socat pkgconfig disnix getopt ];
   
   dontStrip = true;
   
diff --git a/pkgs/tools/package-management/disnix/dysnomia/default.nix b/pkgs/tools/package-management/disnix/dysnomia/default.nix
index 2a5852863f96..5c937bc8aef4 100644
--- a/pkgs/tools/package-management/disnix/dysnomia/default.nix
+++ b/pkgs/tools/package-management/disnix/dysnomia/default.nix
@@ -9,6 +9,7 @@
 , enableTomcatWebApplication ? false
 , enableMongoDatabase ? false
 , catalinaBaseDir ? "/var/tomcat"
+, getopt
 }:
 
 assert enableMySQLDatabase -> mysql != null;
@@ -20,8 +21,8 @@ assert enableMongoDatabase -> mongodb != null;
 stdenv.mkDerivation {
   name = "dysnomia-0.3pred677260f77bb202c7490f7db08dbd8442c9db484";
   src = fetchurl {
-    url = http://hydra.nixos.org/build/6763096/download/1/dysnomia-0.3pred677260f77bb202c7490f7db08dbd8442c9db484.tar.gz;
-    sha256 = "0k7qpqa9inzxjdryd7zfzxid8k1icsxxw995chzw4wrlgxns16xy";
+    url = http://hydra.nixos.org/build/9146265/download/1/dysnomia-0.3pre313a5f99a166fee2e0245dfd25f41ec9ed958075.tar.gz;
+    sha256 = "0fgbqybr9rfr95fkmv1hpq7al0p1kxa385k6sjc7iwwcxs4cmxf5";
   };
   
   preConfigure = if enableEjabberdDump then "export PATH=$PATH:${ejabberd}/sbin" else "";
@@ -37,7 +38,7 @@ stdenv.mkDerivation {
      ${if enableMongoDatabase then "--with-mongodb" else "--without-mongodb"}
    '';
   
-  buildInputs = []
+  buildInputs = [ getopt ]
     ++ stdenv.lib.optional enableEjabberdDump ejabberd
     ++ stdenv.lib.optional enableMySQLDatabase mysql
     ++ stdenv.lib.optional enablePostgreSQLDatabase postgresql
diff --git a/pkgs/tools/package-management/nix-repl/default.nix b/pkgs/tools/package-management/nix-repl/default.nix
index 648abe882c4f..f812ea58a0b0 100644
--- a/pkgs/tools/package-management/nix-repl/default.nix
+++ b/pkgs/tools/package-management/nix-repl/default.nix
@@ -7,8 +7,8 @@ stdenv.mkDerivation rec {
 
   src = fetchgit {
     url = https://github.com/edolstra/nix-repl.git;
-    rev = "81d658fe4afda234028cd4551e12491db4303957";
-    sha256 = "067mj8as99n0hkrr2qss3y3hnr8c5zy4n8bqx3z900n3j43cwzyc";
+    rev = "1734e8a1491ef831c83c2620b6b0f4a590b67c1f";
+    sha256 = "12fld2780jh3ww2n59s9z7afwjkmfhwh4dqn3wjva4ff8fx3n0mf";
   };
 
   buildInputs = [ nix readline boehmgc ];
@@ -21,8 +21,9 @@ stdenv.mkDerivation rec {
       mkdir -p $out/bin
       g++ -O3 -Wall -std=c++0x \
         -o $out/bin/nix-repl nix-repl.cc \
-        -I${nix}/include/nix -L${nix}/lib/nix \
-        -lformat -lutil -lstore -lexpr -lmain -lreadline -lgc
+        -I${nix}/include/nix \
+        -lnixformat -lnixutil -lnixstore -lnixexpr -lnixmain -lreadline -lgc \
+        -DNIX_VERSION=${(builtins.parseDrvName nix.name).version}
     '';
 
   meta = {
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index b02d80078aae..16a276273cc3 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -5,15 +5,13 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "nix-1.6.1";
+  name = "nix-1.7";
 
   src = fetchurl {
     url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz";
-    sha256 = "31d15f99b2405924a4be278334cc973a71999303631e6798c1d294db9be4bf84";
+    sha256 = "349163654f2ae3e1a17fb3da7ed164a4cac153728bbe9a26764e17556d3dcc92";
   };
 
-  patches = [ ./hash-check.patch ];
-
   nativeBuildInputs = [ perl pkgconfig ];
 
   buildInputs = [ curl openssl boehmgc sqlite ];
diff --git a/pkgs/tools/package-management/nix/hash-check.patch b/pkgs/tools/package-management/nix/hash-check.patch
deleted file mode 100644
index 421ebb70a4f8..000000000000
--- a/pkgs/tools/package-management/nix/hash-check.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-commit 11cb4bfb257f18c906ef1d6f14ed450be8fa49fe upstream
-
-diff --git a/src/libstore/build.cc b/src/libstore/build.cc
-index dcd7343..4329d9a 100644
---- a/src/libstore/build.cc
-+++ b/src/libstore/build.cc
-@@ -2749,6 +2749,7 @@ void SubstitutionGoal::finished()
-     logPipe.readSide.close();
- 
-     /* Get the hash info from stdout. */
-+    string dummy = readLine(outPipe.readSide);
-     string expectedHashStr = statusOk(status) ? readLine(outPipe.readSide) : "";
-     outPipe.readSide.close();
-
diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix
index 7f52950aa366..c9cf7dc79167 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.7pre3522_f7e077a";
+  name = "nix-1.7pre3576_2b6c8ef";
 
   src = fetchurl {
-    url = "http://hydra.nixos.org/build/9342392/download/4/${name}.tar.xz";
-    sha256 = "f1fce2cc7bde1a7bd5d8d491153ed805542970768211ebb7b121d9630033afc2";
+    url = "http://hydra.nixos.org/build/10201398/download/5/${name}.tar.xz";
+    sha256 = "7a735ac859a88a7042b1a7f33f3ab94e9374a0695c68cceb63d4536a79986236";
   };
 
   nativeBuildInputs = [ perl pkgconfig ];
diff --git a/pkgs/tools/security/cb0cat/default.nix b/pkgs/tools/security/cb0cat/default.nix
deleted file mode 100644
index 0f84cfa6ebc7..000000000000
--- a/pkgs/tools/security/cb0cat/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl }:
-
-stdenv.mkDerivation rec {
-  name    = "cb0cat-${version}";
-  version = "20131216153906";
-
-  src = fetchurl {
-    url    = "https://www.cblnk.com/cb0cat/dist/${name}.tgz";
-    sha256 = "182767nxfyiis7ac8bn5v8rxb9vlly8n5w42pz1dd0751xwdlp82";
-  };
-
-  installPhase = ''
-    mkdir -p $out/bin
-    mv cb0cat $out/bin
-  '';
-
-  meta = {
-    description = "cryptographic tool based on the CBEAMr0 sponge function";
-    homepage    = "https://www.cblnk.com";
-    license     = stdenv.lib.licenses.bsd3;
-    platforms   = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
-  };
-}
diff --git a/pkgs/tools/security/cb1cat/default.nix b/pkgs/tools/security/cb1cat/default.nix
new file mode 100644
index 000000000000..546ace2d8ed3
--- /dev/null
+++ b/pkgs/tools/security/cb1cat/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name    = "cb1cat-${version}";
+  version = "20140403153000";
+
+  src = fetchurl {
+    url    = "https://www.cblnk.com/cb1cat/dist/${name}.tgz";
+    sha256 = "1zi0rxbgmp6vkcarg493gfgn7pnfdpz0iplcgslbc45n2bxkv70q";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv cb1cat $out/bin
+  '';
+
+  meta = {
+    description = "cryptographic tool based on the CBEAMr1 sponge function";
+    homepage    = "https://www.cblnk.com/cb1cat/";
+    license     = stdenv.lib.licenses.bsd3;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/tools/security/ccid/default.nix b/pkgs/tools/security/ccid/default.nix
index fdcd15a4b825..458111be4006 100644
--- a/pkgs/tools/security/ccid/default.nix
+++ b/pkgs/tools/security/ccid/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pcsclite, pkgconfig, libusb1, perl }:
 stdenv.mkDerivation rec {
-  version = "1.4.15";
+  version = "1.4.16";
   name = "ccid-${version}";
 
   src = fetchurl {
     url = "http://ftp.de.debian.org/debian/pool/main/c/ccid/ccid_${version}.orig.tar.bz2";
-    sha256 = "02lrdmqlw2ilbmgcpi2h7w741p025c10frxdn5w3wnzi8qi1hdjl";
+    sha256 = "0a0e6aa38863c79e38673c085254fa94fd0aa040b9622304a8d6d4222b7e7ea0";
   };
 
   patchPhase = ''
diff --git a/pkgs/tools/security/duo-unix/default.nix b/pkgs/tools/security/duo-unix/default.nix
new file mode 100644
index 000000000000..078e7cc06e0b
--- /dev/null
+++ b/pkgs/tools/security/duo-unix/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pam, openssl, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "duo-unix";
+  version = "1.9.7";
+
+  src = fetchurl {
+    url    = "https://dl.duosecurity.com/duo_unix-${version}.tar.gz";
+    sha256 = "090kx9nixlhvy5nw0ywqmi7yhd4nz7wvdv38cpkgrspkridfl07j";
+  };
+
+  buildInputs = [ pam openssl zlib ];
+  configureFlags =
+    [ "--with-pam=$(out)/lib/security"
+      "--prefix=$(out)"
+      "--sysconfdir=$(out)/etc/duo"
+      "--with-openssl=${openssl}"
+      "--enable-lib64=no"
+    ];
+
+  meta = {
+    description = "Duo Security Unix login integration";
+    homepage    = "https://duosecurity.com";
+    license     = stdenv.lib.licenses.gpl2;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix
index b28c761ec2cf..8d6a6241ad3f 100644
--- a/pkgs/tools/security/fail2ban/default.nix
+++ b/pkgs/tools/security/fail2ban/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pythonPackages, unzip, gamin }:
 
-let version = "0.8.12"; in
+let version = "0.8.13"; in
 
 pythonPackages.buildPythonPackage {
   name = "fail2ban-${version}";
@@ -9,7 +9,7 @@ pythonPackages.buildPythonPackage {
   src = fetchurl {
     url    = "https://github.com/fail2ban/fail2ban/zipball/${version}";
     name   = "fail2ban-${version}.zip";
-    sha256 = "17cassfn3gdgw530g7gh9fvffsixfb30zamzlfmx7s5x80rnqd3k";
+    sha256 = "0c63i5jsn2n6hv6fb6q922ksxfpppah9415vpydiv0vpf23pq0cb";
   };
 
   buildInputs = [ unzip ];
diff --git a/pkgs/tools/security/hashcat/default.nix b/pkgs/tools/security/hashcat/default.nix
new file mode 100644
index 000000000000..5e1737241904
--- /dev/null
+++ b/pkgs/tools/security/hashcat/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, p7zip, patchelf }:
+
+let
+  bits    = if stdenv.system == "x86_64-linux" then "64" else "32";
+  libPath = stdenv.lib.makeLibraryPath [ stdenv.gcc.libc ];
+
+  fixBin = x: ''
+    patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+      --set-rpath ${libPath} ${x}
+  '';
+in
+stdenv.mkDerivation rec {
+  name    = "hashcat-${version}";
+  version = "0.47";
+
+  src = fetchurl {
+    url    = "http://hashcat.net/files/${name}.7z";
+    sha256 = "0mc4lv4qfxabp794xfzgr63fhwk7lvbg12pry8a96lldp0jwp6i3";
+  };
+
+  buildInputs = [ p7zip patchelf ];
+
+  unpackPhase = "7z x $src > /dev/null && cd ${name}";
+
+  installPhase = ''
+    mkdir -p $out/bin $out/libexec
+    cp -R * $out/libexec
+
+    echo -n "/" > $out/bin/eula.accepted
+    ln -s $out/libexec/hashcat-cli${bits}.bin $out/bin/hashcat
+    ln -s $out/libexec/hashcat-cliXOP.bin $out/bin/hashcat-xop
+    ln -s $out/libexec/hashcat-cliAVX.bin $out/bin/hashcat-avx
+  '';
+
+  fixupPhase = ''
+    ${fixBin "$out/libexec/hashcat-cli${bits}.bin"}
+    ${fixBin "$out/libexec/hashcat-cliXOP.bin"}
+    ${fixBin "$out/libexec/hashcat-cliAVX.bin"}
+  '';
+
+  meta = {
+    description = "Fast password cracker";
+    homepage    = "http://hashcat.net/hashcat/";
+    license     = stdenv.lib.licenses.unfreeRedistributable;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/tools/security/nmap/default.nix b/pkgs/tools/security/nmap/default.nix
index 1b2e940540d4..56964c1f6923 100644
--- a/pkgs/tools/security/nmap/default.nix
+++ b/pkgs/tools/security/nmap/default.nix
@@ -1,28 +1,41 @@
-{ stdenv, fetchurl, libpcap, libX11, gtk, pkgconfig
-, openssl, python, pygtk, makeWrapper, pygobject
-, pycairo, pysqlite
+{ stdenv, fetchurl, libpcap, pkgconfig, openssl
+, graphicalSupport ? false
+, libX11 ? null
+, gtk ? null
+, python ? null
+, pygtk ? null
+, makeWrapper ? null
+, pygobject ? null
+, pycairo ? null
+, pysqlite ? null
 }:
 
+with stdenv.lib;
 stdenv.mkDerivation rec {
-  name = "nmap-6.40";
+  name = "nmap${optionalString graphicalSupport "-graphical"}-${version}";
+  version = "6.40";
 
   src = fetchurl {
     url = "http://nmap.org/dist/${name}.tar.bz2";
     sha256 = "491f77d8b3fb3bb38ba4e3850011fe6fb43bbe197f9382b88cb59fa4e8f7a401";
   };
 
-  patches = [ ./zenmap.patch ];
+  patches = optional graphicalSupport ./zenmap.patch;
 
-  postInstall =
-    ''
+  postInstall = optionalString graphicalSupport ''
       wrapProgram $out/bin/zenmap --prefix PYTHONPATH : "$(toPythonPath $out)" --prefix PYTHONPATH : "$PYTHONPATH" --prefix PYTHONPATH : $(toPythonPath ${pygtk})/gtk-2.0 --prefix PYTHONPATH : $(toPythonPath ${pygobject})/gtk-2.0 --prefix PYTHONPATH : $(toPythonPath ${pycairo})/gtk-2.0
-    '';
+  '';
 
-  buildInputs =
-    [ libpcap libX11 gtk pkgconfig openssl python pygtk makeWrapper pysqlite ];
+  buildInputs = [ libpcap pkgconfig openssl ]
+    ++ optionals graphicalSupport [
+      libX11 gtk python pygtk makeWrapper pysqlite pygobject pycairo
+    ];
 
-  meta = with stdenv.lib; {
-    platforms = platforms.linux;
-    maintainers = maintainers.mornfall;
+  meta = {
+    description = "A free and open source utility for network discovery and security auditing.";
+    homepage    = "http://www.nmap.org";
+    license     = licenses.gpl2;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ mornfall thoughtpolice ];
   };
 }
diff --git a/pkgs/tools/security/p0f/default.nix b/pkgs/tools/security/p0f/default.nix
new file mode 100644
index 000000000000..377639ce2e60
--- /dev/null
+++ b/pkgs/tools/security/p0f/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, libpcap, bash }:
+
+stdenv.mkDerivation rec {
+  name    = "p0f-${version}";
+  version = "3.06b";
+
+  src = fetchurl {
+    url    = "http://lcamtuf.coredump.cx/p0f3/releases/${name}.tgz";
+    sha256 = "1rydqvr78a3rjp9iwfbw4bs7jfb4p22962makdgw8yjmw8dr6lfi";
+  };
+
+  buildInputs = [ libpcap ];
+
+  buildPhase = ''
+    substituteInPlace config.h --replace "p0f.fp" "$out/etc/p0f.fp"
+    substituteInPlace build.sh --replace "/bin/bash" "${bash}/bin/bash"
+    ./build.sh
+    cd tools && make && cd ..
+  '';
+
+  installPhase = ''
+    mkdir -p $out/sbin $out/etc
+
+    cp ./p0f                $out/sbin
+    cp ./p0f.fp             $out/etc
+
+    cp ./tools/p0f-client   $out/sbin
+    cp ./tools/p0f-sendsyn  $out/sbin
+    cp ./tools/p0f-sendsyn6 $out/sbin
+  '';
+
+  meta = {
+    description = "Passive network reconnaissance and fingerprinting tool";
+    homepage    = "http://lcamtuf.coredump.cx/p0f3/";
+    license     = stdenv.lib.licenses.lgpl21;
+    platforms   = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/tools/security/pcsclite/default.nix b/pkgs/tools/security/pcsclite/default.nix
index d069c183842a..2737cc435752 100644
--- a/pkgs/tools/security/pcsclite/default.nix
+++ b/pkgs/tools/security/pcsclite/default.nix
@@ -1,30 +1,30 @@
 { stdenv, fetchurl, pkgconfig, udev, dbus_libs, perl }:
 
 stdenv.mkDerivation rec {
-  version = "1.8.10";
+  version = "1.8.11";
   name = "pcsclite-${version}";
 
   src = fetchurl {
-    url = "https://alioth.debian.org/frs/download.php/file/3963/pcsc-lite-${version}.tar.bz2";
-    sha256 = "04i63zi9ayg38z3cahp6gf3rgx23w17bmcpdccm2hvaj63blnz30";
+    url = "https://alioth.debian.org/frs/download.php/file/3991/pcsc-lite-${version}.tar.bz2";
+    sha256 = "945041c94c53959ae5a767616a4ec5099fe67f549bfd344e8bd0cfe7a3c71ac6";
   };
 
   # The OS should care on preparing the drivers into this location
   configureFlags = [
     "--enable-usbdropdir=/var/lib/pcsc/drivers"
-    "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
-    "--enable-confdir=$(out)/etc"
+    "--with-systemdsystemunitdir=$out/etc/systemd/system"
+    "--enable-confdir=$out/etc"
   ];
 
   buildInputs = [ udev dbus_libs perl ];
 
   nativeBuildInputs = [ pkgconfig ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Middleware to access a smart card using SCard API (PC/SC)";
     homepage = http://pcsclite.alioth.debian.org/;
-    license = "BSD";
-    maintainers = with stdenv.lib.maintainers; [viric];
-    platforms = with stdenv.lib.platforms; linux;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [viric];
+    platforms = with platforms; linux;
   };
 }
diff --git a/pkgs/tools/security/scrypt/default.nix b/pkgs/tools/security/scrypt/default.nix
index ca2c9f43dfcd..fe2a19491d99 100644
--- a/pkgs/tools/security/scrypt/default.nix
+++ b/pkgs/tools/security/scrypt/default.nix
@@ -13,8 +13,9 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "The scrypt encryption utility";
-    homepage = https://www.tarsnap.com/scrypt.html;
-    license = "BSD";
-    platforms = stdenv.lib.platforms.all;
+    homepage    = https://www.tarsnap.com/scrypt.html;
+    license     = stdenv.lib.licenses.bsd2;
+    platforms   = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
   };
 }
diff --git a/pkgs/tools/security/ssdeep/default.nix b/pkgs/tools/security/ssdeep/default.nix
new file mode 100644
index 000000000000..c5c474417046
--- /dev/null
+++ b/pkgs/tools/security/ssdeep/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name    = "ssdeep-${version}";
+  version = "2.10";
+
+  src = fetchurl {
+    url    = "mirror://sourceforge/ssdeep/${name}.tar.gz";
+    sha256 = "1p7dgchq8hgadnxz5qh95ay17k5j74l4qyd15wspc54lb603p2av";
+  };
+
+  postFixup = stdenv.lib.optionalString stdenv.isLinux ''
+    patchelf --set-rpath "$(patchelf --print-rpath $out/bin/ssdeep):$out/lib" $out/bin/ssdeep
+  '';
+
+  meta = {
+    description = "A program for calculating fuzzy hashes";
+    homepage    = "http://www.ssdeep.sf.net";
+    license     = stdenv.lib.licenses.gpl2;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+  };
+}
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index e8c27c5f2b1e..dd4d797825f3 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -16,6 +16,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";
 
     longDescription=''
@@ -30,10 +31,7 @@ stdenv.mkDerivation rec {
 
     license="mBSD";
 
-    maintainers =
-      [ # Russell O’Connor <roconnor@theorem.ca> ?
-        stdenv.lib.maintainers.ludo
-      ];
+    maintainers = with stdenv.lib.maintainers; [ phreedom ludo ];
     platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
   };
 }
diff --git a/pkgs/tools/security/vidalia/default.nix b/pkgs/tools/security/vidalia/default.nix
index 6ce094997806..f221a1b89e66 100644
--- a/pkgs/tools/security/vidalia/default.nix
+++ b/pkgs/tools/security/vidalia/default.nix
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = https://www.torproject.org/projects/vidalia.html.en;
+    repositories.git = git://git.torproject.org/vidalia;
     description = "a cross-platform graphical controller for the Tor software, built using the Qt framework";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.phreedom ];
diff --git a/pkgs/tools/system/ipmiutil/default.nix b/pkgs/tools/system/ipmiutil/default.nix
index 9f2afb9a0b28..c5f33c323594 100644
--- a/pkgs/tools/system/ipmiutil/default.nix
+++ b/pkgs/tools/system/ipmiutil/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   baseName = "ipmiutil";
-  version = "2.9.2";
+  version = "2.9.3";
   name = "${baseName}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/${baseName}/${name}.tar.gz";
-    sha256 = "1n7amk8wbx9a9gbm37nyb8v0c37qgp6hv4hn3nln80rr6g98f9n3";
+    sha256 = "1dwyxp4jn5wxzyahd0x839kj1q7z6xin1wybpx9na4xsgscj6v27";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/system/plan9port/builder.sh b/pkgs/tools/system/plan9port/builder.sh
index bf5e6eeffa5a..729da7015d9a 100644
--- a/pkgs/tools/system/plan9port/builder.sh
+++ b/pkgs/tools/system/plan9port/builder.sh
@@ -4,46 +4,14 @@ tar xvfz $src
 
 cd plan9
 
-export PLAN9=`pwd`
-export X11=/tmp
+for p in $patches; do
+  echo "applying patch $p"
+  patch -p1 < $p
+done
 
-# Patch for the installation
-sed -i -e 's@`which echo`@echo@' lib/moveplan9.sh
+./INSTALL -b
+./INSTALL -r $out/plan9
 
-OLDPATH=$PATH
-PATH=`pwd`/bin:$PATH
-
-gcc lib/linux-isnptl.c -lpthread
-set +e 
-if ./a.out > /dev/null
-then
-  echo "SYSVERSION=2.6.x" >config
-else
-  echo "SYSVERSION=2.4.x" >config
-fi
-rm -f ./a.out
-set -e
-
-pushd src
-
-# Build mk
-../dist/buildmk 2>&1 | sed 's/^[+] //'
-
-# Build everything
-
-mk clean
-mk libs-nuke
-mk all || exit 1
-mk install || exit 1
-
-popd
-
-# Installation
-export PLAN9=$out
+export PLAN9=$out/plan9
 mkdir -p $PLAN9
-GLOBIGNORE='src:.*'
 cp -R * $PLAN9
-GLOBIGNORE=
-
-cd $PLAN9
-sh lib/moveplan9.sh `pwd`
diff --git a/pkgs/tools/system/plan9port/default.nix b/pkgs/tools/system/plan9port/default.nix
index e5ec557a79a5..f166f198b70d 100644
--- a/pkgs/tools/system/plan9port/default.nix
+++ b/pkgs/tools/system/plan9port/default.nix
@@ -1,8 +1,14 @@
-{stdenv, fetchurl, libX11, xproto, libXt, xextproto, libXext}:
+{stdenv, fetchurl, libX11
+, xproto ? null
+, libXt ? null
+, xextproto ? null
+, libXext ? null }:
 
 stdenv.mkDerivation rec {
   name = "plan9port-20140228";
-  
+
+  patches = [ ./fontsrv.patch ];
+
   builder = ./builder.sh;
 
   src = fetchurl {
@@ -10,7 +16,7 @@ stdenv.mkDerivation rec {
     sha256 = "1l7nsjfrrcq0l43kw0f1437jz3nyl9qw7i2vn0sbmcsv5vmsj0cr";
   };
 
-  buildInputs = [ libX11 xproto libXt xextproto libXext ];
+  buildInputs = stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 xproto libXt xextproto libXext ];
 
   meta = {
     homepage = "http://swtch.com/plan9port/";
diff --git a/pkgs/tools/system/plan9port/fontsrv.patch b/pkgs/tools/system/plan9port/fontsrv.patch
new file mode 100644
index 000000000000..49fd9c04231b
--- /dev/null
+++ b/pkgs/tools/system/plan9port/fontsrv.patch
@@ -0,0 +1,14 @@
+diff -r dc0640f14d07 src/cmd/mkfile
+--- a/src/cmd/mkfile	Tue Mar 25 23:23:10 2014 -0400
++++ b/src/cmd/mkfile	Mon Apr 14 22:36:05 2014 +0530
+@@ -4,8 +4,8 @@
+ 
+ <$PLAN9/src/mkmany
+ 
+-BUGGERED='CVS|faces|factotum|fontsrv|lp|ip|mailfs|upas|vncv|mnihongo|mpm|index|u9fs|secstore|smugfs|snarfer'
+-DIRS=lex `ls -l |sed -n 's/^d.* //p' |egrep -v "^($BUGGERED)$"|egrep -v '^lex$'` $FONTSRV
++BUGGERED='CVS|faces|factotum|lp|ip|mailfs|upas|vncv|mnihongo|mpm|index|u9fs|secstore|smugfs|snarfer'
++DIRS=lex `ls -l |sed -n 's/^d.* //p' |egrep -v "^($BUGGERED)$"|egrep -v '^lex$'`
+ 
+ <$PLAN9/src/mkdirs
+ 
diff --git a/pkgs/tools/system/sizes/default.nix b/pkgs/tools/system/sizes/default.nix
new file mode 100644
index 000000000000..9be2a709af57
--- /dev/null
+++ b/pkgs/tools/system/sizes/default.nix
@@ -0,0 +1,21 @@
+{ cabal, cmdargs, deepseq, dlist, lens, parallelIo, regexPosix
+, systemFileio, systemFilepath, text
+}:
+
+cabal.mkDerivation (self: {
+  pname = "sizes";
+  version = "2.3.1.1";
+  sha256 = "1k7rvcj5sp30zwm16wnsw40y4rkqnfxlrl3ridqhp91q8286qjbs";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [
+    cmdargs deepseq dlist lens parallelIo regexPosix systemFileio
+    systemFilepath text
+  ];
+  meta = {
+    homepage = "https://github.com/jwiegley/sizes";
+    description = "Recursively show space (size and i-nodes) used in subdirectories";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/tools/text/kakasi/default.nix b/pkgs/tools/text/kakasi/default.nix
new file mode 100644
index 000000000000..b73654da4054
--- /dev/null
+++ b/pkgs/tools/text/kakasi/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "kakasi-2.3.6";
+
+  meta = with stdenv.lib; {
+    description = "Kanji Kana Simple Inverter";
+    longDescription = ''
+      KAKASI is the language processing filter to convert Kanji
+      characters to Hiragana, Katakana or Romaji and may be
+      helpful to read Japanese documents.
+    '';
+    homepage    = "http://kakasi.namazu.org/";
+    license     = licenses.gpl2Plus;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ iyzsong ];
+  };
+
+  src = fetchurl {
+    url = "http://kakasi.namazu.org/stable/${name}.tar.xz";
+    sha256 = "1qry3xqb83pjgxp3my8b1sy77z4f0893h73ldrvdaky70cdppr9f";
+  };
+}
diff --git a/pkgs/tools/text/silver-searcher/default.nix b/pkgs/tools/text/silver-searcher/default.nix
index e8a1ee96505c..fa780b11f688 100644
--- a/pkgs/tools/text/silver-searcher/default.nix
+++ b/pkgs/tools/text/silver-searcher/default.nix
@@ -1,16 +1,16 @@
 {stdenv, fetchgit, autoreconfHook, pkgconfig, pcre, zlib, lzma}:
 
-let release = "0.19.2"; in
+let release = "0.21.0"; in
 stdenv.mkDerivation {
   name = "silver-searcher-${release}";
 
   src = fetchgit {
     url = "https://github.com/ggreer/the_silver_searcher.git";
     rev = "refs/tags/${release}";
-    sha256 = "b6993e077f650eb0976cbc924640665fa9b2499a899ecba5a6cad5cf9addfdff";
+    sha256 = "bd49c6cadabeaf7bde130e5d2d0083367ae2d19cfedb40e45f5bb1ff9f4a3e51";
   };
 
-  NIX_LDFLAGS = "-lgcc_s";
+  NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
 
   buildInputs = [ autoreconfHook pkgconfig pcre zlib lzma ];
 
diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix
index 98a8a0fd810f..85de3dc08cfd 100644
--- a/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -5,16 +5,16 @@ rec {
     sha256 = "1idgyim6r4bi3id245k616qrdarfh65xv3gi2psarqqmsw504yhd";
   };
 
-  texmfVersion = "2013.20140215";
+  texmfVersion = "2013.20140314";
   texmfSrc = fetchurl {
     url = "mirror://debian/pool/main/t/texlive-base/texlive-base_${texmfVersion}.orig.tar.xz";
-    sha256 = "0f1xqa1a1yklsiqz12rgihdc6viw8ghdbx2s2pw2k3h0dfsd6ss3";
+    sha256 = "0f2dxm0ac4j04w1rgjpdranpprjghw8slvijknykpvph1jn0lmzm";
   };
 
-  langTexmfVersion = "2013.20140215";
+  langTexmfVersion = "2013.20140314";
   langTexmfSrc = fetchurl {
     url = "mirror://debian/pool/main/t/texlive-lang/texlive-lang_${langTexmfVersion}.orig.tar.xz";
-    sha256 = "0igz9kpd1rfbq7smb1wyd75cz396rinbh25rk19lxqh25dix0xzj";
+    sha256 = "154g300nbg4fhxprvi9fwr7wmpws4cg89m9nwsfpyf0m2k8n9ibx";
   };
 
   passthru = { inherit texmfSrc langTexmfSrc; };
diff --git a/pkgs/tools/typesetting/tex/texlive/extra.nix b/pkgs/tools/typesetting/tex/texlive/extra.nix
index 056c7e0bf4e0..10b9962936dd 100644
--- a/pkgs/tools/typesetting/tex/texlive/extra.nix
+++ b/pkgs/tools/typesetting/tex/texlive/extra.nix
@@ -1,11 +1,11 @@
 args: with args;
 rec {
   name    = "texlive-extra-2013";
-  version = "2013.20140215";
+  version = "2013.20140314";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/t/texlive-extra/texlive-extra_${version}.orig.tar.xz";
-    sha256 = "04a67pns6q8kw1nl2v6x5p443kvhk8fr26qkcj7z098n68fpwls8";
+    sha256 = "6b4216fe87c354a0c3c8ec456272cc096a7ec112a68031797ae23f18e1e5b74c";
   };
 
   buildInputs = [texLive xz];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ba6cb440c741..8a498067d586 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -270,7 +270,7 @@ let
   buildFHSChrootEnv = import ../build-support/build-fhs-chrootenv {
     inherit stdenv glibc glibcLocales gcc coreutils diffutils findutils;
     inherit gnused gnugrep gnutar gzip bzip2 bashInteractive xz shadow gawk;
-    inherit less buildEnv;
+    inherit less su buildEnv;
   };
 
   dotnetenv = import ../build-support/dotnetenv {
@@ -354,7 +354,7 @@ let
 
   makeInitrd = {contents, compressor ? "gzip -9"}:
     import ../build-support/kernel/make-initrd.nix {
-      inherit stdenv perl cpio contents ubootChooser compressor;
+      inherit stdenv perl perlArchiveCpio cpio contents ubootChooser compressor;
     };
 
   makeWrapper = makeSetupHook { } ../build-support/setup-hooks/make-wrapper.sh;
@@ -426,7 +426,7 @@ let
 
   aescrypt = callPackage ../tools/misc/aescrypt { };
 
-  cb0cat = callPackage ../tools/security/cb0cat { };
+  cb1cat = callPackage ../tools/security/cb1cat { };
 
   ahcpd = callPackage ../tools/networking/ahcpd { };
 
@@ -576,6 +576,8 @@ let
 
   ccnet = callPackage ../tools/networking/ccnet { };
 
+  capstone = callPackage ../development/libraries/capstone { };
+
   ditaa = callPackage ../tools/graphics/ditaa { };
 
   direnv = callPackage ../tools/misc/direnv { };
@@ -604,6 +606,8 @@ let
 
   mcelog = callPackage ../os-specific/linux/mcelog { };
 
+  apparix = callPackage ../tools/misc/apparix { };
+
   asciidoc = callPackage ../tools/typesetting/asciidoc {
     inherit (pythonPackages) matplotlib numpy aafigure recursivePthLoader;
     enableStandardFeatures = false;
@@ -711,6 +715,8 @@ let
 
   colordiff = callPackage ../tools/text/colordiff { };
 
+  concurrencykit = callPackage ../development/libraries/concurrencykit { };
+
   connect = callPackage ../tools/networking/connect { };
 
   conspy = callPackage ../os-specific/linux/conspy {};
@@ -823,6 +829,8 @@ let
 
   dhcpcd = callPackage ../tools/networking/dhcpcd { };
 
+  dhcpcd_without_udev = callPackage ../tools/networking/dhcpcd { udev = null; };
+
   diffstat = callPackage ../tools/text/diffstat { };
 
   diffutils = callPackage ../tools/text/diffutils { };
@@ -855,6 +863,8 @@ let
 
   dtach = callPackage ../tools/misc/dtach { };
 
+  duo-unix = callPackage ../tools/security/duo-unix { };
+
   duplicity = callPackage ../tools/backup/duplicity {
     inherit (pythonPackages) boto lockfile;
     gnupg = gnupg1;
@@ -918,6 +928,8 @@ let
 
   expect = callPackage ../tools/misc/expect { };
 
+  f2fs-tools = callPackage ../tools/filesystems/f2fs-tools { };
+
   fabric = pythonPackages.fabric;
 
   fail2ban = callPackage ../tools/security/fail2ban { };
@@ -1112,7 +1124,7 @@ let
     buggyBiosCDSupport = config.grub.buggyBiosCDSupport or true;
   };
 
-  grub2 = callPackage ../tools/misc/grub/2.0x.nix { libusb = libusb1; };
+  grub2 = callPackage ../tools/misc/grub/2.0x.nix { libusb = libusb1; flex = flex_2_5_35; };
 
   grub2_efi = grub2.override { EFIsupport = true; };
 
@@ -1148,6 +1160,8 @@ let
     inherit openssl gmp nettools iproute;
   };
 
+  gvolicon = callPackage ../tools/audio/gvolicon {};
+
   gzip = callPackage ../tools/compression/gzip { };
 
   gzrt = callPackage ../tools/compression/gzrt { };
@@ -1164,6 +1178,8 @@ let
 
   hardlink = callPackage ../tools/system/hardlink { };
 
+  hashcat = callPackage ../tools/security/hashcat { };
+
   halibut = callPackage ../tools/typesetting/halibut { };
 
   hddtemp = callPackage ../tools/misc/hddtemp { };
@@ -1268,6 +1284,8 @@ let
 
   logstash = callPackage ../tools/misc/logstash { };
 
+  logstash-forwarder = callPackage ../tools/misc/logstash-forwarder { };
+
   kippo = callPackage ../servers/kippo { };
 
   klavaro = callPackage ../games/klavaro {};
@@ -1378,7 +1396,9 @@ let
 
   mdbtools = callPackage ../tools/misc/mdbtools { };
 
-  mdbtools_git = callPackage ../tools/misc/mdbtools/git.nix { };
+  mdbtools_git = callPackage ../tools/misc/mdbtools/git.nix { 
+    inherit (gnome) scrollkeeper;
+  };
 
   megacli = callPackage ../tools/misc/megacli { };
 
@@ -1386,6 +1406,8 @@ let
 
   minecraft = callPackage ../games/minecraft { };
 
+  minecraft-server = callPackage ../games/minecraft-server { };
+
   minetest = callPackage ../games/minetest {
     libpng = libpng12;
   };
@@ -1461,6 +1483,8 @@ let
 
   nbd = callPackage ../tools/networking/nbd { };
 
+  ndjbdns = callPackage ../tools/networking/ndjbdns { };
+
   netatalk = callPackage ../tools/filesystems/netatalk { };
 
   netcdf = callPackage ../development/libraries/netcdf { };
@@ -1519,10 +1543,15 @@ let
 
   nlopt = callPackage ../development/libraries/nlopt {};
 
+  npapi_sdk = callPackage ../development/libraries/npapi-sdk {};
+
   npth = callPackage ../development/libraries/npth {};
 
-  nmap = callPackage ../tools/security/nmap {
+  nmap = callPackage ../tools/security/nmap { };
+
+  nmap_graphical = callPackage ../tools/security/nmap {
     inherit (pythonPackages) pysqlite;
+    graphicalSupport = true;
   };
 
   notbit = callPackage ../applications/networking/notbit { };
@@ -1628,6 +1657,14 @@ let
 
   parted = callPackage ../tools/misc/parted { hurd = null; };
 
+  pitivi = callPackage ../applications/video/pitivi {
+    gst = gst_all_1;
+    clutter-gtk = clutter_gtk;
+    inherit (gnome3) gnome_icon_theme gnome_icon_theme_symbolic;
+  };
+
+  p0f = callPackage ../tools/security/p0f { };
+
   hurdPartedCross =
     if crossSystem != null && crossSystem.config == "i586-pc-gnu"
     then (makeOverridable
@@ -1646,7 +1683,7 @@ let
            { hurd = gnu.hurdCrossIntermediate; })
     else null;
 
-  ipsecTools = callPackage ../os-specific/linux/ipsec-tools { };
+  ipsecTools = callPackage ../os-specific/linux/ipsec-tools { flex = flex_2_5_35; };
 
   patch = gnupatch;
 
@@ -1737,6 +1774,8 @@ let
 
   cntlm = callPackage ../tools/networking/cntlm { };
 
+  pastebinit = callPackage ../tools/misc/pastebinit { };
+
   psmisc = callPackage ../os-specific/linux/psmisc { };
 
   pstoedit = callPackage ../tools/graphics/pstoedit { };
@@ -1877,6 +1916,8 @@ let
 
   sharutils = callPackage ../tools/archivers/sharutils { };
 
+  shotwell = callPackage ../applications/graphics/shotwell { };
+
   shebangfix = callPackage ../tools/misc/shebangfix { };
 
   shellinabox = callPackage ../servers/shellinabox { };
@@ -1889,6 +1930,8 @@ let
 
   silver-searcher = callPackage ../tools/text/silver-searcher { };
 
+  simplescreenrecorder = callPackage ../applications/video/simplescreenrecorder { };
+
   sleuthkit = callPackage ../tools/system/sleuthkit {};
 
   slimrat = callPackage ../tools/networking/slimrat {
@@ -1916,6 +1959,12 @@ let
 
   sparsehash = callPackage ../development/libraries/sparsehash { };
 
+  spiped = callPackage ../tools/networking/spiped { };
+
+  sproxy = haskellPackages.callPackage ../tools/networking/sproxy { };
+
+  sproxy-web = haskellPackages.callPackage ../tools/networking/sproxy-web { };
+
   stardict = callPackage ../applications/misc/stardict/stardict.nix {
     inherit (gnome) libgnomeui scrollkeeper;
   };
@@ -1949,6 +1998,8 @@ let
 
   super = callPackage ../tools/security/super { };
 
+  ssdeep = callPackage ../tools/security/ssdeep { };
+
   ssmtp = callPackage ../tools/networking/ssmtp {
     tlsSupport = true;
   };
@@ -1963,7 +2014,7 @@ let
 
   stunnel = callPackage ../tools/networking/stunnel { };
 
-  su = shadow;
+  su = shadow.su;
 
   surfraw = callPackage ../tools/networking/surfraw { };
 
@@ -1989,6 +2040,8 @@ let
 
   tcpdump = callPackage ../tools/networking/tcpdump { };
 
+  tcpflow = callPackage ../tools/networking/tcpflow { };
+
   teamviewer = callPackage_i686 ../applications/networking/remote/teamviewer { };
 
   # Work In Progress: it doesn't start unless running a daemon as root
@@ -2094,6 +2147,8 @@ let
 
   vtun = callPackage ../tools/networking/vtun { };
 
+  wal_e = callPackage ../tools/backup/wal-e { };
+
   wbox = callPackage ../tools/networking/wbox {};
 
   welkin = callPackage ../tools/graphics/welkin {};
@@ -2319,6 +2374,7 @@ let
 
   bashInteractive = appendToName "interactive" (callPackage ../shells/bash {
     interactive = true;
+    readline = readline63; # Includes many vi mode fixes
   });
 
   bashCompletion = callPackage ../shells/bash-completion { };
@@ -2349,6 +2405,7 @@ let
 
   aspectj = callPackage ../development/compilers/aspectj { };
 
+  ats = callPackage ../development/compilers/ats { };
   ats2 = callPackage ../development/compilers/ats2 { };
 
   avra = callPackage ../development/compilers/avra { };
@@ -2365,7 +2422,7 @@ let
 
   clang = wrapClang llvmPackages.clang;
 
-  clang_34 = wrapClang llvmPackages.clang;
+  clang_34 = wrapClang llvmPackages_34.clang;
   clang_33 = wrapClang (clangUnwrapped llvm_33 ../development/compilers/llvm/3.3/clang.nix);
   clang_32 = wrapClang (clangUnwrapped llvm_32 ../development/compilers/llvm/3.2/clang.nix);
   clang_31 = wrapClang (clangUnwrapped llvm_31 ../development/compilers/llvm/3.1/clang.nix);
@@ -2373,7 +2430,7 @@ let
   clangUnwrapped = llvm: pkg: callPackage pkg {
       stdenv = if stdenv.isDarwin
          then stdenvAdapters.overrideGCC stdenv gccApple
-         else stdenvAdapters.overrideGCC stdenv gcc48;
+         else stdenv;
       llvm = llvm;
   };
 
@@ -2677,6 +2734,8 @@ let
     enableMultilib = false;
   });
 
+  ghdl_mcode = callPackage ../development/compilers/ghdl { };
+
   gcl = builderDefsPackage ../development/compilers/gcl {
     inherit mpfr m4 binutils fetchcvs emacs zlib which
       texinfo;
@@ -2696,6 +2755,18 @@ let
       regexCompat HsSyck random;
   };
 
+  gcc-arm-embedded-4_7 = callPackage_i686 ../development/compilers/gcc-arm-embedded {
+    version = "4.7-2013q3-20130916";
+    releaseType = "update";
+    sha256 = "1bd9bi9q80xn2rpy0rn1vvj70rh15kb7dmah0qs4q2rv78fqj40d";
+  };
+  gcc-arm-embedded-4_8 = callPackage_i686 ../development/compilers/gcc-arm-embedded {
+    version = "4.8-2014q1-20140314";
+    releaseType = "update";
+    sha256 = "ce92859550819d4a3d1a6e2672ea64882b30afa2c08cf67fa8e1d93788c2c577";
+  };
+  gcc-arm-embedded = gcc-arm-embedded-4_8;
+
   # Haskell and GHC
 
   # Import Haskell infrastructure.
@@ -2710,7 +2781,13 @@ let
   # NOTE (recurseIntoAttrs): After discussion, we originally decided to
   # enable it for all GHC versions. However, this is getting too much,
   # particularly in connection with Hydra builds for all these packages.
-  # So we enable it for selected versions only.
+  # So we enable it for selected versions only. We build all ghcs, though
+
+  ghc = recurseIntoAttrs (lib.mapAttrs' (name: value:
+    lib.nameValuePair (builtins.substring (builtins.stringLength "packages_") (builtins.stringLength name) name) value.ghc
+  ) (lib.filterAttrs (name: value:
+    builtins.substring 0 (builtins.stringLength "packages_") name == "packages_"
+  ) haskell));
 
   # Current default version: 7.6.3.
   haskellPackages = haskellPackages_ghc763;
@@ -2739,7 +2816,7 @@ let
   haskellPackages_ghc763_profiling    = recurseIntoAttrs (haskell.packages_ghc763.profiling);
   haskellPackages_ghc763              = recurseIntoAttrs (haskell.packages_ghc763.highPrio);
   # Reasonably current HEAD snapshot.
-  haskellPackages_ghc781 = haskell.packages_ghc781;
+  haskellPackages_ghc782 = haskell.packages_ghc782;
   haskellPackages_ghcHEAD = haskell.packages_ghcHEAD;
 
   haxe = callPackage ../development/compilers/haxe { };
@@ -2772,6 +2849,19 @@ let
 
   gwt240 = callPackage ../development/compilers/gwt/2.4.0.nix { };
 
+  icedtea7_jdk = callPackage ../development/compilers/icedtea rec {
+    jdk = openjdk;
+    jdkPath = "${openjdk}/lib/openjdk";
+  } // { outputs = [ "out" ]; };
+
+  icedtea7_jre = (lib.setName "icedtea7-${lib.getVersion pkgs.icedtea7_jdk.jre}" (lib.addMetaAttrs
+    { description = "Free Java runtime environment based on OpenJDK 7.0 and the IcedTea project"; }
+    pkgs.icedtea7_jdk.jre)) // { outputs = [ "jre" ]; };
+
+  icedtea7_web = callPackage ../development/compilers/icedtea-web {
+    jdk = "${icedtea7_jdk}/lib/icedtea";
+  };
+
   ikarus = callPackage ../development/compilers/ikarus { };
 
   hugs = callPackage ../development/compilers/hugs { };
@@ -2826,10 +2916,15 @@ let
 
   jikes = callPackage ../development/compilers/jikes { };
 
-  julia = callPackage ../development/compilers/julia {
+  juliaGit = callPackage ../development/compilers/julia/git-20131013.nix {
+    liblapack = liblapack.override {shared = true;};
+    llvm = llvm_33;
+  };
+  julia021 = callPackage ../development/compilers/julia/0.2.1.nix {
     liblapack = liblapack.override {shared = true;};
     llvm = llvm_33;
   };
+  julia = julia021;
 
   lazarus = builderDefsPackage (import ../development/compilers/fpc/lazarus.nix) {
     inherit makeWrapper gtk glib pango atk gdk_pixbuf;
@@ -2839,10 +2934,9 @@ let
 
   lessc = callPackage ../development/compilers/lessc { };
 
-  llvm = if stdenv.isDarwin then llvm_33 # until someone solves build problems with _34
-    else llvmPackages.llvm;
+  llvm = llvmPackages.llvm;
 
-  llvm_34 = llvmPackages.llvm;
+  llvm_34 = llvmPackages_34.llvm;
   llvm_33 = llvm_v ../development/compilers/llvm/3.3/llvm.nix;
   llvm_32 = llvm_v ../development/compilers/llvm/3.2;
   llvm_31 = llvm_v ../development/compilers/llvm/3.1;
@@ -2853,12 +2947,15 @@ let
       else stdenv;
   };
 
-  llvmPackages = recurseIntoAttrs (import ../development/compilers/llvm/3.4 {
-    inherit newScope fetchurl;
+  llvmPackages = if !stdenv.isDarwin then llvmPackages_34 else llvmPackages_34 // {
+    # until someone solves build problems with _34
+    llvm = llvm_33;
+    clang = clang_33;
+  };
+
+  llvmPackages_34 = recurseIntoAttrs (import ../development/compilers/llvm/3.4 {
+    inherit stdenv newScope fetchurl;
     isl = isl_0_12;
-    stdenv = if stdenv.isDarwin
-      then stdenvAdapters.overrideGCC stdenv gcc48
-      else stdenv;
   });
   llvmPackagesSelf = import ../development/compilers/llvm/3.4 { inherit newScope fetchurl; isl = isl_0_12; stdenv = libcxxStdenv; };
 
@@ -3060,9 +3157,7 @@ let
   scala_2_10 = callPackage ../development/compilers/scala { };
   scala = scala_2_10;
 
-  sdcc = callPackage ../development/compilers/sdcc {
-    boost = boost149; # sdcc 3.2.0 fails to build with boost 1.53
-  };
+  sdcc = callPackage ../development/compilers/sdcc { };
 
   smlnj = callPackage_i686 ../development/compilers/smlnj { };
 
@@ -3218,6 +3313,7 @@ let
 
   maude = callPackage ../development/interpreters/maude {
     bison = bison2;
+    flex = flex_2_5_35;
   };
 
   octave = callPackage ../development/interpreters/octave {
@@ -3230,6 +3326,7 @@ let
     suitesparse = null;
     openjdk = null;
     gnuplot = null;
+    readline = readline63;
   };
   octaveFull = (lowPrio (callPackage ../development/interpreters/octave {
     fltk = fltk13;
@@ -3255,6 +3352,10 @@ let
 
   php = php54;
 
+  phpPackages = import ./php-packages.nix {
+    inherit php pkgs;
+  };
+
   php53 = callPackage ../development/interpreters/php/5.3.nix { };
 
   php54 = callPackage ../development/interpreters/php/5.4.nix { };
@@ -3642,7 +3743,9 @@ let
 
   checkstyle = callPackage ../development/tools/analysis/checkstyle { };
 
-  flex = callPackage ../development/tools/parsing/flex { };
+  flex_2_5_35 = callPackage ../development/tools/parsing/flex/2.5.35.nix { };
+  flex_2_5_39 = callPackage ../development/tools/parsing/flex/2.5.39.nix { };
+  flex = flex_2_5_39;
 
   m4 = gnum4;
 
@@ -3837,6 +3940,9 @@ let
   texinfo5 = callPackage ../development/tools/misc/texinfo/5.2.nix { };
   texinfo4 = texinfo413;
   texinfo = texinfo5;
+  texinfoInteractive = appendToName "interactive" (
+    texinfo.override { interactive = true; }
+  );
 
   texi2html = callPackage ../development/tools/misc/texi2html { };
 
@@ -3850,6 +3956,7 @@ let
 
   gdb = callPackage ../development/tools/misc/gdb {
     hurd = gnu.hurdCross;
+    readline = readline63;
     inherit (gnu) mig;
   };
 
@@ -4233,9 +4340,7 @@ let
 
   geoclue2 = callPackage ../development/libraries/geoclue/2.0.nix {};
 
-  geoip = builderDefsPackage ../development/libraries/geoip {
-    inherit zlib;
-  };
+  geoip = callPackage ../development/libraries/geoip { };
 
   geoipjava = callPackage ../development/libraries/java/geoipjava { };
 
@@ -4262,7 +4367,7 @@ let
   glfw2 = callPackage ../development/libraries/glfw/2.x.nix { };
   glfw3 = callPackage ../development/libraries/glfw/3.x.nix { };
 
-  glibc = callPackage ../development/libraries/glibc/2.18 {
+  glibc = callPackage ../development/libraries/glibc/2.19 {
     kernelHeaders = linuxHeaders;
     installLocales = config.glibc.locales or false;
     machHeaders = null;
@@ -4270,13 +4375,13 @@ let
     gccCross = null;
   };
 
-  glibc_memusage = callPackage ../development/libraries/glibc/2.18 {
+  glibc_memusage = callPackage ../development/libraries/glibc/2.19 {
     kernelHeaders = linuxHeaders;
     installLocales = false;
     withGd = true;
   };
 
-  glibcCross = forceNativeDrv (makeOverridable (import ../development/libraries/glibc/2.18)
+  glibcCross = forceNativeDrv (makeOverridable (import ../development/libraries/glibc/2.19)
     (let crossGNU = crossSystem != null && crossSystem.config == "i586-pc-gnu";
      in {
        inherit stdenv fetchurl;
@@ -4305,9 +4410,9 @@ let
     installLocales = config.glibc.locales or false;
   };
 
-  glibcLocales = callPackage ../development/libraries/glibc/2.18/locales.nix { };
+  glibcLocales = callPackage ../development/libraries/glibc/2.19/locales.nix { };
 
-  glibcInfo = callPackage ../development/libraries/glibc/2.18/info.nix { };
+  glibcInfo = callPackage ../development/libraries/glibc/2.19/info.nix { };
 
   glibc_multi =
     runCommand "${glibc.name}-multi"
@@ -4516,7 +4621,7 @@ let
 
   gts = callPackage ../development/libraries/gts { };
 
-  gvfs = callPackage ../development/libraries/gvfs { };
+  gvfs = callPackage ../development/libraries/gvfs { gconf = gnome.GConf; };
 
   gwenhywfar = callPackage ../development/libraries/gwenhywfar { };
 
@@ -4697,9 +4802,7 @@ let
 
   libchamplain_0_6 = callPackage ../development/libraries/libchamplain/0.6.nix {};
 
-  libchop = callPackage ../development/libraries/libchop {
-    gnutls = gnutls31;
-  };
+  libchop = callPackage ../development/libraries/libchop { };
 
   libcm = callPackage ../development/libraries/libcm { };
 
@@ -4778,6 +4881,8 @@ let
   libgnome_keyring = callPackage ../development/libraries/libgnome-keyring { };
   libgnome_keyring3 = gnome3.libgnome_keyring;
 
+  libseccomp = callPackage ../development/libraries/libseccomp { };
+
   libsecret = callPackage ../development/libraries/libsecret { };
 
   libgtop = callPackage ../development/libraries/libgtop {};
@@ -4863,6 +4968,8 @@ let
 
   libmtp = callPackage ../development/libraries/libmtp { };
 
+  libmsgpack = callPackage ../development/libraries/libmsgpack { };
+
   libnatspec = callPackage ../development/libraries/libnatspec { };
 
   libnfsidmap = callPackage ../development/libraries/libnfsidmap { };
@@ -4876,6 +4983,8 @@ let
   libre = callPackage ../development/libraries/libre {};
   librem = callPackage ../development/libraries/librem {};
 
+  libresample = callPackage ../development/libraries/libresample {};
+
   libsamplerate = callPackage ../development/libraries/libsamplerate {
     stdenv = if stdenv.isDarwin
       then overrideGCC stdenv gccApple
@@ -4973,6 +5082,8 @@ let
 
   libmusicbrainz3 = callPackage ../development/libraries/libmusicbrainz { };
 
+  libmusicbrainz5 = callPackage ../development/libraries/libmusicbrainz/5.x.nix { };
+
   libmusicbrainz = libmusicbrainz3;
 
   libnet = callPackage ../development/libraries/libnet { };
@@ -5036,6 +5147,8 @@ let
 
   libpseudo = callPackage ../development/libraries/libpseudo { };
 
+  libpwquality = callPackage ../development/libraries/libpwquality { };
+
   libqalculate = callPackage ../development/libraries/libqalculate { };
 
   librsvg = callPackage ../development/libraries/librsvg {
@@ -5100,6 +5213,8 @@ let
 
   libtxc_dxtn = callPackage ../development/libraries/libtxc_dxtn { };
 
+  libtxc_dxtn_s2tc = callPackage ../development/libraries/libtxc_dxtn_s2tc { };
+
   libgeotiff = callPackage ../development/libraries/libgeotiff { };
 
   libunistring = callPackage ../development/libraries/libunistring { };
@@ -5141,6 +5256,8 @@ let
 
   libvirt = callPackage ../development/libraries/libvirt { };
 
+  libvirt-glib = callPackage ../development/libraries/libvirt-glib { };
+
   libvisio = callPackage ../development/libraries/libvisio { };
 
   libvisual = callPackage ../development/libraries/libvisual { };
@@ -5249,7 +5366,7 @@ let
 
   mesaSupported = lib.elem system lib.platforms.mesaPlatforms;
 
-  mesa_original = callPackage ../development/libraries/mesa { llvm = llvm_33; };
+  mesa_original = callPackage ../development/libraries/mesa { };
   mesa_noglu = if stdenv.isDarwin
     then darwinX11AndOpenGL // { driverLink = mesa_noglu; }
     else mesa_original;
@@ -5281,6 +5398,8 @@ let
 
   ming = callPackage ../development/libraries/ming { };
 
+  minizip = callPackage ../development/libraries/minizip { };
+
   minmay = callPackage ../development/libraries/minmay { };
 
   miro = callPackage ../applications/video/miro {
@@ -5291,6 +5410,8 @@ let
 
   mlt = callPackage ../development/libraries/mlt { };
 
+  mps = callPackage ../development/libraries/mps { };
+
   libmpeg2 = callPackage ../development/libraries/libmpeg2 { };
 
   mpeg2dec = libmpeg2;
@@ -5305,6 +5426,8 @@ let
 
   mtdev = callPackage ../development/libraries/mtdev { };
 
+  mtpfs = callPackage ../tools/filesystems/mtpfs { };
+
   mu = callPackage ../tools/networking/mu {
     texinfo = texinfo4;
   };
@@ -5572,7 +5695,7 @@ let
 
   raul = callPackage ../development/libraries/audio/raul { };
 
-  readline = readline6;
+  readline = readline6; # 6.2 works, 6.3 breaks python, parted
 
   readline4 = callPackage ../development/libraries/readline/readline4.nix { };
 
@@ -5587,6 +5710,15 @@ let
       else stdenv;
   };
 
+  readline63 = callPackage ../development/libraries/readline/readline6.3.nix {
+    stdenv =
+      # On Darwin, Readline uses `-arch_only', which is specific to
+      # Apple-GCC.  So give it what it expects.
+      if stdenv.isDarwin
+      then overrideGCC stdenv gccApple
+      else stdenv;
+  };
+
   librdf_raptor = callPackage ../development/libraries/librdf/raptor.nix { };
 
   librdf_raptor2 = callPackage ../development/libraries/librdf/raptor2.nix { };
@@ -5818,6 +5950,10 @@ let
 
   ustr = callPackage ../development/libraries/ustr { };
 
+  usbredir = callPackage ../development/libraries/usbredir {
+    libusb = libusb1;
+  };
+
   ucommon = callPackage ../development/libraries/ucommon { };
 
   vaapiIntel = callPackage ../development/libraries/vaapi-intel { };
@@ -5848,28 +5984,7 @@ let
 
   wayland = callPackage ../development/libraries/wayland { };
 
-  webkit =
-    builderDefsPackage ../development/libraries/webkit {
-      inherit gtk2; # for plugins etc. even with gtk3, see Gentoo ebuild
-      inherit gtk3 glib atk cairo pango fontconfig freetype;
-      inherit (gnome) gtkdoc libsoup;
-      inherit pkgconfig libtool intltool autoconf automake gperf flex
-        libjpeg libpng libtiff libxml2 libxslt sqlite icu curl
-        which libproxy geoclue enchant python ruby perl mesa xlibs;
-      inherit gstreamer gst_plugins_base gst_ffmpeg gst_plugins_good;
-      bison = bison2;
-    };
-
-  webkit_gtk2 =
-    builderDefsPackage ../development/libraries/webkit/gtk2.nix {
-      inherit gtk2 glib atk cairo pango fontconfig freetype;
-      inherit (gnome) gtkdoc libsoup;
-      inherit pkgconfig libtool intltool autoconf automake gperf flex
-        libjpeg libpng libtiff libxml2 libxslt sqlite icu curl
-        which libproxy geoclue enchant python ruby perl mesa xlibs;
-      inherit gstreamer gst_plugins_base gst_ffmpeg gst_plugins_good;
-      bison = bison2;
-    };
+  webkit = webkitgtk;
 
   webkitgtk = callPackage ../development/libraries/webkitgtk {
     harfbuzz = harfbuzz.override {
@@ -5878,6 +5993,11 @@ let
     gst-plugins-base = gst_all_1.gst-plugins-base;
   };
 
+  webkitgtk2 = webkitgtk.override {
+    withGtk2 = true;
+    enableIntrospection = false;
+  };
+
   wildmidi = callPackage ../development/libraries/wildmidi { };
 
   wvstreams = callPackage ../development/libraries/wvstreams { };
@@ -6027,7 +6147,13 @@ let
     inherit (gnome) libsoup;
   };
 
-  v8 = callPackage ../development/libraries/v8 { inherit (pythonPackages) gyp; };
+  v8 = callPackage ../development/libraries/v8 {
+    inherit (pythonPackages) gyp;
+  };
+
+  v8_3_14 = callPackage ../development/libraries/v8/3.14.nix {
+    inherit (pythonPackages) gyp;
+  };
 
   xmlsec = callPackage ../development/libraries/xmlsec { };
 
@@ -6087,8 +6213,12 @@ let
 
   ack = perlPackages.ack;
 
+  perlArchiveCpio = perlPackages.ArchiveCpio;
+
   perlcritic = perlPackages.PerlCritic;
 
+  planetary_annihilation = callPackage ../games/planetaryannihilation { };
+
 
   ### DEVELOPMENT / PYTHON MODULES
 
@@ -6113,10 +6243,10 @@ let
     python = python33;
   });
 
-  python34Packages = import ./python-packages.nix {
+  python34Packages = recurseIntoAttrs (import ./python-packages.nix {
     inherit pkgs;
     python = python34;
-  };
+  });
 
   python32Packages = import ./python-packages.nix {
     inherit pkgs;
@@ -6137,6 +6267,8 @@ let
 
   bsddb3 = callPackage ../development/python-modules/bsddb3 { };
 
+  ecdsa = callPackage ../development/python-modules/ecdsa { };
+
   numeric = callPackage ../development/python-modules/numeric { };
 
   pil = pythonPackages.pil;
@@ -6195,6 +6327,8 @@ let
 
   setuptools = pythonPackages.setuptools;
 
+  slowaes = callPackage ../development/python-modules/slowaes { };
+
   wxPython = pythonPackages.wxPython;
   wxPython28 = pythonPackages.wxPython28;
 
@@ -6300,6 +6434,8 @@ let
 
   joseki = callPackage ../servers/http/joseki {};
 
+  leafnode = callPackage ../servers/news/leafnode { };
+
   lighttpd = callPackage ../servers/http/lighttpd { };
 
   mailman = callPackage ../servers/mail/mailman { };
@@ -6308,6 +6444,8 @@ let
 
   memcached = callPackage ../servers/memcached {};
 
+  mod_dnssd = callPackage ../servers/http/apache-modules/mod_dnssd/default.nix { };
+
   mod_evasive = callPackage ../servers/http/apache-modules/mod_evasive { };
 
   mod_python = callPackage ../servers/http/apache-modules/mod_python { };
@@ -6331,6 +6469,8 @@ let
 
   nginx = callPackage ../servers/http/nginx { };
 
+  ngircd = callPackage ../servers/irc/ngircd { };
+
   opensmtpd = callPackage ../servers/mail/opensmtpd { };
 
   petidomo = callPackage ../servers/mail/petidomo { };
@@ -6436,6 +6576,8 @@ let
 
   rethinkdb = callPackage ../servers/nosql/rethinkdb { };
 
+  rippled = callPackage ../servers/rippled { };
+
   spamassassin = callPackage ../servers/mail/spamassassin {
     inherit (perlPackages) HTMLParser NetDNS NetAddrIP DBFile
       HTTPDate MailDKIM LWP IOSocketSSL;
@@ -6456,6 +6598,8 @@ let
 
   serfdom = callPackage ../servers/serfdom { };
 
+  seyren = callPackage ../servers/monitoring/seyren { };
+
   shishi = callPackage ../servers/shishi { };
 
   sipwitch = callPackage ../servers/sip/sipwitch { };
@@ -6497,6 +6641,8 @@ let
       dbus libuuid openssl gperf m4
       autoconf automake libtool xmlto asciidoc udev flex bison python mtdev pixman;
     mesa = mesa_noglu;
+  } // {
+    xf86videointel-testing = callPackage ../servers/x11/xorg/xf86-video-intel-testing.nix { };
   });
 
   xorgReplacements = callPackage ../servers/x11/xorg/replacements.nix { };
@@ -6583,12 +6729,23 @@ let
 
   cifs_utils = callPackage ../os-specific/linux/cifs-utils { };
 
-  conky = callPackage ../os-specific/linux/conky { };
+  conky = callPackage ../os-specific/linux/conky {
+    mpdSupport   = config.conky.mpdSupport   or true;
+    x11Support   = config.conky.x11Support   or false;
+    xdamage      = config.conky.xdamage      or false;
+    wireless     = config.conky.wireless     or false;
+    luaSupport   = config.conky.luaSupport   or false;
+    rss          = config.conky.rss          or false;
+    weatherMetar = config.conky.weatherMetar or false;
+    weatherXoap  = config.conky.weatherXoap  or false;
+  };
 
   cpufrequtils = callPackage ../os-specific/linux/cpufrequtils { };
 
   cryopid = callPackage ../os-specific/linux/cryopid { };
 
+  criu = callPackage ../os-specific/linux/criu { };
+
   cryptsetup = callPackage ../os-specific/linux/cryptsetup { };
 
   cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
@@ -6655,7 +6812,9 @@ let
 
   gpm = callPackage ../servers/gpm { };
 
-  gradm = callPackage ../os-specific/linux/gradm { };
+  gradm = callPackage ../os-specific/linux/gradm {
+    flex = flex_2_5_35;
+  };
 
   hdparm = callPackage ../os-specific/linux/hdparm { };
 
@@ -6740,40 +6899,9 @@ let
 
   linux_3_2 = makeOverridable (import ../os-specific/linux/kernel/linux-3.2.nix) {
     inherit fetchurl stdenv perl buildLinux;
-    kernelPatches =
-      [ kernelPatches.sec_perm_2_6_24
-      ];
-  };
-
-  grsecurityOverrider = args: {
-    # Apparently as of gcc 4.6, gcc-plugin headers (which are needed by PaX plugins)
-    # include libgmp headers, so we need these extra tweaks
-    buildInputs = args.buildInputs ++ [ gmp ];
-    preConfigure = ''
-      ${args.preConfigure or ""}
-      sed -i 's|-I|-I${gmp}/include -I|' scripts/gcc-plugin.sh
-      sed -i 's|HOST_EXTRACFLAGS +=|HOST_EXTRACFLAGS += -I${gmp}/include|' tools/gcc/Makefile
-      sed -i 's|HOST_EXTRACXXFLAGS +=|HOST_EXTRACXXFLAGS += -I${gmp}/include|' tools/gcc/Makefile
-    '';
+    kernelPatches = [];
   };
 
-  # Note: grsec is not enabled automatically, you need to specify which kernel
-  # config options you need (e.g. by overriding extraConfig). See list of options here:
-  # https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options
-  linux_3_2_grsecurity = lowPrio (lib.overrideDerivation (linux_3_2.override (args: {
-    kernelPatches = args.kernelPatches ++ [ kernelPatches.grsecurity_3_0_3_2_55 kernelPatches.grsec_path ];
-    argsOverride = {
-      modDirVersion = "${linux_3_2.modDirVersion}-grsec";
-    };
-  })) (args: grsecurityOverrider args));
-
-  linux_3_13_grsecurity = lowPrio (lib.overrideDerivation (linux_3_13.override (args: {
-    kernelPatches = args.kernelPatches ++ [ kernelPatches.grsecurity_3_0_3_13_6 kernelPatches.grsec_path ];
-    argsOverride = {
-      modDirVersion = "${linux_3_13.modDirVersion}-grsec";
-    };
-  })) (args: grsecurityOverrider args));
-
   linux_3_2_apparmor = lowPrio (linux_3_2.override {
     kernelPatches = [ kernelPatches.apparmor_3_2 ];
     extraConfig = ''
@@ -6790,9 +6918,7 @@ let
 
   linux_3_4 = makeOverridable (import ../os-specific/linux/kernel/linux-3.4.nix) {
     inherit fetchurl stdenv perl buildLinux;
-    kernelPatches =
-      [ kernelPatches.sec_perm_2_6_24
-      ] ++ lib.optionals ((platform.kernelArch or null) == "mips")
+    kernelPatches = lib.optionals ((platform.kernelArch or null) == "mips")
       [ kernelPatches.mips_fpureg_emu
         kernelPatches.mips_fpu_sigill
       ];
@@ -6812,10 +6938,7 @@ let
 
   linux_3_10 = makeOverridable (import ../os-specific/linux/kernel/linux-3.10.nix) {
     inherit fetchurl stdenv perl buildLinux;
-    kernelPatches =
-      [
-        kernelPatches.sec_perm_2_6_24
-      ] ++ lib.optionals ((platform.kernelArch or null) == "mips")
+    kernelPatches = lib.optionals ((platform.kernelArch or null) == "mips")
       [ kernelPatches.mips_fpureg_emu
         kernelPatches.mips_fpu_sigill
         kernelPatches.mips_ext3_n32
@@ -6831,36 +6954,27 @@ let
     '';
   });
 
-  linux_3_11 = makeOverridable (import ../os-specific/linux/kernel/linux-3.11.nix) {
+  linux_3_12 = makeOverridable (import ../os-specific/linux/kernel/linux-3.12.nix) {
     inherit fetchurl stdenv perl buildLinux;
-    kernelPatches =
-      [
-        kernelPatches.sec_perm_2_6_24
-      ] ++ lib.optionals ((platform.kernelArch or null) == "mips")
+    kernelPatches = lib.optionals ((platform.kernelArch or null) == "mips")
       [ kernelPatches.mips_fpureg_emu
         kernelPatches.mips_fpu_sigill
         kernelPatches.mips_ext3_n32
       ];
   };
 
-  linux_3_12 = makeOverridable (import ../os-specific/linux/kernel/linux-3.12.nix) {
+  linux_3_13 = makeOverridable (import ../os-specific/linux/kernel/linux-3.13.nix) {
     inherit fetchurl stdenv perl buildLinux;
-    kernelPatches =
-      [
-        kernelPatches.sec_perm_2_6_24
-      ] ++ lib.optionals ((platform.kernelArch or null) == "mips")
+    kernelPatches = lib.optionals ((platform.kernelArch or null) == "mips")
       [ kernelPatches.mips_fpureg_emu
         kernelPatches.mips_fpu_sigill
         kernelPatches.mips_ext3_n32
       ];
   };
 
-  linux_3_13 = makeOverridable (import ../os-specific/linux/kernel/linux-3.13.nix) {
+  linux_3_14 = makeOverridable (import ../os-specific/linux/kernel/linux-3.14.nix) {
     inherit fetchurl stdenv perl buildLinux;
-    kernelPatches =
-      [
-        kernelPatches.sec_perm_2_6_24
-      ] ++ lib.optionals ((platform.kernelArch or null) == "mips")
+    kernelPatches = lib.optionals ((platform.kernelArch or null) == "mips")
       [ kernelPatches.mips_fpureg_emu
         kernelPatches.mips_fpu_sigill
         kernelPatches.mips_ext3_n32
@@ -6891,6 +7005,8 @@ let
 
     e1000e = callPackage ../os-specific/linux/e1000e {};
 
+    v4l2loopback = callPackage ../os-specific/linux/v4l2loopback { };
+
     frandom = callPackage ../os-specific/linux/frandom { };
 
     ktap = callPackage ../os-specific/linux/ktap { };
@@ -6932,6 +7048,8 @@ let
 
     spl = callPackage ../os-specific/linux/spl/default.nix { };
 
+    sysdig = callPackage ../os-specific/linux/sysdig {};
+
     tp_smapi = callPackage ../os-specific/linux/tp_smapi { };
 
     v86d = callPackage ../os-specific/linux/v86d { };
@@ -6950,23 +7068,21 @@ let
   # Build the kernel modules for the some of the kernels.
   linuxPackages_3_2 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_2 linuxPackages_3_2);
   linuxPackages_3_2_apparmor = linuxPackagesFor pkgs.linux_3_2_apparmor linuxPackages_3_2_apparmor;
-  linuxPackages_3_2_grsecurity = linuxPackagesFor pkgs.linux_3_2_grsecurity linuxPackages_3_2_grsecurity;
   linuxPackages_3_2_xen = linuxPackagesFor pkgs.linux_3_2_xen linuxPackages_3_2_xen;
   linuxPackages_3_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_4 linuxPackages_3_4);
   linuxPackages_3_4_apparmor = linuxPackagesFor pkgs.linux_3_4_apparmor linuxPackages_3_4_apparmor;
   linuxPackages_3_6_rpi = linuxPackagesFor pkgs.linux_3_6_rpi linuxPackages_3_6_rpi;
   linuxPackages_3_10 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_10 linuxPackages_3_10);
   linuxPackages_3_10_tuxonice = linuxPackagesFor pkgs.linux_3_10_tuxonice linuxPackages_3_10_tuxonice;
-  linuxPackages_3_11 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_11 linuxPackages_3_11);
   linuxPackages_3_12 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_12 linuxPackages_3_12);
-  linuxPackages_3_13_grsecurity = linuxPackagesFor pkgs.linux_3_13_grsecurity linuxPackages_3_13_grsecurity;
   linuxPackages_3_13 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_13 linuxPackages_3_13);
+  linuxPackages_3_14 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_14 linuxPackages_3_14);
   # Update this when adding a new version!
-  linuxPackages_latest = pkgs.linuxPackages_3_13;
+  linuxPackages_latest = pkgs.linuxPackages_3_14;
 
   # The current default kernel / kernel modules.
   linux = linuxPackages.kernel;
-  linuxPackages = linuxPackages_3_10;
+  linuxPackages = linuxPackages_3_12;
 
   # A function to build a manually-configured kernel
   linuxManualConfig = pkgs.buildLinux;
@@ -6992,6 +7108,8 @@ let
 
   lm_sensors = callPackage ../os-specific/linux/lm-sensors { };
 
+  lockdep = callPackage ../os-specific/linux/lockdep { };
+
   lsiutil = callPackage ../os-specific/linux/lsiutil { };
 
   kmod = callPackage ../os-specific/linux/kmod { };
@@ -7033,6 +7151,8 @@ let
 
   multipath_tools = callPackage ../os-specific/linux/multipath-tools { };
 
+  musl = callPackage ../os-specific/linux/musl { };
+
   nettools = callPackage ../os-specific/linux/net-tools { };
 
   neverball = callPackage ../games/neverball {
@@ -7090,9 +7210,13 @@ let
 
   prayer = callPackage ../servers/prayer { };
 
-  procps = callPackage ../os-specific/linux/procps { };
+  procps = procps-ng;
+
+  procps-old = lowPrio (callPackage ../os-specific/linux/procps { });
 
-  "procps-ng" = callPackage ../os-specific/linux/procps-ng { };
+  procps-ng = callPackage ../os-specific/linux/procps-ng { };
+
+  watch = callPackage ../os-specific/linux/procps/watch.nix { };
 
   qemu_kvm = lowPrio (qemu.override { x86Only = true; });
 
@@ -7621,7 +7745,6 @@ let
 
   chromium = lowPrio (callPackage ../applications/networking/browsers/chromium {
     channel = "stable";
-    gconf = gnome.GConf;
     pulseSupport = config.pulseaudio or true;
   });
 
@@ -7694,7 +7817,7 @@ let
     inherit (gnome) GConf libglade;
   };
 
-  "dd-agent" = callPackage ../tools/networking/dd-agent { };
+  "dd-agent" = callPackage ../tools/networking/dd-agent { inherit (pythonPackages) tornado; };
 
   dia = callPackage ../applications/graphics/dia {
     inherit (pkgs.gnome) libart_lgpl libgnomeui;
@@ -7744,6 +7867,10 @@ let
 
   ed = callPackage ../applications/editors/ed { };
 
+  ekho = callPackage ../applications/audio/ekho { };
+
+  electrum = callPackage ../applications/misc/electrum { };
+
   elinks = callPackage ../applications/networking/browsers/elinks { };
 
   elvis = callPackage ../applications/editors/elvis { };
@@ -7803,6 +7930,8 @@ let
 
     colorTheme = callPackage ../applications/editors/emacs-modes/color-theme { };
 
+    cryptol = callPackage ../applications/editors/emacs-modes/cryptol { };
+
     cua = callPackage ../applications/editors/emacs-modes/cua { };
 
     darcsum = callPackage ../applications/editors/emacs-modes/darcsum { };
@@ -8558,12 +8687,15 @@ let
 
   mpc_cli = callPackage ../applications/audio/mpc { };
 
+  ncmpc = callPackage ../applications/audio/ncmpc { };
+
   ncmpcpp = callPackage ../applications/audio/ncmpcpp { };
 
   normalize = callPackage ../applications/audio/normalize { };
 
   mplayer = callPackage ../applications/video/mplayer {
     pulseSupport = config.pulseaudio or false;
+    vdpauSupport = config.mplayer.vdpauSupport or false;
   };
 
   mplayer2 = callPackage ../applications/video/mplayer2 { };
@@ -8659,6 +8791,8 @@ let
 
   ncdu = callPackage ../tools/misc/ncdu { };
 
+  ncdc = callPackage ../applications/networking/p2p/ncdc { };
+
   nedit = callPackage ../applications/editors/nedit {
     motif = lesstif;
   };
@@ -8707,6 +8841,8 @@ let
 
   opusTools = callPackage ../applications/audio/opus-tools { };
 
+  pamixer = callPackage ../applications/audio/pamixer { };
+
   pan = callPackage ../applications/networking/newsreaders/pan {
     spellChecking = false;
   };
@@ -8888,6 +9024,8 @@ let
 
   skype_call_recorder = callPackage ../applications/networking/instant-messengers/skype-call-recorder { };
 
+  slrn = callPackage ../applications/networking/newsreaders/slrn { };
+
   ssvnc = callPackage ../applications/networking/remote/ssvnc { };
 
   st = callPackage ../applications/misc/st {
@@ -8914,6 +9052,12 @@ let
     perl = perl514;
   };
 
+  curaengine = callPackage ../applications/misc/curaengine { };
+
+  cura = callPackage ../applications/misc/cura { };
+
+  printrun = callPackage ../applications/misc/printrun { };
+
   slim = callPackage ../applications/display-managers/slim {
     libpng = libpng12;
   };
@@ -8972,8 +9116,7 @@ let
   });
 
   surf = callPackage ../applications/misc/surf {
-    libsoup = gnome.libsoup;
-    webkit = webkit_gtk2;
+    webkit = webkitgtk2;
   };
 
   svk = perlPackages.SVK;
@@ -8985,6 +9128,8 @@ let
     gpgSupport = true;
   };
 
+  syncthing = callPackage ../applications/networking/syncthing { };
+
   # linux only by now
   synergy = callPackage ../applications/misc/synergy { };
 
@@ -9039,6 +9184,14 @@ let
     inherit (gnome) libIDL;
   };
 
+  thunderbird-bin = callPackage ../applications/networking/mailreaders/thunderbird-bin {
+    gconf = pkgs.gnome.GConf;
+    inherit (pkgs.gnome3) at_spi2_atk;
+    inherit (pkgs.gnome) libgnome libgnomeui;
+    inherit (pkgs.xlibs) libX11 libXScrnSaver libXext
+      libXinerama libXrender libXt;
+  };
+
   tig = gitAndTools.tig;
 
   timidity = callPackage ../tools/misc/timidity { };
@@ -9092,12 +9245,8 @@ let
 
   uwimap = callPackage ../tools/networking/uwimap { };
 
-  uzbl = builderDefsPackage (import ../applications/networking/browsers/uzbl) {
-    inherit pkgconfig webkit makeWrapper glib_networking python3;
-    inherit glib pango cairo gdk_pixbuf atk;
-    inherit (xlibs) libX11 kbproto;
-    inherit (gnome) libsoup;
-    gtk = gtk3;
+  uzbl = callPackage ../applications/networking/browsers/uzbl {
+    webkit = webkitgtk2;
   };
 
   vanitygen = callPackage ../applications/misc/vanitygen { };
@@ -9122,13 +9271,12 @@ let
       else stdenv;
   };
 
-  vimwrapper = callPackage ../applications/editors/vim/wrapper.nix {
-    inherit vim;
-    vimrc = config.vim.vimrc or null;
-  };
+  vimWrapper = wrapVim vim;
 
   vimHugeX = vim_configurable;
 
+  vimHugeXWrapper = wrapVim vimHugeX;
+
   vim_configurable = callPackage ../applications/editors/vim/configurable.nix {
     inherit (pkgs) fetchurl fetchhg stdenv ncurses pkgconfig gettext
       composableDerivation lib config glib gtk python perl tcl ruby;
@@ -9161,10 +9309,18 @@ let
     flags = [ "python" "X11" ]; # only flag "X11" by now
   });
 
+  wrapVim = vim: import ../applications/editors/vim/wrapper.nix {
+    inherit stdenv makeWrapper writeText vim;
+    vimrc = config.vim.vimrc or "";
+  };
+
   virtviewer = callPackage ../applications/virtualization/virt-viewer {};
   virtmanager = callPackage ../applications/virtualization/virt-manager {
     inherit (gnome) gnome_python;
-    vte = gnome.vte.override { pythonSupport = true; };
+    vte = gnome3.vte;
+    dconf = gnome3.dconf;
+    gtkvnc = gtkvnc.override { enableGTK3 = true; };
+    spice_gtk = spice_gtk.override { enableGTK3 = true; };
   };
 
   virtinst = callPackage ../applications/virtualization/virtinst {};
@@ -9186,7 +9342,7 @@ let
   vorbisTools = callPackage ../applications/audio/vorbis-tools { };
 
   vue = callPackage ../applications/misc/vue {
-    jre = oraclejre;
+    jre = icedtea7_jre;
   };
 
   vwm = callPackage ../applications/window-managers/vwm { };
@@ -9195,10 +9351,9 @@ let
     graphicsSupport = false;
   };
 
-  weechat = callPackage ../applications/networking/irc/weechat {
-    # weechat doesn't exit with gnutls32. Use 3.1 for now.
-    gnutls = gnutls31;
-  };
+  weechat = callPackage ../applications/networking/irc/weechat { };
+
+  weechatDevel = callPackage ../applications/networking/irc/weechat/devel.nix { };
 
   weston = callPackage ../applications/window-managers/weston { };
 
@@ -9303,6 +9458,8 @@ let
 
   xdaliclock = callPackage ../tools/misc/xdaliclock {};
 
+  xdg-user-dirs = callPackage ../tools/X11/xdg-user-dirs { };
+
   xdg_utils = callPackage ../tools/X11/xdg-utils { };
 
   xdotool = callPackage ../tools/X11/xdotool { };
@@ -9395,6 +9552,8 @@ let
 
   zgrviewer = callPackage ../applications/graphics/zgrviewer {};
 
+  zotero = callPackage ../applications/office/zotero { };
+
   zynaddsubfx = callPackage ../applications/audio/zynaddsubfx { };
 
 
@@ -9540,6 +9699,10 @@ let
 
   micropolis = callPackage ../games/micropolis { };
 
+  mnemosyne = callPackage ../games/mnemosyne {
+    inherit (pythonPackages) matplotlib cherrypy sqlite3;
+  };
+
   naev = callPackage ../games/naev { };
 
   nexuiz = callPackage ../games/nexuiz { };
@@ -9694,7 +9857,7 @@ let
   warzone2100 = callPackage ../games/warzone2100 { };
 
   widelands = callPackage ../games/widelands {
-    libpng = libpng12;
+    lua = lua5_1;
   };
 
   worldofgoo_demo = callPackage ../games/worldofgoo {
@@ -9729,7 +9892,11 @@ let
 
   cinnamon = recurseIntoAttrs rec {
     callPackage = newScope pkgs.cinnamon;
-    inherit (gnome3) gnome_common;
+    inherit (gnome3) gnome_common libgnomekbd gnome-menus;
+    
+    cinnamon-control-center = callPackage ../desktops/cinnamon/cinnamon-control-center.nix{ };
+    
+    cinnamon-settings-daemon = callPackage ../desktops/cinnamon/cinnamon-settings-daemon.nix{ };
 
     cinnamon-session = callPackage ../desktops/cinnamon/cinnamon-session.nix{ } ;
 
@@ -9764,21 +9931,13 @@ let
 
   hsetroot = callPackage ../tools/X11/hsetroot { };
 
+  kakasi = callPackage ../tools/text/kakasi { };
+
   kde4 = recurseIntoAttrs pkgs.kde411;
 
   kde4_next = recurseIntoAttrs( lib.lowPrioSet pkgs.kde412 );
 
-  kde4_prev = recurseIntoAttrs pkgs.kde410;
-
-  kde410 = kdePackagesFor (pkgs.kde410 // {
-      boost = boost149;
-      eigen = eigen2;
-      libotr = libotr_3_2;
-      libusb = libusb1;
-      libcanberra = libcanberra_kde;
-    }) ../desktops/kde-4.10;
-
- kde411 = kdePackagesFor (pkgs.kde411 // {
+  kde411 = kdePackagesFor (pkgs.kde411 // {
       boost = boost149;
       eigen = eigen2;
       libotr = libotr_3_2;
@@ -9786,7 +9945,7 @@ let
       libcanberra = libcanberra_kde;
     }) ../desktops/kde-4.11;
 
- kde412 = kdePackagesFor (pkgs.kde412 // {
+  kde412 = kdePackagesFor (pkgs.kde412 // {
       eigen = eigen2;
       libusb = libusb1;
       libcanberra = libcanberra_kde;
@@ -10108,6 +10267,13 @@ let
 
   tptp = callPackage ../applications/science/logic/tptp {};
 
+  z3 = callPackage ../applications/science/logic/z3 {};
+
+  boolector   = boolector15;
+  boolector15 = callPackage ../applications/science/logic/boolector {};
+  boolector16 = lowPrio (callPackage ../applications/science/logic/boolector {
+    useV16 = true;
+  });
 
   ### SCIENCE / ELECTRONICS
 
@@ -10193,6 +10359,8 @@ let
 
   golly = callPackage ../applications/science/misc/golly { };
 
+  megam = callPackage ../applications/science/misc/megam { };
+
   root = callPackage ../applications/science/misc/root { };
 
   simgrid = callPackage ../applications/science/misc/simgrid { };
@@ -10316,10 +10484,13 @@ let
     stateDir = config.nix.stateDir or "/nix/var";
   };
 
+  nixUnstable = nixStable;
+  /*
   nixUnstable = callPackage ../tools/package-management/nix/unstable.nix {
     storeDir = config.nix.storeDir or "/nix/store";
     stateDir = config.nix.stateDir or "/nix/var";
   };
+  */
 
   nixops = callPackage ../tools/package-management/nixops { };
 
@@ -10512,8 +10683,7 @@ let
   vimPlugins = callPackage ../misc/vim-plugins { };
 
   vimprobable2 = callPackage ../applications/networking/browsers/vimprobable2 {
-    inherit (gnome) libsoup;
-    webkit = webkit_gtk2;
+    webkit = webkitgtk2;
   };
 
   vimprobable2Wrapper = wrapFirefox
@@ -10521,8 +10691,7 @@ let
     };
 
   vimb = callPackage ../applications/networking/browsers/vimb {
-    inherit (gnome) libsoup;
-    webkit = webkit_gtk2;
+    webkit = webkitgtk2;
   };
 
   vimbWrapper = wrapFirefox {
diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix
index 2d4bdea6006d..5a84b4339e22 100644
--- a/pkgs/top-level/haskell-defaults.nix
+++ b/pkgs/top-level/haskell-defaults.nix
@@ -23,7 +23,7 @@
       cabalInstall = self.cabalInstall_1_18_0_3.override { Cabal = null; };
     };
 
-  ghc781Prefs =
+  ghc782Prefs =
     self : self.haskellPlatformArgs_future self // {
       haskellPlatform = null;
       extensibleExceptions = self.extensibleExceptions_0_1_1_4;
@@ -404,10 +404,10 @@
                prefFun = ghc763Prefs;
              };
 
-  packages_ghc781 =
-    packages { ghcPath = ../development/compilers/ghc/7.8.1.nix;
+  packages_ghc782 =
+    packages { ghcPath = ../development/compilers/ghc/7.8.2.nix;
                ghcBinary = ghc742Binary;
-               prefFun = ghc781Prefs;
+               prefFun = ghc782Prefs;
              };
 
   # Reasonably current HEAD snapshot. Should *always* be lowPrio.
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index d23471ffdd48..217fce1312ff 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -143,17 +143,17 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
     inherit (self) cabal ghc;
     async        = self.async_2_0_1_5;
     attoparsec   = self.attoparsec_0_11_2_1;
-    caseInsensitive = self.caseInsensitive_1_1_0_3;
+    caseInsensitive = self.caseInsensitive_1_2_0_0;
     cgi          = self.cgi_3001_1_8_5;
     fgl          = self.fgl_5_4_2_4;
     GLUT         = self.GLUT_2_5_1_0;
     GLURaw       = self.GLURaw_1_4_0_0;
-    haskellSrc   = self.haskellSrc_1_0_1_5;
+    haskellSrc   = self.haskellSrc_1_0_1_6;
     hashable     = self.hashable_1_2_1_0;
     html         = self.html_1_0_1_2;
-    HTTP         = self.HTTP_4000_2_11;
+    HTTP         = self.HTTP_4000_2_12;
     HUnit        = self.HUnit_1_2_5_2;
-    mtl          = self.mtl_2_1_2;
+    mtl          = self.mtl_2_1_3_1;
     network      = self.network_2_4_2_2;
     OpenGL       = self.OpenGL_2_9_1_0;
     OpenGLRaw    = self.OpenGLRaw_1_4_0_0;
@@ -165,7 +165,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
     regexCompat  = self.regexCompat_0_95_1;
     regexPosix   = self.regexPosix_0_95_2;
     split        = self.split_0_2_2;
-    stm          = self.stm_2_4_2;
+    stm          = self.stm_2_4_3;
     syb          = self.syb_0_4_1;
     text         = self.text_1_1_0_1;
     transformers = self.transformers_0_3_0_0;   # this has become a core package in GHC 7.7
@@ -175,7 +175,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
     zlib         = self.zlib_0_5_4_1;
     cabalInstall = self.cabalInstall_1_18_0_3;
     alex         = self.alex_3_1_3;
-    haddock      = self.haddock_2_13_2_1;
+    haddock      = self.haddock_2_14_2;
     happy        = self.happy_1_19_3;
     primitive    = self.primitive_0_5_2_1;      # semi-official, but specified
   };
@@ -190,7 +190,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
     GLUT         = self.GLUT_2_4_0_0;
     GLURaw       = self.GLURaw_1_3_0_0;
     haskellSrc   = self.haskellSrc_1_0_1_5;
-    hashable     = self.hashable_1_1_2_5;
+    hashable     = self.hashable_1_2_1_0;       # not HP (1.1.2.5), but fixes many builds
     html         = self.html_1_0_1_2;
     HTTP         = self.HTTP_4000_2_8;
     HUnit        = self.HUnit_1_2_5_2;
@@ -532,8 +532,6 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
     blazeBuilder = if (pkgs.stdenv.lib.versionOlder ghc.version "7.6") then self.blazeBuilder else null;
   };
 
-  aesonLens = callPackage ../development/libraries/haskell/aeson-lens {};
-
   aesonPretty = callPackage ../development/libraries/haskell/aeson-pretty {};
 
   alternativeIo = callPackage ../development/libraries/haskell/alternative-io {};
@@ -674,9 +672,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   bloomfilter = callPackage ../development/libraries/haskell/bloomfilter {};
 
-  bmp_1_2_2_1 = callPackage ../development/libraries/haskell/bmp/1.2.2.1.nix {};
-  bmp_1_2_5_2 = callPackage ../development/libraries/haskell/bmp/1.2.5.2.nix {};
-  bmp = self.bmp_1_2_2_1;       # the latest version needs a very recent 'binary' library
+  bmp = callPackage ../development/libraries/haskell/bmp {
+    binary = self.binary_0_7_1_0;
+  };
 
   Boolean = callPackage ../development/libraries/haskell/Boolean {};
 
@@ -707,8 +705,12 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   bytestringProgress = callPackage ../development/libraries/haskell/bytestring-progress {};
 
+  bzlib = callPackage ../development/libraries/haskell/bzlib {};
+
   c2hs = callPackage ../development/libraries/haskell/c2hs {};
 
+  c2hsc = callPackage ../development/libraries/haskell/c2hsc {};
+
   Cabal_1_14_0 = callPackage ../development/libraries/haskell/Cabal/1.14.0.nix { cabal = self.cabal.override { Cabal = null; }; };
   Cabal_1_16_0_3 = callPackage ../development/libraries/haskell/Cabal/1.16.0.3.nix { cabal = self.cabal.override { Cabal = null; }; };
   Cabal_1_18_1_3 = callPackage ../development/libraries/haskell/Cabal/1.18.1.3.nix { cabal = self.cabal.override { Cabal = null; }; };
@@ -729,7 +731,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   caseInsensitive_1_0_0_1 = callPackage ../development/libraries/haskell/case-insensitive/1.0.0.1.nix {};
   caseInsensitive_1_1_0_3 = callPackage ../development/libraries/haskell/case-insensitive/1.1.0.3.nix {};
-  caseInsensitive = self.caseInsensitive_1_1_0_3;
+  caseInsensitive_1_2_0_0 = callPackage ../development/libraries/haskell/case-insensitive/1.2.0.0.nix {};
+  caseInsensitive = self.caseInsensitive_1_2_0_0;
 
   cautiousFile = callPackage ../development/libraries/haskell/cautious-file {};
 
@@ -756,8 +759,14 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   ChasingBottoms = callPackage ../development/libraries/haskell/ChasingBottoms {};
 
+  cheapskate = callPackage ../development/libraries/haskell/cheapskate {};
+
   checkers = callPackage ../development/libraries/haskell/checkers {};
 
+  chell = callPackage ../development/libraries/haskell/chell {};
+
+  chellQuickcheck = callPackage ../development/libraries/haskell/chell-quickcheck {};
+
   chunkedData = callPackage ../development/libraries/haskell/chunked-data {};
 
   citeprocHs = callPackage ../development/libraries/haskell/citeproc-hs {};
@@ -812,6 +821,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   conduitCombinators = callPackage ../development/libraries/haskell/conduit-combinators {};
 
+  conduitExtra = callPackage ../development/libraries/haskell/conduit-extra {};
+
   ConfigFile = callPackage ../development/libraries/haskell/ConfigFile {};
 
   configurator = callPackage ../development/libraries/haskell/configurator {};
@@ -824,7 +835,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   controlMonadLoop = callPackage ../development/libraries/haskell/control-monad-loop {};
 
-  convertible = callPackage ../development/libraries/haskell/convertible {};
+  convertible_1_0_11_1 = callPackage ../development/libraries/haskell/convertible/1.0.11.1.nix {};
+  convertible_1_1_0_0 = callPackage ../development/libraries/haskell/convertible/1.1.0.0.nix {};
+  convertible = self.convertible_1_1_0_0;
 
   continuedFractions = callPackage ../development/libraries/haskell/continued-fractions {};
 
@@ -856,6 +869,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   cryptohash = callPackage ../development/libraries/haskell/cryptohash {};
 
+  cryptohashConduit = callPackage ../development/libraries/haskell/cryptohash-conduit {};
+
   cryptohashCryptoapi = callPackage ../development/libraries/haskell/cryptohash-cryptoapi {};
 
   cryptoNumbers = callPackage ../development/libraries/haskell/crypto-numbers {};
@@ -902,6 +917,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   dataenc = callPackage ../development/libraries/haskell/dataenc {};
 
+  dataHash = callPackage ../development/libraries/haskell/data-hash {};
+
   dataInttrie = callPackage ../development/libraries/haskell/data-inttrie {};
 
   dataLens = callPackage ../development/libraries/haskell/data-lens {};
@@ -910,6 +927,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   dataMemocombinators = callPackage ../development/libraries/haskell/data-memocombinators {};
 
+  dataOrdlist = callPackage ../development/libraries/haskell/data-ordlist {};
+
   dataPprint = callPackage ../development/libraries/haskell/data-pprint {};
 
   dataReify = callPackage ../development/libraries/haskell/data-reify {};
@@ -984,6 +1003,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   dlist = callPackage ../development/libraries/haskell/dlist {};
 
+  dlistInstances = callPackage ../development/libraries/haskell/dlist-instances {};
+
   dns = callPackage ../development/libraries/haskell/dns {};
 
   doctest = callPackage ../development/libraries/haskell/doctest {};
@@ -1000,6 +1021,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   DSH = callPackage ../development/libraries/haskell/DSH {};
 
+  dsp = callPackage ../development/libraries/haskell/dsp {};
+
   dstring = callPackage ../development/libraries/haskell/dstring {};
 
   dualTree = callPackage ../development/libraries/haskell/dual-tree {};
@@ -1016,7 +1039,13 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   elerea = callPackage ../development/libraries/haskell/elerea {};
 
-  Elm = callPackage ../development/compilers/elm/elm.nix {};
+  Elm = callPackage ../development/compilers/elm/elm.nix {
+    binary = self.binary_0_7_1_0;
+    pandoc = self.pandoc.override {
+      binary = self.binary_0_7_1_0;
+      zipArchive = self.zipArchive.override { binary = self.binary_0_7_1_0; };
+    };
+  };
 
   elmServer = callPackage ../development/compilers/elm/elm-server.nix {};
 
@@ -1062,14 +1091,21 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   executablePath = callPackage ../development/libraries/haskell/executable-path {};
 
+  Extra = callPackage ../development/libraries/haskell/Extra {};
+
   fay = callPackage ../development/libraries/haskell/fay {};
+
   fayBase = callPackage ../development/libraries/haskell/fay-base {};
 
+  fdoNotify = callPackage ../development/libraries/haskell/fdo-notify {};
+
   filepath_1_3_0_0 = callPackage ../development/libraries/haskell/filepath {};
   filepath = null; # a core package in recent GHCs
 
   fileLocation = callPackage ../development/libraries/haskell/file-location {};
 
+  ftphs = callPackage ../development/libraries/haskell/ftphs {};
+
   extensibleEffects = callPackage ../development/libraries/haskell/extensible-effects {};
 
   extensibleExceptions_0_1_1_0 = callPackage ../development/libraries/haskell/extensible-exceptions/0.1.1.0.nix {};
@@ -1167,6 +1203,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   gio = callPackage ../development/libraries/haskell/gio {};
 
+  gitDate = callPackage ../development/libraries/haskell/git-date {};
+
   github = callPackage ../development/libraries/haskell/github {};
 
   gitit = callPackage ../development/libraries/haskell/gitit {};
@@ -1291,7 +1329,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   haskellSrc_1_0_1_3 = callPackage ../development/libraries/haskell/haskell-src/1.0.1.3.nix {};
   haskellSrc_1_0_1_4 = callPackage ../development/libraries/haskell/haskell-src/1.0.1.4.nix {};
   haskellSrc_1_0_1_5 = callPackage ../development/libraries/haskell/haskell-src/1.0.1.5.nix {};
-  haskellSrc = self.haskellSrc_1_0_1_5;
+  haskellSrc_1_0_1_6 = callPackage ../development/libraries/haskell/haskell-src/1.0.1.6.nix {};
+  haskellSrc = self.haskellSrc_1_0_1_6;
 
   haskellSrcExts = callPackage ../development/libraries/haskell/haskell-src-exts {};
 
@@ -1320,8 +1359,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   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_11 = callPackage ../development/libraries/haskell/HTTP/4000.2.11.nix {};
-  HTTP = self.HTTP_4000_2_11;
+  HTTP_4000_2_12 = callPackage ../development/libraries/haskell/HTTP/4000.2.12.nix {};
+  HTTP = self.HTTP_4000_2_12;
 
   httpAttoparsec = callPackage ../development/libraries/haskell/http-attoparsec {};
 
@@ -1361,6 +1400,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   hflags = callPackage ../development/libraries/haskell/hflags {};
 
+  hfsevents = callPackage ../development/libraries/haskell/hfsevents {};
+
   HFuse = callPackage ../development/libraries/haskell/HFuse {};
 
   highlightingKate = callPackage ../development/libraries/haskell/highlighting-kate {};
@@ -1441,13 +1482,19 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   hsloggerTemplate = callPackage ../development/libraries/haskell/hslogger-template {};
 
-  hspec = callPackage ../development/libraries/haskell/hspec {};
+  hspec = callPackage ../development/libraries/haskell/hspec {
+    QuickCheck = self.QuickCheck_2_7_3;
+    quickcheckIo = self.quickcheckIo.override { QuickCheck = self.QuickCheck_2_7_3; };
+  };
 
   hspecExpectations = callPackage ../development/libraries/haskell/hspec-expectations {};
 
   hspecExpectationsLens = callPackage ../development/libraries/haskell/hspec-expectations-lens {};
 
-  hspecMeta = callPackage ../development/libraries/haskell/hspec-meta {};
+  hspecMeta = callPackage ../development/libraries/haskell/hspec-meta {
+    QuickCheck = self.QuickCheck_2_7_3;
+    quickcheckIo = self.quickcheckIo.override { QuickCheck = self.QuickCheck_2_7_3; };
+  };
 
   hstatsd = callPackage ../development/libraries/haskell/hstatsd {};
 
@@ -1481,10 +1528,14 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   hxtCharproperties = callPackage ../development/libraries/haskell/hxt-charproperties {};
 
+  hxtHttp = callPackage ../development/libraries/haskell/hxt-http {};
+
   hxtRegexXmlschema = callPackage ../development/libraries/haskell/hxt-regex-xmlschema {};
 
   hxtUnicode = callPackage ../development/libraries/haskell/hxt-unicode {};
 
+  hxtXpath = callPackage ../development/libraries/haskell/hxt-xpath {};
+
   hybridVectors = callPackage ../development/libraries/haskell/hybrid-vectors {};
 
   iCalendar = callPackage ../development/libraries/haskell/iCalendar {};
@@ -1523,6 +1574,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   ioStreams = callPackage ../development/libraries/haskell/io-streams {};
 
+  ipprint = callPackage ../development/libraries/haskell/ipprint {};
+
   iproute = callPackage ../development/libraries/haskell/iproute {};
 
   irc = callPackage ../development/libraries/haskell/irc {};
@@ -1559,6 +1612,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   knob = callPackage ../development/libraries/haskell/knob {};
 
   languageC = callPackage ../development/libraries/haskell/language-c {};
+  
+  languageCInline = callPackage ../development/libraries/haskell/language-c-inline {};
 
   languageCQuote = callPackage ../development/libraries/haskell/language-c-quote {};
 
@@ -1566,7 +1621,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   languageJava = callPackage ../development/libraries/haskell/language-java {};
 
-  languageJavascript = callPackage ../development/libraries/haskell/language-javascript {};
+  languageJavascript = callPackage ../development/libraries/haskell/language-javascript {
+    alex = self.alex_3_1_3;
+  };
 
   languageHaskellExtract = callPackage ../development/libraries/haskell/language-haskell-extract {};
 
@@ -1584,8 +1641,6 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   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 {};
@@ -1604,6 +1659,10 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   liblastfm = callPackage ../development/libraries/haskell/liblastfm {};
 
+  libsystemdJournal = callPackage ../development/libraries/haskell/libsystemd-journal {
+    systemd-journal = pkgs.systemd;
+  };
+
   libxmlSax = callPackage ../development/libraries/haskell/libxml-sax {};
 
   liftedAsync = callPackage ../development/libraries/haskell/lifted-async {};
@@ -1625,14 +1684,14 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
     llvmConfig = pkgs.llvm_33;
     llvmGeneralPure = self.llvmGeneralPure_3_3_8_2;
   };
-  llvmGeneral_3_4_1_0 = callPackage ../development/libraries/haskell/llvm-general/3.4.1.0.nix {
+  llvmGeneral_3_4_2_2 = callPackage ../development/libraries/haskell/llvm-general/3.4.2.2.nix {
     llvmConfig = pkgs.llvm;
   };
-  llvmGeneral = self.llvmGeneral_3_4_1_0;
+  llvmGeneral = self.llvmGeneral_3_4_2_2;
 
   llvmGeneralPure_3_3_8_2 = callPackage ../development/libraries/haskell/llvm-general-pure/3.3.8.2.nix { };
-  llvmGeneralPure_3_4_1_0 = callPackage ../development/libraries/haskell/llvm-general-pure/3.4.1.0.nix {};
-  llvmGeneralPure = self.llvmGeneralPure_3_4_1_0;
+  llvmGeneralPure_3_4_2_2 = callPackage ../development/libraries/haskell/llvm-general-pure/3.4.2.2.nix {};
+  llvmGeneralPure = self.llvmGeneralPure_3_4_2_2;
 
   lrucache = callPackage ../development/libraries/haskell/lrucache {};
 
@@ -1642,10 +1701,14 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   logfloat = callPackage ../development/libraries/haskell/logfloat {};
 
+  logging = callPackage ../development/libraries/haskell/logging {};
+
   logict = callPackage ../development/libraries/haskell/logict {};
 
   lushtags = callPackage ../development/libraries/haskell/lushtags {};
 
+  lzmaEnumerator = callPackage ../development/libraries/haskell/lzma-enumerator {};
+
   maccatcher = callPackage ../development/libraries/haskell/maccatcher {};
 
   markdownUnlit = callPackage ../development/libraries/haskell/markdown-unlit {};
@@ -1680,6 +1743,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   misfortune = callPackage ../development/libraries/haskell/misfortune {};
 
+  missingForeign = callPackage ../development/libraries/haskell/missing-foreign {};
+
   MissingH = callPackage ../development/libraries/haskell/MissingH {
     testpack = null;
   };
@@ -1696,6 +1761,10 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   monadcryptorandom = callPackage ../development/libraries/haskell/monadcryptorandom {};
 
+  monadExtras = callPackage ../development/libraries/haskell/monad-extras {};
+
+  monadloc = callPackage ../development/libraries/haskell/monadloc {};
+
   monadLoops = callPackage ../development/libraries/haskell/monad-loops {};
 
   monadLogger = callPackage ../development/libraries/haskell/monad-logger {};
@@ -1735,7 +1804,10 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   mtl_2_1_2 = callPackage ../development/libraries/haskell/mtl/2.1.2.nix {
     transformers = self.transformers_0_3_0_0;
   };
-  mtl = self.mtl_2_1_2;
+  mtl_2_1_3_1 = callPackage ../development/libraries/haskell/mtl/2.1.3.1.nix {
+    transformers = self.transformers_0_3_0_0;
+  };
+  mtl = self.mtl_2_1_3_1;
 
   mtlparse = callPackage ../development/libraries/haskell/mtlparse {};
 
@@ -1855,6 +1927,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   operational = callPackage ../development/libraries/haskell/operational {};
 
+  options = callPackage ../development/libraries/haskell/options {};
+
   optparseApplicative = callPackage ../development/libraries/haskell/optparse-applicative {};
 
   pathPieces = callPackage ../development/libraries/haskell/path-pieces {};
@@ -1893,7 +1967,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   parsec3 = self.parsec_3_1_5;
   parsec  = self.parsec3;
 
-  parsers = callPackage ../development/libraries/haskell/parsers {};
+  parsers_0_10_3 = callPackage ../development/libraries/haskell/parsers/0.10.3.nix {};
+  parsers_0_11 = callPackage ../development/libraries/haskell/parsers/0.11.nix {};
+  parsers = self.parsers_0_10_3;
 
   parsimony = callPackage ../development/libraries/haskell/parsimony {};
 
@@ -1915,6 +1991,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   persistent = callPackage ../development/libraries/haskell/persistent {};
 
+  persistentMysql = callPackage ../development/libraries/haskell/persistent-mysql {};
+
   persistentPostgresql = callPackage ../development/libraries/haskell/persistent-postgresql {};
 
   persistentSqlite = callPackage ../development/libraries/haskell/persistent-sqlite {};
@@ -2034,13 +2112,16 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   QuickCheck_2_4_2 = callPackage ../development/libraries/haskell/QuickCheck/2.4.2.nix {};
   QuickCheck_2_5_1_1 = callPackage ../development/libraries/haskell/QuickCheck/2.5.1.1.nix {};
   QuickCheck_2_6 = callPackage ../development/libraries/haskell/QuickCheck/2.6.nix {};
+  QuickCheck_2_7_3 = callPackage ../development/libraries/haskell/QuickCheck/2.7.3.nix {};
   QuickCheck1 = self.QuickCheck_1_2_0_1;
   QuickCheck2 = self.QuickCheck_2_6;
   QuickCheck  = self.QuickCheck2;
 
   quickcheckAssertions = callPackage ../development/libraries/haskell/quickcheck-assertions {};
 
-  quickcheckInstances = callPackage ../development/libraries/haskell/quickcheck-instances {};
+  quickcheckInstances = callPackage ../development/libraries/haskell/quickcheck-instances {
+    QuickCheck = self.QuickCheck_2_7_3;
+  };
 
   quickcheckIo = callPackage ../development/libraries/haskell/quickcheck-io {};
 
@@ -2129,6 +2210,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   resourcet = callPackage ../development/libraries/haskell/resourcet {};
 
+  retry = callPackage ../development/libraries/haskell/retry {};
+
   rethinkdb = callPackage ../development/libraries/haskell/rethinkdb {};
 
   rfc5051 = callPackage ../development/libraries/haskell/rfc5051 {};
@@ -2147,6 +2230,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   SafeSemaphore = callPackage ../development/libraries/haskell/SafeSemaphore {};
 
+  sbv = callPackage ../development/libraries/haskell/sbv {};
+
   scientific = callPackage ../development/libraries/haskell/scientific {};
 
   scotty = callPackage ../development/libraries/haskell/scotty {};
@@ -2193,6 +2278,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   snapCore = callPackage ../development/libraries/haskell/snap/core.nix {};
 
+  snapCORS = callPackage ../development/libraries/haskell/snap-cors {};
+
   snapLoaderDynamic = callPackage ../development/libraries/haskell/snap/loader-dynamic.nix {};
 
   snapLoaderStatic = callPackage ../development/libraries/haskell/snap/loader-static.nix {};
@@ -2213,15 +2300,22 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   StateVar = callPackage ../development/libraries/haskell/StateVar {};
 
-  statistics = callPackage ../development/libraries/haskell/statistics {
+  statistics_0_10_5_2 = callPackage ../development/libraries/haskell/statistics/0.10.5.2.nix {
+    binary = self.binary_0_7_1_0;
+    vectorBinaryInstances = self.vectorBinaryInstances.override { binary = self.binary_0_7_1_0; };
+  };
+  statistics_0_11_0_0 = callPackage ../development/libraries/haskell/statistics/0.11.0.0.nix {
     binary = self.binary_0_7_1_0;
     vectorBinaryInstances = self.vectorBinaryInstances.override { binary = self.binary_0_7_1_0; };
   };
+  statistics = self.statistics_0_10_5_2;
 
   statvfs = callPackage ../development/libraries/haskell/statvfs {};
 
   StrafunskiStrategyLib = callPackage ../development/libraries/haskell/Strafunski-StrategyLib {};
 
+  streamingCommons = callPackage ../development/libraries/haskell/streaming-commons {};
+
   streamproc = callPackage ../development/libraries/haskell/streamproc {};
 
   strict = callPackage ../development/libraries/haskell/strict {};
@@ -2257,6 +2351,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   sybWithClassInstancesText = callPackage ../development/libraries/haskell/syb/syb-with-class-instances-text.nix {};
 
+  syntactic = callPackage ../development/libraries/haskell/syntactic {};
+
   syz = callPackage ../development/libraries/haskell/syz {};
 
   SDLImage = callPackage ../development/libraries/haskell/SDL-image {};
@@ -2309,7 +2405,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   stm_2_3 = callPackage ../development/libraries/haskell/stm/2.3.nix {};
   stm_2_4 = callPackage ../development/libraries/haskell/stm/2.4.nix {};
   stm_2_4_2 = callPackage ../development/libraries/haskell/stm/2.4.2.nix {};
-  stm = self.stm_2_4_2;
+  stm_2_4_3 = callPackage ../development/libraries/haskell/stm/2.4.3.nix {};
+  stm = self.stm_2_4_3;
 
   stmChans = callPackage ../development/libraries/haskell/stm-chans {};
 
@@ -2347,6 +2444,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   tagged = callPackage ../development/libraries/haskell/tagged {};
 
+  tagshare = callPackage ../development/libraries/haskell/tagshare {};
+
   tagsoup = callPackage ../development/libraries/haskell/tagsoup {};
 
   tagstreamConduit = callPackage ../development/libraries/haskell/tagstream-conduit {};
@@ -2361,7 +2460,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   tastyHunit = callPackage ../development/libraries/haskell/tasty-hunit {};
 
-  tastyQuickcheck = callPackage ../development/libraries/haskell/tasty-quickcheck {};
+  tastyQuickcheck = callPackage ../development/libraries/haskell/tasty-quickcheck {
+    QuickCheck = self.QuickCheck_2_7_3;
+  };
 
   tastyRerun = callPackage ../development/libraries/haskell/tasty-rerun {};
 
@@ -2397,6 +2498,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   testFrameworkThPrime = callPackage ../development/libraries/haskell/test-framework-th-prime {};
 
+  testingFeat = callPackage ../development/libraries/haskell/testing-feat {};
+
   texmath = callPackage ../development/libraries/haskell/texmath {};
 
   text_0_11_0_5 = callPackage ../development/libraries/haskell/text/0.11.0.5.nix {};
@@ -2415,6 +2518,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   textStreamDecode = callPackage ../development/libraries/haskell/text-stream-decode {};
 
+  tfRandom = callPackage ../development/libraries/haskell/tf-random {};
+
   thespian = callPackage ../development/libraries/haskell/thespian {};
 
   thDesugar = callPackage ../development/libraries/haskell/th-desugar {};
@@ -2439,6 +2544,12 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   # pass it explicitly in rare circumstances.
   time = null;
 
+  timeparsers = callPackage ../development/libraries/haskell/timeparsers {
+    convertible = self.convertible_1_0_11_1;
+  };
+
+  timeRecurrence = callPackage ../development/libraries/haskell/time-recurrence {};
+
   timezoneOlson = callPackage ../development/libraries/haskell/timezone-olson {};
 
   timezoneSeries = callPackage ../development/libraries/haskell/timezone-series {};
@@ -2446,8 +2557,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   timeCompat = callPackage ../development/libraries/haskell/time-compat {};
 
   tls_1_1_5 = callPackage ../development/libraries/haskell/tls/1.1.5.nix {};
-  tls_1_2_2 = callPackage ../development/libraries/haskell/tls/1.2.2.nix {};
-  tls = self.tls_1_2_2;
+  tls_1_2_6 = callPackage ../development/libraries/haskell/tls/1.2.6.nix {};
+  tls = self.tls_1_2_6;
 
   tlsExtra = callPackage ../development/libraries/haskell/tls-extra {
     tls = self.tls_1_1_5;
@@ -2466,10 +2577,16 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   traverseWithClass = callPackage ../development/libraries/haskell/traverse-with-class {};
 
+  treeView = callPackage ../development/libraries/haskell/tree-view {};
+
   trifecta = callPackage ../development/libraries/haskell/trifecta {};
 
   tuple = callPackage ../development/libraries/haskell/tuple {};
 
+  twitterConduit = callPackage ../development/libraries/haskell/twitter-conduit {};
+
+  twitterTypes = callPackage ../development/libraries/haskell/twitter-types {};
+
   TypeCompose = callPackage ../development/libraries/haskell/TypeCompose {};
 
   typeEq = callPackage ../development/libraries/haskell/type-eq {};
@@ -2496,12 +2613,16 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   unixTime = callPackage ../development/libraries/haskell/unix-time {};
 
+  Unixutils = callPackage ../development/libraries/haskell/Unixutils {};
+
   unlambda = callPackage ../development/libraries/haskell/unlambda {};
 
   unorderedContainers_0_2_3_0 = callPackage ../development/libraries/haskell/unordered-containers/0.2.3.0.nix {};
   unorderedContainers_0_2_3_3 = callPackage ../development/libraries/haskell/unordered-containers/0.2.3.3.nix {};
   unorderedContainers = self.unorderedContainers_0_2_3_3;
 
+  uri = callPackage ../development/libraries/haskell/uri {};
+
   url = callPackage ../development/libraries/haskell/url {};
 
   urlencoded = callPackage ../development/libraries/haskell/urlencoded {};
@@ -2528,6 +2649,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   vacuumCairo = callPackage ../development/libraries/haskell/vacuum-cairo {};
 
+  vacuumGraphviz = callPackage ../development/libraries/haskell/vacuum-graphviz {};
+
   vado = callPackage ../development/libraries/haskell/vado {};
 
   vault = callPackage ../development/libraries/haskell/vault {};
@@ -2775,6 +2898,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   BNFCMeta = callPackage ../development/tools/haskell/BNFC-meta {};
 
+  cake3 = callPackage ../development/tools/haskell/cake3 {};
+
   cpphs = callPackage ../development/tools/misc/cpphs {};
 
   Ebnf2ps = callPackage ../development/tools/parsing/Ebnf2ps {};
@@ -2787,8 +2912,10 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   haddock_2_11_0 = callPackage ../development/tools/documentation/haddock/2.11.0.nix {};
   haddock_2_12_0 = callPackage ../development/tools/documentation/haddock/2.12.0.nix {};
   haddock_2_13_2 = callPackage ../development/tools/documentation/haddock/2.13.2.nix {};
-  haddock_2_13_2_1 = callPackage ../development/tools/documentation/haddock/2.13.2.1.nix {};
-  haddock = self.haddock_2_13_2_1;
+  haddock_2_14_2 = callPackage ../development/tools/documentation/haddock/2.14.2.nix {};
+  haddock = self.haddock_2_14_2;
+
+  HandsomeSoup = callPackage ../development/libraries/haskell/HandsomeSoup {};
 
   happy_1_18_4 = callPackage ../development/tools/parsing/happy/1.18.4.nix {};
   happy_1_18_5 = callPackage ../development/tools/parsing/happy/1.18.5.nix {};
@@ -2842,6 +2969,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   nc-indicators = callPackage ../applications/misc/nc-indicators {};
 
+  sloane = callPackage ../applications/science/math/sloane {};
+
   taffybar = callPackage ../applications/misc/taffybar {};
 
   yi = callPackage ../applications/editors/yi/yi.nix {};
@@ -2860,8 +2989,31 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   cabal2nix = callPackage ../development/tools/haskell/cabal2nix {};
 
+  # Build a cabal package given a local .cabal file
+  buildLocalCabal = src: name: let
+    cabalExpr = pkgs.stdenv.mkDerivation ({
+      name = "${name}.nix";
+
+      buildCommand = ''
+      ${self.cabal2nix}/bin/cabal2nix ${src + "/${name}.cabal"} --sha256=FILTERME \
+          | grep -v FILTERME | sed \
+            -e 's/licenses.proprietary/licenses.unfree/' \
+            -e 's/{ cabal/{ cabal, src/' \
+            -e 's/pname = \([^\n]*\)/pname = \1\n  inherit src;\n  jailbreak = true;/'  > $out
+      '';
+
+    } // pkgs.lib.optionalAttrs pkgs.stdenv.isLinux {
+      LANG = "en_US.UTF-8";
+      LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive";
+    });
+  in callPackage cabalExpr { inherit src; };
+
+  cabalDelete = callPackage ../development/tools/haskell/cabal-delete {};
+
   cabalDev = callPackage ../development/tools/haskell/cabal-dev {};
 
+  cabalMeta = callPackage ../development/tools/haskell/cabal-meta {};
+
   cabal2Ghci = callPackage ../development/tools/haskell/cabal2ghci {};
 
   cabalGhci = callPackage ../development/tools/haskell/cabal-ghci {};
@@ -2877,7 +3029,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   };
   cabalInstall = self.cabalInstall_1_18_0_3;
 
-  gitAnnex = callPackage ../applications/version-management/git-and-tools/git-annex {};
+  gitAnnex = callPackage ../applications/version-management/git-and-tools/git-annex {
+    hS3 = self.hS3.override { Crypto = self.Crypto.override { QuickCheck = self.QuickCheck_2_7_3; }; };
+  };
 
   githubBackup = callPackage ../applications/version-management/git-and-tools/github-backup {};
 
@@ -2889,10 +3043,16 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   packunused = callPackage ../development/tools/haskell/packunused {};
 
+  rehoo = callPackage ../development/tools/haskell/rehoo {};
+
+  sizes = callPackage ../tools/system/sizes {};
+
   splot = callPackage ../development/tools/haskell/splot {};
 
   timeplot = callPackage ../development/tools/haskell/timeplot {};
 
+  una = callPackage ../development/tools/haskell/una {};
+
   # Games.
 
   LambdaHack = callPackage ../games/LambdaHack {
diff --git a/pkgs/top-level/node-packages-generated.nix b/pkgs/top-level/node-packages-generated.nix
index 93e965235fcc..281541787706 100644
--- a/pkgs/top-level/node-packages-generated.nix
+++ b/pkgs/top-level/node-packages-generated.nix
@@ -2,14 +2,14 @@
 
 {
   by-spec."Base64"."~0.2.0" =
-    self.by-version."Base64"."0.2.0";
-  by-version."Base64"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-Base64-0.2.0";
+    self.by-version."Base64"."0.2.1";
+  by-version."Base64"."0.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-Base64-0.2.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/Base64/-/Base64-0.2.0.tgz";
-        name = "Base64-0.2.0.tgz";
-        sha1 = "448879efb6803979daaf7f36e7807e8a1d291205";
+        url = "http://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz";
+        name = "Base64-0.2.1.tgz";
+        sha1 = "ba3a4230708e186705065e66babdd4c35cf60028";
       })
     ];
     buildInputs =
@@ -21,21 +21,21 @@
     passthru.names = [ "Base64" ];
   };
   by-spec."CSSselect"."0.x" =
-    self.by-version."CSSselect"."0.5.0";
-  by-version."CSSselect"."0.5.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-CSSselect-0.5.0";
+    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.5.0.tgz";
-        name = "CSSselect-0.5.0.tgz";
-        sha1 = "cd12727a4e3a85d1e862611b349c9e3c6b7e0452";
+        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.0"
+      self.by-version."domutils"."1.4.3"
       self.by-version."boolbase"."1.0.0"
       self.by-version."nth-check"."1.0.0"
     ];
@@ -58,7 +58,7 @@
       (self.nativeDeps."CSSselect" or []);
     deps = [
       self.by-version."CSSwhat"."0.4.5"
-      self.by-version."domutils"."1.4.0"
+      self.by-version."domutils"."1.4.3"
     ];
     peerDependencies = [
     ];
@@ -105,21 +105,21 @@
     passthru.names = [ "JSONStream" ];
   };
   by-spec."JSONStream"."~0.7.1" =
-    self.by-version."JSONStream"."0.7.1";
-  by-version."JSONStream"."0.7.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/JSONStream/-/JSONStream-0.7.1.tgz";
-        name = "JSONStream-0.7.1.tgz";
-        sha1 = "0a6bf7f85459beb1319486927d293c7cef8a0260";
+        url = "http://registry.npmjs.org/JSONStream/-/JSONStream-0.7.2.tgz";
+        name = "JSONStream-0.7.2.tgz";
+        sha1 = "27f4d7fe1918dc08ee72aed9c794e32ce80618f7";
       })
     ];
     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 = [
     ];
@@ -246,7 +246,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,6 +265,8 @@
     ];
     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 {
@@ -548,6 +550,82 @@
   };
   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 {
+    name = "node-asap-1.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/asap/-/asap-1.0.0.tgz";
+        name = "asap-1.0.0.tgz";
+        sha1 = "b2a45da5fdfa20b0496fc3768cc27c12fa916a7d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."asap" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "asap" ];
+  };
   by-spec."ascii-json"."~0.2" =
     self.by-version."ascii-json"."0.2.0";
   by-version."ascii-json"."0.2.0" = lib.makeOverridable self.buildNodePackage {
@@ -668,35 +746,35 @@
     ];
     passthru.names = [ "assertion-error" ];
   };
-  by-spec."astw"."~0.1.0" =
-    self.by-version."astw"."0.1.0";
-  by-version."astw"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-astw-0.1.0";
+  by-spec."astw"."~1.1.0" =
+    self.by-version."astw"."1.1.0";
+  by-version."astw"."1.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-astw-1.1.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/astw/-/astw-0.1.0.tgz";
-        name = "astw-0.1.0.tgz";
-        sha1 = "098be2758a6e9e9e15465d4fc4ba36265de11085";
+        url = "http://registry.npmjs.org/astw/-/astw-1.1.0.tgz";
+        name = "astw-1.1.0.tgz";
+        sha1 = "f394778ab01c4ea467e64a614ed896ace0321a34";
       })
     ];
     buildInputs =
       (self.nativeDeps."astw" or []);
     deps = [
-      self.by-version."esprima-six"."0.0.3"
+      self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "astw" ];
   };
   by-spec."async"."*" =
-    self.by-version."async"."0.2.10";
-  by-version."async"."0.2.10" = lib.makeOverridable self.buildNodePackage {
-    name = "node-async-0.2.10";
+    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.2.10.tgz";
-        name = "async-0.2.10.tgz";
-        sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
+        url = "http://registry.npmjs.org/async/-/async-0.7.0.tgz";
+        name = "async-0.7.0.tgz";
+        sha1 = "4429e0e62f5de0a54f37458c49f0b897eb52ada5";
       })
     ];
     buildInputs =
@@ -707,7 +785,7 @@
     ];
     passthru.names = [ "async" ];
   };
-  "async" = self.by-version."async"."0.2.10";
+  "async" = self.by-version."async"."0.7.0";
   by-spec."async"."0.1.15" =
     self.by-version."async"."0.1.15";
   by-version."async"."0.1.15" = lib.makeOverridable self.buildNodePackage {
@@ -769,10 +847,27 @@
   };
   by-spec."async"."0.2.x" =
     self.by-version."async"."0.2.10";
+  by-version."async"."0.2.10" = lib.makeOverridable self.buildNodePackage {
+    name = "node-async-0.2.10";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/async/-/async-0.2.10.tgz";
+        name = "async-0.2.10.tgz";
+        sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."async" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "async" ];
+  };
+  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" =
@@ -781,6 +876,44 @@
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/async/-/async-0.4.1.tgz";
+        name = "async-0.4.1.tgz";
+        sha1 = "1985abade017df906bfaa8d77d424b25366b3a5b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."async" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/async/-/async-0.6.2.tgz";
+        name = "async-0.6.2.tgz";
+        sha1 = "41fd038a3812c0a8bc1842ecf08ba63eb0392bef";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."async" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "async" ];
+  };
   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 {
@@ -921,6 +1054,25 @@
     ];
     passthru.names = [ "backoff" ];
   };
+  by-spec."base62"."0.1.1" =
+    self.by-version."base62"."0.1.1";
+  by-version."base62"."0.1.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-base62-0.1.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/base62/-/base62-0.1.1.tgz";
+        name = "base62-0.1.1.tgz";
+        sha1 = "7b4174c2f94449753b11c2651c083da841a7b084";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."base62" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    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 {
@@ -959,6 +1111,25 @@
     ];
     passthru.names = [ "base64id" ];
   };
+  by-spec."basic-auth-connect"."1.0.0" =
+    self.by-version."basic-auth-connect"."1.0.0";
+  by-version."basic-auth-connect"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-basic-auth-connect-1.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz";
+        name = "basic-auth-connect-1.0.0.tgz";
+        sha1 = "fdb0b43962ca7b40456a7c2bb48fe173da2d2122";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."basic-auth-connect" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "basic-auth-connect" ];
+  };
   by-spec."batch"."0.5.0" =
     self.by-version."batch"."0.5.0";
   by-version."batch"."0.5.0" = lib.makeOverridable self.buildNodePackage {
@@ -1021,14 +1192,14 @@
     passthru.names = [ "binary" ];
   };
   by-spec."bindings"."*" =
-    self.by-version."bindings"."1.1.1";
-  by-version."bindings"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-bindings-1.1.1";
+    self.by-version."bindings"."1.2.0";
+  by-version."bindings"."1.2.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-bindings-1.2.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/bindings/-/bindings-1.1.1.tgz";
-        name = "bindings-1.1.1.tgz";
-        sha1 = "951f7ae010302ffc50b265b124032017ed2bf6f3";
+        url = "http://registry.npmjs.org/bindings/-/bindings-1.2.0.tgz";
+        name = "bindings-1.2.0.tgz";
+        sha1 = "c224fc5b349a84043779f97a6271d9d70da7636f";
       })
     ];
     buildInputs =
@@ -1099,6 +1270,28 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/body-parser/-/body-parser-1.0.2.tgz";
+        name = "body-parser-1.0.2.tgz";
+        sha1 = "3461479a3278fe00fcaebec3314bb54fc4f7b47c";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."body-parser" or []);
+    deps = [
+      self.by-version."type-is"."1.1.0"
+      self.by-version."raw-body"."1.1.3"
+      self.by-version."qs"."0.6.6"
+    ];
+    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 {
@@ -1159,6 +1352,71 @@
     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.4"
+      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";
@@ -1182,11 +1440,11 @@
       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.4"
+      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.2"
+      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"
@@ -1194,7 +1452,7 @@
       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.4"
+      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"
@@ -1207,7 +1465,7 @@
       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.7"
+      self.by-version."update-notifier"."0.1.8"
       self.by-version."which"."1.0.5"
       self.by-version."p-throttler"."0.0.1"
     ];
@@ -1215,13 +1473,6 @@
     ];
     passthru.names = [ "bower" ];
   };
-  "bower" = self.by-version."bower"."1.2.8";
-  by-spec."bower".">=0.9.0" =
-    self.by-version."bower"."1.2.8";
-  by-spec."bower".">=1.2.8 <2" =
-    self.by-version."bower"."1.2.8";
-  by-spec."bower"."~1.2.0" =
-    self.by-version."bower"."1.2.8";
   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 {
@@ -1236,7 +1487,7 @@
     buildInputs =
       (self.nativeDeps."bower-config" or []);
     deps = [
-      self.by-version."graceful-fs"."2.0.2"
+      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"
@@ -1259,7 +1510,7 @@
     buildInputs =
       (self.nativeDeps."bower-config" or []);
     deps = [
-      self.by-version."graceful-fs"."2.0.2"
+      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"
@@ -1304,7 +1555,7 @@
       (self.nativeDeps."bower-json" or []);
     deps = [
       self.by-version."deep-extend"."0.2.8"
-      self.by-version."graceful-fs"."2.0.2"
+      self.by-version."graceful-fs"."2.0.3"
       self.by-version."intersect"."0.0.3"
     ];
     peerDependencies = [
@@ -1351,6 +1602,8 @@
     ];
     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 {
@@ -1367,7 +1620,7 @@
     deps = [
       self.by-version."async"."0.2.10"
       self.by-version."bower-config"."0.4.5"
-      self.by-version."graceful-fs"."2.0.2"
+      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"
@@ -1397,7 +1650,7 @@
       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.2.8"
+      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"
@@ -1479,21 +1732,21 @@
   by-spec."browser-resolve"."~1.2.2" =
     self.by-version."browser-resolve"."1.2.2";
   by-spec."browserchannel"."*" =
-    self.by-version."browserchannel"."1.1.1";
-  by-version."browserchannel"."1.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-browserchannel-1.1.1";
+    self.by-version."browserchannel"."1.2.0";
+  by-version."browserchannel"."1.2.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-browserchannel-1.2.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/browserchannel/-/browserchannel-1.1.1.tgz";
-        name = "browserchannel-1.1.1.tgz";
-        sha1 = "223aeddf06892314e11f15fd2d4e2ade64a1bba5";
+        url = "http://registry.npmjs.org/browserchannel/-/browserchannel-1.2.0.tgz";
+        name = "browserchannel-1.2.0.tgz";
+        sha1 = "207ce6eb844e00febfdf32084f10d4757cbcf97c";
       })
     ];
     buildInputs =
       (self.nativeDeps."browserchannel" or []);
     deps = [
       self.by-version."hat"."0.0.3"
-      self.by-version."connect"."2.13.0"
+      self.by-version."connect"."2.14.4"
       self.by-version."request"."2.34.0"
       self.by-version."ascii-json"."0.2.0"
     ];
@@ -1501,66 +1754,66 @@
     ];
     passthru.names = [ "browserchannel" ];
   };
-  "browserchannel" = self.by-version."browserchannel"."1.1.1";
-  by-spec."browserify"."~3.31.2" =
-    self.by-version."browserify"."3.31.2";
-  by-version."browserify"."3.31.2" = lib.makeOverridable self.buildNodePackage {
-    name = "browserify-3.31.2";
+  "browserchannel" = self.by-version."browserchannel"."1.2.0";
+  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 = [
-      (self.patchSource fetchurl {
-        url = "http://registry.npmjs.org/browserify/-/browserify-3.31.2.tgz";
-        name = "browserify-3.31.2.tgz";
-        sha1 = "ec5bbd7fff284645db59280c340d972868e0ab1b";
+      (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."module-deps"."1.7.1"
+      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."deps-sort"."0.1.1"
-      self.by-version."shell-quote"."0.0.1"
-      self.by-version."through"."2.3.4"
-      self.by-version."duplexer"."0.1.1"
-      self.by-version."stream-combiner"."0.0.4"
-      self.by-version."concat-stream"."1.4.1"
-      self.by-version."insert-module-globals"."3.2.0"
-      self.by-version."syntax-error"."0.1.0"
       self.by-version."browser-resolve"."1.2.2"
-      self.by-version."inherits"."2.0.1"
-      self.by-version."JSONStream"."0.7.1"
-      self.by-version."umd"."2.0.0"
-      self.by-version."parents"."0.0.2"
-      self.by-version."deep-equal"."0.1.2"
-      self.by-version."constants-browserify"."0.0.1"
-      self.by-version."os-browserify"."0.1.1"
+      self.by-version."buffer"."2.1.12"
+      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."vm-browserify"."0.0.4"
-      self.by-version."zlib-browserify"."0.0.3"
-      self.by-version."assert"."1.1.1"
-      self.by-version."http-browserify"."1.3.2"
+      self.by-version."constants-browserify"."0.0.1"
       self.by-version."crypto-browserify"."1.0.9"
-      self.by-version."util"."0.10.3"
+      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."buffer"."2.1.4"
-      self.by-version."url"."0.7.9"
+      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."querystring"."0.2.0"
-      self.by-version."stream-browserify"."0.1.3"
-      self.by-version."string_decoder"."0.0.1"
-      self.by-version."tty-browserify"."0.0.0"
-      self.by-version."timers-browserify"."1.0.1"
       self.by-version."punycode"."1.2.4"
-      self.by-version."defined"."0.0.0"
-      self.by-version."domain-browser"."1.1.1"
-      self.by-version."derequire"."0.6.1"
-      self.by-version."commondir"."0.0.1"
+      self.by-version."querystring-es3"."0.2.0"
+      self.by-version."resolve"."0.6.2"
       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."resolve"."0.6.1"
-      self.by-version."glob"."3.2.9"
-      self.by-version."builtins"."0.0.2"
+      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 = [
     ];
@@ -1644,14 +1897,14 @@
     passthru.names = [ "bson" ];
   };
   by-spec."buffer"."~2.1.4" =
-    self.by-version."buffer"."2.1.4";
-  by-version."buffer"."2.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-buffer-2.1.4";
+    self.by-version."buffer"."2.1.12";
+  by-version."buffer"."2.1.12" = lib.makeOverridable self.buildNodePackage {
+    name = "node-buffer-2.1.12";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/buffer/-/buffer-2.1.4.tgz";
-        name = "buffer-2.1.4.tgz";
-        sha1 = "0283e62870b4f450b636e00eb9fd527cd9ae1341";
+        url = "http://registry.npmjs.org/buffer/-/buffer-2.1.12.tgz";
+        name = "buffer-2.1.12.tgz";
+        sha1 = "da6270d276406da92cdf357b5fb09e1edc547f22";
       })
     ];
     buildInputs =
@@ -1724,14 +1977,14 @@
     passthru.names = [ "buffers" ];
   };
   by-spec."buffertools"."*" =
-    self.by-version."buffertools"."2.0.1";
-  by-version."buffertools"."2.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-buffertools-2.0.1";
+    self.by-version."buffertools"."2.1.2";
+  by-version."buffertools"."2.1.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-buffertools-2.1.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/buffertools/-/buffertools-2.0.1.tgz";
-        name = "buffertools-2.0.1.tgz";
-        sha1 = "4611e6430687e7876330285dd1ae7e7e47b47288";
+        url = "http://registry.npmjs.org/buffertools/-/buffertools-2.1.2.tgz";
+        name = "buffertools-2.1.2.tgz";
+        sha1 = "d667afc1ef8b9932e90a25f2e3a66a929d42daab";
       })
     ];
     buildInputs =
@@ -1742,7 +1995,7 @@
     ];
     passthru.names = [ "buffertools" ];
   };
-  "buffertools" = self.by-version."buffertools"."2.0.1";
+  "buffertools" = self.by-version."buffertools"."2.1.2";
   by-spec."buffertools".">=1.1.1 <2.0.0" =
     self.by-version."buffertools"."1.1.1";
   by-version."buffertools"."1.1.1" = lib.makeOverridable self.buildNodePackage {
@@ -1762,15 +2015,15 @@
     ];
     passthru.names = [ "buffertools" ];
   };
-  by-spec."builtins"."0.0.2" =
-    self.by-version."builtins"."0.0.2";
-  by-version."builtins"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-builtins-0.0.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/builtins/-/builtins-0.0.2.tgz";
-        name = "builtins-0.0.2.tgz";
-        sha1 = "b738db1ea166b752f7e0144c76f6ad5289448e51";
+        url = "http://registry.npmjs.org/builtins/-/builtins-0.0.3.tgz";
+        name = "builtins-0.0.3.tgz";
+        sha1 = "5d006166da71610bc2bcf73019f0f0cc43309755";
       })
     ];
     buildInputs =
@@ -1879,6 +2132,27 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/bytes/-/bytes-0.3.0.tgz";
+        name = "bytes-0.3.0.tgz";
+        sha1 = "78e2e0e28c7f9c7b988ea8aee0db4d5fa9941935";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."bytes" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "bytes" ];
+  };
+  by-spec."bytes"."~0.2.0" =
+    self.by-version."bytes"."0.2.1";
   by-spec."bytes"."~0.2.1" =
     self.by-version."bytes"."0.2.1";
   by-spec."callsite"."~1.0.0" =
@@ -1922,14 +2196,14 @@
     passthru.names = [ "cardinal" ];
   };
   by-spec."chai"."*" =
-    self.by-version."chai"."1.9.0";
-  by-version."chai"."1.9.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-chai-1.9.0";
+    self.by-version."chai"."1.9.1";
+  by-version."chai"."1.9.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-chai-1.9.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/chai/-/chai-1.9.0.tgz";
-        name = "chai-1.9.0.tgz";
-        sha1 = "3ebe99f3bab9241ed3fcd576f8fe96cad9ed7413";
+        url = "http://registry.npmjs.org/chai/-/chai-1.9.1.tgz";
+        name = "chai-1.9.1.tgz";
+        sha1 = "3711bb6706e1568f34c0b36098bf8f19455c81ae";
       })
     ];
     buildInputs =
@@ -1942,7 +2216,7 @@
     ];
     passthru.names = [ "chai" ];
   };
-  "chai" = self.by-version."chai"."1.9.0";
+  "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 {
@@ -1977,7 +2251,7 @@
     buildInputs =
       (self.nativeDeps."chalk" or []);
     deps = [
-      self.by-version."has-color"."0.1.4"
+      self.by-version."has-color"."0.1.6"
       self.by-version."ansi-styles"."1.0.0"
       self.by-version."strip-ansi"."0.1.1"
     ];
@@ -1999,7 +2273,7 @@
     buildInputs =
       (self.nativeDeps."chalk" or []);
     deps = [
-      self.by-version."has-color"."0.1.4"
+      self.by-version."has-color"."0.1.6"
       self.by-version."ansi-styles"."0.1.2"
     ];
     peerDependencies = [
@@ -2020,15 +2294,13 @@
     buildInputs =
       (self.nativeDeps."chalk" or []);
     deps = [
-      self.by-version."has-color"."0.1.4"
+      self.by-version."has-color"."0.1.6"
       self.by-version."ansi-styles"."0.2.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "chalk" ];
   };
-  by-spec."chalk"."~0.2.1" =
-    self.by-version."chalk"."0.2.1";
   by-spec."chalk"."~0.3.0" =
     self.by-version."chalk"."0.3.0";
   by-version."chalk"."0.3.0" = lib.makeOverridable self.buildNodePackage {
@@ -2043,7 +2315,7 @@
     buildInputs =
       (self.nativeDeps."chalk" or []);
     deps = [
-      self.by-version."has-color"."0.1.4"
+      self.by-version."has-color"."0.1.6"
       self.by-version."ansi-styles"."0.2.0"
     ];
     peerDependencies = [
@@ -2131,7 +2403,7 @@
     buildInputs =
       (self.nativeDeps."cheerio-select" or []);
     deps = [
-      self.by-version."CSSselect"."0.5.0"
+      self.by-version."CSSselect"."0.7.0"
     ];
     peerDependencies = [
     ];
@@ -2175,20 +2447,22 @@
     ];
     passthru.names = [ "chmodr" ];
   };
-  by-spec."chokidar"."~0.8.0" =
-    self.by-version."chokidar"."0.8.1";
-  by-version."chokidar"."0.8.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-chokidar-0.8.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/chokidar/-/chokidar-0.8.1.tgz";
-        name = "chokidar-0.8.1.tgz";
-        sha1 = "8ee0c99ef48420902fded73b862eac2dd75da4a6";
+        url = "http://registry.npmjs.org/chokidar/-/chokidar-0.8.2.tgz";
+        name = "chokidar-0.8.2.tgz";
+        sha1 = "767e2509aaa040fd8a23cc46225a783dc1bfc899";
       })
     ];
     buildInputs =
       (self.nativeDeps."chokidar" or []);
     deps = [
+      self.by-version."fsevents"."0.2.0"
+      self.by-version."recursive-readdir"."0.0.2"
     ];
     peerDependencies = [
     ];
@@ -2213,6 +2487,26 @@
     ];
     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 {
@@ -2234,14 +2528,14 @@
     passthru.names = [ "class-extend" ];
   };
   by-spec."clean-css"."2.1.x" =
-    self.by-version."clean-css"."2.1.4";
-  by-version."clean-css"."2.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "clean-css-2.1.4";
+    self.by-version."clean-css"."2.1.8";
+  by-version."clean-css"."2.1.8" = lib.makeOverridable self.buildNodePackage {
+    name = "clean-css-2.1.8";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/clean-css/-/clean-css-2.1.4.tgz";
-        name = "clean-css-2.1.4.tgz";
-        sha1 = "82b59182c8aa02d7050329b0b977f7651bf9875e";
+        url = "http://registry.npmjs.org/clean-css/-/clean-css-2.1.8.tgz";
+        name = "clean-css-2.1.8.tgz";
+        sha1 = "2b4b2fd60f32441096216ae25a21faa74580dc83";
       })
     ];
     buildInputs =
@@ -2254,7 +2548,7 @@
     passthru.names = [ "clean-css" ];
   };
   by-spec."clean-css"."~2.1.0" =
-    self.by-version."clean-css"."2.1.4";
+    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 {
@@ -2414,7 +2708,7 @@
       (self.nativeDeps."cmd-shim" or []);
     deps = [
       self.by-version."mkdirp"."0.3.5"
-      self.by-version."graceful-fs"."2.0.2"
+      self.by-version."graceful-fs"."2.0.3"
     ];
     peerDependencies = [
     ];
@@ -2483,29 +2777,51 @@
     ];
     passthru.names = [ "coffee-script" ];
   };
-  by-spec."coffee-script"."~1.6" =
-    self.by-version."coffee-script"."1.6.3";
-  by-spec."coffee-script-redux"."git+https://github.com/michaelficarra/CoffeeScriptRedux.git#9895cd1641fdf3a2424e662ab7583726bb0e35b3" =
-    self.by-version."coffee-script-redux"."2.0.0-beta4";
-  by-version."coffee-script-redux"."2.0.0-beta4" = lib.makeOverridable self.buildNodePackage {
-    name = "coffee-script-redux-2.0.0-beta4";
+  by-spec."coffee-script-redux"."=2.0.0-beta8" =
+    self.by-version."coffee-script-redux"."2.0.0-beta8";
+  by-version."coffee-script-redux"."2.0.0-beta8" = lib.makeOverridable self.buildNodePackage {
+    name = "coffee-script-redux-2.0.0-beta8";
     src = [
-      (fetchgit {
-        url = "https://github.com/michaelficarra/CoffeeScriptRedux.git";
-        rev = "9895cd1641fdf3a2424e662ab7583726bb0e35b3";
-        sha256 = "d70e659aa7cdb50a98959dec0e2a8c916200e31cb770f04faa2ae92a55d1e66d";
+      (self.patchSource fetchurl {
+        url = "http://registry.npmjs.org/coffee-script-redux/-/coffee-script-redux-2.0.0-beta8.tgz";
+        name = "coffee-script-redux-2.0.0-beta8.tgz";
+        sha1 = "0fd7b8417340dd0d339e8f6fd8b4b8716956e8d5";
       })
     ];
     buildInputs =
       (self.nativeDeps."coffee-script-redux" or []);
     deps = [
       self.by-version."StringScanner"."0.0.3"
-      self.by-version."jedediah"."0.1.1"
+      self.by-version."nopt"."2.1.2"
+      self.by-version."esmangle"."0.0.17"
+      self.by-version."source-map"."0.1.11"
+      self.by-version."escodegen"."0.0.28"
+      self.by-version."cscodegen"."0.1.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "coffee-script-redux" ];
   };
+  by-spec."collections"."^2.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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/collections/-/collections-2.0.1.tgz";
+        name = "collections-2.0.1.tgz";
+        sha1 = "ee201b142bd1ee5b37a95d62fe13062d87d83db0";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."collections" or []);
+    deps = [
+      self.by-version."weak-map"."1.0.4"
+    ];
+    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 {
@@ -2521,7 +2837,7 @@
       (self.nativeDeps."color" or []);
     deps = [
       self.by-version."color-convert"."0.2.1"
-      self.by-version."color-string"."0.1.2"
+      self.by-version."color-string"."0.1.3"
     ];
     peerDependencies = [
     ];
@@ -2547,14 +2863,14 @@
     passthru.names = [ "color-convert" ];
   };
   by-spec."color-string"."0.1.x" =
-    self.by-version."color-string"."0.1.2";
-  by-version."color-string"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-color-string-0.1.2";
+    self.by-version."color-string"."0.1.3";
+  by-version."color-string"."0.1.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-color-string-0.1.3";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/color-string/-/color-string-0.1.2.tgz";
-        name = "color-string-0.1.2.tgz";
-        sha1 = "a413fb7dd137162d5d4ea784cbeb36d931ad9b4a";
+        url = "http://registry.npmjs.org/color-string/-/color-string-0.1.3.tgz";
+        name = "color-string-0.1.3.tgz";
+        sha1 = "e865d2e3e59f665c3af0de14383f6bf0705685f3";
       })
     ];
     buildInputs =
@@ -2791,6 +3107,8 @@
     self.by-version."commander"."2.1.0";
   by-spec."commander"."~0.6.1" =
     self.by-version."commander"."0.6.1";
+  by-spec."commander"."~2.1.0" =
+    self.by-version."commander"."2.1.0";
   by-spec."commondir"."0.0.1" =
     self.by-version."commondir"."0.0.1";
   by-version."commondir"."0.0.1" = lib.makeOverridable self.buildNodePackage {
@@ -2829,15 +3147,37 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/compression/-/compression-1.0.0.tgz";
+        name = "compression-1.0.0.tgz";
+        sha1 = "8aeb85d48db5145d38bc8b181b6352d8eab26020";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "compression" ];
+  };
   by-spec."concat-stream"."^1.4.1" =
-    self.by-version."concat-stream"."1.4.1";
-  by-version."concat-stream"."1.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/concat-stream/-/concat-stream-1.4.1.tgz";
-        name = "concat-stream-1.4.1.tgz";
-        sha1 = "20358b86fe36e5ac3de29cec76f4d04ad8ff1423";
+        url = "http://registry.npmjs.org/concat-stream/-/concat-stream-1.4.5.tgz";
+        name = "concat-stream-1.4.5.tgz";
+        sha1 = "cbf6ffd17c15d58f0baeacbb47d927cf566446a6";
       })
     ];
     buildInputs =
@@ -2845,14 +3185,14 @@
     deps = [
       self.by-version."inherits"."2.0.1"
       self.by-version."typedarray"."0.0.5"
-      self.by-version."readable-stream"."1.1.11"
+      self.by-version."readable-stream"."1.1.12"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "concat-stream" ];
   };
   by-spec."concat-stream"."~1.4.1" =
-    self.by-version."concat-stream"."1.4.1";
+    self.by-version."concat-stream"."1.4.5";
   by-spec."config"."0.4.15" =
     self.by-version."config"."0.4.15";
   by-version."config"."0.4.15" = lib.makeOverridable self.buildNodePackage {
@@ -2898,39 +3238,15 @@
   };
   by-spec."config-chain"."~1.1.8" =
     self.by-version."config-chain"."1.1.8";
-  by-spec."configstore"."~0.1.0" =
-    self.by-version."configstore"."0.1.7";
-  by-version."configstore"."0.1.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-configstore-0.1.7";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/configstore/-/configstore-0.1.7.tgz";
-        name = "configstore-0.1.7.tgz";
-        sha1 = "57dc701bc2a51eb804d6e1733c8abb9d82a5cede";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."configstore" or []);
-    deps = [
-      self.by-version."lodash"."2.4.1"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."js-yaml"."2.1.3"
-      self.by-version."osenv"."0.0.3"
-      self.by-version."graceful-fs"."2.0.2"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "configstore" ];
-  };
   by-spec."configstore"."~0.2.1" =
-    self.by-version."configstore"."0.2.2";
-  by-version."configstore"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-configstore-0.2.2";
+    self.by-version."configstore"."0.2.3";
+  by-version."configstore"."0.2.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-configstore-0.2.3";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/configstore/-/configstore-0.2.2.tgz";
-        name = "configstore-0.2.2.tgz";
-        sha1 = "ae0eb4f75833a4436f33456a4d2db11d69cc61ed";
+        url = "http://registry.npmjs.org/configstore/-/configstore-0.2.3.tgz";
+        name = "configstore-0.2.3.tgz";
+        sha1 = "b1bdc4ad823a25423dc15d220fcc1ae1d7efab02";
       })
     ];
     buildInputs =
@@ -2939,7 +3255,7 @@
       self.by-version."mkdirp"."0.3.5"
       self.by-version."js-yaml"."3.0.2"
       self.by-version."osenv"."0.0.3"
-      self.by-version."graceful-fs"."2.0.2"
+      self.by-version."graceful-fs"."2.0.3"
       self.by-version."uuid"."1.4.1"
       self.by-version."object-assign"."0.1.2"
     ];
@@ -2947,6 +3263,8 @@
     ];
     passthru.names = [ "configstore" ];
   };
+  by-spec."configstore"."~0.2.2" =
+    self.by-version."configstore"."0.2.3";
   by-spec."connect"."1.x" =
     self.by-version."connect"."1.9.2";
   by-version."connect"."1.9.2" = lib.makeOverridable self.buildNodePackage {
@@ -2992,7 +3310,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.7.4"
+      self.by-version."debug"."0.8.1"
       self.by-version."methods"."0.0.1"
       self.by-version."raw-body"."0.0.3"
       self.by-version."negotiator"."0.3.0"
@@ -3002,34 +3320,41 @@
     ];
     passthru.names = [ "connect" ];
   };
-  by-spec."connect"."2.12.0" =
-    self.by-version."connect"."2.12.0";
-  by-version."connect"."2.12.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-2.12.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/connect/-/connect-2.12.0.tgz";
-        name = "connect-2.12.0.tgz";
-        sha1 = "31d8fa0dcacdf1908d822bd2923be8a2d2a7ed9a";
+        url = "http://registry.npmjs.org/connect/-/connect-2.14.1.tgz";
+        name = "connect-2.14.1.tgz";
+        sha1 = "e6fd676a5735ca703a89eb970f3d283fadecc2c7";
       })
     ];
     buildInputs =
       (self.nativeDeps."connect" or []);
     deps = [
-      self.by-version."batch"."0.5.0"
+      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."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."cookie-signature"."1.0.1"
-      self.by-version."buffer-crc32"."0.2.1"
-      self.by-version."cookie"."0.1.0"
-      self.by-version."send"."0.1.4"
+      self.by-version."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."fresh"."0.2.0"
       self.by-version."pause"."0.0.1"
-      self.by-version."uid2"."0.0.3"
-      self.by-version."debug"."0.7.4"
-      self.by-version."methods"."0.1.0"
-      self.by-version."raw-body"."1.1.2"
-      self.by-version."negotiator"."0.3.0"
+      self.by-version."debug"."0.8.1"
+      self.by-version."raw-body"."1.1.3"
       self.by-version."multiparty"."2.2.0"
     ];
     peerDependencies = [
@@ -3057,7 +3382,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.7.4"
+      self.by-version."debug"."0.8.1"
     ];
     peerDependencies = [
     ];
@@ -3086,7 +3411,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.7.4"
+      self.by-version."debug"."0.8.1"
     ];
     peerDependencies = [
     ];
@@ -3115,27 +3440,68 @@
       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.7.4"
+      self.by-version."debug"."0.8.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "connect" ];
   };
   by-spec."connect"."~2" =
-    self.by-version."connect"."2.13.0";
-  by-version."connect"."2.13.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-connect-2.13.0";
+    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.13.0.tgz";
-        name = "connect-2.13.0.tgz";
-        sha1 = "a1974986381b4ea52ded726c2b4598e88ed527d3";
+        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" ];
+  };
+  by-spec."connect"."~2.12.0" =
+    self.by-version."connect"."2.12.0";
+  by-version."connect"."2.12.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-connect-2.12.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/connect/-/connect-2.12.0.tgz";
+        name = "connect-2.12.0.tgz";
+        sha1 = "31d8fa0dcacdf1908d822bd2923be8a2d2a7ed9a";
       })
     ];
     buildInputs =
       (self.nativeDeps."connect" or []);
     deps = [
-      self.by-version."compressible"."1.0.0"
       self.by-version."batch"."0.5.0"
       self.by-version."qs"."0.6.6"
       self.by-version."cookie-signature"."1.0.1"
@@ -3146,7 +3512,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.7.4"
+      self.by-version."debug"."0.8.1"
       self.by-version."methods"."0.1.0"
       self.by-version."raw-body"."1.1.2"
       self.by-version."negotiator"."0.3.0"
@@ -3156,8 +3522,6 @@
     ];
     passthru.names = [ "connect" ];
   };
-  by-spec."connect"."~2.12.0" =
-    self.by-version."connect"."2.12.0";
   by-spec."connect-flash"."*" =
     self.by-version."connect-flash"."0.1.1";
   by-version."connect-flash"."0.1.1" = lib.makeOverridable self.buildNodePackage {
@@ -3211,7 +3575,7 @@
     buildInputs =
       (self.nativeDeps."connect-jade-static" or []);
     deps = [
-      self.by-version."jade"."1.3.0"
+      self.by-version."jade"."1.3.1"
     ];
     peerDependencies = [
     ];
@@ -3239,6 +3603,26 @@
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/connect-timeout/-/connect-timeout-1.0.0.tgz";
+        name = "connect-timeout-1.0.0.tgz";
+        sha1 = "12054799f90bb9566f8b274efe7842d6465d10bb";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."connect-timeout" or []);
+    deps = [
+      self.by-version."debug"."0.8.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "connect-timeout" ];
+  };
   by-spec."connection-parse"."0.0.x" =
     self.by-version."connection-parse"."0.0.7";
   by-version."connection-parse"."0.0.7" = lib.makeOverridable self.buildNodePackage {
@@ -3310,7 +3694,7 @@
     buildInputs =
       (self.nativeDeps."constantinople" or []);
     deps = [
-      self.by-version."uglify-js"."2.4.12"
+      self.by-version."uglify-js"."2.4.13"
     ];
     peerDependencies = [
     ];
@@ -3332,7 +3716,7 @@
     buildInputs =
       (self.nativeDeps."constantinople" or []);
     deps = [
-      self.by-version."uglify-js"."2.4.12"
+      self.by-version."uglify-js"."2.4.13"
     ];
     peerDependencies = [
     ];
@@ -3433,6 +3817,25 @@
     ];
     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-jar"."~0.2.0" =
     self.by-version."cookie-jar"."0.2.0";
   by-version."cookie-jar"."0.2.0" = lib.makeOverridable self.buildNodePackage {
@@ -3471,6 +3874,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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/cookie-parser/-/cookie-parser-1.0.1.tgz";
+        name = "cookie-parser-1.0.1.tgz";
+        sha1 = "17bd622c9717cd0858a912a9fef4c0362360a7b0";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."cookie-parser" or []);
+    deps = [
+      self.by-version."cookie"."0.1.0"
+      self.by-version."cookie-signature"."1.0.3"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "cookie-parser" ];
+  };
+  by-spec."cookie-parser"."~1.0.1" =
+    self.by-version."cookie-parser"."1.0.1";
   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 {
@@ -3567,15 +3993,15 @@
     ];
     passthru.names = [ "cookies" ];
   };
-  by-spec."copy-paste"."~0.1.0" =
-    self.by-version."copy-paste"."0.1.0";
-  by-version."copy-paste"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-copy-paste-0.1.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/copy-paste/-/copy-paste-0.1.0.tgz";
-        name = "copy-paste-0.1.0.tgz";
-        sha1 = "d748638a4eccfa83af064eeb4bfc625cb300d28c";
+        url = "http://registry.npmjs.org/copy-paste/-/copy-paste-0.2.0.tgz";
+        name = "copy-paste-0.2.0.tgz";
+        sha1 = "6a83a3a073fc144adfa83cd03adb8db35953c424";
       })
     ];
     buildInputs =
@@ -3627,14 +4053,14 @@
     passthru.names = [ "couch-login" ];
   };
   by-spec."coveralls"."*" =
-    self.by-version."coveralls"."2.8.0";
-  by-version."coveralls"."2.8.0" = lib.makeOverridable self.buildNodePackage {
-    name = "coveralls-2.8.0";
+    self.by-version."coveralls"."2.10.0";
+  by-version."coveralls"."2.10.0" = lib.makeOverridable self.buildNodePackage {
+    name = "coveralls-2.10.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/coveralls/-/coveralls-2.8.0.tgz";
-        name = "coveralls-2.8.0.tgz";
-        sha1 = "959b1b3cb9b5ce2ca502b025fd69eb1700756e63";
+        url = "http://registry.npmjs.org/coveralls/-/coveralls-2.10.0.tgz";
+        name = "coveralls-2.10.0.tgz";
+        sha1 = "03f0c54070f30e0d336c79ef2b16a5c53728a7e5";
       })
     ];
     buildInputs =
@@ -3649,7 +4075,7 @@
     ];
     passthru.names = [ "coveralls" ];
   };
-  "coveralls" = self.by-version."coveralls"."2.8.0";
+  "coveralls" = self.by-version."coveralls"."2.10.0";
   by-spec."crc"."0.2.0" =
     self.by-version."crc"."0.2.0";
   by-version."crc"."0.2.0" = lib.makeOverridable self.buildNodePackage {
@@ -3767,6 +4193,25 @@
     ];
     passthru.names = [ "crypto-browserify" ];
   };
+  by-spec."cscodegen"."git://github.com/michaelficarra/cscodegen.git#73fd7202ac086c26f18c9d56f025b18b3c6f5383" =
+    self.by-version."cscodegen"."0.1.0";
+  by-version."cscodegen"."0.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "cscodegen-0.1.0";
+    src = [
+      (fetchgit {
+        url = "git://github.com/michaelficarra/cscodegen.git";
+        rev = "73fd7202ac086c26f18c9d56f025b18b3c6f5383";
+        sha256 = "cb527b00ac305ebc6ab3f59ff4e99def7646b417fdd9e35f0186c8ee41cd0829";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."cscodegen" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "cscodegen" ];
+  };
   by-spec."css"."~1.0.8" =
     self.by-version."css"."1.0.8";
   by-version."css"."1.0.8" = lib.makeOverridable self.buildNodePackage {
@@ -3845,6 +4290,47 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/csurf/-/csurf-1.0.0.tgz";
+        name = "csurf-1.0.0.tgz";
+        sha1 = "a68d5718b988032e270abf1f4b34f272753d745b";
+      })
+    ];
+    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"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "csurf" ];
+  };
   by-spec."ctype"."0.5.0" =
     self.by-version."ctype"."0.5.0";
   by-version."ctype"."0.5.0" = lib.makeOverridable self.buildNodePackage {
@@ -3960,14 +4446,14 @@
     passthru.names = [ "dateformat" ];
   };
   by-spec."debug"."*" =
-    self.by-version."debug"."0.7.4";
-  by-version."debug"."0.7.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-debug-0.7.4";
+    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.7.4.tgz";
-        name = "debug-0.7.4.tgz";
-        sha1 = "06e1ea8082c2cb14e39806e22e2f6f757f92af39";
+        url = "http://registry.npmjs.org/debug/-/debug-0.8.1.tgz";
+        name = "debug-0.8.1.tgz";
+        sha1 = "20ff4d26f5e422cb68a1bacbbb61039ad8c1c130";
       })
     ];
     buildInputs =
@@ -3999,79 +4485,77 @@
   };
   by-spec."debug"."0.7.4" =
     self.by-version."debug"."0.7.4";
-  by-spec."debug".">= 0.7.3 < 1" =
-    self.by-version."debug"."0.7.4";
-  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.7.3" =
-    self.by-version."debug"."0.7.4";
-  by-spec."debuglog"."0.0.2" =
-    self.by-version."debuglog"."0.0.2";
-  by-version."debuglog"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-debuglog-0.0.2";
+  by-version."debug"."0.7.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-debug-0.7.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/debuglog/-/debuglog-0.0.2.tgz";
-        name = "debuglog-0.0.2.tgz";
-        sha1 = "6c0dcf07e2c3f74524629b741668bd46c7b362eb";
+        url = "http://registry.npmjs.org/debug/-/debug-0.7.4.tgz";
+        name = "debug-0.7.4.tgz";
+        sha1 = "06e1ea8082c2cb14e39806e22e2f6f757f92af39";
       })
     ];
     buildInputs =
-      (self.nativeDeps."debuglog" or []);
+      (self.nativeDeps."debug" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "debuglog" ];
+    passthru.names = [ "debug" ];
   };
-  by-spec."decompress"."~0.1.5" =
-    self.by-version."decompress"."0.1.6";
-  by-version."decompress"."0.1.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-decompress-0.1.6";
+  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.2";
+  by-version."decompress"."0.2.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-decompress-0.2.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/decompress/-/decompress-0.1.6.tgz";
-        name = "decompress-0.1.6.tgz";
-        sha1 = "4db64844d80b615b888ca129d12f8accd1e27286";
+        url = "http://registry.npmjs.org/decompress/-/decompress-0.2.2.tgz";
+        name = "decompress-0.2.2.tgz";
+        sha1 = "12ab828b16f5990de645e48917774ef6045267c0";
       })
     ];
     buildInputs =
       (self.nativeDeps."decompress" or []);
     deps = [
       self.by-version."adm-zip"."0.4.4"
+      self.by-version."map-key"."0.1.1"
       self.by-version."mkdirp"."0.3.5"
-      self.by-version."mout"."0.6.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.2"
+      self.by-version."tempfile"."0.1.3"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "decompress" ];
   };
   by-spec."decompress-zip"."~0.0.3" =
-    self.by-version."decompress-zip"."0.0.4";
-  by-version."decompress-zip"."0.0.4" = lib.makeOverridable self.buildNodePackage {
-    name = "decompress-zip-0.0.4";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/decompress-zip/-/decompress-zip-0.0.4.tgz";
-        name = "decompress-zip-0.0.4.tgz";
-        sha1 = "c562431f76af8970afaf50226e42e1c47a57b086";
+        url = "http://registry.npmjs.org/decompress-zip/-/decompress-zip-0.0.6.tgz";
+        name = "decompress-zip-0.0.6.tgz";
+        sha1 = "263ef05b304cdcd1172858af453561c53ae017bb";
       })
     ];
     buildInputs =
       (self.nativeDeps."decompress-zip" or []);
     deps = [
-      self.by-version."q"."0.9.7"
+      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.11"
-      self.by-version."nopt"."2.1.2"
+      self.by-version."readable-stream"."1.1.12"
+      self.by-version."nopt"."2.2.0"
     ];
     peerDependencies = [
     ];
@@ -4177,6 +4661,26 @@
   };
   by-spec."deep-extend"."~0.2.8" =
     self.by-version."deep-extend"."0.2.8";
+  by-spec."deepmerge"."*" =
+    self.by-version."deepmerge"."0.2.7";
+  by-version."deepmerge"."0.2.7" = lib.makeOverridable self.buildNodePackage {
+    name = "node-deepmerge-0.2.7";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/deepmerge/-/deepmerge-0.2.7.tgz";
+        name = "deepmerge-0.2.7.tgz";
+        sha1 = "3a5ab8d37311c4d1aefb22209693afe0a91a0563";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."deepmerge" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "deepmerge" ];
+  };
+  "deepmerge" = self.by-version."deepmerge"."0.2.7";
   by-spec."defined"."~0.0.0" =
     self.by-version."defined"."0.0.0";
   by-version."defined"."0.0.0" = lib.makeOverridable self.buildNodePackage {
@@ -4237,44 +4741,44 @@
     ];
     passthru.names = [ "deps-sort" ];
   };
-  by-spec."derequire"."~0.6.0" =
-    self.by-version."derequire"."0.6.1";
-  by-version."derequire"."0.6.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-derequire-0.6.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/derequire/-/derequire-0.6.1.tgz";
-        name = "derequire-0.6.1.tgz";
-        sha1 = "cce8ee25380de715deb61900f0bdd38222928788";
+        url = "http://registry.npmjs.org/derequire/-/derequire-0.8.0.tgz";
+        name = "derequire-0.8.0.tgz";
+        sha1 = "c1f7f1da2cede44adede047378f03f444e9c4c0d";
       })
     ];
     buildInputs =
       (self.nativeDeps."derequire" or []);
     deps = [
       self.by-version."estraverse"."1.5.0"
-      self.by-version."esprima-six"."0.0.3"
       self.by-version."esrefactor"."0.1.0"
+      self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "derequire" ];
   };
-  by-spec."detective"."~2.4.0" =
-    self.by-version."detective"."2.4.1";
-  by-version."detective"."2.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-detective-2.4.1";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/detective/-/detective-2.4.1.tgz";
-        name = "detective-2.4.1.tgz";
-        sha1 = "943b8eec4c346f6ac501de25da2ea1a57ed77819";
+        url = "http://registry.npmjs.org/detective/-/detective-3.1.0.tgz";
+        name = "detective-3.1.0.tgz";
+        sha1 = "77782444ab752b88ca1be2e9d0a0395f1da25eed";
       })
     ];
     buildInputs =
       (self.nativeDeps."detective" or []);
     deps = [
       self.by-version."escodegen"."1.1.0"
-      self.by-version."esprima-six"."0.0.3"
+      self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb"
     ];
     peerDependencies = [
     ];
@@ -4520,14 +5024,14 @@
     passthru.names = [ "domutils" ];
   };
   by-spec."domutils"."1.4" =
-    self.by-version."domutils"."1.4.0";
-  by-version."domutils"."1.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-domutils-1.4.0";
+    self.by-version."domutils"."1.4.3";
+  by-version."domutils"."1.4.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-domutils-1.4.3";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/domutils/-/domutils-1.4.0.tgz";
-        name = "domutils-1.4.0.tgz";
-        sha1 = "330b95212944e340c6e0227e9ec3d35242d4dd05";
+        url = "http://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz";
+        name = "domutils-1.4.3.tgz";
+        sha1 = "0865513796c6b306031850e175516baf80b72a6f";
       })
     ];
     buildInputs =
@@ -4540,23 +5044,26 @@
     passthru.names = [ "domutils" ];
   };
   by-spec."download"."~0.1.6" =
-    self.by-version."download"."0.1.10";
-  by-version."download"."0.1.10" = lib.makeOverridable self.buildNodePackage {
-    name = "node-download-0.1.10";
+    self.by-version."download"."0.1.15";
+  by-version."download"."0.1.15" = lib.makeOverridable self.buildNodePackage {
+    name = "download-0.1.15";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/download/-/download-0.1.10.tgz";
-        name = "download-0.1.10.tgz";
-        sha1 = "732065fc96259abd47543c2711467bcf7ed66af5";
+        url = "http://registry.npmjs.org/download/-/download-0.1.15.tgz";
+        name = "download-0.1.15.tgz";
+        sha1 = "8dc3d49a131cd3714eb8fd614a155077d2c7f630";
       })
     ];
     buildInputs =
       (self.nativeDeps."download" or []);
     deps = [
-      self.by-version."decompress"."0.1.6"
+      self.by-version."decompress"."0.2.2"
       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."request"."2.31.0"
+      self.by-version."nopt"."2.2.0"
+      self.by-version."request"."2.34.0"
       self.by-version."through2"."0.4.1"
     ];
     peerDependencies = [
@@ -4622,7 +5129,7 @@
     ];
     passthru.names = [ "duplexer" ];
   };
-  by-spec."each-async"."~0.1.1" =
+  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";
@@ -4756,6 +5263,48 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/envify/-/envify-1.2.1.tgz";
+        name = "envify-1.2.1.tgz";
+        sha1 = "ac34e3676f9035d59518fef57d9914a24a18767a";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."envify" or []);
+    deps = [
+      self.by-version."xtend"."2.1.2"
+      self.by-version."through"."2.3.4"
+      self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb"
+      self.by-version."jstransform"."3.0.0"
+    ];
+    peerDependencies = [
+    ];
+    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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/errorhandler/-/errorhandler-1.0.0.tgz";
+        name = "errorhandler-1.0.0.tgz";
+        sha1 = "d74b37e8dc38c99afb3f5a79edcebaea022d042a";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."errorhandler" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "errorhandler" ];
+  };
   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 {
@@ -4797,60 +5346,62 @@
   "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."escodegen"."*" =
-    self.by-version."escodegen"."1.2.0";
-  by-version."escodegen"."1.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "escodegen-1.2.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/escodegen/-/escodegen-1.2.0.tgz";
-        name = "escodegen-1.2.0.tgz";
-        sha1 = "09de7967791cc958b7f89a2ddb6d23451af327e1";
+        url = "http://registry.npmjs.org/escodegen/-/escodegen-1.3.2.tgz";
+        name = "escodegen-1.3.2.tgz";
+        sha1 = "bb0f434dbd594f2060639a79b4b06259dd5372de";
       })
     ];
     buildInputs =
       (self.nativeDeps."escodegen" or []);
     deps = [
-      self.by-version."esprima"."1.0.4"
-      self.by-version."estraverse"."1.5.0"
       self.by-version."esutils"."1.0.0"
+      self.by-version."estraverse"."1.5.0"
+      self.by-version."esprima"."1.1.1"
       self.by-version."source-map"."0.1.33"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "escodegen" ];
   };
-  by-spec."escodegen"."0.0.23" =
-    self.by-version."escodegen"."0.0.23";
-  by-version."escodegen"."0.0.23" = lib.makeOverridable self.buildNodePackage {
-    name = "escodegen-0.0.23";
+  by-spec."escodegen"."~ 0.0.28" =
+    self.by-version."escodegen"."0.0.28";
+  by-version."escodegen"."0.0.28" = lib.makeOverridable self.buildNodePackage {
+    name = "escodegen-0.0.28";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/escodegen/-/escodegen-0.0.23.tgz";
-        name = "escodegen-0.0.23.tgz";
-        sha1 = "9acf978164368e42276571f18839c823b3a844df";
+        url = "http://registry.npmjs.org/escodegen/-/escodegen-0.0.28.tgz";
+        name = "escodegen-0.0.28.tgz";
+        sha1 = "0e4ff1715f328775d6cab51ac44a406cd7abffd3";
       })
     ];
     buildInputs =
       (self.nativeDeps."escodegen" or []);
     deps = [
       self.by-version."esprima"."1.0.4"
-      self.by-version."estraverse"."0.0.4"
+      self.by-version."estraverse"."1.3.2"
       self.by-version."source-map"."0.1.33"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "escodegen" ];
   };
-  by-spec."escodegen"."1.0.x" =
-    self.by-version."escodegen"."1.0.1";
-  by-version."escodegen"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "escodegen-1.0.1";
+  by-spec."escodegen"."~0.0.24" =
+    self.by-version."escodegen"."0.0.28";
+  by-spec."escodegen"."~1.1.0" =
+    self.by-version."escodegen"."1.1.0";
+  by-version."escodegen"."1.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "escodegen-1.1.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/escodegen/-/escodegen-1.0.1.tgz";
-        name = "escodegen-1.0.1.tgz";
-        sha1 = "84c92c4a07440271b90e6b78e620973bf721226e";
+        url = "http://registry.npmjs.org/escodegen/-/escodegen-1.1.0.tgz";
+        name = "escodegen-1.1.0.tgz";
+        sha1 = "c663923f6e20aad48d0c0fa49f31c6d4f49360cf";
       })
     ];
     buildInputs =
@@ -4865,28 +5416,25 @@
     ];
     passthru.names = [ "escodegen" ];
   };
-  by-spec."escodegen"."~1.1.0" =
-    self.by-version."escodegen"."1.1.0";
-  by-version."escodegen"."1.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "escodegen-1.1.0";
+  by-spec."escope"."~ 1.0.0" =
+    self.by-version."escope"."1.0.1";
+  by-version."escope"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-escope-1.0.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/escodegen/-/escodegen-1.1.0.tgz";
-        name = "escodegen-1.1.0.tgz";
-        sha1 = "c663923f6e20aad48d0c0fa49f31c6d4f49360cf";
+        url = "http://registry.npmjs.org/escope/-/escope-1.0.1.tgz";
+        name = "escope-1.0.1.tgz";
+        sha1 = "59b04cdccb76555608499ed13502b9028fe73dd8";
       })
     ];
     buildInputs =
-      (self.nativeDeps."escodegen" or []);
+      (self.nativeDeps."escope" or []);
     deps = [
-      self.by-version."esprima"."1.0.4"
       self.by-version."estraverse"."1.5.0"
-      self.by-version."esutils"."1.0.0"
-      self.by-version."source-map"."0.1.33"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "escodegen" ];
+    passthru.names = [ "escope" ];
   };
   by-spec."escope"."~0.0.13" =
     self.by-version."escope"."0.0.16";
@@ -4908,7 +5456,52 @@
     ];
     passthru.names = [ "escope" ];
   };
-  by-spec."esprima"."1.0.x" =
+  by-spec."esmangle"."~0.0.8" =
+    self.by-version."esmangle"."0.0.17";
+  by-version."esmangle"."0.0.17" = lib.makeOverridable self.buildNodePackage {
+    name = "esmangle-0.0.17";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/esmangle/-/esmangle-0.0.17.tgz";
+        name = "esmangle-0.0.17.tgz";
+        sha1 = "4c5c93607cde5d1276bad396e836229dba68d90c";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."esmangle" or []);
+    deps = [
+      self.by-version."esprima"."1.0.4"
+      self.by-version."escope"."1.0.1"
+      self.by-version."escodegen"."0.0.28"
+      self.by-version."estraverse"."1.3.2"
+      self.by-version."source-map"."0.1.33"
+      self.by-version."esshorten"."0.0.2"
+      self.by-version."optimist"."0.6.1"
+    ];
+    peerDependencies = [
+    ];
+    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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz";
+        name = "esprima-1.1.1.tgz";
+        sha1 = "5b6f1547f4d102e670e140c509be6771d6aeb549";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."esprima" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "esprima" ];
+  };
+  by-spec."esprima"."~ 1.0.2" =
     self.by-version."esprima"."1.0.4";
   by-version."esprima"."1.0.4" = lib.makeOverridable self.buildNodePackage {
     name = "esprima-1.0.4";
@@ -4927,33 +5520,35 @@
     ];
     passthru.names = [ "esprima" ];
   };
-  by-spec."esprima"."~ 1.0.2" =
-    self.by-version."esprima"."1.0.4";
   by-spec."esprima"."~1.0.2" =
     self.by-version."esprima"."1.0.4";
   by-spec."esprima"."~1.0.4" =
     self.by-version."esprima"."1.0.4";
-  by-spec."esprima-six"."0.0.3" =
-    self.by-version."esprima-six"."0.0.3";
-  by-version."esprima-six"."0.0.3" = lib.makeOverridable self.buildNodePackage {
-    name = "esprima-six-0.0.3";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/esprima-six/-/esprima-six-0.0.3.tgz";
-        name = "esprima-six-0.0.3.tgz";
-        sha1 = "8eb750435b02d3e50cf09b5736cbce4606a4399f";
+        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."esprima-six" or []);
+      (self.nativeDeps."esprima-fb" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "esprima-six" ];
+    passthru.names = [ "esprima-fb" ];
   };
-  by-spec."esprima-six"."~0.0.3" =
-    self.by-version."esprima-six"."0.0.3";
+  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" =
+    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 {
@@ -4976,7 +5571,28 @@
     ];
     passthru.names = [ "esrefactor" ];
   };
-  by-spec."estraverse"."*" =
+  by-spec."esshorten"."~ 0.0.2" =
+    self.by-version."esshorten"."0.0.2";
+  by-version."esshorten"."0.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-esshorten-0.0.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/esshorten/-/esshorten-0.0.2.tgz";
+        name = "esshorten-0.0.2.tgz";
+        sha1 = "28a652f1efd40c8e227f8c6de7dbe6b560ee8129";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."esshorten" or []);
+    deps = [
+      self.by-version."escope"."1.0.1"
+      self.by-version."estraverse"."1.2.0"
+    ];
+    peerDependencies = [
+    ];
+    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";
@@ -4995,8 +5611,44 @@
     ];
     passthru.names = [ "estraverse" ];
   };
-  by-spec."estraverse".">= 0.0.2" =
-    self.by-version."estraverse"."1.5.0";
+  by-spec."estraverse"."~ 1.2.0" =
+    self.by-version."estraverse"."1.2.0";
+  by-version."estraverse"."1.2.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-estraverse-1.2.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/estraverse/-/estraverse-1.2.0.tgz";
+        name = "estraverse-1.2.0.tgz";
+        sha1 = "6a3dc8a46a5d6766e5668639fc782976ce5660fd";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."estraverse" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "estraverse" ];
+  };
+  by-spec."estraverse"."~ 1.3.2" =
+    self.by-version."estraverse"."1.3.2";
+  by-version."estraverse"."1.3.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-estraverse-1.3.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/estraverse/-/estraverse-1.3.2.tgz";
+        name = "estraverse-1.3.2.tgz";
+        sha1 = "37c2b893ef13d723f276d878d60d8535152a6c42";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."estraverse" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    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 {
@@ -5016,6 +5668,8 @@
     ];
     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";
   by-spec."esutils"."~1.0.0" =
@@ -5172,12 +5826,12 @@
       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.5"
-      self.by-version."xml2js"."0.4.1"
+      self.by-version."openid"."0.5.7"
+      self.by-version."xml2js"."0.4.2"
       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.4.8"
+      self.by-version."express"."3.5.1"
     ];
     peerDependencies = [
     ];
@@ -5225,19 +5879,20 @@
   by-spec."exit"."~0.1.1" =
     self.by-version."exit"."0.1.2";
   by-spec."express"."*" =
-    self.by-version."express"."4.0.0-rc2";
-  by-version."express"."4.0.0-rc2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-express-4.0.0-rc2";
+    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-rc2.tgz";
-        name = "express-4.0.0-rc2.tgz";
-        sha1 = "0b3fc3b853b393cdb5042dc9960498015ed06b96";
+        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"
@@ -5251,13 +5906,15 @@
       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."debug"."0.7.4"
+      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-rc2";
+  "express" = self.by-version."express"."4.0.0";
   by-spec."express"."2.5.11" =
     self.by-version."express"."2.5.11";
   by-version."express"."2.5.11" = lib.makeOverridable self.buildNodePackage {
@@ -5305,7 +5962,7 @@
       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.7.4"
+      self.by-version."debug"."0.8.1"
     ];
     peerDependencies = [
     ];
@@ -5335,38 +5992,38 @@
       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.7.4"
+      self.by-version."debug"."0.8.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "express" ];
   };
   by-spec."express"."3.x" =
-    self.by-version."express"."3.4.8";
-  by-version."express"."3.4.8" = lib.makeOverridable self.buildNodePackage {
-    name = "express-3.4.8";
+    self.by-version."express"."3.5.1";
+  by-version."express"."3.5.1" = lib.makeOverridable self.buildNodePackage {
+    name = "express-3.5.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/express/-/express-3.4.8.tgz";
-        name = "express-3.4.8.tgz";
-        sha1 = "aa7a8986de07053337f4bc5ed9a6453d9cc8e2e1";
+        url = "http://registry.npmjs.org/express/-/express-3.5.1.tgz";
+        name = "express-3.5.1.tgz";
+        sha1 = "4b333e1117faca336a538f4c724140b9ce1a87e7";
       })
     ];
     buildInputs =
       (self.nativeDeps."express" or []);
     deps = [
-      self.by-version."connect"."2.12.0"
+      self.by-version."connect"."2.14.1"
       self.by-version."commander"."1.3.2"
-      self.by-version."range-parser"."0.0.4"
+      self.by-version."range-parser"."1.0.0"
       self.by-version."mkdirp"."0.3.5"
-      self.by-version."cookie"."0.1.0"
+      self.by-version."cookie"."0.1.1"
       self.by-version."buffer-crc32"."0.2.1"
-      self.by-version."fresh"."0.2.0"
+      self.by-version."fresh"."0.2.2"
       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."merge-descriptors"."0.0.1"
-      self.by-version."debug"."0.7.4"
+      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."debug"."0.8.1"
     ];
     peerDependencies = [
     ];
@@ -5396,25 +6053,25 @@
       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.7.4"
+      self.by-version."debug"."0.8.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "express" ];
   };
-  by-spec."express"."~3.4" =
-    self.by-version."express"."3.4.8";
-  by-spec."express"."~3.4.8" =
-    self.by-version."express"."3.4.8";
+  by-spec."express"."~3.5" =
+    self.by-version."express"."3.5.1";
+  by-spec."express"."~4.0.0-rc4" =
+    self.by-version."express"."4.0.0";
   by-spec."express-form"."*" =
-    self.by-version."express-form"."0.12.0";
-  by-version."express-form"."0.12.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-express-form-0.12.0";
+    self.by-version."express-form"."0.12.1";
+  by-version."express-form"."0.12.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-express-form-0.12.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/express-form/-/express-form-0.12.0.tgz";
-        name = "express-form-0.12.0.tgz";
-        sha1 = "0525ce1365760fd90fb785829a430122aceb893a";
+        url = "http://registry.npmjs.org/express-form/-/express-form-0.12.1.tgz";
+        name = "express-form-0.12.1.tgz";
+        sha1 = "1b62e580303919799598e038fdfba8c65a2cd677";
       })
     ];
     buildInputs =
@@ -5425,11 +6082,11 @@
       self.by-version."async"."0.2.10"
     ];
     peerDependencies = [
-      self.by-version."express"."3.4.8"
+      self.by-version."express"."3.5.1"
     ];
     passthru.names = [ "express-form" ];
   };
-  "express-form" = self.by-version."express-form"."0.12.0";
+  "express-form" = self.by-version."express-form"."0.12.1";
   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 {
@@ -5449,6 +6106,33 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/express-session/-/express-session-1.0.2.tgz";
+        name = "express-session-1.0.2.tgz";
+        sha1 = "004478c742561774411ceb79733155a56b6d49eb";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."express-session" or []);
+    deps = [
+      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.2";
   by-spec."extend"."*" =
     self.by-version."extend"."1.2.1";
   by-version."extend"."1.2.1" = lib.makeOverridable self.buildNodePackage {
@@ -5469,6 +6153,8 @@
     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."extract-opts"."~2.2.0" =
     self.by-version."extract-opts"."2.2.0";
   by-version."extract-opts"."2.2.0" = lib.makeOverridable self.buildNodePackage {
@@ -5605,7 +6291,7 @@
     deps = [
       self.by-version."bower-endpoint-parser"."0.2.1"
       self.by-version."bower-logger"."0.2.1"
-      self.by-version."bower"."1.2.8"
+      self.by-version."bower"."1.3.2"
       self.by-version."glob"."3.2.9"
     ];
     peerDependencies = [
@@ -5656,7 +6342,7 @@
       self.by-version."rimraf"."2.2.6"
       self.by-version."glob"."3.2.9"
       self.by-version."minimatch"."0.2.14"
-      self.by-version."findup-sync"."0.1.2"
+      self.by-version."findup-sync"."0.1.3"
       self.by-version."isbinaryfile"."0.1.9"
     ];
     peerDependencies = [
@@ -5706,49 +6392,49 @@
     passthru.names = [ "findit" ];
   };
   by-spec."findup"."~0.1.3" =
-    self.by-version."findup"."0.1.3";
-  by-version."findup"."0.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "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";
     src = [
-      (self.patchSource fetchurl {
-        url = "http://registry.npmjs.org/findup/-/findup-0.1.3.tgz";
-        name = "findup-0.1.3.tgz";
-        sha1 = "df2b8ecf06fdaa9cc13dc4ba58bf950e3a176941";
+      (fetchurl {
+        url = "http://registry.npmjs.org/findup/-/findup-0.1.5.tgz";
+        name = "findup-0.1.5.tgz";
+        sha1 = "8ad929a3393bac627957a7e5de4623b06b0e2ceb";
       })
     ];
     buildInputs =
       (self.nativeDeps."findup" or []);
     deps = [
-      self.by-version."nopt"."1.0.10"
       self.by-version."colors"."0.6.2"
+      self.by-version."commander"."2.1.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "findup" ];
   };
   by-spec."findup-sync"."~0.1.0" =
-    self.by-version."findup-sync"."0.1.2";
-  by-version."findup-sync"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-findup-sync-0.1.2";
+    self.by-version."findup-sync"."0.1.3";
+  by-version."findup-sync"."0.1.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-findup-sync-0.1.3";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/findup-sync/-/findup-sync-0.1.2.tgz";
-        name = "findup-sync-0.1.2.tgz";
-        sha1 = "da2b96ca9f800e5a13d0a11110f490b65f62e96d";
+        url = "http://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz";
+        name = "findup-sync-0.1.3.tgz";
+        sha1 = "7f3e7a97b82392c653bf06589bd85190e93c3683";
       })
     ];
     buildInputs =
       (self.nativeDeps."findup-sync" or []);
     deps = [
-      self.by-version."glob"."3.1.21"
-      self.by-version."lodash"."1.0.1"
+      self.by-version."glob"."3.2.9"
+      self.by-version."lodash"."2.4.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "findup-sync" ];
   };
   by-spec."findup-sync"."~0.1.2" =
-    self.by-version."findup-sync"."0.1.2";
+    self.by-version."findup-sync"."0.1.3";
   by-spec."flatiron"."*" =
     self.by-version."flatiron"."0.3.11";
   by-version."flatiron"."0.3.11" = lib.makeOverridable self.buildNodePackage {
@@ -5816,14 +6502,14 @@
     passthru.names = [ "forEachAsync" ];
   };
   by-spec."forever"."*" =
-    self.by-version."forever"."0.10.11";
-  by-version."forever"."0.10.11" = lib.makeOverridable self.buildNodePackage {
-    name = "forever-0.10.11";
+    self.by-version."forever"."0.11.0";
+  by-version."forever"."0.11.0" = lib.makeOverridable self.buildNodePackage {
+    name = "forever-0.11.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/forever/-/forever-0.10.11.tgz";
-        name = "forever-0.10.11.tgz";
-        sha1 = "925cae528c074a29c0119809ca08e382ef194ad0";
+        url = "http://registry.npmjs.org/forever/-/forever-0.11.0.tgz";
+        name = "forever-0.11.0.tgz";
+        sha1 = "97de678915c64dacce2ccbfb94620723b308d44f";
       })
     ];
     buildInputs =
@@ -5840,13 +6526,13 @@
       self.by-version."timespan"."2.3.0"
       self.by-version."watch"."0.8.0"
       self.by-version."utile"."0.2.1"
-      self.by-version."winston"."0.7.2"
+      self.by-version."winston"."0.7.3"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "forever" ];
   };
-  "forever" = self.by-version."forever"."0.10.11";
+  "forever" = self.by-version."forever"."0.11.0";
   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 {
@@ -6156,7 +6842,7 @@
     buildInputs =
       (self.nativeDeps."fs-walk" or []);
     deps = [
-      self.by-version."async"."0.2.10"
+      self.by-version."async"."0.7.0"
     ];
     peerDependencies = [
     ];
@@ -6187,6 +6873,26 @@
   };
   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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/fsevents/-/fsevents-0.2.0.tgz";
+        name = "fsevents-0.2.0.tgz";
+        sha1 = "1de161da042818f45bfbe11a853da8e5c6ca5d83";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."fsevents" or []);
+    deps = [
+      self.by-version."nan"."0.8.0"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "fsevents" ];
+  };
   by-spec."fstream"."0" =
     self.by-version."fstream"."0.1.25";
   by-version."fstream"."0.1.25" = lib.makeOverridable self.buildNodePackage {
@@ -6203,7 +6909,7 @@
     deps = [
       self.by-version."rimraf"."2.2.6"
       self.by-version."mkdirp"."0.3.5"
-      self.by-version."graceful-fs"."2.0.2"
+      self.by-version."graceful-fs"."2.0.3"
       self.by-version."inherits"."2.0.1"
     ];
     peerDependencies = [
@@ -6264,45 +6970,45 @@
     passthru.names = [ "fstream-npm" ];
   };
   by-spec."generator-angular"."*" =
-    self.by-version."generator-angular"."0.7.1";
-  by-version."generator-angular"."0.7.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-generator-angular-0.7.1";
+    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.7.1.tgz";
-        name = "generator-angular-0.7.1.tgz";
-        sha1 = "51f9faed8d7c0e9d972004101cc1c16ecd1ebf65";
+        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."yeoman-generator"."0.13.4"
-      self.by-version."chalk"."0.3.0"
-      self.by-version."wiredep"."0.4.2"
+      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.6.0"
+      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.7.1";
-  by-spec."generator-karma"."~0.6.0" =
-    self.by-version."generator-karma"."0.6.0";
-  by-version."generator-karma"."0.6.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-generator-karma-0.6.0";
+  "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.6.0.tgz";
-        name = "generator-karma-0.6.0.tgz";
-        sha1 = "e89b6195c186771e8bdddde37441abb6ce07e1a0";
+        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.13.4"
+      self.by-version."yeoman-generator"."0.16.0"
     ];
     peerDependencies = [
       self.by-version."yo"."1.1.2"
@@ -6331,14 +7037,14 @@
     passthru.names = [ "generator-mocha" ];
   };
   by-spec."generator-webapp"."*" =
-    self.by-version."generator-webapp"."0.4.7";
-  by-version."generator-webapp"."0.4.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-generator-webapp-0.4.7";
+    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.7.tgz";
-        name = "generator-webapp-0.4.7.tgz";
-        sha1 = "a42b663cbe289358046038229603e8557b6881e5";
+        url = "http://registry.npmjs.org/generator-webapp/-/generator-webapp-0.4.9.tgz";
+        name = "generator-webapp-0.4.9.tgz";
+        sha1 = "df8aa10af9bac7fd59f4072b9cdf0f120e8bb611";
       })
     ];
     buildInputs =
@@ -6354,7 +7060,45 @@
     ];
     passthru.names = [ "generator-webapp" ];
   };
-  "generator-webapp" = self.by-version."generator-webapp"."0.4.7";
+  "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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/get-stdin/-/get-stdin-0.1.0.tgz";
+        name = "get-stdin-0.1.0.tgz";
+        sha1 = "5998af24aafc802d15c82c685657eeb8b10d4a91";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."get-stdin" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "get-stdin" ];
+  };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/get-urls/-/get-urls-0.1.1.tgz";
+        name = "get-urls-0.1.1.tgz";
+        sha1 = "f94aa79c9e5d99cb843e44c5f67e24954e08fb59";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."get-urls" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "get-urls" ];
+  };
   by-spec."getmac"."~1.0.6" =
     self.by-version."getmac"."1.0.6";
   by-version."getmac"."1.0.6" = lib.makeOverridable self.buildNodePackage {
@@ -6395,14 +7139,14 @@
     passthru.names = [ "getobject" ];
   };
   by-spec."gh"."*" =
-    self.by-version."gh"."1.8.2";
-  by-version."gh"."1.8.2" = lib.makeOverridable self.buildNodePackage {
-    name = "gh-1.8.2";
+    self.by-version."gh"."1.9.1";
+  by-version."gh"."1.9.1" = lib.makeOverridable self.buildNodePackage {
+    name = "gh-1.9.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/gh/-/gh-1.8.2.tgz";
-        name = "gh-1.8.2.tgz";
-        sha1 = "01ae9e23a617a9c08e8196078dd7b5a8b79b0156";
+        url = "http://registry.npmjs.org/gh/-/gh-1.9.1.tgz";
+        name = "gh-1.9.1.tgz";
+        sha1 = "1862071cddc13cfd31545c64256ab731bb334194";
       })
     ];
     buildInputs =
@@ -6411,33 +7155,33 @@
       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."copy-paste"."0.1.0"
-      self.by-version."moment"."2.4.0"
-      self.by-version."handlebars"."1.0.11"
-      self.by-version."github"."0.1.14"
-      self.by-version."inquirer"."0.3.5"
-      self.by-version."wordwrap"."0.0.2"
-      self.by-version."nopt"."2.1.2"
-      self.by-version."open"."0.0.4"
+      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.7"
+      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" ];
   };
-  "gh" = self.by-version."gh"."1.8.2";
-  by-spec."github"."~0.1.12" =
-    self.by-version."github"."0.1.14";
-  by-version."github"."0.1.14" = lib.makeOverridable self.buildNodePackage {
-    name = "node-github-0.1.14";
+  "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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/github/-/github-0.1.14.tgz";
-        name = "github-0.1.14.tgz";
-        sha1 = "2a4fc150c9aee8c7a7702fa1e620d29599246322";
+        url = "http://registry.npmjs.org/github/-/github-0.1.16.tgz";
+        name = "github-0.1.16.tgz";
+        sha1 = "895d2a85b0feb7980d89ac0ce4f44dcaa03f17b5";
       })
     ];
     buildInputs =
@@ -6543,28 +7287,7 @@
       (self.nativeDeps."glob" or []);
     deps = [
       self.by-version."minimatch"."0.2.14"
-      self.by-version."graceful-fs"."2.0.2"
-      self.by-version."inherits"."2.0.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "glob" ];
-  };
-  by-spec."glob"."3.2.7" =
-    self.by-version."glob"."3.2.7";
-  by-version."glob"."3.2.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-glob-3.2.7";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/glob/-/glob-3.2.7.tgz";
-        name = "glob-3.2.7.tgz";
-        sha1 = "275f39a0eee805694790924f36eac38e1db6d802";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."glob" or []);
-    deps = [
-      self.by-version."minimatch"."0.2.14"
+      self.by-version."graceful-fs"."2.0.3"
       self.by-version."inherits"."2.0.1"
     ];
     peerDependencies = [
@@ -6611,15 +7334,17 @@
     self.by-version."glob"."3.2.9";
   by-spec."glob"."~3.2.8" =
     self.by-version."glob"."3.2.9";
+  by-spec."glob"."~3.2.9" =
+    self.by-version."glob"."3.2.9";
   by-spec."graceful-fs"."2" =
-    self.by-version."graceful-fs"."2.0.2";
-  by-version."graceful-fs"."2.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-graceful-fs-2.0.2";
+    self.by-version."graceful-fs"."2.0.3";
+  by-version."graceful-fs"."2.0.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-graceful-fs-2.0.3";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.2.tgz";
-        name = "graceful-fs-2.0.2.tgz";
-        sha1 = "26806eaca4bff8fc5dbc935e696135792175c46f";
+        url = "http://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz";
+        name = "graceful-fs-2.0.3.tgz";
+        sha1 = "7cd2cdb228a4a3f36e95efa6cc142de7d1a136d0";
       })
     ];
     buildInputs =
@@ -6630,8 +7355,6 @@
     ];
     passthru.names = [ "graceful-fs" ];
   };
-  by-spec."graceful-fs"."^2.0.2" =
-    self.by-version."graceful-fs"."2.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 {
@@ -6673,11 +7396,13 @@
   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.2";
+    self.by-version."graceful-fs"."2.0.3";
   by-spec."graceful-fs"."~2.0.0" =
-    self.by-version."graceful-fs"."2.0.2";
+    self.by-version."graceful-fs"."2.0.3";
   by-spec."graceful-fs"."~2.0.1" =
-    self.by-version."graceful-fs"."2.0.2";
+    self.by-version."graceful-fs"."2.0.3";
+  by-spec."graceful-fs"."~2.0.2" =
+    self.by-version."graceful-fs"."2.0.3";
   by-spec."gridfs-stream"."*" =
     self.by-version."gridfs-stream"."0.4.1";
   by-version."gridfs-stream"."0.4.1" = lib.makeOverridable self.buildNodePackage {
@@ -6718,14 +7443,14 @@
     passthru.names = [ "growl" ];
   };
   by-spec."grunt"."0.4.x" =
-    self.by-version."grunt"."0.4.2";
-  by-version."grunt"."0.4.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-0.4.2";
+    self.by-version."grunt"."0.4.4";
+  by-version."grunt"."0.4.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-grunt-0.4.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/grunt/-/grunt-0.4.2.tgz";
-        name = "grunt-0.4.2.tgz";
-        sha1 = "895b4f28a6102bffd41d365a65e8be2d6a293d93";
+        url = "http://registry.npmjs.org/grunt/-/grunt-0.4.4.tgz";
+        name = "grunt-0.4.4.tgz";
+        sha1 = "f37fa46e2e52e37f9a0370542a74281c09c73f53";
       })
     ];
     buildInputs =
@@ -6736,32 +7461,33 @@
       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."findup-sync"."0.1.2"
+      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.0.3"
+      self.by-version."rimraf"."2.2.6"
       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"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "grunt" ];
   };
   by-spec."grunt"."^0.4.0" =
-    self.by-version."grunt"."0.4.2";
+    self.by-version."grunt"."0.4.4";
   by-spec."grunt"."~0.4" =
-    self.by-version."grunt"."0.4.2";
+    self.by-version."grunt"."0.4.4";
   by-spec."grunt"."~0.4.0" =
-    self.by-version."grunt"."0.4.2";
+    self.by-version."grunt"."0.4.4";
   by-spec."grunt"."~0.4.1" =
-    self.by-version."grunt"."0.4.2";
+    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 {
@@ -6803,7 +7529,7 @@
       (self.nativeDeps."grunt-cli" or []);
     deps = [
       self.by-version."nopt"."1.0.10"
-      self.by-version."findup-sync"."0.1.2"
+      self.by-version."findup-sync"."0.1.3"
       self.by-version."resolve"."0.3.1"
     ];
     peerDependencies = [
@@ -6828,61 +7554,64 @@
       (self.nativeDeps."grunt-contrib-cssmin" or []);
     deps = [
       self.by-version."chalk"."0.4.0"
-      self.by-version."clean-css"."2.1.4"
+      self.by-version."clean-css"."2.1.8"
       self.by-version."maxmin"."0.1.0"
     ];
     peerDependencies = [
-      self.by-version."grunt"."0.4.2"
+      self.by-version."grunt"."0.4.4"
     ];
     passthru.names = [ "grunt-contrib-cssmin" ];
   };
   "grunt-contrib-cssmin" = self.by-version."grunt-contrib-cssmin"."0.9.0";
   by-spec."grunt-contrib-jshint"."*" =
-    self.by-version."grunt-contrib-jshint"."0.8.0";
-  by-version."grunt-contrib-jshint"."0.8.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-contrib-jshint-0.8.0";
+    self.by-version."grunt-contrib-jshint"."0.10.0";
+  by-version."grunt-contrib-jshint"."0.10.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-grunt-contrib-jshint-0.10.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-0.8.0.tgz";
-        name = "grunt-contrib-jshint-0.8.0.tgz";
-        sha1 = "6bd52325dcce1d995dbbf648030c59e1a606acda";
+        url = "http://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-0.10.0.tgz";
+        name = "grunt-contrib-jshint-0.10.0.tgz";
+        sha1 = "57ebccca87e8f327af6645d8a3c586d4845e4d81";
       })
     ];
     buildInputs =
       (self.nativeDeps."grunt-contrib-jshint" or []);
     deps = [
-      self.by-version."jshint"."2.4.4"
+      self.by-version."jshint"."2.5.0"
+      self.by-version."hooker"."0.2.3"
     ];
     peerDependencies = [
-      self.by-version."grunt"."0.4.2"
+      self.by-version."grunt"."0.4.4"
     ];
     passthru.names = [ "grunt-contrib-jshint" ];
   };
-  "grunt-contrib-jshint" = self.by-version."grunt-contrib-jshint"."0.8.0";
+  "grunt-contrib-jshint" = self.by-version."grunt-contrib-jshint"."0.10.0";
   by-spec."grunt-contrib-less"."*" =
-    self.by-version."grunt-contrib-less"."0.10.0";
-  by-version."grunt-contrib-less"."0.10.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-contrib-less-0.10.0";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-0.10.0.tgz";
-        name = "grunt-contrib-less-0.10.0.tgz";
-        sha1 = "542bf636ffb35f6e14c2e931855c1151b4a291b3";
+        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";
       })
     ];
     buildInputs =
       (self.nativeDeps."grunt-contrib-less" or []);
     deps = [
       self.by-version."less"."1.7.0"
-      self.by-version."grunt-lib-contrib"."0.6.1"
       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"
     ];
     peerDependencies = [
-      self.by-version."grunt"."0.4.2"
+      self.by-version."grunt"."0.4.4"
     ];
     passthru.names = [ "grunt-contrib-less" ];
   };
-  "grunt-contrib-less" = self.by-version."grunt-contrib-less"."0.10.0";
+  "grunt-contrib-less" = self.by-version."grunt-contrib-less"."0.11.0";
   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 {
@@ -6900,7 +7629,7 @@
       self.by-version."requirejs"."2.1.11"
     ];
     peerDependencies = [
-      self.by-version."grunt"."0.4.2"
+      self.by-version."grunt"."0.4.4"
     ];
     passthru.names = [ "grunt-contrib-requirejs" ];
   };
@@ -6919,58 +7648,64 @@
     buildInputs =
       (self.nativeDeps."grunt-contrib-uglify" or []);
     deps = [
-      self.by-version."uglify-js"."2.4.12"
+      self.by-version."uglify-js"."2.4.13"
       self.by-version."chalk"."0.4.0"
       self.by-version."maxmin"."0.1.0"
     ];
     peerDependencies = [
-      self.by-version."grunt"."0.4.2"
+      self.by-version."grunt"."0.4.4"
     ];
     passthru.names = [ "grunt-contrib-uglify" ];
   };
   "grunt-contrib-uglify" = self.by-version."grunt-contrib-uglify"."0.4.0";
   by-spec."grunt-karma"."*" =
-    self.by-version."grunt-karma"."0.7.2";
-  by-version."grunt-karma"."0.7.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-karma-0.7.2";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/grunt-karma/-/grunt-karma-0.7.2.tgz";
-        name = "grunt-karma-0.7.2.tgz";
-        sha1 = "1d041d9833671c2bca671cd66bd874c96b2a631e";
+        url = "http://registry.npmjs.org/grunt-karma/-/grunt-karma-0.8.2.tgz";
+        name = "grunt-karma-0.8.2.tgz";
+        sha1 = "0f422d357e4556fb96ab68c6d9a2be46908f1c84";
       })
     ];
     buildInputs =
       (self.nativeDeps."grunt-karma" or []);
     deps = [
-      self.by-version."optimist"."0.6.1"
+      self.by-version."lodash"."2.4.1"
     ];
     peerDependencies = [
-      self.by-version."grunt"."0.4.2"
-      self.by-version."karma"."0.11.14"
+      self.by-version."grunt"."0.4.4"
+      self.by-version."karma"."0.12.9"
     ];
     passthru.names = [ "grunt-karma" ];
   };
-  "grunt-karma" = self.by-version."grunt-karma"."0.7.2";
-  by-spec."grunt-lib-contrib"."~0.6.1" =
-    self.by-version."grunt-lib-contrib"."0.6.1";
-  by-version."grunt-lib-contrib"."0.6.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-grunt-lib-contrib-0.6.1";
+  "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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/grunt-lib-contrib/-/grunt-lib-contrib-0.6.1.tgz";
-        name = "grunt-lib-contrib-0.6.1.tgz";
-        sha1 = "3f56adb7da06e814795ee2415b0ebe5fb8903ebb";
+        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";
       })
     ];
     buildInputs =
-      (self.nativeDeps."grunt-lib-contrib" or []);
+      (self.nativeDeps."grunt-legacy-util" or []);
     deps = [
-      self.by-version."zlib-browserify"."0.0.1"
+      self.by-version."hooker"."0.2.3"
+      self.by-version."async"."0.1.22"
+      self.by-version."lodash"."0.9.2"
+      self.by-version."exit"."0.1.2"
+      self.by-version."underscore.string"."2.2.1"
+      self.by-version."getobject"."0.1.0"
+      self.by-version."which"."1.0.5"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "grunt-lib-contrib" ];
+    passthru.names = [ "grunt-legacy-util" ];
   };
   by-spec."grunt-sed"."*" =
     self.by-version."grunt-sed"."0.1.1";
@@ -6989,7 +7724,7 @@
       self.by-version."replace"."0.2.9"
     ];
     peerDependencies = [
-      self.by-version."grunt"."0.4.2"
+      self.by-version."grunt"."0.4.4"
     ];
     passthru.names = [ "grunt-sed" ];
   };
@@ -7009,10 +7744,10 @@
       (self.nativeDeps."guifi-earth" or []);
     deps = [
       self.by-version."coffee-script"."1.7.1"
-      self.by-version."jade"."1.3.0"
-      self.by-version."q"."1.0.0"
-      self.by-version."xml2js"."0.4.1"
-      self.by-version."msgpack"."0.2.2"
+      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"
     ];
     peerDependencies = [
     ];
@@ -7020,20 +7755,20 @@
   };
   "guifi-earth" = self.by-version."guifi-earth"."0.2.1";
   by-spec."gzip-size"."^0.1.0" =
-    self.by-version."gzip-size"."0.1.0";
-  by-version."gzip-size"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "gzip-size-0.1.0";
+    self.by-version."gzip-size"."0.1.1";
+  by-version."gzip-size"."0.1.1" = lib.makeOverridable self.buildNodePackage {
+    name = "gzip-size-0.1.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/gzip-size/-/gzip-size-0.1.0.tgz";
-        name = "gzip-size-0.1.0.tgz";
-        sha1 = "2beaecdaf4917bd151fe9a9d43ae199392d6c32a";
+        url = "http://registry.npmjs.org/gzip-size/-/gzip-size-0.1.1.tgz";
+        name = "gzip-size-0.1.1.tgz";
+        sha1 = "ae33483b6fc8224e8342296de108ef93757f76e0";
       })
     ];
     buildInputs =
       (self.nativeDeps."gzip-size" or []);
     deps = [
-      self.by-version."concat-stream"."1.4.1"
+      self.by-version."concat-stream"."1.4.5"
       self.by-version."zlib-browserify"."0.0.3"
     ];
     peerDependencies = [
@@ -7061,28 +7796,30 @@
     passthru.names = [ "gzippo" ];
   };
   "gzippo" = self.by-version."gzippo"."0.2.0";
-  by-spec."handlebars"."1.0.11" =
-    self.by-version."handlebars"."1.0.11";
-  by-version."handlebars"."1.0.11" = lib.makeOverridable self.buildNodePackage {
-    name = "handlebars-1.0.11";
+  by-spec."handlebars"."1.3.0" =
+    self.by-version."handlebars"."1.3.0";
+  by-version."handlebars"."1.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "handlebars-1.3.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/handlebars/-/handlebars-1.0.11.tgz";
-        name = "handlebars-1.0.11.tgz";
-        sha1 = "28b8af8b1f3658ef377e621e0d6b07078fc450a9";
+        url = "http://registry.npmjs.org/handlebars/-/handlebars-1.3.0.tgz";
+        name = "handlebars-1.3.0.tgz";
+        sha1 = "9e9b130a93e389491322d975cf3ec1818c37ce34";
       })
     ];
     buildInputs =
       (self.nativeDeps."handlebars" or []);
     deps = [
       self.by-version."optimist"."0.3.7"
-      self.by-version."uglify-js"."1.2.6"
+      self.by-version."uglify-js"."2.3.6"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "handlebars" ];
   };
-  by-spec."handlebars"."1.0.x" =
+  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";
@@ -7103,38 +7840,17 @@
     ];
     passthru.names = [ "handlebars" ];
   };
-  by-spec."handlebars"."1.3.x" =
+  by-spec."handlebars"."~1.3.0" =
     self.by-version."handlebars"."1.3.0";
-  by-version."handlebars"."1.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "handlebars-1.3.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/handlebars/-/handlebars-1.3.0.tgz";
-        name = "handlebars-1.3.0.tgz";
-        sha1 = "9e9b130a93e389491322d975cf3ec1818c37ce34";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."handlebars" or []);
-    deps = [
-      self.by-version."optimist"."0.3.7"
-      self.by-version."uglify-js"."2.3.6"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "handlebars" ];
-  };
-  by-spec."handlebars"."~1.0.11" =
-    self.by-version."handlebars"."1.0.12";
   by-spec."has-color"."~0.1.0" =
-    self.by-version."has-color"."0.1.4";
-  by-version."has-color"."0.1.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-has-color-0.1.4";
+    self.by-version."has-color"."0.1.6";
+  by-version."has-color"."0.1.6" = lib.makeOverridable self.buildNodePackage {
+    name = "node-has-color-0.1.6";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/has-color/-/has-color-0.1.4.tgz";
-        name = "has-color-0.1.4.tgz";
-        sha1 = "d1dadeea5b9e8b446bf08603532333710c95a290";
+        url = "http://registry.npmjs.org/has-color/-/has-color-0.1.6.tgz";
+        name = "has-color-0.1.6.tgz";
+        sha1 = "a77443bddb036c6df06e04a4493ce9f23533731b";
       })
     ];
     buildInputs =
@@ -7273,20 +7989,19 @@
     passthru.names = [ "he" ];
   };
   by-spec."hipache"."*" =
-    self.by-version."hipache"."0.2.4";
-  by-version."hipache"."0.2.4" = lib.makeOverridable self.buildNodePackage {
-    name = "hipache-0.2.4";
+    self.by-version."hipache"."0.2.9";
+  by-version."hipache"."0.2.9" = lib.makeOverridable self.buildNodePackage {
+    name = "hipache-0.2.9";
     src = [
       (self.patchSource fetchurl {
-        url = "http://registry.npmjs.org/hipache/-/hipache-0.2.4.tgz";
-        name = "hipache-0.2.4.tgz";
-        sha1 = "1d6a06bf88cac084b5fcd01959392c8b4889ec65";
+        url = "http://registry.npmjs.org/hipache/-/hipache-0.2.9.tgz";
+        name = "hipache-0.2.9.tgz";
+        sha1 = "48a7fa7170be328b264d6e413bfb76d130e03b2a";
       })
     ];
     buildInputs =
       (self.nativeDeps."hipache" or []);
     deps = [
-      self.by-version."read-installed"."0.2.2"
       self.by-version."http-proxy"."0.10.3"
       self.by-version."redis"."0.8.6"
       self.by-version."lru-cache"."2.2.4"
@@ -7296,7 +8011,7 @@
     ];
     passthru.names = [ "hipache" ];
   };
-  "hipache" = self.by-version."hipache"."0.2.4";
+  "hipache" = self.by-version."hipache"."0.2.9";
   by-spec."hiredis"."*" =
     self.by-version."hiredis"."0.1.16";
   by-version."hiredis"."0.1.16" = lib.makeOverridable self.buildNodePackage {
@@ -7311,7 +8026,7 @@
     buildInputs =
       (self.nativeDeps."hiredis" or []);
     deps = [
-      self.by-version."bindings"."1.1.1"
+      self.by-version."bindings"."1.2.0"
     ];
     peerDependencies = [
     ];
@@ -7456,7 +8171,7 @@
       self.by-version."domhandler"."2.2.0"
       self.by-version."domutils"."1.3.0"
       self.by-version."domelementtype"."1.1.1"
-      self.by-version."readable-stream"."1.1.11"
+      self.by-version."readable-stream"."1.1.12"
     ];
     peerDependencies = [
     ];
@@ -7497,20 +8212,20 @@
     buildInputs =
       (self.nativeDeps."http-browserify" or []);
     deps = [
-      self.by-version."Base64"."0.2.0"
+      self.by-version."Base64"."0.2.1"
       self.by-version."inherits"."2.0.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "http-browserify" ];
   };
-  by-spec."http-proxy"."git://github.com/samalba/node-http-proxy" =
+  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";
     src = [
       (fetchgit {
-        url = "git://github.com/samalba/node-http-proxy";
+        url = "https://github.com/samalba/node-http-proxy.git";
         rev = "8e277989d2d05edaee65e524fb4fba9142c52aa5";
         sha256 = "8ce0e05c73e517eefc6d9bf8b61349351aee119c2fb60763f23170607cc0e41f";
       })
@@ -7672,27 +8387,28 @@
     passthru.names = [ "i18next" ];
   };
   "i18next" = self.by-version."i18next"."1.7.1";
-  by-spec."ibrik"."~1.0.1" =
-    self.by-version."ibrik"."1.0.1";
-  by-version."ibrik"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "ibrik-1.0.1";
+  by-spec."ibrik"."~1.1.1" =
+    self.by-version."ibrik"."1.1.1";
+  by-version."ibrik"."1.1.1" = lib.makeOverridable self.buildNodePackage {
+    name = "ibrik-1.1.1";
     src = [
-      (self.patchSource fetchurl {
-        url = "http://registry.npmjs.org/ibrik/-/ibrik-1.0.1.tgz";
-        name = "ibrik-1.0.1.tgz";
-        sha1 = "ba9c0cf9302c51a812dc4a92038b3de579c0aefb";
+      (fetchurl {
+        url = "http://registry.npmjs.org/ibrik/-/ibrik-1.1.1.tgz";
+        name = "ibrik-1.1.1.tgz";
+        sha1 = "c9bd04c5137e967a2f0dbc9e4eb31dbfa04801b5";
       })
     ];
     buildInputs =
       (self.nativeDeps."ibrik" or []);
     deps = [
-      self.by-version."coffee-script-redux"."2.0.0-beta4"
-      self.by-version."istanbul"."0.2.4"
-      self.by-version."optimist"."0.6.1"
-      self.by-version."escodegen"."1.2.0"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."which"."1.0.5"
+      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."escodegen"."1.1.0"
+      self.by-version."which"."1.0.5"
+      self.by-version."mkdirp"."0.3.5"
+      self.by-version."optimist"."0.6.1"
     ];
     peerDependencies = [
     ];
@@ -7799,6 +8515,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" =
@@ -7828,15 +8546,15 @@
     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.14" =
-    self.by-version."init-package-json"."0.0.14";
-  by-version."init-package-json"."0.0.14" = lib.makeOverridable self.buildNodePackage {
-    name = "node-init-package-json-0.0.14";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/init-package-json/-/init-package-json-0.0.14.tgz";
-        name = "init-package-json-0.0.14.tgz";
-        sha1 = "bd5f7b2d73b54957388cca3ce61190340c8a05b7";
+        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";
       })
     ];
     buildInputs =
@@ -7844,7 +8562,7 @@
     deps = [
       self.by-version."promzard"."0.2.1"
       self.by-version."read"."1.0.5"
-      self.by-version."read-package-json"."1.1.7"
+      self.by-version."read-package-json"."1.1.8"
       self.by-version."semver"."2.2.1"
       self.by-version."glob"."3.2.9"
     ];
@@ -7897,8 +8615,6 @@
   };
   by-spec."inquirer"."~0.3.1" =
     self.by-version."inquirer"."0.3.5";
-  by-spec."inquirer"."~0.3.4" =
-    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 {
@@ -7924,25 +8640,27 @@
     ];
     passthru.names = [ "inquirer" ];
   };
-  by-spec."insert-module-globals"."~3.2.0" =
-    self.by-version."insert-module-globals"."3.2.0";
-  by-version."insert-module-globals"."3.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "insert-module-globals-3.2.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/insert-module-globals/-/insert-module-globals-3.2.0.tgz";
-        name = "insert-module-globals-3.2.0.tgz";
-        sha1 = "5692a834207adebb3effa9f9def7cf314890a63b";
+        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";
       })
     ];
     buildInputs =
       (self.nativeDeps."insert-module-globals" or []);
     deps = [
-      self.by-version."lexical-scope"."0.1.0"
-      self.by-version."process"."0.5.2"
+      self.by-version."JSONStream"."0.7.2"
+      self.by-version."concat-stream"."1.4.5"
+      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."JSONStream"."0.7.1"
-      self.by-version."concat-stream"."1.4.1"
     ];
     peerDependencies = [
     ];
@@ -7964,7 +8682,7 @@
     deps = [
       self.by-version."chalk"."0.4.0"
       self.by-version."request"."2.27.0"
-      self.by-version."configstore"."0.2.2"
+      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"
@@ -8008,12 +8726,12 @@
       (self.nativeDeps."ironhorse" or []);
     deps = [
       self.by-version."underscore"."1.5.2"
-      self.by-version."winston"."0.7.2"
+      self.by-version."winston"."0.7.3"
       self.by-version."nconf"."0.6.9"
       self.by-version."fs-walk"."0.0.1"
-      self.by-version."async"."0.2.10"
-      self.by-version."express"."4.0.0-rc2"
-      self.by-version."jade"."1.3.0"
+      self.by-version."async"."0.7.0"
+      self.by-version."express"."4.0.0"
+      self.by-version."jade"."1.3.1"
       self.by-version."passport"."0.2.0"
       self.by-version."passport-http"."0.2.2"
       self.by-version."js-yaml"."3.0.2"
@@ -8048,6 +8766,44 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/is-root/-/is-root-0.1.0.tgz";
+        name = "is-root-0.1.0.tgz";
+        sha1 = "825e394ab593df2d73c5d0092fce507270b53dcb";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."is-root" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "is-root" ];
+  };
+  by-spec."isarray"."0.0.1" =
+    self.by-version."isarray"."0.0.1";
+  by-version."isarray"."0.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-isarray-0.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
+        name = "isarray-0.0.1.tgz";
+        sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."isarray" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    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 {
@@ -8089,76 +8845,50 @@
     passthru.names = [ "isbinaryfile" ];
   };
   by-spec."istanbul"."*" =
-    self.by-version."istanbul"."0.2.4";
-  by-version."istanbul"."0.2.4" = lib.makeOverridable self.buildNodePackage {
-    name = "istanbul-0.2.4";
+    self.by-version."istanbul"."0.2.7";
+  by-version."istanbul"."0.2.7" = lib.makeOverridable self.buildNodePackage {
+    name = "istanbul-0.2.7";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/istanbul/-/istanbul-0.2.4.tgz";
-        name = "istanbul-0.2.4.tgz";
-        sha1 = "faaaa400f2cf652c3dc8b3d9484b44a5528e3a04";
+        url = "http://registry.npmjs.org/istanbul/-/istanbul-0.2.7.tgz";
+        name = "istanbul-0.2.7.tgz";
+        sha1 = "bb482e1d06a0fea00993a10b2ee266fc740642bc";
       })
     ];
     buildInputs =
       (self.nativeDeps."istanbul" or []);
     deps = [
-      self.by-version."esprima"."1.0.4"
-      self.by-version."escodegen"."1.0.1"
+      self.by-version."esprima"."1.1.1"
+      self.by-version."escodegen"."1.3.2"
       self.by-version."handlebars"."1.3.0"
       self.by-version."mkdirp"."0.3.5"
-      self.by-version."nopt"."2.1.2"
+      self.by-version."nopt"."2.2.0"
       self.by-version."fileset"."0.1.5"
       self.by-version."which"."1.0.5"
       self.by-version."async"."0.2.10"
       self.by-version."abbrev"."1.0.4"
       self.by-version."wordwrap"."0.0.2"
-      self.by-version."resolve"."0.6.1"
+      self.by-version."resolve"."0.6.2"
       self.by-version."js-yaml"."3.0.2"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "istanbul" ];
   };
-  "istanbul" = self.by-version."istanbul"."0.2.4";
-  by-spec."istanbul"."~0.1.45" =
-    self.by-version."istanbul"."0.1.46";
-  by-version."istanbul"."0.1.46" = lib.makeOverridable self.buildNodePackage {
-    name = "istanbul-0.1.46";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/istanbul/-/istanbul-0.1.46.tgz";
-        name = "istanbul-0.1.46.tgz";
-        sha1 = "cefeb1c787d125a6db23bd0f63b0eb9390b0b40d";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."istanbul" or []);
-    deps = [
-      self.by-version."esprima"."1.0.4"
-      self.by-version."escodegen"."0.0.23"
-      self.by-version."handlebars"."1.0.12"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."nopt"."2.1.2"
-      self.by-version."fileset"."0.1.5"
-      self.by-version."which"."1.0.5"
-      self.by-version."async"."0.2.10"
-      self.by-version."abbrev"."1.0.4"
-      self.by-version."wordwrap"."0.0.2"
-      self.by-version."resolve"."0.5.1"
-    ];
-    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."jade"."*" =
-    self.by-version."jade"."1.3.0";
-  by-version."jade"."1.3.0" = lib.makeOverridable self.buildNodePackage {
-    name = "jade-1.3.0";
+    self.by-version."jade"."1.3.1";
+  by-version."jade"."1.3.1" = lib.makeOverridable self.buildNodePackage {
+    name = "jade-1.3.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/jade/-/jade-1.3.0.tgz";
-        name = "jade-1.3.0.tgz";
-        sha1 = "776cae93f1ad5af6b61eff2340fcdc19a3225d48";
+        url = "http://registry.npmjs.org/jade/-/jade-1.3.1.tgz";
+        name = "jade-1.3.1.tgz";
+        sha1 = "7483d848b8714dc50a40da98b0409790b374216b";
       })
     ];
     buildInputs =
@@ -8176,7 +8906,7 @@
     ];
     passthru.names = [ "jade" ];
   };
-  "jade" = self.by-version."jade"."1.3.0";
+  "jade" = self.by-version."jade"."1.3.1";
   by-spec."jade"."0.26.3" =
     self.by-version."jade"."0.26.3";
   by-version."jade"."0.26.3" = lib.makeOverridable self.buildNodePackage {
@@ -8246,7 +8976,7 @@
     passthru.names = [ "jade" ];
   };
   by-spec."jade".">= 0.0.1" =
-    self.by-version."jade"."1.3.0";
+    self.by-version."jade"."1.3.1";
   by-spec."jade"."~0.35.0" =
     self.by-version."jade"."0.35.0";
   by-version."jade"."0.35.0" = lib.makeOverridable self.buildNodePackage {
@@ -8274,14 +9004,14 @@
     passthru.names = [ "jade" ];
   };
   by-spec."jayschema"."*" =
-    self.by-version."jayschema"."0.2.5";
-  by-version."jayschema"."0.2.5" = lib.makeOverridable self.buildNodePackage {
-    name = "jayschema-0.2.5";
+    self.by-version."jayschema"."0.2.6";
+  by-version."jayschema"."0.2.6" = lib.makeOverridable self.buildNodePackage {
+    name = "jayschema-0.2.6";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/jayschema/-/jayschema-0.2.5.tgz";
-        name = "jayschema-0.2.5.tgz";
-        sha1 = "314e87687eac703a0a2557d77dbb3f175a0e7ada";
+        url = "http://registry.npmjs.org/jayschema/-/jayschema-0.2.6.tgz";
+        name = "jayschema-0.2.6.tgz";
+        sha1 = "c160e767cef66babda76b0fc34a06d4adc44965d";
       })
     ];
     buildInputs =
@@ -8293,26 +9023,7 @@
     ];
     passthru.names = [ "jayschema" ];
   };
-  "jayschema" = self.by-version."jayschema"."0.2.5";
-  by-spec."jedediah"."~0.1.0" =
-    self.by-version."jedediah"."0.1.1";
-  by-version."jedediah"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-jedediah-0.1.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/jedediah/-/jedediah-0.1.1.tgz";
-        name = "jedediah-0.1.1.tgz";
-        sha1 = "51f33021ebec6847d844cb53bbc086ee38877f84";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."jedediah" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "jedediah" ];
-  };
+  "jayschema" = self.by-version."jayschema"."0.2.6";
   by-spec."js-yaml"."*" =
     self.by-version."js-yaml"."3.0.2";
   by-version."js-yaml"."3.0.2" = lib.makeOverridable self.buildNodePackage {
@@ -8419,27 +9130,6 @@
     ];
     passthru.names = [ "js-yaml" ];
   };
-  by-spec."js-yaml"."~2.1.0" =
-    self.by-version."js-yaml"."2.1.3";
-  by-version."js-yaml"."2.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "js-yaml-2.1.3";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/js-yaml/-/js-yaml-2.1.3.tgz";
-        name = "js-yaml-2.1.3.tgz";
-        sha1 = "0ffb5617be55525878063d7a16aee7fdd282e84c";
-      })
-    ];
-    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."js-yaml"."~3.0.1" =
     self.by-version."js-yaml"."3.0.2";
   by-spec."jsesc"."0.4.3" =
@@ -8464,14 +9154,14 @@
   by-spec."jsesc"."~0.4.3" =
     self.by-version."jsesc"."0.4.3";
   by-spec."jshint"."*" =
-    self.by-version."jshint"."2.4.4";
-  by-version."jshint"."2.4.4" = lib.makeOverridable self.buildNodePackage {
-    name = "jshint-2.4.4";
+    self.by-version."jshint"."2.5.0";
+  by-version."jshint"."2.5.0" = lib.makeOverridable self.buildNodePackage {
+    name = "jshint-2.5.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/jshint/-/jshint-2.4.4.tgz";
-        name = "jshint-2.4.4.tgz";
-        sha1 = "4162238314c649f987752651e8e064e30a68706e";
+        url = "http://registry.npmjs.org/jshint/-/jshint-2.5.0.tgz";
+        name = "jshint-2.5.0.tgz";
+        sha1 = "82fd1a235ffce75fad1b40b2a38bef47beac8c54";
       })
     ];
     buildInputs =
@@ -8484,14 +9174,15 @@
       self.by-version."htmlparser2"."3.3.0"
       self.by-version."console-browserify"."0.1.6"
       self.by-version."exit"."0.1.2"
+      self.by-version."strip-json-comments"."0.1.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "jshint" ];
   };
-  "jshint" = self.by-version."jshint"."2.4.4";
-  by-spec."jshint"."~2.4.0" =
-    self.by-version."jshint"."2.4.4";
+  "jshint" = self.by-version."jshint"."2.5.0";
+  by-spec."jshint"."~2.5.0" =
+    self.by-version."jshint"."2.5.0";
   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 {
@@ -8607,14 +9298,14 @@
     passthru.names = [ "jsonparse" ];
   };
   by-spec."jsontool"."*" =
-    self.by-version."jsontool"."7.0.1";
-  by-version."jsontool"."7.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "jsontool-7.0.1";
+    self.by-version."jsontool"."7.0.2";
+  by-version."jsontool"."7.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "jsontool-7.0.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/jsontool/-/jsontool-7.0.1.tgz";
-        name = "jsontool-7.0.1.tgz";
-        sha1 = "d5a705e46e305d7377ede769707c072e6d957977";
+        url = "http://registry.npmjs.org/jsontool/-/jsontool-7.0.2.tgz";
+        name = "jsontool-7.0.2.tgz";
+        sha1 = "e29d3d1b0766ba4e179a18a96578b904dca43207";
       })
     ];
     buildInputs =
@@ -8625,7 +9316,7 @@
     ];
     passthru.names = [ "jsontool" ];
   };
-  "jsontool" = self.by-version."jsontool"."7.0.1";
+  "jsontool" = self.by-version."jsontool"."7.0.2";
   by-spec."jsprim"."0.3.0" =
     self.by-version."jsprim"."0.3.0";
   by-version."jsprim"."0.3.0" = lib.makeOverridable self.buildNodePackage {
@@ -8648,6 +9339,28 @@
     ];
     passthru.names = [ "jsprim" ];
   };
+  by-spec."jstransform"."~3.0.0" =
+    self.by-version."jstransform"."3.0.0";
+  by-version."jstransform"."3.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-jstransform-3.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/jstransform/-/jstransform-3.0.0.tgz";
+        name = "jstransform-3.0.0.tgz";
+        sha1 = "a2591ab6cee8d97bf3be830dbfa2313b87cd640b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."jstransform" or []);
+    deps = [
+      self.by-version."base62"."0.1.1"
+      self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb"
+      self.by-version."source-map"."0.1.31"
+    ];
+    peerDependencies = [
+    ];
+    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 {
@@ -8668,14 +9381,14 @@
     passthru.names = [ "junk" ];
   };
   by-spec."karma"."*" =
-    self.by-version."karma"."0.11.14";
-  by-version."karma"."0.11.14" = lib.makeOverridable self.buildNodePackage {
-    name = "karma-0.11.14";
+    self.by-version."karma"."0.12.9";
+  by-version."karma"."0.12.9" = lib.makeOverridable self.buildNodePackage {
+    name = "karma-0.12.9";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma/-/karma-0.11.14.tgz";
-        name = "karma-0.11.14.tgz";
-        sha1 = "2f6f81611bfe62e588d4e1d63c14f3928971a77c";
+        url = "http://registry.npmjs.org/karma/-/karma-0.12.9.tgz";
+        name = "karma-0.12.9.tgz";
+        sha1 = "9431735e50fcbd8ca04963a0e4da0b6550b41998";
       })
     ];
     buildInputs =
@@ -8683,20 +9396,19 @@
     deps = [
       self.by-version."di"."0.0.1"
       self.by-version."socket.io"."0.9.16"
-      self.by-version."chokidar"."0.8.1"
+      self.by-version."chokidar"."0.8.2"
       self.by-version."glob"."3.2.9"
       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."coffee-script"."1.6.3"
       self.by-version."rimraf"."2.2.6"
       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.12"
-      self.by-version."useragent"."2.0.7"
-      self.by-version."graceful-fs"."2.0.2"
+      self.by-version."log4js"."0.6.13"
+      self.by-version."useragent"."2.0.8"
+      self.by-version."graceful-fs"."2.0.3"
       self.by-version."connect"."2.12.0"
       self.by-version."source-map"."0.1.33"
     ];
@@ -8704,24 +9416,24 @@
     ];
     passthru.names = [ "karma" ];
   };
-  "karma" = self.by-version."karma"."0.11.14";
+  "karma" = self.by-version."karma"."0.12.9";
   by-spec."karma".">=0.11.11" =
-    self.by-version."karma"."0.11.14";
+    self.by-version."karma"."0.12.9";
   by-spec."karma".">=0.9" =
-    self.by-version."karma"."0.11.14";
+    self.by-version."karma"."0.12.9";
   by-spec."karma".">=0.9.3" =
-    self.by-version."karma"."0.11.14";
-  by-spec."karma"."~0.11.0" =
-    self.by-version."karma"."0.11.14";
+    self.by-version."karma"."0.12.9";
+  by-spec."karma"."~0.12.0" =
+    self.by-version."karma"."0.12.9";
   by-spec."karma-chrome-launcher"."*" =
-    self.by-version."karma-chrome-launcher"."0.1.2";
-  by-version."karma-chrome-launcher"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-karma-chrome-launcher-0.1.2";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-0.1.2.tgz";
-        name = "karma-chrome-launcher-0.1.2.tgz";
-        sha1 = "f7154d03be01f4c246368d56d43d7232e14ccce6";
+        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";
       })
     ];
     buildInputs =
@@ -8729,44 +9441,44 @@
     deps = [
     ];
     peerDependencies = [
-      self.by-version."karma"."0.11.14"
+      self.by-version."karma"."0.12.9"
     ];
     passthru.names = [ "karma-chrome-launcher" ];
   };
-  "karma-chrome-launcher" = self.by-version."karma-chrome-launcher"."0.1.2";
+  "karma-chrome-launcher" = self.by-version."karma-chrome-launcher"."0.1.3";
   by-spec."karma-coverage"."*" =
-    self.by-version."karma-coverage"."0.2.0";
-  by-version."karma-coverage"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-karma-coverage-0.2.0";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-coverage/-/karma-coverage-0.2.0.tgz";
-        name = "karma-coverage-0.2.0.tgz";
-        sha1 = "d8edc429c35ab7c68fa90a5cd2f2ecb3aa31fde8";
+        url = "http://registry.npmjs.org/karma-coverage/-/karma-coverage-0.2.1.tgz";
+        name = "karma-coverage-0.2.1.tgz";
+        sha1 = "3b1bce268711a631e008e108930906eceae0a623";
       })
     ];
     buildInputs =
       (self.nativeDeps."karma-coverage" or []);
     deps = [
-      self.by-version."istanbul"."0.1.46"
-      self.by-version."ibrik"."1.0.1"
+      self.by-version."istanbul"."0.2.7"
+      self.by-version."ibrik"."1.1.1"
       self.by-version."dateformat"."1.0.7-1.2.3"
     ];
     peerDependencies = [
-      self.by-version."karma"."0.11.14"
+      self.by-version."karma"."0.12.9"
     ];
     passthru.names = [ "karma-coverage" ];
   };
-  "karma-coverage" = self.by-version."karma-coverage"."0.2.0";
+  "karma-coverage" = self.by-version."karma-coverage"."0.2.1";
   by-spec."karma-junit-reporter"."*" =
-    self.by-version."karma-junit-reporter"."0.2.1";
-  by-version."karma-junit-reporter"."0.2.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-karma-junit-reporter-0.2.1";
+    self.by-version."karma-junit-reporter"."0.2.2";
+  by-version."karma-junit-reporter"."0.2.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-karma-junit-reporter-0.2.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-0.2.1.tgz";
-        name = "karma-junit-reporter-0.2.1.tgz";
-        sha1 = "ae125962683a0d1286dc7768fbf66a8f02e448fc";
+        url = "http://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-0.2.2.tgz";
+        name = "karma-junit-reporter-0.2.2.tgz";
+        sha1 = "4cdd4e21affd3e090e7ba73e3c766ea9e13c45ba";
       })
     ];
     buildInputs =
@@ -8775,20 +9487,20 @@
       self.by-version."xmlbuilder"."0.4.2"
     ];
     peerDependencies = [
-      self.by-version."karma"."0.11.14"
+      self.by-version."karma"."0.12.9"
     ];
     passthru.names = [ "karma-junit-reporter" ];
   };
-  "karma-junit-reporter" = self.by-version."karma-junit-reporter"."0.2.1";
+  "karma-junit-reporter" = self.by-version."karma-junit-reporter"."0.2.2";
   by-spec."karma-mocha"."*" =
-    self.by-version."karma-mocha"."0.1.1";
-  by-version."karma-mocha"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-karma-mocha-0.1.1";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-mocha/-/karma-mocha-0.1.1.tgz";
-        name = "karma-mocha-0.1.1.tgz";
-        sha1 = "5edddb3e2d2c6fd47e9ad26f0af1595fe852c756";
+        url = "http://registry.npmjs.org/karma-mocha/-/karma-mocha-0.1.3.tgz";
+        name = "karma-mocha-0.1.3.tgz";
+        sha1 = "396e44be8ddb4abf28bfca0387924c3aeddbce1a";
       })
     ];
     buildInputs =
@@ -8796,12 +9508,12 @@
     deps = [
     ];
     peerDependencies = [
-      self.by-version."karma"."0.11.14"
-      self.by-version."mocha"."1.17.1"
+      self.by-version."karma"."0.12.9"
+      self.by-version."mocha"."1.18.2"
     ];
     passthru.names = [ "karma-mocha" ];
   };
-  "karma-mocha" = self.by-version."karma-mocha"."0.1.1";
+  "karma-mocha" = self.by-version."karma-mocha"."0.1.3";
   by-spec."karma-requirejs"."*" =
     self.by-version."karma-requirejs"."0.2.1";
   by-version."karma-requirejs"."0.2.1" = lib.makeOverridable self.buildNodePackage {
@@ -8818,37 +9530,37 @@
     deps = [
     ];
     peerDependencies = [
-      self.by-version."karma"."0.11.14"
+      self.by-version."karma"."0.12.9"
       self.by-version."requirejs"."2.1.11"
     ];
     passthru.names = [ "karma-requirejs" ];
   };
   "karma-requirejs" = self.by-version."karma-requirejs"."0.2.1";
   by-spec."karma-sauce-launcher"."*" =
-    self.by-version."karma-sauce-launcher"."0.2.0";
-  by-version."karma-sauce-launcher"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-karma-sauce-launcher-0.2.0";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/karma-sauce-launcher/-/karma-sauce-launcher-0.2.0.tgz";
-        name = "karma-sauce-launcher-0.2.0.tgz";
-        sha1 = "0994da49a1774be876ff1b107fd47e8768e3ead0";
+        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";
       })
     ];
     buildInputs =
       (self.nativeDeps."karma-sauce-launcher" or []);
     deps = [
-      self.by-version."wd"."0.2.11"
-      self.by-version."sauce-connect-launcher"."0.2.2"
+      self.by-version."wd"."0.2.17"
+      self.by-version."sauce-connect-launcher"."0.4.2"
       self.by-version."q"."0.9.7"
       self.by-version."saucelabs"."0.1.1"
     ];
     peerDependencies = [
-      self.by-version."karma"."0.11.14"
+      self.by-version."karma"."0.12.9"
     ];
     passthru.names = [ "karma-sauce-launcher" ];
   };
-  "karma-sauce-launcher" = self.by-version."karma-sauce-launcher"."0.2.0";
+  "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 {
@@ -8967,15 +9679,15 @@
   };
   by-spec."keypress"."~0.1.0" =
     self.by-version."keypress"."0.1.0";
-  by-spec."knockout"."~3.0.0" =
-    self.by-version."knockout"."3.0.0";
-  by-version."knockout"."3.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-knockout-3.0.0";
+  by-spec."knockout"."~3.1.0" =
+    self.by-version."knockout"."3.1.0";
+  by-version."knockout"."3.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-knockout-3.1.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/knockout/-/knockout-3.0.0.tgz";
-        name = "knockout-3.0.0.tgz";
-        sha1 = "fd8d43ee446237cde7df650f5c7dbcf68ae49a80";
+        url = "http://registry.npmjs.org/knockout/-/knockout-3.1.0.tgz";
+        name = "knockout-3.1.0.tgz";
+        sha1 = "8960ecfafa20e1d5795badfbf6256693f17b7bf5";
       })
     ];
     buildInputs =
@@ -9115,7 +9827,7 @@
     passthru.names = [ "lcov-result-merger" ];
   };
   "lcov-result-merger" = self.by-version."lcov-result-merger"."0.0.2";
-  by-spec."less"."~1.7.0" =
+  by-spec."less"."^1.7.0" =
     self.by-version."less"."1.7.0";
   by-version."less"."1.7.0" = lib.makeOverridable self.buildNodePackage {
     name = "less-1.7.0";
@@ -9132,28 +9844,30 @@
       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.4"
+      self.by-version."clean-css"."2.1.8"
       self.by-version."source-map"."0.1.33"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "less" ];
   };
-  by-spec."lexical-scope"."~0.1.0" =
-    self.by-version."lexical-scope"."0.1.0";
-  by-version."lexical-scope"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-lexical-scope-0.1.0";
+  by-spec."less"."~1.7.0" =
+    self.by-version."less"."1.7.0";
+  by-spec."lexical-scope"."~1.1.0" =
+    self.by-version."lexical-scope"."1.1.0";
+  by-version."lexical-scope"."1.1.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-lexical-scope-1.1.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/lexical-scope/-/lexical-scope-0.1.0.tgz";
-        name = "lexical-scope-0.1.0.tgz";
-        sha1 = "8f30004c80234ffac083b990079d7b267e18441b";
+        url = "http://registry.npmjs.org/lexical-scope/-/lexical-scope-1.1.0.tgz";
+        name = "lexical-scope-1.1.0.tgz";
+        sha1 = "899f36c4ec9c5af19736361aae290a6ef2af0800";
       })
     ];
     buildInputs =
       (self.nativeDeps."lexical-scope" or []);
     deps = [
-      self.by-version."astw"."0.1.0"
+      self.by-version."astw"."1.1.0"
     ];
     peerDependencies = [
     ];
@@ -9218,6 +9932,27 @@
     ];
     passthru.names = [ "lockfile" ];
   };
+  by-spec."lockfile"."~0.4.2" =
+    self.by-version."lockfile"."0.4.2";
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz";
+        name = "lodash-2.4.1.tgz";
+        sha1 = "5b7723034dda4d262e5a46fb2c58d7cc22f71420";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."lodash" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    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 {
@@ -9256,25 +9991,6 @@
     ];
     passthru.names = [ "lodash" ];
   };
-  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-1.0.1.tgz";
-        name = "lodash-1.0.1.tgz";
-        sha1 = "57945732498d92310e5bd4b1ff4f273a79e6c9fc";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."lodash" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    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 {
@@ -9355,22 +10071,24 @@
   };
   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";
+  by-spec."lodash-node"."~2.4.1" =
+    self.by-version."lodash-node"."2.4.1";
+  by-version."lodash-node"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-lodash-node-2.4.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz";
-        name = "lodash-2.4.1.tgz";
-        sha1 = "5b7723034dda4d262e5a46fb2c58d7cc22f71420";
+        url = "http://registry.npmjs.org/lodash-node/-/lodash-node-2.4.1.tgz";
+        name = "lodash-node-2.4.1.tgz";
+        sha1 = "ea82f7b100c733d1a42af76801e506105e2a80ec";
       })
     ];
     buildInputs =
-      (self.nativeDeps."lodash" or []);
+      (self.nativeDeps."lodash-node" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "lodash" ];
+    passthru.names = [ "lodash-node" ];
   };
   by-spec."lodash._isnative"."~2.4.1" =
     self.by-version."lodash._isnative"."2.4.1";
@@ -9574,14 +10292,14 @@
     passthru.names = [ "log-driver" ];
   };
   by-spec."log4js"."~0.6.3" =
-    self.by-version."log4js"."0.6.12";
-  by-version."log4js"."0.6.12" = lib.makeOverridable self.buildNodePackage {
-    name = "node-log4js-0.6.12";
+    self.by-version."log4js"."0.6.13";
+  by-version."log4js"."0.6.13" = lib.makeOverridable self.buildNodePackage {
+    name = "node-log4js-0.6.13";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/log4js/-/log4js-0.6.12.tgz";
-        name = "log4js-0.6.12.tgz";
-        sha1 = "ef806ec669ea3fc7bf5be92a95891fb67517e642";
+        url = "http://registry.npmjs.org/log4js/-/log4js-0.6.13.tgz";
+        name = "log4js-0.6.13.tgz";
+        sha1 = "42676b039cc89881e374093ae16f29a42e607234";
       })
     ];
     buildInputs =
@@ -9615,14 +10333,14 @@
     passthru.names = [ "long" ];
   };
   by-spec."longjohn"."~0.2.2" =
-    self.by-version."longjohn"."0.2.2";
-  by-version."longjohn"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-longjohn-0.2.2";
+    self.by-version."longjohn"."0.2.4";
+  by-version."longjohn"."0.2.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-longjohn-0.2.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/longjohn/-/longjohn-0.2.2.tgz";
-        name = "longjohn-0.2.2.tgz";
-        sha1 = "f1110be9407b2dfc13713cb5b57cb69ef843c4d9";
+        url = "http://registry.npmjs.org/longjohn/-/longjohn-0.2.4.tgz";
+        name = "longjohn-0.2.4.tgz";
+        sha1 = "48436a1f359e7666f678e2170ee1f43bba8f8b4c";
       })
     ];
     buildInputs =
@@ -9769,21 +10487,21 @@
     passthru.names = [ "lsmod" ];
   };
   by-spec."mailcomposer".">= 0.1.27" =
-    self.by-version."mailcomposer"."0.2.8";
-  by-version."mailcomposer"."0.2.8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mailcomposer-0.2.8";
+    self.by-version."mailcomposer"."0.2.9";
+  by-version."mailcomposer"."0.2.9" = lib.makeOverridable self.buildNodePackage {
+    name = "node-mailcomposer-0.2.9";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/mailcomposer/-/mailcomposer-0.2.8.tgz";
-        name = "mailcomposer-0.2.8.tgz";
-        sha1 = "bcb4d84aea08ea6f4c007f927c0ad214986370cc";
+        url = "http://registry.npmjs.org/mailcomposer/-/mailcomposer-0.2.9.tgz";
+        name = "mailcomposer-0.2.9.tgz";
+        sha1 = "2b6417a4fb5de8ffcaf1a27e1b024463903f908e";
       })
     ];
     buildInputs =
       (self.nativeDeps."mailcomposer" or []);
     deps = [
       self.by-version."mimelib"."0.2.14"
-      self.by-version."mime"."1.2.9"
+      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"
@@ -9793,6 +10511,26 @@
     ];
     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."maxmin"."^0.1.0" =
     self.by-version."maxmin"."0.1.0";
   by-version."maxmin"."0.1.0" = lib.makeOverridable self.buildNodePackage {
@@ -9807,7 +10545,7 @@
     buildInputs =
       (self.nativeDeps."maxmin" or []);
     deps = [
-      self.by-version."gzip-size"."0.1.0"
+      self.by-version."gzip-size"."0.1.1"
       self.by-version."pretty-bytes"."0.1.0"
       self.by-version."chalk"."0.4.0"
     ];
@@ -9865,25 +10603,6 @@
     ];
     passthru.names = [ "memoizee" ];
   };
-  by-spec."merge-descriptors"."0.0.1" =
-    self.by-version."merge-descriptors"."0.0.1";
-  by-version."merge-descriptors"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-merge-descriptors-0.0.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.1.tgz";
-        name = "merge-descriptors-0.0.1.tgz";
-        sha1 = "2ff0980c924cf81d0b5d1fb601177cb8bb56c0d0";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."merge-descriptors" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "merge-descriptors" ];
-  };
   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 {
@@ -9903,26 +10622,27 @@
     ];
     passthru.names = [ "merge-descriptors" ];
   };
-  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."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";
     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/method-override/-/method-override-1.0.0.tgz";
+        name = "method-override-1.0.0.tgz";
+        sha1 = "9e5bfbd80f3b9e043801dd3fe60bbab0f15b5f61";
       })
     ];
     buildInputs =
-      (self.nativeDeps."methods" or []);
+      (self.nativeDeps."method-override" or []);
     deps = [
+      self.by-version."methods"."0.1.0"
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "methods" ];
+    passthru.names = [ "method-override" ];
   };
-  by-spec."methods"."0.1.0" =
+  by-spec."methods"."*" =
     self.by-version."methods"."0.1.0";
   by-version."methods"."0.1.0" = lib.makeOverridable self.buildNodePackage {
     name = "node-methods-0.1.0";
@@ -9941,6 +10661,27 @@
     ];
     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";
+    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-spec."mime"."*" =
     self.by-version."mime"."1.2.11";
   by-version."mime"."1.2.11" = lib.makeOverridable self.buildNodePackage {
@@ -9960,6 +10701,8 @@
     ];
     passthru.names = [ "mime" ];
   };
+  by-spec."mime"."1.2.11" =
+    self.by-version."mime"."1.2.11";
   by-spec."mime"."1.2.4" =
     self.by-version."mime"."1.2.4";
   by-version."mime"."1.2.4" = lib.makeOverridable self.buildNodePackage {
@@ -10241,6 +10984,8 @@
     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" =
@@ -10267,14 +11012,14 @@
     passthru.names = [ "mkpath" ];
   };
   by-spec."mocha"."*" =
-    self.by-version."mocha"."1.17.1";
-  by-version."mocha"."1.17.1" = lib.makeOverridable self.buildNodePackage {
-    name = "mocha-1.17.1";
+    self.by-version."mocha"."1.18.2";
+  by-version."mocha"."1.18.2" = lib.makeOverridable self.buildNodePackage {
+    name = "mocha-1.18.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/mocha/-/mocha-1.17.1.tgz";
-        name = "mocha-1.17.1.tgz";
-        sha1 = "7f7671d68526d074b7bae660c9099f87e0ea1ccb";
+        url = "http://registry.npmjs.org/mocha/-/mocha-1.18.2.tgz";
+        name = "mocha-1.18.2.tgz";
+        sha1 = "800848f8f7884c61eefcfa2a27304ba9e5446d0b";
       })
     ];
     buildInputs =
@@ -10284,7 +11029,7 @@
       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.7.4"
+      self.by-version."debug"."0.8.1"
       self.by-version."mkdirp"."0.3.5"
       self.by-version."glob"."3.2.3"
     ];
@@ -10292,7 +11037,7 @@
     ];
     passthru.names = [ "mocha" ];
   };
-  "mocha" = self.by-version."mocha"."1.17.1";
+  "mocha" = self.by-version."mocha"."1.18.2";
   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 {
@@ -10317,28 +11062,28 @@
     passthru.names = [ "mocha-unfunk-reporter" ];
   };
   "mocha-unfunk-reporter" = self.by-version."mocha-unfunk-reporter"."0.4.0";
-  by-spec."module-deps"."~1.7.0" =
-    self.by-version."module-deps"."1.7.1";
-  by-version."module-deps"."1.7.1" = lib.makeOverridable self.buildNodePackage {
-    name = "module-deps-1.7.1";
+  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.7.1.tgz";
-        name = "module-deps-1.7.1.tgz";
-        sha1 = "1e9a6809727282323abf1d5eee5ce8860b2e7bbf";
+        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."through"."2.3.4"
-      self.by-version."JSONStream"."0.7.1"
+      self.by-version."JSONStream"."0.7.2"
       self.by-version."browser-resolve"."1.2.2"
-      self.by-version."resolve"."0.6.1"
-      self.by-version."concat-stream"."1.4.1"
+      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."detective"."2.4.1"
+      self.by-version."resolve"."0.6.2"
+      self.by-version."through"."2.3.4"
     ];
     peerDependencies = [
     ];
@@ -10402,14 +11147,14 @@
     passthru.names = [ "moment" ];
   };
   by-spec."mongodb"."*" =
-    self.by-version."mongodb"."1.4.0-rc8";
-  by-version."mongodb"."1.4.0-rc8" = lib.makeOverridable self.buildNodePackage {
-    name = "node-mongodb-1.4.0-rc8";
+    self.by-version."mongodb"."1.4.1";
+  by-version."mongodb"."1.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-mongodb-1.4.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/mongodb/-/mongodb-1.4.0-rc8.tgz";
-        name = "mongodb-1.4.0-rc8.tgz";
-        sha1 = "3c6048070935d2b1c7e997dd77be70119e33cced";
+        url = "http://registry.npmjs.org/mongodb/-/mongodb-1.4.1.tgz";
+        name = "mongodb-1.4.1.tgz";
+        sha1 = "6b37d2c90c2a70ee12fbf7289a45f694f9530b79";
       })
     ];
     buildInputs =
@@ -10422,7 +11167,7 @@
     ];
     passthru.names = [ "mongodb" ];
   };
-  "mongodb" = self.by-version."mongodb"."1.4.0-rc8";
+  "mongodb" = self.by-version."mongodb"."1.4.1";
   by-spec."mongodb"."1.2.14" =
     self.by-version."mongodb"."1.2.14";
   by-version."mongodb"."1.2.14" = lib.makeOverridable self.buildNodePackage {
@@ -10602,7 +11347,7 @@
     buildInputs =
       (self.nativeDeps."mongoose-schema-extend" or []);
     deps = [
-      self.by-version."owl-deepcopy"."0.0.2"
+      self.by-version."owl-deepcopy"."0.0.4"
     ];
     peerDependencies = [
     ];
@@ -10649,6 +11394,45 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/morgan/-/morgan-1.0.0.tgz";
+        name = "morgan-1.0.0.tgz";
+        sha1 = "83cf74b9f2d841901f1a9a6b8fa7a468d2e47a8d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."morgan" or []);
+    deps = [
+      self.by-version."bytes"."0.2.1"
+    ];
+    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 {
@@ -10687,6 +11471,8 @@
     ];
     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 {
@@ -10787,14 +11573,14 @@
     passthru.names = [ "ms" ];
   };
   by-spec."msgpack".">= 0.0.1" =
-    self.by-version."msgpack"."0.2.2";
-  by-version."msgpack"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "msgpack-0.2.2";
+    self.by-version."msgpack"."0.2.3";
+  by-version."msgpack"."0.2.3" = lib.makeOverridable self.buildNodePackage {
+    name = "msgpack-0.2.3";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/msgpack/-/msgpack-0.2.2.tgz";
-        name = "msgpack-0.2.2.tgz";
-        sha1 = "e7aec9bea24d9b07940dee6cfa536c469cd1776c";
+        url = "http://registry.npmjs.org/msgpack/-/msgpack-0.2.3.tgz";
+        name = "msgpack-0.2.3.tgz";
+        sha1 = "0739ab7eaa0a5ba0ff7da2061c72ab806b6afe5f";
       })
     ];
     buildInputs =
@@ -10819,7 +11605,7 @@
     buildInputs =
       (self.nativeDeps."multiparty" or []);
     deps = [
-      self.by-version."readable-stream"."1.1.11"
+      self.by-version."readable-stream"."1.1.12"
       self.by-version."stream-counter"."0.2.0"
     ];
     peerDependencies = [
@@ -11090,6 +11876,25 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/negotiator/-/negotiator-0.4.2.tgz";
+        name = "negotiator-0.4.2.tgz";
+        sha1 = "8c43ea7e4c40ddfe40c3c0234c4ef77500b8fd37";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."negotiator" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "negotiator" ];
+  };
   by-spec."negotiator"."~0.3.0" =
     self.by-version."negotiator"."0.3.0";
   by-spec."net-ping"."1.1.7" =
@@ -11151,26 +11956,27 @@
     passthru.names = [ "nib" ];
   };
   by-spec."nijs"."*" =
-    self.by-version."nijs"."0.0.13";
-  by-version."nijs"."0.0.13" = lib.makeOverridable self.buildNodePackage {
-    name = "nijs-0.0.13";
+    self.by-version."nijs"."0.0.14";
+  by-version."nijs"."0.0.14" = lib.makeOverridable self.buildNodePackage {
+    name = "nijs-0.0.14";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/nijs/-/nijs-0.0.13.tgz";
-        name = "nijs-0.0.13.tgz";
-        sha1 = "eba11ace22e3ff73a9dc526b2b955c2e04472572";
+        url = "http://registry.npmjs.org/nijs/-/nijs-0.0.14.tgz";
+        name = "nijs-0.0.14.tgz";
+        sha1 = "e4851865ee94567e33c7c7e6d7d92c031e8f1eab";
       })
     ];
     buildInputs =
       (self.nativeDeps."nijs" or []);
     deps = [
       self.by-version."optparse"."1.0.5"
+      self.by-version."slasp"."0.0.3"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "nijs" ];
   };
-  "nijs" = self.by-version."nijs"."0.0.13";
+  "nijs" = self.by-version."nijs"."0.0.14";
   by-spec."node-appc"."0.2.0" =
     self.by-version."node-appc"."0.2.0";
   by-version."node-appc"."0.2.0" = lib.makeOverridable self.buildNodePackage {
@@ -11241,7 +12047,7 @@
       (self.nativeDeps."node-gyp" or []);
     deps = [
       self.by-version."glob"."3.2.9"
-      self.by-version."graceful-fs"."2.0.2"
+      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"
@@ -11259,58 +12065,28 @@
     passthru.names = [ "node-gyp" ];
   };
   "node-gyp" = self.by-version."node-gyp"."0.13.0";
-  by-spec."node-gyp"."~0.12.2" =
-    self.by-version."node-gyp"."0.12.2";
-  by-version."node-gyp"."0.12.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-gyp-0.12.2";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/node-gyp/-/node-gyp-0.12.2.tgz";
-        name = "node-gyp-0.12.2.tgz";
-        sha1 = "bdca7e7025feb308ddd7fd3434300e47703ec57a";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."node-gyp" or []);
-    deps = [
-      self.by-version."glob"."3.2.9"
-      self.by-version."graceful-fs"."2.0.2"
-      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."semver"."2.2.1"
-      self.by-version."tar"."0.1.19"
-      self.by-version."which"."1.0.5"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "node-gyp" ];
-  };
+  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.0";
-  by-version."node-inspector"."0.7.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-inspector-0.7.0";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/node-inspector/-/node-inspector-0.7.0.tgz";
-        name = "node-inspector-0.7.0.tgz";
-        sha1 = "b035e94e4bca3279ebabbb4df871ad8931919d9c";
+        url = "http://registry.npmjs.org/node-inspector/-/node-inspector-0.7.3.tgz";
+        name = "node-inspector-0.7.3.tgz";
+        sha1 = "988317f9a7e645d1bb78e40bb2289db82a077e73";
       })
     ];
     buildInputs =
       (self.nativeDeps."node-inspector" or []);
     deps = [
-      self.by-version."express"."3.4.8"
-      self.by-version."async"."0.2.10"
+      self.by-version."express"."3.5.1"
+      self.by-version."async"."0.4.1"
       self.by-version."glob"."3.2.9"
       self.by-version."rc"."0.3.4"
       self.by-version."strong-data-uri"."0.1.1"
-      self.by-version."debug"."0.7.4"
+      self.by-version."debug"."0.8.1"
       self.by-version."ws"."0.4.31"
       self.by-version."opener"."1.3.0"
       self.by-version."yargs"."1.1.3"
@@ -11320,7 +12096,7 @@
     ];
     passthru.names = [ "node-inspector" ];
   };
-  "node-inspector" = self.by-version."node-inspector"."0.7.0";
+  "node-inspector" = self.by-version."node-inspector"."0.7.3";
   by-spec."node-protobuf"."*" =
     self.by-version."node-protobuf"."1.0.10";
   by-version."node-protobuf"."1.0.10" = lib.makeOverridable self.buildNodePackage {
@@ -11491,7 +12267,7 @@
     buildInputs =
       (self.nativeDeps."node-wsfederation" or []);
     deps = [
-      self.by-version."xml2js"."0.4.1"
+      self.by-version."xml2js"."0.4.2"
     ];
     peerDependencies = [
     ];
@@ -11530,8 +12306,8 @@
     buildInputs =
       (self.nativeDeps."nodemailer" or []);
     deps = [
-      self.by-version."mailcomposer"."0.2.8"
-      self.by-version."simplesmtp"."0.3.22"
+      self.by-version."mailcomposer"."0.2.9"
+      self.by-version."simplesmtp"."0.3.24"
       self.by-version."optimist"."0.6.1"
     ];
     peerDependencies = [
@@ -11539,27 +12315,27 @@
     passthru.names = [ "nodemailer" ];
   };
   by-spec."nodemon"."*" =
-    self.by-version."nodemon"."1.0.15";
-  by-version."nodemon"."1.0.15" = lib.makeOverridable self.buildNodePackage {
-    name = "nodemon-1.0.15";
+    self.by-version."nodemon"."1.0.17";
+  by-version."nodemon"."1.0.17" = lib.makeOverridable self.buildNodePackage {
+    name = "nodemon-1.0.17";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/nodemon/-/nodemon-1.0.15.tgz";
-        name = "nodemon-1.0.15.tgz";
-        sha1 = "32efa6b8134d579dca8894cd9e8a27d381387f11";
+        url = "http://registry.npmjs.org/nodemon/-/nodemon-1.0.17.tgz";
+        name = "nodemon-1.0.17.tgz";
+        sha1 = "910a3f3cb66c06a3499498455cf4e0119f75799c";
       })
     ];
     buildInputs =
       (self.nativeDeps."nodemon" or []);
     deps = [
-      self.by-version."update-notifier"."0.1.7"
+      self.by-version."update-notifier"."0.1.8"
       self.by-version."minimatch"."0.2.14"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "nodemon" ];
   };
-  "nodemon" = self.by-version."nodemon"."1.0.15";
+  "nodemon" = self.by-version."nodemon"."1.0.17";
   by-spec."nomnom"."1.6.x" =
     self.by-version."nomnom"."1.6.2";
   by-version."nomnom"."1.6.2" = lib.makeOverridable self.buildNodePackage {
@@ -11621,15 +12397,19 @@
     ];
     passthru.names = [ "nopt" ];
   };
-  by-spec."nopt"."2.1.x" =
-    self.by-version."nopt"."2.1.2";
-  by-version."nopt"."2.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "nopt-2.1.2";
+  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"."~1.0.10" =
+    self.by-version."nopt"."1.0.10";
+  by-version."nopt"."1.0.10" = lib.makeOverridable self.buildNodePackage {
+    name = "nopt-1.0.10";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz";
-        name = "nopt-2.1.2.tgz";
-        sha1 = "6cccd977b80132a07731d6e8ce58c2c8303cf9af";
+        url = "http://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz";
+        name = "nopt-1.0.10.tgz";
+        sha1 = "6ddd21bd2a31417b92727dd585f8a6f37608ebee";
       })
     ];
     buildInputs =
@@ -11641,17 +12421,15 @@
     ];
     passthru.names = [ "nopt" ];
   };
-  by-spec."nopt"."^2.2.0" =
-    self.by-version."nopt"."2.2.0";
-  by-spec."nopt"."https://github.com/Filirom1/nopt/tarball/master#pull-request-in-progress" =
-    self.by-version."nopt"."1.0.10";
-  by-version."nopt"."1.0.10" = lib.makeOverridable self.buildNodePackage {
-    name = "nopt-1.0.10";
+  by-spec."nopt"."~2.1.1" =
+    self.by-version."nopt"."2.1.2";
+  by-version."nopt"."2.1.2" = lib.makeOverridable self.buildNodePackage {
+    name = "nopt-2.1.2";
     src = [
       (fetchurl {
-        url = "https://github.com/Filirom1/nopt/tarball/master#pull-request-in-progress";
-        name = "nopt-1.0.10.tgz";
-        sha256 = "94daa53a0ab7668be12931b7b551c924c913d1efef7f2a05e60704c9b90a7bad";
+        url = "http://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz";
+        name = "nopt-2.1.2.tgz";
+        sha1 = "6cccd977b80132a07731d6e8ce58c2c8303cf9af";
       })
     ];
     buildInputs =
@@ -11663,12 +12441,10 @@
     ];
     passthru.names = [ "nopt" ];
   };
-  by-spec."nopt"."~1.0.10" =
-    self.by-version."nopt"."1.0.10";
-  by-spec."nopt"."~2.1.1" =
-    self.by-version."nopt"."2.1.2";
   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 {
@@ -11692,73 +12468,74 @@
     passthru.names = [ "normalize-package-data" ];
   };
   by-spec."npm"."*" =
-    self.by-version."npm"."1.4.4";
-  by-version."npm"."1.4.4" = lib.makeOverridable self.buildNodePackage {
-    name = "npm-1.4.4";
+    self.by-version."npm"."1.4.6";
+  by-version."npm"."1.4.6" = lib.makeOverridable self.buildNodePackage {
+    name = "npm-1.4.6";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npm/-/npm-1.4.4.tgz";
-        name = "npm-1.4.4.tgz";
-        sha1 = "076616f7af95bcd08a4c5ad5cce18c5f370e0935";
+        url = "http://registry.npmjs.org/npm/-/npm-1.4.6.tgz";
+        name = "npm-1.4.6.tgz";
+        sha1 = "0e151bce38e72cf2206a6299fa5164123f04256e";
       })
     ];
     buildInputs =
       (self.nativeDeps."npm" or []);
     deps = [
-      self.by-version."semver"."2.2.1"
-      self.by-version."ini"."1.1.0"
-      self.by-version."slide"."1.1.5"
       self.by-version."abbrev"."1.0.4"
-      self.by-version."graceful-fs"."2.0.2"
-      self.by-version."minimatch"."0.2.14"
-      self.by-version."nopt"."2.2.0"
-      self.by-version."rimraf"."2.2.6"
-      self.by-version."request"."2.30.0"
-      self.by-version."which"."1.0.5"
-      self.by-version."tar"."0.1.19"
-      self.by-version."fstream"."0.1.25"
-      self.by-version."block-stream"."0.0.7"
-      self.by-version."mkdirp"."0.3.5"
-      self.by-version."read"."1.0.5"
-      self.by-version."lru-cache"."2.5.0"
-      self.by-version."node-gyp"."0.12.2"
-      self.by-version."fstream-npm"."0.1.6"
-      self.by-version."uid-number"."0.0.5"
-      self.by-version."archy"."0.0.2"
-      self.by-version."chownr"."0.0.1"
-      self.by-version."npmlog"."0.0.6"
       self.by-version."ansi"."0.2.1"
-      self.by-version."npm-registry-client"."0.4.4"
-      self.by-version."read-package-json"."1.1.7"
-      self.by-version."read-installed"."1.0.0"
-      self.by-version."glob"."3.2.7"
-      self.by-version."init-package-json"."0.0.14"
-      self.by-version."osenv"."0.0.3"
-      self.by-version."lockfile"."0.4.2"
-      self.by-version."retry"."0.6.0"
-      self.by-version."once"."1.3.0"
-      self.by-version."npmconf"."0.1.13"
-      self.by-version."opener"."1.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."block-stream"."0.0.7"
+      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."sha"."1.2.3"
+      self.by-version."columnify"."0.1.2"
       self.by-version."editor"."0.0.5"
-      self.by-version."child-process-close"."0.1.1"
-      self.by-version."npm-user-validate"."0.0.3"
+      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."text-table"."0.2.0"
-      self.by-version."ansicolors"."0.3.2"
-      self.by-version."ansistyles"."0.1.3"
-      self.by-version."path-is-inside"."1.0.1"
-      self.by-version."columnify"."0.1.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."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."once"."1.3.0"
+      self.by-version."opener"."1.3.0"
+      self.by-version."osenv"."0.0.3"
+      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."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."slide"."1.1.5"
+      self.by-version."sorted-object"."1.0.0"
+      self.by-version."tar"."0.1.19"
+      self.by-version."text-table"."0.2.0"
+      self.by-version."uid-number"."0.0.5"
+      self.by-version."which"."1.0.5"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "npm" ];
   };
-  "npm" = self.by-version."npm"."1.4.4";
+  "npm" = self.by-version."npm"."1.4.6";
   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 {
@@ -11795,7 +12572,7 @@
       (self.nativeDeps."npm-registry-client" or []);
     deps = [
       self.by-version."request"."2.34.0"
-      self.by-version."graceful-fs"."2.0.2"
+      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"
@@ -11809,22 +12586,22 @@
     ];
     passthru.names = [ "npm-registry-client" ];
   };
-  by-spec."npm-registry-client"."^0.4.4" =
-    self.by-version."npm-registry-client"."0.4.4";
-  by-version."npm-registry-client"."0.4.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npm-registry-client-0.4.4";
+  by-spec."npm-registry-client"."~0.4.5" =
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npm-registry-client/-/npm-registry-client-0.4.4.tgz";
-        name = "npm-registry-client-0.4.4.tgz";
-        sha1 = "f9dbc383a49069d8c7f67755a3ff6e424aff584f";
+        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";
       })
     ];
     buildInputs =
       (self.nativeDeps."npm-registry-client" or []);
     deps = [
       self.by-version."request"."2.34.0"
-      self.by-version."graceful-fs"."2.0.2"
+      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"
@@ -11837,8 +12614,8 @@
     ];
     passthru.names = [ "npm-registry-client" ];
   };
-  by-spec."npm-registry-client"."~0.4.4" =
-    self.by-version."npm-registry-client"."0.4.4";
+  by-spec."npm-registry-client"."~0.4.7" =
+    self.by-version."npm-registry-client"."0.4.7";
   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 {
@@ -11940,15 +12717,15 @@
     ];
     passthru.names = [ "npmconf" ];
   };
-  by-spec."npmconf"."~0.1.12" =
-    self.by-version."npmconf"."0.1.13";
-  by-version."npmconf"."0.1.13" = lib.makeOverridable self.buildNodePackage {
-    name = "node-npmconf-0.1.13";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/npmconf/-/npmconf-0.1.13.tgz";
-        name = "npmconf-0.1.13.tgz";
-        sha1 = "d47241b5b074f554ced90cd888d0dc96e4b1a4da";
+        url = "http://registry.npmjs.org/npmconf/-/npmconf-0.1.14.tgz";
+        name = "npmconf-0.1.14.tgz";
+        sha1 = "aea4bc12c5a84191a32cd350e325da4fe8b127e7";
       })
     ];
     buildInputs =
@@ -11967,10 +12744,8 @@
     ];
     passthru.names = [ "npmconf" ];
   };
-  by-spec."npmconf"."~0.1.13" =
-    self.by-version."npmconf"."0.1.13";
   by-spec."npmconf"."~0.1.2" =
-    self.by-version."npmconf"."0.1.13";
+    self.by-version."npmconf"."0.1.14";
   by-spec."npmlog"."*" =
     self.by-version."npmlog"."0.0.6";
   by-version."npmlog"."0.0.6" = lib.makeOverridable self.buildNodePackage {
@@ -12044,7 +12819,7 @@
       (fetchurl {
         url = "https://github.com/ciaranj/node-oauth/tarball/master";
         name = "oauth-0.9.11.tgz";
-        sha256 = "ea86c233c1a77e52a97107b40978a909a99dd59c4751e7f4d342274c1d6a55a4";
+        sha256 = "14cc7a064e3eda0948ac8db72fae140cb7b0fdbe031375d02cd6d0359c8b8faa";
       })
     ];
     buildInputs =
@@ -12231,9 +13006,26 @@
     passthru.names = [ "open" ];
   };
   by-spec."open"."~0.0.3" =
-    self.by-version."open"."0.0.4";
+    self.by-version."open"."0.0.5";
+  by-version."open"."0.0.5" = lib.makeOverridable self.buildNodePackage {
+    name = "node-open-0.0.5";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/open/-/open-0.0.5.tgz";
+        name = "open-0.0.5.tgz";
+        sha1 = "42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."open" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "open" ];
+  };
   by-spec."open"."~0.0.4" =
-    self.by-version."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 {
@@ -12254,14 +13046,14 @@
     passthru.names = [ "opener" ];
   };
   by-spec."openid".">=0.2.0" =
-    self.by-version."openid"."0.5.5";
-  by-version."openid"."0.5.5" = lib.makeOverridable self.buildNodePackage {
-    name = "node-openid-0.5.5";
+    self.by-version."openid"."0.5.7";
+  by-version."openid"."0.5.7" = lib.makeOverridable self.buildNodePackage {
+    name = "node-openid-0.5.7";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/openid/-/openid-0.5.5.tgz";
-        name = "openid-0.5.5.tgz";
-        sha1 = "a4ce534ca82d68f81ccf45109fc92b4547b2cdd1";
+        url = "http://registry.npmjs.org/openid/-/openid-0.5.7.tgz";
+        name = "openid-0.5.7.tgz";
+        sha1 = "cb92228f7b887bd5af0a444db42b67db785b0e9b";
       })
     ];
     buildInputs =
@@ -12426,14 +13218,14 @@
   by-spec."optparse".">= 1.0.3" =
     self.by-version."optparse"."1.0.5";
   by-spec."os-browserify"."~0.1.1" =
-    self.by-version."os-browserify"."0.1.1";
-  by-version."os-browserify"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-os-browserify-0.1.1";
+    self.by-version."os-browserify"."0.1.2";
+  by-version."os-browserify"."0.1.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-os-browserify-0.1.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/os-browserify/-/os-browserify-0.1.1.tgz";
-        name = "os-browserify-0.1.1.tgz";
-        sha1 = "c1c6b8b27be18cb09da7fa87476e0bcf3b465cbe";
+        url = "http://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz";
+        name = "os-browserify-0.1.2.tgz";
+        sha1 = "49ca0293e0b19590a5f5de10c7f265a617d8fe54";
       })
     ];
     buildInputs =
@@ -12465,15 +13257,17 @@
   };
   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."owl-deepcopy"."*" =
-    self.by-version."owl-deepcopy"."0.0.2";
-  by-version."owl-deepcopy"."0.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-owl-deepcopy-0.0.2";
+    self.by-version."owl-deepcopy"."0.0.4";
+  by-version."owl-deepcopy"."0.0.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-owl-deepcopy-0.0.4";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/owl-deepcopy/-/owl-deepcopy-0.0.2.tgz";
-        name = "owl-deepcopy-0.0.2.tgz";
-        sha1 = "056c40e1af73dff6e2c7afae983d2a7760fdff88";
+        url = "http://registry.npmjs.org/owl-deepcopy/-/owl-deepcopy-0.0.4.tgz";
+        name = "owl-deepcopy-0.0.4.tgz";
+        sha1 = "665f3aeafab74302d98ecaeeb7b3e764ae21f369";
       })
     ];
     buildInputs =
@@ -12484,9 +13278,9 @@
     ];
     passthru.names = [ "owl-deepcopy" ];
   };
-  "owl-deepcopy" = self.by-version."owl-deepcopy"."0.0.2";
+  "owl-deepcopy" = self.by-version."owl-deepcopy"."0.0.4";
   by-spec."owl-deepcopy"."~0.0.1" =
-    self.by-version."owl-deepcopy"."0.0.2";
+    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 {
@@ -12528,6 +13322,25 @@
   };
   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 {
+    name = "node-parseurl-1.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/parseurl/-/parseurl-1.0.1.tgz";
+        name = "parseurl-1.0.1.tgz";
+        sha1 = "2e57dce6efdd37c3518701030944c22bf388b7b4";
+      })
+    ];
+    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 {
@@ -12550,7 +13363,7 @@
     passthru.names = [ "passport" ];
   };
   "passport" = self.by-version."passport"."0.2.0";
-  by-spec."passport"."~0.1.1" =
+  by-spec."passport"."~0.1.3" =
     self.by-version."passport"."0.1.18";
   by-version."passport"."0.1.18" = lib.makeOverridable self.buildNodePackage {
     name = "node-passport-0.1.18";
@@ -12571,8 +13384,6 @@
     ];
     passthru.names = [ "passport" ];
   };
-  by-spec."passport"."~0.1.3" =
-    self.by-version."passport"."0.1.18";
   by-spec."passport"."~0.2.0" =
     self.by-version."passport"."0.2.0";
   by-spec."passport-http"."*" =
@@ -12598,29 +13409,28 @@
   };
   "passport-http" = self.by-version."passport-http"."0.2.2";
   by-spec."passport-local"."*" =
-    self.by-version."passport-local"."0.1.6";
-  by-version."passport-local"."0.1.6" = lib.makeOverridable self.buildNodePackage {
-    name = "node-passport-local-0.1.6";
+    self.by-version."passport-local"."1.0.0";
+  by-version."passport-local"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-passport-local-1.0.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/passport-local/-/passport-local-0.1.6.tgz";
-        name = "passport-local-0.1.6.tgz";
-        sha1 = "fb0cf828048db931b67d19985c7aa06dd377a9db";
+        url = "http://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz";
+        name = "passport-local-1.0.0.tgz";
+        sha1 = "1fe63268c92e75606626437e3b906662c15ba6ee";
       })
     ];
     buildInputs =
       (self.nativeDeps."passport-local" or []);
     deps = [
-      self.by-version."pkginfo"."0.2.3"
-      self.by-version."passport"."0.1.18"
+      self.by-version."passport-strategy"."1.0.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "passport-local" ];
   };
-  "passport-local" = self.by-version."passport-local"."0.1.6";
-  by-spec."passport-local"."0.1.6" =
-    self.by-version."passport-local"."0.1.6";
+  "passport-local" = self.by-version."passport-local"."1.0.0";
+  by-spec."passport-local"."~1.0.0" =
+    self.by-version."passport-local"."1.0.0";
   by-spec."passport-strategy"."1.x.x" =
     self.by-version."passport-strategy"."1.0.0";
   by-version."passport-strategy"."1.0.0" = lib.makeOverridable self.buildNodePackage {
@@ -12678,6 +13488,25 @@
     ];
     passthru.names = [ "path-is-inside" ];
   };
+  by-spec."path-to-regexp"."0.1.2" =
+    self.by-version."path-to-regexp"."0.1.2";
+  by-version."path-to-regexp"."0.1.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-path-to-regexp-0.1.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.2.tgz";
+        name = "path-to-regexp-0.1.2.tgz";
+        sha1 = "9b2b151f9cc3018c9eea50ca95729e05781712b4";
+      })
+    ];
+    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 {
@@ -12698,14 +13527,14 @@
     passthru.names = [ "pause" ];
   };
   by-spec."phantomjs"."~1.9.1-2" =
-    self.by-version."phantomjs"."1.9.7-1";
-  by-version."phantomjs"."1.9.7-1" = lib.makeOverridable self.buildNodePackage {
-    name = "phantomjs-1.9.7-1";
+    self.by-version."phantomjs"."1.9.7-3";
+  by-version."phantomjs"."1.9.7-3" = lib.makeOverridable self.buildNodePackage {
+    name = "phantomjs-1.9.7-3";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/phantomjs/-/phantomjs-1.9.7-1.tgz";
-        name = "phantomjs-1.9.7-1.tgz";
-        sha1 = "57a191c908de74d27ac4948bd66100ae88222f47";
+        url = "http://registry.npmjs.org/phantomjs/-/phantomjs-1.9.7-3.tgz";
+        name = "phantomjs-1.9.7-3.tgz";
+        sha1 = "5deffc801452c4a44e65b02c26e8672617b9bdbf";
       })
     ];
     buildInputs =
@@ -12882,6 +13711,25 @@
     ];
     passthru.names = [ "process" ];
   };
+  by-spec."process"."~0.6.0" =
+    self.by-version."process"."0.6.0";
+  by-version."process"."0.6.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-process-0.6.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/process/-/process-0.6.0.tgz";
+        name = "process-0.6.0.tgz";
+        sha1 = "7dd9be80ffaaedd4cb628f1827f1cbab6dc0918f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."process" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "process" ];
+  };
   by-spec."promise"."~2.0" =
     self.by-version."promise"."2.0.0";
   by-version."promise"."2.0.0" = lib.makeOverridable self.buildNodePackage {
@@ -13066,20 +13914,42 @@
   };
   by-spec."punycode"."~1.2.3" =
     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 {
+    name = "node-pure-0.5.0-rc-1";
+    src = [
+      (fetchgit {
+        url = "git://github.com/yui/pure.git";
+        rev = "f5ce3ae4b48ce252adac7b6ddac50c9518729a2d";
+        sha256 = "049ac2ef812771852978d11cd5aecac2dd561e97bb16ad89c79eb1e10aa57672";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."pure" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "pure" ];
+  };
+  "pure-css" = self.by-version."pure-css"."0.5.0-rc-1";
   by-spec."q".">= 0.0.1" =
-    self.by-version."q"."1.0.0";
-  by-version."q"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-q-1.0.0";
+    self.by-version."q"."2.0.1";
+  by-version."q"."2.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-q-2.0.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/q/-/q-1.0.0.tgz";
-        name = "q-1.0.0.tgz";
-        sha1 = "dc1f92c4587be54f7853b29dc28e6d243a88498d";
+        url = "http://registry.npmjs.org/q/-/q-2.0.1.tgz";
+        name = "q-2.0.1.tgz";
+        sha1 = "ae9dc1edd970e72820a1ca716ecc1b0fc96c1c5a";
       })
     ];
     buildInputs =
       (self.nativeDeps."q" or []);
     deps = [
+      self.by-version."asap"."1.0.0"
+      self.by-version."collections"."2.0.1"
     ];
     peerDependencies = [
     ];
@@ -13109,7 +13979,24 @@
   by-spec."q"."~0.9.7" =
     self.by-version."q"."0.9.7";
   by-spec."q"."~1.0.0" =
-    self.by-version."q"."1.0.0";
+    self.by-version."q"."1.0.1";
+  by-version."q"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-q-1.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/q/-/q-1.0.1.tgz";
+        name = "q-1.0.1.tgz";
+        sha1 = "11872aeedee89268110b10a718448ffb10112a14";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."q" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "q" ];
+  };
   by-spec."qs"."0.4.2" =
     self.by-version."qs"."0.4.2";
   by-version."qs"."0.4.2" = lib.makeOverridable self.buildNodePackage {
@@ -13251,6 +14138,8 @@
     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 {
@@ -13270,24 +14159,24 @@
     ];
     passthru.names = [ "querystring" ];
   };
-  by-spec."querystring"."https://github.com/substack/querystring/archive/0.2.0-ie8.tar.gz" =
-    self.by-version."querystring"."0.2.0";
-  by-version."querystring"."0.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-querystring-0.2.0";
+  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";
     src = [
       (fetchurl {
-        url = "https://github.com/substack/querystring/archive/0.2.0-ie8.tar.gz";
-        name = "querystring-0.2.0.tgz";
-        sha256 = "9476079402605957bae231ea3ec5ae83b454b2de68ddaa3450096821996be8f5";
+        url = "http://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.0.tgz";
+        name = "querystring-es3-0.2.0.tgz";
+        sha1 = "c365a08a69c443accfeb3a9deab35e3f0abaa476";
       })
     ];
     buildInputs =
-      (self.nativeDeps."querystring" or []);
+      (self.nativeDeps."querystring-es3" or []);
     deps = [
     ];
     peerDependencies = [
     ];
-    passthru.names = [ "querystring" ];
+    passthru.names = [ "querystring-es3" ];
   };
   by-spec."rai"."~0.1" =
     self.by-version."rai"."0.1.9";
@@ -13348,15 +14237,15 @@
   };
   by-spec."range-parser"."~1.0.0" =
     self.by-version."range-parser"."1.0.0";
-  by-spec."raven"."~0.6.2" =
-    self.by-version."raven"."0.6.2";
-  by-version."raven"."0.6.2" = lib.makeOverridable self.buildNodePackage {
-    name = "raven-0.6.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/raven/-/raven-0.6.2.tgz";
-        name = "raven-0.6.2.tgz";
-        sha1 = "391a7395b6088518a01697f639f21ce6ea9841a3";
+        url = "http://registry.npmjs.org/raven/-/raven-0.6.3.tgz";
+        name = "raven-0.6.3.tgz";
+        sha1 = "3e7c72d45e0dff93ecc54978661331755c637320";
       })
     ];
     buildInputs =
@@ -13410,6 +14299,28 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/raw-body/-/raw-body-1.1.3.tgz";
+        name = "raw-body-1.1.3.tgz";
+        sha1 = "3d2f91e2449259cc67b8c3ce9f061db5b987935b";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."raw-body" or []);
+    deps = [
+      self.by-version."bytes"."0.2.1"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "raw-body" ];
+  };
+  by-spec."raw-body"."~1.1.2" =
+    self.by-version."raw-body"."1.1.3";
   by-spec."raw-socket"."*" =
     self.by-version."raw-socket"."1.2.2";
   by-version."raw-socket"."1.2.2" = lib.makeOverridable self.buildNodePackage {
@@ -13473,6 +14384,27 @@
   };
   by-spec."rc"."~0.3.4" =
     self.by-version."rc"."0.3.4";
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/react/-/react-0.10.0.tgz";
+        name = "react-0.10.0.tgz";
+        sha1 = "8c82753593d3f325ca99d820f7400ab02f1ee1f8";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."react" or []);
+    deps = [
+    ];
+    peerDependencies = [
+      self.by-version."envify"."1.2.1"
+    ];
+    passthru.names = [ "react" ];
+  };
+  "react" = self.by-version."react"."0.10.0";
   by-spec."read"."1" =
     self.by-version."read"."1.0.5";
   by-version."read"."1.0.5" = lib.makeOverridable self.buildNodePackage {
@@ -13499,61 +14431,39 @@
     self.by-version."read"."1.0.5";
   by-spec."read"."~1.0.4" =
     self.by-version."read"."1.0.5";
-  by-spec."read-installed"."0.2.2" =
-    self.by-version."read-installed"."0.2.2";
-  by-version."read-installed"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-read-installed-0.2.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/read-installed/-/read-installed-0.2.2.tgz";
-        name = "read-installed-0.2.2.tgz";
-        sha1 = "f570ac84fb29c75f16faa3940a8c1e602c8eecab";
+        url = "http://registry.npmjs.org/read-installed/-/read-installed-2.0.2.tgz";
+        name = "read-installed-2.0.2.tgz";
+        sha1 = "e69e7e1946af932b2fa454465639ebea4d63773c";
       })
     ];
     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."slide"."1.1.5"
-      self.by-version."read-package-json"."1.1.7"
-      self.by-version."graceful-fs"."1.2.3"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "read-installed" ];
-  };
-  by-spec."read-installed"."~1.0.0" =
-    self.by-version."read-installed"."1.0.0";
-  by-version."read-installed"."1.0.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-read-installed-1.0.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/read-installed/-/read-installed-1.0.0.tgz";
-        name = "read-installed-1.0.0.tgz";
-        sha1 = "4db88d5a363f9c68eaa07e1626974bc2e0a1b3a5";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."read-installed" or []);
-    deps = [
-      self.by-version."semver"."2.2.1"
-      self.by-version."slide"."1.1.5"
-      self.by-version."read-package-json"."1.1.7"
-      self.by-version."graceful-fs"."2.0.2"
+      self.by-version."util-extend"."1.0.1"
+      self.by-version."graceful-fs"."2.0.3"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "read-installed" ];
   };
   by-spec."read-package-json"."1" =
-    self.by-version."read-package-json"."1.1.7";
-  by-version."read-package-json"."1.1.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-read-package-json-1.1.7";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/read-package-json/-/read-package-json-1.1.7.tgz";
-        name = "read-package-json-1.1.7.tgz";
-        sha1 = "a28da23cb4330106a0d45e86065e0fc3b79d263e";
+        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";
       })
     ];
     buildInputs =
@@ -13562,14 +14472,14 @@
       self.by-version."glob"."3.2.9"
       self.by-version."lru-cache"."2.5.0"
       self.by-version."normalize-package-data"."0.2.12"
-      self.by-version."graceful-fs"."2.0.2"
+      self.by-version."graceful-fs"."2.0.3"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "read-package-json" ];
   };
-  by-spec."read-package-json"."~1.1.7" =
-    self.by-version."read-package-json"."1.1.7";
+  by-spec."read-package-json"."~1.1.8" =
+    self.by-version."read-package-json"."1.1.8";
   by-spec."readable-stream"."1.0" =
     self.by-version."readable-stream"."1.0.26";
   by-version."readable-stream"."1.0.26" = lib.makeOverridable self.buildNodePackage {
@@ -13591,22 +14501,23 @@
     passthru.names = [ "readable-stream" ];
   };
   by-spec."readable-stream"."1.1" =
-    self.by-version."readable-stream"."1.1.11";
-  by-version."readable-stream"."1.1.11" = lib.makeOverridable self.buildNodePackage {
-    name = "node-readable-stream-1.1.11";
+    self.by-version."readable-stream"."1.1.12";
+  by-version."readable-stream"."1.1.12" = lib.makeOverridable self.buildNodePackage {
+    name = "node-readable-stream-1.1.12";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.11.tgz";
-        name = "readable-stream-1.1.11.tgz";
-        sha1 = "76ae0d88df2ac36c59e7c205e0cafc81c57bc07d";
+        url = "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.12.tgz";
+        name = "readable-stream-1.1.12.tgz";
+        sha1 = "960d442bbf5f6690b6b20550413931021af8e506";
       })
     ];
     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."debuglog"."0.0.2"
+      self.by-version."inherits"."2.0.1"
     ];
     peerDependencies = [
     ];
@@ -13619,9 +14530,9 @@
   by-spec."readable-stream"."~1.0.24" =
     self.by-version."readable-stream"."1.0.26";
   by-spec."readable-stream"."~1.1.8" =
-    self.by-version."readable-stream"."1.1.11";
+    self.by-version."readable-stream"."1.1.12";
   by-spec."readable-stream"."~1.1.9" =
-    self.by-version."readable-stream"."1.1.11";
+    self.by-version."readable-stream"."1.1.12";
   by-spec."readdirp"."~0.2.3" =
     self.by-version."readdirp"."0.2.5";
   by-version."readdirp"."0.2.5" = lib.makeOverridable self.buildNodePackage {
@@ -13664,6 +14575,25 @@
     ];
     passthru.names = [ "readline2" ];
   };
+  by-spec."recursive-readdir"."0.0.2" =
+    self.by-version."recursive-readdir"."0.0.2";
+  by-version."recursive-readdir"."0.0.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-recursive-readdir-0.0.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/recursive-readdir/-/recursive-readdir-0.0.2.tgz";
+        name = "recursive-readdir-0.0.2.tgz";
+        sha1 = "0bc47dc4838e646dccfba0507b5e57ffbff35f7c";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."recursive-readdir" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    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 {
@@ -13961,39 +14891,10 @@
   };
   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" =
     self.by-version."request"."2.34.0";
-  by-spec."request"."~2.25.0" =
-    self.by-version."request"."2.25.0";
-  by-version."request"."2.25.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-request-2.25.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/request/-/request-2.25.0.tgz";
-        name = "request-2.25.0.tgz";
-        sha1 = "dac1673181887fe0b2ce6bd7e12f46d554a02ce9";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."request" or []);
-    deps = [
-      self.by-version."qs"."0.6.6"
-      self.by-version."json-stringify-safe"."5.0.0"
-      self.by-version."forever-agent"."0.5.2"
-      self.by-version."tunnel-agent"."0.3.0"
-      self.by-version."http-signature"."0.10.0"
-      self.by-version."hawk"."1.0.0"
-      self.by-version."aws-sign"."0.3.0"
-      self.by-version."oauth-sign"."0.3.0"
-      self.by-version."cookie-jar"."0.3.0"
-      self.by-version."node-uuid"."1.4.1"
-      self.by-version."mime"."1.2.11"
-      self.by-version."form-data"."0.1.2"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "request" ];
-  };
   by-spec."request"."~2.27.0" =
     self.by-version."request"."2.27.0";
   by-version."request"."2.27.0" = lib.makeOverridable self.buildNodePackage {
@@ -14056,37 +14957,6 @@
     ];
     passthru.names = [ "request" ];
   };
-  by-spec."request"."~2.31.0" =
-    self.by-version."request"."2.31.0";
-  by-version."request"."2.31.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-request-2.31.0";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/request/-/request-2.31.0.tgz";
-        name = "request-2.31.0.tgz";
-        sha1 = "4c8ac967c9a4b9410cb4ba1a61fdb644267eeeff";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."request" or []);
-    deps = [
-      self.by-version."qs"."0.6.6"
-      self.by-version."json-stringify-safe"."5.0.0"
-      self.by-version."forever-agent"."0.5.2"
-      self.by-version."node-uuid"."1.4.1"
-      self.by-version."mime"."1.2.11"
-      self.by-version."tough-cookie"."0.9.15"
-      self.by-version."form-data"."0.1.2"
-      self.by-version."tunnel-agent"."0.3.0"
-      self.by-version."http-signature"."0.10.0"
-      self.by-version."oauth-sign"."0.3.0"
-      self.by-version."hawk"."1.0.0"
-      self.by-version."aws-sign2"."0.5.0"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "request" ];
-  };
   by-spec."request"."~2.33.0" =
     self.by-version."request"."2.33.0";
   by-version."request"."2.33.0" = lib.makeOverridable self.buildNodePackage {
@@ -14179,15 +15049,15 @@
   };
   by-spec."requirejs"."~2.1.0" =
     self.by-version."requirejs"."2.1.11";
-  by-spec."resolve"."0.5.x" =
-    self.by-version."resolve"."0.5.1";
-  by-version."resolve"."0.5.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-resolve-0.5.1";
+  by-spec."resolve"."0.6.1" =
+    self.by-version."resolve"."0.6.1";
+  by-version."resolve"."0.6.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-resolve-0.6.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/resolve/-/resolve-0.5.1.tgz";
-        name = "resolve-0.5.1.tgz";
-        sha1 = "15e4a222c4236bcd4cf85454412c2d0fb6524576";
+        url = "http://registry.npmjs.org/resolve/-/resolve-0.6.1.tgz";
+        name = "resolve-0.6.1.tgz";
+        sha1 = "b7fc874a8fe240b44de2c92b7f885a2e8598b652";
       })
     ];
     buildInputs =
@@ -14198,15 +15068,15 @@
     ];
     passthru.names = [ "resolve" ];
   };
-  by-spec."resolve"."0.6.1" =
-    self.by-version."resolve"."0.6.1";
-  by-version."resolve"."0.6.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-resolve-0.6.1";
+  by-spec."resolve"."0.6.x" =
+    self.by-version."resolve"."0.6.2";
+  by-version."resolve"."0.6.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-resolve-0.6.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/resolve/-/resolve-0.6.1.tgz";
-        name = "resolve-0.6.1.tgz";
-        sha1 = "b7fc874a8fe240b44de2c92b7f885a2e8598b652";
+        url = "http://registry.npmjs.org/resolve/-/resolve-0.6.2.tgz";
+        name = "resolve-0.6.2.tgz";
+        sha1 = "7404e59e3c02980aa172272186521db3cf0a15f5";
       })
     ];
     buildInputs =
@@ -14217,8 +15087,6 @@
     ];
     passthru.names = [ "resolve" ];
   };
-  by-spec."resolve"."0.6.x" =
-    self.by-version."resolve"."0.6.1";
   by-spec."resolve"."~0.3.0" =
     self.by-version."resolve"."0.3.1";
   by-version."resolve"."0.3.1" = lib.makeOverridable self.buildNodePackage {
@@ -14241,9 +15109,28 @@
   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.1";
+    self.by-version."resolve"."0.6.2";
   by-spec."resolve"."~0.6.1" =
-    self.by-version."resolve"."0.6.1";
+    self.by-version."resolve"."0.6.2";
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/response-time/-/response-time-1.0.0.tgz";
+        name = "response-time-1.0.0.tgz";
+        sha1 = "c2bc8d08f3c359f97eae1d6da86eead175fabdc9";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."response-time" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "response-time" ];
+  };
   by-spec."restify"."2.4.1" =
     self.by-version."restify"."2.4.1";
   by-version."restify"."2.4.1" = lib.makeOverridable self.buildNodePackage {
@@ -14281,14 +15168,14 @@
     passthru.names = [ "restify" ];
   };
   by-spec."rethinkdb"."*" =
-    self.by-version."rethinkdb"."1.11.0-4";
-  by-version."rethinkdb"."1.11.0-4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-rethinkdb-1.11.0-4";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/rethinkdb/-/rethinkdb-1.11.0-4.tgz";
-        name = "rethinkdb-1.11.0-4.tgz";
-        sha1 = "11a4f32cf7cd98d895016448641b9af6a1b575e9";
+        url = "http://registry.npmjs.org/rethinkdb/-/rethinkdb-1.12.0-0.tgz";
+        name = "rethinkdb-1.12.0-0.tgz";
+        sha1 = "cad01e869bd12dcd09f235c5ec8f5ccf26cc6f81";
       })
     ];
     buildInputs =
@@ -14300,7 +15187,7 @@
     ];
     passthru.names = [ "rethinkdb" ];
   };
-  "rethinkdb" = self.by-version."rethinkdb"."1.11.0-4";
+  "rethinkdb" = self.by-version."rethinkdb"."1.12.0-0";
   by-spec."retry"."0.6.0" =
     self.by-version."retry"."0.6.0";
   by-version."retry"."0.6.0" = lib.makeOverridable self.buildNodePackage {
@@ -14404,6 +15291,8 @@
   };
   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";
   by-spec."rimraf"."~2" =
     self.by-version."rimraf"."2.2.6";
   by-spec."rimraf"."~2.0.2" =
@@ -14426,8 +15315,6 @@
     ];
     passthru.names = [ "rimraf" ];
   };
-  by-spec."rimraf"."~2.0.3" =
-    self.by-version."rimraf"."2.0.3";
   by-spec."rimraf"."~2.1.4" =
     self.by-version."rimraf"."2.1.4";
   by-version."rimraf"."2.1.4" = lib.makeOverridable self.buildNodePackage {
@@ -14505,15 +15392,15 @@
     passthru.names = [ "s3http" ];
   };
   "s3http" = self.by-version."s3http"."0.0.5";
-  by-spec."sauce-connect-launcher"."~0.2.2" =
-    self.by-version."sauce-connect-launcher"."0.2.2";
-  by-version."sauce-connect-launcher"."0.2.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-sauce-connect-launcher-0.2.2";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/sauce-connect-launcher/-/sauce-connect-launcher-0.2.2.tgz";
-        name = "sauce-connect-launcher-0.2.2.tgz";
-        sha1 = "cfd951c8b488af38d384aef14920261482e2e05a";
+        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";
       })
     ];
     buildInputs =
@@ -14522,6 +15409,7 @@
       self.by-version."lodash"."1.3.1"
       self.by-version."async"."0.2.10"
       self.by-version."adm-zip"."0.4.4"
+      self.by-version."rimraf"."2.2.6"
     ];
     peerDependencies = [
     ];
@@ -14584,15 +15472,34 @@
     ];
     passthru.names = [ "sax" ];
   };
+  by-spec."scmp"."~0.0.3" =
+    self.by-version."scmp"."0.0.3";
+  by-version."scmp"."0.0.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-scmp-0.0.3";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/scmp/-/scmp-0.0.3.tgz";
+        name = "scmp-0.0.3.tgz";
+        sha1 = "3648df2d7294641e7f78673ffc29681d9bad9073";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."scmp" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "scmp" ];
+  };
   by-spec."selenium-webdriver"."*" =
-    self.by-version."selenium-webdriver"."2.40.0";
-  by-version."selenium-webdriver"."2.40.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-selenium-webdriver-2.40.0";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-2.40.0.tgz";
-        name = "selenium-webdriver-2.40.0.tgz";
-        sha1 = "ca4603c08311ec3688d67e1c8e8263cb9c1c1450";
+        url = "http://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-2.41.0.tgz";
+        name = "selenium-webdriver-2.41.0.tgz";
+        sha1 = "d084dfbc73bdf33aedc7d731eaab028affad7f16";
       })
     ];
     buildInputs =
@@ -14603,7 +15510,7 @@
     ];
     passthru.names = [ "selenium-webdriver" ];
   };
-  "selenium-webdriver" = self.by-version."selenium-webdriver"."2.40.0";
+  "selenium-webdriver" = self.by-version."selenium-webdriver"."2.41.0";
   by-spec."semver"."*" =
     self.by-version."semver"."2.2.1";
   by-version."semver"."2.2.1" = lib.makeOverridable self.buildNodePackage {
@@ -14730,7 +15637,7 @@
     buildInputs =
       (self.nativeDeps."send" or []);
     deps = [
-      self.by-version."debug"."0.7.4"
+      self.by-version."debug"."0.8.1"
       self.by-version."mime"."1.2.11"
       self.by-version."fresh"."0.2.2"
       self.by-version."range-parser"."1.0.0"
@@ -14753,7 +15660,7 @@
     buildInputs =
       (self.nativeDeps."send" or []);
     deps = [
-      self.by-version."debug"."0.7.4"
+      self.by-version."debug"."0.8.1"
       self.by-version."mime"."1.2.6"
       self.by-version."fresh"."0.1.0"
       self.by-version."range-parser"."0.0.4"
@@ -14776,7 +15683,7 @@
     buildInputs =
       (self.nativeDeps."send" or []);
     deps = [
-      self.by-version."debug"."0.7.4"
+      self.by-version."debug"."0.8.1"
       self.by-version."mime"."1.2.6"
       self.by-version."fresh"."0.1.0"
       self.by-version."range-parser"."0.0.4"
@@ -14799,7 +15706,7 @@
     buildInputs =
       (self.nativeDeps."send" or []);
     deps = [
-      self.by-version."debug"."0.7.4"
+      self.by-version."debug"."0.8.1"
       self.by-version."mime"."1.2.11"
       self.by-version."fresh"."0.2.0"
       self.by-version."range-parser"."0.0.4"
@@ -14831,6 +15738,109 @@
   };
   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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/serve-index/-/serve-index-1.0.1.tgz";
+        name = "serve-index-1.0.1.tgz";
+        sha1 = "2782ee8ede6cccaae54957962c4715e8ce1921a6";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."serve-index" or []);
+    deps = [
+      self.by-version."batch"."0.5.0"
+      self.by-version."negotiator"."0.4.2"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "serve-index" ];
+  };
+  by-spec."serve-static"."1.0.1" =
+    self.by-version."serve-static"."1.0.1";
+  by-version."serve-static"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-serve-static-1.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/serve-static/-/serve-static-1.0.1.tgz";
+        name = "serve-static-1.0.1.tgz";
+        sha1 = "10dcbfd44b3e0291a131fc9ab4ab25a9f5a78a42";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."serve-static" or []);
+    deps = [
+      self.by-version."send"."0.1.4"
+    ];
+    peerDependencies = [
+    ];
+    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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/serve-static/-/serve-static-1.0.2.tgz";
+        name = "serve-static-1.0.2.tgz";
+        sha1 = "4129f6727b09fb031134fa6d185683e30bfbef54";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."serve-static" or []);
+    deps = [
+      self.by-version."send"."0.2.0"
+    ];
+    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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/serve-static/-/serve-static-1.0.4.tgz";
+        name = "serve-static-1.0.4.tgz";
+        sha1 = "426fedebe77bad21f373f1efcae09746639fba06";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."serve-static" or []);
+    deps = [
+      self.by-version."parseurl"."1.0.1"
+      self.by-version."send"."0.2.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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/setimmediate/-/setimmediate-1.0.1.tgz";
+        name = "setimmediate-1.0.1.tgz";
+        sha1 = "a9ca56ccbd6a4c3334855f060abcdece5c42ebb7";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."setimmediate" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "setimmediate" ];
+  };
   by-spec."sha"."~1.2.1" =
     self.by-version."sha"."1.2.3";
   by-version."sha"."1.2.3" = lib.makeOverridable self.buildNodePackage {
@@ -14845,7 +15855,7 @@
     buildInputs =
       (self.nativeDeps."sha" or []);
     deps = [
-      self.by-version."graceful-fs"."2.0.2"
+      self.by-version."graceful-fs"."2.0.3"
       self.by-version."readable-stream"."1.0.26"
     ];
     peerDependencies = [
@@ -14890,6 +15900,29 @@
     ];
     passthru.names = [ "shell-quote" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/shell-quote/-/shell-quote-1.4.1.tgz";
+        name = "shell-quote-1.4.1.tgz";
+        sha1 = "ae18442b536a08c720239b079d2f228acbedee40";
+      })
+    ];
+    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"."0.1.x" =
     self.by-version."shelljs"."0.1.4";
   by-version."shelljs"."0.1.4" = lib.makeOverridable self.buildNodePackage {
@@ -14909,8 +15942,6 @@
     ];
     passthru.names = [ "shelljs" ];
   };
-  by-spec."shelljs"."~0.1.4" =
-    self.by-version."shelljs"."0.1.4";
   by-spec."shelljs"."~0.2.6" =
     self.by-version."shelljs"."0.2.6";
   by-version."shelljs"."0.2.6" = lib.makeOverridable self.buildNodePackage {
@@ -14931,14 +15962,14 @@
     passthru.names = [ "shelljs" ];
   };
   by-spec."should"."*" =
-    self.by-version."should"."3.1.3";
-  by-version."should"."3.1.3" = lib.makeOverridable self.buildNodePackage {
-    name = "node-should-3.1.3";
+    self.by-version."should"."3.3.0";
+  by-version."should"."3.3.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-should-3.3.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/should/-/should-3.1.3.tgz";
-        name = "should-3.1.3.tgz";
-        sha1 = "900ff485c1497f873de0aa3bfcf9d8b913fdda24";
+        url = "http://registry.npmjs.org/should/-/should-3.3.0.tgz";
+        name = "should-3.3.0.tgz";
+        sha1 = "88b1adeab97d8811e0e479e3b93d7f1c1bd5bbca";
       })
     ];
     buildInputs =
@@ -14949,7 +15980,7 @@
     ];
     passthru.names = [ "should" ];
   };
-  "should" = self.by-version."should"."3.1.3";
+  "should" = self.by-version."should"."3.3.0";
   by-spec."sigmund"."~1.0.0" =
     self.by-version."sigmund"."1.0.0";
   by-version."sigmund"."1.0.0" = lib.makeOverridable self.buildNodePackage {
@@ -15012,14 +16043,14 @@
     passthru.names = [ "simple-lru-cache" ];
   };
   by-spec."simplesmtp".">= 0.1.22" =
-    self.by-version."simplesmtp"."0.3.22";
-  by-version."simplesmtp"."0.3.22" = lib.makeOverridable self.buildNodePackage {
-    name = "node-simplesmtp-0.3.22";
+    self.by-version."simplesmtp"."0.3.24";
+  by-version."simplesmtp"."0.3.24" = lib.makeOverridable self.buildNodePackage {
+    name = "node-simplesmtp-0.3.24";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/simplesmtp/-/simplesmtp-0.3.22.tgz";
-        name = "simplesmtp-0.3.22.tgz";
-        sha1 = "5bef8fef60e7e3c4ff57117e3502190447de11e5";
+        url = "http://registry.npmjs.org/simplesmtp/-/simplesmtp-0.3.24.tgz";
+        name = "simplesmtp-0.3.24.tgz";
+        sha1 = "7423226b0735a8dbf87c07c3888f33ba2135a0e7";
       })
     ];
     buildInputs =
@@ -15032,6 +16063,28 @@
     ];
     passthru.names = [ "simplesmtp" ];
   };
+  by-spec."slasp"."*" =
+    self.by-version."slasp"."0.0.3";
+  by-version."slasp"."0.0.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-slasp-0.0.3";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/slasp/-/slasp-0.0.3.tgz";
+        name = "slasp-0.0.3.tgz";
+        sha1 = "fb9aba74f30fc2f012d0ff2d34d4b5c678c11f9f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."slasp" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "slasp" ];
+  };
+  "slasp" = self.by-version."slasp"."0.0.3";
+  by-spec."slasp"."0.0.3" =
+    self.by-version."slasp"."0.0.3";
   by-spec."sliced"."0.0.3" =
     self.by-version."sliced"."0.0.3";
   by-version."sliced"."0.0.3" = lib.makeOverridable self.buildNodePackage {
@@ -15111,14 +16164,14 @@
   by-spec."slide"."~1.1.5" =
     self.by-version."slide"."1.1.5";
   by-spec."smartdc"."*" =
-    self.by-version."smartdc"."7.2.0";
-  by-version."smartdc"."7.2.0" = lib.makeOverridable self.buildNodePackage {
-    name = "smartdc-7.2.0";
+    self.by-version."smartdc"."7.2.1";
+  by-version."smartdc"."7.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "smartdc-7.2.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/smartdc/-/smartdc-7.2.0.tgz";
-        name = "smartdc-7.2.0.tgz";
-        sha1 = "2b4f9375f2c709061e96440976767774d5e4fe86";
+        url = "http://registry.npmjs.org/smartdc/-/smartdc-7.2.1.tgz";
+        name = "smartdc-7.2.1.tgz";
+        sha1 = "6fce690557f6b563c061d6adee161d6b33d06148";
       })
     ];
     buildInputs =
@@ -15136,7 +16189,7 @@
     ];
     passthru.names = [ "smartdc" ];
   };
-  "smartdc" = self.by-version."smartdc"."7.2.0";
+  "smartdc" = self.by-version."smartdc"."7.2.1";
   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 {
@@ -15224,7 +16277,7 @@
     ];
     passthru.names = [ "socket.io" ];
   };
-  by-spec."socket.io"."0.9.16" =
+  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";
@@ -15247,7 +16300,7 @@
     ];
     passthru.names = [ "socket.io" ];
   };
-  by-spec."socket.io"."~0.9.13" =
+  by-spec."socket.io"."~0.9.16" =
     self.by-version."socket.io"."0.9.16";
   by-spec."socket.io-client"."0.9.11" =
     self.by-version."socket.io-client"."0.9.11";
@@ -15317,6 +16370,25 @@
     passthru.names = [ "sockjs" ];
   };
   "sockjs" = self.by-version."sockjs"."0.3.8";
+  by-spec."sorted-object"."~1.0.0" =
+    self.by-version."sorted-object"."1.0.0";
+  by-version."sorted-object"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-sorted-object-1.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/sorted-object/-/sorted-object-1.0.0.tgz";
+        name = "sorted-object-1.0.0.tgz";
+        sha1 = "5d1f4f9c1fb2cd48965967304e212eb44cfb6d05";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."sorted-object" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    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 {
@@ -15338,14 +16410,58 @@
     passthru.names = [ "source-map" ];
   };
   "source-map" = self.by-version."source-map"."0.1.33";
+  by-spec."source-map"."0.1.11" =
+    self.by-version."source-map"."0.1.11";
+  by-version."source-map"."0.1.11" = lib.makeOverridable self.buildNodePackage {
+    name = "node-source-map-0.1.11";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/source-map/-/source-map-0.1.11.tgz";
+        name = "source-map-0.1.11.tgz";
+        sha1 = "2eef2fd65a74c179880ae5ee6975d99ce21eb7b4";
+      })
+    ];
+    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.31" =
+    self.by-version."source-map"."0.1.31";
+  by-version."source-map"."0.1.31" = lib.makeOverridable self.buildNodePackage {
+    name = "node-source-map-0.1.31";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz";
+        name = "source-map-0.1.31.tgz";
+        sha1 = "9f704d0d69d9e138a81badf6ebb4fde33d151c61";
+      })
+    ];
+    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";
   by-spec."source-map".">= 0.1.2" =
     self.by-version."source-map"."0.1.33";
+  by-spec."source-map"."~ 0.1.8" =
+    self.by-version."source-map"."0.1.33";
   by-spec."source-map"."~0.1.30" =
     self.by-version."source-map"."0.1.33";
   by-spec."source-map"."~0.1.31" =
     self.by-version."source-map"."0.1.33";
+  by-spec."source-map"."~0.1.33" =
+    self.by-version."source-map"."0.1.33";
   by-spec."source-map"."~0.1.7" =
     self.by-version."source-map"."0.1.33";
   by-spec."spdy"."1.7.1" =
@@ -15467,6 +16583,44 @@
     passthru.names = [ "stackdriver-statsd-backend" ];
   };
   "stackdriver-statsd-backend" = self.by-version."stackdriver-statsd-backend"."0.1.5";
+  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" ];
+  };
   by-spec."statsd"."*" =
     self.by-version."statsd"."0.7.1";
   by-version."statsd"."0.7.1" = lib.makeOverridable self.buildNodePackage {
@@ -15531,7 +16685,7 @@
     ];
     passthru.names = [ "stream-browserify" ];
   };
-  by-spec."stream-combiner"."~0.0.2" =
+  by-spec."stream-combiner"."^0.0.4" =
     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";
@@ -15551,6 +16705,8 @@
     ];
     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 {
@@ -15585,7 +16741,7 @@
     buildInputs =
       (self.nativeDeps."stream-counter" or []);
     deps = [
-      self.by-version."readable-stream"."1.1.11"
+      self.by-version."readable-stream"."1.1.12"
     ];
     peerDependencies = [
     ];
@@ -15688,6 +16844,25 @@
     ];
     passthru.names = [ "stringify-object" ];
   };
+  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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/stringify-object/-/stringify-object-0.2.0.tgz";
+        name = "stringify-object-0.2.0.tgz";
+        sha1 = "832996ea55ab2aaa7570cc9bc0d5774adfc2c585";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."stringify-object" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "stringify-object" ];
+  };
   by-spec."strip-ansi"."~0.1.0" =
     self.by-version."strip-ansi"."0.1.1";
   by-version."strip-ansi"."0.1.1" = lib.makeOverridable self.buildNodePackage {
@@ -15707,6 +16882,25 @@
     ];
     passthru.names = [ "strip-ansi" ];
   };
+  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";
+    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";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."strip-json-comments" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "strip-json-comments" ];
+  };
   by-spec."strong-data-uri"."~0.1.0" =
     self.by-version."strong-data-uri"."0.1.1";
   by-version."strong-data-uri"."0.1.1" = lib.makeOverridable self.buildNodePackage {
@@ -15728,14 +16922,14 @@
     passthru.names = [ "strong-data-uri" ];
   };
   by-spec."stylus"."*" =
-    self.by-version."stylus"."0.42.3";
-  by-version."stylus"."0.42.3" = lib.makeOverridable self.buildNodePackage {
-    name = "stylus-0.42.3";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/stylus/-/stylus-0.42.3.tgz";
-        name = "stylus-0.42.3.tgz";
-        sha1 = "23e8b3e71eb7f60bc4a657de498c8feb9c366c32";
+        url = "http://registry.npmjs.org/stylus/-/stylus-0.44.0-beta3.tgz";
+        name = "stylus-0.44.0-beta3.tgz";
+        sha1 = "a602b30f57f1692cf0f1fb664e60a14e26102cff";
       })
     ];
     buildInputs =
@@ -15743,15 +16937,16 @@
     deps = [
       self.by-version."css-parse"."1.7.0"
       self.by-version."mkdirp"."0.3.5"
-      self.by-version."debug"."0.7.4"
+      self.by-version."debug"."0.8.1"
       self.by-version."sax"."0.5.8"
       self.by-version."glob"."3.2.9"
+      self.by-version."circular-json"."0.1.6"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "stylus" ];
   };
-  "stylus" = self.by-version."stylus"."0.42.3";
+  "stylus" = self.by-version."stylus"."0.44.0-beta3";
   by-spec."stylus"."0.42.2" =
     self.by-version."stylus"."0.42.2";
   by-version."stylus"."0.42.2" = lib.makeOverridable self.buildNodePackage {
@@ -15768,7 +16963,7 @@
     deps = [
       self.by-version."css-parse"."1.7.0"
       self.by-version."mkdirp"."0.3.5"
-      self.by-version."debug"."0.7.4"
+      self.by-version."debug"."0.8.1"
       self.by-version."sax"."0.5.8"
       self.by-version."glob"."3.2.9"
     ];
@@ -15836,15 +17031,15 @@
     ];
     passthru.names = [ "sudo-block" ];
   };
-  by-spec."superagent"."0.16.0" =
-    self.by-version."superagent"."0.16.0";
-  by-version."superagent"."0.16.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-superagent-0.16.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/superagent/-/superagent-0.16.0.tgz";
-        name = "superagent-0.16.0.tgz";
-        sha1 = "f38df4a476565dffdbaa07764b81a19f0ab38a4e";
+        url = "http://registry.npmjs.org/superagent/-/superagent-0.17.0.tgz";
+        name = "superagent-0.17.0.tgz";
+        sha1 = "aadcd50fbe5a93e71991118d79bf0714d625bba8";
       })
     ];
     buildInputs =
@@ -15858,6 +17053,7 @@
       self.by-version."cookiejar"."1.3.0"
       self.by-version."debug"."0.7.4"
       self.by-version."reduce-component"."1.0.1"
+      self.by-version."extend"."1.2.1"
     ];
     peerDependencies = [
     ];
@@ -15888,30 +17084,30 @@
     ];
     passthru.names = [ "superagent" ];
   };
-  by-spec."superagent"."~0.16.0" =
-    self.by-version."superagent"."0.16.0";
+  by-spec."superagent"."~0.17.0" =
+    self.by-version."superagent"."0.17.0";
   by-spec."supertest"."*" =
-    self.by-version."supertest"."0.9.0";
-  by-version."supertest"."0.9.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-supertest-0.9.0";
+    self.by-version."supertest"."0.11.0";
+  by-version."supertest"."0.11.0" = lib.makeOverridable self.buildNodePackage {
+    name = "node-supertest-0.11.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/supertest/-/supertest-0.9.0.tgz";
-        name = "supertest-0.9.0.tgz";
-        sha1 = "955efa32ad01fb9eecfc6f7c3122699a5843bba4";
+        url = "http://registry.npmjs.org/supertest/-/supertest-0.11.0.tgz";
+        name = "supertest-0.11.0.tgz";
+        sha1 = "f8496b9f05cac1ea2fcec1d21adeca7167f42460";
       })
     ];
     buildInputs =
       (self.nativeDeps."supertest" or []);
     deps = [
-      self.by-version."superagent"."0.16.0"
+      self.by-version."superagent"."0.17.0"
       self.by-version."methods"."0.1.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "supertest" ];
   };
-  "supertest" = self.by-version."supertest"."0.9.0";
+  "supertest" = self.by-version."supertest"."0.11.0";
   by-spec."swig"."0.14.x" =
     self.by-version."swig"."0.14.0";
   by-version."swig"."0.14.0" = lib.makeOverridable self.buildNodePackage {
@@ -15954,21 +17150,21 @@
   };
   by-spec."sylvester".">= 0.0.8" =
     self.by-version."sylvester"."0.0.21";
-  by-spec."syntax-error"."~0.1.0" =
-    self.by-version."syntax-error"."0.1.0";
-  by-version."syntax-error"."0.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-syntax-error-0.1.0";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/syntax-error/-/syntax-error-0.1.0.tgz";
-        name = "syntax-error-0.1.0.tgz";
-        sha1 = "8cb515e730fe4f19d3a887035f8630e6494aac65";
+        url = "http://registry.npmjs.org/syntax-error/-/syntax-error-1.1.0.tgz";
+        name = "syntax-error-1.1.0.tgz";
+        sha1 = "8bc3b08141b4e5084dfc66c74e15928db9f34e85";
       })
     ];
     buildInputs =
       (self.nativeDeps."syntax-error" or []);
     deps = [
-      self.by-version."esprima-six"."0.0.3"
+      self.by-version."esprima-fb"."3001.1.0-dev-harmony-fb"
     ];
     peerDependencies = [
     ];
@@ -16043,9 +17239,9 @@
     ];
     passthru.names = [ "tar" ];
   };
-  by-spec."tar"."~0.1.17" =
+  by-spec."tar"."^0.1.18" =
     self.by-version."tar"."0.1.19";
-  by-spec."tar"."~0.1.18" =
+  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";
@@ -16115,15 +17311,15 @@
     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.2";
-  by-version."tempfile"."0.1.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-tempfile-0.1.2";
+  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.2.tgz";
-        name = "tempfile-0.1.2.tgz";
-        sha1 = "81d4e51f35856592f3b51d568135791af3b038e0";
+        url = "http://registry.npmjs.org/tempfile/-/tempfile-0.1.3.tgz";
+        name = "tempfile-0.1.3.tgz";
+        sha1 = "7d6b710047339d39f847327a056dadf183103010";
       })
     ];
     buildInputs =
@@ -16135,25 +17331,6 @@
     ];
     passthru.names = [ "tempfile" ];
   };
-  by-spec."text-table"."~0.1.1" =
-    self.by-version."text-table"."0.1.1";
-  by-version."text-table"."0.1.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-text-table-0.1.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/text-table/-/text-table-0.1.1.tgz";
-        name = "text-table-0.1.1.tgz";
-        sha1 = "9aa4347a39b6950cd24190264576f62db6e52d93";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."text-table" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "text-table" ];
-  };
   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 {
@@ -16192,15 +17369,15 @@
     ];
     passthru.names = [ "throttleit" ];
   };
-  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.2.7 <3" =
+    self.by-version."through"."2.3.4";
+  by-version."through"."2.3.4" = lib.makeOverridable self.buildNodePackage {
+    name = "node-through-2.3.4";
     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/through/-/through-2.3.4.tgz";
+        name = "through-2.3.4.tgz";
+        sha1 = "495e40e8d8a8eaebc7c275ea88c2b8fc14c56455";
       })
     ];
     buildInputs =
@@ -16211,15 +17388,15 @@
     ];
     passthru.names = [ "through" ];
   };
-  by-spec."through"."~2.3.4" =
-    self.by-version."through"."2.3.4";
-  by-version."through"."2.3.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-through-2.3.4";
+  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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/through/-/through-2.3.4.tgz";
-        name = "through-2.3.4.tgz";
-        sha1 = "495e40e8d8a8eaebc7c275ea88c2b8fc14c56455";
+        url = "http://registry.npmjs.org/through/-/through-2.2.7.tgz";
+        name = "through-2.2.7.tgz";
+        sha1 = "6e8e21200191d4eb6a99f6f010df46aa1c6eb2bd";
       })
     ];
     buildInputs =
@@ -16230,7 +17407,9 @@
     ];
     passthru.names = [ "through" ];
   };
-  by-spec."through2"."~0.4.0" =
+  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";
@@ -16251,6 +17430,8 @@
     ];
     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 {
@@ -16291,14 +17472,14 @@
     passthru.names = [ "timespan" ];
   };
   by-spec."timezone"."*" =
-    self.by-version."timezone"."0.0.28";
-  by-version."timezone"."0.0.28" = lib.makeOverridable self.buildNodePackage {
-    name = "node-timezone-0.0.28";
+    self.by-version."timezone"."0.0.30";
+  by-version."timezone"."0.0.30" = lib.makeOverridable self.buildNodePackage {
+    name = "node-timezone-0.0.30";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/timezone/-/timezone-0.0.28.tgz";
-        name = "timezone-0.0.28.tgz";
-        sha1 = "a3fb234b48093c8edd36de5662e92ece6477a88c";
+        url = "http://registry.npmjs.org/timezone/-/timezone-0.0.30.tgz";
+        name = "timezone-0.0.30.tgz";
+        sha1 = "f83e46d35c017a33a684a4d8bb8fac3debed49bf";
       })
     ];
     buildInputs =
@@ -16309,7 +17490,7 @@
     ];
     passthru.names = [ "timezone" ];
   };
-  "timezone" = self.by-version."timezone"."0.0.28";
+  "timezone" = self.by-version."timezone"."0.0.30";
   by-spec."tinycolor"."0.x" =
     self.by-version."tinycolor"."0.0.1";
   by-version."tinycolor"."0.0.1" = lib.makeOverridable self.buildNodePackage {
@@ -16348,7 +17529,7 @@
       self.by-version."fields"."0.1.12"
       self.by-version."humanize"."0.0.9"
       self.by-version."jade"."0.35.0"
-      self.by-version."longjohn"."0.2.2"
+      self.by-version."longjohn"."0.2.4"
       self.by-version."moment"."2.4.0"
       self.by-version."node-appc"."0.2.0"
       self.by-version."optimist"."0.6.1"
@@ -16599,6 +17780,26 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/type-is/-/type-is-1.1.0.tgz";
+        name = "type-is-1.1.0.tgz";
+        sha1 = "d0245ec8b2676668d59dd0cf3255060676a57db6";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."type-is" or []);
+    deps = [
+      self.by-version."mime"."1.2.11"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "type-is" ];
+  };
   by-spec."typechecker"."~2.0.1" =
     self.by-version."typechecker"."2.0.8";
   by-version."typechecker"."2.0.8" = lib.makeOverridable self.buildNodePackage {
@@ -16680,14 +17881,14 @@
     passthru.names = [ "uglify-js" ];
   };
   by-spec."uglify-js"."^2.4.0" =
-    self.by-version."uglify-js"."2.4.12";
-  by-version."uglify-js"."2.4.12" = lib.makeOverridable self.buildNodePackage {
-    name = "uglify-js-2.4.12";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/uglify-js/-/uglify-js-2.4.12.tgz";
-        name = "uglify-js-2.4.12.tgz";
-        sha1 = "2354d9659f85330c1e3e2910f8acd77fe14bb4a8";
+        url = "http://registry.npmjs.org/uglify-js/-/uglify-js-2.4.13.tgz";
+        name = "uglify-js-2.4.13.tgz";
+        sha1 = "18debc9e6ecfc20db1a5ea035f839d436a605aba";
       })
     ];
     buildInputs =
@@ -16702,25 +17903,6 @@
     ];
     passthru.names = [ "uglify-js" ];
   };
-  by-spec."uglify-js"."~1.2" =
-    self.by-version."uglify-js"."1.2.6";
-  by-version."uglify-js"."1.2.6" = lib.makeOverridable self.buildNodePackage {
-    name = "uglify-js-1.2.6";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/uglify-js/-/uglify-js-1.2.6.tgz";
-        name = "uglify-js-1.2.6.tgz";
-        sha1 = "d354b2d3c1cf10ebc18fa78c11a28bdd9ce1580d";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."uglify-js" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "uglify-js" ];
-  };
   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 {
@@ -16769,9 +17951,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.12";
+    self.by-version."uglify-js"."2.4.13";
   by-spec."uglify-js"."~2.4.12" =
-    self.by-version."uglify-js"."2.4.12";
+    self.by-version."uglify-js"."2.4.13";
   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 {
@@ -16829,6 +18011,8 @@
     ];
     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 {
@@ -16846,7 +18030,7 @@
       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.12"
+      self.by-version."uglify-js"."2.4.13"
     ];
     peerDependencies = [
     ];
@@ -16897,8 +18081,6 @@
     self.by-version."underscore"."1.6.0";
   by-spec."underscore".">=1.5.0" =
     self.by-version."underscore"."1.6.0";
-  by-spec."underscore".">=1.5.x" =
-    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" =
@@ -16989,31 +18171,31 @@
     passthru.names = [ "unfunk-diff" ];
   };
   by-spec."ungit"."*" =
-    self.by-version."ungit"."0.7.1";
-  by-version."ungit"."0.7.1" = lib.makeOverridable self.buildNodePackage {
-    name = "ungit-0.7.1";
+    self.by-version."ungit"."0.8.0";
+  by-version."ungit"."0.8.0" = lib.makeOverridable self.buildNodePackage {
+    name = "ungit-0.8.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/ungit/-/ungit-0.7.1.tgz";
-        name = "ungit-0.7.1.tgz";
-        sha1 = "9b1b768ecd97a66f7b97b5d7a1b36f29682e2bf7";
+        url = "http://registry.npmjs.org/ungit/-/ungit-0.8.0.tgz";
+        name = "ungit-0.8.0.tgz";
+        sha1 = "ca1f166ee65fbfe54469459d51f77ca502f1c6a4";
       })
     ];
     buildInputs =
       (self.nativeDeps."ungit" or []);
     deps = [
-      self.by-version."express"."3.4.8"
-      self.by-version."superagent"."0.16.0"
+      self.by-version."express"."4.0.0"
+      self.by-version."superagent"."0.17.0"
       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.2.10"
+      self.by-version."async"."0.6.2"
       self.by-version."rc"."0.3.4"
       self.by-version."uuid"."1.4.1"
-      self.by-version."winston"."0.7.2"
+      self.by-version."winston"."0.7.3"
       self.by-version."passport"."0.2.0"
-      self.by-version."passport-local"."0.1.6"
+      self.by-version."passport-local"."1.0.0"
       self.by-version."semver"."2.2.1"
       self.by-version."forever-monitor"."1.1.0"
       self.by-version."open"."0.0.4"
@@ -17026,44 +18208,48 @@
       self.by-version."keen.io"."0.0.4"
       self.by-version."getmac"."1.0.6"
       self.by-version."deep-extend"."0.2.8"
-      self.by-version."raven"."0.6.2"
-      self.by-version."knockout"."3.0.0"
-      self.by-version."npm-registry-client"."0.4.4"
-      self.by-version."npmconf"."0.1.13"
+      self.by-version."raven"."0.6.3"
+      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.31.2"
+      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.2"
+      self.by-version."serve-static"."1.0.4"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "ungit" ];
   };
-  "ungit" = self.by-version."ungit"."0.7.1";
+  "ungit" = self.by-version."ungit"."0.8.0";
   by-spec."update-notifier"."~0.1.3" =
-    self.by-version."update-notifier"."0.1.7";
-  by-version."update-notifier"."0.1.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-update-notifier-0.1.7";
+    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";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/update-notifier/-/update-notifier-0.1.7.tgz";
-        name = "update-notifier-0.1.7.tgz";
-        sha1 = "b37fb55004835240fd2e7e360c52ccffde5219c9";
+        url = "http://registry.npmjs.org/update-notifier/-/update-notifier-0.1.8.tgz";
+        name = "update-notifier-0.1.8.tgz";
+        sha1 = "ebf5c698375f5c232031a419634fab66cc0322a6";
       })
     ];
     buildInputs =
       (self.nativeDeps."update-notifier" or []);
     deps = [
       self.by-version."request"."2.27.0"
-      self.by-version."configstore"."0.1.7"
+      self.by-version."configstore"."0.2.3"
       self.by-version."semver"."2.1.0"
-      self.by-version."chalk"."0.2.1"
+      self.by-version."chalk"."0.4.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "update-notifier" ];
   };
   by-spec."update-notifier"."~0.1.7" =
-    self.by-version."update-notifier"."0.1.7";
+    self.by-version."update-notifier"."0.1.8";
   by-spec."url"."~0.7.9" =
     self.by-version."url"."0.7.9";
   by-version."url"."0.7.9" = lib.makeOverridable self.buildNodePackage {
@@ -17086,14 +18272,14 @@
     passthru.names = [ "url" ];
   };
   by-spec."useragent"."~2.0.4" =
-    self.by-version."useragent"."2.0.7";
-  by-version."useragent"."2.0.7" = lib.makeOverridable self.buildNodePackage {
-    name = "node-useragent-2.0.7";
+    self.by-version."useragent"."2.0.8";
+  by-version."useragent"."2.0.8" = lib.makeOverridable self.buildNodePackage {
+    name = "node-useragent-2.0.8";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/useragent/-/useragent-2.0.7.tgz";
-        name = "useragent-2.0.7.tgz";
-        sha1 = "a44c07d157a15e13d73d4af4ece6aab70f298224";
+        url = "http://registry.npmjs.org/useragent/-/useragent-2.0.8.tgz";
+        name = "useragent-2.0.8.tgz";
+        sha1 = "32caa86d3f404e92d7d4183831dd103ebc1a3125";
       })
     ];
     buildInputs =
@@ -17184,6 +18370,25 @@
     ];
     passthru.names = [ "util" ];
   };
+  by-spec."util-extend"."^1.0.1" =
+    self.by-version."util-extend"."1.0.1";
+  by-version."util-extend"."1.0.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-util-extend-1.0.1";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/util-extend/-/util-extend-1.0.1.tgz";
+        name = "util-extend-1.0.1.tgz";
+        sha1 = "bb703b79480293ddcdcfb3c6a9fea20f483415bc";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."util-extend" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "util-extend" ];
+  };
   by-spec."utile"."0.1.x" =
     self.by-version."utile"."0.1.7";
   by-version."utile"."0.1.7" = lib.makeOverridable self.buildNodePackage {
@@ -17401,6 +18606,25 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/vhost/-/vhost-1.0.0.tgz";
+        name = "vhost-1.0.0.tgz";
+        sha1 = "654513f289a4f898aab745bbd633e40180c9c4c0";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."vhost" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    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 {
@@ -17541,15 +18765,15 @@
     ];
     passthru.names = [ "watch" ];
   };
-  by-spec."wd"."~0.2.8" =
-    self.by-version."wd"."0.2.11";
-  by-version."wd"."0.2.11" = lib.makeOverridable self.buildNodePackage {
-    name = "wd-0.2.11";
+  by-spec."wd"."~0.2.12" =
+    self.by-version."wd"."0.2.17";
+  by-version."wd"."0.2.17" = lib.makeOverridable self.buildNodePackage {
+    name = "wd-0.2.17";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/wd/-/wd-0.2.11.tgz";
-        name = "wd-0.2.11.tgz";
-        sha1 = "27889d290facf3d19e050b3c789f2e852ca03f10";
+        url = "http://registry.npmjs.org/wd/-/wd-0.2.17.tgz";
+        name = "wd-0.2.17.tgz";
+        sha1 = "277b417057a1a5fe7845ab3dc4ff130888f4ec95";
       })
     ];
     buildInputs =
@@ -17557,7 +18781,7 @@
     deps = [
       self.by-version."async"."0.2.10"
       self.by-version."vargs"."0.1.0"
-      self.by-version."q"."1.0.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."lodash"."2.4.1"
@@ -17567,6 +18791,25 @@
     ];
     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";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/weak-map/-/weak-map-1.0.4.tgz";
+        name = "weak-map-1.0.4.tgz";
+        sha1 = "1acddee2cc90eb30950860b7415c79cefc5f07c9";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."weak-map" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "weak-map" ];
+  };
   by-spec."webdrvr"."*" =
     self.by-version."webdrvr"."2.40.0";
   by-version."webdrvr"."2.40.0" = lib.makeOverridable self.buildNodePackage {
@@ -17584,8 +18827,8 @@
       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.13"
-      self.by-version."phantomjs"."1.9.7-1"
+      self.by-version."npmconf"."0.1.14"
+      self.by-version."phantomjs"."1.9.7-3"
       self.by-version."tmp"."0.0.23"
       self.by-version."follow-redirects"."0.0.3"
     ];
@@ -17634,7 +18877,7 @@
     ];
     passthru.names = [ "when" ];
   };
-  by-spec."which"."*" =
+  by-spec."which"."1" =
     self.by-version."which"."1.0.5";
   by-version."which"."1.0.5" = lib.makeOverridable self.buildNodePackage {
     name = "which-1.0.5";
@@ -17653,8 +18896,6 @@
     ];
     passthru.names = [ "which" ];
   };
-  by-spec."which"."1" =
-    self.by-version."which"."1.0.5";
   by-spec."which"."1.0.x" =
     self.by-version."which"."1.0.5";
   by-spec."which"."~1.0.5" =
@@ -17681,14 +18922,14 @@
     passthru.names = [ "winser" ];
   };
   by-spec."winston"."*" =
-    self.by-version."winston"."0.7.2";
-  by-version."winston"."0.7.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-winston-0.7.2";
+    self.by-version."winston"."0.7.3";
+  by-version."winston"."0.7.3" = lib.makeOverridable self.buildNodePackage {
+    name = "node-winston-0.7.3";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/winston/-/winston-0.7.2.tgz";
-        name = "winston-0.7.2.tgz";
-        sha1 = "2570ae1aa1d8a9401e8d5a88362e1cf936550ceb";
+        url = "http://registry.npmjs.org/winston/-/winston-0.7.3.tgz";
+        name = "winston-0.7.3.tgz";
+        sha1 = "7ae313ba73fcdc2ecb4aa2f9cd446e8298677266";
       })
     ];
     buildInputs =
@@ -17706,7 +18947,7 @@
     ];
     passthru.names = [ "winston" ];
   };
-  "winston" = self.by-version."winston"."0.7.2";
+  "winston" = self.by-version."winston"."0.7.3";
   by-spec."winston"."0.6.2" =
     self.by-version."winston"."0.6.2";
   by-version."winston"."0.6.2" = lib.makeOverridable self.buildNodePackage {
@@ -17737,17 +18978,43 @@
     self.by-version."winston"."0.6.2";
   by-spec."winston"."0.7.2" =
     self.by-version."winston"."0.7.2";
+  by-version."winston"."0.7.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-winston-0.7.2";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/winston/-/winston-0.7.2.tgz";
+        name = "winston-0.7.2.tgz";
+        sha1 = "2570ae1aa1d8a9401e8d5a88362e1cf936550ceb";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."winston" or []);
+    deps = [
+      self.by-version."async"."0.2.10"
+      self.by-version."colors"."0.6.2"
+      self.by-version."cycle"."1.0.3"
+      self.by-version."eyes"."0.1.8"
+      self.by-version."pkginfo"."0.3.0"
+      self.by-version."request"."2.16.6"
+      self.by-version."stack-trace"."0.0.9"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "winston" ];
+  };
   by-spec."winston"."~0.7.2" =
-    self.by-version."winston"."0.7.2";
-  by-spec."wiredep"."~0.4.2" =
-    self.by-version."wiredep"."0.4.2";
-  by-version."wiredep"."0.4.2" = lib.makeOverridable self.buildNodePackage {
-    name = "node-wiredep-0.4.2";
+    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-0.4.2.tgz";
-        name = "wiredep-0.4.2.tgz";
-        sha1 = "42d4cf07422576f26e3a04045edc163da101a66f";
+        url = "http://registry.npmjs.org/wiredep/-/wiredep-1.0.0.tgz";
+        name = "wiredep-1.0.0.tgz";
+        sha1 = "2e570465657b97e7494abf62978a3e52fc37ac52";
       })
     ];
     buildInputs =
@@ -17755,6 +19022,7 @@
     deps = [
       self.by-version."lodash"."1.3.1"
       self.by-version."chalk"."0.1.1"
+      self.by-version."glob"."3.2.9"
     ];
     peerDependencies = [
     ];
@@ -17814,7 +19082,7 @@
     buildInputs =
       (self.nativeDeps."with" or []);
     deps = [
-      self.by-version."uglify-js"."2.4.12"
+      self.by-version."uglify-js"."2.4.13"
     ];
     peerDependencies = [
     ];
@@ -17883,6 +19151,25 @@
   };
   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 {
@@ -17989,28 +19276,28 @@
     passthru.names = [ "xml2js" ];
   };
   by-spec."xml2js".">= 0.0.1" =
-    self.by-version."xml2js"."0.4.1";
-  by-version."xml2js"."0.4.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-xml2js-0.4.1";
+    self.by-version."xml2js"."0.4.2";
+  by-version."xml2js"."0.4.2" = lib.makeOverridable self.buildNodePackage {
+    name = "node-xml2js-0.4.2";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/xml2js/-/xml2js-0.4.1.tgz";
-        name = "xml2js-0.4.1.tgz";
-        sha1 = "dee0630173a5c6ea62797f848615fd55c6bc6992";
+        url = "http://registry.npmjs.org/xml2js/-/xml2js-0.4.2.tgz";
+        name = "xml2js-0.4.2.tgz";
+        sha1 = "93911c393c4a332a2dce1222801eb571453b2f90";
       })
     ];
     buildInputs =
       (self.nativeDeps."xml2js" or []);
     deps = [
       self.by-version."sax"."0.5.8"
-      self.by-version."xmlbuilder"."2.1.0"
+      self.by-version."xmlbuilder"."2.2.1"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "xml2js" ];
   };
   by-spec."xml2js".">=0.1.7" =
-    self.by-version."xml2js"."0.4.1";
+    self.by-version."xml2js"."0.4.2";
   by-spec."xmlbuilder"."0.4.2" =
     self.by-version."xmlbuilder"."0.4.2";
   by-version."xmlbuilder"."0.4.2" = lib.makeOverridable self.buildNodePackage {
@@ -18031,20 +19318,20 @@
     passthru.names = [ "xmlbuilder" ];
   };
   by-spec."xmlbuilder".">=0.4.2" =
-    self.by-version."xmlbuilder"."2.1.0";
-  by-version."xmlbuilder"."2.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "node-xmlbuilder-2.1.0";
+    self.by-version."xmlbuilder"."2.2.1";
+  by-version."xmlbuilder"."2.2.1" = lib.makeOverridable self.buildNodePackage {
+    name = "node-xmlbuilder-2.2.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-2.1.0.tgz";
-        name = "xmlbuilder-2.1.0.tgz";
-        sha1 = "6ddae31683b6df12100b29fc8a0d4f46349abbed";
+        url = "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-2.2.1.tgz";
+        name = "xmlbuilder-2.2.1.tgz";
+        sha1 = "9326430f130d87435d4c4086643aa2926e105a32";
       })
     ];
     buildInputs =
       (self.nativeDeps."xmlbuilder" or []);
     deps = [
-      self.by-version."underscore"."1.6.0"
+      self.by-version."lodash-node"."2.4.1"
     ];
     peerDependencies = [
     ];
@@ -18127,6 +19414,8 @@
     ];
     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 {
@@ -18147,45 +19436,6 @@
     ];
     passthru.names = [ "yargs" ];
   };
-  by-spec."yeoman-generator"."~0.13.0" =
-    self.by-version."yeoman-generator"."0.13.4";
-  by-version."yeoman-generator"."0.13.4" = lib.makeOverridable self.buildNodePackage {
-    name = "node-yeoman-generator-0.13.4";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/yeoman-generator/-/yeoman-generator-0.13.4.tgz";
-        name = "yeoman-generator-0.13.4.tgz";
-        sha1 = "066798dd978026d37be6657b2672a17bc4f4ce34";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."yeoman-generator" or []);
-    deps = [
-      self.by-version."cheerio"."0.12.4"
-      self.by-version."request"."2.25.0"
-      self.by-version."rimraf"."2.2.6"
-      self.by-version."tar"."0.1.19"
-      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"."1.3.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.1.4"
-      self.by-version."findup-sync"."0.1.2"
-      self.by-version."chalk"."0.2.1"
-      self.by-version."text-table"."0.1.1"
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "yeoman-generator" ];
-  };
   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 {
@@ -18215,10 +19465,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.2"
+      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.10"
+      self.by-version."download"."0.1.15"
       self.by-version."request"."2.27.0"
       self.by-version."file-utils"."0.1.5"
     ];
@@ -18255,10 +19505,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.2"
+      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.10"
+      self.by-version."download"."0.1.15"
       self.by-version."request"."2.30.0"
       self.by-version."file-utils"."0.1.5"
       self.by-version."class-extend"."0.1.1"
@@ -18284,18 +19534,18 @@
       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.7"
+      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.3"
+      self.by-version."findup"."0.1.5"
       self.by-version."shelljs"."0.2.6"
     ];
     peerDependencies = [
       self.by-version."grunt-cli"."0.1.13"
-      self.by-version."bower"."1.2.8"
+      self.by-version."bower"."1.3.2"
     ];
     passthru.names = [ "yo" ];
   };
@@ -18344,25 +19594,6 @@
     ];
     passthru.names = [ "zip-stream" ];
   };
-  by-spec."zlib-browserify"."0.0.1" =
-    self.by-version."zlib-browserify"."0.0.1";
-  by-version."zlib-browserify"."0.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "node-zlib-browserify-0.0.1";
-    src = [
-      (fetchurl {
-        url = "http://registry.npmjs.org/zlib-browserify/-/zlib-browserify-0.0.1.tgz";
-        name = "zlib-browserify-0.0.1.tgz";
-        sha1 = "4fa6a45d00dbc15f318a4afa1d9afc0258e176cc";
-      })
-    ];
-    buildInputs =
-      (self.nativeDeps."zlib-browserify" or []);
-    deps = [
-    ];
-    peerDependencies = [
-    ];
-    passthru.names = [ "zlib-browserify" ];
-  };
   by-spec."zlib-browserify"."^0.0.3" =
     self.by-version."zlib-browserify"."0.0.3";
   by-version."zlib-browserify"."0.0.3" = lib.makeOverridable self.buildNodePackage {
diff --git a/pkgs/top-level/node-packages.json b/pkgs/top-level/node-packages.json
index 6539fc3e6dda..45447127dca0 100644
--- a/pkgs/top-level/node-packages.json
+++ b/pkgs/top-level/node-packages.json
@@ -118,4 +118,8 @@
 , "fetch-bower"
 , { "titanium": "3.2.1" }
 , "gh"
+, "deepmerge"
+, "slasp"
+, "react"
+, { "pure-css": "git://github.com/yui/pure.git#v0.5.0-rc-1" }
 ]
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index d5cd011bbaea..ad5a5bf9fed6 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -88,27 +88,27 @@ let self = _self // overrides; _self = with self; {
   };
 
   aliased = buildPerlPackage rec {
-    name = "aliased-0.30";
+    name = "aliased-0.31";
     src = fetchurl {
       url = "mirror://cpan/authors/id/O/OV/OVID/${name}.tar.gz";
-      sha256 = "1iqcbfv600m31rfvl7r9ckr0hh0vny63q7a6yyhfrh4ppcgj4ig4";
+      sha256 = "0gxfqdddlq5g1b2zs99b251hz52z9ys4yni7j2p8gyk5zij3wm1s";
     };
   };
 
   AlienWxWidgets = buildPerlPackage rec {
-    name = "Alien-wxWidgets-0.64";
+    name = "Alien-wxWidgets-0.65";
     src = fetchurl {
       url = "mirror://cpan/authors/id/M/MD/MDOOTSON/${name}.tar.gz";
-      sha256 = "1frmvdppzw1vrbk2jvwxh5a5qafl7bigflpgwpkzdg4v9nswgbmx";
+      sha256 = "0h4g7jl0p8a35kyvsji3qlb75mbcfqpvvmwh7s9krkbqklqjlxxl";
     };
     propagatedBuildInputs = [ pkgs.pkgconfig pkgs.gtk2 pkgs.wxGTK ];
   };
 
   AnyEvent = buildPerlPackage {
-    name = "AnyEvent-7.05";
+    name = "AnyEvent-7.07";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-7.05.tar.gz;
-      sha256 = "0022y5xbn3dn5x0q1kzvx15icf3g1cqqljrfhyriy794a42fply6";
+      url = mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-7.07.tar.gz;
+      sha256 = "01iilh11xc2gw6fxxr6il3r6n1k4cf6swaddgbhi525wfzlchk2c";
     };
     meta = {
       maintainers = with maintainers; [ ocharles ];
@@ -156,10 +156,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   AppCLI = buildPerlPackage {
-    name = "App-CLI-0.07";
+    name = "App-CLI-0.313";
     src = fetchurl {
-      url = mirror://cpan/authors/id/C/CL/CLKAO/App-CLI-0.07.tar.gz;
-      sha256 = "000866qsm7jck3ini69b02sgbjwp6s297lsds002r7xk2wb6fqcz";
+      url = mirror://cpan/authors/id/C/CO/CORNELIUS/App-CLI-0.313.tar.gz;
+      sha256 = "0ni1z14xis1b634qjc3zra9c9pl2icfr6sp5qxs0xy8nvib65037";
     };
     propagatedBuildInputs = [LocaleMaketextSimple];
   };
@@ -200,6 +200,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  ArchiveCpio = buildPerlPackage {
+    name = "Archive-Cpio-0.09";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PI/PIXEL/Archive-Cpio-0.09.tar.gz;
+      sha256 = "1cf8k5zjykdbc1mn8lixlkij6jklwn6divzyq2grycj3rpd36g5c";
+    };
+    meta = {
+      description = "Module for manipulations of cpio archives";
+      platforms = stdenv.lib.platforms.linux;
+    };
+  };
+
   ArchiveZip = buildPerlPackage {
     name = "Archive-Zip-1.16";
     src = fetchurl {
@@ -323,10 +335,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   BHooksEndOfScope = buildPerlPackage {
-    name = "B-Hooks-EndOfScope-0.12";
+    name = "B-Hooks-EndOfScope-0.13";
     src = fetchurl {
-      url = mirror://cpan/authors/id/B/BO/BOBTFISH/B-Hooks-EndOfScope-0.12.tar.gz;
-      sha256 = "1gagn8b9zhbwk4f4cllrvir1mspvq0ladsy0pfkwl9w85q1843lj";
+      url = mirror://cpan/authors/id/E/ET/ETHER/B-Hooks-EndOfScope-0.13.tar.gz;
+      sha256 = "1f5d0lbkwf23dfjn60g6fynmjhy5rxdyxcpdfb07srm73qpg2zpi";
     };
     propagatedBuildInputs = [ ModuleImplementation ModuleRuntime SubExporterProgressive ];
     meta = {
@@ -377,10 +389,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   boolean = buildPerlPackage {
-    name = "boolean-0.30";
+    name = "boolean-0.32";
     src = fetchurl {
-      url = mirror://cpan/authors/id/I/IN/INGY/boolean-0.30.tar.gz;
-      sha256 = "f46e7a6121d5728ef2ce285a82d1dde94f6dfa0b846a612db75b1dcd37b9fc7f";
+      url = mirror://cpan/authors/id/I/IN/INGY/boolean-0.32.tar.gz;
+      sha256 = "1icihm1cib90klfjrk069s7031n1c7xk3fmkr2bfxrwqda4di7jg";
     };
     meta = {
       homepage = https://github.com/ingydotnet/boolean-pm/tree;
@@ -390,10 +402,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   BoostGeometryUtils = buildPerlModule rec {
-    name = "Boost-Geometry-Utils-0.12";
+    name = "Boost-Geometry-Utils-0.15";
     src = fetchurl {
       url = "mirror://cpan/authors/id/A/AA/AAR/${name}.tar.gz";
-      sha256 = "1pywbxjf05qpcixshblhd2cham601zwa9w7c3k5waz4cdild6g1m";
+      sha256 = "1jnihz3029x51a455nxa0jx2z125x38q3vkkggsgdlrvawzxsm00";
     };
     propagatedBuildInputs = [ ModuleBuildWithXSpp ExtUtilsTypemapsDefault ];
   };
@@ -508,10 +520,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   cam_pdf = buildPerlPackage rec {
-    name = "CAM-PDF-1.52";
+    name = "CAM-PDF-1.60";
     src = fetchurl {
       url = "mirror://cpan/authors/id/C/CD/CDOLAN/${name}.tar.gz";
-      sha256 = "1lamnx0vcqzzcxdmj5038gvyn6z5xcy9756jhndgpggjfkzilwkh";
+      sha256 = "12dv5ssf3y7yjz9mrrqnfzx8nf4ydk1qijf5fx59495671zzqsp7";
     };
     propagatedBuildInputs = [ CryptRC4 TextPDF ];
     buildInputs = [ TestMore ];
@@ -532,10 +544,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CaptureTiny = buildPerlPackage {
-    name = "Capture-Tiny-0.21";
+    name = "Capture-Tiny-0.24";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DA/DAGOLDEN/Capture-Tiny-0.21.tar.gz;
-      sha256 = "1lvz2639zsjpr3001b2xyidnsd4kcgll5fvaa0pm928wzldb49wg";
+      url = mirror://cpan/authors/id/D/DA/DAGOLDEN/Capture-Tiny-0.24.tar.gz;
+      sha256 = "0rg0m9irhx8jwamxdi2ms4vhhxy7q050gjrn2m051spqfa26zkwv";
     };
     meta = {
       homepage = https://metacpan.org/release/Capture-Tiny;
@@ -631,10 +643,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CatalystAuthenticationStoreDBIxClass = buildPerlPackage {
-    name = "Catalyst-Authentication-Store-DBIx-Class-0.1503";
+    name = "Catalyst-Authentication-Store-DBIx-Class-0.1506";
     src = fetchurl {
-      url = mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Authentication-Store-DBIx-Class-0.1503.tar.gz;
-      sha256 = "1l11if91gjfrga7i7bjxwa0zybhkkrpgg6ps3nxm30vmg7xqaf4d";
+      url = mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Authentication-Store-DBIx-Class-0.1506.tar.gz;
+      sha256 = "0i5ja7690fs9nhxcij6lw51j804sm8s06m5mvk1n8pi8jljrymvw";
     };
     propagatedBuildInputs = [ CatalystModelDBICSchema CatalystPluginAuthentication CatalystRuntime DBIxClass ListMoreUtils Moose namespaceautoclean TryTiny ];
     meta = {
@@ -668,10 +680,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CatalystDevel = buildPerlPackage {
-    name = "Catalyst-Devel-1.37";
+    name = "Catalyst-Devel-1.39";
     src = fetchurl {
-      url = mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Devel-1.37.tar.gz;
-      sha256 = "0yk526py65iy40z10d6w0fspb8fam5rf1hzsxnfyy4lpy91lp7s9";
+      url = mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Devel-1.39.tar.gz;
+      sha256 = "12m50bbkggjmpxihv3wnvr0g2qng0zwhlzi5ygppjz8wh2x73qxw";
     };
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ CatalystRuntime CatalystActionRenderView CatalystPluginConfigLoader CatalystPluginStaticSimple ConfigGeneral FileChangeNotify FileCopyRecursive FileShareDir ModuleInstall Moose MooseXDaemonize MooseXEmulateClassAccessorFast namespaceautoclean namespaceclean PathClass Starman TemplateToolkit ];
@@ -684,10 +696,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CatalystDispatchTypeRegex = buildPerlModule {
-    name = "Catalyst-DispatchType-Regex-5.90032";
+    name = "Catalyst-DispatchType-Regex-5.90033";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MG/MGRIMES/Catalyst-DispatchType-Regex-5.90032.tar.gz;
-      sha256 = "003e31fe0c1d6dfc6be4d9cd47cb058a9b53a73bb6a9f74a132a43dbfbbb5e3c";
+      url = mirror://cpan/authors/id/M/MG/MGRIMES/Catalyst-DispatchType-Regex-5.90033.tar.gz;
+      sha256 = "0rdi8jxj9fz81l9pxl7q190v69vkgxgixcpals555xyiafnqk4vy";
     };
     propagatedBuildInputs = [ Moose TextSimpleTable ];
     meta = {
@@ -715,10 +727,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CatalystManual = buildPerlPackage {
-    name = "Catalyst-Manual-5.9006";
+    name = "Catalyst-Manual-5.9007";
     src = fetchurl {
-      url = mirror://cpan/authors/id/H/HK/HKCLARK/Catalyst-Manual-5.9006.tar.gz;
-      sha256 = "0cl9nqg5jrqcf2h3pgk6q8408czf5s0k0xh3ra884c9cnx84mr95";
+      url = mirror://cpan/authors/id/E/ET/ETHER/Catalyst-Manual-5.9007.tar.gz;
+      sha256 = "140526pzzqc1vyxkk9fxvp9ds3kk2rncf8nf7iz0adlr219pkg3j";
     };
     meta = {
       description = "The Catalyst developer's manual";
@@ -852,10 +864,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CatalystPluginConfigLoader = buildPerlPackage rec {
-    name = "Catalyst-Plugin-ConfigLoader-0.30";
+    name = "Catalyst-Plugin-ConfigLoader-0.33";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Catalyst/${name}.tar.gz";
-      sha256 = "1rshgsvs9ngpd4nang4flq6mx9v71w1z5klp1rm8llc88pxlqahm";
+      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
+      sha256 = "0m18yqcwx5fzz4lrd5db8x8wyir1061pclv5jb9g963wbg4zk43g";
     };
     propagatedBuildInputs = [CatalystRuntime DataVisitor ConfigAny MROCompat];
   };
@@ -886,10 +898,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CatalystPluginSession = buildPerlPackage {
-    name = "Catalyst-Plugin-Session-0.36";
+    name = "Catalyst-Plugin-Session-0.39";
     src = fetchurl {
-      url = mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Session-0.36.tar.gz;
-      sha256 = "14wgkrg3w69gwg6zg991k5f611xqsnyx0i0xzhw9rx2j5nf9rj4b";
+      url = mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-Plugin-Session-0.39.tar.gz;
+      sha256 = "0m4a003qgz7848iyckwbigg2vw3kmfxggh1razrnzxrbz3n6x5gi";
     };
     buildInputs = [ TestDeep TestException TestWWWMechanizePSGI ];
     propagatedBuildInputs = [ CatalystRuntime Moose MooseXEmulateClassAccessorFast MROCompat namespaceclean ObjectSignature ];
@@ -920,10 +932,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CatalystPluginStackTrace = buildPerlPackage {
-    name = "Catalyst-Plugin-StackTrace-0.11";
+    name = "Catalyst-Plugin-StackTrace-0.12";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MS/MSTROUT/Catalyst-Plugin-StackTrace-0.11.tar.gz;
-      sha256 = "1ingivnga1yb4dqsj6icc4a58i9wdalzpn2qflsn8n2skgm223qb";
+      url = mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-StackTrace-0.12.tar.gz;
+      sha256 = "1b2ksz74cpigxqzf63rddar3vfmnbpwpdcbs11v0ml89pb8ar79j";
     };
     propagatedBuildInputs = [ CatalystRuntime DevelStackTrace MROCompat ];
     meta = {
@@ -933,10 +945,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CatalystPluginStaticSimple = buildPerlPackage {
-    name = "Catalyst-Plugin-Static-Simple-0.30";
+    name = "Catalyst-Plugin-Static-Simple-0.31";
     src = fetchurl {
-      url = mirror://cpan/authors/id/A/AB/ABRAXXA/Catalyst-Plugin-Static-Simple-0.30.tar.gz;
-      sha256 = "18zar1n4imgnv7b4dr5sxyikry4668ngqgc6f0dr210bqafvwv7w";
+      url = mirror://cpan/authors/id/A/AB/ABRAXXA/Catalyst-Plugin-Static-Simple-0.31.tar.gz;
+      sha256 = "1mcns9qdpnja153prbyypwjicgpm1sn7rw75k7hm28g3vf59z733";
     };
     patches = [ ../development/perl-modules/catalyst-plugin-static-simple-etag.patch ];
     propagatedBuildInputs = [ CatalystRuntime MIMETypes Moose MooseXTypes namespaceautoclean ];
@@ -947,10 +959,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CatalystViewDownload = buildPerlPackage rec {
-    name = "Catalyst-View-Download-0.07";
+    name = "Catalyst-View-Download-0.09";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Catalyst/${name}.tar.gz";
-      sha256 = "1c6k4x6az0fkany16zlyaqhlp7bcx922vl4qzd3z707vs6pc06rz";
+      url = "mirror://cpan/authors/id/G/GA/GAUDEON/${name}.tar.gz";
+      sha256 = "1qgq6y9iwfbhbkbgpw9czang2ami6z8jk1zlagrzdisy4igqzkvs";
     };
     buildInputs = [  TestWWWMechanizeCatalyst Testuseok ];
     propagatedBuildInputs = [ CatalystRuntime TextCSV XMLSimple ];
@@ -971,10 +983,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CatalystViewTT = buildPerlPackage {
-    name = "Catalyst-View-TT-0.40";
+    name = "Catalyst-View-TT-0.41";
     src = fetchurl {
-      url = mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-View-TT-0.40.tar.gz;
-      sha256 = "0j73mk631p9x0b0l24ikavh9nxl6lpya4g46fpanjk396d2zj8bs";
+      url = mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-View-TT-0.41.tar.gz;
+      sha256 = "1yrigxqapxj4k1qkykiiqy6a30ljb7hlkaw80d7n0n5mpm67j1nb";
     };
     propagatedBuildInputs = [ CatalystRuntime ClassAccessor MROCompat PathClass TemplateToolkit TemplateTimer ];
     meta = {
@@ -984,10 +996,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CatalystXComponentTraits = buildPerlPackage rec {
-    name = "CatalystX-Component-Traits-0.16";
+    name = "CatalystX-Component-Traits-0.19";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/CatalystX/${name}.tar.gz";
-      sha256 = "0a2mhfgv0kqmaxf2crs8mqk44lyhd9qcwlpzhrc0b0dh4z503mr4";
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/${name}.tar.gz";
+      sha256 = "0iq4ci8m6g2c4g01fvdl568y7pjz28f3widk986v3pyhr7ll8j88";
     };
     propagatedBuildInputs =
       [ CatalystRuntime MooseXTraitsPluggable namespaceautoclean ListMoreUtils ];
@@ -1029,18 +1041,18 @@ let self = _self // overrides; _self = with self; {
   };
 
   CGICookieXS = buildPerlPackage rec {
-    name = "CGI-Cookie-XS-0.16";
+    name = "CGI-Cookie-XS-0.18";
     src = fetchurl {
       url = "mirror://cpan/authors/id/A/AG/AGENT/${name}.tar.gz";
-      sha256 = "1jrd3f11sz17117nvssrrf6r80fr412615n5ffspbsap4n816bnn";
+      sha256 = "1iixvnm0l1q24vdlnayb4vd8fns2bdlhm6zb7fpi884ppm5cp6a6";
     };
   };
 
   CGIExpand = buildPerlPackage {
-    name = "CGI-Expand-2.03";
+    name = "CGI-Expand-2.04";
     src = fetchurl {
-      url = mirror://cpan/authors/id/B/BO/BOWMANBS/CGI-Expand-2.03.tar.gz;
-      sha256 = "0p59is2mynybii8r1cpci2i17xzwhrrs4741hndhkcp4spggr0z1";
+      url = mirror://cpan/authors/id/B/BO/BOWMANBS/CGI-Expand-2.04.tar.gz;
+      sha256 = "0jk2vvk4mlz7phq3h3wpryix46adi7fkkzvkv0ssn5xkqy3pqlny";
     };
     propagatedBuildInputs = [ TestException ];
     meta = {
@@ -1136,18 +1148,18 @@ let self = _self // overrides; _self = with self; {
   };
 
   ClassBase = buildPerlPackage rec {
-    name = "Class-Base-0.03";
+    name = "Class-Base-0.05";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AB/ABW/${name}.tar.gz";
-      sha256 = "149875qzfyayvkb6dm8frg0kmkzyjswwrjz7gyvwi7l8b19kiyk4";
+      url = "mirror://cpan/authors/id/S/SZ/SZABGAB/${name}.tar.gz";
+      sha256 = "0vryy6b64f2wbfc2zzzvh6ravkp5i4kjdxhjbj3s08g9pwyc67y6";
     };
   };
 
   ClassC3 = buildPerlPackage {
-    name = "Class-C3-0.24";
+    name = "Class-C3-0.26";
     src = fetchurl {
-      url = mirror://cpan/authors/id/F/FL/FLORA/Class-C3-0.24.tar.gz;
-      sha256 = "1nhwf7bj7z5szk7sxmq0ynqh2k9p42a7zkfyikkairfb78xckpkz";
+      url = mirror://cpan/authors/id/H/HA/HAARG/Class-C3-0.26.tar.gz;
+      sha256 = "008xg6gf5qp2fdjqzfpg0fzhw7f308ddkxwvzdcaa9zq59sg5x6s";
     };
     propagatedBuildInputs = [ AlgorithmC3 ];
     meta = {
@@ -1247,10 +1259,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ClassMethodMaker = buildPerlPackage {
-    name = "Class-MethodMaker-2.18";
+    name = "Class-MethodMaker-2.21";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SC/SCHWIGON/Class-MethodMaker-2.18.tar.gz;
-      sha256 = "223b7a79025e9bff984d755f9744182505e110680b13eedbac2831d45ddbeeba";
+      url = mirror://cpan/authors/id/S/SC/SCHWIGON/class-methodmaker/Class-MethodMaker-2.21.tar.gz;
+      sha256 = "0gca1cjy2k0mrpfnbyzm5islzfayqfvg3zzlrlm7n60p0cb48y7w";
     };
     preConfigure = "patchShebangs .";
     meta = {
@@ -1260,10 +1272,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ClassMethodModifiers = buildPerlPackage {
-    name = "Class-Method-Modifiers-2.00";
+    name = "Class-Method-Modifiers-2.10";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SA/SARTAK/Class-Method-Modifiers-2.00.tar.gz;
-      sha256 = "0lvj38ahqqyhv9dpi7ks1cq35f19nfw8ygxw22x2mcmagl8mnkhs";
+      url = mirror://cpan/authors/id/E/ET/ETHER/Class-Method-Modifiers-2.10.tar.gz;
+      sha256 = "1dp757rzv6a9k7q0bpmjxv69g4r893vb143qq7fyqlwzg0zva3s2";
     };
     buildInputs = [ TestFatal ];
     meta = {
@@ -1293,18 +1305,18 @@ let self = _self // overrides; _self = with self; {
   };
 
   ClassThrowable = buildPerlPackage {
-    name = "Class-Throwable-0.10";
+    name = "Class-Throwable-0.11";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/ST/STEVAN/Class-Throwable-0.10.tar.gz;
-      sha256 = "01hjrfb951c9j83ncg5drnam8vsfdgkjjv0kjshxhkl93sgnlvdl";
+      url = mirror://cpan/authors/id/K/KM/KMX/Class-Throwable-0.11.tar.gz;
+      sha256 = "1vjadr0kqmfi9s3wfxjbqqgc7fqrk87n6b1a5979sbxxk5yh8hyk";
     };
   };
 
   ClassLoad = buildPerlPackage {
-    name = "Class-Load-0.20";
+    name = "Class-Load-0.21";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DR/DROLSKY/Class-Load-0.20.tar.gz;
-      sha256 = "084cxrm0hcpyz3ly1iqkcjpl4bs03n42na37d3pzwa8xbs44ag42";
+      url = mirror://cpan/authors/id/E/ET/ETHER/Class-Load-0.21.tar.gz;
+      sha256 = "0z04r0jdk8l3qd96f75q3042p76hr4i747dg87s7xrpp0bjbmn8h";
     };
     buildInputs = [ TestFatal TestRequires ];
     propagatedBuildInputs = [ DataOptList ModuleImplementation ModuleRuntime PackageStash TryTiny ];
@@ -1331,19 +1343,19 @@ let self = _self // overrides; _self = with self; {
   };
 
   ClassUnload = buildPerlPackage rec {
-    name = "Class-Unload-0.07";
+    name = "Class-Unload-0.08";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Class//${name}.tar.gz";
-      sha256 = "1alvn94j0wgfyyym092g9cq0mbhzin0zf7lfja6578jk5cc788rr";
+      url = "mirror://cpan/authors/id/I/IL/ILMARI/${name}.tar.gz";
+      sha256 = "097gr3r2jgnm1175m4lpg4a97hv2mxrn9r0b2c6bn1x9xdhkywgh";
     };
     propagatedBuildInputs = [ ClassInspector ];
   };
 
   ClassXSAccessor = buildPerlPackage {
-    name = "Class-XSAccessor-1.16";
+    name = "Class-XSAccessor-1.19";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SM/SMUELLER/Class-XSAccessor-1.16.tar.gz;
-      sha256 = "1yjpw9kssy4m52407k45hxjnqz02494z7x8j44pjzkyi8msafvg5";
+      url = mirror://cpan/authors/id/S/SM/SMUELLER/Class-XSAccessor-1.19.tar.gz;
+      sha256 = "1wm6013il899jnm0vn50a7iv9v6r4nqywbqzj0csyf8jbwwnpicr";
     };
     meta = {
       description = "Generate fast XS accessors without runtime compilation";
@@ -1375,10 +1387,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CompressRawBzip2 = buildPerlPackage {
-    name = "Compress-Raw-Bzip2-2.063";
+    name = "Compress-Raw-Bzip2-2.064";
     src = fetchurl {
-      url = mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Bzip2-2.063.tar.gz;
-      sha256 = "0qi2jg76pgx1qkh4897g746cxqjr2njzzbyv2k9pq4m1m2v3jr6s";
+      url = mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Bzip2-2.064.tar.gz;
+      sha256 = "0aqbggr9yf4hn21a9fra111rlmva3w8f3mqvbchl5l86knkbkwy3";
     };
 
     # Don't build a private copy of bzip2.
@@ -1456,10 +1468,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ConfigMVP = buildPerlPackage {
-    name = "Config-MVP-2.200004";
+    name = "Config-MVP-2.200007";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Config-MVP-2.200004.tar.gz;
-      sha256 = "dbe473f4b0fc649b82574aa71b0c5da3359058e181928d5e9197fc0ef247c3ec";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Config-MVP-2.200007.tar.gz;
+      sha256 = "10hc8v22mv56wqi6drpl4pw3r8y3xrgh80ayrb2gir80ah9s5bvi";
     };
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ ClassLoad Moose MooseXOneArgNew ParamsUtil RoleHasMessage RoleIdentifiable Throwable TieIxHash TryTiny ];
@@ -1485,10 +1497,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ConfigTiny = buildPerlPackage rec {
-    name = "Config-Tiny-2.12";
+    name = "Config-Tiny-2.20";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AD/ADAMK/${name}.tar.gz";
-      sha256 = "1a5b7f5e8245a3e7be859df571209353be30abc7292815ee0f459b8dc87cdb5b";
+      url = "mirror://cpan/authors/id/R/RS/RSAVAGE/${name}.tgz";
+      sha256 = "0grgb7av1hwpl20xh91jipla1xi0h7vx6c538arxmvgm1f71cql2";
     };
   };
 
@@ -1501,10 +1513,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   constant = buildPerlPackage {
-    name = "constant-1.15";
+    name = "constant-1.27";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SA/SAPER/constant-1.15.tar.gz;
-      sha256 = "1ygz0hd1fd3q88r6dlw14kpyh06zjprksdci7qva6skxz3261636";
+      url = mirror://cpan/authors/id/S/SA/SAPER/constant-1.27.tar.gz;
+      sha256 = "0ari0jggiifz3q7vxb8nlcsc3g6bj8c0c0drsrphv0079c956i3l";
     };
   };
 
@@ -1551,10 +1563,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   Coro = buildPerlPackage {
-    name = "Coro-6.33";
+    name = "Coro-6.37";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/ML/MLEHMANN/Coro-6.33.tar.gz;
-      sha256 = "1497wd9df10y65rb0w5h4h6wiy3smw9maw7z0gbz6dir774znfb5";
+      url = mirror://cpan/authors/id/M/ML/MLEHMANN/Coro-6.37.tar.gz;
+      sha256 = "08qkwv7rpyb7zcp128crjakflc027sjkx9d2s1gzc21grsq9a456";
     };
     propagatedBuildInputs = [ AnyEvent Guard CommonSense ];
     meta = {
@@ -1663,10 +1675,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CryptDHGMP = buildPerlPackage rec {
-    name = "Crypt-DH-GMP-0.00011";
+    name = "Crypt-DH-GMP-0.00012";
     src = fetchurl {
-      url = "mirror://cpan/authors/id//D/DM/DMAKI/${name}.tar.gz";
-      sha256 = "0c9sz67lh2d2pn9z82hngzns4sqqnawdc8a1yl7p7pc0l4r0q3hz";
+      url = "mirror://cpan/authors/id/D/DM/DMAKI/${name}.tar.gz";
+      sha256 = "0f5gdprcql4kwzgxl2s6ngcfg1jl45lzcqh7dkv5bkwlwmxa9rsi";
     };
     buildInputs = [ DevelChecklib TestRequires pkgs.gmp ];
     NIX_CFLAGS_COMPILE = "-I${pkgs.gmp}/include";
@@ -1683,10 +1695,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CryptPasswdMD5 = buildPerlPackage {
-    name = "Crypt-PasswdMD5-1.3";
+    name = "Crypt-PasswdMD5-1.40";
     src = fetchurl {
-      url = mirror://cpan/authors/id/L/LU/LUISMUNOZ/Crypt-PasswdMD5-1.3.tar.gz;
-      sha256 = "13j0v6ihgx80q8jhyas4k48b64gnzf202qajyn097vj8v48khk54";
+      url = mirror://cpan/authors/id/R/RS/RSAVAGE/Crypt-PasswdMD5-1.40.tgz;
+      sha256 = "0j0r74f18nk63phddzqbf7wqma2ci4p4bxvrwrxsy0aklbp6lzdp";
     };
   };
 
@@ -1716,10 +1728,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CryptRandPasswd = buildPerlPackage {
-    name = "Crypt-RandPasswd-0.03";
+    name = "Crypt-RandPasswd-0.05";
     src = fetchurl {
-      url = mirror://cpan/authors/id/N/NE/NEILB/Crypt-RandPasswd-0.03.tar.gz;
-      sha256 = "0sz2b4gj2mcwj0nqvxw3gs5m49jzfbi0vla51hj957dvfk00plhf";
+      url = mirror://cpan/authors/id/N/NE/NEILB/Crypt-RandPasswd-0.05.tar.gz;
+      sha256 = "0djcjzk0wmlf02gx9935m7c1dhpmdwx3hjal8x80aa92baavwf2s";
     };
   };
 
@@ -1733,18 +1745,18 @@ let self = _self // overrides; _self = with self; {
   };
 
   CryptRijndael = buildPerlPackage rec {
-    name = "Crypt-Rijndael-1.11";
+    name = "Crypt-Rijndael-1.12";
     src = fetchurl {
       url = "mirror://cpan/authors/id/B/BD/BDFOY/${name}.tar.gz";
-      sha256 = "8f8833bc8839e0d4aa3c26d86d2f39ceb9b13e52a9f5e4fd928da2e71989d3b4";
+      sha256 = "1rgzlxp882cc52287awwha4ipglm6nxw5jryd6cshrr99qcx55m0";
     };
   };
 
   CryptUnixCryptXS = buildPerlPackage rec {
-    name = "Crypt-UnixCrypt_XS-0.09";
+    name = "Crypt-UnixCrypt_XS-0.10";
     src = fetchurl {
       url = "mirror://cpan/authors/id/B/BO/BORISZ/${name}.tar.gz";
-      sha256 = "527c32b8b6eb50d52b081ceae4be2d748e718e40ea85940da59a3adeb3a33156";
+      sha256 = "1d3xamq2mm3v2bfb1ay66crljm0bigfbhay1fqglcsrb75b7ls7r";
     };
   };
 
@@ -1757,10 +1769,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   CryptOpenSSLRandom = buildPerlPackage rec {
-    name = "Crypt-OpenSSL-Random-0.04";
+    name = "Crypt-OpenSSL-Random-0.06";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IR/IROBERTS/${name}.tar.gz";
-      sha256 = "acf7eb81023cd1f40d8c60b893096d041513df2be2aefe145cc7ae1a3dcc78c7";
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/${name}.tar.gz";
+      sha256 = "10yhjh04jxdf4ghqqvrcfds7vvylxv671l57lkkbg3k8qzpdzd7g";
     };
     NIX_CFLAGS_COMPILE = "-I${pkgs.openssl}/include";
     NIX_CFLAGS_LINK = "-L${pkgs.openssl}/lib -lcrypto";
@@ -1802,10 +1814,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DataCompare = buildPerlPackage rec {
-    name = "Data-Compare-1.22";
+    name = "Data-Compare-1.2102";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Data/${name}.tar.gz";
-      sha256 = "1bz8qasp3ndiprxq2l0llbc0xbnjq11lz0l1lfzxiap7v1y2r3yf";
+      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/${name}.tar.gz";
+      sha256 = "0v1997gnq3gpcr7f64jmyay2l60s5z6gsiy5hbpn1p2l2hrfnwlj";
     };
     propagatedBuildInputs = [ FileFindRule ];
   };
@@ -1879,10 +1891,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DataPage = buildPerlPackage {
-    name = "Data-Page-2.01";
+    name = "Data-Page-2.02";
     src = fetchurl {
-      url = mirror://cpan/authors/id/L/LB/LBROCARD/Data-Page-2.01.tar.gz;
-      sha256 = "0mvhlid9qx9yd94rgr4lfz9kvflimc1dzcah0x7q5disw39aqrzr";
+      url = mirror://cpan/authors/id/L/LB/LBROCARD/Data-Page-2.02.tar.gz;
+      sha256 = "1hvi92c4h2angryc6pngw7gbm3ysc2jfmyxk2wh9ia4vdwpbs554";
     };
     propagatedBuildInputs = [TestException ClassAccessorChained];
   };
@@ -1902,10 +1914,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DataSerializer = buildPerlPackage {
-    name = "Data-Serializer-0.59";
+    name = "Data-Serializer-0.60";
     src = fetchurl {
-      url = mirror://cpan/authors/id/N/NE/NEELY/Data-Serializer-0.59.tar.gz;
-      sha256 = "1mydpbacrkirafcjxcg1c0gnls1kxiv0qvdd4q2yd6vsyay0ayqr";
+      url = mirror://cpan/authors/id/N/NE/NEELY/Data-Serializer-0.60.tar.gz;
+      sha256 = "0ca4s811l7f2bqkx7vnyxbpp4f0qska89g2pvsfb3k0bhhbk0jdk";
     };
     meta = {
       description = "Modules that serialize data structures";
@@ -1963,10 +1975,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DataVisitor = buildPerlPackage rec {
-    name = "Data-Visitor-0.28";
+    name = "Data-Visitor-0.30";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Data/${name}.tar.gz";
-      sha256 = "1998syyprmqnhpgznmk7ia3zd8saw34q7pbaprxarcz7a3bncyjc";
+      url = "mirror://cpan/authors/id/D/DO/DOY/${name}.tar.gz";
+      sha256 = "0m7d1505af9z2hj5aw020grcmjjlvnkjpvjam457d7k5qfy4m8lf";
     };
     buildInputs = [ TestRequires ];
     propagatedBuildInputs =
@@ -1987,10 +1999,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DateManip = buildPerlPackage {
-    name = "Date-Manip-6.42";
+    name = "Date-Manip-6.43";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SB/SBECK/Date-Manip-6.42.tar.gz;
-      sha256 = "18zkdvam3qddv810hgzszk2zxra14whl0fs03ba79babqhbpbzna";
+      url = mirror://cpan/authors/id/S/SB/SBECK/Date-Manip-6.43.tar.gz;
+      sha256 = "0jwg87j31gw2fn8csm1zyfqxd0dxh8sbv940ma9idg6g7856zfrz";
     };
     propagatedBuildInputs = [ TestInter ];
     meta = {
@@ -2010,10 +2022,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DateTime = buildPerlModule {
-    name = "DateTime-1.07";
+    name = "DateTime-1.08";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-1.07.tar.gz;
-      sha256 = "1cm4zsgzz4phigak0nb48l661vkqhz93kfbb9jd83d1hq74myq31";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-1.08.tar.gz;
+      sha256 = "0ijhb1mqrfp1pbj4r3wkpp0hdj3zg355skxdn6dsiv439fp65asf";
     };
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ DateTimeLocale DateTimeTimeZone ParamsValidate TryTiny ];
@@ -2169,10 +2181,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DateTimeSet = buildPerlPackage {
-    name = "DateTime-Set-0.31";
+    name = "DateTime-Set-0.3400";
     src = fetchurl {
-      url = mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Set-0.31.tar.gz;
-      sha256 = "499b59e42a1129bf10fd269eb7542d337a29fbbcbf08ef8313fd465d3ae5df02";
+      url = mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Set-0.3400.tar.gz;
+      sha256 = "1b27699zkj68w5ll9chjhs52vmf39f9via6x5r5844as30qh9zxb";
     };
     propagatedBuildInputs = [ DateTime SetInfinite ];
     meta = {
@@ -2210,10 +2222,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DebugShowStuff = buildPerlPackage {
-    name = "Debug-ShowStuff-1.14";
+    name = "Debug-ShowStuff-1.16";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MI/MIKO/Debug-ShowStuff-1.14.tar.gz;
-      sha256 = "023c6f7y93k9qxxfa2fsvc5jkbv3rh6i3nw6zvxa5cg57xfypd7h";
+      url = mirror://cpan/authors/id/M/MI/MIKO/Debug-ShowStuff-1.16.tar.gz;
+      sha256 = "1drcrnji3yrd0s3xb69bxnqa51s19c13w68vhvjad3nvswn5vpd4";
     };
     propagatedBuildInputs = [ ClassISA DevelStackTrace StringUtil TermReadKey TextTabularDisplay TieIxHash ];
     meta = {
@@ -2236,10 +2248,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DevelChecklib = buildPerlPackage rec {
-    name = "Devel-CheckLib-0.98";
+    name = "Devel-CheckLib-1.01";
     src = fetchurl {
       url = "mirror://cpan/authors/id/M/MA/MATTN/${name}.tar.gz";
-      sha256 = "2b6b62665403bcdce67b53eb3bee7b57b6576026640c01aa57c7126e32ce20da";
+      sha256 = "14q9mibxdgqkia73426q6xw6km5bf1hhkgg2nf7x4zhnlksahbwr";
     };
     propagatedBuildInputs = [ IOCaptureOutput ];
   };
@@ -2279,10 +2291,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DBI = buildPerlPackage {
-    name = "DBI-1.630";
+    name = "DBI-1.631";
     src = fetchurl {
-      url = mirror://cpan/authors/id/T/TI/TIMB/DBI-1.630.tar.gz;
-      sha256 = "18szayj2bl28fm9frf9v1dwncj67bx3rvw8ny1zwbvc6alshs5ji";
+      url = mirror://cpan/authors/id/T/TI/TIMB/DBI-1.631.tar.gz;
+      sha256 = "04fmrnchhwi7jx4niaiv93vmi343hdm3xj04w9zr2m9hhqh782np";
     };
     meta = {
       homepage = http://dbi.perl.org/;
@@ -2307,10 +2319,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DBIxClassCandy = buildPerlPackage {
-    name = "DBIx-Class-Candy-0.002103";
+    name = "DBIx-Class-Candy-0.002104";
     src = fetchurl {
-      url = mirror://cpan/authors/id/F/FR/FREW/DBIx-Class-Candy-0.002103.tar.gz;
-      sha256 = "1vcaigvzxq9jjkhw2bkayrnsa76sakr3wrv7009f1dxyfa0iyrsk";
+      url = mirror://cpan/authors/id/F/FR/FREW/DBIx-Class-Candy-0.002104.tar.gz;
+      sha256 = "0b0fsm3waqm43qmhcynb2s6p8hi9yr41p9c4c5aq6l58x3xwvp34";
     };
     propagatedBuildInputs = [ TestDeep TestFatal DBIxClass LinguaENInflect StringCamelCase ];
     meta = {
@@ -2457,10 +2469,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DevelGlobalDestruction = buildPerlPackage {
-    name = "Devel-GlobalDestruction-0.09";
+    name = "Devel-GlobalDestruction-0.12";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RI/RIBASUSHI/Devel-GlobalDestruction-0.09.tar.gz;
-      sha256 = "1hvrv88167rc2chqgxpd6q0ir5fki1q6r3w11v3lxfs118fdi65m";
+      url = mirror://cpan/authors/id/H/HA/HAARG/Devel-GlobalDestruction-0.12.tar.gz;
+      sha256 = "0w4a4y9w4yldxlhks95nx8qaivpbzc40b1p8xg3y8467ixkbg9cq";
     };
     propagatedBuildInputs = [ SubExporterProgressive ];
     meta = {
@@ -2470,10 +2482,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DevelHide = buildPerlPackage rec {
-    name = "Devel-Hide-0.0008";
+    name = "Devel-Hide-0.0009";
     src = fetchurl {
       url = "mirror://cpan/authors/id/F/FE/FERREIRA/${name}.tar.gz";
-      sha256 = "14hwwirpc9cnwn50rshb8hb778mia4ni75jv2dih8l9i033m4i26";
+      sha256 = "1phnzbw58v6551nhv6sg86m72nx9w5j4msh1hg4jvkakkq5w9pki";
     };
   };
 
@@ -2491,10 +2503,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DevelStackTrace = buildPerlPackage {
-    name = "Devel-StackTrace-1.30";
+    name = "Devel-StackTrace-1.31";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DR/DROLSKY/Devel-StackTrace-1.30.tar.gz;
-      sha256 = "1m13wzg4pmbc0f1w2rn9ybqwkqg66zw9zv34ayk7gr3349v7kbzl";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/Devel-StackTrace-1.31.tar.gz;
+      sha256 = "0djvqfbq9ag1bpw0bcksidfy13n91xbl53py3d7w0y2323hjc957";
     };
     meta = {
       homepage = http://search.cpan.org/perldoc?CPAN::Meta::Spec;
@@ -2504,10 +2516,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DevelStackTraceAsHTML = buildPerlPackage {
-    name = "Devel-StackTrace-AsHTML-0.11";
+    name = "Devel-StackTrace-AsHTML-0.14";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Devel-StackTrace-AsHTML-0.11.tar.gz;
-      sha256 = "0y0r42gszp3bxbs9j2nn3xgs8ij1cnadrywwwdc6r0y8m0siyapg";
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Devel-StackTrace-AsHTML-0.14.tar.gz;
+      sha256 = "0yl296y0qfwybwjgqjzd4j2w2bj5a2nz342qqgxchnf5bqynl1c9";
     };
     propagatedBuildInputs = [ DevelStackTrace ];
     meta = {
@@ -2562,10 +2574,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DigestMD4 = buildPerlPackage rec {
-    name = "Digest-MD4-1.5";
+    name = "Digest-MD4-1.9";
     src = fetchurl {
       url = "mirror://cpan/authors/id/M/MI/MIKEM/DigestMD4/${name}.tar.gz";
-      sha256 = "c7d7a32f5c2710c929b5688a7b057ec8ddbc51cf278f623e771fc02dcabd6a1f";
+      sha256 = "19ma1hmvgiznq95ngzvm6v4dfxc9zmi69k8iyfcg6w14lfxi0lb6";
     };
   };
 
@@ -2613,10 +2625,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DistZilla = buildPerlPackage {
-    name = "Dist-Zilla-4.300036";
+    name = "Dist-Zilla-4.300039";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-4.300036.tar.gz;
-      sha256 = "d78c1425d51571d9bc61ed3b20c5aaec1eb59e756ceda3ac40ed727e6c93bf21";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-4.300039.tar.gz;
+      sha256 = "10cighwsqp53kbk2gwlnl9m18sbs7ijr2v37vwca9qxbscy2yr21";
     };
     buildInputs = [ FileShareDirInstall SoftwareLicense TestFatal TestFileShareDir TestScript ];
     propagatedBuildInputs = [ AppCmd CPANUploader ClassLoad ConfigINI ConfigMVP ConfigMVPReaderINI DataSection DateTime FileCopyRecursive FileFindRule FileHomeDir FileShareDir FileShareDirInstall Filepushd HashMergeSimple JSON ListAllUtils ListMoreUtils LogDispatchouli Moose MooseAutobox MooseXLazyRequire MooseXRoleParameterized MooseXSetOnce MooseXTypes MooseXTypesPathClass MooseXTypesPerl PPI ParamsUtil PathClass PerlPrereqScanner PerlVersion PodEventual SoftwareLicense StringFormatter StringRewritePrefix SubExporter SubExporterForMethods TermReadKey TestDeep TextGlob TextTemplate TryTiny YAMLTiny autobox namespaceautoclean CPANMetaRequirements ];
@@ -2629,10 +2641,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DistZillaPluginBundleTestingMania = buildPerlPackage {
-    name = "Dist-Zilla-PluginBundle-TestingMania-0.20";
+    name = "Dist-Zilla-PluginBundle-TestingMania-0.21";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-PluginBundle-TestingMania-0.20.tar.gz;
-      sha256 = "073e17a98b0f88a1b60ce45a325d7447a19db394fcc6f01472bacb1956106da8";
+      url = mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-PluginBundle-TestingMania-0.21.tar.gz;
+      sha256 = "1cbq7v799bf93iqp19v1ln6bcf6gvmc0qw3gf4bq445wsm7w62wy";
     };
     buildInputs = [ CaptureTiny DistZilla MooseAutobox perl ];
     propagatedBuildInputs = [ DistZilla DistZillaPluginMojibakeTests DistZillaPluginNoTabsTests DistZillaPluginTestCPANChanges DistZillaPluginTestCPANMetaJSON DistZillaPluginTestCompile DistZillaPluginTestDistManifest DistZillaPluginTestEOL DistZillaPluginTestKwalitee DistZillaPluginTestMinimumVersion DistZillaPluginTestPerlCritic DistZillaPluginTestPodLinkCheck DistZillaPluginTestPortability DistZillaPluginTestSynopsis DistZillaPluginTestUnusedVars DistZillaPluginTestVersion JSONPP ListMoreUtils Moose PodCoverageTrustPod TestCPANMeta TestPerlCritic TestVersion namespaceautoclean ];
@@ -2685,10 +2697,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DistZillaPluginPodWeaver = buildPerlPackage {
-    name = "Dist-Zilla-Plugin-PodWeaver-3.101642";
+    name = "Dist-Zilla-Plugin-PodWeaver-3.102000";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-Plugin-PodWeaver-3.101642.tar.gz;
-      sha256 = "66066a236be7bd0a3e0ae764a4b9ac10408d40693a1c800c5fdd7e03c3542e00";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-Plugin-PodWeaver-3.102000.tar.gz;
+      sha256 = "0xayy50fgfc7wlsnygz28ka2ax9pmr0rn845i8d6p40amrkzzlml";
     };
     buildInputs = [ FileFindRule ];
     propagatedBuildInputs = [ DistZilla ListMoreUtils Moose PPI PodElementalPerlMunger PodWeaver namespaceautoclean ];
@@ -2790,10 +2802,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   DistZillaPluginTestEOL = buildPerlPackage {
-    name = "Dist-Zilla-Plugin-Test-EOL-0.07";
+    name = "Dist-Zilla-Plugin-Test-EOL-0.10";
     src = fetchurl {
-      url = mirror://cpan/authors/id/X/XE/XENO/Dist-Zilla-Plugin-Test-EOL-0.07.tar.gz;
-      sha256 = "c010ef618478e82fbc601abfc241c74fed1fdafe954d8b3ebcb7abe0e09967a8";
+      url = mirror://cpan/authors/id/X/XE/XENO/Dist-Zilla-Plugin-Test-EOL-0.10.tar.gz;
+      sha256 = "1sl7zvjzpwf7wl188a3j13k1qcb63hawx82iy6r3dx2gns8nc0nw";
     };
     buildInputs = [ DistZilla TestScript ];
     propagatedBuildInputs = [ DistZilla Moose TestEOL namespaceautoclean ];
@@ -2924,10 +2936,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   EmailAbstract = buildPerlPackage {
-    name = "Email-Abstract-3.004";
+    name = "Email-Abstract-3.007";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-Abstract-3.004.tar.gz;
-      sha256 = "0fiaagxc2hy5g3qiipv4cspkwbaggdmsxbll1f4jx2qnq5hm668d";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-Abstract-3.007.tar.gz;
+      sha256 = "1a7aynf5jd5lr77x4k51hphnbmxf6p0s2gm1a6fbmxjqlnimm48h";
     };
     propagatedBuildInputs = [ EmailSimple MROCompat ];
     meta = {
@@ -2936,10 +2948,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   EmailAddress = buildPerlPackage {
-    name = "Email-Address-1.897";
+    name = "Email-Address-1.901";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-Address-1.897.tar.gz;
-      sha256 = "17v5jvwhkd5clyihwsldnh4k7vpmaisn064s3mkxlr9dnz7nd10r";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-Address-1.901.tar.gz;
+      sha256 = "00svsmv2hk35ybpd7jxcsn7k54i0q9ph5lf8ksv9nkh1abraprkz";
     };
     meta = {
       homepage = http://search.cpan.org/perldoc?CPAN::Meta::Spec;
@@ -2961,10 +2973,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   EmailMessageID = buildPerlPackage {
-    name = "Email-MessageID-1.402";
+    name = "Email-MessageID-1.404";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-MessageID-1.402.tar.gz;
-      sha256 = "1zzbxdygh992dn9k9jlxjzcmaniy83dqlc8lkas9w9wlhngvwni1";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-MessageID-1.404.tar.gz;
+      sha256 = "0lyq9r3x7cs7cncf0yiazbi7aq4c5d4m3wxwgqdd4r5p9gxdjj4n";
     };
     propagatedBuildInputs = [ EmailAddress ];
     meta = {
@@ -3040,10 +3052,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   EmailSimple = buildPerlPackage {
-    name = "Email-Simple-2.102";
+    name = "Email-Simple-2.203";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-Simple-2.102.tar.gz;
-      sha256 = "19da1a06vnixhqfl41mfjrihvvxjgdgkq9bczp8k9mpr29xlbnq4";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-Simple-2.203.tar.gz;
+      sha256 = "0hzbp8ay62d6jwrn4q7hqmhkaigf8lc0plz0g46yhwzp3x9xfa55";
     };
     propagatedBuildInputs = [ EmailDateFormat ];
     meta = {
@@ -3125,18 +3137,18 @@ let self = _self // overrides; _self = with self; {
   };
 
   Error = buildPerlPackage rec {
-    name = "Error-0.17019";
+    name = "Error-0.17022";
     src = fetchurl {
       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/${name}.tar.gz";
-      sha256 = "0m09jwjs2x8j50bh3cg3m2mbxa7qh9i2krgq7z8h1pgl5dscyg2i";
+      sha256 = "1vzpz6syb82ir8svp2wjh95x6lpf01lgkxn2xy60ixrszc24zdya";
     };
   };
 
   EvalClosure = buildPerlPackage {
-    name = "Eval-Closure-0.08";
+    name = "Eval-Closure-0.11";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DO/DOY/Eval-Closure-0.08.tar.gz;
-      sha256 = "01x449ljj8mhr3jgfvnhzn0zz3xc81krslxiq29srqccsqjf933k";
+      url = mirror://cpan/authors/id/D/DO/DOY/Eval-Closure-0.11.tar.gz;
+      sha256 = "1b3rc9smdyyi0janckfiyg1kwph893sqwx7dr5n4mky0x8x3v4m1";
     };
     buildInputs = [ TestFatal TestRequires ];
     propagatedBuildInputs = [ SubExporter TryTiny ];
@@ -3148,10 +3160,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ExceptionBase = buildPerlPackage {
-    name = "Exception-Base-0.25";
+    name = "Exception-Base-0.2401";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DE/DEXTER/Exception-Base-0.25.tar.gz;
-      sha256 = "1s2is862xba2yy633wn2nklrya36yrlwxlbpqjrv8m31xj2c8khw";
+      url = mirror://cpan/authors/id/D/DE/DEXTER/Exception-Base-0.2401.tar.gz;
+      sha256 = "0z4pckv3iwzz5s4xrv96kg9620s96kim57nfrxbqhh6pyd5jfazv";
     };
     buildInputs = [ TestUnitLite ];
     meta = {
@@ -3215,10 +3227,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ExporterLite = buildPerlPackage {
-    name = "Exporter-Lite-0.02";
+    name = "Exporter-Lite-0.04";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MS/MSCHWERN/Exporter-Lite-0.02.tar.gz;
-      sha256 = "20c1e9b7ddc017b788feb34c032fc585e2c5b46a484e93f519373fd18830ce0e";
+      url = mirror://cpan/authors/id/N/NE/NEILB/Exporter-Lite-0.04.tar.gz;
+      sha256 = "01g6a2ixgdi825v0l4ny3vx4chzsfxirka741x0i057cf6y5ciir";
     };
     meta = {
       license = "perl";
@@ -3226,10 +3238,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ExtUtilsCBuilder = buildPerlPackage rec {
-    name = "ExtUtils-CBuilder-0.280212";
+    name = "ExtUtils-CBuilder-0.280216";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/ExtUtils/${name}.tar.gz";
-      sha256 = "0zc4hkcb8wk7nm0b2b6pb1lpih52blx6x2w6x99bcr0d581807xg";
+      url = "mirror://cpan/authors/id/A/AM/AMBS/ExtUtils/${name}.tar.gz";
+      sha256 = "09d5sq9mgcnmjf2yp8rwd0cc1fa8kq7nbwjqxiqdykwmavmgm5ml";
     };
     buildInputs = [ PerlOSType ];
   };
@@ -3256,10 +3268,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ExtUtilsDepends = buildPerlPackage {
-    name = "ExtUtils-Depends-0.304";
+    name = "ExtUtils-Depends-0.306";
     src = fetchurl {
-      url = mirror://cpan/authors/id/F/FL/FLORA/ExtUtils-Depends-0.304.tar.gz;
-      sha256 = "0fjlkcz1i1j02hhwi1wjgd79qlppjkbasrj44h5ry1f238g6a1q3";
+      url = mirror://cpan/authors/id/X/XA/XAOC/ExtUtils-Depends-0.306.tar.gz;
+      sha256 = "0s935hmxjl6md47i80abcfaghqwhnv0ikzzqln80w4ydhg5qn9a5";
     };
     meta = {
       license = "perl";
@@ -3269,10 +3281,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ExtUtilsHelpers = buildPerlPackage {
-    name = "ExtUtils-Helpers-0.021";
+    name = "ExtUtils-Helpers-0.022";
     src = fetchurl {
-      url = mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Helpers-0.021.tar.gz;
-      sha256 = "26b85077f4197b30e62ffec87d3f78111522619d62858d2ab45a64687351892a";
+      url = mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Helpers-0.022.tar.gz;
+      sha256 = "15dalfwmpfmifw312i5pwiai8134pxf7b2804shlqhdk1xqczy6k";
     };
     meta = {
       description = "Various portability utilities for module builders";
@@ -3281,10 +3293,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ExtUtilsInstallPaths = buildPerlPackage {
-    name = "ExtUtils-InstallPaths-0.009";
+    name = "ExtUtils-InstallPaths-0.010";
     src = fetchurl {
-      url = mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-InstallPaths-0.009.tar.gz;
-      sha256 = "1b0827a4acf40d38552c4348767000f7e2d8cf5fd0d19436bf8747d2a72d77bc";
+      url = mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-InstallPaths-0.010.tar.gz;
+      sha256 = "0mi1px42in7i442jqncg3gmxd5zn7sw5b2s85h690rz433qvyk6i";
     };
     propagatedBuildInputs = [ ExtUtilsConfig ];
     meta = {
@@ -3326,10 +3338,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ExtUtilsParseXS = buildPerlPackage rec {
-    name = "ExtUtils-ParseXS-3.22";
+    name = "ExtUtils-ParseXS-3.24";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/ExtUtils/${name}.tar.gz";
-      sha256 = "03i93xfm9064vg2z70mcfwpnbmciafzrng113vmb8w8g117pvr84";
+      url = "mirror://cpan/authors/id/S/SM/SMUELLER/${name}.tar.gz";
+      sha256 = "07ipa2ssflw3ais8gbjdk4l8z2k1p65nfjwkxm37g6zw1210pdih";
     };
   };
 
@@ -3372,10 +3384,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   FatalException = buildPerlPackage {
-    name = "Fatal-Exception-0.05";
+    name = "Fatal-Exception-0.0204";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DE/DEXTER/Fatal-Exception-0.05.tar.gz;
-      sha256 = "0kzfwc44vpxla3j637kfmnwmv57g6x4899ijqb4ljamk7whms298";
+      url = mirror://cpan/authors/id/D/DE/DEXTER/Fatal-Exception-0.0204.tar.gz;
+      sha256 = "10a9j0fa83s3apv0xgi01l2h6s43my031097hg72wa80n07rgs2c";
     };
     buildInputs = [ ExceptionWarning TestAssert TestUnitLite ];
     propagatedBuildInputs = [ ExceptionBase ExceptionDied ];
@@ -3410,10 +3422,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   FileChangeNotify = buildPerlModule rec {
-    name = "File-ChangeNotify-0.23";
+    name = "File-ChangeNotify-0.24";
     src = fetchurl {
       url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "18aq6lcldniciw189ihmcji98y6zqa1gdl3mjqdg8f37i9amn4i3";
+      sha256 = "090i265f73jlcl5rv250791vw32j9vvl4nd5abc7myg0klb8109w";
     };
     buildInputs = [ TestException ];
     propagatedBuildInputs =
@@ -3582,10 +3594,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   FileShare = buildPerlPackage {
-    name = "File-Share-0.02";
+    name = "File-Share-0.03";
     src = fetchurl {
-      url = mirror://cpan/authors/id/I/IN/INGY/File-Share-0.02.tar.gz;
-      sha256 = "1vdgyf3m08s4pwj70bgbb31jsj8hixdl940m15phyx2hpy8dkabw";
+      url = mirror://cpan/authors/id/J/JO/JOENIO/File-Share-0.03.tar.gz;
+      sha256 = "0siy9p6b7zbln5yq6g8z1nwm76ia23kkdj1k5pywsh3n6dn2lxa2";
     };
     propagatedBuildInputs = [ FileShareDir ];
     meta = {
@@ -3611,10 +3623,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   FileShareDirInstall = buildPerlPackage {
-    name = "File-ShareDir-Install-0.04";
+    name = "File-ShareDir-Install-0.08";
     src = fetchurl {
-      url = mirror://cpan/authors/id/G/GW/GWYN/File-ShareDir-Install-0.04.tar.gz;
-      sha256 = "14gyl1l1crnsb7ihz6czaw7k0v2dnan0380pbxz8kmk66nnhaxzc";
+      url = mirror://cpan/authors/id/G/GW/GWYN/File-ShareDir-Install-0.08.tar.gz;
+      sha256 = "188pgn43wa6hgpcrv997lp3bad50030p4wmrcdzvfrqxj0bx2amf";
     };
     meta = {
       description = "Install shared files";
@@ -3659,11 +3671,11 @@ let self = _self // overrides; _self = with self; {
     propagatedBuildInputs = [ TestScript ];
   };
 
-  FinanceQuote = buildPerlPackage {
-    name = "Finance-Quote-1.19";
+  FinanceQuote = buildPerlPackage rec {
+    name = "Finance-Quote-1.29";
     src = fetchurl {
-      url = mirror://sourceforge/finance-quote/1.19/Finance-Quote-1.19.tar.gz;
-      sha256 = "0z1dqxw4by7rkwm113qp2mlhl5r0znr22kzinvr1p82svn0zvm2d";
+      url = "mirror://cpan/authors/id/E/EC/ECOCODE/${name}.tar.gz";
+      sha256 = "0rx8whixbhwq2imd3ffx3vcqdgfbjj6y1s01m38b52x3bjn9hw0f";
     };
     propagatedBuildInputs = [ CryptSSLeay HTMLTableExtract HTMLTree HTTPMessage LWP DateCalc JSON ];
     meta = {
@@ -3682,18 +3694,18 @@ let self = _self // overrides; _self = with self; {
   };
 
   FontTTF = buildPerlPackage {
-    name = "Font-TTF-0.43";
+    name = "Font-TTF-0.48";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MH/MHOSKEN/Font-TTF-0.43.tar.gz;
-      sha256 = "0782mj5n5a2qbghvvr20x51llizly6q5smak98kzhgq9a7q3fg89";
+      url = mirror://cpan/authors/id/M/MH/MHOSKEN/Font-TTF-0.48.tar.gz;
+      sha256 = "0lhz7v8ihaj35y6kr7jb971hgc4iqh1nz3qbfkignb9i8b1dw97r";
     };
   };
 
   ForksSuper = buildPerlPackage {
-    name = "Forks-Super-0.67";
+    name = "Forks-Super-0.72";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MO/MOB/Forks-Super-0.67.tar.gz;
-      sha256 = "8831cd70e1eb3d4ab7d9a8c3692caa7b7220dc888cd1a8dc5640fb2a08379141";
+      url = mirror://cpan/authors/id/M/MO/MOB/Forks-Super-0.72.tar.gz;
+      sha256 = "0zyqwyndb3gnbsh43b6xyl3wmlnyi18vz3yrbsvp3lccz4d0v7qp";
     };
     doCheck = false;
     meta = {
@@ -3703,19 +3715,19 @@ let self = _self // overrides; _self = with self; {
   };
 
   FreezeThaw = buildPerlPackage {
-    name = "FreezeThaw-0.43";
+    name = "FreezeThaw-0.5001";
     src = fetchurl {
-      url = mirror://cpan/authors/id/I/IL/ILYAZ/modules/FreezeThaw-0.43.tar.gz;
-      sha256 = "1qamc5aggp35xk590a4hy660f2rhc2l7j65hbyxdya9yvg7z437l";
+      url = mirror://cpan/authors/id/I/IL/ILYAZ/modules/FreezeThaw-0.5001.tar.gz;
+      sha256 = "0h8gakd6b9770n2xhld1hhqghdar3hrq2js4mgiwxy86j4r0hpiw";
     };
     doCheck = false;
   };
 
   GD = buildPerlPackage rec {
-    name = "GD-2.50";
+    name = "GD-2.53";
     src = fetchurl {
       url = "mirror://cpan/authors/id/L/LD/LDS/${name}.tar.gz";
-      sha256 = "1qm8l0z2568byw4zmaqf954y3rm8nzx1nnz6cxnxd3d4cz894lvd";
+      sha256 = "1ampz82kf0ixybncfgpvq2bp9nq5sjsmmw4c8srsv0g5jpz02pfh";
     };
 
     buildInputs = [ pkgs.gd pkgs.libjpeg pkgs.zlib pkgs.freetype
@@ -3795,10 +3807,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   GoogleProtocolBuffers = buildPerlPackage rec {
-    name = "Google-ProtocolBuffers-0.08";
+    name = "Google-ProtocolBuffers-0.11";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/G/GA/GARIEV/${name}.tar.gz";
-      sha256 = "0pxfphg671wh56h59pf0zrj7m1cr0yga95hf3w54563pzcw2vqv3";
+      url = "mirror://cpan/authors/id/S/SA/SAXJAZMAN/protobuf/${name}.tar.gz";
+      sha256 = "0k2skcbfzn2aw1f218l47h4kgq5rj9qsam3sd6zw4qq3zyp0amb1";
     };
     propagatedBuildInputs = [ ClassAccessor ParseRecDescent ];
     patches =
@@ -3810,10 +3822,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   Graph = buildPerlPackage rec {
-    name = "Graph-0.94";
+    name = "Graph-0.96";
     src = fetchurl {
       url = "mirror://cpan/authors/id/J/JH/JHI/${name}.tar.gz";
-      sha256 = "1lyfl9s4mkhahnpxk2z5v6j750jqb4sls56b9rnkl5lni9ms7xgn";
+      sha256 = "09wpiz7v0gv07zb7h8gwgjrwj16cdycs60d08cjlyj1s926zlbl3";
     };
 
     buildInputs = [ TestPod TestPodCoverage ];
@@ -3868,10 +3880,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   HashMerge = buildPerlPackage rec {
-    name = "Hash-Merge-0.12";
+    name = "Hash-Merge-0.200";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Hash/${name}.tar.gz";
-      sha256 = "07h7dyldxwqhq3x4fp9hacnc4vgipp0jk50b5cbvib975nfxx98z";
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/${name}.tar.gz";
+      sha256 = "0r1a2axz85wn6573zrl9rk8mkfl2cvf1gp9vwya5qndp60rz1ya7";
     };
     propagatedBuildInputs = [ Clone ];
     meta = {
@@ -3894,10 +3906,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   HashMultiValue = buildPerlPackage {
-    name = "Hash-MultiValue-0.13";
+    name = "Hash-MultiValue-0.15";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Hash-MultiValue-0.13.tar.gz;
-      sha256 = "0flflmk2kxq9sjmhxr1547lidgigibhck912j4ambdwg21sbxjjd";
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Hash-MultiValue-0.15.tar.gz;
+      sha256 = "1jc37kwpa1fl88va8bd1p95h0vjv1gsvmn7pc2pxj62ga6x0wpc0";
     };
     meta = {
       description = "Store multiple values per key";
@@ -3906,10 +3918,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   HashUtilFieldHashCompat = buildPerlPackage {
-    name = "Hash-Util-FieldHash-Compat-0.03";
+    name = "Hash-Util-FieldHash-Compat-0.07";
     src = fetchurl {
-      url = mirror://cpan/authors/id/N/NU/NUFFIN/Hash-Util-FieldHash-Compat-0.03.tar.gz;
-      sha256 = "0pmai98a89j82fjksfax87brmpimjn74kr7bl874lc1k40dfhx47";
+      url = mirror://cpan/authors/id/E/ET/ETHER/Hash-Util-FieldHash-Compat-0.07.tar.gz;
+      sha256 = "1fbqcjvp5slkfyf63g8scrbdpkpw3g9z9557xvfaxn09aki7g1bn";
     };
     propagatedBuildInputs = [ Testuseok ];
     meta = {
@@ -3931,10 +3943,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   HookLexWrap = buildPerlPackage rec {
-    name = "Hook-LexWrap-0.22";
+    name = "Hook-LexWrap-0.24";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/C/CH/CHORNY/${name}.zip";
-      sha256 = "eda90ba26f8a0cef02d38f08a1786a203beec1309279493c78eed13567d0fa7e";
+      url = "mirror://cpan/authors/id/C/CH/CHORNY/${name}.tar.gz";
+      sha256 = "0nyfirbdrgs2cknifqr1pf8xd5q9xnv91gy7jha4crp1hjqvihj4";
     };
     buildInputs = [ pkgs.unzip ];
   };
@@ -3993,10 +4005,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   HTMLFormHandler = buildPerlPackage {
-    name = "HTML-FormHandler-0.40055";
+    name = "HTML-FormHandler-0.40056";
     src = fetchurl {
-      url = mirror://cpan/authors/id/G/GS/GSHANK/HTML-FormHandler-0.40055.tar.gz;
-      sha256 = "47e3cf69e2475cba86356eda340e6622df0525e2d0aa2343aef9f924f13d86cd";
+      url = mirror://cpan/authors/id/G/GS/GSHANK/HTML-FormHandler-0.40056.tar.gz;
+      sha256 = "012wijl69qjazghq2ywikk0jdxjbd9rfsxmwwq7lbpfjy2fiymqx";
     };
     buildInputs = [ FileShareDirInstall PadWalker TestDifferences TestException TestMemoryCycle ];
     propagatedBuildInputs = [ ClassLoad DataClone DateTime DateTimeFormatStrptime EmailValid FileShareDir HTMLTree JSON ListAllUtils Moose MooseXGetopt MooseXTypes MooseXTypesCommon MooseXTypesLoadableClass SubExporter SubName TryTiny aliased namespaceautoclean ];
@@ -4022,10 +4034,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   HTMLSelectorXPath = buildPerlPackage {
-    name = "HTML-Selector-XPath-0.15";
+    name = "HTML-Selector-XPath-0.16";
     src = fetchurl {
-      url = mirror://cpan/authors/id/C/CO/CORION/HTML-Selector-XPath-0.15.tar.gz;
-      sha256 = "0wnb561yp1r3mqw2hmd16zm45lqqm2mp823s1rx2k4qw141rmkpv";
+      url = mirror://cpan/authors/id/C/CO/CORION/HTML-Selector-XPath-0.16.tar.gz;
+      sha256 = "0v12plal866ifcv7m8x22abrddd6cf12gn55qclk53qqa6c8f8m6";
     };
     buildInputs = [ TestBase ];
     meta = {
@@ -4061,18 +4073,18 @@ let self = _self // overrides; _self = with self; {
   };
 
   HTMLTemplate = buildPerlPackage rec {
-    name = "HTML-Template-2.9";
+    name = "HTML-Template-2.95";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SA/SAMTREGAR/${name}.tar.gz";
-      sha256 = "0is026jn1731lvfjglv4003dsr8drshvw25zlbjrywk59kx7nsb2";
+      url = "mirror://cpan/authors/id/W/WO/WONKO/${name}.tar.gz";
+      sha256 = "07ahpfgidxsw2yb7y8i7bbr8s64aq6qgq832h9jswmksxbd0l43q";
     };
   };
 
   HTMLTiny = buildPerlPackage rec {
-    name = "HTML-Tiny-1.03";
+    name = "HTML-Tiny-1.05";
     src = fetchurl {
       url = "mirror://cpan/authors/id/A/AN/ANDYA/${name}.tar.gz";
-      sha256 = "1nc9vr0z699jwv8jaxxpkfhspiv7glhdp500hqyzdm2jxfw8azrg";
+      sha256 = "18zxg7z51f5daidnwl9vxsrs3lz0y6n5ddqhpb748bjyk3awkkfp";
     };
   };
 
@@ -4190,10 +4202,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   HTTPLite = buildPerlPackage rec {
-    name = "HTTP-Lite-2.4";
+    name = "HTTP-Lite-2.43";
     src = fetchurl {
       url = "mirror://cpan/authors/id/N/NE/NEILB/${name}.tar.gz";
-      sha256 = "66f4fc0f93eeb42c09737f83b21de1944212ae9b2acb784d5103e8208491477b";
+      sha256 = "10svyy8r5ca86spz21r0k2mdy8g2slzssin4qbg101zc9kr5r65a";
     };
   };
 
@@ -4224,10 +4236,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   HTTPParserXS = buildPerlPackage rec {
-    name = "HTTP-Parser-XS-0.14";
+    name = "HTTP-Parser-XS-0.16";
     src = fetchurl {
       url = "mirror://cpan/authors/id/K/KA/KAZUHO/${name}.tar.gz";
-      sha256 = "06srbjc380kvvj76r8n5c2y282j5zfgn0s0zmb9h3shwrynfqj05";
+      sha256 = "1sp9vllf012paslmn11b7z7fbk3hhkcp7gj59yp6qzh11xzpxlai";
     };
     buildInputs = [ TestMore ];
   };
@@ -4274,20 +4286,20 @@ let self = _self // overrides; _self = with self; {
   };
 
   "if" = buildPerlPackage {
-    name = "if-0.0601";
+    name = "if-0.01000001";
     src = fetchurl {
-      url = mirror://cpan/authors/id/I/IL/ILYAZ/modules/if-0.0601.tar.gz;
-      sha256 = "fb2b7329aa111a673cd22dc2889167e52058aead0de2fe0855b32dd658d5c1b7";
+      url = mirror://cpan/authors/id/I/IL/ILYAZ/modules/if-0.01000001.tar.gz;
+      sha256 = "0vb40cb20b22layp5v9xa30hmcnhxidwjkfwcrxwhrvwypy2cmgw";
     };
     meta = {
     };
   };
 
   IOAll = buildPerlPackage {
-    name = "IO-All-0.50";
+    name = "IO-All-0.60";
     src = fetchurl {
-      url = mirror://cpan/authors/id/I/IN/INGY/IO-All-0.50.tar.gz;
-      sha256 = "13mc913jqqfkaily48cd886x0n6x6zw59c00fmkhqc97xh1kdckc";
+      url = mirror://cpan/authors/id/F/FR/FREW/IO-All-0.60.tar.gz;
+      sha256 = "1bwsd2f5rlivcqyd7rb0ap5vrzv8s8fappi3b1v553yr5vl5pyq9";
     };
     propagatedBuildInputs = [ IOString ];
     meta = {
@@ -4300,10 +4312,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   IOCaptureOutput = buildPerlPackage rec {
-    name = "IO-CaptureOutput-1.1102";
+    name = "IO-CaptureOutput-1.1103";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/IO/${name}.tar.gz";
-      sha256 = "2ea16dbecb21a3c2be49a93fb1e7e51275bed3f7ef3ac30cbdbff5d0178d43c7";
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/${name}.tar.gz";
+      sha256 = "1bcl7p87ysbzab6hssq19xn3djzc0yk9l4hk0a2mqbqb8hv6p0m5";
     };
   };
 
@@ -4323,10 +4335,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   IODigest = buildPerlPackage {
-    name = "IO-Digest-0.10";
+    name = "IO-Digest-0.11";
     src = fetchurl {
-      url = mirror://cpan/authors/id/C/CL/CLKAO/IO-Digest-0.10.tar.gz;
-      sha256 = "1g6ilxqv2a7spf273v7k0721c6am7pwpjrin3h5zaqxfmd312nav";
+      url = mirror://cpan/authors/id/C/CL/CLKAO/IO-Digest-0.11.tar.gz;
+      sha256 = "14kz7z4xw179aya3116wxac29l4y2wmwrba087lya4v2gxdgiz4g";
     };
     propagatedBuildInputs = [PerlIOviadynamic];
   };
@@ -4373,26 +4385,28 @@ let self = _self // overrides; _self = with self; {
   };
 
   IOSocketInet6 = buildPerlPackage rec {
-    name = "IO-Socket-INET6-2.71";
+    name = "IO-Socket-INET6-2.72";
     src = fetchurl {
       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/${name}.tar.gz";
-      sha256 = "041iv3fdskvk7in73bf7253ah9aiqwxzi4zxfiwkn0jlb7mnqjrl";
+      sha256 = "1fqypz6qa5rw2d5y2zq7f49frwra0aln13nhq5gi514j2zx21q45";
     };
     propagatedBuildInputs = [Socket6];
     doCheck = false;
   };
 
-  IOSocketSSL = buildPerlPackage rec {
-    name = "IO-Socket-SSL-1.81";
+  IOSocketSSL = buildPerlPackage {
+    name = "IO-Socket-SSL-1.981";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/IO/${name}.tar.gz";
-      sha256 = "1vg7jpn7vz3a2j3fxjjkaxiiqg7azqmy7afrpghiqkjcr8b6zs9y";
+      url = mirror://cpan/authors/id/S/SU/SULLR/IO-Socket-SSL-1.981.tar.gz;
+      sha256 = "d78f3aac72888a350962c2da87b2b459513a175d7ac641cb1482bacbb81e76eb";
     };
     propagatedBuildInputs = [ URI NetSSLeay ];
     meta = {
+      homepage = https://github.com/noxxi/p5-io-socket-ssl;
       description = "Nearly transparent SSL encapsulation for IO::Socket::INET";
       license = "perl";
     };
+    doCheck = false; # tries to connect to facebook.com etc.
   };
 
   IOString = buildPerlPackage rec {
@@ -4414,10 +4428,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   IOTieCombine = buildPerlPackage {
-    name = "IO-TieCombine-1.002";
+    name = "IO-TieCombine-1.004";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/IO-TieCombine-1.002.tar.gz;
-      sha256 = "fd4f59e82852fd8b868dd1642cb6ec9caf32a597803fdce2cbe8d580c3b41d44";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/IO-TieCombine-1.004.tar.gz;
+      sha256 = "0awyyjdbjjawdkzs08rfjhfkkm7pni523x3ddmq9ixa82ibnn430";
     };
     meta = {
       homepage = https://github.com/rjbs/io-tiecombine;
@@ -4451,10 +4465,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   IPCRun3 = buildPerlPackage rec {
-    name = "IPC-Run3-0.046";
+    name = "IPC-Run3-0.048";
     src = fetchurl {
       url = "mirror://cpan/authors/id/R/RJ/RJBS/${name}.tar.gz";
-      sha256 = "033miv4z6g50q71blj8l1g846frngm1v5l3mcv38dslkjqimxxp4";
+      sha256 = "0r9m8q78bg7yycpixd7738jm40yz71p2q7inm766kzsw3g6c709x";
     };
   };
 
@@ -4602,10 +4616,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   JSONXS = buildPerlPackage {
-    name = "JSON-XS-2.33";
+    name = "JSON-XS-2.34";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/ML/MLEHMANN/JSON-XS-2.33.tar.gz;
-      sha256 = "0p68f85xz6xx2c9ydz4bij5x4d1747rxs3jdq53ab915mnc1qfdl";
+      url = mirror://cpan/authors/id/M/ML/MLEHMANN/JSON-XS-2.34.tar.gz;
+      sha256 = "1sh0i73skxp3rvd9w8phxqncw9m1r5ibnb9qxxm21bmrfwkxybx6";
     };
     propagatedBuildInputs = [ CommonSense ];
     meta = {
@@ -4668,10 +4682,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   LinguaENTagger = buildPerlPackage {
-    name = "Lingua-EN-Tagger-0.23";
+    name = "Lingua-EN-Tagger-0.24";
     src = fetchurl {
-      url = mirror://cpan/authors/id/A/AC/ACOBURN/Lingua-EN-Tagger-0.23.tar.gz;
-      sha256 = "0xq6567gijczxzq72ghfa9jr8zyc1p0ax9s12mv7slibpkfkm2d2";
+      url = mirror://cpan/authors/id/A/AC/ACOBURN/Lingua-EN-Tagger-0.24.tar.gz;
+      sha256 = "0qksqh1zi8fz76a29s2ll4g6yr8y6agmzgq7ngccvgj3gza5q241";
     };
     propagatedBuildInputs = [ HTMLParser HTMLTagset LinguaStem /* MemoizeExpireLRU */ ];
     meta = {
@@ -4746,10 +4760,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   LocaleMaketext = buildPerlPackage {
-    name = "Locale-Maketext-1.13";
+    name = "Locale-Maketext-1.23";
     src = fetchurl {
-      url = mirror://cpan/authors/id/F/FE/FERREIRA/Locale-Maketext-1.13.tar.gz;
-      sha256 = "0qvrhcs1f28ix3v8hcd5xr4z9s7plz4g5a4q1cjp7bs0c3w2yl6z";
+      url = mirror://cpan/authors/id/T/TO/TODDR/Locale-Maketext-1.23.tar.gz;
+      sha256 = "1r1sq7djafvk5abzc4l068p39dz44hlpgdldj3igvn2bjz78cli1";
     };
     propagatedBuildInputs = [I18NLangTags];
   };
@@ -4764,10 +4778,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   LocaleMaketextSimple = buildPerlPackage {
-    name = "Locale-Maketext-Simple-0.18";
+    name = "Locale-Maketext-Simple-0.21";
     src = fetchurl {
-      url = mirror://cpan/authors/id/A/AU/AUDREYT/Locale-Maketext-Simple-0.18.tar.gz;
-      sha256 = "14kx7vkxyfqndy90rzavrjp2346aidyc7x5dzzdj293qf8s4q6ig";
+      url = mirror://cpan/authors/id/J/JE/JESSE/Locale-Maketext-Simple-0.21.tar.gz;
+      sha256 = "1ad9vh45j8c32nzkbjipinawyg1pnjckwlhsjqcqs47vyi8zy2dh";
     };
   };
 
@@ -4787,18 +4801,18 @@ let self = _self // overrides; _self = with self; {
   };
 
   LockFileSimple = buildPerlPackage rec {
-    name = "LockFile-Simple-0.207";
+    name = "LockFile-Simple-0.208";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JV/JV/LockFile-Simple-0.207.tar.gz";
-      sha256 = "171vi9y6jlkny0d4jaavz48d1vbxljknnmbq8h22fi8lnc5kvipa";
+      url = "mirror://cpan/authors/id/S/SC/SCHWIGON/lockfile-simple/LockFile-Simple-0.208.tar.gz";
+      sha256 = "18pk5a030dsg1h6wd8c47wl8pzrpyh9zi9h2c9gs9855nab7iis5";
     };
   };
 
   LogContextual = buildPerlPackage {
-    name = "Log-Contextual-0.005003";
+    name = "Log-Contextual-0.006003";
     src = fetchurl {
-      url = mirror://cpan/authors/id/F/FR/FREW/Log-Contextual-0.005003.tar.gz;
-      sha256 = "8519ae92bd8685d003460f99151996e94f38c3c8f12b90634857558605d13719";
+      url = mirror://cpan/authors/id/F/FR/FREW/Log-Contextual-0.006003.tar.gz;
+      sha256 = "0940s910n67arqvz7aji4z6vgzzl52aq3l3jg8vq4ygnkn7c9k21";
     };
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ DataDumperConcise ExporterDeclare Moo ];
@@ -4834,18 +4848,18 @@ let self = _self // overrides; _self = with self; {
   };
 
   Log4Perl = buildPerlPackage rec {
-    name = "Log-Log4perl-1.41";
+    name = "Log-Log4perl-1.43";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Log/${name}.tar.gz";
-      sha256 = "0dajkgvlwsb4zdw6x3fil2n5phypq829dmqf8l9s88g9smms2a2i";
+      url = "mirror://cpan/authors/id/M/MS/MSCHILLI/${name}.tar.gz";
+      sha256 = "19rmm1nlcradfj74rrvkjwmfighmjj9fiisml2j23i248vyz4cay";
     };
   };
 
   LogDispatchArray = buildPerlPackage {
-    name = "Log-Dispatch-Array-1.002";
+    name = "Log-Dispatch-Array-1.003";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Log-Dispatch-Array-1.002.tar.gz;
-      sha256 = "268ec720eec3651d3dadcad7d16f033b47f883c72d6f2547c4ccbe7fb22a4940";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Log-Dispatch-Array-1.003.tar.gz;
+      sha256 = "0dvzp0gsh17jqg02460ndchyapr1haahndq1p9v6mwkv5wf9680c";
     };
     buildInputs = [ TestDeep ];
     propagatedBuildInputs = [ LogDispatch ];
@@ -4857,10 +4871,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   LogDispatchouli = buildPerlPackage {
-    name = "Log-Dispatchouli-2.006";
+    name = "Log-Dispatchouli-2.009";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Log-Dispatchouli-2.006.tar.gz;
-      sha256 = "bd33b4fcf88ccfb694593ea6d7b330f053e6afee40f27acdf690c24547365354";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Log-Dispatchouli-2.009.tar.gz;
+      sha256 = "09iw27r36gmljlm6gjfczn2sf4s1js697q8na8xw4wlnz7x4bv59";
     };
     buildInputs = [ TestDeep TestFatal ];
     propagatedBuildInputs = [ LogDispatch LogDispatchArray ParamsUtil StringFlogger SubExporter SubExporterGlobExporter TryTiny ];
@@ -4915,10 +4929,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   LWPUserAgent = buildPerlPackage {
-    name = "LWP-UserAgent-6.04";
+    name = "LWP-UserAgent-6.05";
     src = fetchurl {
-      url = mirror://cpan/authors/id/G/GA/GAAS/libwww-perl-6.04.tar.gz;
-      sha256 = "0z92fpwk6lh2gghv050r0qb216jmjl2m0c6zby935q8lv0q5wwgr";
+      url = mirror://cpan/authors/id/G/GA/GAAS/libwww-perl-6.05.tar.gz;
+      sha256 = "08wgwyz7748pv5cyngxia0xl6nragfnhrp4p9s78xhgfyygpj9bv";
     };
     propagatedBuildInputs = [ EncodeLocale FileListing HTMLParser HTTPCookies HTTPDaemon HTTPDate HTTPNegotiate HTTPMessage LWPMediaTypes NetHTTP URI WWWRobotRules ];
     meta = {
@@ -4958,10 +4972,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   LWPxParanoidAgent = buildPerlPackage rec {
-    name = "LWPx-ParanoidAgent-1.07";
+    name = "LWPx-ParanoidAgent-1.10";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BR/BRADFITZ/${name}.tar.gz";
-      sha256 = "bd7ccbe6ed6b64195a967e9b2b04c185b7b97e8ec5a8835bb45dbcd42a18e76a";
+      url = "mirror://cpan/authors/id/S/SA/SAXJAZMAN/lwp/${name}.tar.gz";
+      sha256 = "0i306p7mdqx09qfsf6b3rnn5xw9v9r3md4swlbk9z0mskjl0l4w4";
     };
     doCheck = false; # 3 tests fail, probably because they try to connect to the network
     propagatedBuildInputs = [ LWP NetDNS ];
@@ -4982,19 +4996,19 @@ let self = _self // overrides; _self = with self; {
   };
 
   MailIMAPClient = buildPerlPackage {
-    name = "Mail-IMAPClient-2.2.9";
+    name = "Mail-IMAPClient-3.35";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DJ/DJKERNEN/Mail-IMAPClient-2.2.9.tar.gz;
-      sha256 = "1jb04mn66d6022xjqmax49cdn55f2fdzp6knfnchmrcmf90a8rzs";
+      url = mirror://cpan/authors/id/P/PL/PLOBBES/Mail-IMAPClient-3.35.tar.gz;
+      sha256 = "0qzn8370cr91jnq1kawy6v16bcz49pch6inmw85rhzg87j1h6ica";
     };
     buildInputs = [ParseRecDescent];
   };
 
   MailTools = buildPerlPackage {
-    name = "MailTools-2.04";
+    name = "MailTools-2.13";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MA/MARKOV/MailTools-2.04.tar.gz;
-      sha256 = "0w91rcrz4v0pjdnnv2mvlbrm9ww32f7ajhr7xkjdhhr3455p7adx";
+      url = mirror://cpan/authors/id/M/MA/MARKOV/MailTools-2.13.tar.gz;
+      sha256 = "1djjl05ndn8dmwri4vw5wfky5sqy7sf63qaijvhf9g5yh53405kj";
     };
     propagatedBuildInputs = [TimeDate TestPod];
   };
@@ -5034,10 +5048,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   MathPlanePath = buildPerlPackage rec {
-    name = "Math-PlanePath-101";
+    name = "Math-PlanePath-114";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Math/${name}.tar.gz";
-      sha256 = "0g24zhgyxs56zv966xb487vvmhqqxvvsbbz4mck8n4l31rabk8jj";
+      url = "mirror://cpan/authors/id/K/KR/KRYDE/${name}.tar.gz";
+      sha256 = "11808k6aqf7gfkv0k0r8586zk8dm0jg5idkdb839gzlr97ns2y61";
     };
     propagatedBuildInputs = [ MathLibm constant-defer ];
   };
@@ -5210,10 +5224,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ModuleBuildWithXSpp = buildPerlModule rec {
-    name = "Module-Build-WithXSpp-0.13";
+    name = "Module-Build-WithXSpp-0.14";
     src = fetchurl {
       url = "mirror://cpan/authors/id/S/SM/SMUELLER/${name}.tar.gz";
-      sha256 = "05c5dssgl7ykj64nkzy4nwfrs0hd1lvfidhflrs3f1c7hc0z9g46";
+      sha256 = "0d39fjg9c0n820bk3fb50vvlwhdny4hdl69xmlyzql5xzp4cicsk";
     };
     propagatedBuildInputs = [ ExtUtilsXSpp ExtUtilsCppGuess ];
   };
@@ -5232,10 +5246,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ModuleFind = buildPerlPackage {
-    name = "Module-Find-0.11";
+    name = "Module-Find-0.12";
     src = fetchurl {
-      url = mirror://cpan/authors/id/C/CR/CRENZ/Module-Find-0.11.tar.gz;
-      sha256 = "15ykcwplbqh5hc0fw4cx6g0f22zr0hrfkdkv1s34n9yg574dq3b5";
+      url = mirror://cpan/authors/id/C/CR/CRENZ/Module-Find-0.12.tar.gz;
+      sha256 = "1lc33jdv4pgmm7nkr9bff0lhwjhhw91kaf6iiy2n7i7mw8dfv47l";
     };
     meta = {
       description = "Find and use installed modules in a (sub)category";
@@ -5244,10 +5258,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ModuleImplementation = buildPerlPackage {
-    name = "Module-Implementation-0.06";
+    name = "Module-Implementation-0.07";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DR/DROLSKY/Module-Implementation-0.06.tar.gz;
-      sha256 = "0v8qajzkpkwb9mfj2p46j352bwiszkg1zk778b008axqb817hfys";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/Module-Implementation-0.07.tar.gz;
+      sha256 = "15r93l8danysfhb7wn2zww1s02hajki4k3xjfxbpz7ckadqq6jbk";
     };
     buildInputs = [ TestFatal TestRequires ];
     propagatedBuildInputs = [ ModuleRuntime TryTiny ];
@@ -5339,10 +5353,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ModulePath = buildPerlPackage {
-    name = "Module-Path-0.09";
+    name = "Module-Path-0.13";
     src = fetchurl {
-      url = mirror://cpan/authors/id/N/NE/NEILB/Module-Path-0.09.tar.gz;
-      sha256 = "5330a76ff56800778d825548b4d631510a1a6b4f04725dddca95e68c4ed3ac18";
+      url = mirror://cpan/authors/id/N/NE/NEILB/Module-Path-0.13.tar.gz;
+      sha256 = "1kzsi0z142gcspyyp81za29bq0y74l57a8i2q7gz4zcchf2xm23g";
     };
     buildInputs = [ DevelFindPerl ];
     meta = {
@@ -5352,10 +5366,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ModulePluggable = buildPerlPackage {
-    name = "Module-Pluggable-4.8";
+    name = "Module-Pluggable-5.1";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SI/SIMONW/Module-Pluggable-4.8.tar.gz;
-      sha256 = "0gc2sanga3207l3dnmb05isc7m87l1j94v9ll3z4sbb3vs49gdd2";
+      url = mirror://cpan/authors/id/S/SI/SIMONW/Module-Pluggable-5.1.tar.gz;
+      sha256 = "0vwi433pk7n1ia5wy67j3545jvmjf1hb4jwcvzrz25mv8d03bp72";
     };
     patches = [
       # !!! merge this patch into Perl itself (which contains Module::Pluggable as well)
@@ -5368,19 +5382,19 @@ let self = _self // overrides; _self = with self; {
   };
 
   ModulePluggableFast = buildPerlPackage {
-    name = "Module-Pluggable-Fast-0.18";
+    name = "Module-Pluggable-Fast-0.19";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SR/SRI/Module-Pluggable-Fast-0.18.tar.gz;
-      sha256 = "140c311x2darrc2p1drbkafv7qwhzdcff4ad300n6whsx4dfp6wr";
+      url = mirror://cpan/authors/id/M/MR/MRAMBERG/Module-Pluggable-Fast-0.19.tar.gz;
+      sha256 = "0pq758wlasmh77xyd2xh75m5b2x14s8pnsv63g5356gib1q5gj08";
     };
     propagatedBuildInputs = [UNIVERSALrequire];
   };
 
   ModuleRuntime = buildPerlPackage {
-    name = "Module-Runtime-0.013";
+    name = "Module-Runtime-0.014";
     src = fetchurl {
-      url = mirror://cpan/authors/id/Z/ZE/ZEFRAM/Module-Runtime-0.013.tar.gz;
-      sha256 = "08qhqg1qshrispcpzf24jbbpx2gh5ks84amnv9wmd46wj0yy0dzc";
+      url = mirror://cpan/authors/id/Z/ZE/ZEFRAM/Module-Runtime-0.014.tar.gz;
+      sha256 = "19326f094jmjs6mgpwkyisid54k67w34br8yfh0gvaaml87gwi2c";
     };
     meta = {
       homepage = http://search.cpan.org/perldoc?CPAN::Meta::Spec;
@@ -5470,10 +5484,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   MooseAutobox = buildPerlPackage {
-    name = "Moose-Autobox-0.13";
+    name = "Moose-Autobox-0.15";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Moose-Autobox-0.13.tar.gz;
-      sha256 = "3474b3e6dfe099fcca34089375ace6612cca35d4d8f9a0b8b4e48fbf88541b21";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Moose-Autobox-0.15.tar.gz;
+      sha256 = "0xcayrfm08dqas1mq8lnf8nxkvzdgcmv6xs5lqah17bxqxgznrl9";
     };
     buildInputs = [ TestException ];
     propagatedBuildInputs = [ Moose SyntaxKeywordJunction autobox ];
@@ -5501,10 +5515,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   MooseXAliases = buildPerlPackage rec {
-    name = "MooseX-Aliases-0.10";
+    name = "MooseX-Aliases-0.11";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/MooseX/${name}.tar.gz";
-      sha256 = "1n3z06x6d7sl2can7gn1q4qpclg6sjl6i8fd9y3yipmaxbk97clz";
+      url = "mirror://cpan/authors/id/D/DO/DOY/${name}.tar.gz";
+      sha256 = "0j07zqczjfmng3md6nkha7560i786d0cp3gdmrx49hr64jbhz1f4";
     };
     buildInputs = [ TestFatal TestRequires ];
     propagatedBuildInputs = [ Moose ];
@@ -5566,10 +5580,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   MooseXConfigFromFile = buildPerlPackage {
-    name = "MooseX-ConfigFromFile-0.11";
+    name = "MooseX-ConfigFromFile-0.13";
     src = fetchurl {
-      url = mirror://cpan/authors/id/E/ET/ETHER/MooseX-ConfigFromFile-0.11.tar.gz;
-      sha256 = "963e7dbb2bc7ca18995db903c64b0841c4e8d3877009bff5475125673c3b02b4";
+      url = mirror://cpan/authors/id/E/ET/ETHER/MooseX-ConfigFromFile-0.13.tar.gz;
+      sha256 = "0pf5f05hs2i765cnw9sw1hdxf7vz480iyyngjawr4yqjkv4r5nz7";
     };
     buildInputs = [ Moose TestCheckDeps TestDeep TestFatal TestNoWarnings TestRequires TestWithoutModule ];
     propagatedBuildInputs = [ Moose MooseXTypes MooseXTypesPathTiny TryTiny namespaceautoclean ];
@@ -5702,10 +5716,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   MooseXNonMoose = buildPerlPackage {
-    name = "MooseX-NonMoose-0.22";
+    name = "MooseX-NonMoose-0.26";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DO/DOY/MooseX-NonMoose-0.22.tar.gz;
-      sha256 = "0mhyabg5f6kngkm1w7hfglkdzjdn5pbgm7vgia0aqy9mwwclbpdp";
+      url = mirror://cpan/authors/id/D/DO/DOY/MooseX-NonMoose-0.26.tar.gz;
+      sha256 = "0zdaiphc45s5xj0ax5mkijf5d8v6w6yccb3zplgj6f30y7n55gnb";
     };
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ ListMoreUtils Moose ];
@@ -5716,10 +5730,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   MooseXOneArgNew = buildPerlPackage {
-    name = "MooseX-OneArgNew-0.003";
+    name = "MooseX-OneArgNew-0.004";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/MooseX-OneArgNew-0.003.tar.gz;
-      sha256 = "bd1879192f542dbc0741dbd1ba71f29bd22a0fce372d7a6ae04dbded51d71123";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/MooseX-OneArgNew-0.004.tar.gz;
+      sha256 = "1frfrqaj283z1x95cqbbj3cvmb6rj50ngs47jq8myz6d1bg4zwff";
     };
     buildInputs = [ Moose ];
     propagatedBuildInputs = [ Moose MooseXRoleParameterized namespaceautoclean ];
@@ -5755,10 +5769,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   MooseXRoleParameterized = buildPerlPackage {
-    name = "MooseX-Role-Parameterized-1.00";
+    name = "MooseX-Role-Parameterized-1.02";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SA/SARTAK/MooseX-Role-Parameterized-1.00.tar.gz;
-      sha256 = "0642h71j90i0jrqxz1snizkw9pch8v1s1w0zndrcl5bb85lx3z7y";
+      url = mirror://cpan/authors/id/S/SA/SARTAK/MooseX-Role-Parameterized-1.02.tar.gz;
+      sha256 = "089czh2pipvdajjy4rxlix0y20ilp3ldbzi0vs68b7k6k9q3mqdk";
     };
     buildInputs = [ TestFatal TestMoose ];
     propagatedBuildInputs = [ Moose ];
@@ -5855,10 +5869,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   MooseXTraitsPluggable = buildPerlPackage rec {
-    name = "MooseX-Traits-Pluggable-0.10";
+    name = "MooseX-Traits-Pluggable-0.12";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/MooseX/${name}.tar.gz";
-      sha256 = "0gv79bsnacrzwpac3dll64zj40qcsbp4kdk8yr9z5bwim7nkvnv3";
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/${name}.tar.gz";
+      sha256 = "1jjqmcidy4kdgp5yffqqwxrsab62mbhbpvnzdy1rpwnb1savg5mb";
     };
     buildInputs =[ TestException ];
     propagatedBuildInputs =
@@ -5965,10 +5979,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   MooseXTypesPerl = buildPerlPackage {
-    name = "MooseX-Types-Perl-0.101341";
+    name = "MooseX-Types-Perl-0.101343";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/MooseX-Types-Perl-0.101341.tar.gz;
-      sha256 = "d1081a734d62121f3262b18170022de2f51ebcc0a8b8afe1b1273d7cb3e58c97";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/MooseX-Types-Perl-0.101343.tar.gz;
+      sha256 = "0nijy676q27bvjb8swxrb1j4lq2xq8jbqkaxs1l9q81k7jpvx17h";
     };
     propagatedBuildInputs = [ MooseXTypes ParamsUtil ];
     meta = {
@@ -5978,10 +5992,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   MooseXTypesStringlike = buildPerlPackage {
-    name = "MooseX-Types-Stringlike-0.001";
+    name = "MooseX-Types-Stringlike-0.002";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DA/DAGOLDEN/MooseX-Types-Stringlike-0.001.tar.gz;
-      sha256 = "2ba71fff105d851ea6aee85bef5d6629726138a2b005b77a163a8bfb403cea03";
+      url = mirror://cpan/authors/id/D/DA/DAGOLDEN/MooseX-Types-Stringlike-0.002.tar.gz;
+      sha256 = "18g07bvhcrhirb1yhcz55y7nsvkw1wq285d1hyb0jxrzgr0ga94k";
     };
     buildInputs = [ Moose ];
     propagatedBuildInputs = [ MooseXTypes ];
@@ -5995,10 +6009,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   MooseXTypesStructured = buildPerlPackage {
-    name = "MooseX-Types-Structured-0.28";
+    name = "MooseX-Types-Structured-0.30";
     src = fetchurl {
-      url = mirror://cpan/authors/id/J/JJ/JJNAPIORK/MooseX-Types-Structured-0.28.tar.gz;
-      sha256 = "12snpf65bh3jyx9w1h1sark83l0w51s3jdcr4ygw57cxvq39yl43";
+      url = mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Structured-0.30.tar.gz;
+      sha256 = "0svfgbyzwdipywh7bfp954hncm8ihfr8xpppcyy59wr1inx2f55c";
     };
     buildInputs = [ DateTime MooseXTypesDateTime TestFatal ];
     propagatedBuildInputs = [ DevelPartialDump Moose MooseXTypes SubExporter ];
@@ -6012,10 +6026,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   MooseXTypesURI = buildPerlPackage {
-    name = "MooseX-Types-URI-0.03";
+    name = "MooseX-Types-URI-0.05";
     src = fetchurl {
-      url = mirror://cpan/authors/id/F/FL/FLORA/MooseX-Types-URI-0.03.tar.gz;
-      sha256 = "056v08kzcd93h8l69iqdxbr05h85bgz6jvp6iwc0vv68dacr299s";
+      url = mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-URI-0.05.tar.gz;
+      sha256 = "08acqm23ff22hicb3l4wc7szvdhlxpan7qmpgl15ilawrmz60p82";
     };
     propagatedBuildInputs = [ Moose MooseXTypes MooseXTypesPathClass namespaceclean Testuseok URI URIFromHash ];
     meta = {
@@ -6098,10 +6112,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   namespaceclean = buildPerlPackage rec {
-    name = "namespace-clean-0.24";
+    name = "namespace-clean-0.25";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RI/RIBASUSHI/namespace-clean-0.24.tar.gz;
-      sha256 = "0c0jj44f3y26scybnxp2lnkcydjqh0lfr6l1jsy13r3x9r4d8qd6";
+      url = mirror://cpan/authors/id/R/RI/RIBASUSHI/namespace-clean-0.25.tar.gz;
+      sha256 = "016dds70ql1mp18b07chkxiy4drn976ibnbshqc2hmhrh9xjnsll";
     };
     propagatedBuildInputs = [ BHooksEndOfScope PackageStash ];
     meta = {
@@ -6112,10 +6126,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   NetAddrIP = buildPerlPackage rec {
-    name = "NetAddr-IP-4.071";
+    name = "NetAddr-IP-4.072";
     src = fetchurl {
       url = "mirror://cpan/authors/id/M/MI/MIKER/${name}.tar.gz";
-      sha256 = "0m8d8ccygpjhbsv00vjfz8cvkjcn8dws0k4x58vbvnbjdv3yhxb3";
+      sha256 = "17gwhhbz25021w5k4ggp8j3plix5yixgb2vr1mj39fa0p3gafm09";
     };
   };
 
@@ -6185,10 +6199,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   NetAmazonS3Policy = buildPerlPackage {
-    name = "Net-Amazon-S3-Policy-0.1.2";
+    name = "Net-Amazon-S3-Policy-0.1.6";
     src = fetchurl {
-      url = mirror://cpan/authors/id/P/PO/POLETTIX/Net-Amazon-S3-Policy-0.1.2.tar.gz;
-      sha256 = "1kkzimvxwxx0mypf75dalksxmvwsb8b575yx2nzmvjkvjg3j9na0";
+      url = mirror://cpan/authors/id/P/PO/POLETTIX/Net-Amazon-S3-Policy-0.1.6.tar.gz;
+      sha256 = "056rhq6vsdpwi2grbmxj8341qjrz0258civpnhs78j37129nxcfj";
     };
     propagatedBuildInputs = [ JSON ];
     meta = {
@@ -6249,20 +6263,20 @@ let self = _self // overrides; _self = with self; {
   };
 
   NetDNS = buildPerlPackage {
-    name = "Net-DNS-0.63";
+    name = "Net-DNS-0.74";
     src = fetchurl {
-      url = mirror://cpan/authors/id/O/OL/OLAF/Net-DNS-0.63.tar.gz;
-      sha256 = "1pswrwhkav051xahm3k4cbyhi8kqpfmaz85lw44kwi2wc7mz4prk";
+      url = mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-0.74.tar.gz;
+      sha256 = "0clwl4nqzg23d6l9d9gc8ijl1lbghhfrbavjlvhd1wll5r8ayr7g";
     };
     propagatedBuildInputs = [NetIP DigestHMAC];
     doCheck = false;
   };
 
   NetHTTP = buildPerlPackage {
-    name = "Net-HTTP-6.05";
+    name = "Net-HTTP-6.06";
     src = fetchurl {
-      url = mirror://cpan/authors/id/G/GA/GAAS/Net-HTTP-6.05.tar.gz;
-      sha256 = "1r2bv3cw4m054qfsm6i7rpvhrql1d78izpc36prv3xvahfsqxawc";
+      url = mirror://cpan/authors/id/G/GA/GAAS/Net-HTTP-6.06.tar.gz;
+      sha256 = "1m1rvniffadq99gsy25298ia3lixwymr6kan64jd3ylyi7nkqkhx";
     };
     meta = {
       description = "Low-level HTTP connection (client)";
@@ -6282,11 +6296,11 @@ let self = _self // overrides; _self = with self; {
   };
 
   NetLDAP = buildPerlPackage {
-    name = "Net-LDAP-0.43";
+    name = "Net-LDAP-0.4001";
     propagatedBuildInputs = [ ConvertASN1 ];
     src = fetchurl {
-      url = mirror://cpan/authors/id/G/GB/GBARR/perl-ldap-0.43.tar.gz;
-      sha256 = "0ak7393zs8ps6r6in5ilr9l1mzxxh529jr768sjzx4273p7li3m0";
+      url = mirror://cpan/authors/id/G/GB/GBARR/perl-ldap-0.4001.tar.gz;
+      sha256 = "0spwid70yxkh5zbad3ldw8yb2m5shkm59a7f0kllw8bb7ccczqps";
     };
   };
 
@@ -6333,10 +6347,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   NetSMTP = buildPerlPackage {
-    name = "Net-SMTP-1.22";
+    name = "Net-SMTP-1.25";
     src = fetchurl {
-      url = mirror://cpan/authors/id/G/GB/GBARR/libnet-1.22.tar.gz;
-      sha256 = "113c36qilbvd69yhkm2i2ba20ajff7cdpgvlqx96j9bb1hfmhb1p";
+      url = mirror://cpan/authors/id/S/SH/SHAY/libnet-1.25.tar.gz;
+      sha256 = "01f3l4aj3ynl8syyrl122k4bmfds77yw5q36aafrgaq22fnb3b2a";
     };
     patchPhase = "chmod a-x Configure";
     doCheck = false; # The test suite fails, because it requires network access.
@@ -6370,10 +6384,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   NetSSLeay = buildPerlPackage rec {
-    name = "Net-SSLeay-1.52";
+    name = "Net-SSLeay-1.58";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Net/${name}.tar.gz";
-      sha256 = "1fkpdlpg99rdq2vlm6bgmqc8iazhcrfzvbpwxnn20k0viwpy7v28";
+      url = "mirror://cpan/authors/id/M/MI/MIKEM/${name}.tar.gz";
+      sha256 = "0mizg2g07fa4c13zpnhmjc87psal5gp5hi23kqpynigmkp0m1p0b";
     };
     buildInputs = [ pkgs.openssl ];
     OPENSSL_PREFIX = pkgs.openssl;
@@ -6400,10 +6414,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   NumberCompare = buildPerlPackage rec {
-    name = "Number-Compare-0.01";
+    name = "Number-Compare-0.03";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Number/${name}.tar.gz";
-      sha256 = "1vs95lbax3f63jg98jwkiahlvg1jhmd0xyyzmbxxifsl7fkv1d9j";
+      url = "mirror://cpan/authors/id/R/RC/RCLAMP/${name}.tar.gz";
+      sha256 = "09q8i0mxvr7q9vajwlgawsi0hlpc119gnhq4hc933d03x0vkfac3";
     };
   };
 
@@ -6416,10 +6430,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ObjectInsideOut = buildPerlPackage {
-    name = "Object-InsideOut-3.97";
+    name = "Object-InsideOut-3.98";
     src = fetchurl {
-      url = mirror://cpan/authors/id/J/JD/JDHEDDEN/Object-InsideOut-3.97.tar.gz;
-      sha256 = "19yr15w361lxxx2djy0ciwjpyd5bcs0skm3yw97w3xidw6r0wf0v";
+      url = mirror://cpan/authors/id/J/JD/JDHEDDEN/Object-InsideOut-3.98.tar.gz;
+      sha256 = "1zxfm2797p8b9dsvnbgd6aa4mgpxqxjqzbpfbla1g7f9alxm9f1z";
     };
     propagatedBuildInputs = [ ExceptionClass ];
     meta = {
@@ -6431,10 +6445,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ObjectSignature = buildPerlPackage {
-    name = "Object-Signature-1.05";
+    name = "Object-Signature-1.07";
     src = fetchurl {
-      url = mirror://cpan/authors/id/A/AD/ADAMK/Object-Signature-1.05.tar.gz;
-      sha256 = "10k9j18jpb16brv0hs7592r7hx877290pafb8gnk6ydy7hcq9r2j";
+      url = mirror://cpan/authors/id/A/AD/ADAMK/Object-Signature-1.07.tar.gz;
+      sha256 = "0c8l7195bjvx0v6zmkgdnxvwg7yj2zq8hi7xd25a3iikd12dc4f6";
     };
   };
 
@@ -6447,19 +6461,19 @@ let self = _self // overrides; _self = with self; {
   };
 
   NetOpenIDCommon = buildPerlPackage rec {
-    name = "Net-OpenID-Common-1.14";
+    name = "Net-OpenID-Common-1.18";
     src = fetchurl {
       url = "mirror://cpan/authors/id/W/WR/WROG/${name}.tar.gz";
-      sha256 = "24ac83539b188d85bd2c7bd67e355aab0ede3f98170b23cb50bd30b11b4387ff";
+      sha256 = "13hy5j6hcggb4l2r4pnwdh30p20wwja0chpmqm8y6wnnsp1km07f";
     };
     propagatedBuildInputs = [ CryptDHGMP URI HTMLParser HTTPMessage XMLSimple ];
   };
 
   NetOpenIDConsumer = buildPerlPackage rec {
-    name = "Net-OpenID-Consumer-1.13";
+    name = "Net-OpenID-Consumer-1.15";
     src = fetchurl {
       url = "mirror://cpan/authors/id/W/WR/WROG/${name}.tar.gz";
-      sha256 = "4ab927b6756366fa4cef2b54088645849f32fc7e0cd8de0a50001bbf62946fd8";
+      sha256 = "1nh9988436rmmmd6x2zz1fyrqy2005a1gvqzgvnc1pg2ylg61fqf";
     };
     propagatedBuildInputs = [ NetOpenIDCommon JSON LWP ];
   };
@@ -6495,10 +6509,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   PackageStashXS = buildPerlPackage {
-    name = "Package-Stash-XS-0.26";
+    name = "Package-Stash-XS-0.28";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DO/DOY/Package-Stash-XS-0.26.tar.gz;
-      sha256 = "1pfdpb3x40f5ldp5kp0d9xvrz4wk2fc3ww53wrq4dp326s08h7r9";
+      url = mirror://cpan/authors/id/D/DO/DOY/Package-Stash-XS-0.28.tar.gz;
+      sha256 = "11nl69n8i56p91pd0ia44ip0vpv2cxwpbfakrv01vvv8az1cbn13";
     };
     buildInputs = [ TestRequires TestFatal ];
     meta = {
@@ -6531,10 +6545,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ParamsValidate = buildPerlModule {
-    name = "Params-Validate-1.07";
+    name = "Params-Validate-1.08";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DR/DROLSKY/Params-Validate-1.07.tar.gz;
-      sha256 = "15mz2wxarxjlr3365m1hhcnfs6d2mw3m0yimnlv06j13cxs39py1";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/Params-Validate-1.08.tar.gz;
+      sha256 = "0641hbz5bx6jnk8dx2djnkd67fh7h1zx6x1bgmivkrh2yky9ch6h";
     };
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ ModuleImplementation ];
@@ -6574,18 +6588,18 @@ let self = _self // overrides; _self = with self; {
   };
 
   ParseRecDescent = buildPerlPackage rec {
-    name = "Parse-RecDescent-1.965001";
+    name = "Parse-RecDescent-1.967009";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DC/DCONWAY/${name}.tar.gz";
-      sha256 = "0r4dnrjgxv5irkyx1kgkg8vj6wqx67q5hbkifpb54906kc1n7yh0";
+      url = "mirror://cpan/authors/id/J/JT/JTBRAUN/${name}.tar.gz";
+      sha256 = "11y6fpz4j6kdimyaz2a6ig0jz0x7csqslhxaipxnjqi5h85hy071";
     };
   };
 
   PathClass = buildPerlPackage {
-    name = "Path-Class-0.29";
+    name = "Path-Class-0.33";
     src = fetchurl {
-      url = mirror://cpan/authors/id/K/KW/KWILLIAMS/Path-Class-0.29.tar.gz;
-      sha256 = "1z3wvci2qcb1m9qrkxphbnfnr4jqgxbxnxrmdb25ks8gap98hk4z";
+      url = mirror://cpan/authors/id/K/KW/KWILLIAMS/Path-Class-0.33.tar.gz;
+      sha256 = "0xy6s04xpslpzbb90x67yvfv0pjqnj1szxlx16vfx690iskcd36d";
     };
     meta = {
       description = "Cross-platform path specification manipulation";
@@ -6594,10 +6608,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   PathTiny = buildPerlPackage {
-    name = "Path-Tiny-0.026";
+    name = "Path-Tiny-0.052";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Tiny-0.026.tar.gz;
-      sha256 = "e79ee187bbf7fdef387886a8c929bd0a1171fb54db1984d79f4e04d90f733cc6";
+      url = mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Tiny-0.052.tar.gz;
+      sha256 = "1b70yhbdww9k5m4a4lhdd71jrxdxhi10533slmxynxa04nyn2f0a";
     };
     buildInputs = [ DevelHide Filepushd TestDeep TestFailWarnings TestFatal perl ];
     propagatedBuildInputs = [ autodie ];
@@ -6627,10 +6641,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   PerlCritic = buildPerlPackage {
-    name = "Perl-Critic-1.118";
+    name = "Perl-Critic-1.121";
     src = fetchurl {
-      url = mirror://cpan/authors/id/T/TH/THALJEF/Perl-Critic-1.118.tar.gz;
-      sha256 = "666d2bef3ac924598c06a05277680da5910e10d94c5ec161336f6509c11155e8";
+      url = mirror://cpan/authors/id/T/TH/THALJEF/Perl-Critic-1.121.tar.gz;
+      sha256 = "1y2bxjwzlp6ix51h36a5g3dqpaviaajij1rn22hpvcqxh4hh6car";
     };
     buildInputs = [ TestDeep ];
     propagatedBuildInputs = [ BKeywords ConfigTiny EmailAddress ExceptionClass IOString ListMoreUtils PPI PPIxRegexp PPIxUtilities PerlTidy PodSpell Readonly StringFormat TaskWeaken ];
@@ -6650,10 +6664,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   PerlIOviadynamic = buildPerlPackage {
-    name = "PerlIO-via-dynamic-0.12";
+    name = "PerlIO-via-dynamic-0.14";
     src = fetchurl {
-      url = mirror://cpan/authors/id/C/CL/CLKAO/PerlIO-via-dynamic-0.12.tar.gz;
-      sha256 = "140hay9q8q9sz1fa2s57ijp5l2448fkcg7indgn6k4vc7yshmqz2";
+      url = mirror://cpan/authors/id/A/AL/ALEXMV/PerlIO-via-dynamic-0.14.tar.gz;
+      sha256 = "0jbb3xpbqzmr625blvnjszd69l3cwxzi7bhmkj5x48dgv3s7mkca";
     };
   };
 
@@ -6666,10 +6680,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   PerlMagick = buildPerlPackage rec {
-    name = "PerlMagick-6.86";
+    name = "PerlMagick-6.87";
     src = fetchurl {
       url = "mirror://cpan/authors/id/J/JC/JCRISTY/${name}.tar.gz";
-      sha256 = "18xgh8r9pjxg9yi119gnsln1r4p4sk1r8bxd3iy0qj77frmksisi";
+      sha256 = "1bf2g80wdny2dfrrmfgk7cqrxzflx3qp1dnd3919grvrqdviyh16";
     };
     buildInputs = [pkgs.imagemagick];
     preConfigure =
@@ -6680,10 +6694,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   PerlOSType = buildPerlPackage rec {
-    name = "Perl-OSType-1.002";
+    name = "Perl-OSType-1.007";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Perl/${name}.tar.gz";
-      sha256 = "0clbfgq0800dip3821ibh29vrwcc159qnakidbiqrmhcisd95xbs";
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/${name}.tar.gz";
+      sha256 = "0aryn8dracfjfnks07b5rvsza4csinlsj6cn92jv3sv8sg3rmdxk";
     };
   };
 
@@ -6708,10 +6722,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   Plack = buildPerlPackage {
-    name = "Plack-1.0024";
+    name = "Plack-1.0030";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-1.0024.tar.gz;
-      sha256 = "485f69275d73401739a829cfee3bbc9bfa20a0843470791066365ac07fac04a1";
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-1.0030.tar.gz;
+      sha256 = "0bb9aqb0h9q4qjgkw756gf695h4qg6vim54s6f2icgsazdi63zq7";
     };
     buildInputs = [ FileShareDirInstall TestRequires ];
     propagatedBuildInputs = [ ApacheLogFormatCompiler DevelStackTrace DevelStackTraceAsHTML FileShareDir FilesysNotifySimple HTTPBody HTTPMessage HashMultiValue LWP StreamBuffered TestTCP TryTiny URI ];
@@ -6780,10 +6794,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   PPIxRegexp = buildPerlPackage {
-    name = "PPIx-Regexp-0.034";
+    name = "PPIx-Regexp-0.036";
     src = fetchurl {
-      url = mirror://cpan/authors/id/W/WY/WYANT/PPIx-Regexp-0.034.tar.gz;
-      sha256 = "512a358f4bd6196df0601ff36f7831e0ba142fb8ef2bc3995e19bceabd0b5ae7";
+      url = mirror://cpan/authors/id/W/WY/WYANT/PPIx-Regexp-0.036.tar.gz;
+      sha256 = "1nnaxf1dmywacdgh8f1s2ki8jkrf2vi6bfhk70p1r9k1001idlfk";
     };
     propagatedBuildInputs = [ ListMoreUtils PPI TaskWeaken ];
     meta = {
@@ -6816,18 +6830,18 @@ let self = _self // overrides; _self = with self; {
   };
 
   PSGI = buildPerlPackage rec {
-    name = "PSGI-1.03";
+    name = "PSGI-1.102";
     src = fetchurl {
       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/${name}.tar.gz";
-      sha256 = "0b1k7smg50xfdhrjifa2gkkm52vna41alvbw8vb2pk99jmgnngh6";
+      sha256 = "0iqzxs8fv63510knm3zr3jr3ky4x7diwd7y24mlshzci81kl8v55";
     };
   };
 
   PadWalker = buildPerlPackage {
-    name = "PadWalker-1.96";
+    name = "PadWalker-1.98";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RO/ROBIN/PadWalker-1.96.tar.gz;
-      sha256 = "180c72l3ssnsdbyifl9lzdz83x4zidf3nfgyx6l0j41a5wj0w9fz";
+      url = mirror://cpan/authors/id/R/RO/ROBIN/PadWalker-1.98.tar.gz;
+      sha256 = "0v2pldb5awflf10w1p9pwn8w37lkpfc2h459gd9zz6p57883ibw0";
     };
     meta = {
     };
@@ -6856,10 +6870,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   PerlPrereqScanner = buildPerlPackage {
-    name = "Perl-PrereqScanner-1.018";
+    name = "Perl-PrereqScanner-1.019";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Perl-PrereqScanner-1.018.tar.gz;
-      sha256 = "11zkam8svpgcjhjda0ap3afd797a69ndcc64fy3xw0j8v8kxa6hc";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Perl-PrereqScanner-1.019.tar.gz;
+      sha256 = "1ndgq2c7s1042c3zxjsmjfpf4lnwfg6w36hmvhh3yk9qihcprbgj";
     };
     buildInputs = [ PPI TryTiny ];
     propagatedBuildInputs = [ GetoptLongDescriptive ListMoreUtils ModulePath Moose PPI ParamsUtil StringRewritePrefix namespaceautoclean ];
@@ -6884,10 +6898,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   PodCoverage = buildPerlPackage rec {
-    name = "Pod-Coverage-0.19";
+    name = "Pod-Coverage-0.23";
     src = fetchurl {
       url = "mirror://cpan/authors/id/R/RC/RCLAMP/${name}.tar.gz";
-      sha256 = "1krsz4zwmnmq3z29p5vmyr5fdzrn8v0sg6rf3qxk7xpxw4z5np84";
+      sha256 = "01xifj83dv492lxixijmg6va02rf3ydlxly0a9slmx22r6qa1drh";
     };
     propagatedBuildInputs = [DevelSymdump];
   };
@@ -6907,10 +6921,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   PodElemental = buildPerlPackage {
-    name = "Pod-Elemental-0.102362";
+    name = "Pod-Elemental-0.103000";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Pod-Elemental-0.102362.tar.gz;
-      sha256 = "2b56a2783650f170bc7131bb36de65e4e3372a54bab596a798debebbf2af8732";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Pod-Elemental-0.103000.tar.gz;
+      sha256 = "0ykf49n6ysm7ab5zwm8a009zzrzsnhxw94a9jvbq80yywzhnm847";
     };
     buildInputs = [ TestDeep TestDifferences ];
     propagatedBuildInputs = [ MixinLinewise Moose MooseAutobox MooseXTypes PodEventual StringRewritePrefix StringTruncate SubExporter SubExporterForMethods TestDeep TestDifferences namespaceautoclean ];
@@ -6937,10 +6951,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   PodEscapes = buildPerlPackage {
-    name = "Pod-Escapes-1.04";
+    name = "Pod-Escapes-1.06";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SB/SBURKE/Pod-Escapes-1.04.tar.gz;
-      sha256 = "1wrg5dnsl785ygga7bp6qmakhjgh9n4g3jp2l85ab02r502cagig";
+      url = mirror://cpan/authors/id/N/NE/NEILB/Pod-Escapes-1.06.tar.gz;
+      sha256 = "15dpzlgc2ywyxk2svc810nmyx6pm1nj8cji7a0rqr9x6m0v11xdm";
     };
   };
 
@@ -6972,10 +6986,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   PodMarkdown = buildPerlPackage {
-    name = "Pod-Markdown-1.322";
+    name = "Pod-Markdown-2.000";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RW/RWSTAUNER/Pod-Markdown-1.322.tar.gz;
-      sha256 = "375091d89d9662b0c41bedad391927d6904d05f740e1bb689b494b4b35e979f7";
+      url = mirror://cpan/authors/id/R/RW/RWSTAUNER/Pod-Markdown-2.000.tar.gz;
+      sha256 = "0qix7gmrc2ypm5dl1w5ajnjy32xlmy73wb3zycc1pxl5lipigsx8";
     };
     buildInputs = [ TestDifferences ];
     meta = {
@@ -7018,10 +7032,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ProbePerl = buildPerlPackage rec {
-    name = "Probe-Perl-0.01";
+    name = "Probe-Perl-0.03";
     src = fetchurl {
       url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/${name}.tar.gz";
-      sha256 = "9b7d211139e42b2a2952c9a4b9f55ac12705e256f4a0acd4ac6ff665aeaddd87";
+      sha256 = "0c9wiaz0mqqknafr4jdr0g2gdzxnn539182z0icqaqvp5qgd5r6r";
     };
   };
 
@@ -7042,10 +7056,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   Redis = buildPerlPackage {
-    name = "Redis-1.961";
+    name = "Redis-1.2001";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/ME/MELO/Redis-1.961.tar.gz;
-      sha256 = "029g4s1ima354yv1j26nlq4f0yahkllkibicml6p3mj5gg2ywbbq";
+      url = mirror://cpan/authors/id/D/DP/DPAVLIN/Redis-1.2001.tar.gz;
+      sha256 = "1d16dr2qjmb3vswghrk5ygggcmz2rzw7qnw3g87prwi08z5ryih0";
     };
     buildInputs = [ IOString TestDeep TestFatal ];
     propagatedBuildInputs = [ TryTiny ];
@@ -7112,28 +7126,28 @@ let self = _self // overrides; _self = with self; {
   };
 
   RpcXML = buildPerlPackage {
-    name = "RPC-XML-0.73";
+    name = "RPC-XML-0.78";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJRAY/RPC-XML-0.73.tar.gz;
-      sha256 = "a023649603240e7a19fc52a8316a41c854639c0600058ea4d1e436fe1b1b7734";
+      url = mirror://cpan/authors/id/R/RJ/RJRAY/RPC-XML-0.78.tar.gz;
+      sha256 = "0spci3sj2hq9k916sk9k2gchqrbnz9lwmlcnwf1k33wzl8j2gh52";
     };
     propagatedBuildInputs = [LWP XMLLibXML XMLParser];
     doCheck = false;
   };
 
   ReturnValue = buildPerlPackage {
-    name = "Return-Value-1.302";
+    name = "Return-Value-1.666004";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Return-Value-1.302.tar.gz;
-      sha256 = "0hf5rmfap49jh8dnggdpvapy5r4awgx5hdc3acc9ff0vfqav8azm";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Return-Value-1.666004.tar.gz;
+      sha256 = "0xr7ic212p36arzdpph2l2yy1y88c7qaf4nng3gqb29zc9kzy3bc";
     };
   };
 
   RoleHasMessage = buildPerlPackage {
-    name = "Role-HasMessage-0.005";
+    name = "Role-HasMessage-0.006";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Role-HasMessage-0.005.tar.gz;
-      sha256 = "bc6cecf3022159dc415fb931e38291425d6aa8a9542d980b14ea692141337ca9";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Role-HasMessage-0.006.tar.gz;
+      sha256 = "1lylfvarjfy6wy34dfny3032pc6r33mjby5yzzhmxybg8zhdp9pn";
     };
     buildInputs = [ Moose ];
     propagatedBuildInputs = [ Moose MooseXRoleParameterized StringErrf TryTiny namespaceclean ];
@@ -7144,10 +7158,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   RoleIdentifiable = buildPerlPackage {
-    name = "Role-Identifiable-0.005";
+    name = "Role-Identifiable-0.007";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Role-Identifiable-0.005.tar.gz;
-      sha256 = "86910b6052d50bc64d1613bc1274f2ae17d553bfc3f0247a3fe3f7bb2cdd3aee";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Role-Identifiable-0.007.tar.gz;
+      sha256 = "1bbkj2wqpbfdw1cbm99vg9d94rvzba19m18xhnylaym0l78lc4sn";
     };
     buildInputs = [ Moose ];
     propagatedBuildInputs = [ Moose ];
@@ -7158,10 +7172,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   RoleTiny = buildPerlPackage {
-    name = "Role-Tiny-1.002004";
+    name = "Role-Tiny-1.003003";
     src = fetchurl {
-      url = mirror://cpan/authors/id/I/IL/ILMARI/Role-Tiny-1.002004.tar.gz;
-      sha256 = "0n126kazifmx6grdk4rmq226xklfc996cqw4ix26z9jcccl4v756";
+      url = mirror://cpan/authors/id/H/HA/HAARG/Role-Tiny-1.003003.tar.gz;
+      sha256 = "1k823g4wnya18yx2v1xrfl73qqavqpzvaydyg1r7gdzcdvdwl4mp";
     };
     buildInputs = [ TestFatal ];
     meta = {
@@ -7184,10 +7198,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   SafeIsa = buildPerlPackage {
-    name = "Safe-Isa-1.000002";
+    name = "Safe-Isa-1.000004";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MS/MSTROUT/Safe-Isa-1.000002.tar.gz;
-      sha256 = "07jr4fy6zbw9zwpalxzxlkn4nym6fd0304fsrb5ag0v156ygpwvl";
+      url = mirror://cpan/authors/id/E/ET/ETHER/Safe-Isa-1.000004.tar.gz;
+      sha256 = "0sqwma0xqxrgnsm0jfy17szq87bskzq67cdh7p934qdifh5nfwn9";
     };
     meta = {
       homepage = http://search.cpan.org/perldoc?CPAN::Meta::Spec;
@@ -7217,10 +7231,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   ScopeUpper = buildPerlPackage {
-    name = "Scope-Upper-0.21";
+    name = "Scope-Upper-0.24";
     src = fetchurl {
-      url = mirror://cpan/authors/id/V/VP/VPIT/Scope-Upper-0.21.tar.gz;
-      sha256 = "058nfnzp31k7hmdvbsr72nvrw0i23gwjplb6g6pag3s18m7fl1p6";
+      url = mirror://cpan/authors/id/V/VP/VPIT/Scope-Upper-0.24.tar.gz;
+      sha256 = "159jcwliyb7j80858pi052hkmhgy4cdbjha419kmhhqc9s1rhd5g";
     };
     meta = {
       homepage = http://search.cpan.org/dist/Scope-Upper/;
@@ -7241,18 +7255,18 @@ let self = _self // overrides; _self = with self; {
   };
 
   SetObject = buildPerlPackage {
-    name = "Set-Object-1.26";
+    name = "Set-Object-1.34";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SA/SAMV/Set-Object-1.26.tar.gz;
-      sha256 = "1hx3wrw8xkvaggacc8zyn86hfi3079ahmia1n8vsw7dglp1bbhmj";
+      url = mirror://cpan/authors/id/R/RU/RURBAN/Set-Object-1.34.tar.gz;
+      sha256 = "1dipd6k572pzqjzbj9vagb2k347qcg29lsxzx9y214bhnw7fgvjp";
     };
   };
 
   SetScalar = buildPerlPackage {
-    name = "Set-Scalar-1.26";
+    name = "Set-Scalar-1.29";
     src = fetchurl {
-      url = mirror://cpan/authors/id/J/JH/JHI/Set-Scalar-1.26.tar.gz;
-      sha256 = "121r9n8lqk081vjzn9ppm4zklz1l0c0v0ab94c05y5vrsn5l0zl8";
+      url = mirror://cpan/authors/id/D/DA/DAVIDO/Set-Scalar-1.29.tar.gz;
+      sha256 = "07aiqkyi1p22drpcyrrmv7f8qq6fhrxh007achy2vryxyck1bp53";
     };
     meta = {
       license = "perl";
@@ -7270,10 +7284,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   SOAPLite = buildPerlPackage {
-    name = "SOAP-Lite-0.716";
+    name = "SOAP-Lite-1.11";
     src = fetchurl {
-      url = mirror://cpan/authors/id/P/PH/PHRED/SOAP-Lite-0.716.tar.gz;
-      sha256 = "0vhnv5bdhy3gzwiaw1ly69r7lxvahz796v210x5nyij7a04ndwbz";
+      url = mirror://cpan/authors/id/P/PH/PHRED/SOAP-Lite-1.11.tar.gz;
+      sha256 = "1zhy06v72r95ih3lx5rlx0bvkq214ndmcmn97m5k2rkxxy4ybpp4";
     };
     propagatedBuildInputs = [ ClassInspector HTTPDaemon LWP TaskWeaken URI XMLParser ];
     meta = {
@@ -7285,10 +7299,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   Socket6 = buildPerlPackage rec {
-    name = "Socket6-0.23";
+    name = "Socket6-0.25";
     src = fetchurl {
       url = "mirror://cpan/authors/id/U/UM/UMEMOTO/${name}.tar.gz";
-      sha256 = "eda753f0197e8c3c8d4ab20a634561ce84011fa51aa5ff40d4dbcb326ace0833";
+      sha256 = "1ads4k4vvq6pnxkdw0s8gaj03w4h9snxyw7zyikfzd20fy76yx6s";
     };
     buildInputs = [ pkgs.which ];
   };
@@ -7325,10 +7339,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   SpreadsheetParseExcel = buildPerlPackage rec {
-    name = "Spreadsheet-ParseExcel-0.58";
+    name = "Spreadsheet-ParseExcel-0.2603";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/${name}.tar.gz";
-      sha256 = "1ha32kfgf0b9mk00dvsx0jq72xsx0qskmgrnixcdfh044lcxzk17";
+      url = "mirror://cpan/authors/id/K/KW/KWITKNR/${name}.tar.gz";
+      sha256 = "0q5qq982528cdpqdj2wszrnf5g2rfphx0b413lczx7nvkkyy9xqz";
     };
 
     propagatedBuildInputs = [ IOStringy OLEStorageLight ];
@@ -7465,10 +7479,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   strictures = buildPerlPackage {
-    name = "strictures-1.004004";
+    name = "strictures-1.005004";
     src = fetchurl {
-      url = mirror://cpan/authors/id/E/ET/ETHER/strictures-1.004004.tar.gz;
-      sha256 = "0d7fanr4ggmlqvdxf63ci7nxba2vrdz9558xy35hfpm8max7s48j";
+      url = mirror://cpan/authors/id/H/HA/HAARG/strictures-1.005004.tar.gz;
+      sha256 = "0y9q0v68060x5r3wfprwnjry6si7x9x5rkqz7nrf8fkxng7ndw5v";
     };
     meta = {
       homepage = http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/strictures.git;
@@ -7486,10 +7500,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   StringCRC32 = buildPerlPackage rec {
-      name = "String-CRC32-1.4";
+      name = "String-CRC32-1.5";
       src = fetchurl {
-        url = mirror://cpan/authors/id/S/SO/SOENKE/String-CRC32-1.4.tar.gz;
-        sha256 = "0lc3d4szxagwzcw6pxq3mmkvdlrz2zkw4i13crf42nvivv7gda8l";
+        url = mirror://cpan/authors/id/S/SO/SOENKE/String-CRC32-1.5.tar.gz;
+        sha256 = "0m3hjk292hnxyi8nkfy8hlr1khnbf2clgkb4kzj0ycq8gcd2z0as";
       };
       meta = {
         maintainers = with maintainers; [ ocharles ];
@@ -7498,10 +7512,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   StringErrf = buildPerlPackage {
-    name = "String-Errf-0.006";
+    name = "String-Errf-0.007";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/String-Errf-0.006.tar.gz;
-      sha256 = "2c09631fbece8e85a94785abede882f5d29e0f21f72239d01332b3bafd9c53ac";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/String-Errf-0.007.tar.gz;
+      sha256 = "1apnmxdsqwrvn1kkbba4sw6yh6hdfxxar545p6m9dkid7xsiqjfj";
     };
     buildInputs = [ JSON TimeDate ];
     propagatedBuildInputs = [ ParamsUtil StringFormatter SubExporter ];
@@ -7538,10 +7552,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   StringFormat = buildPerlPackage rec {
-    name = "String-Format-1.16";
+    name = "String-Format-1.17";
     src = fetchurl {
       url = "mirror://cpan/authors/id/D/DA/DARREN/${name}.tar.gz";
-      sha256 = "edb27dd055ad71012a439f262f9394517adb585a5c27ba72c1819bae2c23729a";
+      sha256 = "0sxfavcsb349rfafxflq2f9h3xpxabrw0q7vhmh9n3hjij8fa1jk";
     };
   };
 
@@ -7559,18 +7573,18 @@ let self = _self // overrides; _self = with self; {
   };
 
   StringMkPasswd = buildPerlPackage {
-    name = "String-MkPasswd-0.02";
+    name = "String-MkPasswd-0.05";
     src = fetchurl {
-      url = mirror://cpan/authors/id/C/CG/CGRAU/String-MkPasswd-0.02.tar.gz;
-      sha256 = "0si4xfgf8c2pfag1cqbr9jbyvg3hak6wkmny56kn2qwa4ljp9bk6";
+      url = mirror://cpan/authors/id/C/CG/CGRAU/String-MkPasswd-0.05.tar.gz;
+      sha256 = "15lvcc8c9hp6mg3jx02wd3b85aphn8yl5db62q3pam04c0sgh42k";
     };
   };
 
   StringRewritePrefix = buildPerlPackage {
-    name = "String-RewritePrefix-0.006";
+    name = "String-RewritePrefix-0.007";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/String-RewritePrefix-0.006.tar.gz;
-      sha256 = "1b9fg805g0agsyij28w8hhmnf485bii8zl03i092mv1p2hqrpxll";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/String-RewritePrefix-0.007.tar.gz;
+      sha256 = "18nxl1vgkcx0r7ifkmbl9fp73f8ihiqhqqf3vq6sj5b3cgawrfsw";
     };
     propagatedBuildInputs = [ SubExporter ];
     meta = {
@@ -7593,20 +7607,20 @@ let self = _self // overrides; _self = with self; {
   };
 
   StringToIdentifierEN = buildPerlPackage rec {
-    name = "String-ToIdentifier-EN-0.10";
+    name = "String-ToIdentifier-EN-0.11";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/String/${name}.tar.gz";
-      sha256 = "1xm0v1cq9hdgx4mswa9wdr2lqk7z9kh1bwjkx4wb5xljd0lxhas6";
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/${name}.tar.gz";
+      sha256 = "1bawghkgkkx7j3avnrj5sg3vix1z5564ks6wf9az3jc2knh8s5nh";
     };
     propagatedBuildInputs =
       [ LinguaENInflectPhrase TextUnidecode namespaceclean ];
   };
 
   StringTruncate = buildPerlPackage {
-    name = "String-Truncate-1.100601";
+    name = "String-Truncate-1.100602";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/String-Truncate-1.100601.tar.gz;
-      sha256 = "1mas04qa6sj6x34mid8i6swddcnb3c9zfkgkd72kvz5zip2f4f24";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/String-Truncate-1.100602.tar.gz;
+      sha256 = "0vjz4fd4cvcy12gk5bdha7z73ifmfpmk748khha94dhiq3pd98xa";
     };
     propagatedBuildInputs = [ SubExporter SubInstall ];
     meta = {
@@ -7658,10 +7672,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   SubExporterForMethods = buildPerlPackage {
-    name = "Sub-Exporter-ForMethods-0.100050";
+    name = "Sub-Exporter-ForMethods-0.100051";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-ForMethods-0.100050.tar.gz;
-      sha256 = "67dfaa39c58995ed1d341d7f2e785a68b7ba4ade72608f491459b8d2dee6df33";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-ForMethods-0.100051.tar.gz;
+      sha256 = "127wniw53p7pp7r2vazicply3v1gmnhw4w7jl6p74i0grnsixipm";
     };
     propagatedBuildInputs = [ SubExporter SubName ];
     meta = {
@@ -7671,10 +7685,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   SubExporterGlobExporter = buildPerlPackage {
-    name = "Sub-Exporter-GlobExporter-0.003";
+    name = "Sub-Exporter-GlobExporter-0.004";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-GlobExporter-0.003.tar.gz;
-      sha256 = "4cb082331151360756f3b2f8122fdd44597a207d62bd3f2ecb13578005116ab1";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-GlobExporter-0.004.tar.gz;
+      sha256 = "025wgjavrbzh52jb4v0w2fxqh7r5181k935h9cyy2rm1qk49fg8p";
     };
     propagatedBuildInputs = [ SubExporter ];
     meta = {
@@ -7685,10 +7699,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   SubExporterProgressive = buildPerlPackage {
-    name = "Sub-Exporter-Progressive-0.001006";
+    name = "Sub-Exporter-Progressive-0.001011";
     src = fetchurl {
-      url = mirror://cpan/authors/id/L/LE/LEONT/Sub-Exporter-Progressive-0.001006.tar.gz;
-      sha256 = "0s13fz86c8slhgban10sywp2skjdxnl3nvkqqy7pbwg81g3v9rr2";
+      url = mirror://cpan/authors/id/F/FR/FREW/Sub-Exporter-Progressive-0.001011.tar.gz;
+      sha256 = "01kwzbqwdhvadpphnczid03nlyj0h4cxaq3m3v2401bckkkcc606";
     };
     meta = {
       homepage = http://search.cpan.org/perldoc?CPAN::Meta::Spec;
@@ -7733,10 +7747,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   SubName = buildPerlPackage {
-    name = "Sub-Name-0.05";
+    name = "Sub-Name-0.0502";
     src = fetchurl {
-      url = mirror://cpan/authors/id/F/FL/FLORA/Sub-Name-0.05.tar.gz;
-      sha256 = "1w9sf51ai2r3i0kv5wnq7h9g3hcd6zb6i51ivvykb3hzx82vilf9";
+      url = mirror://cpan/authors/id/C/CH/CHIPS/Sub-Name-0.0502.tar.gz;
+      sha256 = "1r197binpdy4xfh65qkxxvi9c39pmvvcny4rl8a7zrk1jcws6fac";
     };
     meta = {
       description = "(Re)name a sub";
@@ -7804,10 +7818,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   Switch = buildPerlPackage rec {
-    name = "Switch-2.16";
+    name = "Switch-2.17";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RG/RGARCIA/Switch-2.16.tar.gz";
-      sha256 = "1n7rgp1q3zwglv1pka3bnhq5g41334lwc53g31w6g44my8kqz31h";
+      url = "mirror://cpan/authors/id/C/CH/CHORNY/Switch-2.17.tar.gz";
+      sha256 = "0xbdjdgzfj9zwa4j3ipr8bfk7bcici4hk89hq5d27rhg2isljd9i";
     };
     doCheck = false;                             # FIXME: 2/293 test failures
   };
@@ -7839,10 +7853,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   SyntaxKeywordJunction = buildPerlPackage {
-    name = "Syntax-Keyword-Junction-0.003006";
+    name = "Syntax-Keyword-Junction-0.003007";
     src = fetchurl {
-      url = mirror://cpan/authors/id/F/FR/FREW/Syntax-Keyword-Junction-0.003006.tar.gz;
-      sha256 = "182ab56d86bf3acf292d4ed5893ae0134f43843cdadba3e18f9885e6f86035ec";
+      url = mirror://cpan/authors/id/F/FR/FREW/Syntax-Keyword-Junction-0.003007.tar.gz;
+      sha256 = "0c8jvy5lkshw5gyl037gmkh7c51k3sdvpywq0zwlw4ikvrcgsglj";
     };
     propagatedBuildInputs = [ SubExporterProgressive TestRequires syntax ];
     meta = {
@@ -7861,10 +7875,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TAPParserSourceHandlerpgTAP = buildPerlModule {
-    name = "TAP-Parser-SourceHandler-pgTAP-3.29";
+    name = "TAP-Parser-SourceHandler-pgTAP-3.30";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DW/DWHEELER/TAP-Parser-SourceHandler-pgTAP-3.29.tar.gz;
-      sha256 = "918aa9ada7a05334ace7304e7b9e002bbf0b569bfcf8fb06118777bdabd60e1b";
+      url = mirror://cpan/authors/id/D/DW/DWHEELER/TAP-Parser-SourceHandler-pgTAP-3.30.tar.gz;
+      sha256 = "08gadqf898r23sx07sn13555cp9zkwp8igjlh1fza2ycfivpfl9f";
     };
     meta = {
       homepage = http://search.cpan.org/dist/Tap-Parser-Sourcehandler-pgTAP/;
@@ -8011,10 +8025,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TermProgressBar = buildPerlPackage {
-    name = "Term-ProgressBar-2.13";
+    name = "Term-ProgressBar-2.14";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SZ/SZABGAB/Term-ProgressBar-2.13.tar.gz;
-      sha256 = "95a56e1529928b7a0d7adf5bc2f54b9b9ae9da58c43b519af74a1e6596209b3c";
+      url = mirror://cpan/authors/id/S/SZ/SZABGAB/Term-ProgressBar-2.14.tar.gz;
+      sha256 = "18cj7mzbis9xk0v32g2700vq9b4p9v5msk02mglf244cj77bflf6";
     };
     buildInputs = [ CaptureTiny TestException ];
     propagatedBuildInputs = [ ClassMethodMaker TermReadKey ];
@@ -8047,18 +8061,18 @@ let self = _self // overrides; _self = with self; {
   };
 
   TermReadKey = buildPerlPackage {
-    name = "TermReadKey-2.30";
+    name = "TermReadKey-2.31";
     src = fetchurl {
-      url = mirror://cpan/authors/id/J/JS/JSTOWE/TermReadKey-2.30.tar.gz;
-      md5 = "f0ef2cea8acfbcc58d865c05b0c7e1ff";
+      url = mirror://cpan/authors/id/J/JS/JSTOWE/TermReadKey-2.31.tar.gz;
+      sha256 = "1czarrdxgnxmmbaasjnq3sj14nf1cvzhm37padq6xvl7h7r2acb2";
     };
   };
 
   TermReadLineGnu = buildPerlPackage rec {
-    name = "Term-ReadLine-Gnu-1.20";
+    name = "Term-ReadLine-Gnu-1.24";
     src = fetchurl {
       url = "mirror://cpan/authors/id/H/HA/HAYASHI/${name}.tar.gz";
-      sha256 = "00fvkqbnpmyld59jv2vbfw1szr5d0xxmbgl59gr7qijp9c497ni5";
+      sha256 = "0dp18pgn8vl4dh6rgzcp1kzk4j6wjrrxd6sfcrrywy7jg4b7ikfc";
     };
     buildInputs = [ pkgs.readline pkgs.ncurses ];
     NIX_CFLAGS_LINK = "-lreadline";
@@ -8124,10 +8138,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TestBase = buildPerlPackage rec {
-    name = "Test-Base-0.60";
+    name = "Test-Base-0.62";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Test/${name}.tar.gz";
-      sha256 = "0yf030nay85xzas1qxn1nw6lhfsrcbgh3nq7bxbb11nxhvdaj2bx";
+      url = "mirror://cpan/authors/id/I/IN/INGY/${name}.tar.gz";
+      sha256 = "1b11xllllp49kkq1wwr57pijqlx1c37nbyssdlszvvhrp6kww363";
     };
     propagatedBuildInputs = [ Spiffy ];
   };
@@ -8159,10 +8173,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TestDeep = buildPerlPackage {
-    name = "Test-Deep-0.110";
+    name = "Test-Deep-0.112";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Test-Deep-0.110.tar.gz;
-      sha256 = "12rd9fknm778685ypyc599lcmzbqvbqnjhcrkybgpq2siai9q4h5";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Test-Deep-0.112.tar.gz;
+      sha256 = "1vg1bb1lpqpj0pxk738ykip4kw3agbi88g90wxb3pc11l84nlsan";
     };
     propagatedBuildInputs = [ TestNoWarnings TestTester ];
     meta = {
@@ -8171,10 +8185,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TestDifferences = buildPerlPackage {
-    name = "Test-Differences-0.61";
+    name = "Test-Differences-0.4801";
     src = fetchurl {
-      url = mirror://cpan/authors/id/O/OV/OVID/Test-Differences-0.61.tar.gz;
-      sha256 = "044wg7nqmhvh5ms8z305f9bzldhigr020l1a7iqycxqv05h6b6vm";
+      url = mirror://cpan/authors/id/O/OV/OVID/Test-Differences-0.4801.tar.gz;
+      sha256 = "1p5bqyq3gxfb1q4wajd28498fsbqk7f2y7pk9c3rnh0x36cqbvyw";
     };
     propagatedBuildInputs = [ TextDiff ];
     meta = {
@@ -8214,10 +8228,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TestException = buildPerlPackage rec {
-    name = "Test-Exception-0.31";
+    name = "Test-Exception-0.32";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Test/${name}.tar.gz";
-      sha256 = "1lyd6mcg00348xsn9fl59spx68a69ybli7h7gd2k0p4y21q8p0ks";
+      url = "mirror://cpan/authors/id/A/AD/ADIE/${name}.tar.gz";
+      sha256 = "0issbjh5yl62lpaff5zhn28zhbf8sv8n2g79vklfr5s703k2fi5s";
     };
     propagatedBuildInputs = [ SubUplevel ];
   };
@@ -8363,18 +8377,18 @@ let self = _self // overrides; _self = with self; {
   };
 
   TestMockTime = buildPerlPackage rec {
-    name = "Test-MockTime-0.09";
+    name = "Test-MockTime-0.12";
     src = fetchurl {
       url = "mirror://cpan/authors/id/D/DD/DDICK/${name}.tar.gz";
-      sha256 = "1j2riyikzyfkxsgkfdqirs7xa8q5d06b9klpk7l9sgydwqdvxdv3";
+      sha256 = "104p9qsqcchfbxh6b6w7q9jhkwb4hc424js0cyivyanjm6bcqvj9";
     };
   };
 
   TestMojibake = buildPerlPackage {
-    name = "Test-Mojibake-0.8";
+    name = "Test-Mojibake-0.9";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SY/SYP/Test-Mojibake-0.8.tar.gz;
-      sha256 = "66d82ca4fe539bb69ee8179d96370e50777a9547176428baf4dbe190ef78b4cb";
+      url = mirror://cpan/authors/id/S/SY/SYP/Test-Mojibake-0.9.tar.gz;
+      sha256 = "0b7jamkmws6k3cvzwrz3r5vcpjrdhr8wndf82i5nx2z19xsy33ym";
     };
     meta = {
       homepage = https://github.com/creaktive/Test-Mojibake;
@@ -8386,10 +8400,10 @@ let self = _self // overrides; _self = with self; {
   TestMore = TestSimple;
 
   TestMost = buildPerlPackage {
-    name = "Test-Most-0.31";
+    name = "Test-Most-0.33";
     src = fetchurl {
-      url = mirror://cpan/authors/id/O/OV/OVID/Test-Most-0.31.tar.gz;
-      sha256 = "0ddc6034dc7cde3631dde41ecb558ed823fc07804bfd051b8ec9a70131862ab7";
+      url = mirror://cpan/authors/id/O/OV/OVID/Test-Most-0.33.tar.gz;
+      sha256 = "0jp4jcwk97bgf85wwyjpxfsx4165s6w1v4ymn9gnv03yn77inyij";
     };
     propagatedBuildInputs = [ ExceptionClass TestDeep TestDifferences TestException TestWarn ];
     meta = {
@@ -8515,10 +8529,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TestRoutine = buildPerlPackage {
-    name = "Test-Routine-0.015";
+    name = "Test-Routine-0.018";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Test-Routine-0.015.tar.gz;
-      sha256 = "04hm18sx90k38vxk70g8zj9wp0i7h4436cxflbc6pspvphv2fjg3";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Test-Routine-0.018.tar.gz;
+      sha256 = "1slaljcija2pbsxdyrqsh09pgajxbln68gb47l9fwffb6gsp5f3m";
     };
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ Moose namespaceautoclean namespaceclean ParamsUtil SubExporter ];
@@ -8560,10 +8574,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TestSynopsis = buildPerlPackage {
-    name = "Test-Synopsis-0.06";
+    name = "Test-Synopsis-0.10";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Test-Synopsis-0.06.tar.gz;
-      sha256 = "fb3eed184eaf8a3c2338ec14b7235fa75fc43cf5f3774d927a4c947a5141db1b";
+      url = mirror://cpan/authors/id/Z/ZO/ZOFFIX/Test-Synopsis-0.10.tar.gz;
+      sha256 = "0gbk4d2vwlldsj5shmbdar3a29vgrw84ldsvm26mflkr5ji34adv";
     };
     meta = {
       description = "Test your SYNOPSIS code";
@@ -8634,10 +8648,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TestWarn = buildPerlPackage {
-    name = "Test-Warn-0.24";
+    name = "Test-Warn-0.30";
     src = fetchurl {
-      url = mirror://cpan/authors/id/C/CH/CHORNY/Test-Warn-0.24.tar.gz;
-      sha256 = "12r1mcwrm6cgc3ppgawwv265vmrighj4bl6xc5c41f4c2l6bdxml";
+      url = mirror://cpan/authors/id/C/CH/CHORNY/Test-Warn-0.30.tar.gz;
+      sha256 = "0haf2ii7br5z0psmkvlvmx2z2q9qz1c70gx0969r378qjidmb5w1";
     };
     propagatedBuildInputs = [ SubUplevel TreeDAGNode ];
     meta = {
@@ -8690,10 +8704,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TestWWWMechanizeCatalyst = buildPerlPackage {
-    name = "Test-WWW-Mechanize-Catalyst-0.58";
+    name = "Test-WWW-Mechanize-Catalyst-0.59";
     src = fetchurl {
-      url = mirror://cpan/authors/id/B/BO/BOBTFISH/Test-WWW-Mechanize-Catalyst-0.58.tar.gz;
-      sha256 = "1pa2m064skxfwsm93hffxcyky4kcn2q418vnw2fn79ich6wrcijd";
+      url = mirror://cpan/authors/id/I/IL/ILMARI/Test-WWW-Mechanize-Catalyst-0.59.tar.gz;
+      sha256 = "1hr1p8m3sv16ws8qb90nshza28qlmllnb6qxriwdvwddp2y517jv";
     };
     doCheck = false; # listens on an external port
     propagatedBuildInputs = [ CatalystRuntime LWP Moose namespaceclean TestWWWMechanize WWWMechanize ];
@@ -8743,10 +8757,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TextAligner = buildPerlPackage {
-    name = "Text-Aligner-0.07";
+    name = "Text-Aligner-0.10";
     src = fetchurl {
-      url = mirror://cpan/authors/id/A/AN/ANNO/Text-Aligner-0.07.tar.gz;
-      sha256 = "1vpb87binmmysr4sxfjinxg4bh3rb4rmrx48yyczgmyddmda9rik";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Aligner-0.10.tar.gz;
+      sha256 = "0d80x5jrv5j9yi234rdnjvnsnmhm4jsssqv7bpkl1fhjd1kfc7v0";
     };
     meta = {
       description = "Align text in columns";
@@ -8754,11 +8768,11 @@ let self = _self // overrides; _self = with self; {
   };
 
   TextBibTeX = buildPerlModule {
-    name = "Text-BibTeX-0.66";
+    name = "Text-BibTeX-0.69";
     buildInputs = [ ConfigAutoConf ExtUtilsLibBuilder ];
     src = fetchurl {
-      url = mirror://cpan/authors/id/A/AM/AMBS/Text/Text-BibTeX-0.66.tar.gz;
-      sha256 = "0wymg190afqfhr5i9ws02jgnksk06h3w45770ynjjr1fs343b9j7";
+      url = mirror://cpan/authors/id/A/AM/AMBS/Text/Text-BibTeX-0.69.tar.gz;
+      sha256 = "1gzh5zh2ggfp15q5im7gpr1krq4mzmhbjdivyb2x03vcg0qdkk3z";
     };
     meta = {
       description = "Interface to read and parse BibTeX files";
@@ -8767,10 +8781,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TextCSV = buildPerlPackage rec {
-    name = "Text-CSV-1.10";
+    name = "Text-CSV-1.32";
     src = fetchurl {
       url = "mirror://cpan/authors/id/M/MA/MAKAMAKA/${name}.tar.gz";
-      sha256 = "0vb0093v3kk7iczb46zzdg7myfyjldwrk8wbk7ibk56gvj350f7c";
+      sha256 = "1bzrizyp8n2013nhd34j52bzdqcp9la30aqbdfkij52ssxkfm7xl";
     };
   };
 
@@ -8833,10 +8847,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TestMinimumVersion = buildPerlPackage {
-    name = "Test-MinimumVersion-0.101080";
+    name = "Test-MinimumVersion-0.101081";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RJ/RJBS/Test-MinimumVersion-0.101080.tar.gz;
-      sha256 = "51fc0bd73ece9d41887f8d0a57ee27fbc205c271c5b5246111efe7d3247ddfb0";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Test-MinimumVersion-0.101081.tar.gz;
+      sha256 = "1javb92s0bl7gj2m3fsvzd0mn5r76clmayq8878mq12g4smdvpi2";
     };
     buildInputs = [ TestTester ];
     propagatedBuildInputs = [ FileFindRule FileFindRulePerl PerlMinimumVersion YAMLTiny ];
@@ -8847,10 +8861,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TextMicroTemplate = buildPerlPackage {
-    name = "Text-MicroTemplate-0.19";
+    name = "Text-MicroTemplate-0.20";
     src = fetchurl {
-      url = mirror://cpan/authors/id/K/KA/KAZUHO/Text-MicroTemplate-0.19.tar.gz;
-      sha256 = "0hli95kn67slr6ixffcx6qvv36hlr03hij28029k3f8d7b7f32za";
+      url = mirror://cpan/authors/id/K/KA/KAZUHO/Text-MicroTemplate-0.20.tar.gz;
+      sha256 = "0da44kd3z4n23wivy99583cscmiay2xv0wq9dzx6mg8vq874kx74";
     };
     meta = {
       description = "Micro template engine with Perl5 language";
@@ -8897,10 +8911,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TextTable = buildPerlPackage {
-    name = "Text-Table-1.128";
+    name = "Text-Table-1.129";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Table-1.128.tar.gz;
-      sha256 = "0j9y38y9x9ljjpnvp5clwkfvhnja6vjlnhb8yshv2mmz2h6by70c";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Table-1.129.tar.gz;
+      sha256 = "1b8l86yvvsncnx0w45w095n1h7lff6nxjy87dzk7zgvkmr0ary7c";
     };
     buildInputs = [ TestPod TestPodCoverage ];
     propagatedBuildInputs = [ TextAligner ];
@@ -9009,10 +9023,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TextWikiFormat = buildPerlPackage {
-    name = "Text-WikiFormat-0.80";
+    name = "Text-WikiFormat-0.81";
     src = fetchurl {
-      url = mirror://cpan/authors/id/C/CY/CYCLES/Text-WikiFormat-0.80.tar.gz;
-      sha256 = "0i1mg3ivxhx09x0w06k15izc92bknwqwh0ghpmhlq9s9iw12mmry";
+      url = mirror://cpan/authors/id/C/CY/CYCLES/Text-WikiFormat-0.81.tar.gz;
+      sha256 = "0cxbgx879bsskmnhjzamgsa5862ddixyx4yr77lafmwimnaxjg74";
     };
     propagatedBuildInputs = [ URI ];
     meta = {
@@ -9043,10 +9057,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TieIxHash = buildPerlPackage {
-    name = "Tie-IxHash-1.22";
+    name = "Tie-IxHash-1.23";
     src = fetchurl {
-      url = mirror://cpan/authors/id/C/CH/CHORNY/Tie-IxHash-1.22.tar.gz;
-      sha256 = "0f0m0x8nkidxd0pxnls1i8kc8d7bd89dqgihz29wj3ggk43qffr7";
+      url = mirror://cpan/authors/id/C/CH/CHORNY/Tie-IxHash-1.23.tar.gz;
+      sha256 = "0mmg9iyh42syal3z1p2pn9airq65yrkfs66cnqs9nz76jy60pfzs";
     };
     meta = {
       description = "Ordered associative arrays for Perl";
@@ -9064,18 +9078,18 @@ let self = _self // overrides; _self = with self; {
   };
 
   TimeDate = buildPerlPackage {
-    name = "TimeDate-1.16";
+    name = "TimeDate-2.30";
     src = fetchurl {
-      url = mirror://cpan/authors/id/G/GB/GBARR/TimeDate-1.16.tar.gz;
-      sha256 = "1cvcpaghn7dc14m9871sfw103g3m3a00m2mrl5iqb0mmh40yyhkr";
+      url = mirror://cpan/authors/id/G/GB/GBARR/TimeDate-2.30.tar.gz;
+      sha256 = "11lf54akr9nbivqkjrhvkmfdgkbhw85sq0q4mak56n6bf542bgbm";
     };
   };
 
   TimeDuration = buildPerlPackage {
-    name = "Time-Duration-1.1";
+    name = "Time-Duration-1.06";
     src = fetchurl {
-      url = mirror://cpan/authors/id/A/AV/AVIF/Time-Duration-1.1.tar.gz;
-      sha256 = "a69c419c4892f21eba10002e2ab8c55b657b6691cf6873544ef99ef5fd188f4e";
+      url = mirror://cpan/authors/id/A/AV/AVIF/Time-Duration-1.06.tar.gz;
+      sha256 = "0krzgxifghwir1ibxg147sfpqyyv8xpvipx0nwlwgyay46x4gdpp";
     };
     buildInputs = [ TestPod TestPodCoverage ];
     meta = {
@@ -9134,10 +9148,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   TreeSimpleVisitorFactory = buildPerlPackage {
-    name = "Tree-Simple-VisitorFactory-0.10";
+    name = "Tree-Simple-VisitorFactory-0.12";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/ST/STEVAN/Tree-Simple-VisitorFactory-0.10.tar.gz;
-      sha256 = "1ghcgnb3xvqjyh4h4aa37x98613aldnpj738z9b80p33bbfxq158";
+      url = mirror://cpan/authors/id/R/RS/RSAVAGE/Tree-Simple-VisitorFactory-0.12.tgz;
+      sha256 = "1g27xl48q1vr7aikhxg4vvcsj1si8allxz59vmnks61wsw4by7vg";
     };
     propagatedBuildInputs = [TreeSimple];
     buildInputs = [TestException];
@@ -9269,10 +9283,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   URIFromHash = buildPerlPackage {
-    name = "URI-FromHash-0.03";
+    name = "URI-FromHash-0.04";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DR/DROLSKY/URI-FromHash-0.03.tar.gz;
-      sha256 = "0yzk69mdf8rmkx1wxm5mn1a1zzd0zq4x1w83vyj9ja40v73q0k4i";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/URI-FromHash-0.04.tar.gz;
+      sha256 = "03yckli4fj8cgsyh1l1lmyxj56q9qc04a3r8kv0whbnb37zz1j23";
     };
     propagatedBuildInputs = [ ParamsValidate URI ];
     meta = {
@@ -9313,10 +9327,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   version = buildPerlPackage rec {
-    name = "version-0.9902";
+    name = "version-0.9908";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/version/${name}.tar.gz";
-      sha256 = "17fdj3hxks33plapj3hinjgmyblnh302z52rq4b9spnz22q5vhww";
+      url = "mirror://cpan/authors/id/J/JP/JPEACOCK/${name}.tar.gz";
+      sha256 = "0nq84i1isk01ikwjxxynqyzz4g4g6hcbjq8l426n0hr42znlfmn4";
     };
   };
 
@@ -9345,10 +9359,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   WWWCurl = buildPerlPackage rec {
-    name = "WWW-Curl-4.15";
+    name = "WWW-Curl-4.17";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/WWW/${name}.tar.gz";
-      sha256 = "18az7k0jsr642lp6dfy0b2s7vx0cd7sj9dgk93wff73safa09x1y";
+      url = "mirror://cpan/authors/id/S/SZ/SZBALINT/${name}.tar.gz";
+      sha256 = "1fmp9aib1kaps9vhs4dwxn7b15kgnlz9f714bxvqsd1j1q8spzsj";
     };
     buildInputs = [ pkgs.curl ];
     preConfigure =
@@ -9359,10 +9373,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   WWWMechanize = buildPerlPackage {
-    name = "WWW-Mechanize-1.72";
+    name = "WWW-Mechanize-1.73";
     src = fetchurl {
-      url = mirror://cpan/authors/id/J/JE/JESSE/WWW-Mechanize-1.72.tar.gz;
-      sha256 = "0vs3p2697675bswjayfmm37lg3xsxm94z1mif18s732kwvnpg6m6";
+      url = mirror://cpan/authors/id/E/ET/ETHER/WWW-Mechanize-1.73.tar.gz;
+      sha256 = "1zrw8aadhwy48q51x2z2rqlkwf17bya4j4h3hy89mw783j96rmg9";
     };
     propagatedBuildInputs = [ HTMLForm HTMLParser HTMLTree HTTPDaemon HTTPMessage HTTPServerSimple LWP LWPUserAgent TestWarn URI ];
     doCheck = false;
@@ -9404,10 +9418,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   Wx = buildPerlPackage rec {
-    name = "Wx-0.9922";
+    name = "Wx-0.9923";
     src = fetchurl {
       url = "mirror://cpan/authors/id/M/MD/MDOOTSON/${name}.tar.gz";
-      sha256 = "11x3cvffcyi4b2c6pz9awks3zrg83bg1cwapm4psdiqnd568safw";
+      sha256 = "1ja2fkz0xabafyc6gnp3nnwsbkkjsf44kq9x5zz6cb5fsp3p9sck";
     };
     propagatedBuildInputs = [ ExtUtilsXSpp AlienWxWidgets ];
     # Testing requires an X server:
@@ -9427,10 +9441,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   X11GUITest = buildPerlPackage rec {
-    name = "X11-GUITest-0.21";
+    name = "X11-GUITest-0.28";
     src = fetchurl {
       url = "mirror://cpan/authors/id/C/CT/CTRONDLP/${name}.tar.gz";
-      sha256 = "0akjk2x2d3j1f95wn93mh6nvq8p6c9jcqmvkh1mli5jxr1rmhjx8";
+      sha256 = "0jznws68skdzkhgkgcgjlj40qdyh9i75r7fw8bqzy406f19xxvnw";
     };
     buildInputs = [pkgs.x11 pkgs.xorg.libXtst pkgs.xorg.libXi];
     NIX_CFLAGS_LINK = "-lX11 -lXext -lXtst";
@@ -9447,10 +9461,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   XMLLibXML = buildPerlPackage rec {
-    name = "XML-LibXML-2.0014";
+    name = "XML-LibXML-2.0115";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/XML/${name}.tar.gz";
-      sha256 = "0r2mw6pnygj2bpng9f4q5jfn4iawhkj47ys3sbnvqymyp1afihf6";
+      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/${name}.tar.gz";
+      sha256 = "0d6l6idl2920x9xi097fvzfdn9i0s8qa9ksw4bz2w1wh3zsn07zm";
     };
     SKIP_SAX_INSTALL = 1;
     buildInputs = [ pkgs.libxml2 ];
@@ -9471,28 +9485,28 @@ let self = _self // overrides; _self = with self; {
   };
 
   XMLLibXSLT = buildPerlPackage rec {
-    name = "XML-LibXSLT-1.87";
+    name = "XML-LibXSLT-1.89";
     src = fetchurl {
       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/${name}.tar.gz";
-      sha256 = "18kxa51a0prr8dx0w7q7wa8gdgalswzqa24sjkxmgs0f9yhcixz1";
+      sha256 = "0py7ll5vj2k977l4r2g8bbz0hdy0hhkdq0mzblrwizify0825b12";
     };
     buildInputs = [ pkgs.zlib pkgs.libxml2 pkgs.libxslt ];
     propagatedBuildInputs = [ XMLLibXML ];
   };
 
   XMLNamespaceSupport = buildPerlPackage {
-    name = "XML-NamespaceSupport-1.09";
+    name = "XML-NamespaceSupport-1.11";
     src = fetchurl {
-      url = mirror://cpan/authors/id/R/RB/RBERJON/XML-NamespaceSupport-1.09.tar.gz;
-      sha256 = "0ny2i4pf6j8ggfj1x02rm5zm9a37hfalgx9w9kxnk69xsixfwb51";
+      url = mirror://cpan/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.11.tar.gz;
+      sha256 = "1sklgcldl3w6gn706vx1cgz6pm4y5lfgsjxnfqyk20pilgq530bd";
     };
   };
 
   XMLParser = buildPerlPackage {
-    name = "XML-Parser-2.36";
+    name = "XML-Parser-2.41";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MS/MSERGEANT/XML-Parser-2.36.tar.gz;
-      sha256 = "0gyp5qfbflhkin1zv8l6wlkjwfjvsf45a3py4vc6ni82fj32kmcz";
+      url = mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-2.41.tar.gz;
+      sha256 = "1sadi505g5qmxr36lgcbrcrqh3a5gcdg32b405gnr8k54b6rg0dl";
     };
     makeMakerFlags = "EXPATLIBPATH=${pkgs.expat}/lib EXPATINCPATH=${pkgs.expat}/include";
   };
@@ -9520,10 +9534,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   XMLRegExp = buildPerlPackage {
-    name = "XML-RegExp-0.03";
+    name = "XML-RegExp-0.04";
     src = fetchurl {
-      url = mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-0.03.tar.gz;
-      sha256 = "1gkarylvdk3mddmchcwvzq09gpvx5z26nybp38dg7mjixm5bs226";
+      url = mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-0.04.tar.gz;
+      sha256 = "0m7wj00a2kik7wj0azhs1zagwazqh3hlz4255n75q21nc04r06fz";
     };
   };
 
@@ -9550,10 +9564,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   XMLSimple = buildPerlPackage {
-    name = "XML-Simple-2.18";
+    name = "XML-Simple-2.20";
     src = fetchurl {
-      url = mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-2.18.tar.gz;
-      sha256 = "09k8fvc9m5nd5rqq00rwm3m0wx7iwd6vx0vc947y58ydi30nfjd5";
+      url = mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-2.20.tar.gz;
+      sha256 = "0jj3jiray1l4pi9wkjcpxjc3v431whdwx5aqnhgdm4i7h3817zsw";
     };
     propagatedBuildInputs = [XMLParser];
   };
@@ -9569,10 +9583,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   XMLWriter = buildPerlPackage rec {
-    name = "XML-Writer-0.612";
+    name = "XML-Writer-0.624";
     src = fetchurl {
       url = "mirror://cpan/authors/id/J/JO/JOSEPHW/${name}.tar.gz";
-      sha256 = "1prvgbjxynxg6061qxzfbbimjvil04513hf3hsilv0hdg58nb9jk";
+      sha256 = "0yyz0dh9b4clailbxyi90dfrqpyc6py77rmmz6qmkx7ynlpyxk46";
     };
   };
 
@@ -9590,10 +9604,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   YAMLSyck = buildPerlPackage {
-    name = "YAML-Syck-1.22";
+    name = "YAML-Syck-1.27";
     src = fetchurl {
-      url = mirror://cpan/authors/id/T/TO/TODDR/YAML-Syck-1.22.tar.gz;
-      sha256 = "0n3k71i0b8mhdrl5kp1cwyvjbkqahyqkhp81wl3qnkfhyi39f55y";
+      url = mirror://cpan/authors/id/T/TO/TODDR/YAML-Syck-1.27.tar.gz;
+      sha256 = "1y9dw18fz3s8v4n80wf858cjq4jlaza25wvsgv60a6z2l0sfax6y";
     };
     meta = {
       homepage = http://search.cpan.org/dist/YAML-Syck;
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
new file mode 100644
index 000000000000..654a071a182b
--- /dev/null
+++ b/pkgs/top-level/php-packages.nix
@@ -0,0 +1,35 @@
+{ pkgs, php }:
+
+let self = with self; {
+  buildPecl = import ../build-support/build-pecl.nix {
+    inherit php;
+    inherit (pkgs) stdenv autoreconfHook;
+  };
+
+  memcache = buildPecl {
+    name = "memcache-3.0.8";
+
+    src = pkgs.fetchurl {
+      url = http://pecl.php.net/get/memcache-3.0.8.tgz;
+      sha256 = "04c35rj0cvq5ygn2jgmyvqcb0k8d03v4k642b6i37zgv7x15pbic";
+    };
+
+    configureFlags = "--with-zlib-dir=${pkgs.zlib}";
+  };
+
+  memcached = buildPecl {
+    name = "memcached-2.1.0";
+
+    src = pkgs.fetchurl {
+      url = http://pecl.php.net/get/memcached-2.1.0.tgz;
+      sha256 = "1by4zhkq4mbk9ja6s0vlavv5ng8aw5apn3a1in84fkz7bc0l0jdw";
+    };
+
+    configureFlags = [
+      "--with-zlib-dir=${pkgs.zlib}"
+      "--with-libmemcached-dir=${pkgs.libmemcached}"
+    ];
+
+    buildInputs = [ pkgs.cyrus_sasl ];
+  };
+}; in self
diff --git a/pkgs/top-level/python-packages-generated.nix b/pkgs/top-level/python-packages-generated.nix
index 29a9bc91a1ea..193928513cb4 100644
--- a/pkgs/top-level/python-packages-generated.nix
+++ b/pkgs/top-level/python-packages-generated.nix
@@ -5370,5 +5370,27 @@ in
     };
   };
 
+
+  "suds" = self."suds-0.4";
+
+  "suds-0.4" = self.buildPythonPackage {
+    name = "suds-0.4";
+    src = fetchurl {
+        url = "https://pypi.python.org/packages/source/s/suds/suds-0.4.tar.gz";
+        md5 = "b7502de662341ed7275b673e6bd73191";
+    };
+    doCheck = false;
+    buildInputs = [  ];
+    propagatedBuildInputs = [  ];
+    installCommand = ''easy_install --always-unzip --prefix="$out" .'';
+    meta = {
+      description = ''
+        Lightweight SOAP client
+        '';
+      homepage = "https://fedorahosted.org/suds";
+      license = "UNKNOWN";
+    };
+  };
+
 }
 
diff --git a/pkgs/top-level/python-packages.json b/pkgs/top-level/python-packages.json
index b5b7afab85b1..b8ddcee3a47f 100644
--- a/pkgs/top-level/python-packages.json
+++ b/pkgs/top-level/python-packages.json
@@ -137,5 +137,8 @@
   },
   { "name": "xlrd",
     "doCheck": false
+  },
+  { "name": "suds",
+    "doCheck": false
   }
 ]
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 254dcb7c9888..ce019a8464e4 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -460,6 +460,43 @@ rec {
     };
   });
 
+  autopep8 = buildPythonPackage (rec {
+    name = "autopep8-1.0";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/a/autopep8/${name}.tar.gz";
+      md5 = "41782e66efcbaf9d761bb45a2d2929bb";
+    };
+
+    propagatedBuildInputs = [ pep8 ];
+
+    # One test fails:
+    # FAIL: test_recursive_should_not_crash_on_unicode_filename (test.test_autopep8.CommandLineTests)
+    doCheck = false;
+
+    meta = with stdenv.lib; {
+      description = "A tool that automatically formats Python code to conform to the PEP 8 style guide";
+      homepage = https://pypi.python.org/pypi/autopep8/;
+      license = licenses.mit;
+      platforms = platforms.all;
+      maintainers = [ maintainers.bjornfor ];
+    };
+  });
+
+  backports_ssl_match_hostname_3_4_0_2 = pythonPackages.buildPythonPackage rec {
+    name = "backports.ssl_match_hostname-3.4.0.2";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/b/backports.ssl_match_hostname/backports.ssl_match_hostname-3.4.0.2.tar.gz";
+      md5 = "788214f20214c64631f0859dc79f23c6";
+    };
+
+    meta = {
+      description = "The Secure Sockets layer is only actually *secure*";
+      homepage = http://bitbucket.org/brandon/backports.ssl_match_hostname;
+    };
+  };
+
   bcdoc = buildPythonPackage rec {
     name = "bcdoc-0.12.1";
 
@@ -544,6 +581,34 @@ rec {
   };
 
 
+  bedup = buildPythonPackage rec {
+    name = "bedup-20140206";
+
+    src = fetchgit {
+      url = "https://github.com/g2p/bedup.git";
+      rev = "80cb217d4819a03e159e42850a9a3f14e2b278a3";
+      sha256 = "1rik7a62v708ivfcy0pawhfnrb84b7gm3qr54x6jsxl0iqz078h6";
+    };
+
+    buildInputs = [ pkgs.btrfsProgs ];
+    propagatedBuildInputs = with pkgs; [ contextlib2 sqlalchemy pyxdg pycparser cffi alembic ];
+
+    meta = {
+      description = "Deduplication for Btrfs";
+      longDescription = ''
+        Deduplication for Btrfs. bedup looks for new and changed files, making sure that multiple
+        copies of identical files share space on disk. It integrates deeply with btrfs so that scans
+        are incremental and low-impact.
+      '';
+      homepage = https://github.com/g2p/bedup;
+      license = stdenv.lib.licenses.gpl2;
+
+      platforms = stdenv.lib.platforms.linux;
+
+      maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
+    };
+  };
+
   beets = buildPythonPackage rec {
     name = "beets-1.0.0";
 
@@ -1105,6 +1170,15 @@ rec {
   };
 
 
+  contextlib2 = buildPythonPackage rec {
+    name = "contextlib2-0.4.0";
+
+    src = fetchurl rec {
+      url = "https://pypi.python.org/packages/source/c/contextlib2/${name}.tar.gz";
+      md5 = "ea687207db25f65552061db4a2c6727d";
+    };
+  };
+
   coverage = buildPythonPackage rec {
     name = "coverage-3.6";
 
@@ -1275,6 +1349,7 @@ rec {
     '';
 
     propagatedBuildInputs = [ py ]
+      ++ (optional isPy26 argparse)
       ++ stdenv.lib.optional
         pkgs.config.pythonPackages.pytest.selenium or false
         pythonPackages.selenium;
@@ -1484,6 +1559,22 @@ rec {
     };
   };
 
+  derpconf = pythonPackages.buildPythonPackage rec {
+    name = "derpconf-0.4.9";
+
+    propagatedBuildInputs = [ six ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/d/derpconf/${name}.tar.gz";
+      md5 = "a164807d7bf0c4adf1de781305f29b82";
+    };
+
+    meta = {
+      description = "derpconf abstracts loading configuration files for your app";
+      homepage = https://github.com/globocom/derpconf;
+      license = licenses.mit;
+    };
+  };
 
   dpkt = buildPythonPackage rec {
     name = "dpkt-1.8";
@@ -2395,7 +2486,7 @@ rec {
     };
 
     propagatedBuildInputs = with pkgs; [
-      pyGtkGlade libtorrentRasterbar twisted Mako chardet pyxdg pyopenssl
+      pyGtkGlade libtorrentRasterbar twisted Mako chardet pyxdg pyopenssl modules.curses
     ];
 
     postInstall = ''
@@ -3155,6 +3246,24 @@ rec {
     propagatedBuildInputs = [ gdata hcs_utils keyring simplejson ];
   };
 
+  google_api_python_client = buildPythonPackage rec {
+    name = "google-api-python-client-1.2";
+
+    src = fetchurl {
+      url = "https://google-api-python-client.googlecode.com/files/google-api-python-client-1.2.tar.gz";
+      sha256 = "0xd619w71xk4ldmikxqhaaqn985rc2hy4ljgwfp50jb39afg7crw";
+    };
+
+    propagatedBuildInputs = [ httplib2 ];
+
+    meta = with stdenv.lib; {
+      description = "The core Python library for accessing Google APIs";
+      homepage = "https://code.google.com/p/google-api-python-client/";
+      license = licenses.asl20;
+      platforms = platforms.unix;
+    };
+  };
+
   greenlet = buildPythonPackage rec {
     name = "greenlet-0.3.1";
 
@@ -3192,6 +3301,22 @@ rec {
     };
   };
 
+  gunicorn = buildPythonPackage rec {
+    name = "gunicorn-18.0";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/g/gunicorn/${name}.tar.gz";
+      md5 = "c7138b9ac7515a42066922d2b6120fbe";
+    };
+    
+    buildInputs = [ pytest ];
+
+    meta = {
+      homepage = http://pypi.python.org/pypi/gunicorn;
+      description = "WSGI HTTP Server for UNIX";
+    };
+  };
+
   hcs_utils = buildPythonPackage rec {
     name = "hcs_utils-1.3";
 
@@ -3212,12 +3337,12 @@ rec {
 
   hetzner = buildPythonPackage rec {
     name = "hetzner-${version}";
-    version = "0.6.0";
+    version = "0.7.0";
 
     src = fetchurl {
       url = "https://github.com/RedMoonStudios/hetzner/archive/"
           + "v${version}.tar.gz";
-      sha256 = "1cgi77f453ahw3ad6hvqwbyp6fwnh90rlzfgl9cp79wg58wyar4w";
+      sha256 = "1ldbhwy6yk18frv6n9znvdsrqfnpch4mfvc70jrpq3f9fw236src";
     };
 
     # not there yet, but coming soon.
@@ -3370,7 +3495,7 @@ rec {
       url = "http://pypi.python.org/packages/source/i/ipdb/ipdb-0.7.tar.gz";
       md5 = "d879f9b2b0f26e0e999809585dcaec61";
     };
-    propagatedBuildInputs = [ pythonPackages.ipython ];
+    propagatedBuildInputs = [ pythonPackages.ipythonLight ];
   };
 
   ipdbplugin = buildPythonPackage {
@@ -3379,7 +3504,7 @@ rec {
       url = "https://pypi.python.org/packages/source/i/ipdbplugin/ipdbplugin-1.4.tar.gz";
       md5 = "f9a41512e5d901ea0fa199c3f648bba7";
     };
-    propagatedBuildInputs = [ pythonPackages.nose pythonPackages.ipython ];
+    propagatedBuildInputs = [ pythonPackages.nose pythonPackages.ipythonLight ];
   };
 
 
@@ -5591,18 +5716,25 @@ rec {
 
 
   pyopengl =
-    let version = "3.0.0b5";
+    let version = "3.0.2";
     in
       buildPythonPackage {
         name = "pyopengl-${version}";
 
         src = fetchurl {
-          url = "mirror://sourceforge/pyopengl/PyOpenGL-${version}.tar.gz";
-          sha256 = "1rjpl2qdcqn4wamkik840mywdycd39q8dn3wqfaiv35jdsbifxx3";
+          url = "http://pypi.python.org/packages/source/P/PyOpenGL/PyOpenGL-${version}.tar.gz";
+          sha256 = "9ef93bbea2c193898341f574e281c3ca0dfe87c53aa25fbec4b03581f6d1ba03";
         };
 
         propagatedBuildInputs = with pkgs; [ mesa freeglut pil ];
 
+        patchPhase = ''
+          sed -i "s|util.find_library( name )|name|" OpenGL/platform/ctypesloader.py
+          sed -i "s|'GL',|'libGL.so',|" OpenGL/platform/glx.py
+          sed -i "s|'GLU',|'${pkgs.mesa}/lib/libGLU.so',|" OpenGL/platform/glx.py
+          sed -i "s|'glut',|'${pkgs.freeglut}/lib/libglut.so',|" OpenGL/platform/glx.py
+        '';
+
         meta = {
           homepage = http://pyopengl.sourceforge.net/;
           description = "PyOpenGL, the Python OpenGL bindings";
@@ -5841,7 +5973,7 @@ rec {
     };
 
     buildInputs = with pkgs; [
-      pkgconfig python gtk2 pygtk libxml2 libxslt libsoup webkit_gtk2 icu
+      pkgconfig python gtk2 pygtk libxml2 libxslt libsoup webkitgtk2 icu
     ];
 
     meta = {
@@ -6882,7 +7014,7 @@ rec {
 
     checkPhase = ''
       cd tests
-      export LD_LIBRARY_PATH=${pkgs.imagemagick}/lib
+      export MAGICK_HOME="${pkgs.imagemagick}"
       export PYTHONPATH=$PYTHONPATH:../
       py.test
       cd ..
@@ -7610,6 +7742,12 @@ rec {
     wxGTK = pkgs.wxGTK28;
   };
 
+  wxPython30 = import ../development/python-modules/wxPython/3.0.nix {
+    inherit (pkgs) stdenv fetchurl pkgconfig;
+    inherit pythonPackages;
+    wxGTK = pkgs.wxGTK30;
+  };
+
   xe = buildPythonPackage rec {
     url = "http://www.blarg.net/%7Esteveha/xe-0.7.4.tar.gz";
     name = stdenv.lib.nameFromURL url ".tar";
@@ -8245,11 +8383,13 @@ rec {
 
 
   tornado = buildPythonPackage rec {
-    name = "tornado-3.1.1";
+    name = "tornado-3.2";
+
+    propagatedBuildInputs = [ backports_ssl_match_hostname_3_4_0_2 ];
 
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/t/tornado/${name}.tar.gz";
-      sha256 = "1ipx23ix8hyd88rywmwr7bfdgkvkdac87xq3f9l5vkm0wjzh8n9l";
+      url = "https://pypi.python.org/packages/source/t/tornado/${name}.tar.gz";
+      md5 = "bd83cee5f1a5c5e139e87996d00b251b";
     };
 
     doCheck = false;
@@ -8711,19 +8851,21 @@ rec {
   };
 
   searx = buildPythonPackage rec {
-    name = "searx-${version}";
-    version = "0.2.0";
+    name = "searx-${rev}";
+    rev = "44d3af9fb2482cd0df1a8ababbe2fdf27ab33172";
 
-    src = fetchurl {
-      url = "https://pypi.python.org/packages/source/s/searx/${name}.tar.gz";
-      sha256 = "19hxjg3vhq7fygcvfhsr3i40c8kbi7i76ym9cv2s03b3zijd38w0";
+    src = fetchgit {
+      url = "git://github.com/asciimoo/searx";
+      inherit rev;
+      sha256 = "1w505pzdkkcglq782wg7f5fxrw9i5jzp7px20c2xz18pps2m3rsm";
     };
 
-    propagatedBuildInputs = [ pyyaml lxml grequests flaskbabel flask requests gevent speaklater Babel pytz ];
+    propagatedBuildInputs = [ pyyaml lxml grequests flaskbabel flask requests
+      gevent speaklater Babel pytz dateutil ];
 
     meta = {
       homepage = https://github.com/asciimoo/searx;
-      description = "A privacy-respecting, hackable metasearch engine.";
+      description = "A privacy-respecting, hackable metasearch engine";
       license = stdenv.lib.licenses.agpl3Plus;
       maintainers = [ stdenv.lib.maintainers.matejc ];
     };
@@ -8781,6 +8923,21 @@ rec {
     };
   };
 
+  power = buildPythonPackage rec {
+    name = "power-1.2";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/p/power/${name}.tar.gz";
+      sha256 = "09a00af8357f63dbb1a1eb13b82e39ccc0a14d6d2e44e5b235afe60ce8ee8195";
+    };
+
+    meta = {
+      description = "Cross-platform system power status information";
+      homepage = https://github.com/Kentzo/Power;
+      license = "mit";
+    };
+  };
+
 # python2.7 specific packages
 } // optionalAttrs isPy27 (
   with pythonPackages;
@@ -8806,4 +8963,51 @@ rec {
     };
   };
 
+
+  thumbor = pythonPackages.buildPythonPackage rec {
+    name = "thumbor-4.0.4";
+
+    propagatedBuildInputs = [
+                    tornado
+                    pycrypto
+                    pycurl
+                    pillow
+                    derpconf
+                    python_magic
+                    thumborPexif
+                    (pkgs.opencv.override {
+                        gtk = null;
+                        glib = null;
+                        xineLib = null;
+                        gstreamer = null;
+                        ffmpeg = null;
+                    }) ];
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/t/thumbor/${name}.tar.gz";
+      md5 = "cf639a1cc57ee287b299ace450444408";
+    };
+
+    meta = {
+      description = "Thumbor is a smart imaging service. It enables on-demand crop, resizing and flipping of images.";
+      homepage = https://github.com/globocom/thumbor/wiki;
+      license = licenses.mit;
+    };
+  };
+
+  thumborPexif = pythonPackages.buildPythonPackage rec {
+    name = "thumbor-pexif-0.14";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/t/thumbor-pexif/${name}.tar.gz";
+      md5 = "fb4cdb60f4a0bead5193fb483ccd3430";
+    };
+
+    meta = {
+      description = "Module to parse and edit the EXIF data tags in a JPEG image";
+      homepage = http://www.benno.id.au/code/pexif/;
+      license = licenses.mit;
+    };
+  };
+
 }); in pythonPackages
diff --git a/pkgs/top-level/release-python.nix b/pkgs/top-level/release-python.nix
index 8eb08d259834..dfdbb1db8bdf 100644
--- a/pkgs/top-level/release-python.nix
+++ b/pkgs/top-level/release-python.nix
@@ -1724,7 +1724,6 @@ let
   wavesurfer = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   wdfs = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   webkit = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
-  webkit_gtk2 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   weechat = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   welkin = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   wesnoth = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };