summary refs log tree commit diff
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2014-01-12 12:27:06 +0100
committerVladimír Čunát <vcunat@gmail.com>2014-01-12 12:29:24 +0100
commita2c316288c8f3714e57dc1037d7a993a2088ab18 (patch)
treeee4af0b96a5bc0e55b92c8d76465b333a698a260
parent51713fbbfcaf819f176df8f3ce75f57880aeb690 (diff)
parenta0070a9157d7d145eed22160cec2562d24032013 (diff)
downloadnixpkgs-a2c316288c8f3714e57dc1037d7a993a2088ab18.tar
nixpkgs-a2c316288c8f3714e57dc1037d7a993a2088ab18.tar.gz
nixpkgs-a2c316288c8f3714e57dc1037d7a993a2088ab18.tar.bz2
nixpkgs-a2c316288c8f3714e57dc1037d7a993a2088ab18.tar.lz
nixpkgs-a2c316288c8f3714e57dc1037d7a993a2088ab18.tar.xz
nixpkgs-a2c316288c8f3714e57dc1037d7a993a2088ab18.tar.zst
nixpkgs-a2c316288c8f3714e57dc1037d7a993a2088ab18.zip
Merge master into stdenv-updates
Conflicts:
	pkgs/development/lisp-modules/stumpwm/default.nix (auto-solved)
	pkgs/top-level/all-packages.nix (trivial)
-rw-r--r--lib/maintainers.nix3
-rw-r--r--nixos/modules/misc/ids.nix1
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/services/databases/postgresql.nix6
-rw-r--r--nixos/modules/services/networking/connman.nix94
-rw-r--r--nixos/modules/services/x11/xserver.nix11
-rw-r--r--nixos/modules/system/boot/loader/gummiboot/gummiboot.nix2
-rw-r--r--pkgs/applications/audio/lastfmsubmitd/default.nix21
-rw-r--r--pkgs/applications/audio/moc/default.nix4
-rw-r--r--pkgs/applications/audio/projectm/default.nix51
-rw-r--r--pkgs/applications/audio/snd/default.nix70
-rw-r--r--pkgs/applications/audio/snd/doc.patch62
-rw-r--r--pkgs/applications/editors/emacs-modes/idris/default.nix30
-rw-r--r--pkgs/applications/editors/yi/yi-contrib.nix14
-rw-r--r--pkgs/applications/editors/yi/yi.nix37
-rw-r--r--pkgs/applications/misc/spacefm/default.nix24
-rw-r--r--pkgs/applications/misc/xmobar/default.nix9
-rw-r--r--pkgs/applications/networking/mailreaders/notmuch/default.nix4
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/default.nix4
-rw-r--r--pkgs/applications/office/ledger/3.0.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-annex/default.nix9
-rw-r--r--pkgs/applications/version-management/tailor/default.nix5
-rw-r--r--pkgs/applications/virtualization/virt-manager/default.nix18
-rw-r--r--pkgs/applications/virtualization/virtinst/default.nix4
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix8
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix8
-rw-r--r--pkgs/build-support/fetchbower/default.nix9
-rwxr-xr-xpkgs/build-support/fetchgit/nix-prefetch-git6
-rw-r--r--pkgs/build-support/vm/default.nix12
-rw-r--r--pkgs/desktops/gnome-2/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/desktop/nautilus/default.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/at-spi2-core/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/dconf/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/core/eog/default.nix28
-rw-r--r--pkgs/desktops/gnome-3/core/evince/default.nix27
-rw-r--r--pkgs/desktops/gnome-3/core/gconf/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/core/gcr/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-keyring/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-session/default.nix29
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-terminal/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-themes-standard/default.nix (renamed from pkgs/misc/themes/gnome-themes-standard/default.nix)15
-rw-r--r--pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/core/libcroco/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/libgee/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/core/libgee/fix_introspection_paths.patch13
-rw-r--r--pkgs/desktops/gnome-3/core/libgweather/default.nix13
-rw-r--r--pkgs/desktops/gnome-3/core/libgxps/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/core/libpeas/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/core/libqmi/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/core/libzapojit/default.nix16
-rw-r--r--pkgs/desktops/gnome-3/core/nautilus/default.nix27
-rw-r--r--pkgs/desktops/gnome-3/core/rest/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/core/vte/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/zenity/default.nix13
-rw-r--r--pkgs/desktops/gnome-3/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/desktop/file-roller/default.nix29
-rw-r--r--pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix23
-rw-r--r--pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix15
-rw-r--r--pkgs/desktops/gnome-3/desktop/gtksourceview/default.nix19
-rw-r--r--pkgs/desktops/gnome-3/desktop/rarian/default.nix5
-rw-r--r--pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/misc/gitg/default.nix50
-rw-r--r--pkgs/desktops/gnome-3/misc/goffice/default.nix1
-rw-r--r--pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix21
-rw-r--r--pkgs/desktops/xfce/applications/parole.nix43
-rw-r--r--pkgs/desktops/xfce/default.nix1
-rw-r--r--pkgs/development/compilers/dmd/default.nix52
-rw-r--r--pkgs/development/compilers/elm/elm-server.nix4
-rw-r--r--pkgs/development/compilers/rdmd/default.nix29
-rw-r--r--pkgs/development/compilers/vala/15.2.nix24
-rw-r--r--pkgs/development/compilers/vala/16.1.nix24
-rw-r--r--pkgs/development/compilers/vala/default.nix46
-rw-r--r--pkgs/development/interpreters/octave/default.nix32
-rw-r--r--pkgs/development/interpreters/supercollider/default.nix38
-rw-r--r--pkgs/development/libraries/accountservice/default.nix13
-rw-r--r--pkgs/development/libraries/exempi/default.nix19
-rw-r--r--pkgs/development/libraries/fdk-aac/default.nix19
-rw-r--r--pkgs/development/libraries/ffmpeg/2.x.nix58
-rw-r--r--pkgs/development/libraries/git2/default.nix2
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix34
-rw-r--r--pkgs/development/libraries/gstreamer/base/default.nix32
-rw-r--r--pkgs/development/libraries/gstreamer/core/default.nix26
-rw-r--r--pkgs/development/libraries/gstreamer/default.nix15
-rw-r--r--pkgs/development/libraries/gstreamer/good/default.nix33
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix (renamed from pkgs/development/libraries/gstreamer/gnonlin/default.nix)0
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-ffmpeg/default.nix (renamed from pkgs/development/libraries/gstreamer/gst-ffmpeg/default.nix)0
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix (renamed from pkgs/development/libraries/gstreamer/gst-plugins-bad/default.nix)0
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix (renamed from pkgs/development/libraries/gstreamer/gst-plugins-base/default.nix)0
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix (renamed from pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix)0
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch (renamed from pkgs/development/libraries/gstreamer/gst-plugins-good/v4l.patch)0
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix (renamed from pkgs/development/libraries/gstreamer/gst-plugins-ugly/default.nix)0
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix (renamed from pkgs/development/libraries/gstreamer/gst-python/default.nix)0
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix (renamed from pkgs/development/libraries/gstreamer/gstreamer/default.nix)0
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh (renamed from pkgs/development/libraries/gstreamer/gstreamer/setup-hook.sh)0
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/boost1.48.patch (renamed from pkgs/development/libraries/gstreamer/qt-gstreamer/boost1.48.patch)0
-rw-r--r--pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/default.nix (renamed from pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix)0
-rw-r--r--pkgs/development/libraries/gstreamer/libav/default.nix35
-rw-r--r--pkgs/development/libraries/gstreamer/ugly/default.nix29
-rw-r--r--pkgs/development/libraries/gtk-sharp-1/default.nix5
-rw-r--r--pkgs/development/libraries/gtk-sharp-1/glib-include.patch24
-rw-r--r--pkgs/development/libraries/gtkspell/3.nix18
-rw-r--r--pkgs/development/libraries/haskell/DRBG/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/RSA/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/SHA/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/aeson-pretty/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/alsa-mixer/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/attoparsec/0.11.1.0.nix20
-rw-r--r--pkgs/development/libraries/haskell/boomerang/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cassava/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/charset/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cipher-aes128/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/concreteTyperep/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/crypto-api/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/crypto-conduit/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/data-accessor/data-accessor-mtl.nix14
-rw-r--r--pkgs/development/libraries/haskell/diagrams/contrib.nix4
-rw-r--r--pkgs/development/libraries/haskell/diagrams/diagrams.nix4
-rw-r--r--pkgs/development/libraries/haskell/errors/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/fast-logger/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/foldl/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/force-layout/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/gloss-raster/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/hakyll/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/happstack/happstack-server.nix4
-rw-r--r--pkgs/development/libraries/haskell/highlighting-kate/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hledger-lib/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/hledger-web/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hledger/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/hoogle/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/hslua/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hxt/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/idna/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/liblastfm/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/lifted-async/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/mmorph/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/mueval/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/network/2.4.2.2.nix (renamed from pkgs/development/libraries/haskell/network/2.4.2.1.nix)4
-rw-r--r--pkgs/development/libraries/haskell/pandoc-citeproc/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/pandoc/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/parsec/3.1.5.nix (renamed from pkgs/development/libraries/haskell/parsec/3.1.4.nix)5
-rw-r--r--pkgs/development/libraries/haskell/persistent-sqlite/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/persistent-template/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/pipes-attoparsec/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/pipes/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/pointedlist/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/poppler/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/pretty-show/1.6.5.nix (renamed from pkgs/development/libraries/haskell/pretty-show/1.6.3.nix)4
-rw-r--r--pkgs/development/libraries/haskell/scientific/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/shake/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/shelly/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/smtp-mail/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/stringprep/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/symbol/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/system-fileio/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/system-filepath/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/texmath/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/text/1.1.0.0.nix (renamed from pkgs/development/libraries/haskell/text/1.0.0.0.nix)4
-rw-r--r--pkgs/development/libraries/haskell/th-lift/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/threads/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/wai-handler-fastcgi/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/web-routes-boomerang/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/web-routes/default.nix4
-rw-r--r--pkgs/development/libraries/libmicrohttpd/default.nix8
-rw-r--r--pkgs/development/libraries/libwnck/3.x.nix10
-rw-r--r--pkgs/development/libraries/libwnck/install_introspection_to_prefix.patch12
-rw-r--r--pkgs/development/libraries/nss/default.nix6
-rw-r--r--pkgs/development/libraries/p11-kit/default.nix10
-rw-r--r--pkgs/development/libraries/poppler/default.nix2
-rw-r--r--pkgs/development/libraries/poppler/poppler-glib.patch19
-rw-r--r--pkgs/development/libraries/pupnp/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/openblas/default.nix2
-rw-r--r--pkgs/development/libraries/serf/default.nix2
-rw-r--r--pkgs/development/libraries/spice-gtk/default.nix55
-rw-r--r--pkgs/development/libraries/zeromq/2.x.nix1
-rw-r--r--pkgs/development/libraries/zeromq/3.x.nix1
-rw-r--r--pkgs/development/lisp-modules/stumpwm/default.nix7
-rw-r--r--pkgs/development/python-modules/pygobject/3.nix10
-rw-r--r--pkgs/development/python-modules/pyqt/4.x.nix (renamed from pkgs/development/python-modules/pyqt/default.nix)21
-rw-r--r--pkgs/development/python-modules/setuptools/default.nix2
-rw-r--r--pkgs/development/python-modules/sip/default.nix (renamed from pkgs/development/python-modules/python-sip/default.nix)19
-rw-r--r--pkgs/development/tools/haskell/cabal2nix/default.nix4
-rw-r--r--pkgs/development/tools/misc/d-feet/default.nix45
-rw-r--r--pkgs/development/tools/misc/icon-naming-utils/default.nix7
-rw-r--r--pkgs/development/tools/parsing/happy/1.19.2.nix1
-rw-r--r--pkgs/development/tools/profiling/systemtap/default.nix4
-rw-r--r--pkgs/development/web/nodejs/default.nix4
-rw-r--r--pkgs/misc/emulators/wine/stable.nix8
-rw-r--r--pkgs/os-specific/linux/acpi-call/default.nix10
-rw-r--r--pkgs/os-specific/linux/atheros/0.9.4.nix28
-rw-r--r--pkgs/os-specific/linux/ati-drivers/default.nix11
-rw-r--r--pkgs/os-specific/linux/aufs-util/2.nix41
-rw-r--r--pkgs/os-specific/linux/aufs-util/3.nix40
-rw-r--r--pkgs/os-specific/linux/aufs/2.nix43
-rw-r--r--pkgs/os-specific/linux/aufs/3.nix44
-rw-r--r--pkgs/os-specific/linux/batman-adv/default.nix10
-rw-r--r--pkgs/os-specific/linux/bbswitch/default.nix12
-rw-r--r--pkgs/os-specific/linux/blcr/default.nix12
-rw-r--r--pkgs/os-specific/linux/broadcom-sta-v6/default.nix49
-rw-r--r--pkgs/os-specific/linux/broadcom-sta-v6/license.patch13
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/default.nix55
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/license.patch9
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/linux-2.6.39.patch11
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/linux-3.2.patch13
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/linux-3.4.patch12
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/linux-recent.patch (renamed from pkgs/os-specific/linux/broadcom-sta-v6/linux-recent.patch)0
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/makefile.patch16
-rw-r--r--pkgs/os-specific/linux/cryptodev/default.nix8
-rw-r--r--pkgs/os-specific/linux/cryptsetup/default.nix4
-rw-r--r--pkgs/os-specific/linux/e1000e/default.nix14
-rw-r--r--pkgs/os-specific/linux/exmap/default.nix56
-rw-r--r--pkgs/os-specific/linux/frandom/default.nix10
-rw-r--r--pkgs/os-specific/linux/iscsitarget/default.nix27
-rw-r--r--pkgs/os-specific/linux/iwlwifi/default.nix40
-rw-r--r--pkgs/os-specific/linux/kernel-headers/default.nix25
-rw-r--r--pkgs/os-specific/linux/kernel/builder.sh149
-rw-r--r--pkgs/os-specific/linux/kernel/generate-config.pl5
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix168
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix325
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix46
-rw-r--r--pkgs/os-specific/linux/kernel/perf.nix7
-rw-r--r--pkgs/os-specific/linux/klibc/default.nix78
-rw-r--r--pkgs/os-specific/linux/klibc/no-reinstall-kernel-headers.patch11
-rw-r--r--pkgs/os-specific/linux/libsepol/default.nix2
-rw-r--r--pkgs/os-specific/linux/lttng-modules/default.nix6
-rw-r--r--pkgs/os-specific/linux/lxc/default.nix4
-rw-r--r--pkgs/os-specific/linux/ndiswrapper/default.nix18
-rw-r--r--pkgs/os-specific/linux/ndiswrapper/no-sbin.patch12
-rw-r--r--pkgs/os-specific/linux/ndiswrapper/prefix.patch66
-rw-r--r--pkgs/os-specific/linux/netatop/default.nix10
-rwxr-xr-xpkgs/os-specific/linux/nvidia-x11/builder-legacy.sh7
-rwxr-xr-xpkgs/os-specific/linux/nvidia-x11/builder-legacy304.sh7
-rwxr-xr-xpkgs/os-specific/linux/nvidia-x11/builder.sh7
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix6
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/legacy173.nix12
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/legacy304.nix6
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/legacy96.nix44
-rw-r--r--pkgs/os-specific/linux/open-iscsi/default.nix14
-rw-r--r--pkgs/os-specific/linux/psmouse-alps/default.nix10
-rw-r--r--pkgs/os-specific/linux/spl/default.nix10
-rw-r--r--pkgs/os-specific/linux/tp_smapi/default.nix12
-rw-r--r--pkgs/os-specific/linux/v86d/default.nix7
-rw-r--r--pkgs/os-specific/linux/wis-go7007/default.nix17
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix10
-rw-r--r--pkgs/servers/http/apache-httpd/2.4.nix1
-rw-r--r--pkgs/servers/monitoring/zabbix/2.0.nix3
-rw-r--r--pkgs/servers/monitoring/zabbix/2.2.nix91
-rw-r--r--pkgs/servers/openafs-client/default.nix6
-rw-r--r--pkgs/servers/samba/default.nix4
-rw-r--r--pkgs/servers/x11/xorg/default.nix12
-rw-r--r--pkgs/servers/x11/xorg/tarballs-7.7.list2
-rw-r--r--pkgs/stdenv/linux/make-bootstrap-tools-crosspi.nix2
-rw-r--r--pkgs/tools/misc/direnv/default.nix4
-rw-r--r--pkgs/tools/misc/grc/default.nix4
-rw-r--r--pkgs/tools/misc/mc/default.nix6
-rw-r--r--pkgs/tools/misc/yad/default.nix35
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/networking/connman/default.nix59
-rw-r--r--pkgs/tools/networking/connmanui/default.nix28
-rw-r--r--pkgs/tools/networking/p2p/tahoe-lafs/default.nix35
-rw-r--r--pkgs/tools/package-management/nix/default.nix2
-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/aespipe/default.nix4
-rw-r--r--pkgs/tools/typesetting/tex/texlive/beamer.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.nix203
-rw-r--r--pkgs/top-level/haskell-packages.nix44
-rw-r--r--pkgs/top-level/node-packages-generated.nix176
-rw-r--r--pkgs/top-level/node-packages.json1
-rw-r--r--pkgs/top-level/perl-packages.nix12
-rw-r--r--pkgs/top-level/platforms.nix15
-rw-r--r--pkgs/top-level/python-packages.nix71
-rw-r--r--pkgs/top-level/release-cross.nix2
-rw-r--r--pkgs/top-level/release-python.nix4
281 files changed, 3041 insertions, 2060 deletions
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 285197e381d..de8e617b322 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -27,13 +27,16 @@
   garbas = "Rok Garbas <rok@garbas.si>";
   goibhniu = "Cillian de Róiste <cillian.deroiste@gmail.com>";
   guibert = "David Guibert <david.guibert@gmail.com>";
+  ianwookim = "Ian-Woo Kim <ianwookim@gmail.com>";
   iElectric = "Domen Kozar <domen@dev.si>";
   iyzsong = "Song Wenwu <iyzsong@gmail.com>";
   jcumming = "Jack Cummings <jack@mudshark.org>";
   kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
+  ktosiek = "Tomasz Kontusz <tomasz.kontusz@gmail.com>";
   lovek323 = "Jason O'Conal <jason@oconal.id.au>";
   ludo = "Ludovic Courtès <ludo@gnu.org>";
   marcweber = "Marc Weber <marco-oweber@gmx.de>";
+  matejc = "Matej Cotman <cotman.matej@gmail.com>";
   modulistic = "Pablo Costa <modulistic@gmail.com>";
   mornfall = "Petr Ročkai <me@mornfall.net>";
   ocharles = "Oliver Charles <ollie@ocharles.org.uk>";
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index 6f2666e4ae5..82041b3f954 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -197,6 +197,7 @@
       minidlna = 91;
       haproxy = 92;
       openldap = 93;
+      connman = 94;
 
       # When adding a gid, make sure it doesn't match an existing uid.
 
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 684850df2ae..7f8d7172dc4 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -147,6 +147,7 @@
   ./services/networking/avahi-daemon.nix
   ./services/networking/bind.nix
   ./services/networking/bitlbee.nix
+  ./services/networking/connman.nix
   ./services/networking/cntlm.nix
   ./services/networking/chrony.nix
   ./services/networking/ddclient.nix
diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix
index 1563858887e..265d26e8ce9 100644
--- a/nixos/modules/services/databases/postgresql.nix
+++ b/nixos/modules/services/databases/postgresql.nix
@@ -82,7 +82,11 @@ in
         type = types.lines;
         default = "";
         description = ''
-          Defines how users authenticate themselves to the server.
+          Defines how users authenticate themselves to the server. By
+          default, "trust" access to local users will always be granted
+          along with any other custom options. If you do not want this,
+          set this option using "pkgs.lib.mkForce" to override this
+          behaviour.
         '';
       };
 
diff --git a/nixos/modules/services/networking/connman.nix b/nixos/modules/services/networking/connman.nix
new file mode 100644
index 00000000000..2b26fe88129
--- /dev/null
+++ b/nixos/modules/services/networking/connman.nix
@@ -0,0 +1,94 @@
+{ config, pkgs, ... }:
+
+with pkgs.lib;
+with pkgs;
+
+let
+  cfg = config.networking.connman;
+
+in {
+
+  ###### interface
+
+  options = {
+
+    networking.connman = {
+
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to use ConnMan for managing your network connections.
+        '';
+      };
+
+    };
+
+  };
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+
+    assertions = [{
+      assertion = config.networking.useDHCP == false;
+      message = "You can not use services.networking.connman with services.networking.useDHCP";
+    }{
+      assertion = config.networking.wireless.enable == true;
+      message = "You must use services.networking.connman with services.networking.wireless";
+    }{
+      assertion = config.networking.networkmanager.enable == false;
+      message = "You can not use services.networking.connman with services.networking.networkmanager";
+    }];
+
+    environment.systemPackages = [ connman ];
+
+    systemd.services."connman" = {
+      description = "Connection service";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "syslog.target" ];
+      serviceConfig = {
+        Type = "dbus";
+        BusName = "net.connman";
+        Restart = "on-failure";
+        ExecStart = "${pkgs.connman}/sbin/connmand --nodaemon";
+        StandardOutput = "null";
+      };
+    };
+
+    systemd.services."connman-vpn" = {
+      description = "ConnMan VPN service";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "syslog.target" ];
+      before = [ "connman" ];
+      serviceConfig = {
+        Type = "dbus";
+        BusName = "net.connman.vpn";
+        ExecStart = "${pkgs.connman}/sbin/connman-vpnd -n";
+        StandardOutput = "null";
+      };
+    };
+
+    systemd.services."net-connman-vpn" = {
+      description = "D-BUS Service";
+      serviceConfig = {
+        Name = "net.connman.vpn";
+        before = [ "connman" ];
+        ExecStart = "${pkgs.connman}/sbin/connman-vpnd -n";
+        User = "root";
+        SystemdService = "connman-vpn.service";
+      };
+    };
+
+    networking = {
+      useDHCP = false;
+      wireless.enable = true;
+      networkmanager.enable = false;
+    };
+
+    powerManagement.resumeCommands = ''
+      systemctl restart connman
+    '';
+
+  };
+}
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 0253c70f2dd..60ed165d7ba 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -16,7 +16,6 @@ let
     ati_unfree   = { modules = [ kernelPackages.ati_drivers_x11 ]; driverName = "fglrx"; };
     nouveau       = { modules = [ pkgs.xf86_video_nouveau ]; };
     nvidia       = { modules = [ kernelPackages.nvidia_x11 ]; };
-    nvidiaLegacy96 = { modules = [ kernelPackages.nvidia_x11_legacy96 ]; driverName = "nvidia"; };
     nvidiaLegacy173 = { modules = [ kernelPackages.nvidia_x11_legacy173 ]; driverName = "nvidia"; };
     nvidiaLegacy304 = { modules = [ kernelPackages.nvidia_x11_legacy304 ]; driverName = "nvidia"; };
     unichrome    = { modules = [ pkgs.xorgVideoUnichrome ]; };
@@ -443,7 +442,6 @@ in
 
     boot.extraModulePackages =
       optional (elem "nvidia" driverNames) kernelPackages.nvidia_x11 ++
-      optional (elem "nvidiaLegacy96" driverNames) kernelPackages.nvidia_x11_legacy96 ++
       optional (elem "nvidiaLegacy173" driverNames) kernelPackages.nvidia_x11_legacy173 ++
       optional (elem "nvidiaLegacy304" driverNames) kernelPackages.nvidia_x11_legacy304 ++
       optional (elem "virtualbox" driverNames) kernelPackages.virtualboxGuestAdditions ++
@@ -497,7 +495,6 @@ in
         pkgs.xdg_utils
       ]
       ++ optional (elem "nvidia" driverNames) kernelPackages.nvidia_x11
-      ++ optional (elem "nvidiaLegacy96" driverNames) kernelPackages.nvidia_x11_legacy96
       ++ optional (elem "nvidiaLegacy173" driverNames) kernelPackages.nvidia_x11_legacy173
       ++ optional (elem "nvidiaLegacy304" driverNames) kernelPackages.nvidia_x11_legacy304
       ++ optional (elem "virtualbox" driverNames) xorg.xrefresh
@@ -521,8 +518,6 @@ in
             XORG_DRI_DRIVER_PATH = "/run/opengl-driver/lib/dri"; # !!! Depends on the driver selected at runtime.
           } // optionalAttrs (elem "nvidia" driverNames) {
             LD_LIBRARY_PATH = "${xorg.libX11}/lib:${xorg.libXext}/lib:${kernelPackages.nvidia_x11}/lib";
-          } // optionalAttrs (elem "nvidiaLegacy96" driverNames) {
-            LD_LIBRARY_PATH = "${xorg.libX11}/lib:${xorg.libXext}/lib:${kernelPackages.nvidia_x11_legacy96}/lib";
           } // optionalAttrs (elem "nvidiaLegacy173" driverNames) {
             LD_LIBRARY_PATH = "${xorg.libX11}/lib:${xorg.libXext}/lib:${kernelPackages.nvidia_x11_legacy173}/lib";
           } // optionalAttrs (elem "nvidiaLegacy304" driverNames) {
@@ -542,17 +537,15 @@ in
                 ''
                   ln -sf ${kernelPackages.nvidia_x11} /run/opengl-driver
                   ${optionalString cfg.driSupport32Bit
-                    "ln -sf ${pkgs_i686.linuxPackages.nvidia_x11.override { libsOnly = true; kernelDev = null; } } /run/opengl-driver-32"}
+                    "ln -sf ${pkgs_i686.linuxPackages.nvidia_x11.override { libsOnly = true; kernel = null; } } /run/opengl-driver-32"}
                 ''
-              else if elem "nvidiaLegacy96" driverNames then
-                "ln -sf ${kernelPackages.nvidia_x11_legacy96} /run/opengl-driver"
               else if elem "nvidiaLegacy173" driverNames then
                 "ln -sf ${kernelPackages.nvidia_x11_legacy173} /run/opengl-driver"
               else if elem "nvidiaLegacy304" driverNames then
                 ''
                   ln -sf ${kernelPackages.nvidia_x11_legacy304} /run/opengl-driver
                   ${optionalString cfg.driSupport32Bit
-                    "ln -sf ${pkgs_i686.linuxPackages.nvidia_x11_legacy304.override { libsOnly = true; kernelDev = null; } } /run/opengl-driver-32"}
+                    "ln -sf ${pkgs_i686.linuxPackages.nvidia_x11_legacy304.override { libsOnly = true; kernel = null; } } /run/opengl-driver-32"}
                 ''
               else if elem "ati_unfree" driverNames then
                 "ln -sf ${kernelPackages.ati_drivers_x11} /run/opengl-driver"
diff --git a/nixos/modules/system/boot/loader/gummiboot/gummiboot.nix b/nixos/modules/system/boot/loader/gummiboot/gummiboot.nix
index 9193cd3bc53..7edc3077637 100644
--- a/nixos/modules/system/boot/loader/gummiboot/gummiboot.nix
+++ b/nixos/modules/system/boot/loader/gummiboot/gummiboot.nix
@@ -14,7 +14,7 @@ let
 
     inherit (pkgs) python gummiboot;
 
-    inherit (config.environment) nix;
+    nix = config.nix.package;
 
     inherit (cfg) timeout;
 
diff --git a/pkgs/applications/audio/lastfmsubmitd/default.nix b/pkgs/applications/audio/lastfmsubmitd/default.nix
new file mode 100644
index 00000000000..314361329c7
--- /dev/null
+++ b/pkgs/applications/audio/lastfmsubmitd/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pythonPackages }:
+
+pythonPackages.buildPythonPackage rec {
+  name = "lastfmsubmitd-${version}";
+  namePrefix = ""; 
+  version = "1.0.6";
+
+  src = fetchurl {
+    url = "http://www.red-bean.com/decklin/lastfmsubmitd/lastfmsubmitd-${version}.tar.gz";
+    sha256 = "c2636d5095a95167366bacd458624d67b046e060244fa54ba2c2e3efb79f9b0e";
+  };
+
+  doCheck = false;
+
+  installCommand = "python setup.py install --prefix=$out";
+
+  meta = {
+    homepage = "http://www.red-bean.com/decklin/lastfmsubmitd/";
+    description = "An last.fm audio scrobbler and daemon";
+  };
+}
diff --git a/pkgs/applications/audio/moc/default.nix b/pkgs/applications/audio/moc/default.nix
index de29f2d53e7..74ae3dcf22b 100644
--- a/pkgs/applications/audio/moc/default.nix
+++ b/pkgs/applications/audio/moc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ncurses, pkgconfig, alsaLib, flac, libmad, speex, ffmpeg, libvorbis, mpc, libsndfile, jackaudio, db4, libav, libmodplug, timidity, libid3tag, libtool }:
+{ stdenv, fetchurl, ncurses, pkgconfig, alsaLib, flac, libmad, speex, ffmpeg_0_10, libvorbis, mpc, libsndfile, jackaudio, db4, libmodplug, timidity, libid3tag, libtool }:
 
 stdenv.mkDerivation rec {
   name = "moc-${version}";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   configurePhase = "./configure prefix=$out";
 
-  buildInputs = [ ncurses pkgconfig alsaLib flac libmad speex ffmpeg libvorbis mpc libsndfile jackaudio db4 libav libmodplug timidity libid3tag libtool ];
+  buildInputs = [ ncurses pkgconfig alsaLib flac libmad speex ffmpeg_0_10 libvorbis mpc libsndfile jackaudio db4 libmodplug timidity libid3tag libtool ];
 
   meta = {
     description = "MOC (music on console) is a console audio player for LINUX/UNIX designed to be powerful and easy to use.";
diff --git a/pkgs/applications/audio/projectm/default.nix b/pkgs/applications/audio/projectm/default.nix
new file mode 100644
index 00000000000..2dd251ddd5b
--- /dev/null
+++ b/pkgs/applications/audio/projectm/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, pkgconfig, cmake
+, glew, ftgl, ttf_bitstream_vera
+, withQt ? true, qt4
+, withLibvisual ? false, libvisual, SDL
+, withJack ? false, jackaudio
+, withPulseAudio ? true, pulseaudio
+}:
+
+assert withJack       -> withQt;
+assert withPulseAudio -> withQt;
+
+stdenv.mkDerivation {
+  name = "projectm-2.1.0";
+
+  meta = {
+    description = "Music Visualizer";
+    homepage = "http://projectm.sourceforge.net/";
+    license = stdenv.lib.licenses.lgpl21Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+
+  src = fetchurl {
+    url = "mirror://sourceforge/projectm/2.1.0/projectM-complete-2.1.0-Source.tar.gz";
+    sha256 = "1vh6jk68a0jdb6qwppb6f8cbgmhnv2ba3bcavzfd6sq06gq08cji";
+  };
+
+  patchPhase = ''
+    sed -i 's:''${LIBVISUAL_PLUGINSDIR}:''${CMAKE_INSTALL_PREFIX}/lib/libvisual-0.4:' \
+      src/projectM-libvisual/CMakeLists.txt
+  '';
+
+  nativeBuildInputs = [ pkgconfig cmake ];
+
+  cmakeFlags = ''
+    -DprojectM_FONT_MENU=${ttf_bitstream_vera}/share/fonts/truetype/VeraMono.ttf
+    -DprojectM_FONT_TITLE=${ttf_bitstream_vera}/share/fonts/truetype/Vera.ttf
+    -DINCLUDE-PROJECTM-TEST=OFF
+    -DINCLUDE-PROJECTM-QT=${if withQt then "ON" else "OFF"}
+    -DINCLUDE-PROJECTM-LIBVISUAL=${if withLibvisual then "ON" else "OFF"}
+    -DINCLUDE-PROJECTM-JACK=${if withJack then "ON" else "OFF"}
+    -DINCLUDE-PROJECTM-PULSEAUDIO=${if withPulseAudio then "ON" else "OFF"}
+  '';
+
+  buildInputs = with stdenv.lib;
+    [ glew ftgl ]
+    ++ optional withQt qt4
+    ++ optionals withLibvisual [ libvisual SDL ]
+    ++ optional withJack jackaudio
+    ++ optional withPulseAudio pulseaudio
+    ;
+}
diff --git a/pkgs/applications/audio/snd/default.nix b/pkgs/applications/audio/snd/default.nix
index a49bfd9cccf..52cd2ad35ce 100644
--- a/pkgs/applications/audio/snd/default.nix
+++ b/pkgs/applications/audio/snd/default.nix
@@ -1,58 +1,26 @@
-args : 
-let 
-  lib = args.lib;
-  fetchurl = args.fetchurl;
-  fullDepEntry = args.fullDepEntry;
+{ stdenv, fetchurl, pkgconfig
+, gtk2, alsaLib
+, fftw, gsl
+}:
 
-  version = lib.attrByPath ["version"] "9.4" args; 
-  buildInputs = with args; [gtk glib pkgconfig 
-     libXpm gmp gettext libX11 fftw]
-      ++ (lib.optional (args ? ruby) args.ruby)
-      ++ (lib.optional (args ? mesa) args.mesa)
-      ++ (lib.optional (args ? guile) args.guile)
-      ++ (lib.optional (args ? libtool) args.libtool)
-      ++ (lib.optional (args ? sndlib) args.sndlib)
-      ++ (lib.optional (args ? alsaLib) args.alsaLib)
-      ++ (lib.optional (args ? jackaudio) args.jackaudio)
-      ;
-  configureFlags = ["--with-gtk" "--with-xpm"]
-    ++ (lib.optional (args ? ruby)   "--with-ruby" )
-    ++ (lib.optional (args ? mesa)   "--with-gl"   )
-    ++ (lib.optional (args ? guile)  "--with-guile")
-    ++ (lib.optional (args ? sndlib) "--with-midi" )
-    ++ (lib.optional (args ? alsaLib)  "--with-alsa")
-    ++ (lib.optional (args ? jackaudio) "--with-jack" )
-    ++ [ "--with-fftw" "--htmldir=$out/share/snd/html" "--with-doc-dir=$out/share/snd/html" ]
-    ;
-in
-rec {
-  src = fetchurl {
-    url = "mirror://sourceforge/snd/snd-${version}.tar.gz";
-    sha256 = "0zqgfnkvkqxby1k74mwba1r4pb520glcsz5jjmpzm9m41nqnghmm";
-  };
-
-  inherit buildInputs;
-  configureFlags = [];
-
-  /* doConfigure should be specified separately */
-  phaseNames = ["doConfigure" "preBuild" "makeDocsWork" 
-    "doMakeInstall" "doForceShare"];
-
-  makeDocsWork = fullDepEntry ''
-                # hackish way to make html docs work
-                h="$out/share/snd/html"; mkdir -p "$h"; cp *.html "$h"
-                patch -p1 < ${./doc.patch}
-                sed "s@HTML-DIR@$h@" -i index.scm snd-help.c
-            '' ["defEnsureDir"];
-
-  preBuild = fullDepEntry (''
-		export NIX_LDFLAGS="$NIX_LDFLAGS -L${args.libX11}/lib -lX11"
-            '') ["minInit" "doUnpack" "makeDocsWork"];
+stdenv.mkDerivation rec {
+  name = "snd-14.3";
 
-  name = "snd-" + version;
   meta = {
     description = "Sound editor";
     homepage = http://ccrma.stanford.edu/software/snd;
-    inherit src;
+    platforms = stdenv.lib.platforms.linux;
   };
+
+  src = fetchurl {
+    url = "mirror://sourceforge/snd/${name}.tar.gz";
+    sha256 = "04shk34pza507kvm40dc6sdz5jz533z4q2h7m9hgqvw1r3f57ms6";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [
+    gtk2 alsaLib
+    fftw gsl
+  ];
 }
diff --git a/pkgs/applications/audio/snd/doc.patch b/pkgs/applications/audio/snd/doc.patch
deleted file mode 100644
index 4c40151e988..00000000000
--- a/pkgs/applications/audio/snd/doc.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-diff --git a/index.scm b/index.scm
-index 2148a58..713939c 100644
---- a/index.scm
-+++ b/index.scm
-@@ -18,24 +18,7 @@ and if one is found, and the Snd documentation can be found, calls (html-program
- 	    (lambda (n)
- 	      ;; look for doc on current dir, then html dir, then global dir
- 	      ;; snd.html is what we'll search for
--	      (let ((dir (if (file-exists? "snd.html") 
--			     (getcwd)
--			     (if (and (string? (html-dir))
--				      (file-exists? (string-append (html-dir) "/snd.html")))
--				 (html-dir)
--				 (if (file-exists? "/usr/share/doc/snd-9/snd.html")
--				     "/usr/share/doc/snd-9"
--				     (if (file-exists? "/usr/local/share/doc/snd-9/snd.html")
--					 "/usr/local/share/doc/snd-9"
--					 (if (file-exists? "/usr/doc/snd-9/snd.html")
--					     "/usr/doc/snd-9"
--					     (if (file-exists? "/usr/share/doc/snd-8/snd.html")
--						 "/usr/share/doc/snd-8"
--						 (if (file-exists? "/usr/local/share/doc/snd-8/snd.html")
--						     "/usr/local/share/doc/snd-8"
--						     (if (file-exists? "/usr/doc/snd-8/snd.html")
--							 "/usr/doc/snd-8"
--							 #f))))))))))
-+	      (let (dir "HTML-DIR")
- 		(if dir
- 		    (if (or (string=? (html-program) "netscape")
- 			    (string=? (html-program) "mozilla")
-diff --git a/snd-help.c b/snd-help.c
-index a6557e0..a40a02e 100644
---- a/snd-help.c
-+++ b/snd-help.c
-@@ -3554,26 +3554,7 @@ static char *doc_files[DOC_DIRECTORIES] = {
-   
- static char *html_directory(void)
- {
--  int i;
--  if (mus_file_probe("snd.html"))
--    return(mus_getcwd());
--  if (html_dir(ss))
--    {
--      bool happy;
--      char *hd = NULL;
--      hd = (char *)CALLOC(snd_strlen(html_dir(ss)) + 16, sizeof(char));
--      sprintf(hd, html_dir(ss), "/snd.html");
--      happy = mus_file_probe(hd);
--      FREE(hd);
--      if (happy) return(copy_string(html_dir(ss)));
--    }
--#ifdef MUS_DEFAULT_DOC_DIR
--  if (mus_file_probe(MUS_DEFAULT_DOC_DIR "/snd.html"))
--    return(copy_string(MUS_DEFAULT_DOC_DIR "/snd.html"));
--#endif
--  for (i = 0; i < DOC_DIRECTORIES; i++)
--    if (mus_file_probe(doc_files[i])) return(copy_string(doc_directories[i]));
--  return(NULL);
-+  return (copy_string ("HTML-DIR"));
- }
- 
- 
diff --git a/pkgs/applications/editors/emacs-modes/idris/default.nix b/pkgs/applications/editors/emacs-modes/idris/default.nix
new file mode 100644
index 00000000000..7bd39cd2b4e
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/idris/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "idris-mode-20140106";
+
+  src = fetchgit {
+    url = https://github.com/idris-hackers/idris-mode.git;
+    rev = "47df65dd5b554c1d7cf70a07c3bd06d80867f870";
+    sha256 = "55df66d1bace134bea83f0547e01daf068fc96dc080cf88ea8945ddcb2d08ea4";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs -L . --batch -f batch-byte-compile *.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install *.el *.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Emacs major mode for Idris";
+    homepage = https://github.com/idris-hackers/idris-modehttps://github.com/idris-hackers/idris-mode;
+    license = "GPLv3";
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/yi/yi-contrib.nix b/pkgs/applications/editors/yi/yi-contrib.nix
new file mode 100644
index 00000000000..e2fadcca345
--- /dev/null
+++ b/pkgs/applications/editors/yi/yi-contrib.nix
@@ -0,0 +1,14 @@
+{ cabal, dataAccessor, filepath, mtl, split, yi }:
+
+cabal.mkDerivation (self: {
+  pname = "yi-contrib";
+  version = "0.7.0";
+  sha256 = "12x9ps5yrszr8dlj15kmsm9myq3gzd9x9nacvl3x6cq91wk53mzj";
+  buildDepends = [ dataAccessor filepath mtl split yi ];
+  meta = {
+    homepage = "http://haskell.org/haskellwiki/Yi";
+    description = "Add-ons to Yi, the Haskell-Scriptable Editor";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/applications/editors/yi/yi.nix b/pkgs/applications/editors/yi/yi.nix
new file mode 100644
index 00000000000..4dfc60bef76
--- /dev/null
+++ b/pkgs/applications/editors/yi/yi.nix
@@ -0,0 +1,37 @@
+{ cabal, alex, binary, Cabal, cautiousFile, concreteTyperep
+, dataAccessor, dataAccessorMtl, dataAccessorTemplate, derive, Diff
+, dlist, dyre, filepath, fingertree, ghcPaths, glib, gtk, hashable
+, hint, HUnit, mtl, pango, parsec, pointedlist, pureMD5, QuickCheck
+, random, regexBase, regexTdfa, split, testFramework
+, testFrameworkHunit, time, uniplate, unixCompat
+, unorderedContainers, utf8String, vty, xdgBasedir
+}:
+
+cabal.mkDerivation (self: {
+  pname = "yi";
+  version = "0.7.0";
+  sha256 = "0mzcjgp12k5mxb37r6chxsk726b1qxds49ch656bpgrg7n22w2j1";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    binary Cabal cautiousFile concreteTyperep dataAccessor
+    dataAccessorMtl dataAccessorTemplate derive Diff dlist dyre
+    filepath fingertree ghcPaths glib gtk hashable hint mtl pango
+    parsec pointedlist pureMD5 QuickCheck random regexBase regexTdfa
+    split time uniplate unixCompat unorderedContainers utf8String vty
+    xdgBasedir
+  ];
+  testDepends = [
+    filepath HUnit QuickCheck testFramework testFrameworkHunit
+  ];
+  buildTools = [ alex ];
+  configureFlags = "-fpango";
+  jailbreak = true;
+  doCheck = false;
+  meta = {
+    homepage = "http://haskell.org/haskellwiki/Yi";
+    description = "The Haskell-Scriptable Editor";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/applications/misc/spacefm/default.nix b/pkgs/applications/misc/spacefm/default.nix
new file mode 100644
index 00000000000..fa3423cd8c4
--- /dev/null
+++ b/pkgs/applications/misc/spacefm/default.nix
@@ -0,0 +1,24 @@
+{ pkgs, fetchurl, stdenv, gtk3, udev, desktop_file_utils, shared_mime_info, intltool, pkgconfig }:
+
+let
+  name = "spacefm-${version}";
+  version = "0.9.2";
+
+in stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchurl {
+    url="https://github.com/IgnorantGuru/spacefm/blob/pkg/${version}/${name}.tar.xz?raw=true";
+    sha256 ="3767137d74aa78597ffb42a6121784e91a4276efcd5d718b3793b9790f82268c";
+  };
+
+  buildInputs = [ gtk3 udev desktop_file_utils shared_mime_info intltool pkgconfig ];
+
+  meta = {
+    description = "SpaceFM is a multi-panel tabbed file and desktop manager for Linux with built-in VFS, udev- or HAL-based device manager, customizable menu system, and bash integration.";
+    platforms = pkgs.lib.platforms.linux;
+    license = pkgs.lib.licenses.gpl3;
+  };
+
+}
+
diff --git a/pkgs/applications/misc/xmobar/default.nix b/pkgs/applications/misc/xmobar/default.nix
index 7d4d2715d04..7eacaf15b62 100644
--- a/pkgs/applications/misc/xmobar/default.nix
+++ b/pkgs/applications/misc/xmobar/default.nix
@@ -1,5 +1,5 @@
-{ cabal, filepath, libXrandr, mtl, parsec, regexCompat, stm, time
-, utf8String, wirelesstools, X11, X11Xft
+{ cabal, alsaCore, alsaMixer, filepath, libXrandr, mtl, parsec
+, regexCompat, stm, time, utf8String, wirelesstools, X11, X11Xft
 }:
 
 cabal.mkDerivation (self: {
@@ -9,10 +9,11 @@ cabal.mkDerivation (self: {
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
-    filepath mtl parsec regexCompat stm time utf8String X11 X11Xft
+    alsaCore alsaMixer filepath mtl parsec regexCompat stm time
+    utf8String X11 X11Xft
   ];
   extraLibraries = [ libXrandr wirelesstools ];
-  configureFlags = "-fwith_xft -fwith_iwlib";
+  configureFlags = "-fwith_xft -fwith_iwlib -fwith_alsa";
   meta = {
     homepage = "http://projects.haskell.org/xmobar/";
     description = "A Minimalistic Text Based Status Bar";
diff --git a/pkgs/applications/networking/mailreaders/notmuch/default.nix b/pkgs/applications/networking/mailreaders/notmuch/default.nix
index 5797354d33b..3c7cfde231a 100644
--- a/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -3,11 +3,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "notmuch-0.16";
+  name = "notmuch-0.17";
 
   src = fetchurl {
     url = "http://notmuchmail.org/releases/${name}.tar.gz";
-    sha256 = "0i7k85lfp9l0grmq7cvai2f3pw15jcrhcp96mmamr15y2pn2syg7";
+    sha256 = "15dypk2damyvxgfc8dy6iiky1ayxnj5samd4v300pi9nwpky05fj";
   };
 
   buildInputs = [ bash emacs gdb glib gmime gnupg pkgconfig talloc xapian ];
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index a5ca5e7b488..a57ea9389c6 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -2,14 +2,14 @@
 , geoip, heimdal, lua5, gtk, makeDesktopItem
 }:
 
-let version = "1.10.3"; in
+let version = "1.10.5"; in
 
 stdenv.mkDerivation {
   name = "wireshark-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/wireshark/wireshark-${version}.tar.bz2";
-    sha256 = "1329zph63z5mcij9lp111bh6b2w88z3d40gvjld2rjmhmqv1nr61";
+    sha256 = "1xa1l6z8n1gwnyv5mq4zmyr0afy6s0qpl9wqflg3ipbkjpd908d0";
   };
 
   buildInputs =
diff --git a/pkgs/applications/office/ledger/3.0.nix b/pkgs/applications/office/ledger/3.0.nix
index ecc9f389502..1afa3a979e3 100644
--- a/pkgs/applications/office/ledger/3.0.nix
+++ b/pkgs/applications/office/ledger/3.0.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchgit, cmake, boost, gmp, mpfr, libedit, python, texinfo }:
 
 let
-  rev = "8d38060968";
+  rev = "3b5f496536";
 in
 stdenv.mkDerivation {
   name = "ledger3-2013.12.${rev}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
   src = fetchgit {
     url = "https://github.com/ledger/ledger.git";
     inherit rev;
-    sha256 = "e100f28d18e1804fc8aa8b0141cc33d6d95bbe329e803ba887622ac5f8d3d972";
+    sha256 = "0r36zsdsyy6aylfcwyqra4796y4abi3b27wv5fvk3g2bmyzqzx4j";
   };
 
   buildInputs = [ cmake boost gmp mpfr libedit python texinfo ];
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 b023ac5d160..28b64c118ba 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
@@ -14,8 +14,8 @@
 
 cabal.mkDerivation (self: {
   pname = "git-annex";
-  version = "5.20131221";
-  sha256 = "1gkb8fc0fjjn0rigajgliqy381pmkpx4ha1rx65dcw15rqnrawb3";
+  version = "5.20140108";
+  sha256 = "17j1avmg66lda52p93689n4mas46rfbjdvss1rvmdh10cj7hg8jy";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
@@ -42,12 +42,11 @@ cabal.mkDerivation (self: {
                     -fDNS
                     -fProduction
                     -fTDFA";
-  doCheck = false;
-  installPhase = ''
+  preConfigure = ''
     export HOME="$NIX_BUILD_TOP/tmp"
     mkdir "$HOME"
-    ./Setup install
   '';
+  installPhase = "./Setup install";
   checkPhase = ''
     cp dist/build/git-annex/git-annex git-annex
     ./git-annex test
diff --git a/pkgs/applications/version-management/tailor/default.nix b/pkgs/applications/version-management/tailor/default.nix
index 54529503d82..f8937f39e76 100644
--- a/pkgs/applications/version-management/tailor/default.nix
+++ b/pkgs/applications/version-management/tailor/default.nix
@@ -2,7 +2,10 @@ args : with args;
 let version = if args ? version then args.version else "0.9.35"; in
 rec {
   src = fetchurl {
-    url = "http://darcs.arstecnica.it/tailor/tailor-${version}.tar.gz";
+    urls = [
+      "http://darcs.arstecnica.it/tailor/tailor-${version}.tar.gz"
+      "http://pkgs.fedoraproject.org/repo/pkgs/tailor/tailor-${version}.tar.gz/58a6bc1c1d922b0b1e4579c6440448d1/tailor-${version}.tar.gz"
+    ];
     sha256 = "061acapxxn5ab3ipb5nd3nm8pk2xj67bi83jrfd6lqq3273fmdjh";
   };
 
diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix
index de3e5c98d36..9eee8c2ca4e 100644
--- a/pkgs/applications/virtualization/virt-manager/default.nix
+++ b/pkgs/applications/virtualization/virt-manager/default.nix
@@ -1,16 +1,18 @@
-{ stdenv, fetchurl, pythonPackages, intltool, libvirt, libxml2Python, curl,
-  python, makeWrapper, virtinst, pyGtkGlade, pythonDBus, gnome_python, gtkvnc, vte}:
+{ stdenv, fetchurl, pythonPackages, intltool, libxml2Python, curl, python
+, makeWrapper, virtinst, pyGtkGlade, pythonDBus, gnome_python, gtkvnc, vte
+, spiceSupport ? true, spice_gtk
+}:
 
 with stdenv.lib;
 
-let version = "0.9.1"; in
+let version = "0.9.5"; in
 
 stdenv.mkDerivation rec {
   name = "virt-manager-${version}";
 
   src = fetchurl {
     url = "http://virt-manager.et.redhat.com/download/sources/virt-manager/virt-manager-${version}.tar.gz";
-    sha256 = "15e064167ba5ff84ce6fc8790081d61890430f2967f89886a84095a23e40094a";
+    sha256 = "0gc06cdbq6c2a06l939516lvjii7lr0wng90kqgl1i5q5wlgnajx";
   };
 
   pythonPath = with pythonPackages;
@@ -18,13 +20,13 @@ stdenv.mkDerivation rec {
       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. 
+      # libxml2Python is a dependency of libvirt.py.
       libvirt libxml2Python urlgrabber virtinst pyGtkGlade pythonDBus gnome_python
       gtkvnc vte
-    ];
+    ] ++ optional spiceSupport spice_gtk;
 
   buildInputs =
-    [ pythonPackages.python 
+    [ pythonPackages.python
       pythonPackages.wrapPython
       pythonPackages.mox
       pythonPackages.urlgrabber
@@ -36,7 +38,7 @@ stdenv.mkDerivation rec {
     ] ++ pythonPath;
 
   buildPhase = "make";
-  
+
   nativeBuildInputs = [ makeWrapper pythonPackages.wrapPython ];
 
   # patch the runner script in order to make wrapPythonPrograms work and run the program using a syscall
diff --git a/pkgs/applications/virtualization/virtinst/default.nix b/pkgs/applications/virtualization/virtinst/default.nix
index bb8b7a1d0d9..84600884e7b 100644
--- a/pkgs/applications/virtualization/virtinst/default.nix
+++ b/pkgs/applications/virtualization/virtinst/default.nix
@@ -2,14 +2,14 @@
 
 with stdenv.lib;
 
-let version = "0.600.1"; in
+let version = "0.600.4"; in
 
 stdenv.mkDerivation rec {
   name = "virtinst-${version}";
 
   src = fetchurl {
     url = "http://virt-manager.org/download/sources/virtinst/virtinst-${version}.tar.gz";
-    sha256 = "db342cf93aae1f23df02001bdb0b0cc2c5bf675dca37b4417f5a79bf5a374716";
+    sha256 = "175laiy49dni8hzi0cn14bbsdsigvgr9h6d9z2bcvbpa29spldvf";
   };
 
   pythonPath = with pythonPackages;
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 652b2ed92c1..2ce134090fe 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, lib, iasl, dev86, pam, libxslt, libxml2, libX11, xproto, libXext
-, libXcursor, libXmu, qt4, libIDL, SDL, libcap, zlib, libpng, glib, kernelDev, lvm2
+, libXcursor, libXmu, qt4, libIDL, SDL, libcap, zlib, libpng, glib, kernel, lvm2
 , which, alsaLib, curl, gawk
 , xorriso, makeself, perl, pkgconfig
 , javaBindings ? false, jdk ? null
@@ -52,7 +52,7 @@ let
   };
 
 in stdenv.mkDerivation {
-  name = "virtualbox-${version}-${kernelDev.version}";
+  name = "virtualbox-${version}-${kernel.version}";
 
   src = fetchurl {
     url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
@@ -61,14 +61,14 @@ in stdenv.mkDerivation {
 
   buildInputs =
     [ iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt4 libIDL SDL
-      libcap glib kernelDev lvm2 python alsaLib curl pam xorriso makeself perl
+      libcap glib lvm2 python alsaLib curl pam xorriso makeself perl
       pkgconfig which libXmu ]
     ++ optional javaBindings jdk
     ++ optional pythonBindings python;
 
   prePatch = ''
     set -x
-    MODULES_BUILD_DIR=`echo ${kernelDev}/lib/modules/*/build`
+    MODULES_BUILD_DIR=`echo ${kernel.dev}/lib/modules/*/build`
     sed -e 's@/lib/modules/`uname -r`/build@'$MODULES_BUILD_DIR@ \
         -e 's@MKISOFS --version@MKISOFS -version@' \
         -e 's@PYTHONDIR=.*@PYTHONDIR=${if pythonBindings then python else ""}@' \
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index de38843c7f1..805e0b867d9 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, lib, patchelf, cdrkit, kernelDev, which, makeWrapper
+{ stdenv, fetchurl, lib, patchelf, cdrkit, kernel, which, makeWrapper
 , xorg, dbus, virtualbox }:
 
 let
@@ -8,14 +8,14 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "VirtualBox-GuestAdditions-${version}-${kernelDev.version}";
+  name = "VirtualBox-GuestAdditions-${version}-${kernel.version}";
 
   src = fetchurl {
     url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
     sha256 = "f11a7f13dfe7bf9f246fb877144bb467fe6deadcd876568ec79b6ccd3b59d767";
   };
 
-  KERN_DIR = "${kernelDev}/lib/modules/*/build";
+  KERN_DIR = "${kernel.dev}/lib/modules/*/build";
 
   buildInputs = [ patchelf cdrkit makeWrapper dbus ];
 
@@ -115,7 +115,7 @@ stdenv.mkDerivation {
     for i in *
     do
         cd $i
-        kernelVersion=$(cd ${kernelDev}/lib/modules; ls)
+        kernelVersion=$(cd ${kernel.dev}/lib/modules; ls)
         export MODULE_DIR=$out/lib/modules/$kernelVersion/misc
         find . -type f | xargs sed -i -e "s|-o root||g" \
                                       -e "s|-g root||g"
diff --git a/pkgs/build-support/fetchbower/default.nix b/pkgs/build-support/fetchbower/default.nix
new file mode 100644
index 00000000000..11af6dbedf1
--- /dev/null
+++ b/pkgs/build-support/fetchbower/default.nix
@@ -0,0 +1,9 @@
+{ stdenv, fetch-bower, git }: name: version: target: outputHash: stdenv.mkDerivation {
+  name = "${name}-${version}";
+  realBuilder = "${fetch-bower}/bin/fetch-bower";
+  args = [ name version target ];
+  outputHashMode = "recursive";
+  outputHashAlgo = "sha256";
+  inherit outputHash;
+  PATH = "${git}/bin";
+}
diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git
index 0afae009dc5..8d0de055c75 100755
--- a/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -148,6 +148,12 @@ init_submodules(){
             git config -f .gitmodules --get-regexp submodule\.[^.]*\.path |
             sed -n "s,^\(.*\)\.path $dir\$,\\1,p")
         local url=$(git config -f .gitmodules --get ${name}.url);
+
+        # Get Absolute URL if we have a relative URL
+        if ! echo "$url" | grep '^[a-zA-Z]\+://' >/dev/null 2>&1; then
+          url="$(git config --get remote.origin.url)/$url"
+        fi
+
         clone "$dir" "$url" "$hash" "";
     done;
 }
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 0296c434d6f..4c97da91fd1 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -1467,22 +1467,22 @@ rec {
     debian70x86_64 = debian7x86_64;
 
     debian7i386 = {
-      name = "debian-7.2-wheezy-i386";
-      fullName = "Debian 7.2 Wheezy (i386)";
+      name = "debian-7.3-wheezy-i386";
+      fullName = "Debian 7.3 Wheezy (i386)";
       packagesList = fetchurl {
         url = mirror://debian/dists/wheezy/main/binary-i386/Packages.bz2;
-        sha256 = "2e80242e323f233c40b3020b0f1a57d12df8a120ee82af88ff7032ba4688f97d";
+        sha256 = "037637520ce371a50beb5446fd27a731f30b51bc362c2f4a5dcfce9c7e30ffb6";
       };
       urlPrefix = mirror://debian;
       packages = commonDebianPackages;
     };
 
     debian7x86_64 = {
-      name = "debian-7.2-wheezy-amd64";
-      fullName = "Debian 7.2 Wheezy (amd64)";
+      name = "debian-7.3-wheezy-amd64";
+      fullName = "Debian 7.3 Wheezy (amd64)";
       packagesList = fetchurl {
         url = mirror://debian/dists/wheezy/main/binary-amd64/Packages.bz2;
-        sha256 = "adfc4cd3d3b855c73c9e2e12163a33c193f98c9bad25765080fa6136378a6e3b";
+        sha256 = "c2ed55a2a263d482826c934b97ad910984fa5695ab1c480841741b828d0590a5";
       };
       urlPrefix = mirror://debian;
       packages = commonDebianPackages;
diff --git a/pkgs/desktops/gnome-2/default.nix b/pkgs/desktops/gnome-2/default.nix
index 50fd8344c82..6a8f9d15778 100644
--- a/pkgs/desktops/gnome-2/default.nix
+++ b/pkgs/desktops/gnome-2/default.nix
@@ -107,8 +107,6 @@ let overridden = set // overrides; set = with overridden; {
 
   gtksourceview = callPackage ./desktop/gtksourceview { };
 
-  nautilus = callPackage ./desktop/nautilus { };
-
   gnome_icon_theme = callPackage ./desktop/gnome-icon-theme { };
 
   vte = callPackage ./desktop/vte { };
diff --git a/pkgs/desktops/gnome-2/desktop/nautilus/default.nix b/pkgs/desktops/gnome-2/desktop/nautilus/default.nix
deleted file mode 100644
index 3765e6112d6..00000000000
--- a/pkgs/desktops/gnome-2/desktop/nautilus/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{stdenv, fetchurl, pkgconfig, libxml2, dbus_glib, shared_mime_info, libexif, gtk, gnome_desktop, libunique, intltool, GConf}:
-
-stdenv.mkDerivation {
-  name = "nautilus-2.28.0";
-  src = fetchurl {
-    url = mirror://gnome/sources/nautilus/2.28/nautilus-2.28.0.tar.bz2;
-    sha256 = "0wmskjxf231r2vra22zy02561gh5q10pj3lhzya13dvlliyv4q9p";
-  };
-  buildInputs = [ pkgconfig libxml2 dbus_glib shared_mime_info libexif gtk gnome_desktop libunique intltool GConf ];
-}
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 aaea1b2e966..742036f16b3 100644
--- a/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
+++ b/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
@@ -14,4 +14,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi
                   intltool dbus_glib at_spi2_core libSM ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
 }
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 30b2367a5e9..2c401856b7f 100644
--- a/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
+++ b/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
@@ -19,6 +19,10 @@ stdenv.mkDerivation (rec {
 
   # ToDo: on non-NixOS we create a symlink from there?
   configureFlags = "--with-dbus-daemondir=/run/current-system/sw/bin/";
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
 }
   // stdenv.lib.optionalAttrs stdenv.isDarwin {
     NIX_LDFLAGS = "-lintl";
diff --git a/pkgs/desktops/gnome-3/core/dconf/default.nix b/pkgs/desktops/gnome-3/core/dconf/default.nix
new file mode 100644
index 00000000000..4ee8143bb2b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/dconf/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, vala, libxslt, pkgconfig, glib, dbus_glib, gnome3
+, libxml2, intltool, docbook_xsl_ns, docbook_xsl }:
+
+stdenv.mkDerivation rec {
+  name = "dconf-${version}";
+  version = "0.18.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/dconf/0.18/${name}.tar.xz";
+    sha256 = "0mf921pnkhs8xn1dr2wxfq277vjsbkpl9cccv0gaz4460z31p6qh";
+  };
+
+  buildInputs = [ vala libxslt pkgconfig glib dbus_glib gnome3.gtk libxml2
+                  intltool docbook_xsl docbook_xsl_ns ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/eog/default.nix b/pkgs/desktops/gnome-3/core/eog/default.nix
new file mode 100644
index 00000000000..d117964b196
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/eog/default.nix
@@ -0,0 +1,28 @@
+{ fetchurl, stdenv, intltool, pkgconfig, itstool, libxml2, libjpeg, gnome3
+, shared_mime_info, makeWrapper, librsvg, libexif }:
+
+
+stdenv.mkDerivation rec {
+  name = "eog-3.10.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/eog/3.10/${name}.tar.xz";
+    sha256 = "0qs7wmn987vd0cw8w16gmb0bnda3nkcwfg1q343l4rm6kih9ik2w";
+  };
+
+  buildInputs = with gnome3;
+    [ intltool pkgconfig itstool libxml2 libjpeg gtk glib libpeas makeWrapper librsvg
+      gsettings_desktop_schemas shared_mime_info gnome_icon_theme gnome_desktop libexif ];
+
+  postInstall = ''
+    wrapProgram "$out/bin/eog" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix XDG_DATA_DIRS : "${shared_mime_info}/share:${gnome3.gnome_icon_theme}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Apps/EyeOfGnome; 
+    platforms = platforms.linux;
+    description = "GNOME image viewer";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
index b4e2171dd38..42b3eaa9c0a 100644
--- a/pkgs/desktops/gnome-3/core/evince/default.nix
+++ b/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -1,27 +1,26 @@
 { fetchurl, stdenv, pkgconfig, intltool, perl, perlXMLParser, libxml2
-, glib, gtk3, pango, atk, gdk_pixbuf, shared_mime_info
-, itstool, gnome_icon_theme, libgnome_keyring, gsettings_desktop_schemas
-, poppler, ghostscriptX, djvulibre, libspectre
-, makeWrapper #, python /*just for tests*/
-, recentListSize ? null # 5 is not enough, allow passing a different number
+, 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
 }:
 
 stdenv.mkDerivation rec {
-  name = "evince-3.6.1";
+  name = "evince-3.10.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/evince/3.6/${name}.tar.xz";
-    sha256 = "1da1pij030dh8mb0pr0jnyszgsbjnh8lc17rj5ii52j3kmbv51qv";
+    url = "mirror://gnome/sources/evince/3.10/${name}.tar.xz";
+    sha256 = "1bz9ypsvlfw1vgs7i5glba1h1n6c90f0d1g64linhg6xjcxcq3dk";
   };
 
   buildInputs = [
     pkgconfig intltool perl perlXMLParser libxml2
     glib gtk3 pango atk gdk_pixbuf
-    itstool gnome_icon_theme libgnome_keyring gsettings_desktop_schemas
+    itstool gnome3.gnome_icon_theme gnome3.libgnome_keyring gnome3.gsettings_desktop_schemas
     poppler ghostscriptX djvulibre libspectre
-    makeWrapper
+    makeWrapper libsecret
   ];
 
+
   preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
 
   configureFlags = [
@@ -44,11 +43,12 @@ stdenv.mkDerivation rec {
     # Tell Glib/GIO about the MIME info directory, which is used
     # by `g_file_info_get_content_type ()'.
     wrapProgram "$out/bin/evince" \
-      --prefix XDG_DATA_DIRS : "${shared_mime_info}/share:$out/share"
-  '' + gsettings_desktop_schemas.doCompileSchemas;
+      --set GDK_PIXBUF_MODULE_FILE ${librsvg}/lib/gdk-pixbuf/loaders.cache \
+      --prefix XDG_DATA_DIRS : "${gnome3.gnome_icon_theme}/share:${gnome3.gsettings_desktop_schemas}/share:${shared_mime_info}/share:$out/share"
+  '';
   doCheck = false; # would need pythonPackages.dogTail, which is missing
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://www.gnome.org/projects/evince/;
     description = "GNOME's document viewer";
 
@@ -60,5 +60,6 @@ stdenv.mkDerivation rec {
     '';
 
     license = "GPLv2+";
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/desktops/gnome-3/core/gconf/default.nix b/pkgs/desktops/gnome-3/core/gconf/default.nix
index 9ca9c227d58..fc7471019bd 100644
--- a/pkgs/desktops/gnome-3/core/gconf/default.nix
+++ b/pkgs/desktops/gnome-3/core/gconf/default.nix
@@ -4,7 +4,7 @@
 stdenv.mkDerivation rec {
 
   versionMajor = "3.2";
-  versionMinor = "5";
+  versionMinor = "6";
   moduleName   = "GConf";
 
   origName = "${moduleName}-${versionMajor}.${versionMinor}";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${origName}.tar.xz";
-    sha256 = "1ijqks0jxc4dyfxg4vnbqds4aj6miyahlsmlqlkf2bi1798akpjd";
+    sha256 = "0k3q9nh53yhc9qxf1zaicz4sk8p3kzq4ndjdsgpaa2db0ccbj4hr";
   };
 
   buildInputs = [ libxml2 polkit gtk orbit ];
@@ -22,8 +22,9 @@ stdenv.mkDerivation rec {
 
   # ToDo: ldap reported as not found but afterwards reported as supported
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://projects.gnome.org/gconf/;
     description = "A system for storing application preferences";
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/desktops/gnome-3/core/gcr/default.nix b/pkgs/desktops/gnome-3/core/gcr/default.nix
index 44053b88fbc..7b7588b9528 100644
--- a/pkgs/desktops/gnome-3/core/gcr/default.nix
+++ b/pkgs/desktops/gnome-3/core/gcr/default.nix
@@ -2,11 +2,11 @@
 , libgcrypt, libtasn1, dbus_glib, gtk, pango, gdk_pixbuf, atk }:
 
 stdenv.mkDerivation rec {
-  name = "gcr-3.6.2";
+  name = "gcr-3.10.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gcr/3.6/${name}.tar.xz";
-    sha256 = "16xyqxv2hxl3a4m8ahilqcf1ps58w1ijh8dav1l5nqz36ljdn2gp";
+    url = "mirror://gnome/sources/gcr/3.10/${name}.tar.xz";
+    sha256 = "0nv470a8cvw4rw49hf5aqvll1rpkacmsr3pj8s1l205yaid4yvq0";
   };
 
   buildInputs = [
@@ -14,7 +14,11 @@ stdenv.mkDerivation rec {
     libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk
   ];
 
-  configureFlags = "--disable-introspection";
+  configureFlags = [ "--disable-introspection" ];
 
   #doCheck = true;
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/desktops/gnome-3/core/gdm/default.nix b/pkgs/desktops/gnome-3/core/gdm/default.nix
new file mode 100644
index 00000000000..2955c5f399b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gdm/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, glib, itstool, libxml2, intltool, accountservice, libX11
+, gtk, libcanberra_gtk3, pam, libtool
+}:
+
+stdenv.mkDerivation rec {
+  name = "gdm-3.10.0.1";
+
+  src = fetchurl {
+    url = "http://ftp.acc.umu.se/pub/GNOME/core/3.10/3.10.2/sources/${name}.tar.xz";
+    sha256 = "1rva3djas48m8w1gyv3nds3jxfkirdfl0bk30x79mizrk80456jl";
+  };
+
+  buildInputs = [ pkgconfig glib itstool libxml2 intltool accountservice libX11 gtk libcanberra_gtk3 pam libtool ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix b/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix
index 303bcd2208c..474a2ccb9a4 100644
--- a/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix
@@ -1,12 +1,16 @@
 { stdenv, fetchurl, pkgconfig, intltool, iconnamingutils, gtk }:
 
 stdenv.mkDerivation rec {
-  name = "gnome-icon-theme-3.6.2";
+  name = "gnome-icon-theme-3.10.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-icon-theme/3.6/${name}.tar.xz";
-    sha256 = "0i8hkx2c1g5ckrvbkvs9n47i8fby8p9xs6p5l0mxdx9aq4smak9i";
+    url = "mirror://gnome/sources/gnome-icon-theme/3.10/${name}.tar.xz";
+    sha256 = "1xinbgkkvlhazj887ajcl13i7kdc1wcca02jwxzvjrvchjsp4m66";
   };
 
   nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk ];
+
+  meta = with stdenv.lib; {
+    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 9e08c6fa663..14f0110e374 100644
--- a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
@@ -1,12 +1,13 @@
-{stdenv, fetchurl, pkgconfig, dbus, libgcrypt, libtasn1, pam, python, glib
-, gtk3, intltool, gconf, libgnome_keyring, pango, gcr, gdk_pixbuf, atk, p11_kit }:
+{ stdenv, fetchurl, pkgconfig, dbus, libgcrypt, libtasn1, pam, python, glib, libxslt
+, gtk3, intltool, gconf, libgnome_keyring, pango, gcr, gdk_pixbuf, atk, p11_kit
+, docbook_xsl_ns, docbook_xsl }:
 
 stdenv.mkDerivation rec {
-  name = "gnome-keyring-3.6.3";
+  name = "gnome-keyring-3.10.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-keyring/3.6/${name}.tar.xz";
-    sha256 = "0la107v75vh8v165lk391xg820h8hxa209766wr98pm22qzkl5g0";
+    url = "mirror://gnome/sources/gnome-keyring/3.10/${name}.tar.xz";
+    sha256 = "1y6v2p14jx5h6yh14c53pd8r0r5zbmcgw8v4nxvf94kd9jliy00q";
   };
 
   buildInputs = [
@@ -14,13 +15,17 @@ stdenv.mkDerivation rec {
     pango gcr gdk_pixbuf atk p11_kit
   ];
 
-  propagatedBuildInputs = [ glib libtasn1 ];
+  propagatedBuildInputs = [ glib libtasn1 libxslt ];
 
-  nativeBuildInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool docbook_xsl_ns docbook_xsl ];
 
   configureFlags = [
     "--with-ca-certificates=/etc/ssl/certs/ca-bundle.crt" # NixOS hardcoded path
     "--with-pkcs11-config=$$out/etc/pkcs11/" # installation directories
     "--with-pkcs11-modules=$$out/lib/pkcs11/"
   ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix b/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
new file mode 100644
index 00000000000..3040d817a16
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, glib, libxslt, gtk, webkitgtk, json_glib, rest, libsecret, dbus_glib
+, telepathy_glib, intltool, dbus_libs, icu, libsoup, docbook_xsl_ns, docbook_xsl
+}:
+
+stdenv.mkDerivation rec {
+  name = "gnome-online-accounts-3.10.2";
+
+  src = fetchurl {
+    url = "http://ftp.acc.umu.se/pub/GNOME/core/3.10/3.10.2/sources/${name}.tar.xz";
+    sha256 = "15qvw40dmi886491s3abpidsm2lx65fhglhj99bvcdskhk0ih90b";
+  };
+
+  NIX_CFLAGS_COMPILE = "-I${dbus_glib}/include/dbus-1.0 -I${dbus_libs}/include/dbus-1.0";
+
+  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; {
+    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
new file mode 100644
index 00000000000..40426986182
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
@@ -0,0 +1,29 @@
+{ fetchurl, stdenv, pkgconfig, gnome3, glib, dbus_glib, json_glib, upower
+, libxslt, intltool, makeWrapper }:
+
+
+stdenv.mkDerivation rec {
+  name = "gnome-session-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-session/3.10/${name}.tar.xz";
+    sha256 = "1k59yss7r748nvr0cdjrqmx0zy26b93rfn66lsdg9fz60x77087n";
+  };
+
+  buildInputs = with gnome3;
+    [ pkgconfig glib gnome_desktop gtk dbus_glib json_glib libxslt 
+      gsettings_desktop_schemas upower intltool gconf makeWrapper ];
+
+  # TODO: dbus, gnome-shell, gnome-settings-daemon
+
+  postInstall = ''
+    wrapProgram "$out/bin/gnome-session" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix XDG_DATA_DIRS : "${gnome3.gsettings_desktop_schemas}/share:$out/share"
+  '';
+
+  meta = with stdenv.lib; {
+    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 41fdcc8086b..281f985c121 100644
--- a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -1,20 +1,25 @@
-{ stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango
-, gnome_doc_utils, intltool, libX11, which, gconf }:
+{ stdenv, fetchurl, pkgconfig, cairo, libxml2, gnome3, pango
+, gnome_doc_utils, intltool, libX11, which, gconf, libuuid
+, desktop_file_utils, itstool, ncurses }:
 
 stdenv.mkDerivation rec {
 
-  versionMajor = "3.4";
-  versionMinor = "1.1";
+  versionMajor = "3.10";
+  versionMinor = "2";
 
   name = "gnome-terminal-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-terminal/${versionMajor}/${name}.tar.xz";
-    sha256 = "1p9zqjmkxryf2kyghhhwwpsh4kd8y1jzzwc9zxghmpxszi9a5m0l";
+    sha256 = "04yrk9531f373nl64jx3pczsnq7a56mj3n436jbhjp74kp12fa70";
   };
 
-  configureFlags = "--disable-scrollkeeper";
-  buildInputs = [ gnome3.gtk gnome3.gsettings_desktop_schemas gnome3.vte gconf ];
+  buildInputs = [ gnome3.gtk gnome3.gsettings_desktop_schemas gnome3.vte
+                  gnome3.dconf gnome3.gconf itstool ncurses ];
 
-  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ];
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libuuid libxml2 desktop_file_utils ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/misc/themes/gnome-themes-standard/default.nix b/pkgs/desktops/gnome-3/core/gnome-themes-standard/default.nix
index f52b94138a4..8faae4d2148 100644
--- a/pkgs/misc/themes/gnome-themes-standard/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-themes-standard/default.nix
@@ -1,9 +1,10 @@
 { stdenv, fetchurl, intltool, gtk3, librsvg, pkgconfig, pango, atk, gtk2, gdk_pixbuf }:
-stdenv.mkDerivation {
-  name = "gnome-themes-standard";
+
+stdenv.mkDerivation rec {
+  name = "gnome-themes-standard-3.10.0";
   src = fetchurl {
-    url = "http://ftp.gnome.org/pub/GNOME/sources/gnome-themes-standard/3.7/gnome-themes-standard-3.7.92.tar.xz";
-    sha256 = "0a1ed83c07f57b5b45b8f3817ca0ca14feecb56de505243c086fb306c88da8de";
+    url = "mirror://gnome/sources/gnome-themes-standard/3.10/${name}.tar.xz";
+    sha256 = "0f2b3ypkfvrdsxcvp14ja9wqj382f1p46yrjvhhxkkjgagy6qb41";
   };
   
   buildInputs = [ intltool gtk3 librsvg pkgconfig pango atk gtk2 gdk_pixbuf ];
@@ -12,4 +13,8 @@ stdenv.mkDerivation {
     cat ${gdk_pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache ${librsvg}/lib/gdk-pixbuf/loaders.cache > loaders.cache
     export GDK_PIXBUF_MODULE_FILE=`readlink -e loaders.cache`
   '';
-}
\ No newline at end of file
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
index 9c13539a1cc..13f357db29a 100644
--- a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
+++ b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib
+{ stdenv, fetchurl, pkgconfig, intltool, glib, gobjectIntrospection
   # just for passthru
 , gtk3, gsettings_desktop_schemas }:
 
 stdenv.mkDerivation rec {
 
-  versionMajor = "3.6";
+  versionMajor = "3.10";
   versionMinor = "1";
   moduleName   = "gsettings-desktop-schemas";
 
@@ -12,10 +12,10 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "1rk71q2rky9nzy0zb5jsvxa62vhg7dk65kdgdifq8s761797ga6r";
+    sha256 = "04b8wy10l6pzs5928gnzaia73dz5fjlcdy39xi3mf50ajv27h8s5";
   };
 
-  buildInputs = [ glib ];
+  buildInputs = [ glib gobjectIntrospection ];
 
   nativeBuildInputs = [ pkgconfig intltool ];
 
diff --git a/pkgs/desktops/gnome-3/core/libcroco/default.nix b/pkgs/desktops/gnome-3/core/libcroco/default.nix
index 2cf785b8cca..e5f6a0aa9b8 100644
--- a/pkgs/desktops/gnome-3/core/libcroco/default.nix
+++ b/pkgs/desktops/gnome-3/core/libcroco/default.nix
@@ -11,4 +11,8 @@ stdenv.mkDerivation rec {
   configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic";
 
   buildInputs = [ pkgconfig libxml2 glib ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/desktops/gnome-3/core/libgee/default.nix b/pkgs/desktops/gnome-3/core/libgee/default.nix
new file mode 100644
index 00000000000..2775e87720c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/libgee/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, autoconf, vala, pkgconfig, glib, gobjectIntrospection }:
+
+stdenv.mkDerivation rec {
+  name = "libgee-0.13.4";
+
+  src = fetchurl {
+    url = "https://download.gnome.org/sources/libgee/0.13/${name}.tar.xz";
+    sha256 = "1gzyx8gy5m6r8km3xbb1kszz0v3p9vsbzwb78pf3fw122gwbjj4k";
+  };
+
+  patches = [ ./fix_introspection_paths.patch ];
+
+  buildInputs = [ autoconf vala pkgconfig glib gobjectIntrospection ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/libgee/fix_introspection_paths.patch b/pkgs/desktops/gnome-3/core/libgee/fix_introspection_paths.patch
new file mode 100644
index 00000000000..67003f45164
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/libgee/fix_introspection_paths.patch
@@ -0,0 +1,13 @@
+--- fix_introspection_paths.patch/configure	2014-01-07 17:43:53.521339338 +0000
++++ fix_introspection_paths.patch/configure-fix	2014-01-07 17:45:11.068635069 +0000
+@@ -12085,8 +12085,8 @@
+        INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
+        INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+        INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+-       INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
+-       INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
++       INTROSPECTION_GIRDIR="${datadir}/gir-1.0"
++       INTROSPECTION_TYPELIBDIR="${libdir}/girepository-1.0"
+        INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+        INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+        INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
diff --git a/pkgs/desktops/gnome-3/core/libgweather/default.nix b/pkgs/desktops/gnome-3/core/libgweather/default.nix
index 78ae94c1a33..62ae5964365 100644
--- a/pkgs/desktops/gnome-3/core/libgweather/default.nix
+++ b/pkgs/desktops/gnome-3/core/libgweather/default.nix
@@ -2,13 +2,20 @@
 , pango, gdk_pixbuf, atk }:
 
 stdenv.mkDerivation rec {
-  name = "libgweather-3.6.2";
+  name = "libgweather-3.10.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libgweather/3.6/${name}.tar.xz";
-    sha256 = "1c50m0zrnfh4g58rzf33dfw8ggslj38c61p8a75905bmj3rfyahg";
+    url = "mirror://gnome/sources/libgweather/3.10/${name}.tar.xz";
+    sha256 = "1iyg0l90m14iw0ksjbmrrhb5fqn0y7x5f726y56gxd4qcxgpi3mf";
   };
+
+  makeFlags = "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/ INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0";
+
   configureFlags = if stdenv ? glibc then "--with-zoneinfo-dir=${stdenv.glibc}/share/zoneinfo" else "";
   propagatedBuildInputs = [ libxml2 gtk libsoup gconf pango gdk_pixbuf atk ];
   nativeBuildInputs = [ pkgconfig intltool ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/desktops/gnome-3/core/libgxps/default.nix b/pkgs/desktops/gnome-3/core/libgxps/default.nix
new file mode 100644
index 00000000000..72d307f4f1a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/libgxps/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, glib, cairo, libarchive, freetype, libjpeg, libtiff
+, openssl, bzip2, acl, attr
+}:
+
+stdenv.mkDerivation rec {
+  name = "libgxps-0.2.2";
+
+  src = fetchurl {
+    url = "http://ftp.acc.umu.se/pub/GNOME/core/3.10/3.10.2/sources/${name}.tar.xz";
+    sha256 = "1gi0b0x0354jyqc48vspk2hg2q1403cf2p9ibj847nzhkdrh9l9r";
+  };
+
+  buildInputs = [ pkgconfig glib cairo libarchive freetype libjpeg libtiff acl openssl bzip2 attr];
+
+  configureFlags = "--without-liblcms2";
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/libpeas/default.nix b/pkgs/desktops/gnome-3/core/libpeas/default.nix
new file mode 100644
index 00000000000..eeec43a1b65
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/libpeas/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, intltool, gobjectIntrospection }:
+
+stdenv.mkDerivation rec {
+  name = "libpeas-${version}";
+  version = "1.9.0";
+
+  buildInputs = with gnome3; [ intltool pkgconfig glib gobjectIntrospection gtk3 ];
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libpeas/1.9/${name}.tar.xz";
+    sha256 = "13fzyzv6c0cfdj83z1s16lv8k997wpnzyzr0wfwcfkcmvz64g1q0";
+  };
+
+  preFixup = ''
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/core/libqmi/default.nix b/pkgs/desktops/gnome-3/core/libqmi/default.nix
new file mode 100644
index 00000000000..beb63f80b80
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/libqmi/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl, pkgconfig, glib, python }:
+
+stdenv.mkDerivation rec {
+  name = "libqmi-1.0";
+
+  src = fetchurl {
+    url = "http://ftp.acc.umu.se/pub/GNOME/core/3.10/3.10.2/sources/${name}.tar.xz";
+    sha256 = "0w4cd7nihp73frh3sfi13fx0rkwmd581xpil54bsjc7pw7z01bd1";
+  };
+
+  buildInputs = [ pkgconfig glib python ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/libzapojit/default.nix b/pkgs/desktops/gnome-3/core/libzapojit/default.nix
new file mode 100644
index 00000000000..e0e4c02c084
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/libzapojit/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl, pkgconfig, glib, intltool, json_glib, rest, libsoup, gtk, gnome_online_accounts }:
+
+stdenv.mkDerivation rec {
+  name = "libzapojit-0.0.3";
+
+  src = fetchurl {
+    url = "http://ftp.acc.umu.se/pub/GNOME/core/3.10/3.10.2/sources/${name}.tar.xz";
+    sha256 = "0zn3s7ryjc3k1abj4k55dr2na844l451nrg9s6cvnnhh569zj99x";
+  };
+
+  buildInputs = [ pkgconfig glib intltool json_glib rest libsoup gtk gnome_online_accounts ];
+
+  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
new file mode 100644
index 00000000000..551b9db1246
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/nautilus/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, dbus_glib, shared_mime_info, libexif
+, gtk, gnome3, libunique, intltool, gobjectIntrospection
+, libnotify, makeWrapper, exempi }:
+
+stdenv.mkDerivation rec {
+  name = "nautilus-3.10.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/nautilus/3.10/${name}.tar.xz";
+    sha256 = "09y7dxaw4bjgan3q10azky0h6kndqv2lfn75iip12zchf2hk59gn";
+  };
+
+  configureFlags = [ "--enable-tracker=no" ];
+
+  buildInputs = [ pkgconfig libxml2 dbus_glib shared_mime_info libexif gtk libunique intltool exempi 
+                  gnome3.gnome_desktop gnome3.gsettings_desktop_schemas libnotify makeWrapper ];
+
+  postInstall = ''
+    wrapProgram "$out/bin/nautilus" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix XDG_DATA_DIRS : "${gtk}/share:${gnome3.gnome_icon_theme}:${gnome3.gsettings_desktop_schemas}/share:$out/share"
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/rest/default.nix b/pkgs/desktops/gnome-3/core/rest/default.nix
new file mode 100644
index 00000000000..f543f8e13b8
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/rest/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, glib, libsoup, gobjectIntrospection }:
+
+stdenv.mkDerivation rec {
+  name = "rest-0.7.90";
+
+  src = fetchurl {
+    url = "http://ftp.acc.umu.se/pub/GNOME/core/3.10/3.10.2/sources/${name}.tar.xz";
+    sha256 = "08n0cvz44l4b1gkmjryap3ysd0wcbbbdjbcar73nr52dmk52ls0x";
+  };
+
+  buildInputs = [ pkgconfig glib libsoup gobjectIntrospection];
+
+  configureFlags = "--with-ca-certificates=/etc/ssl/certs/ca-bundle.crt";
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/vte/default.nix b/pkgs/desktops/gnome-3/core/vte/default.nix
index ffc3aab8706..b0e522c0f29 100644
--- a/pkgs/desktops/gnome-3/core/vte/default.nix
+++ b/pkgs/desktops/gnome-3/core/vte/default.nix
@@ -3,15 +3,15 @@
 
 stdenv.mkDerivation rec {
 
-  versionMajor = "0.32";
-  versionMinor = "2";
+  versionMajor = "0.34";
+  versionMinor = "9";
   moduleName   = "vte";
   
   name = "${moduleName}-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "0sj837b9ib36gx00hzdinv23f7w91fd5mcw1p6wdi053yxqw17nn";
+    sha256 = "1q93dsxg56f57mxblmh8kn4v9kyc643j2pjf1j3mn2kxypnwaf3g";
   };
 
   buildInputs = [ intltool pkgconfig gnome3.glib gnome3.gtk ncurses ] ++
diff --git a/pkgs/desktops/gnome-3/core/zenity/default.nix b/pkgs/desktops/gnome-3/core/zenity/default.nix
index 18b91d4f61e..366088c6729 100644
--- a/pkgs/desktops/gnome-3/core/zenity/default.nix
+++ b/pkgs/desktops/gnome-3/core/zenity/default.nix
@@ -1,20 +1,23 @@
 { stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango
-, gnome_doc_utils, intltool, libX11, which }:
+, gnome_doc_utils, intltool, libX11, which, itstool }:
 
 stdenv.mkDerivation rec {
 
-  versionMajor = "3.4";
+  versionMajor = "3.8";
   versionMinor = "0";
 
   name = "zenity-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/zenity/${versionMajor}/zenity-${versionMajor}.${versionMinor}.tar.xz";
-    sha256 = "1bqbfcvd3kj2xk15fvbcdaqvyg9qvymlhn8cwvg5m6v4gicniw2w";
+    sha256 = "0gsnwvhsqqba5i6d4jh86j29q4q18hmvhj9c1v76vwlj2nvz1ywl";
   };
 
-  configureFlags = "--disable-scrollkeeper";
-  buildInputs = [ gnome3.gtk libxml2 libxslt libX11 ];
+  buildInputs = [ gnome3.gtk libxml2 libxslt libX11 itstool ];
 
   nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index d214a44aa0a..2b3f95b20c8 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -10,7 +10,7 @@ rec {
 #### Overrides of libraries
 
   librsvg = pkgs.librsvg.override { inherit gtk2; }; # gtk2 mysteriously needed in librsvg for goffice (commented in Gentoo)
-
+  libsoup = pkgs.libsoup_2_44;
 
 #### Core (http://ftp.acc.umu.se/pub/GNOME/core/)
 
@@ -18,12 +18,16 @@ rec {
 
   at_spi2_core = callPackage ./core/at-spi2-core { };
 
+  dconf = callPackage ./core/dconf { };
+
   evince = callPackage ./core/evince { }; # ToDo: dbus would prevent compilation, enable tests
 
   gconf = callPackage ./core/gconf { };
 
   gcr = callPackage ./core/gcr { }; # ToDo: tests fail
 
+  gdm = callPackage ./core/gdm { };
+
   gnome_icon_theme = callPackage ./core/gnome-icon-theme { };
 
   gnome-menus = callPackage ./core/gnome-menus { };
@@ -31,16 +35,38 @@ rec {
   gnome_keyring = callPackage ./core/gnome-keyring { };
   libgnome_keyring = callPackage ./core/libgnome-keyring { };
 
+  gnome_online_accounts = callPackage ./core/gnome-online-accounts { };
+
+  gnome_session = callPackage ./core/gnome-session { };
+
   gnome_terminal = callPackage ./core/gnome-terminal { };
 
+  gnome_themes_standard = callPackage ./core/gnome-themes-standard { };
+
   gsettings_desktop_schemas = callPackage ./core/gsettings-desktop-schemas { };
 
   gvfs = pkgs.gvfs.override { gnome = pkgs.gnome3; };
 
+  eog = callPackage ./core/eog { };
+
   libcroco = callPackage ./core/libcroco {};
 
+  libgee = callPackage ./core/libgee { };
+
+  libgxps = callPackage ./core/libgxps { };
+
+  libpeas = callPackage ./core/libpeas {};
+
+  libqmi = callPackage ./core/libqmi {};
+
   libgweather = callPackage ./core/libgweather { };
 
+  libzapojit = callPackage ./core/libzapojit { };
+
+  nautilus = callPackage ./core/nautilus { };
+
+  rest = callPackage ./core/rest { };
+
   vte = callPackage ./core/vte { };
 
   zenity = callPackage ./core/zenity { };
@@ -48,13 +74,13 @@ rec {
 
 #### Apps (http://ftp.acc.umu.se/pub/GNOME/apps/)
 
+  file-roller = callPackage ./desktop/file-roller { };
+
   gnome_dictionary = callPackage ./desktop/gnome-dictionary { };
 
   gnome_desktop = callPackage ./desktop/gnome-desktop { };
 
-
-  # Removed from recent GNOME releases, but still required
-  scrollkeeper = callPackage ./desktop/scrollkeeper { };
+  gtksourceview = callPackage ./desktop/gtksourceview { };
 
   # scrollkeeper replacement
   rarian = callPackage ./desktop/rarian { };
@@ -64,4 +90,8 @@ rec {
 
   goffice = callPackage ./misc/goffice { };
 
+  gitg = callPackage ./misc/gitg { };
+
+  libgit2-glib = callPackage ./misc/libgit2-glib { automake = pkgs.automake111x; };
+
 }
diff --git a/pkgs/desktops/gnome-3/desktop/file-roller/default.nix b/pkgs/desktops/gnome-3/desktop/file-roller/default.nix
new file mode 100644
index 00000000000..0f48103c93d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/file-roller/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, glib, pkgconfig, gnome3, intltool, itstool, libxml2, libarchive
+, attr, bzip2, acl, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "file-roller-${version}";
+
+  majVersion = "3.10";
+  version = "${majVersion}.2.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/file-roller/${majVersion}/${name}.tar.xz";
+    sha256 = "14374z1yfbjlgpl4k1ih8b35x8kzvh99y22rwwkc2wfz0d0i1qgx";
+  };
+
+  # TODO: support nautilus
+  # it tries to create {nautilus}/lib/nautilus/extensions-3.0/libnautilus-fileroller.so
+
+  buildInputs = [ glib pkgconfig gnome3.gtk intltool itstool libxml2 libarchive
+                  attr bzip2 acl makeWrapper ];
+
+  postInstall = ''
+    wrapProgram "$out/bin/file-roller" \
+      --prefix XDG_DATA_DIRS : "${gnome3.gtk}/share:$out/share"
+  '';
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix
index 1f0b6c2a971..584705d658e 100644
--- a/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix
+++ b/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix
@@ -1,20 +1,27 @@
-{ stdenv, fetchurl, pkgconfig, python, libxml2Python, libxslt, which, libX11, gnome3
-, intltool, gnome_doc_utils }:
+{ stdenv, fetchurl, pkgconfig, python, libxml2Python, libxslt, which, libX11, gnome3, gtk3, glib
+, intltool, gnome_doc_utils, libxkbfile, xkeyboard_config, isocodes, itstool, wayland
+, gobjectIntrospection }:
 
 stdenv.mkDerivation rec {
 
-  majorVersion = "3.5";
-  minorVersion = "3";
+  majorVersion = "3.10";
+  minorVersion = "1";
   name = "gnome-desktop-${majorVersion}.${minorVersion}";
 
+  # this should probably be setuphook for glib
+  NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0";
+
   enableParallelBuilding = true;
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-desktop/${majorVersion}/${name}.tar.xz";
-    sha256 = "1nrqcp1p5cxhfjjy5hjpvkqmzsgl2353a08fg0b11c932v95bsba";
+    sha256 = "0hdvm909lbpnixqv11qdx9iaycx4dpxys46fa128bqp8alisgb0h";
   };
 
-  configureFlags = "--disable-scrollkeeper";
-  buildInputs = [ pkgconfig python libxml2Python libxslt which libX11
-                  gnome3.gtk gnome3.glib intltool gnome_doc_utils ];
+  buildInputs = [ pkgconfig python libxml2Python libxslt which libX11 xkeyboard_config isocodes itstool wayland
+                  gtk3 glib intltool gnome_doc_utils libxkbfile gnome3.gsettings_desktop_schemas gobjectIntrospection ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix
index 7a1ab5b1505..3e952f99eb0 100644
--- a/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix
+++ b/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix
@@ -1,15 +1,20 @@
 { stdenv, fetchurl, pkgconfig, gnome3, gnome_doc_utils, intltool, which
-, libxml2, libxslt }:
+, libxml2, libxslt, itstool }:
 
 stdenv.mkDerivation rec {
-  version = "3.5.2";
+  version = "3.10.0";
   name = "gnome-dictionary-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-dictionary/3.5/${name}.tar.xz";
-    sha256 = "1cq32csxn27vir5nlixx337ym2nal9ykq3s1j7yynh2adh4m0jil";
+    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 gnome3.scrollkeeper ];
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libxml2 libxslt itstool ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+
 }
diff --git a/pkgs/desktops/gnome-3/desktop/gtksourceview/default.nix b/pkgs/desktops/gnome-3/desktop/gtksourceview/default.nix
new file mode 100644
index 00000000000..900bb2c922b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/gtksourceview/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, atk, cairo, glib, gtk3, pango
+, libxml2Python, perl, intltool, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "gtksourceview-${version}";
+  version = "3.10.1";
+
+  src = fetchurl {
+    url = "https://download.gnome.org/sources/gtksourceview/3.10/gtksourceview-${version}.tar.xz";
+    sha256 = "008bzfr1s6ywpj8c8qx7495lz9g0ziccwbxg88s0l4dl6bw49piq";
+  };
+
+  buildInputs = [ pkgconfig atk cairo glib gtk3 pango
+                  libxml2Python perl intltool gettext ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/desktop/rarian/default.nix b/pkgs/desktops/gnome-3/desktop/rarian/default.nix
index 77a2b710f44..a1b38b21869 100644
--- a/pkgs/desktops/gnome-3/desktop/rarian/default.nix
+++ b/pkgs/desktops/gnome-3/desktop/rarian/default.nix
@@ -6,6 +6,11 @@ stdenv.mkDerivation rec {
     url = "mirror://gnome/sources/rarian/0.8/${name}.tar.bz2";
     sha256 = "aafe886d46e467eb3414e91fa9e42955bd4b618c3e19c42c773026b205a84577";
   };
+
   buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt];
   configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat";
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix b/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix
deleted file mode 100644
index 97dcbf4e004..00000000000
--- a/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42, automake}:
-
-stdenv.mkDerivation {
-  name = "scrollkeeper-0.3.14";
-  src = fetchurl {
-    url = mirror://gnome/sources/scrollkeeper/0.3/scrollkeeper-0.3.14.tar.bz2;
-    sha256 = "08n1xgj1f53zahwm0wpn3jid3rfbhi3iwby0ilaaldnid5qriqgc";
-  };
-
-  # The fuloong2f is not supported by scrollkeeper-0.3.14 config.guess
-  preConfigure = "
-    substituteInPlace extract/dtds/Makefile.am --replace /usr/bin/xmlcatalog xmlcatalog
-    cp ${automake}/share/automake*/config.{sub,guess} .
-  ";
-
-  buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt];
-  configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat";
-}
diff --git a/pkgs/desktops/gnome-3/misc/gitg/default.nix b/pkgs/desktops/gnome-3/misc/gitg/default.nix
new file mode 100644
index 00000000000..629ff4a7700
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/gitg/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, fetchgit, vala, intltool, libgit2, pkgconfig, gtk3, glib
+, json_glib, webkitgtk,  makeWrapper, libpeas, bash, gobjectIntrospection
+, gnome3, gtkspell3, shared_mime_info, libgee, libgit2-glib }:
+
+# TODO: icons and theme still does not work
+# use packaged gnome3.gnome_icon_theme_symbolic 
+
+stdenv.mkDerivation rec {
+  name = "gitg-0.3.2";
+
+  src = fetchurl {
+    url = "https://download.gnome.org/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"
+  '';
+  doCheck = true;
+
+  makeFlags = "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/ INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0";
+
+  propagatedUserEnvPkgs = [ shared_mime_info
+                            gnome3.gnome_themes_standard ];
+
+  buildInputs = [ vala intltool libgit2 pkgconfig gtk3 glib json_glib webkitgtk libgee libpeas
+                  libgit2-glib gtkspell3 gnome3.gsettings_desktop_schemas gnome3.gtksourceview
+                  gobjectIntrospection makeWrapper ];
+
+  postInstall = ''
+    wrapProgram "$out/bin/gitg" \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share"
+  '';
+
+  preFixup = ''
+    rm $out/share/icons/hicolor/icon-theme.cache
+    rm $out/share/gitg/icons/hicolor/icon-theme.cache
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/action/show/Apps/Gitg;
+    description = "GNOME GUI client to view git repositories";
+    maintainers = with maintainers; [ iElectric ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/misc/goffice/default.nix b/pkgs/desktops/gnome-3/misc/goffice/default.nix
index d708ab92113..51d259314a7 100644
--- a/pkgs/desktops/gnome-3/misc/goffice/default.nix
+++ b/pkgs/desktops/gnome-3/misc/goffice/default.nix
@@ -29,5 +29,4 @@ stdenv.mkDerivation rec {
 
     platforms = stdenv.lib.platforms.gnu;
   };
-  passthru = { inherit meta; };
 }
diff --git a/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix b/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix
new file mode 100644
index 00000000000..12d37ab5db5
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, which, gnome3, autoconf, automake, libtool, pkgconfig
+, gtk_doc, gobjectIntrospection, libgit2, glib }:
+
+stdenv.mkDerivation rec {
+  name = "libgit2-glib-${version}";
+  version = "0.0.10";
+
+  src = fetchurl {
+    url = "https://github.com/GNOME/libgit2-glib/archive/v${version}.tar.gz";
+    sha256 = "0zn3k85jw6yks8s5ca8dyh9mwh4if1lni9gz9bd5lqlpa803ixxs";
+  };
+
+  configureScript = "sh ./autogen.sh";
+
+  buildInputs = [ which gnome3.gnome_common autoconf automake libtool
+                  pkgconfig gtk_doc gobjectIntrospection libgit2 glib ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/xfce/applications/parole.nix b/pkgs/desktops/xfce/applications/parole.nix
new file mode 100644
index 00000000000..c1a4ecd787d
--- /dev/null
+++ b/pkgs/desktops/xfce/applications/parole.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig, intltool, gst_all_1
+, gtk, dbus_glib, libxfce4ui, libxfce4util, xfconf
+, taglib, libnotify
+, withGstPlugins ? true
+}:
+
+stdenv.mkDerivation rec {
+  p_name  = "parole";
+  ver_maj = "0.5";
+  ver_min = "4";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1hxzqg9dfghrhvmnnccwwa4278fh2awkcqy89sla05m08mxvvx60";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  buildInputs = [
+    makeWrapper gst_all_1.gst-plugins-base
+    gtk dbus_glib libxfce4ui libxfce4util xfconf
+    taglib libnotify
+  ];
+
+  configureFlags = [ "--with-gstreamer=1.0" ];
+
+  postInstall = stdenv.lib.optionalString withGstPlugins ''
+    wrapProgram "$out/bin/parole" --prefix \
+      GST_PLUGIN_PATH ":" ${stdenv.lib.concatStringsSep ":"
+        (map (s: s+"/lib/gstreamer-1.0") (with gst_all_1; [
+          gst-plugins-base gst-plugins-good
+          gst-plugins-bad gst-plugins-ugly
+          gst-libav
+        ])) }
+  '';
+
+  meta = {
+    homepage = "http://goodies.xfce.org/projects/applications/${p_name}";
+    description = "Modern simple media player";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix
index ede7ffb6c49..b9c84cf95e2 100644
--- a/pkgs/desktops/xfce/default.nix
+++ b/pkgs/desktops/xfce/default.nix
@@ -41,6 +41,7 @@ xfce_self = rec { # the lines are very long but it seems better than the even-od
 
   gigolo          = callPackage ./applications/gigolo.nix { };
   mousepad        = callPackage ./applications/mousepad.nix { };
+  parole          = callPackage ./applications/parole.nix { };
   ristretto       = callPackage ./applications/ristretto.nix { };
   terminal        = xfce4terminal; # it has changed its name
   xfce4mixer      = callPackage ./applications/xfce4-mixer.nix { };
diff --git a/pkgs/development/compilers/dmd/default.nix b/pkgs/development/compilers/dmd/default.nix
new file mode 100644
index 00000000000..96a3d2abfc6
--- /dev/null
+++ b/pkgs/development/compilers/dmd/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchurl, gcc, unzip, curl }:
+
+stdenv.mkDerivation {
+  name = "dmd-2.064.2";
+
+  src = fetchurl {
+    url = http://downloads.dlang.org/releases/2013/dmd.2.064.2.zip;
+    sha256 = "1i0jdybigffwyb7c43j0c4aayxx3b93zzqrjxyw6zgp06yhi06pm";
+  };
+
+  buildInputs = [ gcc unzip curl ];
+
+  configurePhase = "";
+  patchPhase = ''
+      cp src/VERSION src/dmd/
+      cp license.txt src/phobos/LICENSE_1_0.txt
+  '';
+  buildPhase = ''
+      cd src/dmd
+      make -f posix.mak INSTALL_DIR=$out
+      export DMD=$PWD/dmd
+      cd ../druntime 
+      make -f posix.mak INSTALL_DIR=$out DMD=$DMD
+      cd ../phobos
+      make -f posix.mak INSTALL_DIR=$out DMD=$DMD
+      cd ../..
+  '';
+
+  installPhase = ''
+      cd src/dmd
+      tee dmd.conf.default << EOF
+          [Environment]
+          DFLAGS=-I$out/import -L-L$out/lib
+      EOF
+
+      make -f posix.mak INSTALL_DIR=$out install
+      export DMD=$PWD/dmd
+      cd ../druntime 
+      make -f posix.mak INSTALL_DIR=$out install
+      cd ../phobos
+      make -f posix.mak INSTALL_DIR=$out install
+      cd ../..
+  '';
+
+  meta = {
+    description = "D language compiler";
+    homepage = http://dlang.org/;
+    license = "open source, see included files";
+    maintainers = with stdenv.lib.maintainers; [ vlstill ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/development/compilers/elm/elm-server.nix b/pkgs/development/compilers/elm/elm-server.nix
index 56924d589f4..760a6f072de 100644
--- a/pkgs/development/compilers/elm/elm-server.nix
+++ b/pkgs/development/compilers/elm/elm-server.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "elm-server";
-  version = "0.9.0.2";
-  sha256 = "0g362llb7jkwz8xhyhhsc8hz0vj7s7bgfz1az5qfh1cm4h8nynwr";
+  version = "0.10.1";
+  sha256 = "0rh01jm9h9zbslnzy6xg7bin76gdmypannh3ly40azplw9xmf2dn";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/compilers/rdmd/default.nix b/pkgs/development/compilers/rdmd/default.nix
new file mode 100644
index 00000000000..9177ad5e25b
--- /dev/null
+++ b/pkgs/development/compilers/rdmd/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, writeText, lib, dmd }:
+
+stdenv.mkDerivation {
+  name = "rdmd-2.064";
+
+  src = fetchurl {
+    url = https://raw2.github.com/D-Programming-Language/tools/2.064/rdmd.d;
+    sha256 = "0b1g3ng6bkanvg00r6xb4ycpbh9x8b9dw589av665azxbcraqrs1";
+    name = "rdmd-src";
+  };
+
+  buildInputs = [ dmd ];
+
+  builder = writeText "drmd-builder.sh" ''
+      source $stdenv/setup
+      cp $src rdmd.d
+      dmd rdmd.d
+      mkdir -p $out/bin
+      cp rdmd $out/bin/
+  '';
+
+  meta = {
+    description = "rdmd wrapper for D language compiler";
+    homepage = http://dlang.org/rdmd.html;
+    license = lib.licenses.boost;
+    maintainers = with stdenv.lib.maintainers; [ vlstill ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/development/compilers/vala/15.2.nix b/pkgs/development/compilers/vala/15.2.nix
deleted file mode 100644
index 529ccea6bc8..00000000000
--- a/pkgs/development/compilers/vala/15.2.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{stdenv, fetchurl, yacc, flex, pkgconfig, glib, xz}:
-
-stdenv.mkDerivation rec {
-
-  version = "0.15.2";
-  name = "vala-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/vala/0.15/${name}.tar.xz";
-    sha256 = "0g71zq6dpqrw2f40wfzdf18fdw41ymr17laqniy2kr622hkxdi8w";
-  };
-
-  nativeBuildInputs = [ yacc flex pkgconfig xz ];
-
-  buildInputs = [ glib ];
-
-  meta = {
-    description = "Compiler for the GObject type system";
-    homepage = "http://live.gnome.org/Vala";
-    license = "free-copyleft";
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.antono ];
-  };
-}
diff --git a/pkgs/development/compilers/vala/16.1.nix b/pkgs/development/compilers/vala/16.1.nix
deleted file mode 100644
index f054c59d2e4..00000000000
--- a/pkgs/development/compilers/vala/16.1.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{stdenv, fetchurl, yacc, flex, pkgconfig, glib, xz}:
-
-stdenv.mkDerivation rec {
-
-  version = "0.16.1";
-  name = "vala-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/vala/0.16/${name}.tar.xz";
-    sha256 = "1n708n9ixyy9qrzyv1wf4ybvcclx43ib9ki028wwpvkz6kv8zqlb";
-  };
-
-  nativeBuildInputs = [ yacc flex pkgconfig xz ];
-
-  buildInputs = [ glib ];
-
-  meta = {
-    description = "Compiler for the GObject type system";
-    homepage = "http://live.gnome.org/Vala";
-    license = "free-copyleft";
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.antono ];
-  };
-}
diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix
index 9af30230757..95c37edb09a 100644
--- a/pkgs/development/compilers/vala/default.nix
+++ b/pkgs/development/compilers/vala/default.nix
@@ -1,31 +1,31 @@
-{ stdenv, fetchurl, yacc, flex, pkgconfig, glib, dbus, dbus_tools
-, libiconvOrEmpty, libintlOrEmpty }:
+{ stdenv, fetchurl, pkgconfig, flex, bison, libxslt
+, glib, libiconvOrEmpty, libintlOrEmpty
+}:
 
+let
+  major = "0.23";
+  minor = "1";
+  sha256 = "1m8f2d01r4jqp266mk29qsl68lzh7c258cqd5zzbpbryxszlzdfj";
+in
 stdenv.mkDerivation rec {
-  p_name  = "vala";
-  ver_maj = "0.19";
-  ver_min = "0";
+  name = "vala-${major}.${minor}";
 
-  src = fetchurl {
-    url = "mirror://gnome/sources/${p_name}/${ver_maj}/${name}.tar.xz";
-    sha256 = "1vn524hcnaggz8zx49mvf7p4z1mscrlj2syg7jjhph8nak5wi0bp";
+  meta = {
+    description = "Compiler for GObject type system";
+    homepage = "http://live.gnome.org/Vala";
+    license = stdenv.lib.licenses.lgpl21Plus;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ antono iyzsong ];
   };
-  name = "${p_name}-${ver_maj}.${ver_min}";
-
-  postPatch = "patchShebangs .";
-
-  nativeBuildInputs = [ yacc flex pkgconfig ];
 
-  buildInputs = [ glib ] ++ libiconvOrEmpty ++ libintlOrEmpty
-    ++ stdenv.lib.optional doCheck [ dbus dbus_tools ];
+  src = fetchurl {
+    url = "mirror://gnome/sources/vala/${major}/${name}.tar.xz";
+    inherit sha256;
+  };
 
-  doCheck = false; # problems when launching dbus tests
+  nativeBuildInputs = [ pkgconfig flex bison libxslt ];
 
-  meta = {
-    description = "Compiler for the GObject type system";
-    homepage = "http://live.gnome.org/Vala";
-    license = "free-copyleft";
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.antono ];
-  };
+  buildInputs = [ glib ]
+    ++ libiconvOrEmpty
+    ++ libintlOrEmpty;
 }
diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix
index 428d97eaf79..eb7e925561c 100644
--- a/pkgs/development/interpreters/octave/default.nix
+++ b/pkgs/development/interpreters/octave/default.nix
@@ -1,22 +1,36 @@
 {stdenv, fetchurl, gfortran, readline, ncurses, perl, flex, texinfo, qhull,
-libX11, graphicsmagick, pcre, liblapack, texLive, pkgconfig, mesa, fltk,
-fftw, fftwSinglePrec, zlib, curl, qrupdate }:
+libX11, graphicsmagick, pcre, liblapack, pkgconfig, mesa, fltk,
+fftw, fftwSinglePrec, zlib, curl, qrupdate
+, qt ? null, ghostscript ? null, llvm ? null, hdf5 ? null,glpk ? null
+, suitesparse ? null, gnuplot ? null, openjdk ? null, python ? null
+}:
 
 let
-  version = "3.6.4";
+  version = "3.8.0";
 in
 stdenv.mkDerivation rec {
   name = "octave-${version}";
   src = fetchurl {
     url = "mirror://gnu/octave/${name}.tar.bz2";
-    sha256 = "0qn9s7jrjmrn6w3rvp8d7vfnymyv0spnxzrp9l7p8p8zb7wms67s";
+    sha256 = "1yclb8p4mcx9xcjajyynxfnc5spw90lp44d84v56ksrlvp3314si";
   };
 
   buildInputs = [ gfortran readline ncurses perl flex texinfo qhull libX11
     graphicsmagick pcre liblapack pkgconfig mesa fltk zlib curl
-    fftw fftwSinglePrec qrupdate ];
-
-  doCheck = true;
+    fftw fftwSinglePrec qrupdate ]
+    ++ (stdenv.lib.optional (qt != null) qt)
+    ++ (stdenv.lib.optional (ghostscript != null) ghostscript)
+    ++ (stdenv.lib.optional (llvm != null) llvm)
+    ++ (stdenv.lib.optional (hdf5 != null) hdf5)
+    ++ (stdenv.lib.optional (glpk != null) glpk)
+    ++ (stdenv.lib.optional (suitesparse != null) suitesparse)
+    ++ (stdenv.lib.optional (openjdk != null) openjdk)
+    ++ (stdenv.lib.optional (gnuplot != null) gnuplot)
+    ++ (stdenv.lib.optional (python != null) python)
+    ;
+
+  # there is a mysterious sh: command not found
+  doCheck = false;
 
   /* The build failed with a missing libranlib.la in hydra,
      but worked on my computer. I think they have concurrency problems */
@@ -27,7 +41,7 @@ stdenv.mkDerivation rec {
   # Keep a copy of the octave tests detailed results in the output
   # derivation, because someone may care
   postInstall = ''
-    cp test/fntests.log $out/share/octave/${name}-fntests.log
+    cp test/fntests.log $out/share/octave/${name}-fntests.log || true
   '';
 
   passthru = {
@@ -38,7 +52,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://octave.org/;
     license = "GPLv3+";
-    maintainers = with stdenv.lib.maintainers; [viric];
+    maintainers = with stdenv.lib.maintainers; [viric raskin];
     platforms = with stdenv.lib.platforms; linux;
   };
 }
diff --git a/pkgs/development/interpreters/supercollider/default.nix b/pkgs/development/interpreters/supercollider/default.nix
new file mode 100644
index 00000000000..77a9392ba8b
--- /dev/null
+++ b/pkgs/development/interpreters/supercollider/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, cmake, pkgconfig
+, jackaudio, libsndfile, fftw, curl
+, libXt, qt
+}:
+
+stdenv.mkDerivation rec {
+  name = "supercollider-3.6.6";
+
+  meta = {
+    description = "Programming language for real time audio synthesis";
+    homepage = "http://supercollider.sourceforge.net/";
+    license = stdenv.lib.licenses.gpl3Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+
+  src = fetchurl {
+    url = "mirror://sourceforge/supercollider/Source/3.6/SuperCollider-3.6.6-Source.tar.bz2";
+    sha256 = "11khrv6jchs0vv0lv43am8lp0x1rr3h6l2xj9dmwrxcpdayfbalr";
+  };
+
+  # QGtkStyle unavailable
+  patchPhase = ''
+    substituteInPlace editors/sc-ide/widgets/code_editor/autocompleter.cpp \
+      --replace Q_WS_X11 Q_GTK_STYLE
+  '';
+
+  cmakeFlags = [
+    "-DSC_WII=OFF"
+    "-DSC_EL=OFF"
+  ];
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [
+    jackaudio libsndfile fftw curl
+    libXt qt
+  ];
+}
diff --git a/pkgs/development/libraries/accountservice/default.nix b/pkgs/development/libraries/accountservice/default.nix
new file mode 100644
index 00000000000..8cab9e39e19
--- /dev/null
+++ b/pkgs/development/libraries/accountservice/default.nix
@@ -0,0 +1,13 @@
+{ stdenv, fetchurl, pkgconfig, glib, intltool, libtool, gobjectIntrospection, polkit }:
+
+stdenv.mkDerivation rec {
+  name = "accountsservice-0.6.35";
+  
+  src = fetchurl {
+    url = http://www.freedesktop.org/software/accountsservice/accountsservice-0.6.35.tar.xz;
+    sha256 = "0f1hzl6hw56xvwgmd4yvmdyj15xj1fafw45pzv3qarww7h0wg8b5";
+  };
+
+  buildInputs = [ pkgconfig glib intltool libtool gobjectIntrospection polkit ];
+
+}
diff --git a/pkgs/development/libraries/exempi/default.nix b/pkgs/development/libraries/exempi/default.nix
new file mode 100644
index 00000000000..991c3e2fa4c
--- /dev/null
+++ b/pkgs/development/libraries/exempi/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, expat, zlib, boost }:
+
+stdenv.mkDerivation rec {
+  name = "exempi-2.2.1";
+
+  src = fetchurl {
+    url = "http://libopenraw.freedesktop.org/download/${name}.tar.bz2";
+    sha256 = "00d6gycl0wcyd3c71y0jp033a64z203rq0p0y07aig0s0j0477kc";
+  };
+
+  configureFlags = [ "--with-boost=${boost}" ];
+
+  buildInputs = [ expat zlib boost ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/libraries/fdk-aac/default.nix b/pkgs/development/libraries/fdk-aac/default.nix
new file mode 100644
index 00000000000..a9c8b19dc50
--- /dev/null
+++ b/pkgs/development/libraries/fdk-aac/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+let version = "0.1.3";
+in
+stdenv.mkDerivation {
+  name = "fdk-aac-${version}";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/opencore-amr/fdk-aac/fdk-aac-${version}.tar.gz";
+    sha256 = "138c1l6c571289czihk0vlcfbla7qlac2jd5yyps5dyg08l8gjx9";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A high-quality implementation of the AAC codec from Android";
+    homepage = "http://sourceforge.net/projects/opencore-amr/";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/ffmpeg/2.x.nix b/pkgs/development/libraries/ffmpeg/2.x.nix
index 475da7c4c64..90f8f9299e7 100644
--- a/pkgs/development/libraries/ffmpeg/2.x.nix
+++ b/pkgs/development/libraries/ffmpeg/2.x.nix
@@ -1,35 +1,9 @@
-{ stdenv, fetchurl, pkgconfig, yasm, zlib, bzip2, alsaLib, texinfo, perl
-, mp3Support ? true, lame ? null
-, speexSupport ? true, speex ? null
-, theoraSupport ? true, libtheora ? null
-, vorbisSupport ? true, libvorbis ? null
-, vpxSupport ? false, libvpx ? null
-, x264Support ? true, x264 ? null
-, xvidSupport ? true, xvidcore ? null
-, opusSupport ? true, libopus ? null
-, vdpauSupport ? true, libvdpau ? null
-, vaapiSupport ? true, libva ? null
-, faacSupport ? false, faac ? null
-, dc1394Support ? false, libdc1394 ? null
-, x11grabSupport ? false, libXext ? null, libXfixes ? null
-, playSupport ? true, SDL ? null
-, freetypeSupport ? true, freetype ? null, fontconfig ? null
+{ stdenv, fetchurl, config, pkgconfig, yasm, zlib, bzip2, alsaLib, texinfo, perl
+, lame, speex, libtheora, libvorbis, libvpx, x264, xvidcore, libopus
+, libvdpau, libva, faac, libdc1394, libXext, libXfixes, SDL
+, freetype, fontconfig, fdk_aac
 }:
 
-assert speexSupport -> speex != null;
-assert theoraSupport -> libtheora != null;
-assert vorbisSupport -> libvorbis != null;
-assert vpxSupport -> libvpx != null;
-assert x264Support -> x264 != null;
-assert xvidSupport -> xvidcore != null;
-assert opusSupport -> libopus != null;
-assert vdpauSupport -> libvdpau != null;
-assert vaapiSupport -> libva != null;
-assert faacSupport -> faac != null;
-assert x11grabSupport -> libXext != null && libXfixes != null;
-assert playSupport -> SDL != null;
-assert freetypeSupport -> freetype != null;
-
 stdenv.mkDerivation rec {
   name = "ffmpeg-2.1.1";
 
@@ -38,6 +12,23 @@ stdenv.mkDerivation rec {
     sha256 = "1qnspbpwa6cflsb6mkm84ay4nfx60ism6d7lgvnasidck9dmxydy";
   };
 
+  mp3Support = config.ffmpeg.mp3 or true;
+  speexSupport = config.ffmpeg.speex or true;
+  theoraSupport = config.ffmpeg.theora or true;
+  vorbisSupport = config.ffmpeg.vorbis or true;
+  vpxSupport = config.ffmpeg.vpx or false;
+  x264Support = config.ffmpeg.x264 or true;
+  xvidSupport = config.ffmpeg.xvid or true;
+  opusSupport = config.ffmpeg.opus or true;
+  vdpauSupport = config.ffmpeg.vdpau or true;
+  vaapiSupport = config.ffmpeg.vaapi or true;
+  faacSupport = config.ffmpeg.faac or false;
+  fdkAACSupport = config.ffmpeg.fdk or false;
+  dc1394Support = config.ffmpeg.dc1394 or false;
+  x11grabSupport = config.ffmpeg.x11grab or false;
+  playSupport = config.ffmpeg.play or true;
+  freetypeSupport = config.ffmpeg.freetype or true;
+
   # `--enable-gpl' (as well as the `postproc' and `swscale') mean that
   # the resulting library is GPL'ed, so it can only be used in GPL'ed
   # applications.
@@ -62,7 +53,8 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional dc1394Support "--enable-libdc1394"
     ++ stdenv.lib.optional x11grabSupport "--enable-x11grab"
     ++ stdenv.lib.optional playSupport "--enable-ffplay"
-    ++ stdenv.lib.optional freetypeSupport "--enable-libfreetype --enable-fontconfig";
+    ++ stdenv.lib.optional freetypeSupport "--enable-libfreetype --enable-fontconfig"
+    ++ stdenv.lib.optional fdkAACSupport "--enable-libfdk_aac --enable-nonfree";
 
   buildInputs = [ pkgconfig lame yasm zlib bzip2 alsaLib texinfo perl ]
     ++ stdenv.lib.optional mp3Support lame
@@ -79,7 +71,8 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional dc1394Support libdc1394
     ++ stdenv.lib.optionals x11grabSupport [ libXext libXfixes ]
     ++ stdenv.lib.optional playSupport SDL
-    ++ stdenv.lib.optionals freetypeSupport [ freetype fontconfig ];
+    ++ stdenv.lib.optionals freetypeSupport [ freetype fontconfig ]
+    ++ stdenv.lib.optional fdkAACSupport fdk_aac;
 
   enableParallelBuilding = true;
 
@@ -100,5 +93,6 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://www.ffmpeg.org/;
     description = "A complete, cross-platform solution to record, convert and stream audio and video";
+    license = if (fdkAACSupport || faacSupport) then stdenv.lib.licenses.unfree else stdenv.lib.licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/development/libraries/git2/default.nix b/pkgs/development/libraries/git2/default.nix
index 3c4c2703d6f..abb782641dd 100644
--- a/pkgs/development/libraries/git2/default.nix
+++ b/pkgs/development/libraries/git2/default.nix
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "1iyncz8fqazw683dxjls3lf5pw3f5ma8kachkvjz7dsq57wxllbj";
   };
 
+  cmakeFlags = "-DTHREADSAFE=ON";
+
   nativeBuildInputs = [ cmake python ];
   buildInputs = [ zlib ];
 
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
new file mode 100644
index 00000000000..81207155625
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, pkgconfig, python, gst-plugins-base, orc
+, faac, faad2, libass, libkate, libmms
+, libmodplug, mpeg2dec, mpg123 
+, openjpeg, libopus, librsvg
+, timidity, libvdpau, wayland
+, libwebp, xvidcore, gnutls
+}:
+
+stdenv.mkDerivation rec {
+  name = "gst-plugins-bad-1.2.2";
+
+  meta = {
+    homepage = "http://gstreamer.freedesktop.org";
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ iyzsong ];
+  };
+
+  src = fetchurl {
+    url = "${meta.homepage}/src/gst-plugins-bad/${name}.tar.xz";
+    sha256 = "63e78db11b482d0529a0bde01e2ac23fd32c7cb99a5508b53ee4ca1051871b2c";
+  };
+
+  nativeBuildInputs = [ pkgconfig python ];
+
+  buildInputs = [
+    gst-plugins-base orc
+    faac faad2 libass libkate libmms
+    libmodplug mpeg2dec mpg123 
+    openjpeg libopus librsvg
+    timidity libvdpau wayland
+    libwebp xvidcore gnutls
+  ];
+}
diff --git a/pkgs/development/libraries/gstreamer/base/default.nix b/pkgs/development/libraries/gstreamer/base/default.nix
new file mode 100644
index 00000000000..01a75ce5211
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/base/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, pkgconfig, python, gstreamer, gobjectIntrospection
+, orc, alsaLib, libXv, pango, libtheora
+, cdparanoia, libvisual
+}:
+
+stdenv.mkDerivation rec {
+  name = "gst-plugins-base-1.2.2";
+
+  meta = {
+    description = "Base plugins and helper libraries";
+    homepage = "http://gstreamer.freedesktop.org";
+    license = stdenv.lib.licenses.lgpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ iyzsong ];
+  };
+
+  src = fetchurl {
+    url = "${meta.homepage}/src/gst-plugins-base/${name}.tar.xz";
+    sha256 = "fa90cf21eac0a77f9393100356aef99ae42072c31dc218d3ae2e7f86cd5ced69";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig python gobjectIntrospection
+  ];
+
+  buildInputs = [
+    orc alsaLib libXv pango libtheora
+    cdparanoia libvisual
+  ];
+
+  propagatedBuildInputs = [ gstreamer ];
+}
diff --git a/pkgs/development/libraries/gstreamer/core/default.nix b/pkgs/development/libraries/gstreamer/core/default.nix
new file mode 100644
index 00000000000..5e7548627fe
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/core/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, pkgconfig, perl, bison, flex, python, gobjectIntrospection
+, glib 
+}:
+
+stdenv.mkDerivation rec {
+  name = "gstreamer-1.2.2";
+
+  meta = {
+    description = "Open source multimedia framework";
+    homepage = "http://gstreamer.freedesktop.org";
+    license = stdenv.lib.licenses.lgpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ iyzsong ];
+  };
+
+  src = fetchurl {
+    url = "${meta.homepage}/src/gstreamer/${name}.tar.xz";
+    sha256 = "b9f12137ab663edc6c37429b38ca7911074b9c2a829267fe855d4e57d916a0b6";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig perl bison flex python gobjectIntrospection
+  ];
+
+  propagatedBuildInputs = [ glib ];
+}
diff --git a/pkgs/development/libraries/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix
new file mode 100644
index 00000000000..1d02e6459ab
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/default.nix
@@ -0,0 +1,15 @@
+{ callPackage }:
+
+rec {
+  gstreamer = callPackage ./core { };
+
+  gst-plugins-base = callPackage ./base { inherit gstreamer; };
+
+  gst-plugins-good = callPackage ./good { inherit gst-plugins-base; };
+
+  gst-plugins-bad = callPackage ./bad { inherit gst-plugins-base; };
+
+  gst-plugins-ugly = callPackage ./ugly { inherit gst-plugins-base; };
+
+  gst-libav = callPackage ./libav { inherit gst-plugins-base; };
+}
diff --git a/pkgs/development/libraries/gstreamer/good/default.nix b/pkgs/development/libraries/gstreamer/good/default.nix
new file mode 100644
index 00000000000..616f63d7da7
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/good/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, python
+, gst-plugins-base, orc, bzip2
+, libv4l, libdv, libavc1394, libiec61883
+, libvpx, speex, flac, taglib
+, cairo, gdk_pixbuf, aalib, libcaca
+, libsoup, pulseaudio
+}:
+
+stdenv.mkDerivation rec {
+  name = "gst-plugins-good-1.2.2";
+
+  meta = {
+    homepage = "http://gstreamer.freedesktop.org";
+    license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ iyzsong ];
+  };
+
+  src = fetchurl {
+    url = "${meta.homepage}/src/gst-plugins-good/${name}.tar.xz";
+    sha256 = "6c090f00e8e4588f12807bd9fbb06a03b84a512c93e84d928123ee4a42228a81";
+  };
+
+  nativeBuildInputs = [ pkgconfig python ];
+
+  buildInputs = [
+    gst-plugins-base orc bzip2
+    libv4l libdv libavc1394 libiec61883
+    libvpx speex flac taglib
+    cairo gdk_pixbuf aalib libcaca
+    libsoup pulseaudio
+  ];
+}
diff --git a/pkgs/development/libraries/gstreamer/gnonlin/default.nix b/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix
index 820e8eb07c9..820e8eb07c9 100644
--- a/pkgs/development/libraries/gstreamer/gnonlin/default.nix
+++ b/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix
diff --git a/pkgs/development/libraries/gstreamer/gst-ffmpeg/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-ffmpeg/default.nix
index 49c612f59e7..49c612f59e7 100644
--- a/pkgs/development/libraries/gstreamer/gst-ffmpeg/default.nix
+++ b/pkgs/development/libraries/gstreamer/legacy/gst-ffmpeg/default.nix
diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-bad/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix
index a433d717039..a433d717039 100644
--- a/pkgs/development/libraries/gstreamer/gst-plugins-bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix
diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-base/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix
index 59ee86da86d..59ee86da86d 100644
--- a/pkgs/development/libraries/gstreamer/gst-plugins-base/default.nix
+++ b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix
diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix
index a09f8279760..a09f8279760 100644
--- a/pkgs/development/libraries/gstreamer/gst-plugins-good/default.nix
+++ b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix
diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-good/v4l.patch b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch
index 22cff574134..22cff574134 100644
--- a/pkgs/development/libraries/gstreamer/gst-plugins-good/v4l.patch
+++ b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch
diff --git a/pkgs/development/libraries/gstreamer/gst-plugins-ugly/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix
index 769de911fd6..769de911fd6 100644
--- a/pkgs/development/libraries/gstreamer/gst-plugins-ugly/default.nix
+++ b/pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix
diff --git a/pkgs/development/libraries/gstreamer/gst-python/default.nix b/pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix
index e960aa90421..e960aa90421 100644
--- a/pkgs/development/libraries/gstreamer/gst-python/default.nix
+++ b/pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix
diff --git a/pkgs/development/libraries/gstreamer/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix
index 392e8e31f43..392e8e31f43 100644
--- a/pkgs/development/libraries/gstreamer/gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix
diff --git a/pkgs/development/libraries/gstreamer/gstreamer/setup-hook.sh b/pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh
index ad184dc21e9..ad184dc21e9 100644
--- a/pkgs/development/libraries/gstreamer/gstreamer/setup-hook.sh
+++ b/pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh
diff --git a/pkgs/development/libraries/gstreamer/qt-gstreamer/boost1.48.patch b/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/boost1.48.patch
index c48eec68a64..c48eec68a64 100644
--- a/pkgs/development/libraries/gstreamer/qt-gstreamer/boost1.48.patch
+++ b/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/boost1.48.patch
diff --git a/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix b/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/default.nix
index c3510a69a12..c3510a69a12 100644
--- a/pkgs/development/libraries/gstreamer/qt-gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/legacy/qt-gstreamer/default.nix
diff --git a/pkgs/development/libraries/gstreamer/libav/default.nix b/pkgs/development/libraries/gstreamer/libav/default.nix
new file mode 100644
index 00000000000..47be4c8f4a0
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/libav/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, pkgconfig, python, yasm
+, gst-plugins-base, orc, bzip2
+, withSystemLibav ? true, libav ? null
+}:
+
+assert withSystemLibav -> libav != null;
+
+stdenv.mkDerivation rec {
+  name = "gst-libav-1.2.2";
+
+  meta = {
+    homepage = "http://gstreamer.freedesktop.org";
+    license = stdenv.lib.licenses.lgpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ iyzsong ];
+  };
+
+  src = fetchurl {
+    url = "${meta.homepage}/src/gst-libav/${name}.tar.xz";
+    sha256 = "585eb7971006100ad771a852e07bd2f3e23bcc6eb0b1253a40b5a0e40e4e7418";
+  };
+
+  configureFlags = stdenv.lib.optionalString withSystemLibav
+    "--with-system-libav";
+
+  nativeBuildInputs = with stdenv.lib;
+    [ pkgconfig python ]
+    ++ optional (!withSystemLibav) yasm
+    ;
+
+  buildInputs = with stdenv.lib;
+    [ gst-plugins-base orc bzip2 ]
+    ++ optional withSystemLibav libav
+    ;
+}
diff --git a/pkgs/development/libraries/gstreamer/ugly/default.nix b/pkgs/development/libraries/gstreamer/ugly/default.nix
new file mode 100644
index 00000000000..8dafbf013f3
--- /dev/null
+++ b/pkgs/development/libraries/gstreamer/ugly/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, python
+, gst-plugins-base, orc
+, a52dec, libcdio, libdvdread
+, lame, libmad, libmpeg2, x264
+}:
+
+stdenv.mkDerivation rec {
+  name = "gst-plugins-ugly-1.2.2";
+
+  meta = {
+    homepage = "http://gstreamer.freedesktop.org";
+    license = stdenv.lib.licenses.lgpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ iyzsong ];
+  };
+
+  src = fetchurl {
+    url = "${meta.homepage}/src/gst-plugins-ugly/${name}.tar.xz";
+    sha256 = "4b6aac272a5be0d68f365ef6fba0f829fc5c1d1d601bb4dd9e85f5289b2b56c3";
+  };
+
+  nativeBuildInputs = [ pkgconfig python ];
+
+  buildInputs = [
+    gst-plugins-base orc
+    a52dec libcdio libdvdread
+    lame libmad libmpeg2 x264
+  ];
+}
diff --git a/pkgs/development/libraries/gtk-sharp-1/default.nix b/pkgs/development/libraries/gtk-sharp-1/default.nix
index aad440bf672..863ee6c038d 100644
--- a/pkgs/development/libraries/gtk-sharp-1/default.nix
+++ b/pkgs/development/libraries/gtk-sharp-1/default.nix
@@ -23,7 +23,10 @@ stdenv.mkDerivation {
     md5 = "2651d14fe77174ab20b8af53d150ee11";
   };
 
-  patches = [ ./dllmap-glue.patch ];
+  patches = [
+    ./dllmap-glue.patch
+    ./glib-include.patch
+  ];
 
   buildInputs = [
     pkgconfig mono glib pango gtk GConf libglade libgnomecanvas
diff --git a/pkgs/development/libraries/gtk-sharp-1/glib-include.patch b/pkgs/development/libraries/gtk-sharp-1/glib-include.patch
new file mode 100644
index 00000000000..e8f4b0ef5af
--- /dev/null
+++ b/pkgs/development/libraries/gtk-sharp-1/glib-include.patch
@@ -0,0 +1,24 @@
+diff -ru gtk-sharp-1.0.6.orig/glib/glue/list.c gtk-sharp-1.0.6/glib/glue/list.c
+--- gtk-sharp-1.0.6.orig/glib/glue/list.c	2014-01-09 10:58:06.727352451 +0000
++++ gtk-sharp-1.0.6/glib/glue/list.c	2014-01-09 11:00:34.256583614 +0000
+@@ -20,7 +20,7 @@
+  */
+ 
+ 
+-#include <glib/glist.h>
++#include <glib.h>
+ 
+ /* Forward declarations */
+ gpointer gtksharp_list_get_data (GList *l);
+diff -ru gtk-sharp-1.0.6.orig/glib/glue/slist.c gtk-sharp-1.0.6/glib/glue/slist.c
+--- gtk-sharp-1.0.6.orig/glib/glue/slist.c	2014-01-09 10:58:06.727352451 +0000
++++ gtk-sharp-1.0.6/glib/glue/slist.c	2014-01-09 11:00:47.572695223 +0000
+@@ -20,7 +20,7 @@
+  */
+ 
+ 
+-#include <glib/gslist.h>
++#include <glib.h>
+ 
+ /* Forward declarations */
+ gpointer gtksharp_slist_get_data (GSList *l);
diff --git a/pkgs/development/libraries/gtkspell/3.nix b/pkgs/development/libraries/gtkspell/3.nix
new file mode 100644
index 00000000000..54023f29a07
--- /dev/null
+++ b/pkgs/development/libraries/gtkspell/3.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, gtk3, aspell, pkgconfig, enchant, intltool}:
+
+stdenv.mkDerivation rec {
+  name = "gtkspell-${version}";
+  version = "3.0.4";
+  
+  src = fetchurl {
+    url = "mirror://sourceforge/gtkspell/gtkspell3-${version}.tar.gz";
+    sha256 = "19z48gfbraasrxai7qdkxxvky0kwifkkzqz0jqcskhcr1ikqxgzs";
+  };
+  
+  buildInputs = [ aspell pkgconfig gtk3 enchant intltool ];
+  propagatedBuildInputs = [ enchant ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/haskell/DRBG/default.nix b/pkgs/development/libraries/haskell/DRBG/default.nix
index 0d479b81515..81f0455bd5a 100644
--- a/pkgs/development/libraries/haskell/DRBG/default.nix
+++ b/pkgs/development/libraries/haskell/DRBG/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "DRBG";
-  version = "0.5.1";
-  sha256 = "0mqgll5rf0h0yrdng1w9i8pis4yv9f4qffkh4c0g1ng5lxa9l747";
+  version = "0.5.2";
+  sha256 = "0c8w8h2mxpk2avj6321q9a1smzp970cyn87aj98vn8dln7h9cqsi";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix b/pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix
index 9b044f6dbab..dfaa69bca93 100644
--- a/pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix
+++ b/pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix
@@ -1,10 +1,10 @@
-{ cabal, extensibleExceptions, mtl }:
+{ cabal, extensibleExceptions, MonadCatchIOTransformers }:
 
 cabal.mkDerivation (self: {
   pname = "MonadCatchIO-mtl";
-  version = "0.3.0.5";
-  sha256 = "01c2xif4aly2lmg2qkri791ignq3r2qg4xbc8m06cdm6gh5a2dqp";
-  buildDepends = [ extensibleExceptions mtl ];
+  version = "0.3.1.0";
+  sha256 = "0qarf73c8zq8dgvxdiwqybpjfy8gba9vf4k0skiwyk5iphilxhhq";
+  buildDepends = [ extensibleExceptions MonadCatchIOTransformers ];
   meta = {
     homepage = "http://darcsden.com/jcpetruzza/MonadCatchIO-mtl";
     description = "Monad-transformer version of the Control.Exception module";
diff --git a/pkgs/development/libraries/haskell/RSA/default.nix b/pkgs/development/libraries/haskell/RSA/default.nix
index 9ac3036ffb5..883e7767c6d 100644
--- a/pkgs/development/libraries/haskell/RSA/default.nix
+++ b/pkgs/development/libraries/haskell/RSA/default.nix
@@ -14,6 +14,7 @@ cabal.mkDerivation (self: {
     binary cryptoApi cryptoPubkeyTypes DRBG pureMD5 QuickCheck SHA
     tagged testFramework testFrameworkQuickcheck2
   ];
+  doCheck = false;
   meta = {
     description = "Implementation of RSA, using the padding schemes of PKCS#1 v2.1.";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/SHA/default.nix b/pkgs/development/libraries/haskell/SHA/default.nix
index 34341270084..c2cbe154424 100644
--- a/pkgs/development/libraries/haskell/SHA/default.nix
+++ b/pkgs/development/libraries/haskell/SHA/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "SHA";
-  version = "1.6.1";
-  sha256 = "1v3a2skkbr64y7x1aqpq1qz03isc42l9hd1viqcsv4qlld595fgx";
+  version = "1.6.2.1";
+  sha256 = "0knzwqgwshr9b0rf8mf6xmgp3qxv4yavg0zy9xz4zmgm5319mvla";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ binary ];
diff --git a/pkgs/development/libraries/haskell/aeson-pretty/default.nix b/pkgs/development/libraries/haskell/aeson-pretty/default.nix
index d51274c83e9..1b568541a13 100644
--- a/pkgs/development/libraries/haskell/aeson-pretty/default.nix
+++ b/pkgs/development/libraries/haskell/aeson-pretty/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "aeson-pretty";
-  version = "0.7";
-  sha256 = "0zkqs3f4mr0v0j582h9ssq7dxgfkk59s7y66b640hc4zf0b5p7g7";
+  version = "0.7.1";
+  sha256 = "0gmm1kmdbanfyfdyij1gnazycp1x9703qfa5hgrz39j9046zg3y6";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/alsa-mixer/default.nix b/pkgs/development/libraries/haskell/alsa-mixer/default.nix
new file mode 100644
index 00000000000..67ab0275e78
--- /dev/null
+++ b/pkgs/development/libraries/haskell/alsa-mixer/default.nix
@@ -0,0 +1,15 @@
+{ cabal, alsaCore, alsaLib, c2hs }:
+
+cabal.mkDerivation (self: {
+  pname = "alsa-mixer";
+  version = "0.1.2";
+  sha256 = "081f3a62f83a269d72e0b0fac8bae8c81e9ec342d592fa25abe57f7206cf4414";
+  buildDepends = [ alsaCore ];
+  buildTools = [ c2hs ];
+  extraLibraries = [ alsaLib ];
+  meta = {
+    description = "Bindings to the ALSA simple mixer API";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.stdenv.lib.platforms.linux;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/attoparsec/0.11.1.0.nix b/pkgs/development/libraries/haskell/attoparsec/0.11.1.0.nix
new file mode 100644
index 00000000000..bd7bdc745b2
--- /dev/null
+++ b/pkgs/development/libraries/haskell/attoparsec/0.11.1.0.nix
@@ -0,0 +1,20 @@
+{ cabal, deepseq, QuickCheck, scientific, testFramework
+, testFrameworkQuickcheck2, text
+}:
+
+cabal.mkDerivation (self: {
+  pname = "attoparsec";
+  version = "0.11.1.0";
+  sha256 = "09mks6lbzmqmdz6s10lvdklmc0mydd1sk5hphhnybp3yr4pvh7jc";
+  buildDepends = [ deepseq scientific text ];
+  testDepends = [
+    QuickCheck testFramework testFrameworkQuickcheck2 text
+  ];
+  meta = {
+    homepage = "https://github.com/bos/attoparsec";
+    description = "Fast combinator parsing for bytestrings and text";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/boomerang/default.nix b/pkgs/development/libraries/haskell/boomerang/default.nix
index 3e65c0a2dd4..af0dbd33898 100644
--- a/pkgs/development/libraries/haskell/boomerang/default.nix
+++ b/pkgs/development/libraries/haskell/boomerang/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "boomerang";
-  version = "1.4.0";
-  sha256 = "1z6sx2r886jms59ah31is0fqkwix2kwxmpnrc6bb2r6xazznxfc9";
+  version = "1.4.1";
+  sha256 = "0pmaysp6vw6cnxh3px47pwflm4fc83idld09bpnfnh2jkscp630a";
   buildDepends = [ mtl text ];
   meta = {
     description = "Library for invertible parsing and printing";
diff --git a/pkgs/development/libraries/haskell/cassava/default.nix b/pkgs/development/libraries/haskell/cassava/default.nix
index 822cd41e4da..0d402206293 100644
--- a/pkgs/development/libraries/haskell/cassava/default.nix
+++ b/pkgs/development/libraries/haskell/cassava/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cassava";
-  version = "0.2.2.0";
-  sha256 = "0jv8lb9z7yf8rddyac0frsw4d1gchrgx8l9rryhl88gs7jss7dh7";
+  version = "0.3.0.0";
+  sha256 = "0s297664if9zp2y441jihcrmdfgdicjgncyx0rpddlr789vkbs9s";
   buildDepends = [
     attoparsec blazeBuilder deepseq text unorderedContainers vector
   ];
diff --git a/pkgs/development/libraries/haskell/charset/default.nix b/pkgs/development/libraries/haskell/charset/default.nix
index 829c35b7563..6907a33744f 100644
--- a/pkgs/development/libraries/haskell/charset/default.nix
+++ b/pkgs/development/libraries/haskell/charset/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "charset";
-  version = "0.3.5.1";
-  sha256 = "0bf9s5r2j9bkwmjxzvj5c2c7bhnf5gyh2kkx67lmy8xqalfxgmwn";
+  version = "0.3.6";
+  sha256 = "1g8m8nd5f100jlhvs6hbny96wy8iaggmp1lv36a5jxc54gmyxjd1";
   buildDepends = [ semigroups unorderedContainers ];
   meta = {
     homepage = "http://github.com/ekmett/charset";
diff --git a/pkgs/development/libraries/haskell/cipher-aes128/default.nix b/pkgs/development/libraries/haskell/cipher-aes128/default.nix
index c8be6bcb0dc..8bb093eb0f8 100644
--- a/pkgs/development/libraries/haskell/cipher-aes128/default.nix
+++ b/pkgs/development/libraries/haskell/cipher-aes128/default.nix
@@ -2,12 +2,14 @@
 
 cabal.mkDerivation (self: {
   pname = "cipher-aes128";
-  version = "0.5";
-  sha256 = "14rwnz0nwmy1zch1ywjxf2fgfs1xj84l4n785rhb6npmx6k7rmqd";
+  version = "0.6.2";
+  sha256 = "0rj56p8rcnvk95jc4fx4pxv25yk85vfad7v0znsgzp2hpw4h4ihb";
+  isLibrary = true;
+  isExecutable = true;
   buildDepends = [ cereal cryptoApi tagged ];
   meta = {
     homepage = "https://github.com/TomMD/cipher-aes128";
-    description = "AES128 using AES-NI when available";
+    description = "AES and common modes using AES-NI when available";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/concreteTyperep/default.nix b/pkgs/development/libraries/haskell/concreteTyperep/default.nix
new file mode 100644
index 00000000000..20894b844ac
--- /dev/null
+++ b/pkgs/development/libraries/haskell/concreteTyperep/default.nix
@@ -0,0 +1,18 @@
+{ cabal, binary, hashable, QuickCheck, testFramework
+, testFrameworkQuickcheck2
+}:
+
+cabal.mkDerivation (self: {
+  pname = "concrete-typerep";
+  version = "0.1.0.2";
+  sha256 = "07wy8drg4723zdy2172jrcvd5ir2c4ggcfz1n33jhm9iv3cl2app";
+  buildDepends = [ binary hashable ];
+  testDepends = [
+    binary hashable QuickCheck testFramework testFrameworkQuickcheck2
+  ];
+  meta = {
+    description = "Binary and Hashable instances for TypeRep";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/crypto-api/default.nix b/pkgs/development/libraries/haskell/crypto-api/default.nix
index aa786fa9784..5741d4b3c2e 100644
--- a/pkgs/development/libraries/haskell/crypto-api/default.nix
+++ b/pkgs/development/libraries/haskell/crypto-api/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "crypto-api";
-  version = "0.12.2.2";
-  sha256 = "0qmv8vizrbjs3k2f78r6ykyilps4zp7xxpzdxw7rngh154wqgv1k";
+  version = "0.13";
+  sha256 = "00zw9cymjhsdiy2p4prjvmmy7xnk12qggdpvxrp0hjnwlakfvyb2";
   buildDepends = [ cereal entropy tagged transformers ];
   meta = {
     homepage = "https://github.com/TomMD/crypto-api";
diff --git a/pkgs/development/libraries/haskell/crypto-conduit/default.nix b/pkgs/development/libraries/haskell/crypto-conduit/default.nix
index 1dc356b7f46..4450c3f4c61 100644
--- a/pkgs/development/libraries/haskell/crypto-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/crypto-conduit/default.nix
@@ -11,6 +11,9 @@ cabal.mkDerivation (self: {
     cereal conduit cryptoApi cryptocipher cryptohashCryptoapi hspec
     skein transformers
   ];
+  patchPhase = ''
+    sed -i -e 's|crypto-api >=.*|crypto-api|' crypto-conduit.cabal
+  '';
   jailbreak = true;
   doCheck = false;
   meta = {
diff --git a/pkgs/development/libraries/haskell/data-accessor/data-accessor-mtl.nix b/pkgs/development/libraries/haskell/data-accessor/data-accessor-mtl.nix
new file mode 100644
index 00000000000..ce550d02beb
--- /dev/null
+++ b/pkgs/development/libraries/haskell/data-accessor/data-accessor-mtl.nix
@@ -0,0 +1,14 @@
+{ cabal, dataAccessor, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "data-accessor-mtl";
+  version = "0.2.0.3";
+  sha256 = "1aksmm4ykb96khgq5y4vd40zbn4c73hgl21xvyc295cwxsyrbvbk";
+  buildDepends = [ dataAccessor mtl ];
+  meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Record_access";
+    description = "Use Accessor to access state in mtl State monad class";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/diagrams/contrib.nix b/pkgs/development/libraries/haskell/diagrams/contrib.nix
index 672cd60e7a5..60a0e729725 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.0.0.1";
-  sha256 = "0h0rgy2wlmqicrq4zqr1pdff7b7l7ylm1z82iy3adxf38ca2r6y2";
+  version = "1.1";
+  sha256 = "1f2rcqmcf94ykas4qjfcksh89z2p0hr4s1zkcx0izphrazjyj9gq";
   buildDepends = [
     arithmoi circlePacking colour dataDefault dataDefaultClass
     diagramsCore diagramsLib forceLayout lens MonadRandom mtl parsec
diff --git a/pkgs/development/libraries/haskell/diagrams/diagrams.nix b/pkgs/development/libraries/haskell/diagrams/diagrams.nix
index e6590ecc2dd..7a0cd53218d 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.0";
-  sha256 = "0l7d8l06g6nn6bkkwdn8ra9ir1dnqj6qsgdzd9jk78dqq5ihp7bg";
+  version = "1.0.0.1";
+  sha256 = "0nlh4n5ykymjkyi9n0r5l1caq1f26mijw7smnj78mv3d40qcrnv1";
   buildDepends = [
     diagramsContrib diagramsCore diagramsLib diagramsSvg
   ];
diff --git a/pkgs/development/libraries/haskell/errors/default.nix b/pkgs/development/libraries/haskell/errors/default.nix
index 1b091d871bb..5e55f3a6d59 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.4";
-  sha256 = "1mhh5xna5nppqg8aw93iil7nsnpx5j6r21a12bx4mmip8nzr6480";
+  version = "1.4.5";
+  sha256 = "16m4psk1150319bd2hrswpp2h90l1hhh7w13arfhy4ylh8vscm4q";
   buildDepends = [ either safe transformers ];
   jailbreak = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/fast-logger/default.nix b/pkgs/development/libraries/haskell/fast-logger/default.nix
index 77ecd711059..0e9a2dae8b4 100644
--- a/pkgs/development/libraries/haskell/fast-logger/default.nix
+++ b/pkgs/development/libraries/haskell/fast-logger/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "fast-logger";
-  version = "2.1.0";
-  sha256 = "116xdk455vlgyj3ck3bpzyavbfwq9asj2hlyjazb8vb1f9byxxkf";
+  version = "2.1.2";
+  sha256 = "0kz31jfhc40wlw3b49zcsn97y6vc9qqnaci743mgjskv4zbqaf34";
   buildDepends = [ blazeBuilder filepath text ];
   testDepends = [ hspec ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/foldl/default.nix b/pkgs/development/libraries/haskell/foldl/default.nix
index 44312abb35b..efc0aa61d3d 100644
--- a/pkgs/development/libraries/haskell/foldl/default.nix
+++ b/pkgs/development/libraries/haskell/foldl/default.nix
@@ -1,9 +1,10 @@
-{ cabal }:
+{ cabal, text }:
 
 cabal.mkDerivation (self: {
   pname = "foldl";
-  version = "1.0.0";
-  sha256 = "0r9lkyw33231nfl9ly25hk2i7k3c8ssmng473xvk76zkcrksj131";
+  version = "1.0.1";
+  sha256 = "194dkpjh0964cmh4mg35qffkg8dx8d821aj8k6khb40fq5s8smjy";
+  buildDepends = [ text ];
   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 a0816b5e7aa..6c1082b0f4b 100644
--- a/pkgs/development/libraries/haskell/force-layout/default.nix
+++ b/pkgs/development/libraries/haskell/force-layout/default.nix
@@ -1,10 +1,12 @@
-{ cabal, lens, newtype, vectorSpace, vectorSpacePoints }:
+{ cabal, dataDefaultClass, lens, vectorSpace, vectorSpacePoints }:
 
 cabal.mkDerivation (self: {
   pname = "force-layout";
-  version = "0.2.0.1";
-  sha256 = "1fvkfgjwsh0cr6ay4djxc8wg0vqfw2vcq3clqjz0zi8zyyjpv8rx";
-  buildDepends = [ lens newtype vectorSpace vectorSpacePoints ];
+  version = "0.3";
+  sha256 = "1v4jgh08ppvfxc8w13wc9iiwk5hh2q9n7m5xb9vl59bmxdx81kai";
+  buildDepends = [
+    dataDefaultClass lens vectorSpace vectorSpacePoints
+  ];
   meta = {
     description = "Simple force-directed layout";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/gloss-raster/default.nix b/pkgs/development/libraries/haskell/gloss-raster/default.nix
new file mode 100644
index 00000000000..a055dd5adf2
--- /dev/null
+++ b/pkgs/development/libraries/haskell/gloss-raster/default.nix
@@ -0,0 +1,14 @@
+{ cabal, gloss, repa, llvm }:
+
+cabal.mkDerivation (self: {
+  pname = "gloss-raster";
+  version = "1.8.1.1";
+  sha256 = "0qqk2fizmv1zdvi8lljxiqdwlmfzni4qzsdvm2jbvgg5qjx9l9qp";
+  buildDepends = [ gloss repa llvm ];
+  meta = {
+    homepage = "http://gloss.ouroborus.net";
+    description = "Parallel rendering of raster images";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index f7f318e502a..36e56de639c 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.2.0";
-  sha256 = "10rkqnrj9gi4h25wfh1w4giqiir2d63vb85ysbxpc97rkbz3fwsg";
+  version = "4.4.3.0";
+  sha256 = "1ngjzqgyhdfkzikyg6cicqdb6cpw2bbfr4g73vgmzlg8spy1cyg5";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -26,6 +26,9 @@ cabal.mkDerivation (self: {
     testFrameworkHunit testFrameworkQuickcheck2 text time
   ];
   doCheck = false;
+  patchPhase = ''
+    sed -i -e 's|pandoc-citeproc >=.*,|pandoc-citeproc,|' hakyll.cabal
+  '';
   meta = {
     homepage = "http://jaspervdj.be/hakyll";
     description = "A static website compiler library";
diff --git a/pkgs/development/libraries/haskell/happstack/happstack-server.nix b/pkgs/development/libraries/haskell/happstack/happstack-server.nix
index e12d848f00f..88651c62b59 100644
--- a/pkgs/development/libraries/haskell/happstack/happstack-server.nix
+++ b/pkgs/development/libraries/haskell/happstack/happstack-server.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "happstack-server";
-  version = "7.3.1";
-  sha256 = "0yk4ylyyc8pz7j5lxibah356f986w932ncxp4y612rqcd0abzrq4";
+  version = "7.3.2";
+  sha256 = "11wnnadxy1j786p81nkvd28vgpjjhm1amy34k5r0ynz0nkanfp3z";
   buildDepends = [
     base64Bytestring blazeHtml extensibleExceptions filepath hslogger
     html monadControl mtl network parsec sendfile syb systemFilepath
diff --git a/pkgs/development/libraries/haskell/highlighting-kate/default.nix b/pkgs/development/libraries/haskell/highlighting-kate/default.nix
index 9049664f304..f991bb58586 100644
--- a/pkgs/development/libraries/haskell/highlighting-kate/default.nix
+++ b/pkgs/development/libraries/haskell/highlighting-kate/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "highlighting-kate";
-  version = "0.5.5.1";
-  sha256 = "173g7dss3v3acbn6b5ajmc1n1v4wx2395cckw8n61myl7mzzbrry";
+  version = "0.5.6";
+  sha256 = "1nd1ima3x7bb3lhkpzfw1qbl8g8mwp1ixk2w7nf2p1200c5zs49d";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ blazeHtml filepath mtl parsec regexPcre ];
diff --git a/pkgs/development/libraries/haskell/hledger-lib/default.nix b/pkgs/development/libraries/haskell/hledger-lib/default.nix
index 89a6622cf1c..7e57f0d21e1 100644
--- a/pkgs/development/libraries/haskell/hledger-lib/default.nix
+++ b/pkgs/development/libraries/haskell/hledger-lib/default.nix
@@ -1,20 +1,20 @@
 { cabal, cmdargs, csv, dataPprint, filepath, HUnit, mtl, parsec
-, prettyShow, regexCompatTdfa, regexpr, safe, split, testFramework
+, prettyShow, regexpr, regexTdfa, safe, split, testFramework
 , testFrameworkHunit, time, transformers, utf8String
 }:
 
 cabal.mkDerivation (self: {
   pname = "hledger-lib";
-  version = "0.22";
-  sha256 = "059dbwmafwy25pbr9311lknhyjlycdhhal4ng9i56bgd334l2wx3";
+  version = "0.22.1";
+  sha256 = "0kaa778swx4vw0rkhxd3h9h9qj13rzz24x92z139vad1n722gcw1";
   buildDepends = [
-    cmdargs csv dataPprint filepath HUnit mtl parsec prettyShow
-    regexCompatTdfa regexpr safe split time transformers utf8String
+    cmdargs csv dataPprint filepath HUnit mtl parsec prettyShow regexpr
+    regexTdfa safe split time transformers utf8String
   ];
   testDepends = [
-    cmdargs csv dataPprint filepath HUnit mtl parsec prettyShow
-    regexCompatTdfa regexpr safe split testFramework testFrameworkHunit
-    time transformers
+    cmdargs csv dataPprint filepath HUnit mtl parsec prettyShow regexpr
+    regexTdfa safe split testFramework testFrameworkHunit time
+    transformers
   ];
   meta = {
     homepage = "http://hledger.org";
diff --git a/pkgs/development/libraries/haskell/hledger-web/default.nix b/pkgs/development/libraries/haskell/hledger-web/default.nix
index f846dba7fc8..21dc845b117 100644
--- a/pkgs/development/libraries/haskell/hledger-web/default.nix
+++ b/pkgs/development/libraries/haskell/hledger-web/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hledger-web";
-  version = "0.22";
-  sha256 = "0bd1cb6988ainkzi034a4g4xnslqc6djv74gbq58aaxjqn4m7m80";
+  version = "0.22.1";
+  sha256 = "0nqw7scnhcip2bg832p9v0rqk01gn4xwj9bqsvsvmh31fh9ldchw";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/hledger/default.nix b/pkgs/development/libraries/haskell/hledger/default.nix
index 47a5ed381f6..17db5432991 100644
--- a/pkgs/development/libraries/haskell/hledger/default.nix
+++ b/pkgs/development/libraries/haskell/hledger/default.nix
@@ -1,13 +1,13 @@
 { cabal, cmdargs, csv, dataPprint, filepath, haskeline, hledgerLib
-, HUnit, mtl, parsec, prettyShow, regexCompatTdfa, regexpr, safe
-, shakespeareText, split, tabular, testFramework
-, testFrameworkHunit, text, time, transformers, utf8String
+, HUnit, mtl, parsec, prettyShow, regexpr, safe, shakespeareText
+, split, tabular, testFramework, testFrameworkHunit, text, time
+, transformers, utf8String
 }:
 
 cabal.mkDerivation (self: {
   pname = "hledger";
-  version = "0.22";
-  sha256 = "1fwi1a2nvhfjinif7gy7rv00gn7kazwzmhsskpim2a7bg99sfxb9";
+  version = "0.22.1";
+  sha256 = "1mlh5dlbfkqz41i7zaa4cybf75cg5mrp6sj48kwns0liaqyvav58";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -16,9 +16,8 @@ cabal.mkDerivation (self: {
   ];
   testDepends = [
     cmdargs csv dataPprint filepath haskeline hledgerLib HUnit mtl
-    parsec prettyShow regexCompatTdfa regexpr safe shakespeareText
-    split tabular testFramework testFrameworkHunit text time
-    transformers
+    parsec prettyShow regexpr safe shakespeareText split tabular
+    testFramework testFrameworkHunit text time transformers
   ];
   meta = {
     homepage = "http://hledger.org";
diff --git a/pkgs/development/libraries/haskell/hoogle/default.nix b/pkgs/development/libraries/haskell/hoogle/default.nix
index b461b5a1fd4..7744a705efc 100644
--- a/pkgs/development/libraries/haskell/hoogle/default.nix
+++ b/pkgs/development/libraries/haskell/hoogle/default.nix
@@ -1,22 +1,22 @@
 { cabal, aeson, binary, blazeBuilder, Cabal, caseInsensitive
 , cmdargs, conduit, deepseq, filepath, haskellSrcExts, httpTypes
-, parsec, random, safe, tagsoup, text, time, transformers, uniplate
-, wai, warp
+, parsec, random, safe, shake, tagsoup, text, time, transformers
+, uniplate, wai, warp
 }:
 
 cabal.mkDerivation (self: {
   pname = "hoogle";
-  version = "4.2.26";
-  sha256 = "07nc58vqdj5x3h6d7z8ilbff0pkqd3r7g789xyaalnh6wjkd7380";
+  version = "4.2.28";
+  sha256 = "0dd8qsspbcb76ld9v61x2jjsyxakrasww69gzzprb4dxzm58lsid";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     aeson binary blazeBuilder Cabal caseInsensitive cmdargs conduit
-    deepseq filepath haskellSrcExts httpTypes parsec random safe
+    deepseq filepath haskellSrcExts httpTypes parsec random safe shake
     tagsoup text time transformers uniplate wai warp
   ];
   testDepends = [ filepath ];
-  doCheck = false;
+  testTarget = "--test-option=--no-net";
   meta = {
     homepage = "http://www.haskell.org/hoogle/";
     description = "Haskell API Search";
diff --git a/pkgs/development/libraries/haskell/hslua/default.nix b/pkgs/development/libraries/haskell/hslua/default.nix
index 3d1505a7e80..a0b336f24f3 100644
--- a/pkgs/development/libraries/haskell/hslua/default.nix
+++ b/pkgs/development/libraries/haskell/hslua/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hslua";
-  version = "0.3.9";
-  sha256 = "0rs9hfc1k7wihgvp6vizccwppv5nd9mszp7a2y7pwjrprapwj07c";
+  version = "0.3.10";
+  sha256 = "1d79sp9xmzbq74jk7kj81j0z4vm813fkkxkpbyzg07x649i6q0v2";
   buildDepends = [ mtl ];
   pkgconfigDepends = [ lua ];
   configureFlags = "-fsystem-lua";
diff --git a/pkgs/development/libraries/haskell/hxt/default.nix b/pkgs/development/libraries/haskell/hxt/default.nix
index 071471d906e..820a6549d34 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.2";
-  sha256 = "0v4j9z65sbjs44n1ijy14f0l2swva6jqz89x2ibf89q8bx36sj6n";
+  version = "9.3.1.3";
+  sha256 = "1ynca1d0wzql3vny9wxi47bim64h1l56gdamwkfhh4snajqkamwd";
   buildDepends = [
     binary deepseq filepath HUnit hxtCharproperties hxtRegexXmlschema
     hxtUnicode mtl network parsec
diff --git a/pkgs/development/libraries/haskell/idna/default.nix b/pkgs/development/libraries/haskell/idna/default.nix
index 1d5bc92bf6f..125083de890 100644
--- a/pkgs/development/libraries/haskell/idna/default.nix
+++ b/pkgs/development/libraries/haskell/idna/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "idna";
-  version = "0.2";
-  sha256 = "0gl1mn2fjyxdpzl024imspf7hk4xvj9r8mvisqnlkdsng8i5jnyz";
+  version = "0.3.0";
+  sha256 = "04w2mp9wa4mzdz4njx47j081jia8y000b46cw8vmx44fx8gv1zwp";
   buildDepends = [ punycode stringprep text ];
   meta = {
     description = "Implements IDNA (RFC 3490)";
diff --git a/pkgs/development/libraries/haskell/liblastfm/default.nix b/pkgs/development/libraries/haskell/liblastfm/default.nix
index 83f87f7c8b5..1103651f0d0 100644
--- a/pkgs/development/libraries/haskell/liblastfm/default.nix
+++ b/pkgs/development/libraries/haskell/liblastfm/default.nix
@@ -1,14 +1,14 @@
 { cabal, aeson, cereal, contravariant, cryptoApi, httpConduit
-, httpTypes, network, pureMD5, semigroups, text, void
+, httpTypes, network, pureMD5, semigroups, tagged, text, void
 }:
 
 cabal.mkDerivation (self: {
   pname = "liblastfm";
-  version = "0.3.0.0";
-  sha256 = "131p51yi17qfgk8h5b0rx2jyl37w4spafxmlcws1s5pk6bwy75jf";
+  version = "0.3.2.0";
+  sha256 = "09xsjkwknfvdd3zb7a1qbch45ri6knkn33wl6xbi48sw5i79lxnv";
   buildDepends = [
     aeson cereal contravariant cryptoApi httpConduit httpTypes network
-    pureMD5 semigroups text void
+    pureMD5 semigroups tagged text void
   ];
   meta = {
     description = "Lastfm API interface";
diff --git a/pkgs/development/libraries/haskell/lifted-async/default.nix b/pkgs/development/libraries/haskell/lifted-async/default.nix
index fa48f289a4c..9eab08955f5 100644
--- a/pkgs/development/libraries/haskell/lifted-async/default.nix
+++ b/pkgs/development/libraries/haskell/lifted-async/default.nix
@@ -1,15 +1,14 @@
-{ cabal, async, HUnit, liftedBase, monadControl, mtl, testFramework
-, testFrameworkHunit, testFrameworkTh, transformersBase
+{ cabal, async, HUnit, liftedBase, monadControl, mtl, tasty
+, tastyHunit, tastyTh, transformersBase
 }:
 
 cabal.mkDerivation (self: {
   pname = "lifted-async";
-  version = "0.1.0.1";
-  sha256 = "03b89cixfin7ksdjh12g0pfrmgzw9mnx6nyvywv3rjc1sra3b8f0";
+  version = "0.1.1";
+  sha256 = "0hkqiplnvy14m881n4bzamvy1432bxy4k1j4rwl824w5fn2h5i74";
   buildDepends = [ async liftedBase monadControl transformersBase ];
   testDepends = [
-    HUnit liftedBase monadControl mtl testFramework testFrameworkHunit
-    testFrameworkTh
+    async HUnit liftedBase monadControl mtl tasty tastyHunit tastyTh
   ];
   meta = {
     homepage = "https://github.com/maoe/lifted-async";
diff --git a/pkgs/development/libraries/haskell/mmorph/default.nix b/pkgs/development/libraries/haskell/mmorph/default.nix
index c4379499fad..702aca476fd 100644
--- a/pkgs/development/libraries/haskell/mmorph/default.nix
+++ b/pkgs/development/libraries/haskell/mmorph/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "mmorph";
-  version = "1.0.0";
-  sha256 = "10r8frcn6ar56n1vxy8rkys8j52f8xkqan8qxqanka1150k6khqk";
+  version = "1.0.1";
+  sha256 = "15a4isvxb4my72hzndgfy66792r9fpkn9vnmr2fnv9d9vl058y14";
   buildDepends = [ transformers ];
   meta = {
     description = "Monad morphisms";
diff --git a/pkgs/development/libraries/haskell/mueval/default.nix b/pkgs/development/libraries/haskell/mueval/default.nix
index f4b3b4a78ed..06d2f58ce17 100644
--- a/pkgs/development/libraries/haskell/mueval/default.nix
+++ b/pkgs/development/libraries/haskell/mueval/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "mueval";
-  version = "0.9.1";
-  sha256 = "1f668z7rpdj2m239f5i54v7kd7wsvx3qvvhwyiavf28cmk32mxpq";
+  version = "0.9.1.1";
+  sha256 = "0p9qf8lb3c1y87qpl9b4n6v6bjrb9fw3yfg4p7niqdz31454d2pz";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -13,7 +13,7 @@ cabal.mkDerivation (self: {
     utf8String
   ];
   meta = {
-    homepage = "http://code.haskell.org/mubot/";
+    homepage = "https://github.com/gwern/mueval";
     description = "Safely evaluate pure Haskell expressions";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/network/2.4.2.1.nix b/pkgs/development/libraries/haskell/network/2.4.2.2.nix
index 33a79a7eccf..390529b6a76 100644
--- a/pkgs/development/libraries/haskell/network/2.4.2.1.nix
+++ b/pkgs/development/libraries/haskell/network/2.4.2.2.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "network";
-  version = "2.4.2.1";
-  sha256 = "1rm8zlpy6738wxagk1xmlvawn807cd4xf2fn0hgjqj12scviz60p";
+  version = "2.4.2.2";
+  sha256 = "0bxfy6irh5050ykhwfwzl5fnqi74j7x6k4ni7ahw2zwjy3qafc5x";
   buildDepends = [ parsec ];
   testDepends = [
     HUnit testFramework testFrameworkHunit testFrameworkQuickcheck2
diff --git a/pkgs/development/libraries/haskell/pandoc-citeproc/default.nix b/pkgs/development/libraries/haskell/pandoc-citeproc/default.nix
index bbfd6430d4f..62044cc9f5f 100644
--- a/pkgs/development/libraries/haskell/pandoc-citeproc/default.nix
+++ b/pkgs/development/libraries/haskell/pandoc-citeproc/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "pandoc-citeproc";
-  version = "0.2";
-  sha256 = "0ghdkzml2rcvjf1wlpsa6ih117x56qlb3ajpbwnpwm3y4wm0jm2d";
+  version = "0.3.0.1";
+  sha256 = "1w8ljf0mc5a3bqv0hymg2daafkrlzdzar23l4yqakjr21n75nvlx";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -16,7 +16,7 @@ cabal.mkDerivation (self: {
     temporary texmath text time vector yaml
   ];
   testDepends = [
-    aeson aesonPretty filepath pandoc pandocTypes temporary text yaml
+    aeson filepath pandoc pandocTypes temporary text yaml
   ];
   doCheck = false;
   meta = {
diff --git a/pkgs/development/libraries/haskell/pandoc/default.nix b/pkgs/development/libraries/haskell/pandoc/default.nix
index b42fc3633f0..6d30e638fcb 100644
--- a/pkgs/development/libraries/haskell/pandoc/default.nix
+++ b/pkgs/development/libraries/haskell/pandoc/default.nix
@@ -1,20 +1,21 @@
 { cabal, aeson, alex, ansiTerminal, attoparsec, base64Bytestring
-, blazeHtml, blazeMarkup, dataDefault, Diff, extensibleExceptions
-, filepath, happy, highlightingKate, hslua, HTTP, httpConduit
-, httpTypes, HUnit, mtl, network, pandocTypes, parsec, QuickCheck
-, random, syb, tagsoup, temporary, testFramework
-, testFrameworkHunit, testFrameworkQuickcheck2, texmath, text, time
-, unorderedContainers, vector, xml, yaml, zipArchive, zlib
+, binary, blazeHtml, blazeMarkup, dataDefault, Diff
+, extensibleExceptions, filepath, happy, highlightingKate, hslua
+, HTTP, httpConduit, httpTypes, HUnit, mtl, network, pandocTypes
+, parsec, QuickCheck, random, syb, tagsoup, temporary
+, testFramework, testFrameworkHunit, testFrameworkQuickcheck2
+, texmath, text, time, unorderedContainers, vector, xml, yaml
+, zipArchive, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "pandoc";
-  version = "1.12.2.1";
-  sha256 = "1xyvhfsz0cy5f7cwpz4kl0l87vylb8860c06wvk49z9fh2xkg6lf";
+  version = "1.12.3";
+  sha256 = "007pcb93s1frcyx3x4shcb6bynysy7g0hvrqlxs4991a7jp360bl";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    aeson alex attoparsec base64Bytestring blazeHtml blazeMarkup
+    aeson alex attoparsec base64Bytestring binary blazeHtml blazeMarkup
     dataDefault extensibleExceptions filepath happy highlightingKate
     hslua HTTP httpConduit httpTypes mtl network pandocTypes parsec
     random syb tagsoup temporary texmath text time unorderedContainers
diff --git a/pkgs/development/libraries/haskell/parsec/3.1.4.nix b/pkgs/development/libraries/haskell/parsec/3.1.5.nix
index 82032dda61c..9d1174db056 100644
--- a/pkgs/development/libraries/haskell/parsec/3.1.4.nix
+++ b/pkgs/development/libraries/haskell/parsec/3.1.5.nix
@@ -2,9 +2,10 @@
 
 cabal.mkDerivation (self: {
   pname = "parsec";
-  version = "3.1.4";
-  sha256 = "0milmi4q5jdcmmwjqa4lcs1vcw5frkrlrxc8q17lkas3p2m10kh5";
+  version = "3.1.5";
+  sha256 = "1f1wg4qxp1ss2160sa3vbqff18fabwhqjkyfj4sgyfmwf9fj8wn5";
   buildDepends = [ mtl text ];
+  jailbreak = true;
   meta = {
     homepage = "http://www.cs.uu.nl/~daan/parsec.html";
     description = "Monadic parser combinators";
diff --git a/pkgs/development/libraries/haskell/persistent-sqlite/default.nix b/pkgs/development/libraries/haskell/persistent-sqlite/default.nix
index 33cb2e0340a..fc59c2477ed 100644
--- a/pkgs/development/libraries/haskell/persistent-sqlite/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-sqlite/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "persistent-sqlite";
-  version = "1.3.0";
-  sha256 = "04h0k3zf1jpa8y37naqjmh38jx32y61mg22rsmqjjpz1b0m0pwgb";
+  version = "1.3.0.1";
+  sha256 = "0nfih7g32pmh0hq798r4mxkkrp2zjkqb38zwhdyrdbszk6ryzx9l";
   buildDepends = [
     aeson conduit monadControl monadLogger persistent text transformers
   ];
diff --git a/pkgs/development/libraries/haskell/persistent-template/default.nix b/pkgs/development/libraries/haskell/persistent-template/default.nix
index b004a18af15..60ae9a40ca3 100644
--- a/pkgs/development/libraries/haskell/persistent-template/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-template/default.nix
@@ -4,13 +4,15 @@
 
 cabal.mkDerivation (self: {
   pname = "persistent-template";
-  version = "1.3.0";
-  sha256 = "0amg5xncxgpc19yhj3gi7ldw126dy725pxj7kp43lbgggap0yfv9";
+  version = "1.3.1";
+  sha256 = "148gznxqzd5743l0r3pc9g14gvanxpl6nfla2lhb2xsa162b2hjx";
   buildDepends = [
     aeson monadControl monadLogger persistent text transformers
     unorderedContainers
   ];
-  testDepends = [ aeson hspec persistent QuickCheck text ];
+  testDepends = [
+    aeson hspec persistent QuickCheck text transformers
+  ];
   meta = {
     homepage = "http://www.yesodweb.com/book/persistent";
     description = "Type-safe, non-relational, multi-backend persistence";
diff --git a/pkgs/development/libraries/haskell/pipes-attoparsec/default.nix b/pkgs/development/libraries/haskell/pipes-attoparsec/default.nix
index 50f169928db..484f2104567 100644
--- a/pkgs/development/libraries/haskell/pipes-attoparsec/default.nix
+++ b/pkgs/development/libraries/haskell/pipes-attoparsec/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "pipes-attoparsec";
-  version = "0.3.0";
-  sha256 = "1jsgssfs0ndn8aayc0rxyb4vlp2fny8npmnvym7v1yhp2qv84c7b";
+  version = "0.3.1";
+  sha256 = "1bvz5fxy2mfz3swiv9jfmhxl1psmm3c7nfi58pggam52lz20va2h";
   buildDepends = [ attoparsec pipes pipesParse text transformers ];
   testDepends = [
     attoparsec HUnit mmorph pipes pipesParse QuickCheck testFramework
diff --git a/pkgs/development/libraries/haskell/pipes/default.nix b/pkgs/development/libraries/haskell/pipes/default.nix
index d9d92398709..766393d7b45 100644
--- a/pkgs/development/libraries/haskell/pipes/default.nix
+++ b/pkgs/development/libraries/haskell/pipes/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "pipes";
-  version = "4.0.1";
-  sha256 = "0q2i58w4nlf23di6rjrv543nmj5d5nkz29q9aciw89zx5x5m22h9";
+  version = "4.0.2";
+  sha256 = "18hcpklryyq9f6iwycxzi3sd6gyd9h0gy0ckg4rl7rhgy73hzgcz";
   buildDepends = [ mmorph mtl transformers void ];
   testDepends = [
     mtl QuickCheck testFramework testFrameworkQuickcheck2 transformers
diff --git a/pkgs/development/libraries/haskell/pointedlist/default.nix b/pkgs/development/libraries/haskell/pointedlist/default.nix
new file mode 100644
index 00000000000..881beafaca0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/pointedlist/default.nix
@@ -0,0 +1,13 @@
+{ cabal, binary, derive }:
+
+cabal.mkDerivation (self: {
+  pname = "pointedlist";
+  version = "0.6";
+  sha256 = "16sfw77w46f7rjd1lpdfzi1bdgf81siy2sj71xqkqbsz6cvkjakg";
+  buildDepends = [ binary derive ];
+  meta = {
+    description = "A zipper-like comonad which works as a list, tracking a position";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/poppler/default.nix b/pkgs/development/libraries/haskell/poppler/default.nix
new file mode 100644
index 00000000000..5af2ead5e8e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/poppler/default.nix
@@ -0,0 +1,20 @@
+{ cabal, cairo, gdk_pixbuf, glib, gtk, gtk2hsBuildtools, libc, mtl
+, pango, popplerGlib
+}:
+
+cabal.mkDerivation (self: {
+  pname = "poppler";
+  version = "0.12.2.2";
+  sha256 = "1ln5akiarv1ng5gjrzf8bnkm556xzl50m209qvi5nk98g7fyhqs7";
+  buildDepends = [ cairo glib gtk mtl ];
+  buildTools = [ gtk2hsBuildtools ];
+  extraLibraries = [ libc ];
+  pkgconfigDepends = [ cairo gdk_pixbuf glib gtk pango popplerGlib ];
+  meta = {
+    homepage = "http://www.haskell.org/gtk2hs/";
+    description = "Binding to the Poppler";
+    license = self.stdenv.lib.licenses.gpl2;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.ianwookim ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/pretty-show/1.6.3.nix b/pkgs/development/libraries/haskell/pretty-show/1.6.5.nix
index 6979213cc29..60a191da251 100644
--- a/pkgs/development/libraries/haskell/pretty-show/1.6.3.nix
+++ b/pkgs/development/libraries/haskell/pretty-show/1.6.5.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "pretty-show";
-  version = "1.6.3";
-  sha256 = "161zhbsqa86s1gqa7ss8pimw2msdlvgjlldh6ryizc17579dfcfw";
+  version = "1.6.5";
+  sha256 = "0yn20gh2xwzvfwb9fdzxqqbbb6vvd4rlv5ancw4vc8p2kgfhwxf3";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ filepath haskellLexer ];
diff --git a/pkgs/development/libraries/haskell/scientific/default.nix b/pkgs/development/libraries/haskell/scientific/default.nix
index 8494168df15..646687af96a 100644
--- a/pkgs/development/libraries/haskell/scientific/default.nix
+++ b/pkgs/development/libraries/haskell/scientific/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "scientific";
-  version = "0.1.0.1";
-  sha256 = "0s401gxwap4xwz9rxypc76rs5w344s3an45295ybf3id6yal5140";
+  version = "0.2.0.1";
+  sha256 = "0xwxds884pqywjbc4j6qkx27nbi64sihig8ps9v884sk08021wrp";
   buildDepends = [ deepseq hashable text ];
   testDepends = [ smallcheck tasty tastySmallcheck text ];
   doCheck = false;
diff --git a/pkgs/development/libraries/haskell/shake/default.nix b/pkgs/development/libraries/haskell/shake/default.nix
index 91897bd5a66..411140459ed 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.10.10";
-  sha256 = "0xj5r0rj0ybhll9zymipkj338axv11klbpxirdbpdqjh1iaa9yl7";
+  version = "0.11";
+  sha256 = "0w0m94ahr2pzgrknk023vpabjydaj2ir8372rca3b4xik6idaag2";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/shelly/default.nix b/pkgs/development/libraries/haskell/shelly/default.nix
index 6f73537e8b6..aed1b98986b 100644
--- a/pkgs/development/libraries/haskell/shelly/default.nix
+++ b/pkgs/development/libraries/haskell/shelly/default.nix
@@ -3,8 +3,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shelly";
-  version = "1.3.2";
-  sha256 = "1n6kj9sw6d1nwg7lz1pgmjn8pjxxr76m5sxybv4hacakid3glddh";
+  version = "1.4.0.1";
+  sha256 = "0hra0dk1zma15jd1cag04lcvw6cmddhghi4gpajrrvyij0pi6ij7";
   buildDepends = [
     mtl systemFileio systemFilepath text time unixCompat
   ];
diff --git a/pkgs/development/libraries/haskell/smtp-mail/default.nix b/pkgs/development/libraries/haskell/smtp-mail/default.nix
index e07ed9e236b..814a89f70c2 100644
--- a/pkgs/development/libraries/haskell/smtp-mail/default.nix
+++ b/pkgs/development/libraries/haskell/smtp-mail/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "smtp-mail";
-  version = "0.1.4.3";
-  sha256 = "0kpm42n7s3rvkn9i3s8wvkdrq2d85qy422y6p2r4s7nivh6sx1dk";
+  version = "0.1.4.4";
+  sha256 = "055b736sr9w4dxf1p5xjfsisqxk49kz4d3hyqwgdvi8zzvi31vp6";
   buildDepends = [
     base16Bytestring base64Bytestring cryptohash filepath mimeMail
     network text
diff --git a/pkgs/development/libraries/haskell/stringprep/default.nix b/pkgs/development/libraries/haskell/stringprep/default.nix
index f1654751f75..3fbdf196d5e 100644
--- a/pkgs/development/libraries/haskell/stringprep/default.nix
+++ b/pkgs/development/libraries/haskell/stringprep/default.nix
@@ -1,10 +1,14 @@
-{ cabal, ranges, text, textIcu }:
+{ cabal, QuickCheck, tasty, tastyQuickcheck, tastyTh, text, textIcu
+}:
 
 cabal.mkDerivation (self: {
   pname = "stringprep";
-  version = "0.1.5";
-  sha256 = "1a25b18kd1zx06gi677g3xvsm49izhhf26z2dfljkjfykf05kqmp";
-  buildDepends = [ ranges text textIcu ];
+  version = "1.0.0";
+  sha256 = "0ha4cvzdppd514xh9315v3nvrn1q4xd74gifdqpszw98hj2mw0b0";
+  buildDepends = [ text textIcu ];
+  testDepends = [
+    QuickCheck tasty tastyQuickcheck tastyTh text textIcu
+  ];
   meta = {
     description = "Implements the \"StringPrep\" algorithm";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/symbol/default.nix b/pkgs/development/libraries/haskell/symbol/default.nix
index 7b1c2d3821c..e5564b758ad 100644
--- a/pkgs/development/libraries/haskell/symbol/default.nix
+++ b/pkgs/development/libraries/haskell/symbol/default.nix
@@ -2,12 +2,12 @@
 
 cabal.mkDerivation (self: {
   pname = "symbol";
-  version = "0.2.0";
-  sha256 = "13vr6j3wkxbdbd27xklnidfkpkjwl0kldf69z470bm5indvaaxfd";
+  version = "0.2.1";
+  sha256 = "1g9rpz40v6wnmp671wvbbinzvvxkibdnny4i6ai28pn3sxa6fgkj";
   buildDepends = [ deepseq syb ];
   jailbreak = true;
   meta = {
-    homepage = "http://www.eecs.harvard.edu/~mainland/";
+    homepage = "http://www.cs.drexel.edu/~mainland/";
     description = "A 'Symbol' type for fast symbol comparison";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/system-fileio/default.nix b/pkgs/development/libraries/haskell/system-fileio/default.nix
index f61dedb7b8c..d2c40213886 100644
--- a/pkgs/development/libraries/haskell/system-fileio/default.nix
+++ b/pkgs/development/libraries/haskell/system-fileio/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "system-fileio";
-  version = "0.3.11";
-  sha256 = "0hnjrzhzbqx9l93c8dnl5b54f72ki584cn3jh8m6z56x2lrs24zb";
+  version = "0.3.12";
+  sha256 = "0mfkny5fwksrwkvz59f5xnb7b47rmm4cbiygmri5wklnc3vdn0hs";
   buildDepends = [ systemFilepath text time ];
   meta = {
     homepage = "https://john-millikin.com/software/haskell-filesystem/";
diff --git a/pkgs/development/libraries/haskell/system-filepath/default.nix b/pkgs/development/libraries/haskell/system-filepath/default.nix
index 84ca453c6c1..2e060e252dd 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.8";
-  sha256 = "15x0yxakqqrdqvghr0l4pzvy5a68xxdv1c75d3qwx604665j3xkw";
+  version = "0.4.9";
+  sha256 = "0qxbibq6lj7gyw62crp774pv2a8cm83rllw5yjjsg372nk4m1is0";
   buildDepends = [ deepseq text ];
   meta = {
     homepage = "https://john-millikin.com/software/haskell-filesystem/";
diff --git a/pkgs/development/libraries/haskell/texmath/default.nix b/pkgs/development/libraries/haskell/texmath/default.nix
index a129ae46a35..8dd3f5c6fc9 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.5.2";
-  sha256 = "1pvaf40avjx43ydhi9n6vkkjw9gk5apws4bgqqq2g601kvmi163l";
+  version = "0.6.6";
+  sha256 = "0mbimlvqsfx6w4dvilidy5cd9732kf6bnfnn6n7rnmq88avxxnmc";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ pandocTypes parsec syb xml ];
diff --git a/pkgs/development/libraries/haskell/text/1.0.0.0.nix b/pkgs/development/libraries/haskell/text/1.1.0.0.nix
index fe740864970..87a89c43be4 100644
--- a/pkgs/development/libraries/haskell/text/1.0.0.0.nix
+++ b/pkgs/development/libraries/haskell/text/1.1.0.0.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "text";
-  version = "1.0.0.0";
-  sha256 = "13i7xn5xl8lc5hcd08i4n0qp9rx51588jnjn4c68gp87vw1gwvjn";
+  version = "1.1.0.0";
+  sha256 = "14mssz27f5ivhwcl9gvbw0s1mjh7hw9gviwxnimqiqzh4jlavwc0";
   buildDepends = [ deepseq ];
   testDepends = [
     deepseq HUnit QuickCheck random testFramework testFrameworkHunit
diff --git a/pkgs/development/libraries/haskell/th-lift/default.nix b/pkgs/development/libraries/haskell/th-lift/default.nix
index c10feac4ba6..04c8b0bd51a 100644
--- a/pkgs/development/libraries/haskell/th-lift/default.nix
+++ b/pkgs/development/libraries/haskell/th-lift/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "th-lift";
-  version = "0.6";
-  sha256 = "0nsxrmilp2g0nx4s9iigj2llza6phphcfr4j9gvmqmx6kf2z9vns";
+  version = "0.6.1";
+  sha256 = "0m1ips0n06jnjr5lssq7x4jaa5878sw03l8iaprya37bnkxxak5d";
   meta = {
     description = "Derive Template Haskell's Lift class for datatypes";
     license = "unknown";
diff --git a/pkgs/development/libraries/haskell/threads/default.nix b/pkgs/development/libraries/haskell/threads/default.nix
index 0683ba62d4b..932ef113fa7 100644
--- a/pkgs/development/libraries/haskell/threads/default.nix
+++ b/pkgs/development/libraries/haskell/threads/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "threads";
-  version = "0.5.0.3";
-  sha256 = "1da5p65qf1w746flqnl7pxd05pdh8psi6psi0zsqqxmiykw4zvrf";
+  version = "0.5.1.1";
+  sha256 = "196yjkq7wgjcck9wqj4f3x3k47ls9yiay3k6d8k7kzixc2xc621z";
   buildDepends = [ baseUnicodeSymbols stm ];
   testDepends = [
     baseUnicodeSymbols concurrentExtra HUnit stm testFramework
diff --git a/pkgs/development/libraries/haskell/wai-handler-fastcgi/default.nix b/pkgs/development/libraries/haskell/wai-handler-fastcgi/default.nix
index feb186209b7..6612003fa2e 100644
--- a/pkgs/development/libraries/haskell/wai-handler-fastcgi/default.nix
+++ b/pkgs/development/libraries/haskell/wai-handler-fastcgi/default.nix
@@ -1,14 +1,14 @@
-{ cabal, wai, waiExtra, fcgi }:
+{ cabal, fcgi, wai, waiExtra }:
 
 cabal.mkDerivation (self: {
   pname = "wai-handler-fastcgi";
   version = "2.0.0";
   sha256 = "1pqiqx1wq2iv705f8bd4sxmjmmkkxiw4g6a9dpwnawwb5n0d88nl";
-  buildDepends = [
-    wai waiExtra fcgi
-  ];
+  buildDepends = [ wai waiExtra ];
+  extraLibraries = [ fcgi ];
   meta = {
-    description = "A WAI handler that out to the libfcgi C library";
+    homepage = "http://www.yesodweb.com/book/web-application-interface";
+    description = "Wai handler to fastcgi";
     license = self.stdenv.lib.licenses.mit;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/web-routes-boomerang/default.nix b/pkgs/development/libraries/haskell/web-routes-boomerang/default.nix
index 602d95f45df..ee6c19b0d93 100644
--- a/pkgs/development/libraries/haskell/web-routes-boomerang/default.nix
+++ b/pkgs/development/libraries/haskell/web-routes-boomerang/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "web-routes-boomerang";
-  version = "0.28.0";
-  sha256 = "1xp8p0fkwirrpssb9lnxl7fmlmrql28r2ywaa99gw9cdqxifzbbl";
+  version = "0.28.1";
+  sha256 = "1a655d73fr7b9k033wyqgc8waq7ii3s5rh0w3nkb1phxl9ldg0pi";
   buildDepends = [ boomerang mtl parsec text webRoutes ];
   meta = {
     description = "Library for maintaining correctness and composability of URLs within an application";
diff --git a/pkgs/development/libraries/haskell/web-routes/default.nix b/pkgs/development/libraries/haskell/web-routes/default.nix
index ce767e7b5f5..76fbf12540a 100644
--- a/pkgs/development/libraries/haskell/web-routes/default.nix
+++ b/pkgs/development/libraries/haskell/web-routes/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "web-routes";
-  version = "0.27.3";
-  sha256 = "06a3b88gzbn7dr7hff2fjy1q7sxc479ha4g1wqsbjrb2ajrp376q";
+  version = "0.27.4";
+  sha256 = "1n9gdaxzy22m3fmrq3j1jkm16c4wvffjbh19xckfpva53zdhsal4";
   buildDepends = [
     blazeBuilder httpTypes mtl parsec split text utf8String
   ];
diff --git a/pkgs/development/libraries/libmicrohttpd/default.nix b/pkgs/development/libraries/libmicrohttpd/default.nix
index 9ad9f944b4a..3354161baef 100644
--- a/pkgs/development/libraries/libmicrohttpd/default.nix
+++ b/pkgs/development/libraries/libmicrohttpd/default.nix
@@ -1,14 +1,14 @@
-{stdenv, fetchurl, curl}:
+{stdenv, fetchurl, curl, libgcrypt}:
 
 stdenv.mkDerivation rec {
-  name = "libmicrohttpd-0.9.24";
+  name = "libmicrohttpd-0.9.33";
 
   src = fetchurl {
     url = "mirror://gnu/libmicrohttpd/${name}.tar.gz";
-    sha256 = "0cp2ac6wbk493zslbvbmb5z96h18k496f9id8d2ji7hbdrwzfk6h";
+    sha256 = "0nfm3h7mfb03hf4kfyap8dr35shm6sppsq6da03853sljy27wn6r";
   };
 
-  buildInputs = [ curl ];
+  buildInputs = [ curl libgcrypt ];
 
   preCheck =
     # Since `localhost' can't be resolved in a chroot, work around it.
diff --git a/pkgs/development/libraries/libwnck/3.x.nix b/pkgs/development/libraries/libwnck/3.x.nix
index 17393fab074..6c6c0812c43 100644
--- a/pkgs/development/libraries/libwnck/3.x.nix
+++ b/pkgs/development/libraries/libwnck/3.x.nix
@@ -1,15 +1,15 @@
 {stdenv, fetchurl, pkgconfig, libX11, gtk3, intltool}:
 
 stdenv.mkDerivation {
-  name = "libwnck-3.2.1";
+  name = "libwnck-3.4.7";
 
   src = fetchurl {
-    url = mirror://gnome/sources/libwnck/3.2/libwnck-3.2.1.tar.xz;
-    sha256 = "1nm34rpr0n559x1ba4kmxbhqclvvnlz0g8xqbbj709q9irnmifpa";
+    url = mirror://gnome/sources/libwnck/3.4/libwnck-3.4.7.tar.xz;
+    sha256 = "d48ac9c7f50c0d563097f63d07bcc83744c7d92a1b4ef65e5faeab32b5ccb723";
   };
 
+  patches = [ ./install_introspection_to_prefix.patch ];
+
   buildInputs = [ pkgconfig intltool ];
   propagatedBuildInputs = [ libX11 gtk3 ];
-
-  configureFlags = [ "--disable-introspection" ];
 }
diff --git a/pkgs/development/libraries/libwnck/install_introspection_to_prefix.patch b/pkgs/development/libraries/libwnck/install_introspection_to_prefix.patch
new file mode 100644
index 00000000000..1bcf4a12ea3
--- /dev/null
+++ b/pkgs/development/libraries/libwnck/install_introspection_to_prefix.patch
@@ -0,0 +1,12 @@
+--- libwnck-3.4.7/configure	2013-08-20 14:46:14.000000000 +0000
++++ libwnck-3.4.7-fix/configure	2014-01-05 17:18:56.665427787 +0000
+@@ -16150,7 +16150,7 @@ $as_echo "$found_introspection" >&6; }
+        INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+        INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+-       INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
++       INTROSPECTION_GIRDIR="${datadir}/gir-1.0"
+-       INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
++       INTROSPECTION_TYPELIBDIR="${libdir}/girepository-1.0"
+        INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+        INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+        INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix
index 66e98a9d961..64c07d9cb2e 100644
--- a/pkgs/development/libraries/nss/default.nix
+++ b/pkgs/development/libraries/nss/default.nix
@@ -17,11 +17,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "nss-${version}";
-  version = "3.15.3";
+  version = "3.15.3.1";
 
   src = fetchurl {
-    url = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_15_3_RTM/src/${name}.tar.gz";
-    sha1 = "1d0f6707eda35f6c7be92fe2b0537dc090a8f203";
+    url = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_15_3_1_RTM/src/${name}.tar.gz";
+    sha1 = "4e0f81a1f770447dc5440201a579151b601463e2";
   };
 
   buildInputs = [ nspr perl zlib sqlite ];
diff --git a/pkgs/development/libraries/p11-kit/default.nix b/pkgs/development/libraries/p11-kit/default.nix
index 8366636a251..67be64921e7 100644
--- a/pkgs/development/libraries/p11-kit/default.nix
+++ b/pkgs/development/libraries/p11-kit/default.nix
@@ -1,15 +1,19 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, libiconv, pkgconfig, libffi, libtasn1 }:
 
 stdenv.mkDerivation rec {
-  name = "p11-kit-0.7";
+  name = "p11-kit-0.20.1";
 
   src = fetchurl {
     url = "${meta.homepage}releases/${name}.tar.gz";
-    sha256 = "1vj86kc7ir1djlb5akrr3w4x4k7h34pq2l4abwgqmcwxbm4j0lln";
+    sha256 = "0lsaxd1rg74ax1vkclq7r52b43rhy14mn5i14xqvb8dzlgq4hiaj";
   };
 
   postInstall = "rm -frv $out/share/gtk-doc";
 
+  configureFlags = "--without-libtasn1";
+
+  buildInputs = [ libiconv pkgconfig libffi libtasn1 ];
+
   meta = {
     homepage = http://p11-glue.freedesktop.org/;
     platforms = stdenv.lib.platforms.all;
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index 0db3722e6aa..1f1ab5d7282 100644
--- a/pkgs/development/libraries/poppler/default.nix
+++ b/pkgs/development/libraries/poppler/default.nix
@@ -32,7 +32,7 @@ let
 
     cmakeFlags = "-DENABLE_XPDF_HEADERS=ON -DENABLE_LIBCURL=ON -DENABLE_ZLIB=ON";
 
-    patches = [ ./datadir_env.patch ];
+    patches = [ ./datadir_env.patch ./poppler-glib.patch ];
 
     # XXX: The Poppler/Qt4 test suite refers to non-existent PDF files
     # such as `../../../test/unittestcases/UseNone.pdf'.
diff --git a/pkgs/development/libraries/poppler/poppler-glib.patch b/pkgs/development/libraries/poppler/poppler-glib.patch
new file mode 100644
index 00000000000..09f5a145b84
--- /dev/null
+++ b/pkgs/development/libraries/poppler/poppler-glib.patch
@@ -0,0 +1,19 @@
+diff -rupN a/poppler-glib.pc.cmake b/poppler-glib.pc.cmake
+--- a/poppler-glib.pc.cmake	2013-08-17 01:20:41.000000001 +0200
++++ b/poppler-glib.pc.cmake	2014-01-01 09:30:50.000000001 +0100
+@@ -10,4 +10,4 @@ Requires: glib-2.0 >= @GLIB_REQUIRED@ go
+ @PC_REQUIRES_PRIVATE@
+ 
+ Libs: -L${libdir} -lpoppler-glib
+-Cflags: -I${includedir}/poppler/glib
++Cflags: -I${includedir}/poppler/glib -I${includedir}/poppler
+diff -rupN a/poppler-glib.pc.in b/poppler-glib.pc.in
+--- a/poppler-glib.pc.in	2013-08-17 01:20:41.000000001 +0200
++++ b/poppler-glib.pc.in	2014-01-01 09:27:17.000000001 +0100
+@@ -10,4 +10,5 @@ Requires: glib-2.0 >= @GLIB_REQUIRED@ go
+ @PC_REQUIRES_PRIVATE@
+ 
+ Libs: -L${libdir} -lpoppler-glib
+-Cflags: -I${includedir}/poppler/glib
++Cflags: -I${includedir}/poppler/glib -I${includedir}/poppler
++
diff --git a/pkgs/development/libraries/pupnp/default.nix b/pkgs/development/libraries/pupnp/default.nix
index f78a6073b71..c5e26c1dfad 100644
--- a/pkgs/development/libraries/pupnp/default.nix
+++ b/pkgs/development/libraries/pupnp/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "libupnp-1.6.6";
+  name = "libupnp-1.6.19";
 
   src = fetchurl {
     url = "mirror://sourceforge/pupnp/${name}.tar.bz2";
-    sha256 = "1cxvn0v8lcc5p70jc3j50a7rm12am6xr0l2fibi8075jqazcmmsq";
+    sha256 = "0amjv4lypvclmi4vim2qdyw5xa6v4x50zjgf682vahqjc0wjn55k";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix
index 4d30671c488..5ceedd674f5 100644
--- a/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/pkgs/development/libraries/science/math/openblas/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   cpu = builtins.head (stdenv.lib.splitString "-" stdenv.system);
 
-  target = if cpu == "i686" then "P6" else 
+  target = if cpu == "i686" then "P2" else 
     if cpu == "x86_64" then "CORE2" else
      # allow autodetect
       "";
diff --git a/pkgs/development/libraries/serf/default.nix b/pkgs/development/libraries/serf/default.nix
index 8a7592547c2..e758fe34c36 100644
--- a/pkgs/development/libraries/serf/default.nix
+++ b/pkgs/development/libraries/serf/default.nix
@@ -40,6 +40,6 @@ stdenv.mkDerivation {
     description = "HTTP client library based on APR";
     license = stdenv.lib.licenses.asl20 ;
     maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
   };
 }
diff --git a/pkgs/development/libraries/spice-gtk/default.nix b/pkgs/development/libraries/spice-gtk/default.nix
new file mode 100644
index 00000000000..60bf24dfd78
--- /dev/null
+++ b/pkgs/development/libraries/spice-gtk/default.nix
@@ -0,0 +1,55 @@
+{ 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 }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "spice-gtk-0.22";
+
+  src = fetchurl {
+    url = "http://www.spice-space.org/download/gtk/${name}.tar.bz2";
+    sha256 = "0fpsn6qhy9a701lmd4yym6qz6zhpp8xp6vw42al0b4592pcybs85";
+  };
+
+  buildInputs = [
+    gtk spice_protocol celt_0_5_1 openssl pulseaudio pixman gobjectIntrospection
+    libjpeg_turbo zlib cyrus_sasl python pygtk
+  ];
+
+  nativeBuildInputs = [ pkgconfig intltool libtool autoconf automake ];
+
+  NIX_CFLAGS_COMPILE = "-fno-stack-protector";
+
+  preConfigure = ''
+    substituteInPlace gtk/Makefile.am \
+      --replace '=codegendir pygtk-2.0' '=codegendir pygobject-2.0'
+
+    autoreconf -v --force --install
+    intltoolize -f
+  '';
+
+  configureFlags = [
+    "--disable-maintainer-mode"
+    "--with-gtk=2.0"
+  ];
+
+  dontDisableStatic = true; # Needed by the coroutine test
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "A GTK+2 and GTK+3 SPICE widget";
+    longDescription = ''
+      spice-gtk is a GTK+2 and GTK+3 SPICE widget. It features glib-based
+      objects for SPICE protocol parsing and a gtk widget for embedding
+      the SPICE display into other applications such as virt-manager.
+      Python bindings are available too.
+    '';
+
+    homepage = http://www.spice-space.org/;
+    license = licenses.lgpl21;
+
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/zeromq/2.x.nix b/pkgs/development/libraries/zeromq/2.x.nix
index 06beb9254f9..67b1151dc84 100644
--- a/pkgs/development/libraries/zeromq/2.x.nix
+++ b/pkgs/development/libraries/zeromq/2.x.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libuuid ];
 
   meta = {
+    branch = "2";
     homepage = "http://www.zeromq.org";
     description = "The Intelligent Transport Layer";
   };
diff --git a/pkgs/development/libraries/zeromq/3.x.nix b/pkgs/development/libraries/zeromq/3.x.nix
index fbb3b5ad74f..6ee49cb5082 100644
--- a/pkgs/development/libraries/zeromq/3.x.nix
+++ b/pkgs/development/libraries/zeromq/3.x.nix
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libuuid ];
 
   meta = {
+    branch = "3";
     homepage = "http://www.zeromq.org";
     description = "The Intelligent Transport Layer";
   };
diff --git a/pkgs/development/lisp-modules/stumpwm/default.nix b/pkgs/development/lisp-modules/stumpwm/default.nix
index a41ee799d8a..ae0dab1ec9d 100644
--- a/pkgs/development/lisp-modules/stumpwm/default.nix
+++ b/pkgs/development/lisp-modules/stumpwm/default.nix
@@ -19,14 +19,17 @@ buildLispPackage rec {
       ${x.deployConfigScript}
       export CL_SOURCE_REGISTRY="$CL_SOURCE_REGISTRY:$PWD/"
       ./autogen.sh
-      configureFlags=" --with-lisp=$NIX_LISP --with-$NIX_LISP=$(which common-lisp.sh) "
+      configureFlags=" --with-lisp=$NIX_LISP --with-$NIX_LISP=$(which common-lisp.sh) --with-contrib-dir=$out/lib/common-lisp/stumpwm/contrib/"
     '';
-    installPhase=x.installPhase + ''
+    installPhase = with pkgs; x.installPhase + ''
       make install
 
       if [ "$NIX_LISP" = "sbcl" ]; then
         wrapProgram "$out"/bin/stumpwm --set SBCL_HOME "${clwrapper.lisp}/lib/sbcl"
       fi;
+
+      mv $out/lib/common-lisp/stumpwm/contrib/stumpish $out/bin/stumpish
+      wrapProgram "$out"/bin/stumpish --prefix PATH : "${xlibs.xprop}/bin:${coreutils}/bin:${gnugrep}/bin:${gnused}/bin:${rlwrap}/bin:${ncurses}/bin"
     '';
     postInstall = ''false'';
   };
diff --git a/pkgs/development/python-modules/pygobject/3.nix b/pkgs/development/python-modules/pygobject/3.nix
index ffbe906a900..903db3e252c 100644
--- a/pkgs/development/python-modules/pygobject/3.nix
+++ b/pkgs/development/python-modules/pygobject/3.nix
@@ -1,15 +1,13 @@
 { stdenv, fetchurl, python, pkgconfig, glib, gobjectIntrospection, pycairo, cairo }:
  
 stdenv.mkDerivation rec {
-  name = "pygobject-3.0.4";
-   
+  name = "pygobject-3.10.2";
+
   src = fetchurl {
-    url = "mirror://gnome/sources/pygobject/3.0/${name}.tar.xz";
-    sha256 = "f457b1d7f6b8bfa727593c3696d2b405da66b4a8d34cd7d3362ebda1221f0661";
+    url = "mirror://gnome/sources/pygobject/3.10/${name}.tar.xz";
+    sha256 = "75608f2c4052f0277508fc79debef026d9e84cb9261de2b922387c093d32c326";
   };
 
-  configureFlags = "--disable-introspection";
-
   buildInputs = [ python pkgconfig glib gobjectIntrospection pycairo cairo ];
 
   meta = {
diff --git a/pkgs/development/python-modules/pyqt/default.nix b/pkgs/development/python-modules/pyqt/4.x.nix
index 7d9679349e8..ab870492da6 100644
--- a/pkgs/development/python-modules/pyqt/default.nix
+++ b/pkgs/development/python-modules/pyqt/4.x.nix
@@ -1,32 +1,29 @@
 { stdenv, fetchurl, python, sip, qt4, pythonDBus, pkgconfig, lndir, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "PyQt-x11-gpl-4.10.1";
-  
+  name = "PyQt-x11-gpl-4.10.3";
+
   src = fetchurl {
-    urls = [
-      "http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/${name}.tar.gz"
-      "http://pkgs.fedoraproject.org/lookaside/pkgs/PyQt4/PyQt-x11-gpl-4.10.1.tar.gz/e5973c4ec0b0469f329bc00209d2ad9c/PyQt-x11-gpl-4.10.1.tar.gz"
-    ];
-    sha256 = "05psk23x6bc83hrkw7h88a14jxhvfbxms0c8yrdar8xqvkv8cdb2";
+    url = "mirror://sourceforge/pyqt/PyQt4/PyQt-4.10.3/PyQt-x11-gpl-4.10.3.tar.gz";
+    sha256 = "0c7nifx3w0b9w1k0g9dvav1rv1lvd7awmq0zkqn3n8clyfzbw4x7";
   };
-  
+
   configurePhase = ''
     mkdir -p $out
     lndir ${pythonDBus} $out
 
     export PYTHONPATH=$PYTHONPATH:$out/lib/${python.libPrefix}/site-packages
-    
+
     substituteInPlace configure.py \
       --replace 'install_dir=pydbusmoddir' "install_dir='$out/lib/${python.libPrefix}/site-packages/dbus/mainloop'"
-  
+
     configureFlagsArray=( \
       --confirm-license --bindir $out/bin \
       --destdir $out/lib/${python.libPrefix}/site-packages \
       --plugin-destdir $out/lib/qt4/plugins --sipdir $out/share/sip \
       --dbus=$out/include/dbus-1.0 --verbose)
 
-    python configure.py $configureFlags "''${configureFlagsArray[@]}"
+    ${python.executable} configure.py $configureFlags "''${configureFlagsArray[@]}"
   '';
 
   buildInputs = [ python pkgconfig makeWrapper qt4 lndir ];
@@ -40,7 +37,7 @@ stdenv.mkDerivation rec {
   ''; # */
 
   enableParallelBuilding = true;
-  
+
   meta = {
     description = "Python bindings for Qt";
     license = "GPL";
diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix
index 952cbe1ff4d..8ddf0e9329f 100644
--- a/pkgs/development/python-modules/setuptools/default.nix
+++ b/pkgs/development/python-modules/setuptools/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
       wrapPythonPrograms
     '';
 
-  doCheck = true;
+  doCheck = stdenv.system != "x86_64-darwin";
 
   checkPhase = ''
     ${python}/bin/${python.executable} setup.py test
diff --git a/pkgs/development/python-modules/python-sip/default.nix b/pkgs/development/python-modules/sip/default.nix
index 6d79cf53a6b..72693a0b5d3 100644
--- a/pkgs/development/python-modules/python-sip/default.nix
+++ b/pkgs/development/python-modules/sip/default.nix
@@ -1,28 +1,27 @@
 { stdenv, fetchurl, python }:
 
 stdenv.mkDerivation rec {
-  name = "sip-4.14.6";
-  
+  name = "sip-4.15.4";
+
   src = fetchurl {
-    urls = [
-      "http://www.riverbankcomputing.co.uk/static/Downloads/sip4/${name}.tar.gz"
-      "http://pkgs.fedoraproject.org/repo/pkgs/sip/${name}.tar.gz/d6493b9f0a7911566545f694327314c4/${name}.tar.gz"
-    ];
-    sha256 = "1bwdd5xhrx8dx8rr86r043ddlbg7gd1vh0pm2nxw5l1yprwa7paa";
+    url = "mirror://sourceforge/pyqt/sip/${name}/${name}.tar.gz";
+    sha256 = "0a12lmqkf342yg42ygnjm1fyldcx9pzhy7z68p4ms4ydfcl78jsr";
   };
 
   configurePhase = stdenv.lib.optionalString stdenv.isDarwin ''
     # prevent sip from complaining about python not being built as a framework
     sed -i -e 1564,1565d siputils.py
   '' + ''
-    python ./configure.py -d $out/lib/${python.libPrefix}/site-packages \
+    ${python.executable} ./configure.py \
+      -d $out/lib/${python.libPrefix}/site-packages \
       -b $out/bin -e $out/include
   '';
-  
+
   buildInputs = [ python ];
-  
+
   meta = with stdenv.lib; {
     description = "Creates C++ bindings for Python modules";
+    homepage    = "http://www.riverbankcomputing.co.uk/";
     license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ lovek323 sander urkud ];
     platforms   = platforms.all;
diff --git a/pkgs/development/tools/haskell/cabal2nix/default.nix b/pkgs/development/tools/haskell/cabal2nix/default.nix
index 5081b935267..d0d7e7b39b2 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.57";
-  sha256 = "0mwd3qh4ncbbwmaspnxl0hmirjclkqm8zhvchc55fgnskrfbidhq";
+  version = "1.58";
+  sha256 = "0xsp0f87583pcjdfhngbc9465yisk2m3sn6904s0szprkpi2p03x";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [ Cabal filepath hackageDb HTTP mtl regexPosix ];
diff --git a/pkgs/development/tools/misc/d-feet/default.nix b/pkgs/development/tools/misc/d-feet/default.nix
new file mode 100644
index 00000000000..d4847afc786
--- /dev/null
+++ b/pkgs/development/tools/misc/d-feet/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, pkgconfig, fetchurl, itstool, intltool, libxml2, glib, gtk3
+, pango, gdk_pixbuf, atk, pep8, python, makeWrapper
+, pygobject3, gobjectIntrospection, libwnck3
+, gnome_icon_theme }:
+
+let
+  version = "${major}.8";
+  major = "0.3";
+in
+
+stdenv.mkDerivation rec {
+  name = "d-feet-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/d-feet/${major}/d-feet-${version}.tar.xz";
+    sha256 = "e8423feb18fdff9b1465bf8442b78994ba13c12f8fa3b08e6a2f05768b4feee5";
+  };
+
+  buildInputs = [
+    pkgconfig libxml2 itstool intltool glib gtk3 pep8 python
+    makeWrapper pygobject3 libwnck3
+  ];
+
+  postInstall =
+    ''
+      wrapProgram $out/bin/d-feet \
+        --prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${pygobject3})" \
+        --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+        --prefix LD_LIBRARY_PATH : "${gtk3}/lib:${atk}/lib:${libwnck3}/lib" \
+        --prefix XDG_DATA_DIRS : "${gnome_icon_theme}/share:$out/share"
+    '';
+
+  meta = {
+    description = "D-Feet is an easy to use D-Bus debugger";
+
+    longDescription = ''
+      D-Feet can be used to inspect D-Bus interfaces of running programs
+      and invoke methods on those interfaces.
+    '';
+
+    homepage = https://wiki.gnome.org/action/show/Apps/DFeet;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = with stdenv.lib.maintainers; [ ktosiek ];
+  };
+}
diff --git a/pkgs/development/tools/misc/icon-naming-utils/default.nix b/pkgs/development/tools/misc/icon-naming-utils/default.nix
index 7a03eb7b128..7f8dafad4af 100644
--- a/pkgs/development/tools/misc/icon-naming-utils/default.nix
+++ b/pkgs/development/tools/misc/icon-naming-utils/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, perl, XMLSimple}:
+{stdenv, fetchurl, perl, XMLSimple, librsvg}:
 
 stdenv.mkDerivation rec {
   name = "icon-naming-utils-0.8.90";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "071fj2jm5kydlz02ic5sylhmw6h2p3cgrm3gwdfabinqkqcv4jh4";
   };
   
-  buildInputs = [perl XMLSimple];
+  buildInputs = [perl XMLSimple librsvg];
 
   postInstall =
     ''
@@ -17,7 +17,8 @@ stdenv.mkDerivation rec {
           --replace '/bin/perl' '/bin/perl -I${XMLSimple}/lib/perl5/site_perl'
     '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://tango.freedesktop.org/Standard_Icon_Naming_Specification;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/tools/parsing/happy/1.19.2.nix b/pkgs/development/tools/parsing/happy/1.19.2.nix
index eaf027b591d..4173d6d6c11 100644
--- a/pkgs/development/tools/parsing/happy/1.19.2.nix
+++ b/pkgs/development/tools/parsing/happy/1.19.2.nix
@@ -8,6 +8,7 @@ cabal.mkDerivation (self: {
   isExecutable = true;
   buildDepends = [ mtl ];
   buildTools = [ perl ];
+  patchPhase = "sed -i -e '/^import Data.Monoid/d' Setup.lhs";
   meta = {
     homepage = "http://www.haskell.org/happy/";
     description = "Happy is a parser generator for Haskell";
diff --git a/pkgs/development/tools/profiling/systemtap/default.nix b/pkgs/development/tools/profiling/systemtap/default.nix
index bdd11b88da5..884091c1636 100644
--- a/pkgs/development/tools/profiling/systemtap/default.nix
+++ b/pkgs/development/tools/profiling/systemtap/default.nix
@@ -1,9 +1,9 @@
-{ fetchurl, stdenv, linux, elfutils, latex2html, xmlto, docbook_xml_dtd_412
+{ fetchurl, stdenv, elfutils, latex2html, xmlto, docbook_xml_dtd_412
 , libxml2, docbook_xsl, libxslt, texLive, texLiveExtra, ghostscript, pkgconfig
 , gtkmm, libglademm, boost, perl, sqlite }:
 
 stdenv.mkDerivation rec {
-  name = "systemtap-1.2-${linux.version}";
+  name = "systemtap-1.2";
 
   src = fetchurl {
     url = "http://sources.redhat.com/systemtap/ftp/releases/${name}.tar.gz";
diff --git a/pkgs/development/web/nodejs/default.nix b/pkgs/development/web/nodejs/default.nix
index ae990ca3245..7c10bcb51de 100644
--- a/pkgs/development/web/nodejs/default.nix
+++ b/pkgs/development/web/nodejs/default.nix
@@ -6,7 +6,7 @@ let
     ln -sv /usr/sbin/dtrace $out/bin
   '';
 
-  version = "0.10.22";
+  version = "0.10.24";
 
   # !!! Should we also do shared libuv?
   deps = {
@@ -27,7 +27,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://nodejs.org/dist/v${version}/node-v${version}.tar.gz";
-    sha1 = "d7c6a39dfa714eae1f8da7a00c9a07efd74a03b3";
+    sha256 = "0yip81va8nd3kzj64385avcx7ck13a2xcdj3amzwnhk830rxf331";
   };
 
   configureFlags = concatMap sharedConfigureFlags (builtins.attrNames deps);
diff --git a/pkgs/misc/emulators/wine/stable.nix b/pkgs/misc/emulators/wine/stable.nix
index 5bec6a310d1..c0643c78a59 100644
--- a/pkgs/misc/emulators/wine/stable.nix
+++ b/pkgs/misc/emulators/wine/stable.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, xlibs, flex, bison, mesa, mesa_noglu, alsaLib
-, ncurses, libpng, libjpeg, lcms, freetype, fontconfig, fontforge
+, ncurses, libpng, libjpeg, lcms2, freetype, fontconfig, fontforge
 , libxml2, libxslt, openssl, gnutls, cups, libdrm, makeWrapper
 }:
 
@@ -7,12 +7,12 @@ assert stdenv.isLinux;
 assert stdenv.gcc.gcc != null;
 
 let
-    version = "1.6.1";
+    version = "1.6.2";
     name = "wine-${version}";
 
     src = fetchurl {
       url = "mirror://sourceforge/wine/${name}.tar.bz2";
-      sha256 = "0k1qb8hhaf5mbb3jk0a37jx93mvlxpk5c4dslxhalp2mic42rg6m";
+      sha256 = "1gmc0ljgfz3qy50mdxcwwjcr2yrpz54jcs2hdszsrk50wpnrxazh";
     };
 
     gecko = fetchurl {
@@ -38,7 +38,7 @@ in stdenv.mkDerivation rec {
     xlibs.xlibs flex bison xlibs.libXi mesa mesa_noglu.osmesa
     xlibs.libXcursor xlibs.libXinerama xlibs.libXrandr
     xlibs.libXrender xlibs.libXxf86vm xlibs.libXcomposite
-    alsaLib ncurses libpng libjpeg lcms fontforge
+    alsaLib ncurses libpng libjpeg lcms2 fontforge
     libxml2 libxslt openssl gnutls cups makeWrapper
   ];
 
diff --git a/pkgs/os-specific/linux/acpi-call/default.nix b/pkgs/os-specific/linux/acpi-call/default.nix
index 9fd8168948d..2882c804c50 100644
--- a/pkgs/os-specific/linux/acpi-call/default.nix
+++ b/pkgs/os-specific/linux/acpi-call/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchgit, kernelDev }:
+{ stdenv, fetchgit, kernel }:
 
 stdenv.mkDerivation {
-  name = "acpi-call-${kernelDev.version}";
+  name = "acpi-call-${kernel.version}";
 
   src = fetchgit {
     url = "git://github.com/mkottman/acpi_call.git";
@@ -12,12 +12,12 @@ stdenv.mkDerivation {
   preBuild = ''
     sed -e 's/break/true/' -i examples/turn_off_gpu.sh
     sed -e 's@/bin/bash@.bin/sh@' -i examples/turn_off_gpu.sh
-    sed -e "s@/lib/modules/\$(.*)@${kernelDev}/lib/modules/${kernelDev.modDirVersion}@" -i Makefile
+    sed -e "s@/lib/modules/\$(.*)@${kernel.dev}/lib/modules/${kernel.modDirVersion}@" -i Makefile
   '';
  
   installPhase = ''
-    mkdir -p $out/lib/modules/${kernelDev.modDirVersion}/misc
-    cp acpi_call.ko $out/lib/modules/${kernelDev.modDirVersion}/misc
+    mkdir -p $out/lib/modules/${kernel.modDirVersion}/misc
+    cp acpi_call.ko $out/lib/modules/${kernel.modDirVersion}/misc
     mkdir -p $out/bin
     cp examples/turn_off_gpu.sh $out/bin/test_discrete_video_off.sh
     chmod a+x $out/bin/test_discrete_video_off.sh
diff --git a/pkgs/os-specific/linux/atheros/0.9.4.nix b/pkgs/os-specific/linux/atheros/0.9.4.nix
deleted file mode 100644
index 341bdc3f1bb..00000000000
--- a/pkgs/os-specific/linux/atheros/0.9.4.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ stdenv, fetchurl, builderDefs, kernelDev }:
-	let localDefs = builderDefs.passthru.function {
-		src = /* put a fetchurl here */
-		fetchurl {
-		  url = http://downloads.sourceforge.net/madwifi/madwifi-0.9.4.tar.gz;
-		  sha256 = "06jd5b8rfw7rmiva6jgmrb7n26g5plcg9marbnnmg68gbcqbr3xh";
-		};
-
-		buildInputs = [];
-		configureFlags = [];
-		makeFlags = [''KERNELPATH=${kernelDev}/lib/modules/*/build'' ''DESTDIR=$out''];
-	};
-	in with localDefs;
-let 
-postInstall = fullDepEntry (''
-	ln -s $out/usr/local/bin $out/bin
-'') [minInit doMakeInstall];
-in
-stdenv.mkDerivation rec {
-	name = "atheros-0.9.4-${kernelDev.version}";
-	builder = writeScript (name + "-builder")
-		(textClosure localDefs [doMakeInstall 
-			postInstall doForceShare doPropagate]);
-	meta = {
-		description = "Atheros WiFi driver";
-		inherit src;
-	};
-}
diff --git a/pkgs/os-specific/linux/ati-drivers/default.nix b/pkgs/os-specific/linux/ati-drivers/default.nix
index 64c35b5ab26..8f5ecb71205 100644
--- a/pkgs/os-specific/linux/ati-drivers/default.nix
+++ b/pkgs/os-specific/linux/ati-drivers/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, kernelDev, xlibs, which, imake
+{ stdenv, fetchurl, kernel, xlibs, which, imake
 , mesa # for fgl_glxgears
 , libXxf86vm, xf86vidmodeproto # for fglrx_gamma
 , xorg, makeWrapper, glibc, patchelf
@@ -22,9 +22,9 @@
 
 assert stdenv.system == "x86_64-linux";
 
-stdenv.mkDerivation rec {
-  name = "ati-drivers-${version}-${kernel.version}";
-  version = "13.4";
+
+stdenv.mkDerivation {
+  name = "ati-drivers-13.4-${kernel.version}";
 
   builder = ./builder.sh;
 
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
       mesa
     ];
 
-  kernel = kernelDev;
+  kernel = kernel.dev;
 
   inherit glibc /* glibc only used for setting interpreter */;
 
@@ -72,6 +72,7 @@ stdenv.mkDerivation rec {
     maintainers = [stdenv.lib.maintainers.marcweber];
     platforms = [ "x86_64-linux" ];
     hydraPlatforms = [];
+    broken = true;
   };
 
   # moved assertions here because the name is evaluated when the NixOS manual is generated
diff --git a/pkgs/os-specific/linux/aufs-util/2.nix b/pkgs/os-specific/linux/aufs-util/2.nix
deleted file mode 100644
index e4968b92048..00000000000
--- a/pkgs/os-specific/linux/aufs-util/2.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ stdenv, fetchurl, kernelDev, aufs }:
-
-assert aufs != null;
-
-let version = "20100506"; in
-
-stdenv.mkDerivation {
-  name = "aufs2-util-${version}-${kernelDev.version}";
-
-  src = fetchurl {
-    url = "http://tarballs.nixos.org/aufs2-util-git-${version}.tar.bz2";
-    sha256 = "0ly0c3p8fjxqbk8k5rmm1a91wg8wcrvhi1lv4aawalkkk8rqbnwk";
-  };
-
-  buildInputs = [ aufs ];
-
-  makeFlags =
-    [ "KDIR=${kernelDev}/lib/modules/${kernelDev.version}/build"
-      "Install=install"
-      "DESTDIR=$(out)"
-    ];
-
-  postInstall =
-    ''
-      mv $out/usr/* $out
-      rmdir $out/usr
-
-      cp aufs.shlib $out/lib/
-
-      substituteInPlace $out/bin/aubrsync \
-        --replace /sbin/mount $out/sbin/mount \
-        --replace /usr/lib/aufs.shlib $out/lib/aufs.shlib
-    '';
-
-  meta = {
-    description = "Utilities for AUFS2";
-    homepage = http://aufs.sourceforge.net/;
-    maintainers = [ stdenv.lib.maintainers.eelco ];
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/os-specific/linux/aufs-util/3.nix b/pkgs/os-specific/linux/aufs-util/3.nix
deleted file mode 100644
index 9997c2743a5..00000000000
--- a/pkgs/os-specific/linux/aufs-util/3.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ stdenv, fetchgit, kernelDev, aufs }:
-
-assert aufs != null;
-
-stdenv.mkDerivation {
-  name = "aufs3-util-${aufs.patch.version}-${kernelDev.version}";
-
-  src = fetchgit {
-    url = git://aufs.git.sourceforge.net/gitroot/aufs/aufs-util.git;
-    rev = aufs.patch.utilRev;
-    sha256 = aufs.patch.utilHash;
-  };
-
-  buildInputs = [ aufs ];
-
-  makeFlags =
-    [ "KDIR=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build"
-      "Install=install"
-      "DESTDIR=$(out)"
-    ];
-
-  postInstall =
-    ''
-      mv $out/usr/* $out
-      rmdir $out/usr
-
-      cp aufs.shlib $out/lib/
-
-      substituteInPlace $out/bin/aubrsync \
-        --replace /sbin/mount $out/sbin/mount \
-        --replace /usr/lib/aufs.shlib $out/lib/aufs.shlib
-    '';
-
-  meta = {
-    description = "Utilities for AUFS3";
-    homepage = http://aufs.sourceforge.net/;
-    maintainers = [ stdenv.lib.maintainers.eelco  ];
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/os-specific/linux/aufs/2.nix b/pkgs/os-specific/linux/aufs/2.nix
deleted file mode 100644
index a4a40823f7a..00000000000
--- a/pkgs/os-specific/linux/aufs/2.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ stdenv, fetchurl, kernelDev, perl, fetchgit }:
-
-assert kernelDev.features ? aufsBase;
-
-let version = "20100522"; in
-
-stdenv.mkDerivation {
-  name = "aufs2-${version}-${kernelDev.version}";
-
-  src = 
-  if (builtins.lessThan (builtins.compareVersions kernelDev.version "2.6.35") 0) then
-    fetchurl {
-      url = "http://tarballs.nixos.org/aufs2-standalone-git-${version}.tar.bz2";
-      sha256 = "1g4mw4qx2xzpygdwjiw36bkhfz1hi7wxx7w79n2h0lr5grzzdnd6";
-    }
-  else
-    fetchgit {
-      url = "http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-standalone.git";
-      rev = "d950eef373ff1e0448ad3945b734da6ab050571d";
-      sha256 = "816145b0341bd7862df50c058144cf6ebc25c05d2976f781ff0fe10d4559b853";
-    };
-
-  buildInputs = [ perl ];
-
-  makeFlags = "KDIR=${kernelDev}/lib/modules/${kernelDev.version}/build";
-
-  installPhase =
-    ''
-      mkdir -p $out/lib/modules/${kernelDev.version}/misc
-      cp aufs.ko $out/lib/modules/${kernelDev.version}/misc
-
-      # Install the headers because aufs2-util requires them.
-      cp -prvd include $out/
-    '';
-
-  meta = {
-    description = "Another Unionfs implementation for Linux (second generation)";
-    homepage = http://aufs.sourceforge.net/;
-    maintainers = [ stdenv.lib.maintainers.eelco
-                    stdenv.lib.maintainers.raskin ];
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/os-specific/linux/aufs/3.nix b/pkgs/os-specific/linux/aufs/3.nix
deleted file mode 100644
index 2f566d3abff..00000000000
--- a/pkgs/os-specific/linux/aufs/3.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv, kernelDev, perl }:
-
-let
-
-  aufsPredicate = x:
-    if x ? features then
-      (if x.features ? aufs3 then x.features.aufs3 else false)
-    else false;
-  featureAbort = abort "This kernel does not have aufs 3 support";
-  patch = stdenv.lib.findFirst aufsPredicate featureAbort kernelDev.kernelPatches;
-
-in
-
-stdenv.mkDerivation {
-  name = "aufs3-${patch.version}-${kernelDev.version}";
-
-  src = patch.patch.src;
-
-  buildInputs = [ perl ];
-
-  makeFlags = "KDIR=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build";
-
-  NIX_CFLAGS_COMPILE="-I${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build/include/generated";
-
-  installPhase =
-    ''
-      mkdir -p $out/lib/modules/${kernelDev.modDirVersion}/misc
-      cp -v aufs.ko $out/lib/modules/${kernelDev.modDirVersion}/misc
-
-      # Install the headers because aufs3-util requires them.
-      mkdir -p $out/include/linux
-      cp -v usr/include/linux/aufs_type.h $out/include/linux
-    '';
-
-  passthru = { inherit patch; };
-
-  meta = {
-    description = "Another Unionfs implementation for Linux (third generation)";
-    homepage = http://aufs.sourceforge.net/;
-    maintainers = [ stdenv.lib.maintainers.eelco
-                    stdenv.lib.maintainers.raskin ];
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/os-specific/linux/batman-adv/default.nix b/pkgs/os-specific/linux/batman-adv/default.nix
index e4b4d1104b0..0b7b6a0cafb 100644
--- a/pkgs/os-specific/linux/batman-adv/default.nix
+++ b/pkgs/os-specific/linux/batman-adv/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, kernelDev }:
+{ stdenv, fetchurl, kernel }:
 
-let base = "batman-adv-2013.2.0"; in
+let base = "batman-adv-2013.4.0"; in
 
 stdenv.mkDerivation rec {
-  name = "${base}-${kernelDev.version}";
+  name = "${base}-${kernel.version}";
 
   src = fetchurl {
     url = "http://downloads.open-mesh.org/batman/releases/${base}/${base}.tar.gz";
-    sha1 = "7d2aff2ad118cbc5452de43f7e9da8374521ec0e";
+    sha1 = "870a85df5410b3b5623be69e75297e642c91a7d4";
   };
 
   preBuild = ''
-    makeFlags="KERNELPATH=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build"
+    makeFlags="KERNELPATH=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
     sed -i -e "s,INSTALL_MOD_DIR=,INSTALL_MOD_PATH=$out INSTALL_MOD_DIR=," \
       -e /depmod/d Makefile
   '';
diff --git a/pkgs/os-specific/linux/bbswitch/default.nix b/pkgs/os-specific/linux/bbswitch/default.nix
index 675fe7695af..373f814f6e0 100644
--- a/pkgs/os-specific/linux/bbswitch/default.nix
+++ b/pkgs/os-specific/linux/bbswitch/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchurl, kernelDev }:
+{ stdenv, fetchurl, kernel }:
 
 let
   baseName = "bbswitch";
   version = "0.7";
-  name = "${baseName}-${version}-${kernelDev.version}";
+  name = "${baseName}-${version}-${kernel.version}";
 
 in
 
@@ -17,13 +17,13 @@ stdenv.mkDerivation {
 
   preBuild = ''
     substituteInPlace Makefile \
-      --replace "\$(shell uname -r)" "${kernelDev.modDirVersion}" \
-      --replace "/lib/modules" "${kernelDev}/lib/modules"
+      --replace "\$(shell uname -r)" "${kernel.modDirVersion}" \
+      --replace "/lib/modules" "${kernel.dev}/lib/modules"
   '';
 
   installPhase = ''
-    ensureDir $out/lib/modules/${kernelDev.modDirVersion}/misc
-    cp bbswitch.ko $out/lib/modules/${kernelDev.modDirVersion}/misc
+    ensureDir $out/lib/modules/${kernel.modDirVersion}/misc
+    cp bbswitch.ko $out/lib/modules/${kernel.modDirVersion}/misc
 
     ensureDir $out/bin
     tee $out/bin/discrete_vga_poweroff << EOF
diff --git a/pkgs/os-specific/linux/blcr/default.nix b/pkgs/os-specific/linux/blcr/default.nix
index d0d81abb244..0cc4e3741c2 100644
--- a/pkgs/os-specific/linux/blcr/default.nix
+++ b/pkgs/os-specific/linux/blcr/default.nix
@@ -1,13 +1,13 @@
-{ stdenv, fetchurl, kernelDev, perl, makeWrapper }:
+{ stdenv, fetchurl, kernel, perl, makeWrapper }:
 
 # BLCR 0.8.4 works for kernel version up to 2.6.38 (including 2.6.38.x)
 # BLCR 0.8.5 should works for kernel version up to 3.7.1
 
 assert stdenv.isLinux;
-assert builtins.compareVersions "3.7.2" kernelDev.version == 1;
+assert builtins.compareVersions "3.7.2" kernel.version == 1;
 
 stdenv.mkDerivation {
-  name = "blcr_${kernelDev.version}-0.8.5";
+  name = "blcr_${kernel.version}-0.8.5";
 
   src = fetchurl {
     url = http://crd.lbl.gov/assets/Uploads/FTG/Projects/CheckpointRestart/downloads/blcr-0.8.5.tar.gz;
@@ -18,9 +18,9 @@ stdenv.mkDerivation {
 
   preConfigure = ''
     configureFlagsArray=(
-      --with-linux=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build
-      --with-kmod-dir=$out/lib/modules/${kernelDev.modDirVersion}
-      --with-system-map=${kernelDev}/System.map
+      --with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build
+      --with-kmod-dir=$out/lib/modules/${kernel.modDirVersion}
+      --with-system-map=${kernel}/System.map
     )
   '';
 
diff --git a/pkgs/os-specific/linux/broadcom-sta-v6/default.nix b/pkgs/os-specific/linux/broadcom-sta-v6/default.nix
deleted file mode 100644
index db4337c0ff2..00000000000
--- a/pkgs/os-specific/linux/broadcom-sta-v6/default.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ stdenv, fetchurl, kernelDev }:
-let
-  version = "6_30_223_141";
-in
-stdenv.mkDerivation {
-  name = "broadcom-sta-${version}-${kernelDev.version}";
-
-  src = if stdenv.system == "i686-linux" then (
-    fetchurl {
-      url = "http://www.broadcom.com/docs/linux_sta/hybrid-v35-nodebug-pcoem-${version}.tar.gz";
-      sha256 = "19wra62dpm0x0byksh871yxr128b4v13kzkzqv56igjfpzv36z6m";
-    } ) else (
-    fetchurl {
-      url = "http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-${version}.tar.gz";
-      sha256 = "0jlvch7d3khmmg5kp80x4ka33hidj8yykqjcqq6j56z2g6wb4dsz";
-    }
-  );
-
-  buildInputs = [ kernelDev ];
-  patches = [
-    ./linux-recent.patch
-    ./license.patch
-  ];
-
-  makeFlags = "KBASE=${kernelDev}/lib/modules/${kernelDev.modDirVersion}";
-
-  unpackPhase = ''
-      sourceRoot=broadcom-sta
-      mkdir "$sourceRoot"
-      tar xvf "$src" -C "$sourceRoot"
-  '';
-
-  installPhase =
-    ''
-      binDir="$out/lib/modules/${kernelDev.modDirVersion}/kernel/net/wireless/"
-      docDir="$out/share/doc/broadcom-sta/"
-      mkdir -p "$binDir" "$docDir"
-      cp wl.ko "$binDir"
-      cp lib/LICENSE.txt "$docDir"
-    '';
-
-  meta = {
-    description = "Kernel module driver for some Broadcom's wireless cards";
-    homepage = http://www.broadcom.com/support/802.11/linux_sta.php;
-    license = "unfree-redistributable";
-    maintainers = with stdenv.lib.maintainers; [ phreedom vcunat ];
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/os-specific/linux/broadcom-sta-v6/license.patch b/pkgs/os-specific/linux/broadcom-sta-v6/license.patch
deleted file mode 100644
index aebb4636519..00000000000
--- a/pkgs/os-specific/linux/broadcom-sta-v6/license.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -Naur hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_linux.c hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.c
---- hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_linux.c	2009-04-23 02:48:59.000000000 +0900
-+++ hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.c	2009-05-08 00:48:20.000000000 +0900
-@@ -171,6 +171,8 @@
- static void wl_free_if(wl_info_t *wl, wl_if_t *wlif);
- static void wl_get_driver_info(struct net_device *dev, struct ethtool_drvinfo *info);
- 
-+MODULE_LICENSE("MIXED/Proprietary");
-+
- #if defined(WL_CONFIG_RFKILL)
- #include <linux/rfkill.h>
- static int wl_init_rfkill(wl_info_t *wl);
-
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
index 816a099e243..5955543f8e1 100644
--- a/pkgs/os-specific/linux/broadcom-sta/default.nix
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -1,38 +1,37 @@
-{ stdenv, fetchurl, kernelDev }:
-
-let version = "5_100_82_112";
-    bits = if stdenv.system == "i686-linux" then "32" else
-      assert stdenv.system == "x86_64-linux"; "64";
+{ stdenv, fetchurl, kernel }:
+let
+  version = "6_30_223_141";
 in
-
 stdenv.mkDerivation {
-  name = "broadcom-sta-${version}-${kernelDev.version}";
-
-  src = fetchurl {
-    url = "http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_x86_${bits}-v${version}.tar.gz";
-    sha256 = if bits == "32"
-      then "1rvhw9ngw0djxyyjx5m01c0js89zs3xiwmra03al6f9q7cbf7d45"
-      else "1qsarnry10f5m8a73wbr9cg2ifs00sqg6x0ay59l72vl9hb2zlww";
-  };
-
-  buildInputs = [ kernelDev ];
-  patches =
-    [ ./makefile.patch ./linux-2.6.39.patch ./linux-3.2.patch
-      ./linux-3.4.patch ./license.patch
-    ];
-
-  makeFlags = "KDIR=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build";
-
-  unpackPhase =
-    ''
+  name = "broadcom-sta-${version}-${kernel.version}";
+
+  src = if stdenv.system == "i686-linux" then (
+    fetchurl {
+      url = "http://www.broadcom.com/docs/linux_sta/hybrid-v35-nodebug-pcoem-${version}.tar.gz";
+      sha256 = "19wra62dpm0x0byksh871yxr128b4v13kzkzqv56igjfpzv36z6m";
+    } ) else (
+    fetchurl {
+      url = "http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-${version}.tar.gz";
+      sha256 = "0jlvch7d3khmmg5kp80x4ka33hidj8yykqjcqq6j56z2g6wb4dsz";
+    }
+  );
+
+  patches = [
+    ./linux-recent.patch
+    ./license.patch
+  ];
+
+  makeFlags = "KBASE=${kernel.dev}/lib/modules/${kernel.modDirVersion}";
+
+  unpackPhase = ''
       sourceRoot=broadcom-sta
       mkdir "$sourceRoot"
       tar xvf "$src" -C "$sourceRoot"
-    '';
+  '';
 
   installPhase =
     ''
-      binDir="$out/lib/modules/${kernelDev.modDirVersion}/kernel/net/wireless/"
+      binDir="$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
       docDir="$out/share/doc/broadcom-sta/"
       mkdir -p "$binDir" "$docDir"
       cp wl.ko "$binDir"
@@ -43,7 +42,7 @@ stdenv.mkDerivation {
     description = "Kernel module driver for some Broadcom's wireless cards";
     homepage = http://www.broadcom.com/support/802.11/linux_sta.php;
     license = "unfree-redistributable";
-    maintainers = [ stdenv.lib.maintainers.vcunat ];
+    maintainers = with stdenv.lib.maintainers; [ phreedom vcunat ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/broadcom-sta/license.patch b/pkgs/os-specific/linux/broadcom-sta/license.patch
index b320d977e8b..aebb4636519 100644
--- a/pkgs/os-specific/linux/broadcom-sta/license.patch
+++ b/pkgs/os-specific/linux/broadcom-sta/license.patch
@@ -1,12 +1,13 @@
 diff -Naur hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_linux.c hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.c
 --- hybrid-portsrc-x86_32-v5_10_91_9.orig/src/wl/sys/wl_linux.c	2009-04-23 02:48:59.000000000 +0900
 +++ hybrid-portsrc-x86_32-v5_10_91_9/src/wl/sys/wl_linux.c	2009-05-08 00:48:20.000000000 +0900
-@@ -163,6 +163,8 @@
+@@ -171,6 +171,8 @@
  static void wl_free_if(wl_info_t *wl, wl_if_t *wlif);
  static void wl_get_driver_info(struct net_device *dev, struct ethtool_drvinfo *info);
  
 +MODULE_LICENSE("MIXED/Proprietary");
 +
- static struct pci_device_id wl_id_table[] = {
- 	{ PCI_VENDOR_ID_BROADCOM, 0x4311, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, 
- 	{ PCI_VENDOR_ID_BROADCOM, 0x4312, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, 
+ #if defined(WL_CONFIG_RFKILL)
+ #include <linux/rfkill.h>
+ static int wl_init_rfkill(wl_info_t *wl);
+
diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-2.6.39.patch b/pkgs/os-specific/linux/broadcom-sta/linux-2.6.39.patch
deleted file mode 100644
index ca07c918c36..00000000000
--- a/pkgs/os-specific/linux/broadcom-sta/linux-2.6.39.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- old/src/wl/sys/wl_cfg80211.c
-+++ new/src/wl/sys/wl_cfg80211.c
-@@ -1811,7 +1811,7 @@
- 	notif_bss_info->frame_len = offsetof(struct ieee80211_mgmt, u.beacon.variable) +
- 	                            wl_get_ielen(wl);
- 	freq = ieee80211_channel_to_frequency(notif_bss_info->channel 
--#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39)
- 		,(notif_bss_info->channel <= CH_MAX_2G_CHANNEL) ? IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ
- #endif
- 	);
diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-3.2.patch b/pkgs/os-specific/linux/broadcom-sta/linux-3.2.patch
deleted file mode 100644
index b491537cb86..00000000000
--- a/pkgs/os-specific/linux/broadcom-sta/linux-3.2.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -Naur broadcom-sta-5.100.82.112.orig/src/wl/sys/wl_linux.c broadcom-sta-5.100.82.112/src/wl/sys/wl_linux.c
---- broadcom-sta-5.100.82.112.orig/src/wl/sys/wl_linux.c	2011-10-23 01:56:55.000000000 +0900
-+++ broadcom-sta-5.100.82.112/src/wl/sys/wl_linux.c	2011-11-22 00:56:07.021520421 +0900
-@@ -385,7 +385,9 @@
- #endif
- 	.ndo_get_stats = wl_get_stats,
- 	.ndo_set_mac_address = wl_set_mac_address,
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
- 	.ndo_set_multicast_list = wl_set_multicast_list,
-+#endif
- 	.ndo_do_ioctl = wl_ioctl
- };
- 
diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-3.4.patch b/pkgs/os-specific/linux/broadcom-sta/linux-3.4.patch
deleted file mode 100644
index 854131c641b..00000000000
--- a/pkgs/os-specific/linux/broadcom-sta/linux-3.4.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- broadcom-sta.orig/src/wl/sys/wl_linux.c
-+++ broadcom-sta.new/src/wl/sys/wl_linux.c
-@@ -40,7 +40,9 @@
- #include <linux/pci_ids.h>
- #define WLC_MAXBSSCFG          1
- 
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 4, 0)
- #include <asm/system.h>
-+#endif
- #include <asm/io.h>
- #include <asm/irq.h>
- #include <asm/pgtable.h>
diff --git a/pkgs/os-specific/linux/broadcom-sta-v6/linux-recent.patch b/pkgs/os-specific/linux/broadcom-sta/linux-recent.patch
index 97a331a2bd7..97a331a2bd7 100644
--- a/pkgs/os-specific/linux/broadcom-sta-v6/linux-recent.patch
+++ b/pkgs/os-specific/linux/broadcom-sta/linux-recent.patch
diff --git a/pkgs/os-specific/linux/broadcom-sta/makefile.patch b/pkgs/os-specific/linux/broadcom-sta/makefile.patch
deleted file mode 100644
index 6ba8527e267..00000000000
--- a/pkgs/os-specific/linux/broadcom-sta/makefile.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- src/Makefile	2010-10-08 00:32:59.000000000 +0200
-+++ src/Makefile	2010-11-09 11:06:28.832999850 +0100
-@@ -27,10 +27,10 @@
- EXTRA_LDFLAGS      := $(src)/lib/wlc_hybrid.o_shipped
- 
- all:
--	KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
-+	KBUILD_NOPEDANTIC=1 make -C ${KDIR} M=`pwd`
- 
- clean:
--	KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd` clean
-+	KBUILD_NOPEDANTIC=1 make -C ${KDIR} clean
- 
- install:
--	install -D -m 755 wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/wl.ko
-+	install -D -m 755 wl.ko $out/lib/modules/${kernelVersion}/kernel/drivers/net/wireless/wl.ko
diff --git a/pkgs/os-specific/linux/cryptodev/default.nix b/pkgs/os-specific/linux/cryptodev/default.nix
index 7a818530ca2..022ea648fea 100644
--- a/pkgs/os-specific/linux/cryptodev/default.nix
+++ b/pkgs/os-specific/linux/cryptodev/default.nix
@@ -1,8 +1,8 @@
-{ fetchurl, stdenv, kernelDev, onlyHeaders ? false }:
+{ fetchurl, stdenv, kernel, onlyHeaders ? false }:
 
 stdenv.mkDerivation rec {
   pname = "cryptodev-linux-1.6";
-  name = "${pname}-${kernelDev.version}";
+  name = "${pname}-${kernel.version}";
 
   src = fetchurl {
     url = "http://download.gna.org/cryptodev-linux/${pname}.tar.gz";
@@ -10,12 +10,12 @@ stdenv.mkDerivation rec {
   };
 
   buildPhase = if !onlyHeaders then ''
-    make -C ${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build \
+    make -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build \
       SUBDIRS=`pwd` INSTALL_PATH=$out
   '' else ":";
 
   installPhase = stdenv.lib.optionalString (!onlyHeaders) ''
-    make -C ${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build \
+    make -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build \
       INSTALL_MOD_PATH=$out SUBDIRS=`pwd` modules_install
   '' + ''
     mkdir -p $out/include/crypto
diff --git a/pkgs/os-specific/linux/cryptsetup/default.nix b/pkgs/os-specific/linux/cryptsetup/default.nix
index 93f62ab7e0a..0f4a1b6985e 100644
--- a/pkgs/os-specific/linux/cryptsetup/default.nix
+++ b/pkgs/os-specific/linux/cryptsetup/default.nix
@@ -5,11 +5,11 @@
 assert enablePython -> python != null;
 
 stdenv.mkDerivation rec {
-  name = "cryptsetup-1.6.2";
+  name = "cryptsetup-1.6.3";
 
   src = fetchurl {
     url = "http://cryptsetup.googlecode.com/files/${name}.tar.bz2";
-    sha256 = "16hh7v8bsqy0i1wlaj03kwqjv3liffkvg06lk75lng9hk00kywhm";
+    sha256 = "1n1qk5chyjspbiianrdb55fhb4wl0vfyqz2br05vfb24v4qlgbx2";
   };
 
   configureFlags = [ "--enable-cryptsetup-reencrypt" ]
diff --git a/pkgs/os-specific/linux/e1000e/default.nix b/pkgs/os-specific/linux/e1000e/default.nix
index e1abeea49b7..db5f88b935f 100644
--- a/pkgs/os-specific/linux/e1000e/default.nix
+++ b/pkgs/os-specific/linux/e1000e/default.nix
@@ -1,19 +1,17 @@
-{ stdenv, fetchurl, kernelDev }:
+{ stdenv, fetchurl, kernel }:
 
 stdenv.mkDerivation {
-  name = "e1000e-1.5.1-${kernelDev.version}";
+  name = "e1000e-2.5.4-${kernel.version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/e1000/e1000e-1.5.1.tar.gz";
-    sha256 = "0nzjlarpqcpm5y112n3vzra4qv32hiygpfkk10y8g4nln4adhqsw";
+    url = "mirror://sourceforge/e1000/e1000e-2.5.4.tar.gz";
+    sha256 = "0bmihkc7y37jzwi996ryqblnyflyhhbimbnrnmlk419vxlzg1pzi";
   };
 
-  buildInputs = [ kernelDev ];
-
   configurePhase = ''
     cd src
-    kernel_version=$( cd ${kernelDev}/lib/modules && echo * )
-    sed -i -e 's|/lib/modules|${kernelDev}/lib/modules|' Makefile
+    kernel_version=${kernel.modDirVersion}
+    sed -i -e 's|/lib/modules|${kernel.dev}/lib/modules|' Makefile
     export makeFlags="BUILD_KERNEL=$kernel_version"
   '';
 
diff --git a/pkgs/os-specific/linux/exmap/default.nix b/pkgs/os-specific/linux/exmap/default.nix
deleted file mode 100644
index 1b372ca3dbf..00000000000
--- a/pkgs/os-specific/linux/exmap/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ fetchurl, stdenv, kernelDev, pkgconfig, gtkmm, boost, pcre }:
-
-stdenv.mkDerivation rec {
-  name = "exmap-0.10-${kernelDev.version}";
-
-  src = fetchurl {
-    url = "http://www.berthels.co.uk/exmap/download/${name}.tgz";
-    sha256 = "0z00dhl6bdmaz7p9wlvnj0izf0zlrlkv34fz449kxyislpzzxmgn";
-  };
-
-  patchPhase = ''
-    substituteInPlace "kernel/Makefile" \
-      --replace '/lib/modules/$(shell uname -r)/build' \
-                ${kernelDev}/lib/modules/*/build
-
-    # The `proc_root' variable (the root of `/proc') is no longer exported
-    # since 2.6.26.  Fortunately, one can pass `NULL' instead of `&proc_root'.
-    # See http://lkml.org/lkml/2008/3/30/57 .
-    substituteInPlace "kernel/exmap.c" \
-      --replace "&proc_root" "NULL"
-
-    substituteInPlace "src/Makefile" --replace "-Werror" ""
-  '';
-
-  buildInputs = [ kernelDev pkgconfig gtkmm boost pcre ];
-
-  buildPhase = "make build";
-
-  # XXX: The tests can only be run one the `exmap' module is loaded.
-  doCheck = false;
-  #checkPhase = "make test"
-
-  installPhase = ''
-    mkdir -p "$out/share/${name}"
-    cp kernel/*.ko "$out/share/${name}"
-
-    mkdir -p "$out/bin"
-    cp src/{gexmap,exmtool,elftool,showproc} "$out/bin"
-  '';
-
-  meta = {
-    description = "Exmap, a tool showing the physical memory usage of processes";
-
-    longDescription = ''
-      Exmap is a utility which takes a snapshot of how the physical
-      memory and swap space are currently used by all the processes on
-      your system.  It examines which page of memory are shared between
-      which processes, so that it can share the cost of the pages
-      fairly when calculating usage totals.
-    '';
-
-    homepage = http://www.berthels.co.uk/exmap/;
-
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/os-specific/linux/frandom/default.nix b/pkgs/os-specific/linux/frandom/default.nix
index a28ba527218..419207882f8 100644
--- a/pkgs/os-specific/linux/frandom/default.nix
+++ b/pkgs/os-specific/linux/frandom/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, fetchurl, kernelDev }:
+{ stdenv, fetchurl, kernel }:
 
 let baseName = "frandom-1.1";
 in
 
 stdenv.mkDerivation rec {
-  name = "${baseName}-${kernelDev.version}";
+  name = "${baseName}-${kernel.version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/frandom/${baseName}.tar.gz";
@@ -12,14 +12,14 @@ stdenv.mkDerivation rec {
   };
 
   preBuild = ''
-    kernelVersion=$(cd ${kernelDev}/lib/modules && ls)
+    kernelVersion=${kernel.modDirVersion}
     substituteInPlace Makefile \
       --replace "\$(shell uname -r)" "$kernelVersion" \
-      --replace "/lib/modules" "${kernelDev}/lib/modules"
+      --replace "/lib/modules" "${kernel.dev}/lib/modules"
   '';
  
   installPhase = ''
-    kernelVersion=$(cd ${kernelDev}/lib/modules && ls)
+    kernelVersion=${kernel.modDirVersion}
     ensureDir $out/lib/modules/$kernelVersion/misc
     cp frandom.ko $out/lib/modules/$kernelVersion/misc
 
diff --git a/pkgs/os-specific/linux/iscsitarget/default.nix b/pkgs/os-specific/linux/iscsitarget/default.nix
deleted file mode 100644
index e07409aa08d..00000000000
--- a/pkgs/os-specific/linux/iscsitarget/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, fetchurl, kernelDev, module_init_tools}:
-
-stdenv.mkDerivation rec {
-  name = "iscsitarget-1.4.20.2-${kernelDev.version}";
-  
-  src = fetchurl {
-    url = "mirror://sourceforge/iscsitarget/iscsitarget/1.4.20.2/${name}.tar.gz";
-    sha256 = "126kp0yc7vmvdbaw2xfav89340b0h91dvvyib5qbvyrq40n8wg0g";
-  };
-  
-  KSRC = "${kernelDev}/lib/modules/*/build";
-  
-  DESTDIR = "$(out)";
-  
-  preConfigure = ''
-    export PATH=$PATH:${module_init_tools}/sbin
-    sed -i 's|/usr/|/|' Makefile
-  '';
-  
-  buildInputs = [ module_init_tools ];
-  
-  meta = {
-    description = "iSCSI Enterprise Target (IET), software for building an iSCSI storage system on Linux";
-    license = "GPLv2+";
-    homepage = http://iscsitarget.sourceforge.net;
-  };
-}
diff --git a/pkgs/os-specific/linux/iwlwifi/default.nix b/pkgs/os-specific/linux/iwlwifi/default.nix
deleted file mode 100644
index 1a28720f004..00000000000
--- a/pkgs/os-specific/linux/iwlwifi/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{stdenv, fetchurl, kernelDev}:
-
-let version = "1.2.25"; in
-
-stdenv.mkDerivation rec {
-  name = "iwlwifi-${version}-${kernelDev.version}";
-
-  src = fetchurl {
-    url = "http://www.intellinuxwireless.org/iwlwifi/downloads/iwlwifi-${version}.tgz";
-    sha256 = "09fjy0swcyd77fdp8x2825wj5cd73hwbzl8mz9sy2ha21p1qwq1d";
-  };
-
-  preBuild = ''
-    substituteInPlace scripts/generate_compatible \
-      --replace '/usr/bin/env /bin/bash' $shell
-    substituteInPlace Makefile \
-      --replace /sbin/depmod true
-
-    # Urgh, we need the complete kernel sources for some header
-    # files.  So unpack the original kernel source tarball and copy
-    # the configured include directory etc. on top of it.
-    kernelVersion=$(cd ${kernelDev}/lib/modules && ls)
-    kernelBuild=$(echo ${kernelDev}/lib/modules/$kernelVersion/source)
-    tar xvfj ${kernelDev.src}
-    kernelSource=$(echo $(pwd)/linux-*)
-    cp -prd $kernelBuild/* $kernelSource
-
-    makeFlags=KSRC=$kernelSource
-    make $makeFlags || true
-    make $makeFlags
-
-    installFlags=KMISC=$out/lib/modules/$kernelVersion/misc
-  ''; # */
-
-  meta = {
-    description = "Intel Wireless WiFi Link drivers for Linux";
-    homepage = http://www.intellinuxwireless.org/;
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix
new file mode 100644
index 00000000000..e4ce1945705
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel-headers/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, kernel, perl }:
+
+let
+  baseBuildFlags = [ "INSTALL_HDR_PATH=$(out)" "headers_install" ];
+in stdenv.mkDerivation {
+  name = "linux-headers-${kernel.version}";
+
+  inherit (kernel) src patches;
+
+  nativeBuildInputs = [ perl ];
+
+  buildFlags = [ "ARCH=${stdenv.platform.kernelArch}" ] ++ baseBuildFlags;
+
+  crossAttrs = {
+    inherit (kernel.crossDrv) src patches;
+    buildFlags = [ "ARCH=${stdenv.cross.platform.kernelArch}" ] ++ baseBuildFlags;
+  };
+
+  installPhase = ''
+    find $out \( -name ..install.cmd -o -name .install \) -print0 | xargs -0 rm
+  '';
+
+  # Headers shouldn't reference anything else
+  allowedReferences = [];
+}
diff --git a/pkgs/os-specific/linux/kernel/builder.sh b/pkgs/os-specific/linux/kernel/builder.sh
deleted file mode 100644
index 8fb5e9f91eb..00000000000
--- a/pkgs/os-specific/linux/kernel/builder.sh
+++ /dev/null
@@ -1,149 +0,0 @@
-source $stdenv/setup
-
-
-makeFlags="ARCH=$arch SHELL=/bin/sh KBUILD_BUILD_VERSION=1-NixOS $makeFlags"
-if [ -n "$crossConfig" ]; then
-  makeFlags="$makeFlags CROSS_COMPILE=$crossConfig-"
-fi
-
-postPatch() {
-    # Makefiles are full of /bin/pwd, /bin/false, /bin/bash, etc.
-    # Patch these away, assuming the tools are in $PATH.
-    for mf in $(find -name Makefile); do
-        echo "stripping FHS paths in \`$mf'..."
-        sed -i "$mf" -e 's|/usr/bin/||g ; s|/bin/||g'
-    done
-}
-
-configurePhase() {
-    if test -n "$preConfigure"; then
-        eval "$preConfigure"
-    fi
-
-    export INSTALL_PATH=$out
-    export INSTALL_MOD_PATH=$out
-
-    # Set our own localversion, if specified.
-    rm -f localversion*
-    if test -n "$localVersion"; then
-        echo "$localVersion" > localversion-nix
-    fi
-
-    # Patch kconfig to print "###" after every question so that
-    # generate-config.pl can answer them.
-    sed -e '/fflush(stdout);/i\printf("###");' -i scripts/kconfig/conf.c
-
-    # Get a basic config file for later refinement with $generateConfig.
-    make $kernelBaseConfig ARCH=$arch
-
-    # Create the config file.
-    echo "generating kernel configuration..."
-    echo "$kernelConfig" > kernel-config
-    DEBUG=1 ARCH=$arch KERNEL_CONFIG=kernel-config AUTO_MODULES=$autoModules \
-        perl -w $generateConfig
-}
-
-
-installPhase() {
-
-    mkdir -p $out
-
-    # New kernel versions have a combined tree for i386 and x86_64.
-    archDir=$arch
-    if test -e arch/x86 -a \( "$arch" = i386 -o "$arch" = x86_64 \); then
-        archDir=x86
-    fi
-
-
-    # Copy the bzImage and System.map.
-    cp System.map $out
-    if test "$arch" = um; then
-        mkdir -p $out/bin
-        cp linux $out/bin
-    elif test "$kernelTarget" != "vmlinux"; then
-        # In any case we copy the 'vmlinux' ELF in the next lines
-        cp arch/$archDir/boot/$kernelTarget $out
-    fi
-
-    cp vmlinux $out
-
-    if grep -q "CONFIG_MODULES=y" .config; then
-        # Install the modules in $out/lib/modules.
-        make modules_install \
-            DEPMOD=$kmod/sbin/depmod \
-            $makeFlags "${makeFlagsArray[@]}" \
-            $installFlags "${installFlagsArray[@]}"
-
-        if test -z "$dontStrip"; then
-            # Strip the kernel modules.
-        echo "Stripping kernel modules..."
-        if [ -z "$crossConfig" ]; then
-                find $out -name "*.ko" -print0 | xargs -0 strip -S
-        else
-                find $out -name "*.ko" -print0 | xargs -0 $crossConfig-strip -S
-        fi
-        fi
-
-        # move this to install later on
-        # largely copied from early FC3 kernel spec files
-        version=$(cd $out/lib/modules && ls -d *)
-
-        # remove symlinks and create directories
-        rm -f $out/lib/modules/$version/build
-        rm -f $out/lib/modules/$version/source
-        mkdir $out/lib/modules/$version/build
-
-        # copy config
-        cp .config $out/lib/modules/$version/build/.config
-        ln -s $out/lib/modules/$version/build/.config $out/config
-
-        if test "$arch" != um; then
-            # copy all Makefiles and Kconfig files
-            ln -s $out/lib/modules/$version/build $out/lib/modules/$version/source
-            cp --parents `find  -type f -name Makefile -o -name "Kconfig*"` $out/lib/modules/$version/build
-            cp Module.symvers $out/lib/modules/$version/build
-
-        if test "$dontStrip" = "1"; then
-            # copy any debugging info that can be found
-            cp --parents -rv `find -name \*.debug -o -name debug.a`     \
-               "$out/lib/modules/$version/build"
-        fi
-
-            # weed out unneeded stuff
-            rm -rf $out/lib/modules/$version/build/Documentation
-            rm -rf $out/lib/modules/$version/build/scripts
-            rm -rf $out/lib/modules/$version/build/include
-
-            # copy architecture dependent files
-            cp -a arch/$archDir/scripts $out/lib/modules/$version/build/ || true
-            cp -a arch/$archDir/*lds $out/lib/modules/$version/build/ || true
-            cp -a arch/$archDir/Makefile*.cpu $out/lib/modules/$version/build/arch/$archDir/ || true
-            cp -a --parents arch/$archDir/kernel/asm-offsets.s $out/lib/modules/$version/build/arch/$archDir/kernel/ || true
-
-            # copy scripts
-            rm -f scripts/*.o
-            rm -f scripts/*/*.o
-            cp -a scripts $out/lib/modules/$version/build
-
-            # copy include files
-            includeDir=$out/lib/modules/$version/build/include
-            mkdir -p $includeDir
-            (cd include && cp -a * $includeDir)
-        (cd arch/$archDir/include && cp -a * $includeDir || true)
-        (cd arch/$archDir/include && cp -a asm/* $includeDir/asm/ || true)
-        (cd arch/$archDir/include && cp -a generated/asm/* $includeDir/asm/ || true)
-        (cd arch/$archDir/include/asm/mach-generic && cp -a * $includeDir/ || true)
-            # include files for special arm architectures 
-            if [ "$archDir" == "arm" ]; then
-                cp -a --parents arch/arm/mach-*/include $out/lib/modules/$version/build
-            fi
-        fi
-    fi
-
-    if test -n "$postInstall"; then
-        eval "$postInstall";
-    fi
-}
-
-
-genericBuild
diff --git a/pkgs/os-specific/linux/kernel/generate-config.pl b/pkgs/os-specific/linux/kernel/generate-config.pl
index 78663098fb3..20abe1015c3 100644
--- a/pkgs/os-specific/linux/kernel/generate-config.pl
+++ b/pkgs/os-specific/linux/kernel/generate-config.pl
@@ -11,6 +11,9 @@
 
 use strict;
 use IPC::Open2;
+use Cwd;
+
+my $wd = getcwd;
 
 my $debug = $ENV{'DEBUG'};
 my $autoModules = $ENV{'AUTO_MODULES'};
@@ -36,7 +39,7 @@ close ANSWERS;
 sub runConfig {
 
     # Run `make config'.
-    my $pid = open2(\*IN, \*OUT, "make config SHELL=bash ARCH=$ENV{ARCH}");
+    my $pid = open2(\*IN, \*OUT, "make -C $ENV{SRC} O=$wd config SHELL=bash ARCH=$ENV{ARCH}");
 
     # Parse the output, look for questions and then send an
     # appropriate answer.
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index 3e1fc920a59..42ec3de9369 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, mktemp, kmod, bc
+{ stdenv, perl, linuxManualConfig
 
 , # The kernel source tarball.
   src
@@ -23,20 +23,7 @@
   # symbolic name and `patch' is the actual patch.  The patch may
   # optionally be compressed with gzip or bzip2.
   kernelPatches ? []
-
-, # Allows you to set your own kernel version suffix (e.g.,
-  # "-my-kernel").
-  localVersion ? ""
-
-, preConfigure ? ""
 , extraMeta ? {}
-, ubootChooser ? null
-, postInstall ? ""
-
-, # After the builder did a 'make all' (kernel + modules)
-  # we force building the target asked: bzImage/zImage/uImage/...
-  postBuild ? "make $makeFlags $kernelTarget; make $makeFlags -C scripts unifdef"
-
 , ...
 }:
 
@@ -52,93 +39,90 @@ let
         map ({extraConfig ? "", ...}: extraConfig) kernelPatches;
     in lib.concatStringsSep "\n" ([baseConfig] ++ configFromPatches);
 
+  configfile = stdenv.mkDerivation {
+    name = "linux-config-${version}";
+
+    generateConfig = ./generate-config.pl;
+
+    kernelConfig = kernelConfigFun config;
+
+    ignoreConfigErrors = stdenv.platform.name != "pc";
+
+    nativeBuildInputs = [ perl ];
+
+    platformName = stdenv.platform.name;
+    kernelBaseConfig = stdenv.platform.kernelBaseConfig;
+    kernelTarget = stdenv.platform.kernelTarget;
+    autoModules = stdenv.platform.kernelAutoModules;
+    arch = stdenv.platform.kernelArch;
+
+    crossAttrs = let
+        cp = stdenv.cross.platform;
+      in {
+        arch = cp.kernelArch;
+        platformName = cp.name;
+        kernelBaseConfig = cp.kernelBaseConfig;
+        kernelTarget = cp.kernelTarget;
+        autoModules = cp.kernelAutoModules;
+
+        # Just ignore all options that don't apply (We are lazy).
+        ignoreConfigErrors = true;
+
+        kernelConfig = kernelConfigFun configCross;
+
+        inherit (kernel.crossDrv) src patches preUnpack;
+      };
+
+    prePatch = kernel.prePatch + ''
+      # Patch kconfig to print "###" after every question so that
+      # generate-config.pl from the generic builder can answer them.
+      sed -e '/fflush(stdout);/i\printf("###");' -i scripts/kconfig/conf.c
+    '';
+
+    inherit (kernel) src patches preUnpack;
+
+    buildPhase = ''
+      cd $buildRoot
+
+      # Get a basic config file for later refinement with $generateConfig.
+      make -C ../$sourceRoot O=$PWD $kernelBaseConfig ARCH=$arch
+
+      # Create the config file.
+      echo "generating kernel configuration..."
+      echo "$kernelConfig" > kernel-config
+      DEBUG=1 ARCH=$arch KERNEL_CONFIG=kernel-config AUTO_MODULES=$autoModules \
+           SRC=../$sourceRoot perl -w $generateConfig
+    '';
+
+    installPhase = "mv .config $out";
+  };
+
+  kernel = linuxManualConfig {
+    inherit version modDirVersion src kernelPatches;
+
+    configfile = configfile.nativeDrv or configfile;
+
+    crossConfigfile = configfile.crossDrv or configfile;
+
+    config = { CONFIG_MODULES = "y"; CONFIG_FW_LOADER = "m"; };
+
+    crossConfig = { CONFIG_MODULES = "y"; CONFIG_FW_LOADER = "m"; };
+  };
+
   configWithPlatform = kernelPlatform:
     import ./common-config.nix { inherit stdenv version kernelPlatform extraConfig; };
 
   config = configWithPlatform stdenv.platform;
   configCross = configWithPlatform stdenv.cross.platform;
 
-in
-
-stdenv.mkDerivation {
-  name = "linux-${version}";
-
-  enableParallelBuilding = true;
-
   passthru = {
-    inherit version modDirVersion kernelPatches;
     # Combine the `features' attribute sets of all the kernel patches.
     features = lib.fold (x: y: (x.features or {}) // y) features kernelPatches;
+
+    meta = kernel.meta // extraMeta;
   };
 
-  builder = ./builder.sh;
-
-  generateConfig = ./generate-config.pl;
-
-  inherit preConfigure src kmod localVersion postInstall postBuild;
-
-  patches = map (p: p.patch) kernelPatches;
-
-  kernelConfig = kernelConfigFun config;
-
-  # For UML and non-PC, just ignore all options that don't apply (We are lazy).
-  ignoreConfigErrors = stdenv.platform.name != "pc";
-
-  nativeBuildInputs = [ perl mktemp bc ];
-
-  buildInputs = lib.optional (stdenv.platform.uboot != null)
-    (ubootChooser stdenv.platform.uboot);
-
-  platformName = stdenv.platform.name;
-  kernelBaseConfig = stdenv.platform.kernelBaseConfig;
-  kernelTarget = stdenv.platform.kernelTarget;
-  autoModules = stdenv.platform.kernelAutoModules;
-
-  # Should we trust platform.kernelArch? We can only do
-  # that once we differentiate i686/x86_64 in platforms.
-  arch =
-    if stdenv.system == "i686-linux" then "i386" else
-    if stdenv.system == "x86_64-linux" then "x86_64" else
-    if stdenv.isArm then "arm" else
-    if stdenv.system == "mips64el-linux" then "mips" else
-    abort "Platform ${stdenv.system} is not supported.";
-
-  crossAttrs = let
-      cp = stdenv.cross.platform;
-    in
-      assert cp.name == "sheevaplug" -> cp.uboot != null;
-    {
-      arch = cp.kernelArch;
-      platformName = cp.name;
-      kernelBaseConfig = cp.kernelBaseConfig;
-      kernelTarget = cp.kernelTarget;
-      autoModules = cp.kernelAutoModules;
-
-      # Just ignore all options that don't apply (We are lazy).
-      ignoreConfigErrors = true;
-
-      kernelConfig = kernelConfigFun configCross;
-
-      # The substitution of crossAttrs happens *after* the stdenv cross adapter sets
-      # the parameters for the usual stdenv. Thus, we need to specify
-      # the ".crossDrv" in the buildInputs here.
-      buildInputs = lib.optional (cp.uboot != null) (ubootChooser cp.uboot).crossDrv;
-    };
-
-  meta = {
-    description =
-      "The Linux kernel" +
-      (if kernelPatches == [] then "" else
-        " (with patches: "
-        + lib.concatStrings (lib.intersperse ", " (map (x: x.name) kernelPatches))
-        + ")");
-    license = "GPLv2";
-    homepage = http://www.kernel.org/;
-    maintainers = [
-      lib.maintainers.eelco
-      lib.maintainers.chaoflow
-    ];
-    platforms = lib.platforms.linux;
-  } // extraMeta;
-}
+  nativeDrv = lib.addPassthru kernel.nativeDrv passthru;
 
+  crossDrv = lib.addPassthru kernel.crossDrv passthru;
+in if kernel ? crossDrv then nativeDrv // { inherit nativeDrv crossDrv; } else lib.addPassthru kernel passthru
diff --git a/pkgs/os-specific/linux/kernel/linux-3.4.nix b/pkgs/os-specific/linux/kernel/linux-3.4.nix
index 46a87e65c50..423e419a5aa 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.4.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "3.4.74";
+  version = "3.4.75";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-    sha256 = "189b7391shzsf0383c3yqf8wy9w82wkzfqmqzxkm77312px1b2yb";
+    sha256 = "15i9gr66nbjvjjv9hwkvii307rn62627dq3pcp1j3zl472n302qr";
   };
 
   features.iwlwifi = true;
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix
index f097f2562d0..b387efd5c41 100644
--- a/pkgs/os-specific/linux/kernel/manual-config.nix
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -1,45 +1,16 @@
-{ stdenv, runCommand, nettools, bc, perl, kmod, writeTextFile }:
+{ stdenv, runCommand, nettools, bc, perl, kmod, writeTextFile, ubootChooser }:
 
 let
-  inherit (stdenv.lib)
-    hasAttr getAttr optionalAttrs optional optionalString maintainers platforms;
-
-  # Function to parse the config file into a nix expression
-  readConfig = configFile:
-    let
-      configAttrs = import "${runCommand "config.nix" {} ''
-        echo "{" > "$out"
-        while IFS='=' read key val; do
-          [ "x''${key#CONFIG_}" != "x$key" ] || continue
-          no_firstquote="''${val#\"}";
-          echo '  "'"$key"'" = "'"''${no_firstquote%\"}"'";' >> "$out"
-        done < "${configFile}"
-        echo "}" >> $out
-      ''}";
-
-      config = configAttrs // rec {
-        attrName = attr: "CONFIG_" + attr;
-
-        isSet = attr: hasAttr (attrName attr) config;
-
-        getValue = attr: if isSet attr then getAttr (attrName attr) config else null;
-
-        isYes = attr: (isSet attr) && ((getValue attr) == "y");
-
-        isNo = attr: (isSet attr) && ((getValue attr) == "n");
-
-        isModule = attr: (isSet attr) && ((getValue attr) == "m");
-
-        isEnabled = attr: (isModule attr) || (isYes attr);
-
-        isDisabled = attr: (!(isSet attr)) || (isNo attr);
-      };
-    in
-      config;
-
-in
-
-{
+  readConfig = configfile: import (runCommand "config.nix" {} ''
+    echo "{" > "$out"
+    while IFS='=' read key val; do
+      [ "x''${key#CONFIG_}" != "x$key" ] || continue
+      no_firstquote="''${val#\"}";
+      echo '  "'"$key"'" = "'"''${no_firstquote%\"}"'";' >> "$out"
+    done < "${configfile}"
+    echo "}" >> $out
+  '').outPath;
+in {
   # The kernel version
   version,
   # The version of the kernel module directory
@@ -48,127 +19,215 @@ in
   src,
   # Any patches
   kernelPatches ? [],
-  # The kernel .config file
+  # Patches for native compiling only
+  nativeKernelPatches ? [],
+  # Patches for cross compiling only
+  crossKernelPatches ? [],
+  # The native kernel .config file
   configfile,
+  # The cross kernel .config file
+  crossConfigfile ? configfile,
   # Manually specified nixexpr representing the config
   # If unspecified, this will be autodetected from the .config
-  config ? optionalAttrs allowImportFromDerivation (readConfig configfile),
+  config ? stdenv.lib.optionalAttrs allowImportFromDerivation (readConfig configfile),
+  # Cross-compiling config
+  crossConfig ? if allowImportFromDerivation then (readConfig crossConfigfile) else config,
   # Whether to utilize the controversial import-from-derivation feature to parse the config
   allowImportFromDerivation ? false
 }:
 
 let
-  installkernel = name: writeTextFile { name = "installkernel"; executable=true; text = ''
-    #!/bin/sh
-    mkdir $4
-    cp -av $2 $4/${name}
-    cp -av $3 $4
-  '';};
-
-  isModular = config.isYes "MODULES";
+  inherit (stdenv.lib)
+    hasAttr getAttr optional optionalString maintainers platforms;
 
-  installsFirmware = (config.isEnabled "FW_LOADER") &&
-    (isModular || (config.isDisabled "FIRMWARE_IN_KERNEL"));
+  installkernel = writeTextFile { name = "installkernel"; executable=true; text = ''
+    #!${stdenv.shell} -e
+    mkdir -p $4
+    cp -av $2 $4
+    cp -av $3 $4
+  ''; };
 
   commonMakeFlags = [
     "O=$(buildRoot)"
-    "INSTALL_PATH=$(out)"
-  ] ++ (optional isModular "INSTALL_MOD_PATH=$(out)")
-  ++ optional installsFirmware "INSTALL_FW_PATH=$(out)/lib/firmware";
+  ];
 
-  sourceRoot = stdenv.mkDerivation {
-    name = "linux-${version}-source";
+  drvAttrs = config_: platform: kernelPatches: configfile:
+    let
+      config = let attrName = attr: "CONFIG_" + attr; in {
+        isSet = attr: hasAttr (attrName attr) config;
 
-    inherit src;
+        getValue = attr: if config.isSet attr then getAttr (attrName attr) config else null;
 
-    patches = map (p: p.patch) kernelPatches;
+        isYes = attr: (config.getValue attr) == "y";
 
-    phases = [ "unpackPhase" "patchPhase" "installPhase" ]; 
+        isNo = attr: (config.getValue attr) == "n";
 
-    prePatch = ''
-      for mf in $(find -name Makefile -o -name Makefile.include -o -name install.sh); do
-          echo "stripping FHS paths in \`$mf'..."
-          sed -i "$mf" -e 's|/usr/bin/||g ; s|/bin/||g ; s|/sbin/||g'
-      done
-      sed -i Makefile -e 's|= depmod|= ${kmod}/sbin/depmod|'
-    '';
+        isModule = attr: (config.getValue attr) == "m";
 
-    installPhase = ''
-      cd ..
-      mv $sourceRoot $out
-    '';
-  };
-in
+        isEnabled = attr: (config.isModule attr) || (config.isYes attr);
 
-stdenv.mkDerivation {
-  name = "linux-${version}";
+        isDisabled = attr: (!(config.isSet attr)) || (config.isNo attr);
+      } // config_;
 
-  enableParallelBuilding = true;
+      isModular = config.isYes "MODULES";
 
-  outputs = if isModular then [ "out" "dev" ] else null;
+      installsFirmware = (config.isEnabled "FW_LOADER") &&
+        (isModular || (config.isDisabled "FIRMWARE_IN_KERNEL"));
+    in {
+      outputs = if isModular then [ "out" "dev" ] else null;
 
-  passthru = {
-    inherit version modDirVersion config kernelPatches src;
-  };
+      passthru = {
+        inherit version modDirVersion config kernelPatches;
+      };
 
-  inherit sourceRoot;
+      inherit src;
+
+      preUnpack = ''
+        mkdir build
+        export buildRoot="$(pwd)/build"
+      '';
+
+      patches = map (p: p.patch) kernelPatches;
+
+      prePatch = ''
+        for mf in $(find -name Makefile -o -name Makefile.include -o -name install.sh); do
+            echo "stripping FHS paths in \`$mf'..."
+            sed -i "$mf" -e 's|/usr/bin/||g ; s|/bin/||g ; s|/sbin/||g'
+        done
+        sed -i Makefile -e 's|= depmod|= ${kmod}/sbin/depmod|'
+      '';
+
+      configurePhase = ''
+        runHook preConfigure
+        ln -sv ${configfile} $buildRoot/.config
+        make $makeFlags "''${makeFlagsArray[@]}" oldconfig
+        runHook postConfigure
+      '';
+
+      buildFlags = [ "KBUILD_BUILD_VERSION=1-NixOS" platform.kernelTarget ] ++ optional isModular "modules";
+
+      installFlags = [
+        "INSTALLKERNEL=${installkernel}"
+        "INSTALL_PATH=$(out)"
+      ] ++ (optional isModular "INSTALL_MOD_PATH=$(out)")
+      ++ optional installsFirmware "INSTALL_FW_PATH=$(out)/lib/firmware";
+
+      # Some image types need special install targets (e.g. uImage is installed with make uinstall)
+      installTargets = [ (if platform.kernelTarget == "uImage" then "uinstall" else "install") ];
+
+      postInstall = optionalString installsFirmware ''
+        mkdir -p $out/lib/firmware
+      '' + (if isModular then ''
+        make modules_install $makeFlags "''${makeFlagsArray[@]}" \
+          $installFlags "''${installFlagsArray[@]}"
+        unlink $out/lib/modules/${modDirVersion}/build
+        unlink $out/lib/modules/${modDirVersion}/source
+
+        mkdir -p $dev/lib/modules/${modDirVersion}
+        cd ..
+        mv $sourceRoot $dev/lib/modules/${modDirVersion}/source
+        cd $dev/lib/modules/${modDirVersion}/source
+
+        mv $buildRoot/.config $buildRoot/Module.symvers $TMPDIR
+        rm -fR $buildRoot
+        mkdir $buildRoot
+        mv $TMPDIR/.config $TMPDIR/Module.symvers $buildRoot
+        make modules_prepare $makeFlags "''${makeFlagsArray[@]}"
+        mv $buildRoot $dev/lib/modules/${modDirVersion}/build
+
+        # !!! No documentation on how much of the source tree must be kept
+        # If/when kernel builds fail due to missing files, you can add
+        # them here. Note that we may see packages requiring headers
+        # from drivers/ in the future; it adds 50M to keep all of its
+        # headers on 3.10 though.
+
+        chmod +w -R ../source
+        arch=`cd $dev/lib/modules/${modDirVersion}/build/arch; ls`
+
+        # Remove unusued arches
+        mv arch/$arch .
+        rm -fR arch
+        mkdir arch
+        mv $arch arch
+
+        # Remove all driver-specific code (50M of which is headers)
+        rm -fR drivers
+
+        # Keep all headers
+        find .  -type f -name '*.h' -print0 | xargs -0 chmod -w
+
+        # Keep root and arch-specific Makefiles
+        chmod -w Makefile
+        chmod -w arch/$arch/Makefile*
+
+        # Keep whole scripts dir
+        chmod -w -R scripts
+
+        # Delete everything not kept
+        find . -type f -perm -u=w -print0 | xargs -0 rm
+
+        # Delete empty directories
+        find -empty -type d -delete
+
+        # Remove reference to kmod
+        sed -i Makefile -e 's|= ${kmod}/sbin/depmod|= depmod|'
+      '' else optionalString installsFirmware ''
+        make firmware_install $makeFlags "''${makeFlagsArray[@]}" \
+          $installFlags "''${installFlagsArray[@]}"
+      '');
+
+      # !!! This leaves references to gcc in $dev
+      # that we might be able to avoid
+      postFixup = if isModular then ''
+        if [ -z "$dontStrip" ]; then
+            find $out -name "*.ko" -print0 | xargs -0 -r ''${crossConfig+$crossConfig-}strip -S
+        fi
+        # !!! Should this be part of stdenv? Also patchELF should take an argument...
+        prefix=$dev
+        patchELF
+        prefix=$out
+      '' else null;
+
+      meta = {
+        description =
+          "The Linux kernel" +
+          (if kernelPatches == [] then "" else
+            " (with patches: "
+            + stdenv.lib.concatStrings (stdenv.lib.intersperse ", " (map (x: x.name) kernelPatches))
+            + ")");
+        license = "GPLv2";
+        homepage = http://www.kernel.org/;
+        maintainers = [
+          maintainers.shlevy
+        ];
+        platforms = platforms.linux;
+      };
+    };
+in
 
-  unpackPhase = ''
-    mkdir build
-    export buildRoot="$(pwd)/build"
-    cd ${sourceRoot}
-  '';
+stdenv.mkDerivation ((drvAttrs config stdenv.platform (kernelPatches ++ nativeKernelPatches) configfile) // {
+  name = "linux-${version}";
 
-  configurePhase = ''
-    runHook preConfigure
-    ln -sv ${configfile} $buildRoot/.config
-    make $makeFlags "''${makeFlagsArray[@]}" oldconfig
-    runHook postConfigure
-  '';
+  enableParallelBuilding = true;
 
-  nativeBuildInputs = [ perl bc nettools ];
+  nativeBuildInputs = [ perl bc nettools ] ++ optional (stdenv.platform.uboot != null)
+    (ubootChooser stdenv.platform.uboot);
 
   makeFlags = commonMakeFlags ++ [
-   "INSTALLKERNEL=${installkernel stdenv.platform.kernelTarget}"
+    "ARCH=${stdenv.platform.kernelArch}"
   ];
 
-  crossAttrs = {
-    makeFlags = commonMakeFlags ++ [
-     "INSTALLKERNEL=${installkernel stdenv.cross.platform.kernelTarget}"
-    ];
-  };
-
-  postInstall = optionalString installsFirmware ''
-    mkdir -p $out/lib/firmware
-  '' + (if isModular then ''
-    make modules_install $makeFlags "''${makeFlagsArray[@]}" \
-      $installFlags "''${installFlagsArray[@]}"
-    rm -f $out/lib/modules/${modDirVersion}/build
-    mkdir -p $dev/lib/modules/${modDirVersion}
-    mv $out/lib/modules/${modDirVersion}/source $dev/lib/modules/${modDirVersion}/source
-    mv $buildRoot $dev/lib/modules/${modDirVersion}/build
-  '' else optionalString installsFirmware ''
-    make firmware_install $makeFlags "''${makeFlagsArray[@]}" \
-      $installFlags "''${installFlagsArray[@]}"
-  '');
-
-  postFixup = if isModular then ''
-    if [ -z "$dontStrip" ]; then
-        find $out -name "*.ko" -print0 | xargs -0 -r strip -S
-        # Remove all references to the source directory to avoid unneeded
-        # runtime dependencies
-        find $out -name "*.ko" -print0 | xargs -0 -r sed -i \
-          "s|${sourceRoot}|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${sourceRoot.name}|g"
-    fi
-  '' else null;
-
-  meta = {
-    description = "The Linux kernel";
-    license = "GPLv2";
-    homepage = http://www.kernel.org/;
-    maintainers = [
-      maintainers.shlevy
-    ];
-    platforms = platforms.linux;
+  crossAttrs = let cp = stdenv.cross.platform; in
+    (drvAttrs crossConfig cp (kernelPatches ++ crossKernelPatches) crossConfigfile) // {
+      makeFlags = commonMakeFlags ++ [
+        "ARCH=${cp.kernelArch}"
+        "CROSS_COMPILE=$(crossConfig)-"
+      ];
+
+      # !!! uboot has messed up cross-compiling, nativeDrv builds arm tools on x86,
+      # crossDrv builds x86 tools on x86 (but arm uboot). If this is fixed, uboot
+      # can just go into buildInputs (but not nativeBuildInputs since cp.uboot
+      # may be different from stdenv.platform.uboot)
+      buildInputs = optional (cp.uboot != null) (ubootChooser cp.uboot).crossDrv;
   };
-}
+})
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index b55312fe560..efa23f67846 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -18,24 +18,6 @@ let
       };
     };
 
-  makeAufs3StandalonePatch = {version, rev, sha256}:
-
-    stdenv.mkDerivation {
-      name = "aufs3-standalone-${version}.patch";
-
-      src = fetchgit {
-        url = git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git;
-        inherit sha256 rev;
-      };
-
-      phases = [ "unpackPhase" "installPhase" ];
-
-      # Instructions from http://aufs.git.sourceforge.net/git/gitweb.cgi?p=aufs/aufs3-standalone.git;a=blob;f=Documentation/filesystems/aufs/README;h=b8cf077635b323d1b454266366f05f476bbd09cb;hb=1067b9d8d64d23c70d905c9cd3c90a669e39c4d4
-      installPhase = ''
-        cat aufs3-base.patch aufs3-proc_map.patch aufs3-standalone.patch > $out
-      '';
-    };
-
   makeAppArmorPatch = {apparmor, version}:
     stdenv.mkDerivation {
       name = "apparmor-${version}.patch";
@@ -68,34 +50,6 @@ rec {
       features.secPermPatch = true;
     };
 
-  aufs3_2 = rec {
-    name = "aufs3.2";
-    version = "3.2.20121210";
-    utilRev = "91af15f977d12e02165759620005f6ce1a4d7602";
-    utilHash = "dda4df89828dcf0e4012d88b4aa3eda8c30af69d6530ff5fedc2411de872c996";
-    patch = makeAufs3StandalonePatch {
-      inherit version;
-      rev = "0bf50c3b82f98e2ddc4c9ba0657f28ebfa8d15cb";
-      sha256 = "bc4b65cb77c62744db251da98488fdf4962f14a144c045cea6cbbbd42718ff89";
-    };
-    features.aufsBase = true;
-    features.aufs3 = true;
-  };
-
-  aufs3_4 = rec {
-    name = "aufs3.4";
-    version = "3.4.20121210";
-    utilRev = "91af15f977d12e02165759620005f6ce1a4d7602";
-    utilHash = "dda4df89828dcf0e4012d88b4aa3eda8c30af69d6530ff5fedc2411de872c996";
-    patch = makeAufs3StandalonePatch {
-      inherit version;
-      rev = "2faacd9baffb37df3b9062cc554353eebe68df1e";
-      sha256 = "3ecf97468f5e85970d9fd2bfc61e38c7f5ae2c6dde0045d5a17de085c411d452";
-    };
-    features.aufsBase = true;
-    features.aufs3 = true;
-  };
-
   no_xsave =
     { name = "no-xsave";
       patch = ./no-xsave.patch;
diff --git a/pkgs/os-specific/linux/kernel/perf.nix b/pkgs/os-specific/linux/kernel/perf.nix
index 04924f013a4..3fb18a23472 100644
--- a/pkgs/os-specific/linux/kernel/perf.nix
+++ b/pkgs/os-specific/linux/kernel/perf.nix
@@ -1,13 +1,13 @@
-{ stdenv, kernelDev, elfutils, python, perl, newt, slang, asciidoc, xmlto
+{ stdenv, kernel, elfutils, python, perl, newt, slang, asciidoc, xmlto
 , docbook_xsl, docbook_xml_dtd_45, libxslt, flex, bison, pkgconfig
 , withGtk ? false, gtk ? null }:
 
 assert withGtk -> gtk != null;
 
 stdenv.mkDerivation {
-  name = "perf-linux-${kernelDev.version}";
+  name = "perf-linux-${kernel.version}";
 
-  inherit (kernelDev) src patches;
+  inherit (kernel) src patches;
 
   preConfigure = ''
     cd tools/perf
@@ -31,6 +31,7 @@ stdenv.mkDerivation {
     propagatedBuildInputs = [ elfutils.crossDrv newt.crossDrv ];
     makeFlags = "CROSS_COMPILE=${stdenv.cross.config}-";
     elfutils = elfutils.crossDrv;
+    inherit (kernel.crossDrv) src patches;
   };
 
   meta = {
diff --git a/pkgs/os-specific/linux/klibc/default.nix b/pkgs/os-specific/linux/klibc/default.nix
index 97bdd9ebacb..df44cb68d8b 100644
--- a/pkgs/os-specific/linux/klibc/default.nix
+++ b/pkgs/os-specific/linux/klibc/default.nix
@@ -1,74 +1,48 @@
-{ stdenv, fetchurl, perl, bison, mktemp, linuxHeaders, linuxHeadersCross, kernelDev ? null }:
-
-assert stdenv.isLinux;
+{ stdenv, fetchurl, kernelHeaders, kernel, perl }:
 
 let
-  version = "1.5.24";
-  baseMakeFlags = ["V=1" "prefix=$out" "SHLIBDIR=$out/lib"];
+  version = "2.0.3";
+
+  commonMakeFlags = [
+    "prefix=$(out)"
+    "SHLIBDIR=$(out)/lib"
+  ];
 in
 
 stdenv.mkDerivation {
-  name = "klibc-${version}${stdenv.lib.optionalString (kernelDev != null) "-${kernelDev.version}"}";
+  name = "klibc-${version}-${kernel.version}";
 
   src = fetchurl {
-    url = "mirror://kernel/linux/libs/klibc/1.5/klibc-${version}.tar.bz2";
-    sha256 = "18lm32dlj9k2ky9wwk274zmc3jndgrb41b6qm82g3lza6wlw3yki";
+    url = "mirror://kernel/linux/libs/klibc/2.0/klibc-${version}.tar.xz";
+    sha256 = "02035f2b230020de569d40605485121e0fe481ed33a93bdb8bf8c6ee2695fffa";
   };
 
-  # Trick to make this build on nix. It expects to have the kernel sources
-  # instead of only the linux kernel headers.
-  # So it cannot run the 'make headers_install' it wants to run.
-  # We don't install the headers, so klibc will not be useful as libc, but
-  # usually in nixpkgs we only use the userspace tools comming with klibc.
-  prePatch = stdenv.lib.optionalString (kernelDev == null) ''
-    sed -i -e /headers_install/d scripts/Kbuild.install
-  '';
-  
-  makeFlags = baseMakeFlags;
+  patches = [ ./no-reinstall-kernel-headers.patch ];
 
-  inherit linuxHeaders;
+  nativeBuildInputs = [ perl ];
 
-  crossAttrs = {
-    makeFlags = baseMakeFlags ++ [ "CROSS_COMPILE=${stdenv.cross.config}-"
-        "KLIBCARCH=${stdenv.cross.arch}" ];
+  makeFlags = commonMakeFlags ++ [
+    "KLIBCARCH=${stdenv.platform.kernelArch}"
+    "KLIBCKERNELSRC=${kernelHeaders}"
+  ] ++ stdenv.lib.optional (stdenv.platform.kernelArch == "arm") "CONFIG_AEABI=y";
 
-    patchPhase = ''
-      sed -i 's/-fno-pic -mno-abicalls/& -mabi=32/' usr/klibc/arch/mips/MCONFIG
-      sed -i /KLIBCKERNELSRC/d scripts/Kbuild.install
-      # Wrong check for __mips64 in klibc
-      sed -i s/__mips64__/__mips64/ usr/include/fcntl.h
-    '';
-
-    linuxHeaders = linuxHeadersCross;
+  crossAttrs = {
+    makeFlags = commonMakeFlags ++ [
+      "KLIBCARCH=${stdenv.cross.platform.kernelArch}"
+      "KLIBCKERNELSRC=${kernelHeaders.crossDrv}"
+      "CROSS_COMPILE=${stdenv.cross.config}-"
+    ] ++ stdenv.lib.optional (stdenv.cross.platform.kernelArch == "arm") "CONFIG_AEABI=y";
   };
-  
-  # The AEABI option concerns only arm systems, and does not affect the build for
-  # other systems.
-  preBuild = ''
-    sed -i /CONFIG_AEABI/d defconfig
-    echo "CONFIG_AEABI=y" >> defconfig
-    makeFlags=$(eval "echo $makeFlags")
 
-  '' + (if kernelDev == null then ''
-    mkdir linux
-    cp -prsd $linuxHeaders/include linux/
-    chmod -R u+w linux/include/
-  '' else ''
-    tar xvf ${kernelDev.src}
-    mv linux* linux
-    cd linux
-    ln -sv ${kernelDev}/config .config
-    make prepare
-    cd ..
-  '');
-  
   # Install static binaries as well.
   postInstall = ''
     dir=$out/lib/klibc/bin.static
     mkdir $dir
     cp $(find $(find . -name static) -type f ! -name "*.g" -a ! -name ".*") $dir/
     cp usr/dash/sh $dir/
+
+    for file in ${kernelHeaders}/include/*; do
+      ln -sv $file $out/lib/klibc/include
+    done
   '';
-  
-  nativeBuildInputs = [ perl bison mktemp ];
 }
diff --git a/pkgs/os-specific/linux/klibc/no-reinstall-kernel-headers.patch b/pkgs/os-specific/linux/klibc/no-reinstall-kernel-headers.patch
new file mode 100644
index 00000000000..d3e55fc8731
--- /dev/null
+++ b/pkgs/os-specific/linux/klibc/no-reinstall-kernel-headers.patch
@@ -0,0 +1,11 @@
+diff -Naur klibc-2.0.3-orig/scripts/Kbuild.install klibc-2.0.3/scripts/Kbuild.install
+--- klibc-2.0.3-orig/scripts/Kbuild.install	2013-12-03 13:53:46.000000000 -0500
++++ klibc-2.0.3/scripts/Kbuild.install	2014-01-04 18:17:09.342609021 -0500
+@@ -95,7 +95,6 @@
+ 	$(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include
+ 	$(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib
+ 	$(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin
+-	$(Q)$(MAKE) -C $(KLIBCKERNELSRC) ARCH=$(KLIBCARCH) INSTALL_HDR_PATH=$(INSTALLROOT)$(INSTALLDIR)/$(KCROSS) headers_install
+ 	$(Q)cp -rf usr/include/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/.
+ 	$(Q)chmod -R a+rX $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include
+ 	$(Q)$(install-data) $(srctree)/klcc/klcc.1 $(INSTALLROOT)$(mandir)/man1/$(KCROSS)klcc.1
diff --git a/pkgs/os-specific/linux/libsepol/default.nix b/pkgs/os-specific/linux/libsepol/default.nix
index 793137aa21a..f878d284496 100644
--- a/pkgs/os-specific/linux/libsepol/default.nix
+++ b/pkgs/os-specific/linux/libsepol/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     ln -s libsepol.so.1 $out/lib/libsepol.so
   '';
 
-  passthru = { inherit se_release se_url meta; };
+  passthru = { inherit se_release se_url; };
 
   meta = with stdenv.lib; {
     homepage = http://userspace.selinuxproject.org;
diff --git a/pkgs/os-specific/linux/lttng-modules/default.nix b/pkgs/os-specific/linux/lttng-modules/default.nix
index e58d61e426b..b9cc34345df 100644
--- a/pkgs/os-specific/linux/lttng-modules/default.nix
+++ b/pkgs/os-specific/linux/lttng-modules/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchurl, kernelDev }:
+{ stdenv, fetchurl, kernel }:
 
 stdenv.mkDerivation rec {
   pname = "lttng-modules-2.3.0";
-  name = "${pname}-${kernelDev.version}";
+  name = "${pname}-${kernel.version}";
 
   src = fetchurl {
     url = "https://lttng.org/files/lttng-modules/${pname}.tar.bz2";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   patches = [ ./lttng-fix-build-error-on-linux-3.2.patch ];
 
   preConfigure = ''
-    export KERNELDIR="${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build"
+    export KERNELDIR="${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
     export INSTALL_MOD_PATH="$out"
   '';
 
diff --git a/pkgs/os-specific/linux/lxc/default.nix b/pkgs/os-specific/linux/lxc/default.nix
index 5a9b3587870..01fd04e2ad6 100644
--- a/pkgs/os-specific/linux/lxc/default.nix
+++ b/pkgs/os-specific/linux/lxc/default.nix
@@ -3,11 +3,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "lxc-1.0.0.alpha1-92-g8111adf";
+  name = "lxc-1.0.0.beta1";
 
   src = fetchurl {
     url = "http://github.com/lxc/lxc/archive/${name}.tar.gz";
-    sha256 = "05hjrn79wyjnm4ynf8y0j7pk2hwfrzp4dzwynxq4z2wxlc1ficd5";
+    sha256 = "1ee177c4d2ba5f9cb33c1b36f3c2160ca0b00c9fa527fc53a9c5868345306f03";
   };
 
   buildInputs = [ libcap apparmor perl docbook2x gnutls autoreconfHook pkgconfig ];
diff --git a/pkgs/os-specific/linux/ndiswrapper/default.nix b/pkgs/os-specific/linux/ndiswrapper/default.nix
index e2db1a4106b..f95de433564 100644
--- a/pkgs/os-specific/linux/ndiswrapper/default.nix
+++ b/pkgs/os-specific/linux/ndiswrapper/default.nix
@@ -1,14 +1,17 @@
-{ stdenv, fetchurl, kernelDev, perl }:
+{ stdenv, fetchurl, kernel, perl, kmod }:
 
 stdenv.mkDerivation {
-  name = "ndiswrapper-1.56-${kernelDev.version}";
+  name = "ndiswrapper-1.59-${kernel.version}";
+
+  patches = [ ./no-sbin.patch ];
 
   # need at least .config and include 
-  kernel = kernelDev;
+  kernel = kernel.dev;
 
   buildPhase = "
     echo make KBUILD=$(echo \$kernel/lib/modules/*/build);
     echo -n $kernel/lib/modules/*/build > kbuild_path
+    export PATH=${kmod}/sbin:$PATH
     make KBUILD=$(echo \$kernel/lib/modules/*/build);
   ";
 
@@ -23,14 +26,11 @@ stdenv.mkDerivation {
 
   # should we use unstable? 
   src = fetchurl {
-    url = mirror://sourceforge/ndiswrapper/ndiswrapper-1.56.tar.gz;
-    sha256 = "10yqg1a08v6z1qm1qr1v4rbhl35c90gzrazapr09vp372hky8f57";
+    url = mirror://sourceforge/ndiswrapper/ndiswrapper-1.59.tar.gz;
+    sha256 = "1g6lynccyg4m7gd7vhy44pypsn8ifmibq6rqgvc672pwngzx79b6";
   };
 
-  buildInputs = [ kernelDev perl ];
-
-  # this is a patch against svn head, not stable version
-  patches = [./prefix.patch];
+  buildInputs = [ perl ];
 
   meta = { 
     description = "Ndis driver wrapper for the Linux kernel";
diff --git a/pkgs/os-specific/linux/ndiswrapper/no-sbin.patch b/pkgs/os-specific/linux/ndiswrapper/no-sbin.patch
new file mode 100644
index 00000000000..cfc048d772b
--- /dev/null
+++ b/pkgs/os-specific/linux/ndiswrapper/no-sbin.patch
@@ -0,0 +1,12 @@
+diff -Naur ndiswrapper-1.59-orig/driver/Makefile ndiswrapper-1.59/driver/Makefile
+--- ndiswrapper-1.59-orig/driver/Makefile	2013-11-28 14:42:35.000000000 -0500
++++ ndiswrapper-1.59/driver/Makefile	2014-01-04 18:31:43.242377375 -0500
+@@ -191,7 +191,7 @@
+ 	rm -rf .tmp_versions
+ 
+ install: config_check $(MODULE)
+-	@/sbin/modinfo $(MODULE) | grep -q "^vermagic: *$(KVERS) " || \
++	@modinfo $(MODULE) | grep -q "^vermagic: *$(KVERS) " || \
+ 		{ echo "$(MODULE)" is not for Linux $(KVERS); exit 1; }
+ 	mkdir -p -m 755 $(DESTDIR)$(INST_DIR)
+ 	install -m 0644 $(MODULE) $(DESTDIR)$(INST_DIR)
diff --git a/pkgs/os-specific/linux/ndiswrapper/prefix.patch b/pkgs/os-specific/linux/ndiswrapper/prefix.patch
deleted file mode 100644
index ec77f4cae79..00000000000
--- a/pkgs/os-specific/linux/ndiswrapper/prefix.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-diff -r -u ndiswrapper-1.53/driver/loader.c ndiswrapper-1.53/driver/loader.c
---- ndiswrapper-1.53/driver/loader.c	2008-05-28 06:54:08.000000000 +0400
-+++ ndiswrapper-1.53/driver/loader.c	2008-06-15 17:05:07.000000000 +0400
-@@ -100,7 +100,7 @@
- 			EXIT1(return NULL);
- 		}
- 		INIT_COMPLETION(loader_complete);
--		ret = call_usermodehelper("/sbin/loadndisdriver", argv, env, 1);
-+		ret = call_usermodehelper(USERMOD_HELPER, argv, env, 1);
- 		if (ret) {
- 			up(&loader_mutex);
- 			ERROR("couldn't load driver %s; check system log "
-@@ -262,7 +262,7 @@
- 			EXIT1(return NULL);
- 		}
- 		INIT_COMPLETION(loader_complete);
--		ret = call_usermodehelper("/sbin/loadndisdriver", argv, env, 1);
-+		ret = call_usermodehelper(USERMOD_HELPER, argv, env, 1);
- 		if (ret) {
- 			up(&loader_mutex);
- 			ERROR("couldn't load file %s/%s; check system log "
-@@ -698,7 +698,7 @@
- 			EXIT1(return NULL);
- 		}
- 		INIT_COMPLETION(loader_complete);
--		ret = call_usermodehelper("/sbin/loadndisdriver", argv, env, 1);
-+		ret = call_usermodehelper(USERMOD_HELPER, argv, env, 1);
- 		if (ret) {
- 			up(&loader_mutex);
- 			TRACE1("couldn't load device %04x:%04x; check system "
-diff -r -u ndiswrapper-1.53/driver/Makefile ndiswrapper-1.53/driver/Makefile
---- ndiswrapper-1.53/driver/Makefile	2008-05-28 06:54:08.000000000 +0400
-+++ ndiswrapper-1.53/driver/Makefile	2008-06-15 17:03:31.000000000 +0400
-@@ -95,6 +95,10 @@
- EXTRA_CFLAGS += -DWRAP_PREEMPT
- endif
- 
-+ifdef DIST_DESTDIR
-+EXTRA_CFLAGS += -DPREFIX=\"$(DIST_DESTDIR)\"
-+endif
-+
- OBJS = crt.o hal.o iw_ndis.o loader.o ndis.o ntoskernel.o ntoskernel_io.o \
- 	pe_linker.o pnp.o proc.o rtl.o wrapmem.o wrapndis.o wrapper.o
- 
-diff -r -u ndiswrapper-1.53/driver/ndiswrapper.h ndiswrapper-1.53/driver/ndiswrapper.h
---- ndiswrapper-1.53/driver/ndiswrapper.h	2008-05-28 06:54:08.000000000 +0400
-+++ ndiswrapper-1.53/driver/ndiswrapper.h	2008-06-15 17:06:37.000000000 +0400
-@@ -19,8 +19,17 @@
- #define DRIVER_VERSION "1.53"
- #define UTILS_VERSION "1.9"
- 
-+#ifndef PREFIX
-+#define PREFIX
-+#endif
-+
- #define DRIVER_NAME "ndiswrapper"
--#define DRIVER_CONFIG_DIR "/etc/ndiswrapper"
-+
-+#ifndef DRIVER_CONFIG_DIR
-+#  define DRIVER_CONFIG_DIR PREFIX "/etc/ndiswrapper"
-+#endif
-+
-+#define USERMOD_HELPER PREFIX "/sbin/loadndisdriver"
- 
- #define SSID_MAX_WPA_IE_LEN 40
- #define NDIS_ESSID_MAX_SIZE 32
diff --git a/pkgs/os-specific/linux/netatop/default.nix b/pkgs/os-specific/linux/netatop/default.nix
index 9a34c503f6d..a863ee8a4d0 100644
--- a/pkgs/os-specific/linux/netatop/default.nix
+++ b/pkgs/os-specific/linux/netatop/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchurl, kernelDev, zlib }:
+{ stdenv, fetchurl, kernel, zlib }:
 
 stdenv.mkDerivation {
-  name = "netatop-${kernelDev.version}-0.3";
+  name = "netatop-${kernel.version}-0.3";
 
   src = fetchurl {
     url = http://www.atoptool.nl/download/netatop-0.3.tar.gz;
@@ -12,9 +12,9 @@ stdenv.mkDerivation {
 
   preConfigure = ''
     patchShebangs mkversion
-    sed -i -e 's,^KERNDIR.*,KERNDIR=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build,' \
+    sed -i -e 's,^KERNDIR.*,KERNDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build,' \
         */Makefile
-    sed -i -e 's,/lib/modules.*extra,'$out'/lib/modules/${kernelDev.modDirVersion}/extra,' \
+    sed -i -e 's,/lib/modules.*extra,'$out'/lib/modules/${kernel.modDirVersion}/extra,' \
         -e s,/usr,$out, \
         -e /init.d/d \
         -e /depmod/d \
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
 
   preInstall = ''
     ensureDir $out/bin $out/sbin $out/share/man/man{4,8}
-    ensureDir $out/lib/modules/${kernelDev.modDirVersion}/extra
+    ensureDir $out/lib/modules/${kernel.modDirVersion}/extra
   '';
       
   meta = {
diff --git a/pkgs/os-specific/linux/nvidia-x11/builder-legacy.sh b/pkgs/os-specific/linux/nvidia-x11/builder-legacy.sh
index 6062566cbfb..7d39dd31189 100755
--- a/pkgs/os-specific/linux/nvidia-x11/builder-legacy.sh
+++ b/pkgs/os-specific/linux/nvidia-x11/builder-legacy.sh
@@ -29,11 +29,10 @@ buildPhase() {
 
         # Create the module.
         kernelVersion=$(cd $kernel/lib/modules && ls)
-        sysSrc=$(echo $kernel/lib/modules/$kernelVersion/build/)
+        sysSource=$(echo $kernel/lib/modules/$kernelVersion/source)
+        sysOut=$(echo $kernel/lib/modules/$kernelVersion/build)
         unset src # used by the nv makefile
-        # Hack necessary to compile on 2.6.28.
-        export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$sysSrc/include/asm/mach-default"
-        make SYSSRC=$sysSrc module
+        make SYSSRC=$sysSource SYSOUT=$sysOut module
         cd ../../..
     fi
 }
diff --git a/pkgs/os-specific/linux/nvidia-x11/builder-legacy304.sh b/pkgs/os-specific/linux/nvidia-x11/builder-legacy304.sh
index bb8beab29c5..7771fb988f5 100755
--- a/pkgs/os-specific/linux/nvidia-x11/builder-legacy304.sh
+++ b/pkgs/os-specific/linux/nvidia-x11/builder-legacy304.sh
@@ -14,11 +14,10 @@ buildPhase() {
         echo "Building linux driver against kernel: $kernel";
         cd kernel
         kernelVersion=$(cd $kernel/lib/modules && ls)
-        sysSrc=$(echo $kernel/lib/modules/$kernelVersion/build/)
+        sysSrc=$(echo $kernel/lib/modules/$kernelVersion/source)
+        sysOut=$(echo $kernel/lib/modules/$kernelVersion/build)
         unset src # used by the nv makefile
-        # Hack necessary to compile on 2.6.28.
-        export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$sysSrc/include/asm/mach-default -I$sysSrc/include/generated"
-        make SYSSRC=$sysSrc module
+        make SYSSRC=$sysSrc SYSOUT=$sysOut module
         cd ..
     fi
 }
diff --git a/pkgs/os-specific/linux/nvidia-x11/builder.sh b/pkgs/os-specific/linux/nvidia-x11/builder.sh
index 28e2bd5642c..51144bc1051 100755
--- a/pkgs/os-specific/linux/nvidia-x11/builder.sh
+++ b/pkgs/os-specific/linux/nvidia-x11/builder.sh
@@ -16,11 +16,10 @@ buildPhase() {
         echo "Building linux driver against kernel: $kernel";
         cd kernel
         kernelVersion=$(cd $kernel/lib/modules && ls)
-        sysSrc=$(echo $kernel/lib/modules/$kernelVersion/build/)
+        sysSrc=$(echo $kernel/lib/modules/$kernelVersion/source)
+        sysOut=$(echo $kernel/lib/modules/$kernelVersion/build)
         unset src # used by the nv makefile
-        # Hack necessary to compile on 2.6.28.
-        export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$sysSrc/include/asm/mach-default -I$sysSrc/include/generated"
-        make SYSSRC=$sysSrc module
+        make SYSSRC=$sysSrc SYSOUT=$sysOut module
         cd ..
     fi
 }
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index 02eb65123d8..c89e5550f3e 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, kernelDev ? null, xlibs, zlib, perl
+{ stdenv, fetchurl, kernel ? null, xlibs, zlib, perl
 , gtk, atk, pango, glib, gdk_pixbuf
 , # Whether to build the libraries only (i.e. not the kernel module or
   # nvidia-settings).  Used to support 32-bit binaries on 64-bit
@@ -15,7 +15,7 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "nvidia-x11-${versionNumber}${optionalString (!libsOnly) "-${kernelDev.version}"}";
+  name = "nvidia-x11-${versionNumber}${optionalString (!libsOnly) "-${kernel.version}"}";
 
   builder = ./builder.sh;
 
@@ -34,7 +34,7 @@ stdenv.mkDerivation {
 
   inherit versionNumber libsOnly;
 
-  kernel = if libsOnly then null else kernelDev;
+  kernel = if libsOnly then null else kernel.dev;
 
   dontStrip = true;
 
diff --git a/pkgs/os-specific/linux/nvidia-x11/legacy173.nix b/pkgs/os-specific/linux/nvidia-x11/legacy173.nix
index a03e3d4ca7e..d85c0c1a389 100644
--- a/pkgs/os-specific/linux/nvidia-x11/legacy173.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/legacy173.nix
@@ -1,13 +1,13 @@
-{stdenv, fetchurl, kernelDev, xlibs, zlib, gtk, atk, pango, glib, gdk_pixbuf}:
+{stdenv, fetchurl, kernel, xlibs, zlib, gtk, atk, pango, glib, gdk_pixbuf}:
 
 let 
 
-  versionNumber = "173.14.36";
+  versionNumber = "173.14.39";
 
 in
 
 stdenv.mkDerivation {
-  name = "nvidia-x11-${versionNumber}-${kernelDev.version}";
+  name = "nvidia-x11-${versionNumber}-${kernel.version}";
   
   builder = ./builder-legacy.sh;
   
@@ -15,16 +15,16 @@ stdenv.mkDerivation {
     if stdenv.system == "i686-linux" then
       fetchurl {
         url = "http://us.download.nvidia.com/XFree86/Linux-x86/${versionNumber}/NVIDIA-Linux-x86-${versionNumber}-pkg0.run";
-        sha256 = "19wnikms9wradf1kmaywnp7hykrdm4xqz2ka7az66s3ma096y95c";
+        sha256 = "08xb7s7cxmj4zv4i3645kjhlhhwxiq6km9ixmsw3vv91f7rkb6d0";
       }
     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}-pkg0.run";
-        sha256 = "1xf1w6qvqw0a3vd807hp3cgqmzm1wkpz2by52p0qgpjqld421k2s";
+        sha256 = "1p2ls0xj81l8v4n6dbjj3p5wlw1iyhgzyvqcv4h5fdxhhs2cb3md";
       }
     else throw "nvidia-x11 does not support platform ${stdenv.system}";
 
-  kernel = kernelDev;
+  kernel = kernel.dev;
 
   inherit versionNumber;
 
diff --git a/pkgs/os-specific/linux/nvidia-x11/legacy304.nix b/pkgs/os-specific/linux/nvidia-x11/legacy304.nix
index bd88e847b6e..0665ff83ea7 100644
--- a/pkgs/os-specific/linux/nvidia-x11/legacy304.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/legacy304.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, kernelDev ? null, xlibs, zlib, perl
+{ stdenv, fetchurl, kernel ? null, xlibs, zlib, perl
 , gtk, atk, pango, glib, gdk_pixbuf
 , # Whether to build the libraries only (i.e. not the kernel module or
   # nvidia-settings).  Used to support 32-bit binaries on 64-bit
@@ -11,7 +11,7 @@ with stdenv.lib;
 let versionNumber = "304.117"; in
 
 stdenv.mkDerivation {
-  name = "nvidia-x11-${versionNumber}${optionalString (!libsOnly) "-${kernelDev.version}"}";
+  name = "nvidia-x11-${versionNumber}${optionalString (!libsOnly) "-${kernel.version}"}";
 
   builder = ./builder-legacy304.sh;
 
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
 
   inherit versionNumber libsOnly;
 
-  kernel = if libsOnly then null else kernelDev;
+  kernel = if libsOnly then null else kernel.dev;
 
   dontStrip = true;
 
diff --git a/pkgs/os-specific/linux/nvidia-x11/legacy96.nix b/pkgs/os-specific/linux/nvidia-x11/legacy96.nix
deleted file mode 100644
index 32fc3632b05..00000000000
--- a/pkgs/os-specific/linux/nvidia-x11/legacy96.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{stdenv, fetchurl, kernelDev, xlibs, zlib, gtk, atk, pango, glib}:
-
-let 
-
-  versionNumber = "96.43.23";
-
-in
-
-stdenv.mkDerivation {
-  name = "nvidia-x11-${versionNumber}-${kernelDev.version}";
-  
-  builder = ./builder-legacy.sh;
-  
-  src =
-    if stdenv.system == "i686-linux" then
-      fetchurl {
-        url = "http://us.download.nvidia.com/XFree86/Linux-x86/${versionNumber}/NVIDIA-Linux-x86-${versionNumber}-pkg0.run";
-        sha256 = "0hi10h26l51mknr57zsdg0zaxcqdz1lp3hsz0hi1c1vkpbsavrji";
-      }
-    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}-pkg0.run";
-        sha256 = "09vynha40rsxpklj1m0qjfg853ckdpi9g87h06irikh405x57kzp";
-      }
-    else throw "nvidia-x11 does not support platform ${stdenv.system}";
-
-  kernel = kernelDev;
-
-  inherit versionNumber;
-
-  dontStrip = true;
-
-  glPath = stdenv.lib.makeLibraryPath [xlibs.libXext xlibs.libX11 xlibs.libXrandr];
-
-  cudaPath = stdenv.lib.makeLibraryPath [zlib stdenv.gcc.gcc];
-
-  programPath = stdenv.lib.makeLibraryPath [ gtk atk pango glib xlibs.libXv ];
-
-  meta = {
-    homepage = http://www.nvidia.com/object/unix.html;
-    description = "X.org driver and kernel module for Legacy NVIDIA graphics cards";
-    license = "unfree";
-  };
-}
diff --git a/pkgs/os-specific/linux/open-iscsi/default.nix b/pkgs/os-specific/linux/open-iscsi/default.nix
index 60e0e4d189c..e28593d0252 100644
--- a/pkgs/os-specific/linux/open-iscsi/default.nix
+++ b/pkgs/os-specific/linux/open-iscsi/default.nix
@@ -1,14 +1,15 @@
-{ stdenv, fetchurl, kernelDev}:
-
-stdenv.mkDerivation rec {
-  name = "open-iscsi-2.0-871-${kernelDev.version}";
+{ stdenv, fetchurl, kernel}:
+let
+  pname = "open-iscsi-2.0-871";
+in stdenv.mkDerivation {
+  name = "${pname}-${kernel.version}";
   
   src = fetchurl {
-    url = "http://www.open-iscsi.org/bits/${name}.tar.gz";
+    url = "http://www.open-iscsi.org/bits/${pname}.tar.gz";
     sha256 = "1jvx1agybaj4czhz41bz37as076spicsmlh5pjksvwl2mr38gsmw";
   };
   
-  KSRC = "${kernelDev}/lib/modules/*/build";
+  KSRC = "${kernel.dev}/lib/modules/*/build";
   DESTDIR = "$(out)";
   
   preConfigure = ''
@@ -21,5 +22,6 @@ stdenv.mkDerivation rec {
     description = "A high performance, transport independent, multi-platform implementation of RFC3720";
     license = "GPLv2+";
     homepage = http://www.open-iscsi.org;
+    broken = true;
   };
 }
diff --git a/pkgs/os-specific/linux/psmouse-alps/default.nix b/pkgs/os-specific/linux/psmouse-alps/default.nix
index 834acd72ef2..65f1a5cf6c6 100644
--- a/pkgs/os-specific/linux/psmouse-alps/default.nix
+++ b/pkgs/os-specific/linux/psmouse-alps/default.nix
@@ -1,15 +1,17 @@
-{ stdenv, fetchurl, kernelDev, zlib }:
+{ stdenv, fetchurl, kernel, zlib }:
 
 /* Only useful for kernels 3.2 to 3.5.
    Fails to build in 3.8.
    3.9 upstream already includes a proper alps driver for this */
 
+assert builtins.compareVersions "3.8" kernel.version == 1;
+
 let
   ver = "1.3";
   bname = "psmouse-alps-${ver}";
 in
 stdenv.mkDerivation {
-  name = "psmouse-alps-${kernelDev.version}-${ver}";
+  name = "psmouse-alps-${kernel.version}-${ver}";
 
   src = fetchurl {
     url = http://www.dahetral.com/public-download/alps-psmouse-dlkm-for-3-2-and-3-5/at_download/file;
@@ -19,12 +21,12 @@ stdenv.mkDerivation {
 
   buildPhase = ''
     cd src/${bname}/src
-    make -C ${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build \
+    make -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build \
       SUBDIRS=`pwd` INSTALL_PATH=$out
   '';
 
   installPhase = ''
-    make -C ${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build \
+    make -C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build \
       INSTALL_MOD_PATH=$out SUBDIRS=`pwd` modules_install
   '';
       
diff --git a/pkgs/os-specific/linux/spl/default.nix b/pkgs/os-specific/linux/spl/default.nix
index 6a9a4cc963f..ee264f67127 100644
--- a/pkgs/os-specific/linux/spl/default.nix
+++ b/pkgs/os-specific/linux/spl/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchurl, kernelDev, perl, autoconf, automake, libtool, coreutils, gawk }:
+{ stdenv, fetchurl, kernel, perl, autoconf, automake, libtool, coreutils, gawk }:
 
 stdenv.mkDerivation {
-  name = "spl-0.6.2-${kernelDev.version}";
+  name = "spl-0.6.2-${kernel.version}";
   src = fetchurl {
     url = http://archive.zfsonlinux.org/downloads/zfsonlinux/spl/spl-0.6.2.tar.gz;
     sha256 = "196scl8q0bkkak6m0p1l1fz254cgsizqm73bf9wk3iynamq7qmrw";
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
 
   patches = [ ./install_prefix.patch ];
 
-  buildInputs = [ perl kernelDev autoconf automake libtool ];
+  buildInputs = [ perl autoconf automake libtool ];
 
   preConfigure = ''
     ./autogen.sh
@@ -23,8 +23,8 @@ stdenv.mkDerivation {
   '';
 
   configureFlags = ''
-     --with-linux=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build
-     --with-linux-obj=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build
+     --with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source
+     --with-linux-obj=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/os-specific/linux/tp_smapi/default.nix b/pkgs/os-specific/linux/tp_smapi/default.nix
index 140021605ea..40d9e7c1068 100644
--- a/pkgs/os-specific/linux/tp_smapi/default.nix
+++ b/pkgs/os-specific/linux/tp_smapi/default.nix
@@ -1,23 +1,21 @@
-{stdenv, fetchurl, kernelDev}:
+{stdenv, fetchurl, kernel}:
 
 stdenv.mkDerivation {
-  name = "tp_smapi-0.41-${kernelDev.version}";
+  name = "tp_smapi-0.41-${kernel.version}";
 
   src = fetchurl {
     url = "https://github.com/downloads/evgeni/tp_smapi/tp_smapi-0.41.tar.gz";
     sha256 = "6aef02b92d10360ac9be0db29ae390636be55017990063a092a285c70b54e666";
   };
 
-  buildInputs = [ kernelDev ];
-
   makeFlags = [
-    "KBASE=${kernelDev}/lib/modules/${kernelDev.modDirVersion}"
+    "KBASE=${kernel.dev}/lib/modules/${kernel.modDirVersion}"
     "SHELL=/bin/sh"
   ];
 
   installPhase = ''
-    install -v -D -m 644 thinkpad_ec.ko "$out/lib/modules/${kernelDev.modDirVersion}/kernel/drivers/firmware/thinkpad_ec.ko"
-    install -v -D -m 644 tp_smapi.ko "$out/lib/modules/${kernelDev.modDirVersion}/kernel/drivers/firmware/tp_smapi.ko"
+    install -v -D -m 644 thinkpad_ec.ko "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/firmware/thinkpad_ec.ko"
+    install -v -D -m 644 tp_smapi.ko "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/firmware/tp_smapi.ko"
   '';
 
   dontStrip = true;
diff --git a/pkgs/os-specific/linux/v86d/default.nix b/pkgs/os-specific/linux/v86d/default.nix
index 4c6045e1a6c..2ad3087d6a1 100644
--- a/pkgs/os-specific/linux/v86d/default.nix
+++ b/pkgs/os-specific/linux/v86d/default.nix
@@ -1,7 +1,7 @@
-{stdenv, fetchurl, klibc, kernelDev, withKlibc ? true}:
+{stdenv, fetchurl, klibc, kernel, withKlibc ? true}:
 
 stdenv.mkDerivation rec {
-  name = "v86d-${version}-${kernelDev.version}";
+  name = "v86d-${version}-${kernel.version}";
   version = "0.1.10";
 
   src = fetchurl {
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   configureFlags = if withKlibc then [ "--with-klibc" ] else [ "--default" ];
 
   makeFlags = [
-    "KDIR=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/source"
+    "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source"
     "DESTDIR=$(out)"
   ];
 
@@ -27,7 +27,6 @@ stdenv.mkDerivation rec {
     homepage = http://dev.gentoo.org/~spock/projects/uvesafb/;
     license = "BSD";
     platforms = [ "i686-linux" "x86_64-linux" ];
-    broken = true;
   };
 }
 
diff --git a/pkgs/os-specific/linux/wis-go7007/default.nix b/pkgs/os-specific/linux/wis-go7007/default.nix
index 7f27196ba6b..53868672025 100644
--- a/pkgs/os-specific/linux/wis-go7007/default.nix
+++ b/pkgs/os-specific/linux/wis-go7007/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, kernelDev, ncurses, fxload}:
+{stdenv, fetchurl, kernel, ncurses, fxload}:
 
 let
 
@@ -12,7 +12,7 @@ let
 in   
 
 stdenv.mkDerivation {
-  name = "wis-go7007-0.9.8-${kernelDev.version}";
+  name = "wis-go7007-0.9.8-${kernel.version}";
 
   src = fetchurl {
     url = http://gentoo.osuosl.org/distfiles/wis-go7007-linux-0.9.8.tar.bz2;
@@ -47,16 +47,6 @@ stdenv.mkDerivation {
   '';
 
   preBuild = ''
-    # Urgh, we need the complete kernel sources for some header
-    # files.  So unpack the original kernel source tarball and copy
-    # the configured include directory etc. on top of it.
-    kernelVersion=$(cd ${kernelDev}/lib/modules && ls)
-    kernelBuild=$(echo ${kernelDev}/lib/modules/$kernelVersion/source)
-    tar xvfj ${kernelDev.src}
-    kernelSource=$(echo $(pwd)/linux-*)
-    cp -prd $kernelBuild/* $kernelSource
-
-    #includeDir=$out/lib/modules/$kernelVersion/source/include/linux
     includeDir=$TMPDIR/scratch
     substituteInPlace Makefile \
         --replace '$(DESTDIR)$(KSRC)/include/linux' $includeDir \
@@ -65,7 +55,7 @@ stdenv.mkDerivation {
     mkdir -p $out/etc/hotplug/usb
     mkdir -p $out/etc/udev/rules.d
  
-    makeFlagsArray=(KERNELSRC=$kernelSource \
+    makeFlagsArray=(KERNELSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source \
         FIRMWARE_DIR=$out/firmware FXLOAD=${fxload}/sbin/fxload \
         DESTDIR=$out SKIP_DEPMOD=1 \
         USE_UDEV=y)
@@ -79,5 +69,6 @@ stdenv.mkDerivation {
   meta = {
     description = "Kernel module for the Micronas GO7007, used in a number of USB TV devices";
     homepage = http://oss.wischip.com/;
+    broken = true;
   };
 }
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index 06615d170a1..67ed1312826 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchurl, kernelDev, spl, perl, autoconf, automake, libtool, zlib, libuuid, coreutils, utillinux }:
+{ stdenv, fetchurl, kernel, spl, perl, autoconf, automake, libtool, zlib, libuuid, coreutils, utillinux }:
 
 stdenv.mkDerivation {
-  name = "zfs-0.6.2-${kernelDev.version}";
+  name = "zfs-0.6.2-${kernel.version}";
 
   src = fetchurl {
     url = http://archive.zfsonlinux.org/downloads/zfsonlinux/zfs/zfs-0.6.2.tar.gz;
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   patches = [ ./mount_zfs_prefix.patch ./nix-build.patch ];
 
-  buildInputs = [ kernelDev spl perl autoconf automake libtool zlib libuuid coreutils ];
+  buildInputs = [ spl perl autoconf automake libtool zlib libuuid coreutils ];
 
   # for zdb to get the rpath to libgcc_s, needed for pthread_cancel to work
   NIX_CFLAGS_LINK = "-lgcc_s";
@@ -28,8 +28,8 @@ stdenv.mkDerivation {
   '';
 
   configureFlags = ''
-    --with-linux=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build 
-    --with-linux-obj=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build 
+    --with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source
+    --with-linux-obj=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build
     --with-spl=${spl}/libexec/spl
   '';
 
diff --git a/pkgs/servers/http/apache-httpd/2.4.nix b/pkgs/servers/http/apache-httpd/2.4.nix
index c6d0b3ad73b..2bbe9798de4 100644
--- a/pkgs/servers/http/apache-httpd/2.4.nix
+++ b/pkgs/servers/http/apache-httpd/2.4.nix
@@ -36,7 +36,6 @@ stdenv.mkDerivation rec {
     --with-pcre=${pcre}
     --disable-maintainer-mode
     --disable-debugger-mode
-    --enable-mpm=event
     --enable-mods-shared=all
     --enable-mpms-shared=all
     --enable-cern-meta
diff --git a/pkgs/servers/monitoring/zabbix/2.0.nix b/pkgs/servers/monitoring/zabbix/2.0.nix
index c9976581a51..cc05730cee5 100644
--- a/pkgs/servers/monitoring/zabbix/2.0.nix
+++ b/pkgs/servers/monitoring/zabbix/2.0.nix
@@ -6,6 +6,7 @@ assert enableJabber -> minmay != null;
 let
 
   version = "2.0.10";
+  branch = "2.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/zabbix/zabbix-${version}.tar.gz";
@@ -61,6 +62,7 @@ in
       '';
 
     meta = {
+      inherit branch;
       description = "An enterprise-class open source distributed monitoring solution";
       homepage = http://www.zabbix.com/;
       license = "GPL";
@@ -77,6 +79,7 @@ in
     configureFlags = "--enable-agent";
 
     meta = {
+      inherit branch;
       description = "An enterprise-class open source distributed monitoring solution (client-side agent)";
       homepage = http://www.zabbix.com/;
       license = "GPL";
diff --git a/pkgs/servers/monitoring/zabbix/2.2.nix b/pkgs/servers/monitoring/zabbix/2.2.nix
new file mode 100644
index 00000000000..71d4a963d7a
--- /dev/null
+++ b/pkgs/servers/monitoring/zabbix/2.2.nix
@@ -0,0 +1,91 @@
+{ stdenv, fetchurl, pkgconfig, postgresql, curl, openssl, zlib, gettext
+, enableJabber ? false, minmay ? null }:
+
+assert enableJabber -> minmay != null;
+
+let
+
+  version = "2.2.1";
+  branch = "2.2";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/zabbix/zabbix-${version}.tar.gz";
+    sha256 = "1yy7jbbnpr7qkvzqcspybdkmaz50v2hsa9kvg4lzjysjzg7f9j99";
+  };
+
+  preConfigure =
+    ''
+      substituteInPlace ./configure \
+        --replace " -static" "" \
+        ${stdenv.lib.optionalString (stdenv.gcc.libc != null) ''
+          --replace /usr/include/iconv.h ${stdenv.gcc.libc}/include/iconv.h
+        ''}
+    '';
+
+in
+
+{
+  recurseForDerivations = true;
+
+  server = stdenv.mkDerivation {
+    name = "zabbix-${version}";
+
+    inherit src preConfigure;
+
+    configureFlags = [
+      "--enable-agent"
+      "--enable-server"
+      "--with-postgresql"
+      "--with-libcurl"
+      "--with-gettext"
+    ] ++ stdenv.lib.optional enableJabber "--with-jabber=${minmay}";
+
+    postPatch = ''
+      sed -i -e 's/iksemel/minmay/g' configure src/libs/zbxmedia/jabber.c
+      sed -i \
+        -e '/^static ikstransport/,/}/d' \
+        -e 's/iks_connect_with\(.*\), &zbx_iks_transport/mmay_connect_via\1/' \
+        -e 's/iks/mmay/g' -e 's/IKS/MMAY/g' src/libs/zbxmedia/jabber.c
+    '';
+
+    buildInputs = [ pkgconfig postgresql curl openssl zlib ];
+
+    postInstall =
+      ''
+        mkdir -p $out/share/zabbix
+        cp -prvd frontends/php $out/share/zabbix/php
+        mkdir -p $out/share/zabbix/db/data
+        cp -prvd database/postgresql/data.sql $out/share/zabbix/db/data/data.sql
+        cp -prvd database/postgresql/images.sql $out/share/zabbix/db/data/images_pgsql.sql
+        mkdir -p $out/share/zabbix/db/schema
+        cp -prvd database/postgresql/schema.sql $out/share/zabbix/db/schema/postgresql.sql
+      '';
+
+    meta = {
+      inherit branch;
+      description = "An enterprise-class open source distributed monitoring solution";
+      homepage = http://www.zabbix.com/;
+      license = "GPL";
+      maintainers = [ stdenv.lib.maintainers.eelco ];
+      platforms = stdenv.lib.platforms.linux;
+    };
+  };
+
+  agent = stdenv.mkDerivation {
+    name = "zabbix-agent-${version}";
+
+    inherit src preConfigure;
+
+    configureFlags = "--enable-agent";
+
+    meta = {
+      inherit branch;
+      description = "An enterprise-class open source distributed monitoring solution (client-side agent)";
+      homepage = http://www.zabbix.com/;
+      license = "GPL";
+      maintainers = [ stdenv.lib.maintainers.eelco ];
+      platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+    };
+  };
+
+}
diff --git a/pkgs/servers/openafs-client/default.nix b/pkgs/servers/openafs-client/default.nix
index 462ecadd346..ba0b80fc61e 100644
--- a/pkgs/servers/openafs-client/default.nix
+++ b/pkgs/servers/openafs-client/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, which, autoconf, automake, flex, yacc,
-  kernelDev, glibc, ncurses, perl, krb5 }:
+  kernel, glibc, ncurses, perl, krb5 }:
 
 assert stdenv.isLinux;
 
 stdenv.mkDerivation {
-  name = "openafs-1.6.1-${kernelDev.version}";
+  name = "openafs-1.6.1-${kernel.version}";
 
   src = fetchurl {
     url = http://www.openafs.org/dl/openafs/1.6.1/openafs-1.6.1-src.tar.bz2;
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
   buildInputs = [ autoconf automake flex yacc ncurses perl which ];
 
   preConfigure = ''
-    ln -s ${kernelDev}/lib/modules/*/build $TMP/linux
+    ln -s ${kernel.dev}/lib/modules/*/build $TMP/linux
 
     patchShebangs .
     for i in `grep -l -R '/usr/\(include\|src\)' .`; do
diff --git a/pkgs/servers/samba/default.nix b/pkgs/servers/samba/default.nix
index 5ef4ac5140e..cacc614e08c 100644
--- a/pkgs/servers/samba/default.nix
+++ b/pkgs/servers/samba/default.nix
@@ -18,11 +18,11 @@
 assert useKerberos -> kerberos != null;
 
 stdenv.mkDerivation rec {
-  name = "samba-3.6.20";
+  name = "samba-3.6.22";
 
   src = fetchurl {
     url = "http://us3.samba.org/samba/ftp/stable/${name}.tar.gz";
-    sha256 = "03rs02743slfbfws9rl053z5m520rbd31z9qr76r1j06bjkdmdaz";
+    sha256 = "1sny3irf1p4fjli5qa29swr3l217grg90cva35rmay48fw7g5g9h";
   };
 
   buildInputs = [ readline pam openldap popt iniparser libunwind fam acl cups ]
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 1be17e623f7..b19f26cc12d 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -680,11 +680,11 @@ let
   })) // {inherit fixesproto libX11 xextproto xproto ;};
 
   libXfont = (stdenv.mkDerivation ((if overrides ? libXfont then overrides.libXfont else x: x) {
-    name = "libXfont-1.4.6";
+    name = "libXfont-1.4.7";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libXfont-1.4.6.tar.bz2;
-      sha256 = "17vy2p8myxx8644yd05qsl2qvv9m3mhdbniw87mcw5ywai2zxjyh";
+      url = mirror://xorg/individual/lib/libXfont-1.4.7.tar.bz2;
+      sha256 = "0hqm3nainxpc0922i4zbwzc768f69zkdf1gvkjqrdlim31aa6vni";
     };
     buildInputs = [pkgconfig libfontenc fontsproto freetype xproto xtrans zlib ];
   })) // {inherit libfontenc fontsproto freetype xproto xtrans zlib ;};
@@ -1510,11 +1510,11 @@ let
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
 
   xf86videointel = (stdenv.mkDerivation ((if overrides ? xf86videointel then overrides.xf86videointel else x: x) {
-    name = "xf86-video-intel-2.21.9";
+    name = "xf86-video-intel-2.21.15";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-intel-2.21.9.tar.bz2;
-      sha256 = "12gigzpgbrz6g2gf4q5nj2sqmjw8fczbh79dlpx898llwk4wnn8k";
+      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 ;};
diff --git a/pkgs/servers/x11/xorg/tarballs-7.7.list b/pkgs/servers/x11/xorg/tarballs-7.7.list
index 4cf9c0362e0..3814400c667 100644
--- a/pkgs/servers/x11/xorg/tarballs-7.7.list
+++ b/pkgs/servers/x11/xorg/tarballs-7.7.list
@@ -65,7 +65,7 @@ mirror://xorg/X11R7.7/src/everything/libXdamage-1.1.3.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
-mirror://xorg/individual/lib/libXfont-1.4.6.tar.bz2
+mirror://xorg/individual/lib/libXfont-1.4.7.tar.bz2
 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
diff --git a/pkgs/stdenv/linux/make-bootstrap-tools-crosspi.nix b/pkgs/stdenv/linux/make-bootstrap-tools-crosspi.nix
index c4ec02aeb3e..9ea63a46be3 100644
--- a/pkgs/stdenv/linux/make-bootstrap-tools-crosspi.nix
+++ b/pkgs/stdenv/linux/make-bootstrap-tools-crosspi.nix
@@ -83,7 +83,7 @@ let
   isl = pkgs.isl.crossDrv;
   mpc = pkgs.mpc.crossDrv;
   binutils = pkgs.binutils.crossDrv;
-  klibc = pkgs.klibc.crossDrv;
+  klibc = pkgs.linuxPackages.klibc.crossDrv;
 
 in
 
diff --git a/pkgs/tools/misc/direnv/default.nix b/pkgs/tools/misc/direnv/default.nix
index 2850c35b720..8876cfa983a 100644
--- a/pkgs/tools/misc/direnv/default.nix
+++ b/pkgs/tools/misc/direnv/default.nix
@@ -1,14 +1,14 @@
 { fetchurl, stdenv, go }:
 
 let
-  version = "2.1.0";
+  version = "2.2.0";
 in
 stdenv.mkDerivation {
   name = "direnv-${version}";
   src = fetchurl {
     url = "http://github.com/zimbatm/direnv/archive/v${version}.tar.gz";
     name = "direnv-${version}.tar.gz";
-    sha256 = "4dad14e53aa5a20fd11cdbb907c19a05f16464172af302981adb410bd691cefe";
+    sha256 = "e718ec2eec4e3a6ff78938445fc9702d7835ccfc8fa90f4293e387ac1305bf98";
   };
 
   buildInputs = [ go ];
diff --git a/pkgs/tools/misc/grc/default.nix b/pkgs/tools/misc/grc/default.nix
index cd3ea6eda6f..03592440818 100644
--- a/pkgs/tools/misc/grc/default.nix
+++ b/pkgs/tools/misc/grc/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   version = "1.4";
-  name    = "grc_${version}";
+  name    = "grc-${version}";
 
   src = fetchurl {
-    url    = "http://korpus.juls.savba.sk/~garabik/software/grc/${name}.tar.gz";
+    url    = "http://korpus.juls.savba.sk/~garabik/software/grc/grc_${version}.tar.gz";
     sha256 = "1l7lskxfjk32kkv4aaqw5qcxvh972nab3x2jzy67m1aa0zpcbzdv";
   };
 
diff --git a/pkgs/tools/misc/mc/default.nix b/pkgs/tools/misc/mc/default.nix
index cc8fbacca6f..88194ec0fdf 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.0";
+  name = "mc-4.8.11";
   
   src = fetchurl {
-    url = http://www.midnight-commander.org/downloads/mc-4.8.0.tar.bz2;
-    sha256 = "dbf077b318c13fc6d465dc67bd43958f067b9ff7e21041975bd14927dfa31b52";
+    url = http://www.midnight-commander.org/downloads/mc-4.8.11.tar.bz2;
+    sha256 = "1yjm6rp9h3491mar7vdw88mgvydmz7zdj97mmjkqyf5bidx4w2hf";
   };
   
   buildInputs = [ pkgconfig perl glib gpm slang zip unzip file gettext libX11 libICE e2fsprogs ];
diff --git a/pkgs/tools/misc/yad/default.nix b/pkgs/tools/misc/yad/default.nix
new file mode 100644
index 00000000000..fcdf5095d70
--- /dev/null
+++ b/pkgs/tools/misc/yad/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gtk2 }:
+
+stdenv.mkDerivation rec {
+
+  name = "yad-0.25.1";
+
+  src = fetchurl {
+    url = "http://yad.googlecode.com/files/${name}.tar.xz";
+    sha256 = "1pljs9799xa2w3y2vjg93gqkv76z0pjh947djd7179yq3kryb57a";
+  };
+
+  configureFlags = [
+    "--enable-icon-browser"
+  ];
+
+  buildInputs = [ gtk2 ];
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
+
+  meta = {
+    homepage = "http://code.google.com/p/yad/";
+    description = "Yad (yet another dialog) is a GUI dialog tool for shell scripts";
+    longDescription = ''
+      Yad (yet another dialog) is a GUI dialog tool for shell scripts. It is a
+      fork of Zenity with many improvements, such as custom buttons, additional
+      dialogs, pop-up menu in notification icon and more.
+    '';
+
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with stdenv.lib.maintainers; [ smironov ];
+  };
+}
+
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index eb6baf41fe4..f39aa90b894 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 = "2013.12.20";
+  version = "2014.01.07.5";
 in
 stdenv.mkDerivation rec {
   name = "youtube-dl-${version}";
 
   src = fetchurl {
     url = "http://youtube-dl.org/downloads/${version}/${name}.tar.gz";
-    sha256 = "0cqr0rpa247gfk5fg65sj94x4d9a1s85343gnqmc763h5h8v50zb";
+    sha256 = "04b05wn0irx1h91zys8cwk56nwwd3nx7il6ydrcikyndv2vniz0m";
   };
 
   buildInputs = [ python ];
diff --git a/pkgs/tools/networking/connman/default.nix b/pkgs/tools/networking/connman/default.nix
new file mode 100644
index 00000000000..9a4bab65557
--- /dev/null
+++ b/pkgs/tools/networking/connman/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchgit, autoconf, automake, libtool, pkgconfig, openconnect, file,
+  openvpn, vpnc, glib, dbus, iptables, gnutls, policykit, polkit,
+  wpa_supplicant, readline6, pptp, ppp, tree }:
+
+stdenv.mkDerivation {
+  name = "connman-1.20";
+  src = fetchgit {
+    url = "git://git.kernel.org/pub/scm/network/connman/connman.git";
+    rev = "8047f3d051b32d38ac0b1e78296b482368728ec6";
+    sha256 = "0hb03rzrspgry8z43x8x76vlq1hdq2wggkk7wbidavnqhpmz7dxz";
+  };
+
+  buildInputs = [ autoconf automake libtool pkgconfig openconnect polkit
+                  file openvpn vpnc glib dbus iptables gnutls policykit
+                  wpa_supplicant readline6 pptp ppp tree ];
+
+  preConfigure = ''
+    export WPASUPPLICANT=${wpa_supplicant}/sbin/wpa_supplicant
+    ./bootstrap
+    sed -i "s/\/usr\/bin\/file/file/g" ./configure
+    substituteInPlace configure --replace /usr/sbin/pptp ${pptp}/sbin/pptp
+    substituteInPlace configure --replace /usr/sbin/pppd ${ppp}/sbin/pppd
+  '';
+
+  configureFlags = [
+    "--sysconfdir=\${out}/etc"
+    "--localstatedir=/var"
+    "--with-dbusconfdir=\${out}/etc"
+    "--with-dbusdatadir=\${out}/usr/share"
+    "--disable-maintainer-mode"
+    "--enable-openconnect=builtin"
+    "--with-openconnect=${openconnect}/sbin/openconnect"
+    "--enable-openvpn=builtin"
+    "--with-openvpn=${openvpn}/sbin/openvpn"
+    "--enable-vpnc=builtin"
+    "--with-vpnc=${vpnc}/sbin/vpnc"
+    "--enable-session-policy-local=builtin"
+    "--enable-client"
+    "--enable-bluetooth"
+    "--enable-wifi"
+    "--enable-polkit"
+    "--enable-tools"
+    "--enable-datafiles"
+    "--enable-pptp"
+  ];
+
+  postInstall = ''
+    cp ./client/connmanctl $out/sbin/connmanctl
+  '';
+
+  meta = {
+    description = "The ConnMan project provides a daemon for managing internet connections";
+    homepage = "https://connman.net/";
+    maintainers = [ stdenv.lib.maintainers.matejc ];
+    # tested only on linux, might work on others also
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/pkgs/tools/networking/connmanui/default.nix b/pkgs/tools/networking/connmanui/default.nix
new file mode 100644
index 00000000000..62be5bf14e5
--- /dev/null
+++ b/pkgs/tools/networking/connmanui/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchgit, autoconf, automake, libtool, glib, gtk3, dbus, pkgconfig, file, intltool, connman }:
+
+stdenv.mkDerivation {
+  name = "connmanui-b838e640eddb83d296fb6d146ce756066d37c43b";
+  src = fetchgit {
+    url = "git://github.com/tbursztyka/connman-ui.git";
+    rev = "e4a8ddcca0870eb2ece5a7e3ea0296de9c86e5b2";
+    sha256 = "0rml52v81s7hr0g6qbj5bamli08kn66hay84qicx8sy8679wg443";
+  };
+
+  buildInputs = [ autoconf automake libtool glib gtk3 dbus pkgconfig file intltool connman ];
+
+  preConfigure = ''
+    set -e
+    ./autogen.sh
+    sed -i "s/\/usr\/bin\/file/file/g" ./configure
+  '';
+
+  configureScript = "./configure";
+
+  meta = {
+    description = "A full-featured GTK based trayicon UI for ConnMan";
+    homepage = "https://github.com/tbursztyka/connman-ui";
+    maintainers = [ stdenv.lib.maintainers.matejc ];
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
index 38adea8af8f..8796dbd076e 100644
--- a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
+++ b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, lib, unzip, buildPythonPackage, twisted, foolscap, nevow
-, simplejson, zfec, pycryptopp, pysqlite, darcsver, setuptoolsTrial
+, simplejson, zfec, pycryptopp, sqlite3, darcsver, setuptoolsTrial
 , setuptoolsDarcs, numpy, nettools, pycrypto, pyasn1, mock }:
 
 # FAILURES: The "running build_ext" phase fails to compile Twisted
@@ -8,34 +8,18 @@
 # some loss of functionality because of it.
 
 let
-  name = "tahoe-lafs-1.9.2";
+  name = "tahoe-lafs-1.10.0";
 in
 buildPythonPackage {
   inherit name;
   namePrefix = "";
 
   src = fetchurl {
-    url = "http://tahoe-lafs.org/source/tahoe-lafs/snapshots/allmydata-tahoe-1.9.2.tar.bz2";
-    sha256 = "0111gmavyrnglx10kj8z7wm7y97fyg9isv71c0gx9kq4c03knxq4";
+    url = "http://tahoe-lafs.org/source/tahoe-lafs/releases/allmydata-tahoe-1.10.0.tar.bz2";
+    sha256 = "1qng7j1vykk8zl5da9yklkljvgxfnjky58gcay6dypz91xq1cmcw";
   };
 
-  # The patch doesn't apply cleanly to the current version.
-  patches = [ /* ./test-timeout.patch */ ];
-
   configurePhase = ''
-    echo "forcing the use of \`setuptools' 0.6c9 rather than an unreleased version"
-    for i in *setup.py
-    do
-      sed -i "$i" -es'/0.6c12dev/0.6c9/g'
-    done
-
-    # `find_exe()' returns a list like ['.../bin/python'
-    # '.../bin/twistd'], which doesn't work when `twistd' is not a
-    # Python script (e.g., when it's a script produced by
-    # `wrapProgram').
-    sed -i "src/allmydata/scripts/startstop_node.py" \
-        -es"|cmd = find_exe.find_exe('twistd')|cmd = ['${twisted}/bin/twistd']|g"
-
     sed -i "src/allmydata/util/iputil.py" \
         -es"|_linux_path = '/sbin/ifconfig'|_linux_path = '${nettools}/bin/ifconfig'|g"
 
@@ -50,9 +34,9 @@ buildPythonPackage {
   buildInputs = [ unzip ]
     ++ [ numpy ]; # Some tests want this + http://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-dep-sdists/mock-0.6.0.tar.bz2
 
-  # The `backup' command requires `pysqlite'.
+  # The `backup' command requires `sqlite3'.
   propagatedBuildInputs =
-    [ twisted foolscap nevow simplejson zfec pycryptopp pysqlite
+    [ twisted foolscap nevow simplejson zfec pycryptopp sqlite3
       darcsver setuptoolsTrial setuptoolsDarcs pycrypto pyasn1 mock
     ];
 
@@ -61,11 +45,6 @@ buildPythonPackage {
 
   postInstall = ''
     # Install the documentation.
-
-    # FIXME: Inkscape segfaults when run from here.  Setting $HOME to
-    # something writable doesn't help; providing $FONTCONFIG_FILE doesn't
-    # help either.  So we just don't run `make' under `docs/'.
-
     mkdir -p "$out/share/doc/${name}"
     cp -rv "docs/"* "$out/share/doc/${name}"
     find "$out/share/doc/${name}" -name Makefile -exec rm -v {} \;
@@ -88,7 +67,7 @@ buildPythonPackage {
 
     homepage = http://allmydata.org/;
 
-    license = [ "GPLv2+" /* or */ "TGPPLv1+" ];
+    license = [ lib.licenses.gpl2Plus /* or */ "TGPPLv1+" ];
 
     maintainers = [ lib.maintainers.simons  ];
     platforms = lib.platforms.gnu;  # arbitrary choice
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 9b0b8b3f24e..b02d80078aa 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "31d15f99b2405924a4be278334cc973a71999303631e6798c1d294db9be4bf84";
   };
 
+  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
new file mode 100644
index 00000000000..421ebb70a4f
--- /dev/null
+++ b/pkgs/tools/package-management/nix/hash-check.patch
@@ -0,0 +1,14 @@
+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 7bdc8d1aefb..aad734cd619 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.7pre3267_2d9bb56";
+  name = "nix-1.7pre3319_f4013b6";
 
   src = fetchurl {
-    url = "http://hydra.nixos.org/build/6611474/download/5/${name}.tar.xz";
-    sha256 = "f62b48910651c4651cd4473a0bb433d65cf60c93c0f80d589b26fec52b3b82b3";
+    url = "http://hydra.nixos.org/build/7848540/download/5/${name}.tar.xz";
+    sha256 = "0f9095aabe3399436a75162c046fdc1e4d0c1e9a98f7d8ffcd3d910b19c8c265";
   };
 
   nativeBuildInputs = [ perl pkgconfig ];
diff --git a/pkgs/tools/security/aespipe/default.nix b/pkgs/tools/security/aespipe/default.nix
index 9e4b8d12712..96de0e0fbe4 100644
--- a/pkgs/tools/security/aespipe/default.nix
+++ b/pkgs/tools/security/aespipe/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   name = "aespipe-${version}";
-  version = "v2.4c";
+  version = "2.4c";
 
   src = fetchurl {
-    url = "mirror://sourceforge/loop-aes/aespipe/${name}.tar.bz2";
+    url = "mirror://sourceforge/loop-aes/aespipe/aespipe-v${version}.tar.bz2";
     sha256 = "0pl49jnjczjvfxwm9lw576qsjm1lxh8gc4g776l904cixaz90096";
   };
 
diff --git a/pkgs/tools/typesetting/tex/texlive/beamer.nix b/pkgs/tools/typesetting/tex/texlive/beamer.nix
index bf9079ab104..4cb03e7d2c5 100644
--- a/pkgs/tools/typesetting/tex/texlive/beamer.nix
+++ b/pkgs/tools/typesetting/tex/texlive/beamer.nix
@@ -1,9 +1,9 @@
 args: with args;
 rec {
-  name = "texlive-beamer-2012";
+  name = "texlive-beamer-2013";
   src = fetchurl {
-    url = mirror://debian/pool/main/l/latex-beamer/latex-beamer_3.10.orig.tar.gz;
-    sha256 = "1vk7nr1lxinyj941nz5xzcpzircd60s8sgmq7jd2gqmf5ynd27nx";
+    url = mirror://debian/pool/main/l/latex-beamer/latex-beamer_3.24.orig.tar.gz;
+    sha256 = "0rzjlbs67kzmvlh7lwga4yxgddvrvfkkhhx1ajdn4lqy2w9zxiv8";
   };
 
   buildInputs = [texLive];
diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix
index 47421185d8a..b5e3c981e1c 100644
--- a/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -6,13 +6,13 @@ rec {
   };
 
   texmfSrc = fetchurl {
-    url = mirror://debian/pool/main/t/texlive-base/texlive-base_2013.20131112.orig.tar.xz;
-    sha256 = "1zak95xh35bnzr3hjrjaxg0yisyw8g3xcym0ywsspc4dxpn1qgk1";
+    url = mirror://debian/pool/main/t/texlive-base/texlive-base_2013.20131219.orig.tar.xz;
+    sha256 = "1kcfw6n9rv3wznyqkvkad60p1zljbn1cw2jhajzcrn8m39y0ad3x";
   };
 
   langTexmfSrc = fetchurl {
-    url = mirror://debian/pool/main/t/texlive-lang/texlive-lang_2013.20131112.orig.tar.xz;
-    sha256 = "003rj7pv38lgmggya2nbzcyfdx5d4wa7h1h4xh7iivsxja7z4m1d";
+    url = mirror://debian/pool/main/t/texlive-lang/texlive-lang_2013.20131219.orig.tar.xz;
+    sha256 = "139hb91ks62q56dnnrzhcxmm2wpz0b40ka7smaqgw86r002albb0";
   };
 
   passthru = { inherit texmfSrc langTexmfSrc; };
diff --git a/pkgs/tools/typesetting/tex/texlive/extra.nix b/pkgs/tools/typesetting/tex/texlive/extra.nix
index ab8046fcc96..c6624e469e5 100644
--- a/pkgs/tools/typesetting/tex/texlive/extra.nix
+++ b/pkgs/tools/typesetting/tex/texlive/extra.nix
@@ -2,8 +2,8 @@ args: with args;
 rec {
   name = "texlive-extra-2013";
   src = fetchurl {
-    url = mirror://debian/pool/main/t/texlive-extra/texlive-extra_2013.20131112.orig.tar.xz;
-    sha256 = "0qpiig9sz8wx3dhy1jha7rkxrhvpf2cmfx424h68s3ql05nnw65i";
+    url = mirror://debian/pool/main/t/texlive-extra/texlive-extra_2013.20131219.orig.tar.xz;
+    sha256 = "09iijzq0y5kq16f3lv2jrln190ldbbzywpwr33hrmnw5yp3izmrh";
   };
 
   buildInputs = [texLive xz];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3dd58e2eb12..4e322f6aef9 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -84,7 +84,9 @@ let
       if system == "armv6l-linux" then platforms.raspberrypi
       else if system == "armv5tel-linux" then platforms.sheevaplug
       else if system == "mips64el-linux" then platforms.fuloong2f_n32
-      else platforms.pc;
+      else if system == "x86_64-linux" then platforms.pc64
+      else if system == "i686-linux" then platforms.pc32
+      else platforms.pcBase;
 
   platform = if platform_ != null then platform_
     else config.platform or platformAuto;
@@ -280,6 +282,11 @@ let
     vs = vs90wrapper;
   };
 
+  fetchbower = import ../build-support/fetchbower {
+    inherit stdenv git;
+    inherit (nodePackages) fetch-bower;
+  };
+
   fetchbzr = import ../build-support/fetchbzr {
     inherit stdenv bazaar;
   };
@@ -676,6 +683,10 @@ let
 
   conspy = callPackage ../os-specific/linux/conspy {};
 
+  connman = callPackage ../tools/networking/connman { };
+
+  connmanui = callPackage ../tools/networking/connmanui { };
+
   convertlit = callPackage ../tools/text/convertlit { };
 
   collectd = callPackage ../tools/system/collectd { };
@@ -793,6 +804,8 @@ let
 
   disper = callPackage ../tools/misc/disper { };
 
+  dmd = callPackage ../development/compilers/dmd { };
+
   dmg2img = callPackage ../tools/misc/dmg2img { };
 
   docbook2odf = callPackage ../tools/typesetting/docbook2odf {
@@ -867,6 +880,8 @@ let
 
   evtest = callPackage ../applications/misc/evtest { };
 
+  exempi = callPackage ../development/libraries/exempi { };
+
   exif = callPackage ../tools/graphics/exif { };
 
   exiftags = callPackage ../tools/graphics/exiftags { };
@@ -909,6 +924,8 @@ let
 
   lprof = callPackage ../tools/graphics/lprof { };
 
+  fdk_aac = callPackage ../development/libraries/fdk-aac { };
+
   flvtool2 = callPackage ../tools/video/flvtool2 { };
 
   fontforge = lowPrio (callPackage ../tools/misc/fontforge { });
@@ -1229,11 +1246,11 @@ let
 
   nodejs = callPackage ../development/web/nodejs {};
 
-  nodePackages = recurseIntoAttrs (import ./node-packages.nix {
+  nodePackages = import ./node-packages.nix {
     inherit pkgs stdenv nodejs fetchurl fetchgit;
     neededNatives = [python] ++ lib.optional (lib.elem system lib.platforms.linux) utillinux;
     self = pkgs.nodePackages;
-  });
+  };
 
   ldapvi = callPackage ../tools/misc/ldapvi { };
 
@@ -1656,6 +1673,8 @@ let
 
   prey-bash-client = callPackage ../tools/security/prey { };
 
+  projectm = callPackage ../applications/audio/projectm { };
+
   proxychains = callPackage ../tools/networking/proxychains { };
 
   proxytunnel = callPackage ../tools/misc/proxytunnel { };
@@ -1730,6 +1749,8 @@ let
 
   rdiff_backup = callPackage ../tools/backup/rdiff-backup { };
 
+  rdmd = callPackage ../development/compilers/rdmd { };
+
   ripmime = callPackage ../tools/networking/ripmime {};
 
   rmlint = callPackage ../tools/misc/rmlint {};
@@ -1854,6 +1875,8 @@ let
     boost = boost149;
   };
 
+  spaceFM = callPackage ../applications/misc/spacefm { };
+
   squashfsTools = callPackage ../tools/filesystems/squashfs { };
 
   sshfsFuse = callPackage ../tools/filesystems/sshfs-fuse { };
@@ -2967,13 +2990,7 @@ let
 
   urweb = callPackage ../development/compilers/urweb { };
 
-  vala = vala19;
-
-  vala15 = callPackage ../development/compilers/vala/15.2.nix { };
-
-  vala16 = callPackage ../development/compilers/vala/16.1.nix { };
-
-  vala19 = callPackage ../development/compilers/vala/default.nix { };
+  vala = callPackage ../development/compilers/vala/default.nix { };
 
   visualcpp = callPackage ../development/compilers/visual-c++ { };
 
@@ -3106,7 +3123,19 @@ let
 
   octave = callPackage ../development/interpreters/octave {
     fltk = fltk13;
-  };
+    qt = null;
+    ghostscript = null;
+    llvm = null;
+    hdf5 = null;
+    glpk = null;
+    suitesparse = null;
+    openjdk = null;
+    gnuplot = null;
+  };
+  octaveFull = (lowPrio (callPackage ../development/interpreters/octave { 
+    fltk = fltk13;
+    qt = qt4;
+  }));
 
   # mercurial (hg) bleeding edge version
   octaveHG = callPackage ../development/interpreters/octave/hg.nix { };
@@ -3228,6 +3257,11 @@ let
   spidermonkey_1_8_0rc1 = callPackage ../development/interpreters/spidermonkey/1.8.0-rc1.nix { };
   spidermonkey_185 = callPackage ../development/interpreters/spidermonkey/185-1.0.0.nix { };
 
+  supercollider = callPackage ../development/interpreters/supercollider {
+    qt = qt4;
+    fftw = fftwSinglePrec;
+  };
+
   sysPerl = callPackage ../development/interpreters/perl/sys-perl { };
 
   tcl = callPackage ../development/interpreters/tcl { };
@@ -3442,6 +3476,11 @@ let
 
   dejagnu = callPackage ../development/tools/misc/dejagnu { };
 
+  dfeet = callPackage ../development/tools/misc/d-feet {
+    inherit (pythonPackages) pep8;
+    inherit (gnome3) gnome_icon_theme;
+  };
+
   ddd = callPackage ../development/tools/misc/ddd { };
 
   distcc = callPackage ../development/tools/misc/distcc { };
@@ -3731,6 +3770,8 @@ let
 
   aalib = callPackage ../development/libraries/aalib { };
 
+  accountservice = callPackage ../development/libraries/accountservice { };
+
   acl = callPackage ../development/libraries/acl { };
 
   activemq = callPackage ../development/libraries/apache-activemq { };
@@ -3993,7 +4034,6 @@ let
   };
 
   ffmpeg_2 = callPackage ../development/libraries/ffmpeg/2.x.nix {
-    vpxSupport = !stdenv.isMips;
     texinfo = texinfo5;
   };
 
@@ -4195,6 +4235,8 @@ let
 
   gperftools = callPackage ../development/libraries/gperftools { };
 
+  gst_all_1 = recurseIntoAttrs(callPackage ../development/libraries/gstreamer { });
+
   gst_all = {
     inherit (pkgs) gstreamer gnonlin gst_python qt_gstreamer;
     gstPluginsBase = pkgs.gst_plugins_base;
@@ -4204,31 +4246,31 @@ let
     gstFfmpeg = pkgs.gst_ffmpeg;
   };
 
-  gstreamer = callPackage ../development/libraries/gstreamer/gstreamer {
+  gstreamer = callPackage ../development/libraries/gstreamer/legacy/gstreamer {
     bison = bison2;
   };
 
-  gst_plugins_base = callPackage ../development/libraries/gstreamer/gst-plugins-base {};
+  gst_plugins_base = callPackage ../development/libraries/gstreamer/legacy/gst-plugins-base {};
 
-  gst_plugins_good = callPackage ../development/libraries/gstreamer/gst-plugins-good {};
+  gst_plugins_good = callPackage ../development/libraries/gstreamer/legacy/gst-plugins-good {};
 
-  gst_plugins_bad = callPackage ../development/libraries/gstreamer/gst-plugins-bad {};
+  gst_plugins_bad = callPackage ../development/libraries/gstreamer/legacy/gst-plugins-bad {};
 
-  gst_plugins_ugly = callPackage ../development/libraries/gstreamer/gst-plugins-ugly {};
+  gst_plugins_ugly = callPackage ../development/libraries/gstreamer/legacy/gst-plugins-ugly {};
 
-  gst_ffmpeg = callPackage ../development/libraries/gstreamer/gst-ffmpeg {
+  gst_ffmpeg = callPackage ../development/libraries/gstreamer/legacy/gst-ffmpeg {
     ffmpeg = ffmpeg_0_10;
   };
 
-  gst_python = callPackage ../development/libraries/gstreamer/gst-python {};
+  gst_python = callPackage ../development/libraries/gstreamer/legacy/gst-python {};
 
-  gnonlin = callPackage ../development/libraries/gstreamer/gnonlin {};
+  gnonlin = callPackage ../development/libraries/gstreamer/legacy/gnonlin {};
 
   gusb = callPackage ../development/libraries/gusb {
     inherit (gnome) gtkdoc;
   };
 
-  qt_gstreamer = callPackage ../development/libraries/gstreamer/qt-gstreamer {};
+  qt_gstreamer = callPackage ../development/libraries/gstreamer/legacy/qt-gstreamer {};
 
   gnet = callPackage ../development/libraries/gnet { };
 
@@ -4340,6 +4382,8 @@ let
 
   gtkspell = callPackage ../development/libraries/gtkspell { };
 
+  gtkspell3 = callPackage ../development/libraries/gtkspell/3.nix { };
+
   gts = callPackage ../development/libraries/gts { };
 
   gvfs = callPackage ../development/libraries/gvfs { };
@@ -5522,6 +5566,8 @@ let
     inherit (pythonPackages) pyparsing;
   };
 
+  spice_gtk = callPackage ../development/libraries/spice-gtk { };
+
   spice_protocol = callPackage ../development/libraries/spice-protocol { };
 
   sratom = callPackage ../development/libraries/audio/sratom { };
@@ -5975,9 +6021,9 @@ let
 
   rhpl = callPackage ../development/python-modules/rhpl { };
 
-  sip = callPackage ../development/python-modules/python-sip { };
+  sip = callPackage ../development/python-modules/sip { };
 
-  pyqt4 = callPackage ../development/python-modules/pyqt {
+  pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix {
     stdenv = if stdenv.isDarwin
       then clangStdenv
       else stdenv;
@@ -6305,6 +6351,7 @@ let
   });
 
   zabbix20 = callPackage ../servers/monitoring/zabbix/2.0.nix { };
+  zabbix22 = callPackage ../servers/monitoring/zabbix/2.2.nix { };
 
 
   ### OS-SPECIFIC
@@ -6524,10 +6571,9 @@ let
   kernelPatches = callPackage ../os-specific/linux/kernel/patches.nix { };
 
   linux_3_2 = makeOverridable (import ../os-specific/linux/kernel/linux-3.2.nix) {
-    inherit fetchurl stdenv perl mktemp bc kmod ubootChooser;
+    inherit fetchurl stdenv perl linuxManualConfig;
     kernelPatches =
       [ kernelPatches.sec_perm_2_6_24
-        # kernelPatches.aufs3_2
       ];
   };
 
@@ -6574,11 +6620,10 @@ let
   });
 
   linux_3_4 = makeOverridable (import ../os-specific/linux/kernel/linux-3.4.nix) {
-    inherit fetchurl stdenv perl mktemp bc kmod ubootChooser;
+    inherit fetchurl stdenv perl linuxManualConfig;
     kernelPatches =
       [ kernelPatches.sec_perm_2_6_24
-        # kernelPatches.aufs3_4
-      ] ++ lib.optionals (platform.kernelArch == "mips")
+      ] ++ lib.optionals ((platform.kernelArch or null) == "mips")
       [ kernelPatches.mips_fpureg_emu
         kernelPatches.mips_fpu_sigill
       ];
@@ -6593,15 +6638,15 @@ let
   });
 
   linux_3_6_rpi = makeOverridable (import ../os-specific/linux/kernel/linux-rpi-3.6.nix) {
-    inherit fetchurl stdenv perl mktemp bc kmod ubootChooser;
+    inherit fetchurl stdenv perl linuxManualConfig;
   };
 
   linux_3_10 = makeOverridable (import ../os-specific/linux/kernel/linux-3.10.nix) {
-    inherit fetchurl stdenv perl mktemp bc kmod ubootChooser;
+    inherit fetchurl stdenv perl linuxManualConfig;
     kernelPatches =
       [
         kernelPatches.sec_perm_2_6_24
-      ] ++ lib.optionals (platform.kernelArch == "mips")
+      ] ++ lib.optionals ((platform.kernelArch or null) == "mips")
       [ kernelPatches.mips_fpureg_emu
         kernelPatches.mips_fpu_sigill
         kernelPatches.mips_ext3_n32
@@ -6618,11 +6663,11 @@ let
   });
 
   linux_3_11 = makeOverridable (import ../os-specific/linux/kernel/linux-3.11.nix) {
-    inherit fetchurl stdenv perl mktemp bc kmod ubootChooser;
+    inherit fetchurl stdenv perl linuxManualConfig;
     kernelPatches =
       [
         kernelPatches.sec_perm_2_6_24
-      ] ++ lib.optionals (platform.kernelArch == "mips")
+      ] ++ lib.optionals ((platform.kernelArch or null) == "mips")
       [ kernelPatches.mips_fpureg_emu
         kernelPatches.mips_fpu_sigill
         kernelPatches.mips_ext3_n32
@@ -6630,11 +6675,11 @@ let
   };
 
   linux_3_12 = makeOverridable (import ../os-specific/linux/kernel/linux-3.12.nix) {
-    inherit fetchurl stdenv perl mktemp bc kmod ubootChooser;
+    inherit fetchurl stdenv perl linuxManualConfig;
     kernelPatches =
       [
         kernelPatches.sec_perm_2_6_24
-      ] ++ lib.optionals (platform.kernelArch == "mips")
+      ] ++ lib.optionals ((platform.kernelArch or null) == "mips")
       [ kernelPatches.mips_fpureg_emu
         kernelPatches.mips_fpu_sigill
         kernelPatches.mips_ext3_n32
@@ -6651,8 +6696,6 @@ let
   linuxPackagesFor = kernel: self: let callPackage = newScope self; in {
     inherit kernel;
 
-    kernelDev = kernel.dev or kernel;
-
     acpi_call = callPackage ../os-specific/linux/acpi-call {};
 
     batman_adv = callPackage ../os-specific/linux/batman-adv {};
@@ -6661,45 +6704,20 @@ let
 
     ati_drivers_x11 = callPackage ../os-specific/linux/ati-drivers { };
 
-    aufs =
-      if self.kernel.features ? aufs2 then
-        callPackage ../os-specific/linux/aufs/2.nix { }
-      else if self.kernel.features ? aufs3 then
-        callPackage ../os-specific/linux/aufs/3.nix { }
-      else null;
-
-    aufs_util =
-      if self.kernel.features ? aufs2 then
-        callPackage ../os-specific/linux/aufs-util/2.nix { }
-      else if self.kernel.features ? aufs3 then
-        callPackage ../os-specific/linux/aufs-util/3.nix { }
-      else null;
-
     blcr = callPackage ../os-specific/linux/blcr { };
 
     cryptodev = callPackage ../os-specific/linux/cryptodev { };
 
     e1000e = callPackage ../os-specific/linux/e1000e {};
 
-    exmap = callPackage ../os-specific/linux/exmap { };
-
     frandom = callPackage ../os-specific/linux/frandom { };
 
-    iscsitarget = callPackage ../os-specific/linux/iscsitarget { };
-
-    iwlwifi = callPackage ../os-specific/linux/iwlwifi { };
-
     lttngModules = callPackage ../os-specific/linux/lttng-modules { };
 
-    atheros = callPackage ../os-specific/linux/atheros/0.9.4.nix { };
-
     broadcom_sta = callPackage ../os-specific/linux/broadcom-sta/default.nix { };
 
-    broadcom_sta6 = callPackage ../os-specific/linux/broadcom-sta-v6/default.nix { };
-
     nvidia_x11 = callPackage ../os-specific/linux/nvidia-x11 { };
 
-    nvidia_x11_legacy96 = callPackage ../os-specific/linux/nvidia-x11/legacy96.nix { };
     nvidia_x11_legacy173 = callPackage ../os-specific/linux/nvidia-x11/legacy173.nix { };
     nvidia_x11_legacy304 = callPackage ../os-specific/linux/nvidia-x11/legacy304.nix { };
 
@@ -6709,9 +6727,12 @@ let
 
     wis_go7007 = callPackage ../os-specific/linux/wis-go7007 { };
 
-    klibc = callPackage ../os-specific/linux/klibc {
-      linuxHeaders = glibc.kernelHeaders;
-    };
+    kernelHeaders = callPackage ../os-specific/linux/kernel-headers { };
+
+    klibc = callPackage ../os-specific/linux/klibc { };
+
+    klibcShrunk = lowPrio (callPackage ../os-specific/linux/klibc/shrunk.nix { });
+
 
     /* compiles but has to be integrated into the kernel somehow
        Let's have it uncommented and finish it..
@@ -6726,15 +6747,6 @@ let
 
     spl = callPackage ../os-specific/linux/spl/default.nix { };
 
-    sysprof = callPackage ../development/tools/profiling/sysprof {
-      inherit (gnome) libglade;
-    };
-
-    systemtap = callPackage ../development/tools/profiling/systemtap {
-      linux = self.kernelDev;
-      inherit (gnome) libglademm;
-    };
-
     tp_smapi = callPackage ../os-specific/linux/tp_smapi { };
 
     v86d = callPackage ../os-specific/linux/v86d { };
@@ -6772,7 +6784,7 @@ let
 
   # A function to build a manually-configured kernel
   linuxManualConfig = import ../os-specific/linux/kernel/manual-config.nix {
-    inherit (pkgs) stdenv runCommand nettools bc perl kmod writeTextFile;
+    inherit (pkgs) stdenv runCommand nettools bc perl kmod writeTextFile ubootChooser;
   };
 
   keyutils = callPackage ../os-specific/linux/keyutils { };
@@ -6793,12 +6805,6 @@ let
 
   lsiutil = callPackage ../os-specific/linux/lsiutil { };
 
-  klibc = callPackage ../os-specific/linux/klibc {
-    linuxHeaders = glibc.kernelHeaders;
-  };
-
-  klibcShrunk = lowPrio (callPackage ../os-specific/linux/klibc/shrunk.nix { });
-
   kmod = callPackage ../os-specific/linux/kmod { };
 
   kvm = qemu_kvm;
@@ -6923,6 +6929,10 @@ let
 
   sysfsutils = callPackage ../os-specific/linux/sysfsutils { };
 
+  sysprof = callPackage ../development/tools/profiling/sysprof {
+    inherit (gnome) libglade;
+  };
+
   # Provided with sysfsutils.
   libsysfs = sysfsutils;
   systool = sysfsutils;
@@ -6935,6 +6945,10 @@ let
 
   systemd = callPackage ../os-specific/linux/systemd { };
 
+  systemtap = callPackage ../development/tools/profiling/systemtap {
+    inherit (gnome) libglademm;
+  };
+
   # In nixos, you can set systemd.package = pkgs.systemd_with_lvm2 to get
   # LVM2 working in systemd.
   systemd_with_lvm2 = pkgs.lib.overrideDerivation pkgs.systemd (p: {
@@ -7617,6 +7631,8 @@ let
 
     gist = callPackage ../applications/editors/emacs-modes/gist { };
 
+    idris = callPackage ../applications/editors/emacs-modes/idris { };
+
     jade = callPackage ../applications/editors/emacs-modes/jade { };
 
     jdee = callPackage ../applications/editors/emacs-modes/jdee {
@@ -7870,6 +7886,8 @@ let
     python = python27;
   };
 
+  inherit (gnome3) gitg;
+
   giv = callPackage ../applications/graphics/giv {
     pcre = pcre.override { unicodeSupport = true; };
   };
@@ -8160,6 +8178,8 @@ let
 
   lastwatch = callPackage ../applications/audio/lastwatch { };
 
+  lastfmsubmitd = callPackage ../applications/audio/lastfmsubmitd { };
+
   lbdb = callPackage ../tools/misc/lbdb { };
 
   lci = callPackage ../applications/science/logic/lci {};
@@ -8665,17 +8685,7 @@ let
 
   smartdeblur = callPackage ../applications/graphics/smartdeblur { };
 
-  sndBase = lowPrio (builderDefsPackage (import ../applications/audio/snd) {
-    inherit fetchurl stdenv stringsWithDeps lib fftw;
-    inherit pkgconfig gmp gettext;
-    inherit (xlibs) libXpm libX11;
-    inherit gtk glib;
-  });
-
-  snd = sndBase.passthru.function {
-    inherit mesa libtool jackaudio alsaLib;
-    guile = guile_1_8;
-  };
+  snd = callPackage ../applications/audio/snd { };
 
   shntool = callPackage ../applications/audio/shntool { };
 
@@ -8743,7 +8753,7 @@ let
 
   tahoelafs = callPackage ../tools/networking/p2p/tahoe-lafs {
     inherit (pythonPackages) twisted foolscap simplejson nevow zfec
-      pycryptopp pysqlite darcsver setuptoolsTrial setuptoolsDarcs
+      pycryptopp sqlite3 darcsver setuptoolsTrial setuptoolsDarcs
       numpy pyasn1 mock;
   };
 
@@ -9649,7 +9659,7 @@ let
 
   gtk-engine-murrine = callPackage ../misc/themes/gtk2/gtk-engine-murrine { };
 
-  gnome_themes_standard = callPackage ../misc/themes/gnome-themes-standard { };
+  gnome_themes_standard = gnome3.gnome_themes_standard;
 
   mate-icon-theme = callPackage ../misc/themes/mate-icon-theme { };
 
@@ -9899,6 +9909,8 @@ let
 
   weka = callPackage ../applications/science/math/weka { };
 
+  yad = callPackage ../tools/misc/yad { };
+
   yacas = callPackage ../applications/science/math/yacas { };
 
   speedcrunch = callPackage ../applications/science/math/speedcrunch {
@@ -10023,13 +10035,10 @@ 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 { };
 
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 47350533aea..11615bc3e5e 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -142,7 +142,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   haskellPlatformArgs_future = self : {
     inherit (self) cabal ghc;
     async        = self.async_2_0_1_5;
-    attoparsec   = self.attoparsec_0_10_4_0;
+    attoparsec   = self.attoparsec_0_11_1_0;
     caseInsensitive = self.caseInsensitive_1_1_0_2;
     cgi          = self.cgi_3001_1_8_4;
     fgl          = self.fgl_5_4_2_4;
@@ -154,11 +154,11 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
     HTTP         = self.HTTP_4000_2_10;
     HUnit        = self.HUnit_1_2_5_2;
     mtl          = self.mtl_2_1_2;
-    network      = self.network_2_4_2_1;
+    network      = self.network_2_4_2_2;
     OpenGL       = self.OpenGL_2_9_1_0;
     OpenGLRaw    = self.OpenGLRaw_1_4_0_0;
     parallel     = self.parallel_3_2_0_4;
-    parsec       = self.parsec_3_1_4;
+    parsec       = self.parsec_3_1_5;
     QuickCheck   = self.QuickCheck_2_6;
     random       = self.random_1_0_1_1;
     regexBase    = self.regexBase_0_93_2;
@@ -167,7 +167,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
     split        = self.split_0_2_2;
     stm          = self.stm_2_4_2;
     syb          = self.syb_0_4_1;
-    text         = self.text_1_0_0_0;
+    text         = self.text_1_1_0_0;
     transformers = self.transformers_0_3_0_0;   # this has become a core package in GHC 7.7
     unorderedContainers = self.unorderedContainers_0_2_3_3;
     vector       = self.vector_0_10_9_1;
@@ -530,6 +530,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   alsaCore = callPackage ../development/libraries/haskell/alsa-core {};
 
+  alsaMixer = callPackage ../development/libraries/haskell/alsa-mixer {};
+
   alsaPcm = callPackage ../development/libraries/haskell/alsa-pcm {};
 
   amqp = callPackage ../development/libraries/haskell/amqp {};
@@ -566,6 +568,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   attempt = callPackage ../development/libraries/haskell/attempt {};
 
   attoparsec_0_10_4_0 = callPackage ../development/libraries/haskell/attoparsec/0.10.4.0.nix {};
+  attoparsec_0_11_1_0 = callPackage ../development/libraries/haskell/attoparsec/0.11.1.0.nix {};
   attoparsec = self.attoparsec_0_10_4_0;
 
   attoparsecBinary = callPackage ../development/libraries/haskell/attoparsec-binary {};
@@ -767,6 +770,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   concatenative = callPackage ../development/libraries/haskell/concatenative {};
 
+  concreteTyperep = callPackage ../development/libraries/haskell/concreteTyperep {};
+
   conduit = callPackage ../development/libraries/haskell/conduit {};
 
   ConfigFile = callPackage ../development/libraries/haskell/ConfigFile {};
@@ -841,6 +846,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   dataAccessorTransformers = callPackage ../development/libraries/haskell/data-accessor/data-accessor-transformers.nix {};
 
+  dataAccessorMtl = callPackage ../development/libraries/haskell/data-accessor/data-accessor-mtl.nix {};
+
   dataBinaryIeee754 = callPackage ../development/libraries/haskell/data-binary-ieee754 {};
 
   dataDefault = callPackage ../development/libraries/haskell/data-default {};
@@ -1123,6 +1130,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   glossAccelerate = callPackage ../development/libraries/haskell/gloss-accelerate {};
 
+  glossRaster = callPackage ../development/libraries/haskell/gloss-raster {};
+
   glossRasterAccelerate = callPackage ../development/libraries/haskell/gloss-raster-accelerate {};
 
   glpkHs = callPackage ../development/libraries/haskell/glpk-hs {};
@@ -1641,8 +1650,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   network_2_3_0_13 = callPackage ../development/libraries/haskell/network/2.3.0.13.nix {};
   network_2_3_1_0 = callPackage ../development/libraries/haskell/network/2.3.1.0.nix {};
   network_2_4_1_2 = callPackage ../development/libraries/haskell/network/2.4.1.2.nix {};
-  network_2_4_2_1 = callPackage ../development/libraries/haskell/network/2.4.2.1.nix {};
-  network = self.network_2_4_2_1;
+  network_2_4_2_2 = callPackage ../development/libraries/haskell/network/2.4.2.2.nix {};
+  network = self.network_2_4_2_2;
 
   networkConduit = callPackage ../development/libraries/haskell/network-conduit {};
   networkConduitTls = callPackage ../development/libraries/haskell/network-conduit-tls {};
@@ -1736,9 +1745,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   parsec_3_1_1   = callPackage ../development/libraries/haskell/parsec/3.1.1.nix {};
   parsec_3_1_2   = callPackage ../development/libraries/haskell/parsec/3.1.2.nix {};
   parsec_3_1_3   = callPackage ../development/libraries/haskell/parsec/3.1.3.nix {};
-  parsec_3_1_4   = callPackage ../development/libraries/haskell/parsec/3.1.4.nix {};
+  parsec_3_1_5   = callPackage ../development/libraries/haskell/parsec/3.1.5.nix {};
   parsec2 = self.parsec_2_1_0_1;
-  parsec3 = self.parsec_3_1_4;
+  parsec3 = self.parsec_3_1_5;
   parsec  = self.parsec3;
 
   parsers_0_9 = callPackage ../development/libraries/haskell/parsers/0.9.nix {};
@@ -1795,10 +1804,17 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
 
   pointed = callPackage ../development/libraries/haskell/pointed {};
 
+  pointedlist = callPackage ../development/libraries/haskell/pointedlist {};
+
   poolConduit = callPackage ../development/libraries/haskell/pool-conduit {};
 
   pop3client = callPackage ../development/libraries/haskell/pop3-client {};
 
+  poppler = callPackage ../development/libraries/haskell/poppler {
+    popplerGlib = pkgs.poppler.poppler_glib;
+    libc = pkgs.stdenv.gcc.libc;
+  };
+
   postgresqlLibpq = callPackage ../development/libraries/haskell/postgresql-libpq {
     inherit (pkgs) postgresql;
   };
@@ -1810,10 +1826,10 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   prettyclass = callPackage ../development/libraries/haskell/prettyclass {};
 
   prettyShow_1_2 = callPackage ../development/libraries/haskell/pretty-show/1.2.nix {};
-  prettyShow_1_6_3 = callPackage ../development/libraries/haskell/pretty-show/1.6.3.nix {
+  prettyShow_1_6_5 = callPackage ../development/libraries/haskell/pretty-show/1.6.5.nix {
     happy = self.happy_1_19_2;
   };
-  prettyShow = self.prettyShow_1_6_3;
+  prettyShow = self.prettyShow_1_6_5;
 
   punycode = callPackage ../development/libraries/haskell/punycode {};
 
@@ -2206,8 +2222,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
   text_0_11_2_0 = callPackage ../development/libraries/haskell/text/0.11.2.0.nix {};
   text_0_11_2_3 = callPackage ../development/libraries/haskell/text/0.11.2.3.nix {};
   text_0_11_3_1 = callPackage ../development/libraries/haskell/text/0.11.3.1.nix {};
-  text_1_0_0_0 = callPackage ../development/libraries/haskell/text/1.0.0.0.nix {};
-  text = self.text_1_0_0_0;
+  text_1_1_0_0 = callPackage ../development/libraries/haskell/text/1.1.0.0.nix {};
+  text = self.text_1_1_0_0;
 
   textFormat = callPackage ../development/libraries/haskell/text-format {};
 
@@ -2599,6 +2615,10 @@ let result = let callPackage = x : y : modifyPrio (newScope result.finalReturn x
     QuickCheck = self.QuickCheck2;
   };
 
+  yi = callPackage ../applications/editors/yi/yi.nix {};
+
+  yiContrib = callPackage ../applications/editors/yi/yi-contrib.nix {};
+
   xmobar = callPackage ../applications/misc/xmobar {};
 
   xmonad = callPackage ../applications/window-managers/xmonad {};
diff --git a/pkgs/top-level/node-packages-generated.nix b/pkgs/top-level/node-packages-generated.nix
index 671ea62785c..e58e26f7a88 100644
--- a/pkgs/top-level/node-packages-generated.nix
+++ b/pkgs/top-level/node-packages-generated.nix
@@ -1158,14 +1158,14 @@
     passthru.names = [ "bower-registry-client" ];
   };
   by-spec."bower2nix"."*" =
-    self.by-version."bower2nix"."1.0.1";
-  by-version."bower2nix"."1.0.1" = lib.makeOverridable self.buildNodePackage {
-    name = "bower2nix-1.0.1";
+    self.by-version."bower2nix"."3.0.0";
+  by-version."bower2nix"."3.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "bower2nix-3.0.0";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/bower2nix/-/bower2nix-1.0.1.tgz";
-        name = "bower2nix-1.0.1.tgz";
-        sha1 = "104417d000e525d5e4beb58ee5220e0e07cf378f";
+        url = "http://registry.npmjs.org/bower2nix/-/bower2nix-3.0.0.tgz";
+        name = "bower2nix-3.0.0.tgz";
+        sha1 = "afe3c676baff67b86e06f5514a325be45b317184";
       })
     ];
     buildInputs =
@@ -1174,18 +1174,16 @@
       self.by-version."temp"."0.6.0"
       self.by-version."fs.extra"."1.2.1"
       self.by-version."bower-json"."0.4.0"
-      self.by-version."bower-endpoint-parser"."0.2.1"
-      self.by-version."bower-logger"."0.2.1"
-      self.by-version."bower"."1.2.8"
       self.by-version."argparse"."0.1.15"
       self.by-version."clone"."0.1.11"
       self.by-version."semver"."2.2.1"
+      self.by-version."fetch-bower"."2.0.0"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "bower2nix" ];
   };
-  "bower2nix" = self.by-version."bower2nix"."1.0.1";
+  "bower2nix" = self.by-version."bower2nix"."3.0.0";
   by-spec."broadway"."0.2.9" =
     self.by-version."broadway"."0.2.9";
   by-version."broadway"."0.2.9" = lib.makeOverridable self.buildNodePackage {
@@ -1844,14 +1842,14 @@
     passthru.names = [ "class-extend" ];
   };
   by-spec."clean-css"."2.0.x" =
-    self.by-version."clean-css"."2.0.5";
-  by-version."clean-css"."2.0.5" = lib.makeOverridable self.buildNodePackage {
-    name = "clean-css-2.0.5";
+    self.by-version."clean-css"."2.0.6";
+  by-version."clean-css"."2.0.6" = lib.makeOverridable self.buildNodePackage {
+    name = "clean-css-2.0.6";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/clean-css/-/clean-css-2.0.5.tgz";
-        name = "clean-css-2.0.5.tgz";
-        sha1 = "e693ca07bdbc69883665db6f8444d1af0442bbe3";
+        url = "http://registry.npmjs.org/clean-css/-/clean-css-2.0.6.tgz";
+        name = "clean-css-2.0.6.tgz";
+        sha1 = "89f98241ec4026500db7ea3b2e725f9ffaa01ed3";
       })
     ];
     buildInputs =
@@ -1864,7 +1862,7 @@
     passthru.names = [ "clean-css" ];
   };
   by-spec."clean-css"."~2.0.0" =
-    self.by-version."clean-css"."2.0.5";
+    self.by-version."clean-css"."2.0.6";
   by-spec."cli"."0.4.x" =
     self.by-version."cli"."0.4.5";
   by-version."cli"."0.4.5" = lib.makeOverridable self.buildNodePackage {
@@ -4144,7 +4142,7 @@
     buildInputs =
       (self.nativeDeps."everyauth" or []);
     deps = [
-      self.by-version."oauth"."0.9.10"
+      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"
@@ -4511,6 +4509,32 @@
     ];
     passthru.names = [ "faye-websocket" ];
   };
+  by-spec."fetch-bower"."*" =
+    self.by-version."fetch-bower"."2.0.0";
+  by-version."fetch-bower"."2.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "fetch-bower-2.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/fetch-bower/-/fetch-bower-2.0.0.tgz";
+        name = "fetch-bower-2.0.0.tgz";
+        sha1 = "c027feb75a512001d1287bbfb3ffaafba67eb92f";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."fetch-bower" or []);
+    deps = [
+      self.by-version."bower-endpoint-parser"."0.2.1"
+      self.by-version."bower-logger"."0.2.1"
+      self.by-version."bower"."1.2.8"
+      self.by-version."glob"."3.2.7"
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "fetch-bower" ];
+  };
+  "fetch-bower" = self.by-version."fetch-bower"."2.0.0";
+  by-spec."fetch-bower".">=2 <3" =
+    self.by-version."fetch-bower"."2.0.0";
   by-spec."file-utils"."~0.1.1" =
     self.by-version."file-utils"."0.1.5";
   by-version."file-utils"."0.1.5" = lib.makeOverridable self.buildNodePackage {
@@ -5175,7 +5199,7 @@
     ];
     peerDependencies = [
       self.by-version."generator-karma"."0.6.0"
-      self.by-version."yo"."1.1.0"
+      self.by-version."yo"."1.1.1"
     ];
     passthru.names = [ "generator-angular" ];
   };
@@ -5197,7 +5221,7 @@
       self.by-version."yeoman-generator"."0.13.4"
     ];
     peerDependencies = [
-      self.by-version."yo"."1.1.0"
+      self.by-version."yo"."1.1.1"
     ];
     passthru.names = [ "generator-karma" ];
   };
@@ -5218,7 +5242,7 @@
       self.by-version."yeoman-generator"."0.14.2"
     ];
     peerDependencies = [
-      self.by-version."yo"."1.1.0"
+      self.by-version."yo"."1.1.1"
     ];
     passthru.names = [ "generator-mocha" ];
   };
@@ -5240,7 +5264,7 @@
       self.by-version."cheerio"."0.12.4"
     ];
     peerDependencies = [
-      self.by-version."yo"."1.1.0"
+      self.by-version."yo"."1.1.1"
       self.by-version."generator-mocha"."0.1.3"
     ];
     passthru.names = [ "generator-webapp" ];
@@ -5372,6 +5396,8 @@
     self.by-version."glob"."3.2.7";
   by-spec."glob".">= 3.1.4" =
     self.by-version."glob"."3.2.7";
+  by-spec."glob".">=3.2.7 <4" =
+    self.by-version."glob"."3.2.7";
   by-spec."glob"."~3.1.21" =
     self.by-version."glob"."3.1.21";
   by-version."glob"."3.1.21" = lib.makeOverridable self.buildNodePackage {
@@ -5614,7 +5640,7 @@
     buildInputs =
       (self.nativeDeps."grunt-contrib-cssmin" or []);
     deps = [
-      self.by-version."clean-css"."2.0.5"
+      self.by-version."clean-css"."2.0.6"
       self.by-version."grunt-lib-contrib"."0.6.1"
     ];
     peerDependencies = [
@@ -5637,7 +5663,7 @@
     buildInputs =
       (self.nativeDeps."grunt-contrib-jshint" or []);
     deps = [
-      self.by-version."jshint"."2.4.0"
+      self.by-version."jshint"."2.4.1"
     ];
     peerDependencies = [
       self.by-version."grunt"."0.4.2"
@@ -5796,7 +5822,7 @@
     deps = [
       self.by-version."coffee-script"."1.6.3"
       self.by-version."jade"."1.0.2"
-      self.by-version."q"."0.9.7"
+      self.by-version."q"."1.0.0"
       self.by-version."xml2js"."0.4.1"
       self.by-version."msgpack"."0.2.1"
     ];
@@ -7110,14 +7136,14 @@
   by-spec."jsesc"."~0.4.3" =
     self.by-version."jsesc"."0.4.3";
   by-spec."jshint"."*" =
-    self.by-version."jshint"."2.4.0";
-  by-version."jshint"."2.4.0" = lib.makeOverridable self.buildNodePackage {
-    name = "jshint-2.4.0";
+    self.by-version."jshint"."2.4.1";
+  by-version."jshint"."2.4.1" = lib.makeOverridable self.buildNodePackage {
+    name = "jshint-2.4.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/jshint/-/jshint-2.4.0.tgz";
-        name = "jshint-2.4.0.tgz";
-        sha1 = "31717646cee2137cdd7f1b773c3fce58f4d99fc5";
+        url = "http://registry.npmjs.org/jshint/-/jshint-2.4.1.tgz";
+        name = "jshint-2.4.1.tgz";
+        sha1 = "833f361a56577b80816b64f18434cce3b3942591";
       })
     ];
     buildInputs =
@@ -7134,9 +7160,9 @@
     ];
     passthru.names = [ "jshint" ];
   };
-  "jshint" = self.by-version."jshint"."2.4.0";
+  "jshint" = self.by-version."jshint"."2.4.1";
   by-spec."jshint"."~2.4.0" =
-    self.by-version."jshint"."2.4.0";
+    self.by-version."jshint"."2.4.1";
   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 {
@@ -7698,7 +7724,7 @@
       self.by-version."mime"."1.2.11"
       self.by-version."request"."2.30.0"
       self.by-version."mkdirp"."0.3.5"
-      self.by-version."clean-css"."2.0.5"
+      self.by-version."clean-css"."2.0.6"
       self.by-version."source-map"."0.1.31"
     ];
     peerDependencies = [
@@ -9691,7 +9717,7 @@
       (self.nativeDeps."nodemailer" or []);
     deps = [
       self.by-version."mailcomposer"."0.2.7"
-      self.by-version."simplesmtp"."0.3.16"
+      self.by-version."simplesmtp"."0.3.18"
       self.by-version."optimist"."0.6.0"
     ];
     peerDependencies = [
@@ -9699,26 +9725,27 @@
     passthru.names = [ "nodemailer" ];
   };
   by-spec."nodemon"."*" =
-    self.by-version."nodemon"."1.0.2";
-  by-version."nodemon"."1.0.2" = lib.makeOverridable self.buildNodePackage {
-    name = "nodemon-1.0.2";
+    self.by-version."nodemon"."1.0.5";
+  by-version."nodemon"."1.0.5" = lib.makeOverridable self.buildNodePackage {
+    name = "nodemon-1.0.5";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/nodemon/-/nodemon-1.0.2.tgz";
-        name = "nodemon-1.0.2.tgz";
-        sha1 = "f934df2f87a1b4718c283615d1f4f985b852e28e";
+        url = "http://registry.npmjs.org/nodemon/-/nodemon-1.0.5.tgz";
+        name = "nodemon-1.0.5.tgz";
+        sha1 = "795f57d018791bae6988b9e34b34bb4a11c84d21";
       })
     ];
     buildInputs =
       (self.nativeDeps."nodemon" or []);
     deps = [
       self.by-version."update-notifier"."0.1.7"
+      self.by-version."minimatch"."0.2.14"
     ];
     peerDependencies = [
     ];
     passthru.names = [ "nodemon" ];
   };
-  "nodemon" = self.by-version."nodemon"."1.0.2";
+  "nodemon" = self.by-version."nodemon"."1.0.5";
   by-spec."nomnom"."1.6.x" =
     self.by-version."nomnom"."1.6.2";
   by-version."nomnom"."1.6.2" = lib.makeOverridable self.buildNodePackage {
@@ -9788,9 +9815,9 @@
     name = "nopt-1.0.10";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz";
+        url = "https://github.com/Filirom1/nopt/tarball/master#pull-request-in-progress";
         name = "nopt-1.0.10.tgz";
-        sha1 = "6ddd21bd2a31417b92727dd585f8a6f37608ebee";
+        sha256 = "94daa53a0ab7668be12931b7b551c924c913d1efef7f2a05e60704c9b90a7bad";
       })
     ];
     buildInputs =
@@ -10132,14 +10159,14 @@
     passthru.names = [ "nssocket" ];
   };
   by-spec."oauth"."https://github.com/ciaranj/node-oauth/tarball/master" =
-    self.by-version."oauth"."0.9.10";
-  by-version."oauth"."0.9.10" = lib.makeOverridable self.buildNodePackage {
-    name = "oauth-0.9.10";
+    self.by-version."oauth"."0.9.11";
+  by-version."oauth"."0.9.11" = lib.makeOverridable self.buildNodePackage {
+    name = "oauth-0.9.11";
     src = [
       (fetchurl {
         url = "https://github.com/ciaranj/node-oauth/tarball/master";
-        name = "oauth-0.9.10.tgz";
-        sha256 = "c0c59efccbd34819ed51e912bc74b872e812a0157784dc8604434378a14cf64a";
+        name = "oauth-0.9.11.tgz";
+        sha256 = "ea86c233c1a77e52a97107b40978a909a99dd59c4751e7f4d342274c1d6a55a4";
       })
     ];
     buildInputs =
@@ -10988,6 +11015,25 @@
   by-spec."punycode"."~1.2.3" =
     self.by-version."punycode"."1.2.3";
   by-spec."q".">= 0.0.1" =
+    self.by-version."q"."1.0.0";
+  by-version."q"."1.0.0" = lib.makeOverridable self.buildNodePackage {
+    name = "q-1.0.0";
+    src = [
+      (fetchurl {
+        url = "http://registry.npmjs.org/q/-/q-1.0.0.tgz";
+        name = "q-1.0.0.tgz";
+        sha1 = "dc1f92c4587be54f7853b29dc28e6d243a88498d";
+      })
+    ];
+    buildInputs =
+      (self.nativeDeps."q" or []);
+    deps = [
+    ];
+    peerDependencies = [
+    ];
+    passthru.names = [ "q" ];
+  };
+  by-spec."q"."~0.9.2" =
     self.by-version."q"."0.9.7";
   by-version."q"."0.9.7" = lib.makeOverridable self.buildNodePackage {
     name = "q-0.9.7";
@@ -11006,8 +11052,6 @@
     ];
     passthru.names = [ "q" ];
   };
-  by-spec."q"."~0.9.2" =
-    self.by-version."q"."0.9.7";
   by-spec."q"."~0.9.6" =
     self.by-version."q"."0.9.7";
   by-spec."q"."~0.9.7" =
@@ -12671,14 +12715,14 @@
     passthru.names = [ "simple-lru-cache" ];
   };
   by-spec."simplesmtp".">= 0.1.22" =
-    self.by-version."simplesmtp"."0.3.16";
-  by-version."simplesmtp"."0.3.16" = lib.makeOverridable self.buildNodePackage {
-    name = "simplesmtp-0.3.16";
+    self.by-version."simplesmtp"."0.3.18";
+  by-version."simplesmtp"."0.3.18" = lib.makeOverridable self.buildNodePackage {
+    name = "simplesmtp-0.3.18";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/simplesmtp/-/simplesmtp-0.3.16.tgz";
-        name = "simplesmtp-0.3.16.tgz";
-        sha1 = "c82ab64b957a5f979b10b96787094e3612877814";
+        url = "http://registry.npmjs.org/simplesmtp/-/simplesmtp-0.3.18.tgz";
+        name = "simplesmtp-0.3.18.tgz";
+        sha1 = "54493d7d5b59b23b061b981655be8d001167a978";
       })
     ];
     buildInputs =
@@ -15294,14 +15338,14 @@
     passthru.names = [ "yeoman-generator" ];
   };
   by-spec."yo"."*" =
-    self.by-version."yo"."1.1.0";
-  by-version."yo"."1.1.0" = lib.makeOverridable self.buildNodePackage {
-    name = "yo-1.1.0";
+    self.by-version."yo"."1.1.1";
+  by-version."yo"."1.1.1" = lib.makeOverridable self.buildNodePackage {
+    name = "yo-1.1.1";
     src = [
       (fetchurl {
-        url = "http://registry.npmjs.org/yo/-/yo-1.1.0.tgz";
-        name = "yo-1.1.0.tgz";
-        sha1 = "4bc08291932442d1a3ad1e531702b1a76cdf2a16";
+        url = "http://registry.npmjs.org/yo/-/yo-1.1.1.tgz";
+        name = "yo-1.1.1.tgz";
+        sha1 = "9c26dfef997c6114272c8b3980c6b02256e874d0";
       })
     ];
     buildInputs =
@@ -15325,11 +15369,11 @@
     ];
     passthru.names = [ "yo" ];
   };
-  "yo" = self.by-version."yo"."1.1.0";
+  "yo" = self.by-version."yo"."1.1.1";
   by-spec."yo".">=1.0.0" =
-    self.by-version."yo"."1.1.0";
+    self.by-version."yo"."1.1.1";
   by-spec."yo".">=1.0.0-rc.1.1" =
-    self.by-version."yo"."1.1.0";
+    self.by-version."yo"."1.1.1";
   by-spec."zeparser"."0.0.5" =
     self.by-version."zeparser"."0.0.5";
   by-version."zeparser"."0.0.5" = lib.makeOverridable self.buildNodePackage {
diff --git a/pkgs/top-level/node-packages.json b/pkgs/top-level/node-packages.json
index 1d1abbc9ba2..c58d2dae967 100644
--- a/pkgs/top-level/node-packages.json
+++ b/pkgs/top-level/node-packages.json
@@ -113,4 +113,5 @@
 , "node-protobuf"
 , "rethinkdb"
 , "bower2nix"
+, "fetch-bower"
 ]
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index fa8df33edf3..ef2372b5012 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -6185,9 +6185,9 @@ let self = _self // overrides; _self = with self; {
   };
 
   NetSNMP = buildPerlPackage rec {
-    name = "Net-SNMP-v6.0.1";
+    name = "Net-SNMP-6.0.1";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DT/DTOWN/${name}.tar.gz";
+      url = "mirror://cpan/authors/id/D/DT/DTOWN/Net-SNMP-v6.0.1.tar.gz";
       sha256 = "0hdpn1cw52x8cw24m9ayzpf4rwarm0khygn1sv3wvwxkrg0pphql";
     };
     doCheck = false; # The test suite fails, see https://rt.cpan.org/Public/Bug/Display.html?id=85799
@@ -7590,7 +7590,7 @@ let self = _self // overrides; _self = with self; {
   };
 
   SVK = buildPerlPackage {
-    name = "SVK-v2.0.2";
+    name = "SVK-2.0.2";
     src = fetchurl {
       url = mirror://cpan/authors/id/C/CL/CLKAO/SVK-v2.0.2.tar.gz;
       sha256 = "0c4m2q7cvzwh9kk1nc1vd8lkxx2kss5nd4k20dpkal4c7735jns0";
@@ -8680,9 +8680,9 @@ let self = _self // overrides; _self = with self; {
   };
 
   TextRecordParser = buildPerlPackage rec {
-    name = "Text-RecordParser-v1.5.0";
+    name = "Text-RecordParser-1.5.0";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/K/KC/KCLARK/${name}.tar.gz";
+      url = "mirror://cpan/authors/id/K/KC/KCLARK/Text-RecordParser-v1.5.0.tar.gz";
       sha256 = "0zlwpayjnpjani3v3hgi77207i3n5fppcxww20chdldx98dkj7jm";
     };
 
@@ -8743,7 +8743,7 @@ let self = _self // overrides; _self = with self; {
   };
 
   TestTrap = buildPerlPackage {
-    name = "Test-Trap-v0.2.2";
+    name = "Test-Trap-0.2.2";
     src = fetchurl {
       url = mirror://cpan/authors/id/E/EB/EBHANSSEN/Test-Trap-v0.2.2.tar.gz;
       sha256 = "1ci5ag9pm850ww55n2929skvw3avy6xcrwmmi2yyn0hifxx9dybs";
diff --git a/pkgs/top-level/platforms.nix b/pkgs/top-level/platforms.nix
index d6408286581..299941790e9 100644
--- a/pkgs/top-level/platforms.nix
+++ b/pkgs/top-level/platforms.nix
@@ -1,5 +1,5 @@
 rec {
-  pc = {
+  pcBase = {
     name = "pc";
     uboot = null;
     kernelHeadersBaseConfig = "defconfig";
@@ -7,12 +7,17 @@ rec {
     # Build whatever possible as a module, if not stated in the extra config.
     kernelAutoModules = true;
     kernelTarget = "bzImage";
-    # Currently ignored - it should be set according to 'system' once it is
-    # not ignored. This is for stdenv-updates.
-    kernelArch = "i386";
   };
 
-  pc_simplekernel = pc // {
+  pc64 = pcBase // { kernelArch = "x86_64"; };
+
+  pc32 = pcBase // { kernelArch = "i386"; };
+
+  pc32_simplekernel = pc32 // {
+    kernelAutoModules = false;
+  };
+
+  pc64_simplekernel = pc64 // {
     kernelAutoModules = false;
   };
 
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index ee19aa850d3..18d32311173 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -57,6 +57,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
   blivet = callPackage ../development/python-modules/blivet { };
 
+  dbus = import ../development/python-modules/dbus {
+    inherit (pkgs) stdenv fetchurl pkgconfig dbus dbus_glib dbus_tools;
+    inherit python;
+  };
+
   ipython = import ../shells/ipython {
     inherit (pkgs) stdenv fetchurl sip pyqt4;
     inherit buildPythonPackage pythonPackages;
@@ -121,6 +126,18 @@ pythonPackages = modules // import ./python-packages-generated.nix {
     inherit python buildPythonPackage pygobject pycairo;
   };
 
+  pyqt4 = import ../development/python-modules/pyqt/4.x.nix {
+    inherit (pkgs) stdenv fetchurl pkgconfig qt4 makeWrapper;
+    inherit (pkgs.xorg) lndir;
+    inherit python sip;
+    pythonDBus = dbus;
+  };
+
+  sip = import ../development/python-modules/sip {
+    inherit (pkgs) stdenv fetchurl;
+    inherit python;
+  };
+
   # packages defined here
 
   aafigure = buildPythonPackage rec {
@@ -1249,11 +1266,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   });
 
   darcsver = buildPythonPackage (rec {
-    name = "darcsver-1.7.2";
+    name = "darcsver-1.7.4";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/d/darcsver/${name}.tar.gz";
-      md5 = "94ca7e8c9ea0f69c0f3fc6f9fc88f65a";
+      sha256 = "1yb1c3jxqvy4r3qiwvnb86qi5plw6018h15r3yk5ji3nk54qdcb6";
     };
 
     buildInputs = [ pythonPackages.mock ];
@@ -4765,11 +4782,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   pycryptopp = buildPythonPackage (rec {
-    name = "pycryptopp-0.5.29";
+    name = "pycryptopp-0.6.0.1206569328141510525648634803928199668821045408958";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/p/pycryptopp/${name}.tar.gz";
-      sha256 = "d504775b73d30fb05a3237f83c4e9e1ff3312cbba90a4a23e6cbb7d32219502b";
+      sha256 = "0n90h1yg7bfvlbhnc54xb6dbqm286ykaksyg04kxlhyjgf8mhq8i";
     };
 
     # Prefer crypto++ library from the Nix store over the one that's included
@@ -5225,11 +5242,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   pymacs = pkgs.stdenv.mkDerivation rec {
-    version = "v0.25";
+    version = "0.25";
     name = "Pymacs-${version}";
 
     src = fetchurl {
-      url = "https://github.com/pinard/Pymacs/tarball/${version}";
+      url = "https://github.com/pinard/Pymacs/tarball/v${version}";
       name = "${name}.tar.gz";
       sha256 = "1hmy76c5igm95rqbld7gvk0az24smvc8hplfwx2f5rhn6frj3p2i";
     };
@@ -5329,11 +5346,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   pysqlite = buildPythonPackage (rec {
-    name = "pysqlite-2.5.5";
+    name = "pysqlite-2.6.3";
 
     src = fetchurl {
-      url = "http://pysqlite.googlecode.com/files/${name}.tar.gz";
-      sha256 = "ef7ca7f44893790e1a7084b10ea083770e138689406fddc7076d12d6bff4d44f";
+      url = "https://pypi.python.org/packages/source/p/pysqlite/${name}.tar.gz";
+      sha256 = "13djzgnbi71znjjyaw4nybg6smilgszcid646j5qav7mdchkb77y";
     };
 
     # Since the `.egg' file is zipped, the `NEEDED' of the `.so' files
@@ -6784,11 +6801,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
   });
 
   twisted = buildPythonPackage rec {
-    name = "twisted-10.2.0";
+    name = "twisted-13.2.0";
 
     src = fetchurl {
-      url = http://tmrc.mit.edu/mirror/twisted/Twisted/10.2/Twisted-10.2.0.tar.bz2;
-      sha256 = "110c30z622jn14yany1sxfaqj5qx20n9rc9zqacxlwma30fdcbjn";
+      url = "https://pypi.python.org/packages/source/T/Twisted/Twisted-13.2.0.tar.bz2";
+      sha256 = "1wrcqv5lvgwk2aq83qb2s2ng2vx14hbjjk2gc30cg6h1iiipal89";
     };
 
     propagatedBuildInputs = [ zope_interface ];
@@ -6809,7 +6826,7 @@ pythonPackages = modules // import ./python-packages-generated.nix {
         and licensed under the MIT license.
       '';
 
-      license = "MIT";
+      license = pkgs.lib.licenses.mit;
 
       maintainers = [ ];
     };
@@ -7222,11 +7239,11 @@ pythonPackages = modules // import ./python-packages-generated.nix {
 
 
   zfec = buildPythonPackage (rec {
-    name = "zfec-1.4.7";
+    name = "zfec-1.4.24";
 
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/z/zfec/${name}.tar.gz";
-      sha256 = "3335c9054f45e2c59188400e892634b68761b29d06f3cafe525c60484902d379";
+      sha256 = "1ks94zlpy7n8sb8380gf90gx85qy0p9073wi1wngg6mccxp9xsg3";
     };
 
     buildInputs = [ setuptoolsDarcs ];
@@ -8178,7 +8195,29 @@ pythonPackages = modules // import ./python-packages-generated.nix {
       description = "A logging replacement for Python";
       license = pkgs.lib.licenses.bsd3;
     };
- };
+  };
+
+  libvirt = pkgs.stdenv.mkDerivation rec {
+    name = "libvirt-python-${version}";
+    version = "1.2.0";
+
+    src = fetchurl {
+      url = "http://libvirt.org/sources/python/${name}.tar.gz";
+      sha256 = "0azml1yv9iqnpj4sdg1wwsa70q7kb06lv85p63qwyd8vrd0y7rrg";
+    };
+
+    buildInputs = [ python pkgs.pkgconfig pkgs.libvirt lxml ];
+
+    buildPhase = "python setup.py build";
+
+    installPhase = "python setup.py install --prefix=$out";
+
+    meta = {
+      homepage = http://www.libvirt.org/;
+      description = "libvirt Python bindings";
+      license = "LGPLv2";
+    };
+  };
 
 # python2.7 specific eggs
 } // pkgs.lib.optionalAttrs (python.majorVersion == "2.7") {
diff --git a/pkgs/top-level/release-cross.nix b/pkgs/top-level/release-cross.nix
index 3895ee26779..6871567ca8d 100644
--- a/pkgs/top-level/release-cross.nix
+++ b/pkgs/top-level/release-cross.nix
@@ -192,7 +192,7 @@ let
     arch = "i586";
     float = "hard";
     withTLS = true;
-    platform = pkgs.platforms.pc;
+    platform = pkgs.platforms.pc32;
     libc = "glibc";
     openssl.system = "hurd-x86";  # Nix depends on OpenSSL.
   };
diff --git a/pkgs/top-level/release-python.nix b/pkgs/top-level/release-python.nix
index fdf8a28fbca..f6da545c673 100644
--- a/pkgs/top-level/release-python.nix
+++ b/pkgs/top-level/release-python.nix
@@ -1081,8 +1081,6 @@ let
     acpi_call = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     atheros = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     ati_drivers_x11 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
-    aufs = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
-    aufs_util = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     bbswitch = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     broadcom_sta = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     cryptodev = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
@@ -1698,8 +1696,6 @@ let
   v8 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   vacuum = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   vala = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
-  vala15 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
-  vala16 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   valgrind = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   valkyrie = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   vde2 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };