summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-09-26 14:51:51 -0400
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-09-26 14:51:51 -0400
commitd5758c99a315faac7e0631ae4e7bd707095be3c1 (patch)
tree9177bc0c57faffe2d7fcbc562f43171f67c337eb /pkgs
parent3aae4ccffa8bdaea0bcc136c39fdc33729e76af3 (diff)
parente710915ffc681b06a61ab2257e44c1cd8abbd0ef (diff)
downloadnixlib-d5758c99a315faac7e0631ae4e7bd707095be3c1.tar
nixlib-d5758c99a315faac7e0631ae4e7bd707095be3c1.tar.gz
nixlib-d5758c99a315faac7e0631ae4e7bd707095be3c1.tar.bz2
nixlib-d5758c99a315faac7e0631ae4e7bd707095be3c1.tar.lz
nixlib-d5758c99a315faac7e0631ae4e7bd707095be3c1.tar.xz
nixlib-d5758c99a315faac7e0631ae4e7bd707095be3c1.tar.zst
nixlib-d5758c99a315faac7e0631ae4e7bd707095be3c1.zip
Merge remote-tracking branch 'origin/master' into x-updates
Conflicts:
	pkgs/misc/maven/maven-1.0.nix
	pkgs/os-specific/linux/xf86-input-wacom/default.nix
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/amarok/default.nix10
-rw-r--r--pkgs/applications/audio/amarok/find-mysql.patch46
-rw-r--r--pkgs/applications/audio/ardour/ardour3.nix6
-rw-r--r--pkgs/applications/audio/espeak/default.nix8
-rw-r--r--pkgs/applications/audio/espeak/edit.nix31
-rw-r--r--pkgs/applications/audio/flac/default.nix23
-rw-r--r--pkgs/applications/audio/jack-capture/default.nix28
-rw-r--r--pkgs/applications/audio/lastwatch/default.nix29
-rw-r--r--pkgs/applications/audio/linuxsampler/default.nix10
-rw-r--r--pkgs/applications/audio/linuxsampler/linuxsampler_lv2_sfz_fix.diff50
-rw-r--r--pkgs/applications/audio/ncmpcpp/default.nix2
-rw-r--r--pkgs/applications/audio/opus-tools/default.nix17
-rw-r--r--pkgs/applications/audio/picard/default.nix46
-rw-r--r--pkgs/applications/audio/praat/default.nix26
-rw-r--r--pkgs/applications/display-managers/slim/default.nix32
-rw-r--r--pkgs/applications/display-managers/slim/pam.patch89
-rw-r--r--pkgs/applications/display-managers/slim/pam2.patch20
-rw-r--r--pkgs/applications/editors/aewan/default.nix19
-rw-r--r--pkgs/applications/editors/eclipse/default.nix16
-rw-r--r--pkgs/applications/editors/emacs-24/default.nix4
-rw-r--r--pkgs/applications/editors/emacs-modes/auto-complete/default.nix30
-rw-r--r--pkgs/applications/editors/emacs-modes/coffee/default.nix30
-rw-r--r--pkgs/applications/editors/emacs-modes/color-theme/default.nix26
-rw-r--r--pkgs/applications/editors/emacs-modes/color-theme/fix-build.patch19
-rw-r--r--pkgs/applications/editors/emacs-modes/color-theme/gnus-bug.diff28
-rw-r--r--pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix32
-rw-r--r--pkgs/applications/editors/emacs-modes/gh/default.nix31
-rw-r--r--pkgs/applications/editors/emacs-modes/gist/default.nix36
-rw-r--r--pkgs/applications/editors/emacs-modes/haskell/default.nix6
-rw-r--r--pkgs/applications/editors/emacs-modes/htmlize/default.nix4
-rw-r--r--pkgs/applications/editors/emacs-modes/jade/default.nix30
-rw-r--r--pkgs/applications/editors/emacs-modes/js2/default.nix6
-rw-r--r--pkgs/applications/editors/emacs-modes/logito/default.nix30
-rw-r--r--pkgs/applications/editors/emacs-modes/lorem-ipsum/default.nix32
-rw-r--r--pkgs/applications/editors/emacs-modes/magit/default.nix22
-rw-r--r--pkgs/applications/editors/emacs-modes/org/default.nix26
-rw-r--r--pkgs/applications/editors/emacs-modes/org2blog/default.nix31
-rw-r--r--pkgs/applications/editors/emacs-modes/pcache/default.nix30
-rw-r--r--pkgs/applications/editors/emacs-modes/rect-mark/default.nix32
-rw-r--r--pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix30
-rw-r--r--pkgs/applications/editors/emacs-modes/xml-rpc/default.nix32
-rw-r--r--pkgs/applications/editors/hexedit/default.nix19
-rw-r--r--pkgs/applications/editors/joe/default.nix9
-rw-r--r--pkgs/applications/editors/kdevelop/default.nix12
-rw-r--r--pkgs/applications/editors/vim/configurable.nix14
-rw-r--r--pkgs/applications/graphics/geeqie/default.nix4
-rw-r--r--pkgs/applications/graphics/gimp/2.8.nix4
-rw-r--r--pkgs/applications/graphics/gimp/default.nix8
-rw-r--r--pkgs/applications/graphics/meshlab/default.nix13
-rw-r--r--pkgs/applications/graphics/rapcad/default.nix26
-rw-r--r--pkgs/applications/misc/blender/default.nix4
-rw-r--r--pkgs/applications/misc/calibre/default.nix2
-rw-r--r--pkgs/applications/misc/girara/default.nix26
-rw-r--r--pkgs/applications/misc/gpsbabel/default.nix26
-rw-r--r--pkgs/applications/misc/grass/default.nix52
-rw-r--r--pkgs/applications/misc/gxneur/default.nix24
-rw-r--r--pkgs/applications/misc/ikiwiki/default.nix15
-rw-r--r--pkgs/applications/misc/lyx/default.nix19
-rw-r--r--pkgs/applications/misc/mathblog/default.nix21
-rw-r--r--pkgs/applications/misc/st/default.nix23
-rw-r--r--pkgs/applications/misc/surf/default.nix4
-rw-r--r--pkgs/applications/misc/xpdf/default.nix4
-rw-r--r--pkgs/applications/misc/zathura/builder.sh11
-rw-r--r--pkgs/applications/misc/zathura/core/default.nix29
-rw-r--r--pkgs/applications/misc/zathura/default.nix64
-rw-r--r--pkgs/applications/misc/zathura/djvu/default.nix28
-rw-r--r--pkgs/applications/misc/zathura/djvu/gtkflags.patch23
-rw-r--r--pkgs/applications/misc/zathura/pdf-poppler/default.nix25
-rw-r--r--pkgs/applications/misc/zathura/ps/default.nix28
-rw-r--r--pkgs/applications/misc/zathura/ps/gtkflags.patch25
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix106
-rw-r--r--pkgs/applications/networking/browsers/chromium/enable_seccomp22.patch20
-rw-r--r--pkgs/applications/networking/browsers/chromium/sources.nix19
-rwxr-xr-xpkgs/applications/networking/browsers/chromium/update.sh103
-rw-r--r--pkgs/applications/networking/browsers/firefox/12.0.nix6
-rw-r--r--pkgs/applications/networking/browsers/firefox/13.0.nix6
-rw-r--r--pkgs/applications/networking/browsers/firefox/15.0.nix179
-rw-r--r--pkgs/applications/networking/browsers/firefox/3.6.nix6
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix28
-rw-r--r--pkgs/applications/networking/browsers/rekonq/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/w3m/default.nix14
-rw-r--r--pkgs/applications/networking/cluster/hadoop/default.nix51
-rw-r--r--pkgs/applications/networking/esniper/default.nix10
-rw-r--r--pkgs/applications/networking/esniper/find-ca-bundle.patch26
-rw-r--r--pkgs/applications/networking/instant-messengers/baresip/default.nix45
-rw-r--r--pkgs/applications/networking/instant-messengers/gajim/default.nix16
-rw-r--r--pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix45
-rw-r--r--pkgs/applications/networking/instant-messengers/tkabber-plugins/default.nix9
-rw-r--r--pkgs/applications/networking/instant-messengers/tkabber/default.nix22
-rw-r--r--pkgs/applications/networking/instant-messengers/vacuum/default.nix4
-rw-r--r--pkgs/applications/networking/irc/ii/default.nix20
-rw-r--r--pkgs/applications/networking/irc/konversation/default.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/notmuch/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/11.x.nix2
-rw-r--r--pkgs/applications/networking/netperf/default.nix14
-rw-r--r--pkgs/applications/networking/p2p/ktorrent/default.nix6
-rw-r--r--pkgs/applications/networking/p2p/ktorrent/drop-taskmanager-dependency.patch175
-rw-r--r--pkgs/applications/networking/p2p/mldonkey/default.nix8
-rw-r--r--pkgs/applications/networking/sniffers/kismet/default.nix6
-rw-r--r--pkgs/applications/networking/sync/unison/default.nix7
-rw-r--r--pkgs/applications/networking/umurmur/default.nix20
-rw-r--r--pkgs/applications/networking/vnstat/default.nix8
-rw-r--r--pkgs/applications/networking/yafc/default.nix7
-rw-r--r--pkgs/applications/office/calligra/default.nix8
-rw-r--r--pkgs/applications/office/openoffice/generate-libreoffice-srcs.sh22
-rw-r--r--pkgs/applications/office/openoffice/libreoffice-srcs.nix592
-rw-r--r--pkgs/applications/office/openoffice/libreoffice.nix157
-rw-r--r--pkgs/applications/office/scribus/default.nix21
-rw-r--r--pkgs/applications/office/skrooge/default.nix4
-rw-r--r--pkgs/applications/science/astronomy/stellarium/default.nix4
-rw-r--r--pkgs/applications/science/electronics/gtkwave/default.nix4
-rw-r--r--pkgs/applications/science/logic/coq/8.3.nix69
-rw-r--r--pkgs/applications/science/logic/coq/configure.8.3.patch1112
-rw-r--r--pkgs/applications/science/logic/coq/configure.patch1101
-rw-r--r--pkgs/applications/science/logic/coq/default.nix46
-rw-r--r--pkgs/applications/science/logic/isabelle/default.nix8
-rw-r--r--pkgs/applications/science/logic/ssreflect/default.nix15
-rw-r--r--pkgs/applications/science/logic/ssreflect/static.patch40
-rw-r--r--pkgs/applications/version-management/bazaar/default.nix1
-rw-r--r--pkgs/applications/version-management/darcs/default.nix8
-rw-r--r--pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix79
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix20
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-annex/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix10
-rw-r--r--pkgs/applications/version-management/git-and-tools/tig/default.nix19
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix6
-rw-r--r--pkgs/applications/version-management/mr/default.nix21
-rw-r--r--pkgs/applications/version-management/veracity/default.nix2
-rw-r--r--pkgs/applications/version-management/veracity/src-for-default.nix10
-rw-r--r--pkgs/applications/video/MPlayer/default.nix2
-rw-r--r--pkgs/applications/video/bangarang/default.nix9
-rw-r--r--pkgs/applications/video/kdenlive/default.nix4
-rw-r--r--pkgs/applications/video/vlc/default.nix4
-rw-r--r--pkgs/applications/virtualization/virt-manager/custom_runner.py13
-rw-r--r--pkgs/applications/virtualization/virt-manager/default.nix127
-rw-r--r--pkgs/applications/virtualization/virtinst/default.nix8
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix72
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix67
-rw-r--r--pkgs/applications/virtualization/xen/default.nix22
-rw-r--r--pkgs/applications/virtualization/xen/gcc-4.5.patch39
-rw-r--r--pkgs/applications/window-managers/awesome/cmake284.patch40
-rw-r--r--pkgs/applications/window-managers/awesome/default.nix10
-rw-r--r--pkgs/applications/window-managers/trayer/default.nix4
-rw-r--r--pkgs/applications/window-managers/xmonad/default.nix1
-rw-r--r--pkgs/applications/window-managers/xmonad/xmonad-extras.nix5
-rwxr-xr-xpkgs/build-support/buildenv/builder.pl4
-rw-r--r--pkgs/build-support/cabal/default.nix5
-rw-r--r--pkgs/build-support/fetchhg/default.nix2
-rw-r--r--pkgs/build-support/fetchurl/default.nix32
-rw-r--r--pkgs/build-support/fetchurl/mirrors.nix6
-rw-r--r--pkgs/build-support/gcc-wrapper/buildergo.sh194
-rw-r--r--pkgs/build-support/gcc-wrapper/default.nix11
-rw-r--r--pkgs/build-support/release/ant-build.nix13
-rw-r--r--pkgs/build-support/release/binary-tarball.nix8
-rw-r--r--pkgs/build-support/release/debian-build.nix15
-rw-r--r--pkgs/build-support/release/functions.sh14
-rw-r--r--pkgs/build-support/release/nix-build.nix8
-rw-r--r--pkgs/build-support/release/rpm-build.nix18
-rw-r--r--pkgs/build-support/source-from-head-fun.nix6
-rw-r--r--pkgs/build-support/vm/deb/deb-closure.pl13
-rw-r--r--pkgs/build-support/vm/default.nix287
-rw-r--r--pkgs/data/documentation/man-pages/default.nix4
-rw-r--r--pkgs/data/fonts/lmodern/lmmath.nix30
-rw-r--r--pkgs/data/misc/hicolor-icon-theme/default.nix1
-rw-r--r--pkgs/data/misc/mobile-broadband-provider-info/default.nix6
-rw-r--r--pkgs/data/misc/shared-desktop-ontologies/default.nix4
-rw-r--r--pkgs/data/misc/tzdata/default.nix33
-rw-r--r--pkgs/desktops/gnome-2/bindings/gnome-python/default.nix7
-rw-r--r--pkgs/desktops/gnome-2/default.nix4
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-icon-theme/default.nix12
-rw-r--r--pkgs/desktops/kde-4.7/kde-workspace.nix2
-rw-r--r--pkgs/desktops/kde-4.7/kdelibs.nix4
-rw-r--r--pkgs/desktops/kde-4.8/support/akonadi/default.nix4
-rw-r--r--pkgs/desktops/xfce-4.6/applications/mousepad.nix18
-rw-r--r--pkgs/desktops/xfce-4.6/applications/ristretto.nix24
-rw-r--r--pkgs/desktops/xfce-4.6/applications/terminal.nix23
-rw-r--r--pkgs/desktops/xfce-4.6/applications/xfce4-mixer.nix38
-rw-r--r--pkgs/desktops/xfce-4.6/applications/xfce4-power-manager.nix24
-rw-r--r--pkgs/desktops/xfce-4.6/art/xfce4-icon-theme.nix17
-rw-r--r--pkgs/desktops/xfce-4.6/core/exo.nix21
-rw-r--r--pkgs/desktops/xfce-4.6/core/gtk-xfce-engine.nix19
-rw-r--r--pkgs/desktops/xfce-4.6/core/libxfce4menu.nix18
-rw-r--r--pkgs/desktops/xfce-4.6/core/libxfce4util.nix18
-rw-r--r--pkgs/desktops/xfce-4.6/core/libxfcegui4.nix29
-rw-r--r--pkgs/desktops/xfce-4.6/core/thunar.nix25
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfce-utils.nix20
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfce4-panel.nix24
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfce4-session.nix22
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfce4-settings.nix24
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfconf.nix20
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfdesktop.nix22
-rw-r--r--pkgs/desktops/xfce-4.6/core/xfwm4.nix23
-rw-r--r--pkgs/desktops/xfce-4.6/default.nix66
-rw-r--r--pkgs/desktops/xfce-4.8/support/gvfs.nix4
-rw-r--r--pkgs/development/compilers/dev86/default.nix6
-rw-r--r--pkgs/development/compilers/gcc/4.5/default.nix2
-rw-r--r--pkgs/development/compilers/gcc/4.5/sources.nix14
-rw-r--r--pkgs/development/compilers/gcc/4.7/builder.sh249
-rw-r--r--pkgs/development/compilers/gcc/4.7/default.nix452
-rw-r--r--pkgs/development/compilers/gcc/4.7/gfortran-driving.patch20
-rw-r--r--pkgs/development/compilers/gcc/4.7/gnat-cflags.patch33
-rw-r--r--pkgs/development/compilers/gcc/4.7/hurd-sigrtmin.patch14
-rw-r--r--pkgs/development/compilers/gcc/4.7/java-jvgenmain-link.patch17
-rw-r--r--pkgs/development/compilers/gcc/4.7/libstdc++-target.patch32
-rw-r--r--pkgs/development/compilers/gcc/4.7/no-sys-dirs.patch41
-rw-r--r--pkgs/development/compilers/ghc/7.4.2-binary.nix97
-rw-r--r--pkgs/development/compilers/ghc/7.6.1.nix55
-rw-r--r--pkgs/development/compilers/ghc/head.nix5
-rw-r--r--pkgs/development/compilers/ghc/with-packages.nix5
-rw-r--r--pkgs/development/compilers/ghc/wrapper.nix16
-rw-r--r--pkgs/development/compilers/go/cacert.patch15
-rw-r--r--pkgs/development/compilers/go/default.nix81
-rw-r--r--pkgs/development/compilers/idris/default.nix10
-rw-r--r--pkgs/development/compilers/jdk/builder.sh34
-rw-r--r--pkgs/development/compilers/jdk/default-1.4.nix9
-rw-r--r--pkgs/development/compilers/jdk/default-5.nix9
-rw-r--r--pkgs/development/compilers/jdk/default.nix2
-rw-r--r--pkgs/development/compilers/jdk/ibm-builder.sh29
-rw-r--r--pkgs/development/compilers/jdk/j2sdk-1.4.x-sun-linux.nix24
-rw-r--r--pkgs/development/compilers/jdk/jdk5-ibm-powerpc-linux.nix17
-rw-r--r--pkgs/development/compilers/jdk/jdk5-oracle-linux.nix36
-rw-r--r--pkgs/development/compilers/jdk/jdk6-cygwin.nix4
-rw-r--r--pkgs/development/compilers/jdk/jdk6-linux.nix4
-rw-r--r--pkgs/development/compilers/julia/default.nix88
-rw-r--r--pkgs/development/compilers/mono/default.nix3
-rw-r--r--pkgs/development/compilers/ocaml/3.12.1.nix8
-rw-r--r--pkgs/development/compilers/ocaml/4.00.0.nix63
-rw-r--r--pkgs/development/compilers/openjdk/bootstrap.nix21
-rw-r--r--pkgs/development/compilers/openjdk/default.nix18
-rw-r--r--pkgs/development/compilers/openjdk/make-bootstrap.nix26
-rw-r--r--pkgs/development/compilers/pakcs/default.nix2
-rw-r--r--pkgs/development/compilers/polyml/default.nix11
-rw-r--r--pkgs/development/compilers/sbcl/src-for-default.nix10
-rw-r--r--pkgs/development/compilers/scala/default.nix6
-rw-r--r--pkgs/development/compilers/uhc/default.nix1
-rw-r--r--pkgs/development/compilers/urweb/default.nix6
-rw-r--r--pkgs/development/eclipse/ecj/default.nix8
-rw-r--r--pkgs/development/interpreters/guile/default.nix25
-rw-r--r--pkgs/development/interpreters/octave/default.nix4
-rw-r--r--pkgs/development/interpreters/octave/hg.nix8
-rw-r--r--pkgs/development/interpreters/php/5.2.nix34
-rw-r--r--pkgs/development/interpreters/php/5.3.nix43
-rw-r--r--pkgs/development/interpreters/ruby/libs.nix4
-rw-r--r--pkgs/development/interpreters/tcl/default.nix1
-rw-r--r--pkgs/development/libraries/babl/0_0_22.nix16
-rw-r--r--pkgs/development/libraries/boost/1.51-headers.nix (renamed from pkgs/development/libraries/boost/1.50-headers.nix)8
-rw-r--r--pkgs/development/libraries/boost/1.51.nix (renamed from pkgs/development/libraries/boost/1.50.nix)6
-rw-r--r--pkgs/development/libraries/bwidget/default.nix16
-rw-r--r--pkgs/development/libraries/celt/0.5.1.nix46
-rw-r--r--pkgs/development/libraries/clucene-core/2.x.nix27
-rw-r--r--pkgs/development/libraries/clucene-core/Fix-pkgconfig-file-by-adding-clucene-shared-library.patch19
-rw-r--r--pkgs/development/libraries/clucene-core/Fixing_ZLIB_configuration_in_shared_CMakeLists.patch20
-rw-r--r--pkgs/development/libraries/clucene-core/Install-contribs-lib.patch49
-rw-r--r--pkgs/development/libraries/cyrus-sasl/default.nix5
-rw-r--r--pkgs/development/libraries/dxflib/default.nix17
-rw-r--r--pkgs/development/libraries/farstream/default.nix10
-rw-r--r--pkgs/development/libraries/fftw/default.nix18
-rw-r--r--pkgs/development/libraries/freeimage/default.nix6
-rw-r--r--pkgs/development/libraries/gegl/0_0_22.nix21
-rw-r--r--pkgs/development/libraries/glib/2.32.x.nix8
-rw-r--r--pkgs/development/libraries/gnutls/default.nix31
-rw-r--r--pkgs/development/libraries/gnutls/guile-gnulib-includes.patch17
-rw-r--r--pkgs/development/libraries/haskell/Agda/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/AspectAG/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/Cabal/1.16.0.nix15
-rw-r--r--pkgs/development/libraries/haskell/Chart/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/CouchDB/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/Crypto/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/GLUT/2.3.0.0.nix6
-rw-r--r--pkgs/development/libraries/haskell/Graphalyze/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/HStringTemplate/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/HTTP/4000.2.5.nix15
-rw-r--r--pkgs/development/libraries/haskell/HUnit/1.2.5.1.nix (renamed from pkgs/development/libraries/haskell/HUnit/1.2.5.0.nix)4
-rw-r--r--pkgs/development/libraries/haskell/HsOpenSSL/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/JuicyPixels/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/ListLike/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/MissingH/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/MonadRandom/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/2.5.1.1.nix (renamed from pkgs/development/libraries/haskell/QuickCheck/2.5.nix)8
-rw-r--r--pkgs/development/libraries/haskell/RepLib/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/SDL/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/Shellac/Shellac-haskeline.nix17
-rw-r--r--pkgs/development/libraries/haskell/Shellac/Shellac-readline.nix14
-rw-r--r--pkgs/development/libraries/haskell/Vec/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/X11/1.6.0.2.nix (renamed from pkgs/development/libraries/haskell/X11/1.6.0.nix)8
-rw-r--r--pkgs/development/libraries/haskell/abstract-deque/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/accelerate-cuda/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/accelerate-examples/default.nix2
-rw-r--r--pkgs/development/libraries/haskell/active/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/arrows/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/asn1-data/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/async/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/attoparsec-binary/attoparsec-binary-ghc7.6.1.patch20
-rw-r--r--pkgs/development/libraries/haskell/attoparsec-binary/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/attoparsec-conduit/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/attoparsec/enumerator.nix4
-rw-r--r--pkgs/development/libraries/haskell/authenticate/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/base64-bytestring/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/benchpress/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/binary/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/blaze-builder-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/blaze-html/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/blaze-markup/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/blaze-textual/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/bmp/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cabal-file-th/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/case-insensitive/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/certificate/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.1.8.3.nix (renamed from pkgs/development/libraries/haskell/cgi/3001.1.8.2.nix)4
-rw-r--r--pkgs/development/libraries/haskell/cipher-aes/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/clientsession/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cmdargs/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/comonad-transformers/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/comonad/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/configurator/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/contravariant/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/cookie/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cprng-aes/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/criterion/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/crypto-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/cuda/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/data-accessor/data-accessor.nix4
-rw-r--r--pkgs/development/libraries/haskell/data-default/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/data-lens-template/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/data-lens/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/date-cache/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/deepseq/1.3.0.1.nix (renamed from pkgs/development/libraries/haskell/deepseq/1.3.0.0.nix)4
-rw-r--r--pkgs/development/libraries/haskell/derive/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/diagrams/cairo.nix19
-rw-r--r--pkgs/development/libraries/haskell/diagrams/core.nix18
-rw-r--r--pkgs/development/libraries/haskell/diagrams/diagrams.nix15
-rw-r--r--pkgs/development/libraries/haskell/diagrams/lib.nix19
-rw-r--r--pkgs/development/libraries/haskell/digestive-functors-heist/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/digestive-functors-snap/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/digestive-functors/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/directory-tree/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/distributive/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/double-conversion/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/dstring/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/explicit-exception/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/fast-logger/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/fclabels/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/file-embed/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/filepath/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/filestore/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/filesystem-conduit/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/fingertree/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/flexible-defaults/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/funcmp/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/generic-deriving/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/ghc-events/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/ghc-syb-utils/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/gitit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/gloss/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/glpk-hs/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/graphviz/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hackage-db/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/hakyll/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/hamlet/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/happstack/happstack-hamlet.nix1
-rw-r--r--pkgs/development/libraries/haskell/happstack/happstack-server.nix11
-rw-r--r--pkgs/development/libraries/haskell/happstack/happstack-util.nix4
-rw-r--r--pkgs/development/libraries/haskell/hashable/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hashed-storage/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hashtables/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/haskeline/0.6.4.7.nix (renamed from pkgs/development/libraries/haskell/haskeline/default.nix)0
-rw-r--r--pkgs/development/libraries/haskell/haskeline/0.7.0.3.nix16
-rw-r--r--pkgs/development/libraries/haskell/haskell-src-exts/1.13.5.nix (renamed from pkgs/development/libraries/haskell/haskell-src-exts/1.13.3.nix)4
-rw-r--r--pkgs/development/libraries/haskell/haskell-src-meta/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/hastache/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/heist/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/hfuse/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/highlighting-kate/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hledger-lib/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/hledger/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/hmatrix/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hoauth/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hoogle/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hopenssl/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/hscolour/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hsdns/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/hsemail/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/hspec-expectations/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/hspec/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/html-conduit/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/http-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/http-types/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/instant-generics/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/io-choice/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/irc/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/iteratee/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/json/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/language-c-quote/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/largeword/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/liblastfm/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/lifted-base/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/logict/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/lrucache/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/mainland-pretty/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/math-functions/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/mime-mail/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/monad-logger/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/monads-tf/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/multiplate/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/multirec/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/murmur-hash/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/mwc-random/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/network-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/network/2.4.0.1.nix (renamed from pkgs/development/libraries/haskell/network/2.3.0.14.nix)6
-rw-r--r--pkgs/development/libraries/haskell/newtype/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/pandoc/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/path-pieces/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/pathtype/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/persistent-postgresql/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/persistent-sqlite/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/persistent-template/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/persistent/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/pool-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/postgresql-libpq/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/postgresql-simple/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/process-extras/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/pureMD5/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/pwstore-fast/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/reactive-banana-wx/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/reactive-banana/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/readline/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/regular/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/repa-algorithms/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/repa-examples/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/repa-io/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/repa/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/repr/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/resource-pool/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/resourcet/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/semigroupoids/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/semigroups/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/shakespeare-css/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/shakespeare-js/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/shakespeare-text/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/shakespeare/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/shelly/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/silently/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/simple-sendfile/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/skein/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/snap/core.nix20
-rw-r--r--pkgs/development/libraries/haskell/snap/loader-dynamic.nix14
-rw-r--r--pkgs/development/libraries/haskell/snap/loader-static.nix13
-rw-r--r--pkgs/development/libraries/haskell/snap/server.nix17
-rw-r--r--pkgs/development/libraries/haskell/snap/snap.nix28
-rw-r--r--pkgs/development/libraries/haskell/socks/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/split/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/srcloc/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/statistics/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/streamproc/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/string-combinators/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/strptime/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/stylish-haskell/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/syb/syb-with-class.nix4
-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/tagged/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/tagsoup/0.10.1nix16
-rw-r--r--pkgs/development/libraries/haskell/tagsoup/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/tagstream-conduit/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/terminfo/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/test-framework/0.5.nix22
-rw-r--r--pkgs/development/libraries/haskell/test-framework/default.nix (renamed from pkgs/development/libraries/haskell/test-framework/0.6.nix)4
-rw-r--r--pkgs/development/libraries/haskell/texmath/0.4.nix17
-rw-r--r--pkgs/development/libraries/haskell/texmath/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/text/0.11.2.3.nix (renamed from pkgs/development/libraries/haskell/text/0.11.2.2.nix)4
-rw-r--r--pkgs/development/libraries/haskell/th-orphans/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/threadmanager/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/threads/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/tls/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/unbound/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/unix-compat/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/unix-time/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/unordered-containers/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/urlencoded/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/uu-parsinglib/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/vacuum/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/vault/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/vcs-revision/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/vector-algorithms/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/vector-space-points/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/vector-space/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/void/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/wai-app-static/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/wai-extra/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/wai-logger/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/wai-test/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/wai/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/warp/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/wl-pprint-text/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/xml-conduit/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/xml-types/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/xmlhtml/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/yaml/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-auth/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-core/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/yesod-default/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/yesod-form/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/yesod-json/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-persistent/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-routes/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-static/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/yesod-test/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/yesod/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/zipper/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/zlib-bindings/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/zlib-conduit/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/zlib-enum/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/zlib/0.5.3.3.nix1
-rw-r--r--pkgs/development/libraries/haskell/zlib/0.5.4.0.nix14
-rw-r--r--pkgs/development/libraries/hunspell/default.nix4
-rw-r--r--pkgs/development/libraries/java/rhino/default.nix2
-rw-r--r--pkgs/development/libraries/kdevplatform/default.nix6
-rw-r--r--pkgs/development/libraries/libcdr/default.nix22
-rw-r--r--pkgs/development/libraries/libextractor/default.nix2
-rw-r--r--pkgs/development/libraries/libexttextcat/default.nix18
-rw-r--r--pkgs/development/libraries/libexttextcat/memory-leaks.patch37
-rw-r--r--pkgs/development/libraries/libgpg-error/default.nix17
-rw-r--r--pkgs/development/libraries/libical/default.nix15
-rw-r--r--pkgs/development/libraries/libical/respect-env-tzdir.patch32
-rw-r--r--pkgs/development/libraries/libjpeg-turbo/default.nix14
-rw-r--r--pkgs/development/libraries/libktorrent/default.nix6
-rw-r--r--pkgs/development/libraries/liblockfile/default.nix30
-rw-r--r--pkgs/development/libraries/libopus/default.nix18
-rw-r--r--pkgs/development/libraries/libre/default.nix23
-rw-r--r--pkgs/development/libraries/librem/default.nix24
-rw-r--r--pkgs/development/libraries/libspectre/0001-Fix-a-crash-with-documents-containing-an-invalid-Pag.patch29
-rw-r--r--pkgs/development/libraries/libspectre/0002-Allocate-at-least-1-page-in-doc-pages.patch38
-rw-r--r--pkgs/development/libraries/libspectre/default.nix2
-rw-r--r--pkgs/development/libraries/libvisio/default.nix21
-rw-r--r--pkgs/development/libraries/mdds/default.nix16
-rw-r--r--pkgs/development/libraries/mpich2/default.nix2
-rw-r--r--pkgs/development/libraries/mythes/default.nix19
-rw-r--r--pkgs/development/libraries/nettle/default.nix12
-rw-r--r--pkgs/development/libraries/nspr/default.nix6
-rw-r--r--pkgs/development/libraries/nss/default.nix127
-rw-r--r--pkgs/development/libraries/nss/nix_secload_fixup.patch50
-rw-r--r--pkgs/development/libraries/opencv/default.nix4
-rw-r--r--pkgs/development/libraries/openssl/default.nix13
-rw-r--r--pkgs/development/libraries/openssl/kfreebsd-gnu.patch36
-rw-r--r--pkgs/development/libraries/pcre/8.30.nix38
-rw-r--r--pkgs/development/libraries/polkit/default.nix20
-rw-r--r--pkgs/development/libraries/protobufc/default.nix22
-rw-r--r--pkgs/development/libraries/qoauth/default.nix25
-rw-r--r--pkgs/development/libraries/readline/readline-6.2-patches.nix2
-rw-r--r--pkgs/development/libraries/sbc/default.nix22
-rw-r--r--pkgs/development/libraries/science/math/liblapack/default.nix6
-rw-r--r--pkgs/development/libraries/science/math/openblas/default.nix36
-rw-r--r--pkgs/development/libraries/soprano/default.nix4
-rw-r--r--pkgs/development/libraries/spandsp/default.nix18
-rw-r--r--pkgs/development/libraries/spice-protocol/default.nix19
-rw-r--r--pkgs/development/libraries/spice/default.nix46
-rw-r--r--pkgs/development/libraries/sqlite/default.nix8
-rw-r--r--pkgs/development/libraries/srtp/default.nix8
-rw-r--r--pkgs/development/libraries/suitesparse/default.nix11
-rw-r--r--pkgs/development/libraries/suitesparse/disable-metis.patch130
-rw-r--r--pkgs/development/libraries/tclgpg/default.nix37
-rw-r--r--pkgs/development/libraries/tcllib/default.nix12
-rw-r--r--pkgs/development/libraries/tcltls/default.nix12
-rw-r--r--pkgs/development/libraries/v8/default.nix37
-rw-r--r--pkgs/development/libraries/webkit/gtk2.nix4
-rw-r--r--pkgs/development/ocaml-modules/extlib/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/extlib/hashtable-ocaml4-compat.patch12
-rw-r--r--pkgs/development/ocaml-modules/ocamlgraph/default.nix14
-rw-r--r--pkgs/development/ocaml-modules/ocamlmake/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/sexplib/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/sexplib/sexplib-7.0.5-patch-ocamlbuild-ocaml4.patch29
-rw-r--r--pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix4
-rw-r--r--pkgs/development/perl-modules/DBD-Pg/default.nix18
-rw-r--r--pkgs/development/perl-modules/DBD-SQLite/default.nix25
-rw-r--r--pkgs/development/perl-modules/DB_File/default.nix10
-rw-r--r--pkgs/development/python-modules/pyopenssl/default.nix6
-rw-r--r--pkgs/development/tools/analysis/valgrind/default.nix4
-rw-r--r--pkgs/development/tools/boomerang/default.nix30
-rw-r--r--pkgs/development/tools/boomerang/dlopen_path.patch13
-rw-r--r--pkgs/development/tools/documentation/haddock/2.11.0.nix18
-rw-r--r--pkgs/development/tools/documentation/haddock/2.12.0.nix18
-rw-r--r--pkgs/development/tools/documentation/haddock/2.7.2.nix5
-rw-r--r--pkgs/development/tools/documentation/haddock/2.9.2.nix1
-rw-r--r--pkgs/development/tools/haskell/SourceGraph/default.nix4
-rw-r--r--pkgs/development/tools/haskell/cabal2nix/default.nix4
-rw-r--r--pkgs/development/tools/haskell/hlint/default.nix4
-rw-r--r--pkgs/development/tools/haskell/hslogger/default.nix4
-rw-r--r--pkgs/development/tools/haskell/jailbreak-cabal/default.nix17
-rw-r--r--pkgs/development/tools/haskell/splot/default.nix21
-rw-r--r--pkgs/development/tools/haskell/timeplot/default.nix23
-rw-r--r--pkgs/development/tools/misc/autobuild/default.nix2
-rw-r--r--pkgs/development/tools/misc/coccinelle/default.nix19
-rw-r--r--pkgs/development/tools/misc/cscope/default.nix6
-rw-r--r--pkgs/development/tools/misc/frama-c/0007-Port-to-OCamlgraph-1.8.2.patch64
-rw-r--r--pkgs/development/tools/misc/frama-c/default.nix67
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix4
-rw-r--r--pkgs/development/tools/misc/gdb/pstack.nix11
-rw-r--r--pkgs/development/tools/misc/patchelf/unstable.nix16
-rw-r--r--pkgs/development/tools/misc/strace/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/findlib/default.nix6
-rw-r--r--pkgs/development/tools/parsing/Ebnf2ps/default.nix4
-rw-r--r--pkgs/development/tools/parsing/bison/bison-2.6.nix41
-rw-r--r--pkgs/development/tools/parsing/happy/1.18.10.nix18
-rw-r--r--pkgs/development/web/nodejs/build-node-package.nix50
-rw-r--r--pkgs/development/web/nodejs/default.nix13
-rw-r--r--pkgs/games/fsg/default.nix3
-rw-r--r--pkgs/games/minecraft/default.nix6
-rw-r--r--pkgs/games/oilrush/default.nix7
-rw-r--r--pkgs/games/warsow/default.nix29
-rw-r--r--pkgs/lib/attrsets.nix31
-rw-r--r--pkgs/lib/debug.nix2
-rw-r--r--pkgs/lib/licenses.nix6
-rw-r--r--pkgs/lib/lists.nix89
-rw-r--r--pkgs/lib/misc.nix20
-rw-r--r--pkgs/lib/modules.nix14
-rw-r--r--pkgs/lib/options.nix16
-rw-r--r--pkgs/lib/strings.nix16
-rw-r--r--pkgs/lib/tests.nix36
-rw-r--r--pkgs/lib/types.nix2
-rw-r--r--pkgs/misc/emulators/wine/default.nix4
-rw-r--r--pkgs/misc/ghostscript/default.nix16
-rw-r--r--pkgs/misc/lilypond/default.nix28
-rw-r--r--pkgs/misc/maven/3.0.nix15
-rw-r--r--pkgs/misc/maven/default.nix6
-rw-r--r--pkgs/misc/maven/maven-1.0.nix15
-rw-r--r--pkgs/os-specific/linux/acpi-call/default.nix11
-rw-r--r--pkgs/os-specific/linux/alsa-utils/default.nix13
-rw-r--r--pkgs/os-specific/linux/atop/default.nix39
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/default.nix12
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/license.patch12
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/linux-3.4.patch12
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/mutex-sema.patch12
-rw-r--r--pkgs/os-specific/linux/busybox/default.nix4
-rw-r--r--pkgs/os-specific/linux/cifs-utils/default.nix10
-rw-r--r--pkgs/os-specific/linux/conky/curl-types-h.patch25
-rw-r--r--pkgs/os-specific/linux/conky/default.nix20
-rw-r--r--pkgs/os-specific/linux/conky/stdbool.patch12
-rw-r--r--pkgs/os-specific/linux/cryptodev/default.nix29
-rw-r--r--pkgs/os-specific/linux/cryptsetup/default.nix10
-rw-r--r--pkgs/os-specific/linux/dstat/default.nix27
-rw-r--r--pkgs/os-specific/linux/firmware/amd-ucode/default.nix4
-rw-r--r--pkgs/os-specific/linux/firmware/ipw2100/default.nix5
-rw-r--r--pkgs/os-specific/linux/firmware/ipw2200/default.nix3
-rw-r--r--pkgs/os-specific/linux/firmware/iwlwifi-2030-ucode/default.nix29
-rw-r--r--pkgs/os-specific/linux/firmware/rt73/default.nix26
-rw-r--r--pkgs/os-specific/linux/gogoclient/default.nix4
-rw-r--r--pkgs/os-specific/linux/hostapd/default.nix15
-rw-r--r--pkgs/os-specific/linux/iw/default.nix24
-rw-r--r--pkgs/os-specific/linux/kbd/default.nix31
-rw-r--r--pkgs/os-specific/linux/kernel/builder.sh4
-rw-r--r--pkgs/os-specific/linux/kernel/generic.nix13
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.0.nix10
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.1.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.2.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.3.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.4.nix7
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.5.nix264
-rw-r--r--pkgs/os-specific/linux/kernel/manual-config.nix167
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix61
-rw-r--r--pkgs/os-specific/linux/kernel/perf-3.5.patch17
-rw-r--r--pkgs/os-specific/linux/kernel/perf.nix2
-rw-r--r--pkgs/os-specific/linux/kmod/default.nix4
-rw-r--r--pkgs/os-specific/linux/libcap/default.nix17
-rw-r--r--pkgs/os-specific/linux/libcap/pam.nix2
-rw-r--r--pkgs/os-specific/linux/libcap/progs.nix2
-rw-r--r--pkgs/os-specific/linux/libcgroup/default.nix6
-rw-r--r--pkgs/os-specific/linux/libnl/default.nix4
-rw-r--r--pkgs/os-specific/linux/lvm2/default.nix25
-rw-r--r--pkgs/os-specific/linux/microcode/converter.nix4
-rw-r--r--pkgs/os-specific/linux/microcode/intel.nix8
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix10
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/legacy173.nix10
-rw-r--r--pkgs/os-specific/linux/pmtools/default.nix25
-rw-r--r--pkgs/os-specific/linux/powertop/default.nix10
-rw-r--r--pkgs/os-specific/linux/qemu-kvm/default.nix20
-rw-r--r--pkgs/os-specific/linux/qemu-kvm/qemu-img-fix-corrupt-vdi.patch27
-rw-r--r--pkgs/os-specific/linux/qemu-kvm/smb-tmpdir.patch33
-rw-r--r--pkgs/os-specific/linux/shadow/default.nix27
-rw-r--r--pkgs/os-specific/linux/shadow/keep-path.patch21
-rw-r--r--pkgs/os-specific/linux/shadow/no-sanitize-env.patch16
-rw-r--r--pkgs/os-specific/linux/shadow/su-name.patch20
-rw-r--r--pkgs/os-specific/linux/sysklogd/builder.sh13
-rw-r--r--pkgs/os-specific/linux/sysklogd/default.nix17
-rw-r--r--pkgs/os-specific/linux/sysklogd/systemd.patch850
-rw-r--r--pkgs/os-specific/linux/sysstat/default.nix8
-rw-r--r--pkgs/os-specific/linux/sysstat/no-install-statedir.patch37
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix46
-rw-r--r--pkgs/os-specific/linux/systemd/reexec.patch15
-rw-r--r--pkgs/os-specific/linux/sysvinit/default.nix1
-rw-r--r--pkgs/os-specific/linux/uml-utilities/builder.sh17
-rw-r--r--pkgs/os-specific/linux/uml-utilities/default.nix13
-rw-r--r--pkgs/os-specific/linux/upower/default.nix24
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/default.nix31
-rw-r--r--pkgs/servers/http/apache-modules/mod_evasive/default.nix30
-rw-r--r--pkgs/servers/mail/dovecot/1.1.1.nix20
-rw-r--r--pkgs/servers/mail/dovecot/2.x.nix24
-rw-r--r--pkgs/servers/mail/dovecot/default.nix31
-rw-r--r--pkgs/servers/mail/popa3d/default.nix29
-rw-r--r--pkgs/servers/mail/popa3d/enable-standalone-mode.patch12
-rw-r--r--pkgs/servers/mail/popa3d/fix-mail-spool-path.patch12
-rw-r--r--pkgs/servers/mail/popa3d/use-glibc-crypt.patch12
-rw-r--r--pkgs/servers/mail/popa3d/use-openssl.patch21
-rw-r--r--pkgs/servers/mail/postfix/default.nix63
-rw-r--r--pkgs/servers/mail/spamassassin/default.nix16
-rw-r--r--pkgs/servers/nosql/mongodb/default.nix44
-rw-r--r--pkgs/servers/restund/default.nix28
-rw-r--r--pkgs/servers/samba/default.nix7
-rw-r--r--pkgs/servers/sip/sipwitch/default.nix4
-rw-r--r--pkgs/servers/sql/postgresql/8.3.x.nix6
-rw-r--r--pkgs/servers/sql/postgresql/8.4.x.nix6
-rw-r--r--pkgs/servers/sql/postgresql/9.0.x.nix6
-rw-r--r--pkgs/servers/sql/postgresql/9.1.x.nix6
-rw-r--r--pkgs/servers/sql/postgresql/jdbc/default.nix16
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix1
-rw-r--r--pkgs/shells/bash-completion/default.nix11
-rw-r--r--pkgs/shells/ipython/default.nix4
-rw-r--r--pkgs/shells/tcsh/default.nix8
-rw-r--r--pkgs/stdenv/generic/default.nix41
-rw-r--r--pkgs/tools/archivers/atool/default.nix18
-rw-r--r--pkgs/tools/backup/btar/default.nix4
-rw-r--r--pkgs/tools/backup/bup/default.nix44
-rw-r--r--pkgs/tools/backup/rdiff-backup/default.nix8
-rw-r--r--pkgs/tools/filesystems/ciopfs/default.nix20
-rw-r--r--pkgs/tools/filesystems/davfs2/default.nix15
-rw-r--r--pkgs/tools/filesystems/e2fsprogs/default.nix8
-rw-r--r--pkgs/tools/filesystems/grive/default.nix6
-rw-r--r--pkgs/tools/filesystems/mtdutils/default.nix9
-rw-r--r--pkgs/tools/filesystems/ntfs-3g/default.nix4
-rw-r--r--pkgs/tools/graphics/asymptote/default.nix7
-rw-r--r--pkgs/tools/graphics/asymptote/src-for-default.nix8
-rw-r--r--pkgs/tools/misc/desktop-file-utils/default.nix1
-rw-r--r--pkgs/tools/misc/gnokii/src-for-default.nix2
-rw-r--r--pkgs/tools/misc/grub/2.0x.nix (renamed from pkgs/tools/misc/grub/1.9x.nix)22
-rw-r--r--pkgs/tools/misc/lockfile-progs/default.nix29
-rw-r--r--pkgs/tools/misc/mmv/default.nix46
-rw-r--r--pkgs/tools/misc/ncdu/default.nix19
-rw-r--r--pkgs/tools/misc/picocom/default.nix23
-rw-r--r--pkgs/tools/misc/plowshare/default.nix35
-rw-r--r--pkgs/tools/misc/pv/default.nix4
-rw-r--r--pkgs/tools/misc/xclip/default.nix8
-rw-r--r--pkgs/tools/misc/xvfb-run/default.nix22
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix6
-rw-r--r--pkgs/tools/networking/aircrack-ng/default.nix4
-rw-r--r--pkgs/tools/networking/autossh/default.nix43
-rw-r--r--pkgs/tools/networking/curl/default.nix4
-rw-r--r--pkgs/tools/networking/dhcp/default.nix6
-rw-r--r--pkgs/tools/networking/miniupnpc/default.nix4
-rw-r--r--pkgs/tools/networking/modemmanager/default.nix4
-rw-r--r--pkgs/tools/networking/mosh/default.nix4
-rw-r--r--pkgs/tools/networking/nbd/default.nix6
-rw-r--r--pkgs/tools/networking/netrw/default.nix34
-rw-r--r--pkgs/tools/networking/network-manager-applet/default.nix22
-rw-r--r--pkgs/tools/networking/network-manager/default.nix6
-rw-r--r--pkgs/tools/networking/network-manager/pptp-purity.patch26
-rw-r--r--pkgs/tools/networking/network-manager/pptp.nix13
-rw-r--r--pkgs/tools/networking/networkmanagement/default.nix4
-rw-r--r--pkgs/tools/networking/nss-pam-ldapd/default.nix34
-rw-r--r--pkgs/tools/networking/openssh/default.nix4
-rw-r--r--pkgs/tools/networking/pptp/default.nix3
-rw-r--r--pkgs/tools/networking/stunnel/default.nix6
-rw-r--r--pkgs/tools/networking/surfraw/default.nix22
-rw-r--r--pkgs/tools/package-management/cabal-install/0.14.0.nix4
-rw-r--r--pkgs/tools/package-management/nix/unstable.nix18
-rw-r--r--pkgs/tools/security/clamav/default.nix26
-rw-r--r--pkgs/tools/security/fprot/default.nix41
-rw-r--r--pkgs/tools/system/gptfdisk/default.nix4
-rw-r--r--pkgs/tools/system/hardlink/default.nix34
-rw-r--r--pkgs/tools/system/logcheck/default.nix45
-rw-r--r--pkgs/tools/system/smartmontools/default.nix8
-rw-r--r--pkgs/tools/text/enca/default.nix29
-rw-r--r--pkgs/tools/text/wgetpaste/default.nix4
-rw-r--r--pkgs/tools/typesetting/lhs2tex/default.nix4
-rw-r--r--pkgs/tools/typesetting/tex/texlive/beamer.nix6
-rw-r--r--pkgs/tools/typesetting/tex/texlive/moderncv.nix7
-rw-r--r--pkgs/tools/virtualization/ec2-ami-tools/default.nix (renamed from pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix)4
-rw-r--r--pkgs/tools/virtualization/ec2-ami-tools/writable.patch (renamed from pkgs/tools/virtualization/amazon-ec2-ami-tools/writable.patch)0
-rw-r--r--pkgs/tools/virtualization/ec2-api-tools/default.nix (renamed from pkgs/tools/virtualization/amazon-ec2-api-tools/default.nix)8
-rw-r--r--pkgs/top-level/all-packages.nix617
-rw-r--r--pkgs/top-level/haskell-defaults.nix41
-rw-r--r--pkgs/top-level/haskell-packages.nix219
-rw-r--r--pkgs/top-level/node-packages.nix1100
-rw-r--r--pkgs/top-level/perl-packages.nix225
-rw-r--r--pkgs/top-level/platforms.nix15
-rw-r--r--pkgs/top-level/python-packages.nix360
-rw-r--r--pkgs/top-level/release.nix7
789 files changed, 14276 insertions, 5788 deletions
diff --git a/pkgs/applications/audio/amarok/default.nix b/pkgs/applications/audio/amarok/default.nix
index ad553c9db346..a60ecdcb866f 100644
--- a/pkgs/applications/audio/amarok/default.nix
+++ b/pkgs/applications/audio/amarok/default.nix
@@ -1,28 +1,30 @@
 { stdenv, fetchurl, lib, qtscriptgenerator, perl, gettext, curl
 , libxml2, mysql, taglib, taglib_extras, loudmouth , kdelibs
 , qca2, libmtp, liblastfm, libgpod, pkgconfig, automoc4, phonon
-, strigi, soprano }:
+, strigi, soprano, qjson, ffmpeg, libofa }:
 
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   pname = "amarok";
-  version = "2.5.0";
+  version = "2.6.0";
 
   src = fetchurl {
     url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.bz2";
-    sha256 = "0jc8fsrhshgfv441b2dgqk0wz3ms5bzjqchcj5ydxphg57dr3l8y";
+    sha256 = "1h6jzl0jnn8g05pz4mw01kz20wjjxwwz6iki7lvgj70qi3jq04m9";
   };
 
   QT_PLUGIN_PATH="${qtscriptgenerator}/lib/qt4/plugins";
+  patches = ./find-mysql.patch;
   buildInputs = [ qtscriptgenerator stdenv.gcc.libc gettext curl
     libxml2 mysql taglib taglib_extras loudmouth kdelibs automoc4 phonon strigi
-    soprano qca2 libmtp liblastfm libgpod pkgconfig ];
+    soprano qca2 libmtp liblastfm libgpod pkgconfig qjson ffmpeg libofa ];
 
   postInstall = ''
     mkdir -p $out/nix-support
     echo ${qtscriptgenerator} > $out/nix-support/propagated-user-env-packages
   '';
+
   meta = {
     description = "Popular music player for KDE";
     license = "GPL";
diff --git a/pkgs/applications/audio/amarok/find-mysql.patch b/pkgs/applications/audio/amarok/find-mysql.patch
new file mode 100644
index 000000000000..57a5ec46b84f
--- /dev/null
+++ b/pkgs/applications/audio/amarok/find-mysql.patch
@@ -0,0 +1,46 @@
+commit 9979970f05f25329100168d85a5c4cdc8c084b7a
+Author: Yury G. Kudryashov <urkud.urkud@gmail.com>
+Date:   Thu Aug 30 12:32:53 2012 +0400
+
+    FindMySQLAmarok.cmake: use PATH_SUFFIXES
+
+diff --git a/cmake/modules/FindMySQLAmarok.cmake b/cmake/modules/FindMySQLAmarok.cmake
+index 910b434..4c8b8e8 100644
+--- a/cmake/modules/FindMySQLAmarok.cmake
++++ b/cmake/modules/FindMySQLAmarok.cmake
+@@ -13,18 +13,17 @@
+ # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+ 
+ if(NOT WIN32)
+-    find_program(MYSQLCONFIG_EXECUTABLE NAMES mysql_config mysql_config5 PATHS ${BIN_INSTALL_DIR} ~/usr/bin /usr/local/bin)
++    find_program(MYSQLCONFIG_EXECUTABLE NAMES mysql_config mysql_config5 HINTS ${BIN_INSTALL_DIR})
+ endif(NOT WIN32)
+ 
+ find_path(MYSQL_INCLUDE_DIR mysql.h
+-    /opt/local/include/mysql5/mysql
++    PATHS
++    /opt/local/include
+     /opt/mysql/mysql/include
+-    /opt/mysqle/include/mysql
+-    /opt/ports/include/mysql5/mysql
+-    /usr/include/mysql
+-    /usr/local/include/mysql
+-    /usr/mysql/include/mysql
+-    ~/usr/include/mysql
++    /opt/mysqle/include
++    /opt/ports/include
++    /usr/mysql/include
++    PATH_SUFFIXES mysql mysql5/mysql
+ )
+ 
+ if(MYSQLCONFIG_EXECUTABLE)
+@@ -40,8 +39,7 @@ if(MYSQLCONFIG_EXECUTABLE)
+ 
+     find_library(MYSQLD_PIC_SEPARATE
+         mysqld_pic
+-        PATHS
+-        /usr/lib/mysql
++        PATH_SUFFIXES mysql
+     )
+ 
+     if(MYSQLD_PIC_SEPARATE)
diff --git a/pkgs/applications/audio/ardour/ardour3.nix b/pkgs/applications/audio/ardour/ardour3.nix
index c803ec076187..cfa86af3c379 100644
--- a/pkgs/applications/audio/ardour/ardour3.nix
+++ b/pkgs/applications/audio/ardour/ardour3.nix
@@ -6,8 +6,8 @@
 , perl, pkgconfig, python, serd, sord, sratom, suil }:
 
 let
-  # Ardour 3 Beta 4a
-  rev = "12406";
+  # Ardour 3 Beta 5
+  rev = "13072";
 in
 
 stdenv.mkDerivation {
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   src = fetchsvn {
     url = http://subversion.ardour.org/svn/ardour2/branches/3.0;
     inherit rev;
-    sha256 = "0a68xb3l36m5908y3airxw1b3bymhrjrf1l492mgcvviq6pn7pmk";
+    sha256 = "17k990kdb5q17z6jcz5b60imvvfbjw9zfxzy9fk0vg8gd6yq7736";
   };
 
   buildInputs = 
diff --git a/pkgs/applications/audio/espeak/default.nix b/pkgs/applications/audio/espeak/default.nix
index e86177bb53c8..e1cf5fee1cc7 100644
--- a/pkgs/applications/audio/espeak/default.nix
+++ b/pkgs/applications/audio/espeak/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, unzip, portaudio }:
 
 stdenv.mkDerivation {
-  name = "espeak-1.44.03";
+  name = "espeak-1.46.02";
   src = fetchurl {
-    url = mirror://sourceforge/espeak/espeak-1.44.03-source.zip;
-    sha256 = "0lnv89xmsq3bax0qpabd0z2adaag7mdl973bkw3gdszidafmfyx4";
+    url = mirror://sourceforge/espeak/espeak-1.46.02-source.zip;
+    sha256 = "1fjlv5fm0gzvr5wzy1dp4nspw04k0bqv3jymha2p2qfjbfifp2zg";
   };
 
   buildInputs = [ unzip portaudio ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
 
   configurePhase = ''
     cd src
-    makeFlags="PREFIX=$out"
+    makeFlags="PREFIX=$out DATADIR=$out/share/espeak-data"
   '';
 
   meta = {
diff --git a/pkgs/applications/audio/espeak/edit.nix b/pkgs/applications/audio/espeak/edit.nix
new file mode 100644
index 000000000000..eb34335721f0
--- /dev/null
+++ b/pkgs/applications/audio/espeak/edit.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl, unzip, portaudio, wxGTK}:
+
+stdenv.mkDerivation {
+  name = "espeakedit-1.46.02";
+  src = fetchurl {
+    url = mirror://sourceforge/espeak/espeakedit-1.46.02.zip;
+    sha256 = "1cc5r89sn8zz7b8wj4grx9xb7aqyi0ybj0li9hpy7hd67r56kqkl";
+  };
+
+  buildInputs = [ unzip portaudio wxGTK ];
+
+  patchPhase = if portaudio.api_version == 19 then ''
+    cp src/portaudio19.h src/portaudio.h
+  '' else "";
+
+  buildPhase = ''
+    cd src
+    gcc -o espeakedit *.cpp `wx-config --cxxflags --libs`
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp espeakedit $out/bin
+  '';
+
+  meta = {
+    description = "Phoneme editor for espeak";
+    homepage = http://espeak.sourceforge.net/;
+    license = "GPLv3+";
+  };
+}
diff --git a/pkgs/applications/audio/flac/default.nix b/pkgs/applications/audio/flac/default.nix
index 4eef90b575cc..fa201d20c3fb 100644
--- a/pkgs/applications/audio/flac/default.nix
+++ b/pkgs/applications/audio/flac/default.nix
@@ -1,24 +1,25 @@
-{stdenv, fetchurl, libogg}:
+{ stdenv, fetchurl, libogg }:
 
 stdenv.mkDerivation rec {
   name = "flac-1.2.1";
-  
+
   src = fetchurl {
     url = mirror://sourceforge/flac/flac-1.2.1.tar.gz;
     sha256 = "1pry5lgzfg57pga1zbazzdd55fkgk3v5qy4axvrbny5lrr5s8dcn";
   };
 
-  buildInputs = [libogg];
+  buildInputs = [ libogg ];
+
+  patches =
+    [ # Fix for building on GCC 4.3.
+      (fetchurl {
+        url = "http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/media-libs/flac/files/flac-1.2.1-gcc-4.3-includes.patch?rev=1.1";
+        sha256 = "1m6ql5vyjb2jlp5qiqp6w0drq1m6x6y3i1dnl5ywywl3zd36k0mr";
+      })
+    ];
 
-  patches = [
-    # Fix for building on GCC 4.3.
-    (fetchurl {
-      url = "http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/media-libs/flac/files/flac-1.2.1-gcc-4.3-includes.patch?rev=1.1";
-      sha256 = "1m6ql5vyjb2jlp5qiqp6w0drq1m6x6y3i1dnl5ywywl3zd36k0mr";
-    })
-  ];
-  
   meta = {
     homepage = http://flac.sourceforge.net;
+    description = "Library and tools for encoding and decoding the FLAC lossless audio file format";
   };
 }
diff --git a/pkgs/applications/audio/jack-capture/default.nix b/pkgs/applications/audio/jack-capture/default.nix
new file mode 100644
index 000000000000..3b8f0f652a8b
--- /dev/null
+++ b/pkgs/applications/audio/jack-capture/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, jackaudio, libsndfile, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "jack_capture-${version}";
+  version = "0.9.69";
+
+  src = fetchurl {
+    url = "http://archive.notam02.no/arkiv/src/${name}.tar.gz";
+    sha256 = "0sk7b92my1v1g7rhkpl1c608rb0rdb28m9zqfll95kflxajd16zv";
+  };
+
+  buildInputs = [ jackaudio libsndfile pkgconfig ];
+
+  buildPhase = "PREFIX=$out make jack_capture";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp jack_capture $out/bin/
+  '';
+
+  meta = with stdenv.lib; { 
+    description = "A program for recording soundfiles with jack";
+    homepage = http://archive.notam02.no/arkiv/src;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.goibhniu ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/lastwatch/default.nix b/pkgs/applications/audio/lastwatch/default.nix
new file mode 100644
index 000000000000..324a0b0bebcb
--- /dev/null
+++ b/pkgs/applications/audio/lastwatch/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchgit, pythonPackages }:
+
+pythonPackages.buildPythonPackage rec {
+  name = "lastwatch-${version}";
+  namePrefix = "";
+  version = "0.4.1";
+
+  src = fetchgit {
+    url = "git://github.com/aszlig/LastWatch.git";
+    rev = "refs/tags/v${version}";
+    sha256 = "c43f0fd87e9f3daafc7e8676daf2e89c8e21fbabc278eb1455e28d2997587a92";
+  };
+
+  pythonPath = [
+    pythonPackages.pyinotify
+    pythonPackages.pylast
+    pythonPackages.mutagen
+  ];
+
+  propagatedBuildInputs = pythonPath;
+
+  installCommand = "python setup.py install --prefix=$out";
+
+  meta = {
+    homepage = "https://github.com/aszlig/LastWatch";
+    description = "An inotify-based last.fm audio scrobbler";
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/pkgs/applications/audio/linuxsampler/default.nix b/pkgs/applications/audio/linuxsampler/default.nix
index 1ef081c84d07..c74cd2b0d7d4 100644
--- a/pkgs/applications/audio/linuxsampler/default.nix
+++ b/pkgs/applications/audio/linuxsampler/default.nix
@@ -11,9 +11,12 @@ stdenv.mkDerivation rec {
     sha256 = "0zsrvs9dwwhjx733m45vfi11yjkqv33z8qxn2i9qriq5zs1f0kd7";
   };
 
-  patchPhase = "sed -e 's/which/type -P/g' -i scripts/generate_parser.sh";
+  patches = ./linuxsampler_lv2_sfz_fix.diff;
 
-  preConfigure = "make -f Makefile.cvs";
+  preConfigure = ''
+    sed -e 's/which/type -P/g' -i scripts/generate_parser.sh
+    make -f Makefile.cvs
+  '';
 
   buildInputs = [ 
    alsaLib asio autoconf automake bison jackaudio libgig libsndfile
@@ -34,7 +37,8 @@ stdenv.mkDerivation rec {
       have questions on the subject, that are not yet covered by the
       FAQ, please contact us.
     ''; 
-    license = licenses.gpl2;
+    license = licenses.proprietary;
     maintainers = [ maintainers.goibhniu ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/linuxsampler/linuxsampler_lv2_sfz_fix.diff b/pkgs/applications/audio/linuxsampler/linuxsampler_lv2_sfz_fix.diff
new file mode 100644
index 000000000000..114726db19d6
--- /dev/null
+++ b/pkgs/applications/audio/linuxsampler/linuxsampler_lv2_sfz_fix.diff
@@ -0,0 +1,50 @@
+Index: linuxsampler-r2359/src/hostplugins/lv2/PluginLv2.cpp
+===================================================================
+--- linuxsampler-r2359/src/hostplugins/lv2/PluginLv2.cpp	(revision 2359)
++++ linuxsampler-r2359/src/hostplugins/lv2/PluginLv2.cpp	(working copy)
+@@ -18,6 +18,8 @@
+  *   MA  02110-1301  USA                                                   *
+  ***************************************************************************/
+ 
++#define _BSD_SOURCE 1  /* for realpath() */
++
+ #include <algorithm>
+ #include <cassert>
+ #include <cstdio>
+@@ -118,6 +120,23 @@
+         dmsg(2, ("linuxsampler: Deactivate\n"));
+     }
+ 
++    static String RealPath(const String& path)
++    {
++        String out   = path;
++        char*  cpath = NULL;
++#ifdef _WIN32
++        cpath = (char*)malloc(MAX_PATH);
++        GetFullPathName(path.c_str(), MAX_PATH, cpath, NULL);
++#else
++        cpath = realpath(path.c_str(), NULL);
++#endif
++        if (cpath) {
++            out = cpath;
++            free(cpath);
++        }
++        return out;
++    }
++
+     String PluginLv2::PathToState(const String& path) {
+         if (MapPath) {
+             char* cstr = MapPath->abstract_path(MapPath->handle, path.c_str());
+@@ -131,9 +150,10 @@
+     String PluginLv2::PathFromState(const String& path) {
+         if (MapPath) {
+             char* cstr = MapPath->absolute_path(MapPath->handle, path.c_str());
+-            const String abstract_path(cstr);
++            // Resolve symbolic links so SFZ sample paths load correctly
++            const String absolute_path(RealPath(cstr));
+             free(cstr);
+-            return abstract_path;
++            return absolute_path;
+         }
+         return path;
+     }
diff --git a/pkgs/applications/audio/ncmpcpp/default.nix b/pkgs/applications/audio/ncmpcpp/default.nix
index b9d304097111..3af9bc7690ff 100644
--- a/pkgs/applications/audio/ncmpcpp/default.nix
+++ b/pkgs/applications/audio/ncmpcpp/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   name = "ncmpcpp-${version}";
 
   src = fetchurl {
-    url = "http://unkart.ovh.org/ncmpcpp/ncmpcpp-${version}.tar.bz2";
+    url = "http://ncmpcpp.rybczak.net/stable/ncmpcpp-${version}.tar.bz2";
     sha256 = "1kbkngs4fhf9z53awskqiwdl94i5slvxmjiajkrayi99373fallx";
   };
 
diff --git a/pkgs/applications/audio/opus-tools/default.nix b/pkgs/applications/audio/opus-tools/default.nix
new file mode 100644
index 000000000000..6b7e1e2aeff6
--- /dev/null
+++ b/pkgs/applications/audio/opus-tools/default.nix
@@ -0,0 +1,17 @@
+{stdenv, fetchurl, libogg, libao, pkgconfig, libopus}:
+
+stdenv.mkDerivation rec {
+  name = "opus-tools-0.1.5";
+  src = fetchurl {
+    url = "http://downloads.xiph.org/releases/opus/${name}.tar.gz";
+    sha256 = "0184zfamg3qcjknk4liz4smws3mbv77gjhq2pn9xgcx9nw78srvn";
+  };
+
+  buildInputs = [ libogg libao pkgconfig libopus ];
+
+  meta = {
+    description = "Tools to work with opus encoded audio streams";
+    homepage = http://www.opus-codec.org/;
+    license = "BSD";
+  };
+}
diff --git a/pkgs/applications/audio/picard/default.nix b/pkgs/applications/audio/picard/default.nix
new file mode 100644
index 000000000000..dccb6571f4d5
--- /dev/null
+++ b/pkgs/applications/audio/picard/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, pythonPackages, gettext, pyqt4
+, pkgconfig, libdiscid, libofa, ffmpeg }:
+
+pythonPackages.buildPythonPackage rec {
+  name = "picard-${version}";
+  namePrefix = "";
+  version = "1.1";
+
+  src = fetchurl {
+    url = "http://ftp.musicbrainz.org/pub/musicbrainz/picard/${name}.tar.gz";
+    md5 = "57abb76632a423760f336ac11da5c149";
+  };
+
+  buildInputs = [
+    pkgconfig
+    ffmpeg
+    libofa
+    gettext
+  ];
+
+  propagatedBuildInputs = [
+    pythonPackages.mutagen
+    pyqt4
+    libdiscid
+  ];
+
+  configurePhase = ''
+    python setup.py config
+  '';
+
+  buildPhase = ''
+    python setup.py build
+  '';
+
+  installPhase = ''
+    python setup.py install --prefix="$out"
+  '';
+
+  doCheck = false;
+
+  meta = {
+    homepage = "http://musicbrainz.org/doc/MusicBrainz_Picard";
+    description = "The official MusicBrainz tagger";
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/pkgs/applications/audio/praat/default.nix b/pkgs/applications/audio/praat/default.nix
new file mode 100644
index 000000000000..f2f196acdd85
--- /dev/null
+++ b/pkgs/applications/audio/praat/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, alsaLib, gtk, pkgconfig }:
+
+stdenv.mkDerivation {
+  name = "praat-5323";
+  src = fetchurl {
+    url = http://www.fon.hum.uva.nl/praat/praat5323_sources.tar.gz;
+    sha256 = "1m0m5165h74mw5xhmnnyzh5ans3cn78w5rs9572sa1512cams203";
+  };
+
+  configurePhase = ''
+    cp makefiles/makefile.defs.linux makefile.defs
+  '';
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp praat $out/bin
+  '';
+
+  buildInputs = [ alsaLib gtk pkgconfig ];
+
+  meta = {
+    description = "Doing phonetics by computer";
+    homepage = http://www.fon.hum.uva.nl/praat/;
+    license = "GPLv2+"; # Has some 3rd-party code in it though
+  };
+}
diff --git a/pkgs/applications/display-managers/slim/default.nix b/pkgs/applications/display-managers/slim/default.nix
index be546d76836b..0675b02a314e 100644
--- a/pkgs/applications/display-managers/slim/default.nix
+++ b/pkgs/applications/display-managers/slim/default.nix
@@ -1,39 +1,33 @@
-{stdenv, fetchurl, x11, libjpeg, libpng12, libXmu, freetype, pam}:
+{ stdenv, fetchurl, cmake, pkgconfig, x11, libjpeg, libpng12, libXmu
+, fontconfig, freetype, pam, consolekit, dbus_libs }:
 
 stdenv.mkDerivation rec {
-  name = "slim-1.3.2";
+  name = "slim-1.3.4";
 
   src = fetchurl {
     url = "http://download.berlios.de/slim/${name}.tar.gz";
-    sha256 = "1f42skdp5k1zrb364s3i0ps5wmx9szz9h192i2dkn9az00jh2mpi";
+    sha256 = "00fmrg2v41jnqhx0yc1kv97xxh5gai18n0i4as9g1fcq1i32cp0m";
   };
 
   patches = [
     # Allow the paths of the configuration file and theme directory to
     # be set at runtime.
     ./runtime-paths.patch
-
-    # Fix a bug in slim's PAM support: the "resp" argument to the
-    # conversation function is a pointer to a pointer to an array of
-    # pam_response structures, not a pointer to an array of pointers to
-    # pam_response structures.  Of course C can't tell the difference...
-    ./pam.patch
-
-    # Don't set PAM_RHOST to "localhost", it confuses ConsoleKit
-    # (which assumes that a non-empty string means a remote session).
-    ./pam2.patch
   ];
 
-  buildInputs = [x11 libjpeg libpng12 libXmu freetype pam];
+  buildInputs =
+    [ cmake pkgconfig x11 libjpeg libpng12 libXmu fontconfig freetype
+      pam dbus_libs
+    ] ++ stdenv.lib.optional (consolekit != null) consolekit;
+
+  preConfigure = "substituteInPlace CMakeLists.txt --replace /etc $out/etc";
 
-  NIX_CFLAGS_COMPILE = "-I${freetype}/include/freetype2";
+  cmakeFlags = [ "-DUSE_PAM=1" ] ++ stdenv.lib.optional (consolekit != null) "-DUSE_CONSOLEKIT=1";
 
-  preBuild = ''
-    substituteInPlace Makefile --replace /usr /no-such-path
-    makeFlagsArray=(CC=gcc CXX=g++ PREFIX=$out MANDIR=$out/share/man CFGDIR=$out/etc USE_PAM=1)
-  '';
+  NIX_CFLAGS_LINK = "-lXmu";
 
   meta = {
     homepage = http://slim.berlios.de;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/display-managers/slim/pam.patch b/pkgs/applications/display-managers/slim/pam.patch
deleted file mode 100644
index 2163d20a5e32..000000000000
--- a/pkgs/applications/display-managers/slim/pam.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-diff -rc slim-1.3.1-orig/app.cpp slim-1.3.1/app.cpp
-*** slim-1.3.1-orig/app.cpp	2008-09-26 02:54:15.000000000 +0200
---- slim-1.3.1/app.cpp	2009-02-17 19:50:06.000000000 +0100
-***************
-*** 41,48 ****
-      Panel* panel = *static_cast<Panel**>(appdata_ptr);
-      int result = PAM_SUCCESS;
-      for (int i=0; i<num_msg; i++){
-!         resp[i]->resp=0;
-!         resp[i]->resp_retcode=0;
-          switch(msg[i]->msg_style){
-              case PAM_PROMPT_ECHO_ON:
-                  // We assume PAM is asking for the username
---- 41,48 ----
-      Panel* panel = *static_cast<Panel**>(appdata_ptr);
-      int result = PAM_SUCCESS;
-      for (int i=0; i<num_msg; i++){
-!         (*resp)[i].resp=0;
-!         (*resp)[i].resp_retcode=0;
-          switch(msg[i]->msg_style){
-              case PAM_PROMPT_ECHO_ON:
-                  // We assume PAM is asking for the username
-***************
-*** 51,63 ****
-                      case Panel::Suspend:
-                      case Panel::Halt:
-                      case Panel::Reboot:
-!                         resp[i]->resp=strdup("root");
-                          break;
-  
-                      case Panel::Console:
-                      case Panel::Exit:
-                      case Panel::Login:
-!                         resp[i]->resp=strdup(panel->GetName().c_str());
-                          break;
-                  }
-                  break;
---- 51,63 ----
-                      case Panel::Suspend:
-                      case Panel::Halt:
-                      case Panel::Reboot:
-!                         (*resp)[i].resp=strdup("root");
-                          break;
-  
-                      case Panel::Console:
-                      case Panel::Exit:
-                      case Panel::Login:
-!                         (*resp)[i].resp=strdup(panel->GetName().c_str());
-                          break;
-                  }
-                  break;
-***************
-*** 73,79 ****
-  
-                      default:
-                          panel->EventHandler(Panel::Get_Passwd);
-!                         resp[i]->resp=strdup(panel->GetPasswd().c_str());
-                          break;
-                  }
-                  break;
---- 73,79 ----
-  
-                      default:
-                          panel->EventHandler(Panel::Get_Passwd);
-!                         (*resp)[i].resp=strdup(panel->GetPasswd().c_str());
-                          break;
-                  }
-                  break;
-***************
-*** 89,97 ****
-      }
-      if (result!=PAM_SUCCESS){
-          for (int i=0; i<num_msg; i++){
-!             if (resp[i]->resp==0) continue;
-!             free(resp[i]->resp);
-!             resp[i]->resp=0;
-          };
-          free(*resp);
-          *resp=0;
---- 89,97 ----
-      }
-      if (result!=PAM_SUCCESS){
-          for (int i=0; i<num_msg; i++){
-!             if ((*resp)[i].resp==0) continue;
-!             free((*resp)[i].resp);
-!             (*resp)[i].resp=0;
-          };
-          free(*resp);
-          *resp=0;
diff --git a/pkgs/applications/display-managers/slim/pam2.patch b/pkgs/applications/display-managers/slim/pam2.patch
deleted file mode 100644
index 48cf661864ba..000000000000
--- a/pkgs/applications/display-managers/slim/pam2.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -rc slim-1.3.1-orig/app.cpp slim-1.3.1/app.cpp
-*** slim-1.3.1-orig/app.cpp	2008-09-26 02:54:15.000000000 +0200
---- slim-1.3.1/app.cpp	2009-08-17 02:59:37.000000000 +0200
-***************
-*** 226,232 ****
-          pam.start("slim");
-          pam.set_item(PAM::Authenticator::TTY, DisplayName);
-          pam.set_item(PAM::Authenticator::Requestor, "root");
-!         pam.set_item(PAM::Authenticator::Host, "localhost");
-  
-      }
-      catch(PAM::Exception& e){
---- 226,232 ----
-          pam.start("slim");
-          pam.set_item(PAM::Authenticator::TTY, DisplayName);
-          pam.set_item(PAM::Authenticator::Requestor, "root");
-!         pam.set_item(PAM::Authenticator::Host, "");
-  
-      }
-      catch(PAM::Exception& e){
diff --git a/pkgs/applications/editors/aewan/default.nix b/pkgs/applications/editors/aewan/default.nix
new file mode 100644
index 000000000000..3e11f78e4028
--- /dev/null
+++ b/pkgs/applications/editors/aewan/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, zlib, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "aewan-${version}";
+  version = "1.0.01";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/aewan/${name}.tar.gz";
+    sha256 = "5266dec5e185e530b792522821c97dfa5f9e3892d0dca5e881d0c30ceac21817";
+  };
+
+  buildInputs = [ zlib ncurses ];
+
+  meta = {
+    description = "Ascii-art Editor Without A Name";
+    homepage = "http://aewan.sourceforge.net/";
+    license = stdenv.lib.licenses.gpl2Plus;
+  };
+}
diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix
index 801efc166daa..af71e89a4166 100644
--- a/pkgs/applications/editors/eclipse/default.nix
+++ b/pkgs/applications/editors/eclipse/default.nix
@@ -158,6 +158,20 @@ in {
         };
   };
 
-
+  eclipse_sdk_42 = buildEclipse {
+    name = "eclipse-sdk-4.2";
+    description = "Eclipse Classic";
+    src =
+      if stdenv.system == "x86_64-linux" then
+        fetchurl {
+          url = http://eclipse.ialto.com/eclipse/downloads/drops4/R-4.2-201206081400/eclipse-SDK-4.2-linux-gtk-x86_64.tar.gz;
+          sha256 = "1vcr49qm6rsbgzi9d43ggmby68pdigqcy55l5vy1gmixqks3g6s0";
+        }
+      else
+        fetchurl {
+          url = http://eclipse.ialto.com/eclipse/downloads/drops4/R-4.2-201206081400/eclipse-SDK-4.2-linux-gtk.tar.gz;
+          sha256 = "1zlv80idkkdda05ks4biknbkczp24b2xki81ik5nygrjg29jqgnz";
+        };
+    };
 }
 
diff --git a/pkgs/applications/editors/emacs-24/default.nix b/pkgs/applications/editors/emacs-24/default.nix
index 388972abd018..82238a55d1cc 100644
--- a/pkgs/applications/editors/emacs-24/default.nix
+++ b/pkgs/applications/editors/emacs-24/default.nix
@@ -9,13 +9,13 @@ assert (libXft != null) -> libpng != null;	# probably a bug
 assert stdenv.isDarwin -> libXaw != null;	# fails to link otherwise
 
 stdenv.mkDerivation rec {
-  name = "emacs-24.1";
+  name = "emacs-24.2";
 
   builder = ./builder.sh;
 
   src = fetchurl {
     url = "mirror://gnu/emacs/${name}.tar.bz2";
-    sha256 = "eeea272732146e2be9aee2f8d71d6cf07b8654c0282da62a26b921d433f02b7c";
+    sha256 = "13wbjfjmz13qpjwssy44nw2230lllmkkgjsy0rqfm6am2cf87n3k";
   };
 
   buildInputs =
diff --git a/pkgs/applications/editors/emacs-modes/auto-complete/default.nix b/pkgs/applications/editors/emacs-modes/auto-complete/default.nix
new file mode 100644
index 000000000000..75f484d295b5
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/auto-complete/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "auto-complete-1.3.1";
+
+  src = fetchurl {
+    url = "http://cx4a.org/pub/auto-complete/${name}.tar.bz2";
+    sha256 = "124qxfp0pcphwlmrasbfrci48brxnrzc38h4wcf2sn20x1mvcrlj";
+  };
+
+  buildInputs = [ emacs ];
+
+  preInstall = ''
+    install -d $out/share/emacs/site-lisp
+  '';
+
+  installFlags = "DIR=$(out)/share/emacs/site-lisp";
+
+  postInstall = ''
+    ln -s javascript-mode $out/share/emacs/site-lisp/ac-dict/js2-mode
+  '';
+
+  meta = {
+    description = "Auto-complete extension for Emacs";
+    homepage = http://cx4a.org/software/auto-complete/;
+    license = "GPLv3+";
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/coffee/default.nix b/pkgs/applications/editors/emacs-modes/coffee/default.nix
new file mode 100644
index 000000000000..c40b3d4cd650
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/coffee/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "coffee-mode-0.4.1";
+
+  src = fetchgit {
+    url = "https://github.com/defunkt/coffee-mode.git";
+    rev = "c45c5f7a529363bc7aa57db0f3df26389fd233d8";
+    sha256 = "36a7792b5ffbcc5a580e8d5b2425494c60a8015cfde0e3f8a946a685da231ce2";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs --batch -f batch-byte-compile coffee-mode.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install coffee-mode.el coffee-mode.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "An Emacs major mode for CoffeeScript, unfancy JavaScript.";
+    homepage = https://github.com/defunkt/coffee-mode;
+    license = "GPLv2+";
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/color-theme/default.nix b/pkgs/applications/editors/emacs-modes/color-theme/default.nix
new file mode 100644
index 000000000000..9cc0e7fd42b2
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/color-theme/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, emacs}:
+
+stdenv.mkDerivation rec {
+  name = "color-theme-6.6.0";
+
+  src = fetchurl {
+    url = "http://download.savannah.gnu.org/releases/color-theme/${name}.tar.gz";
+    sha256 = "0yx1ghcjc66s1rl0v3d4r1k88ifw591hf814ly3d73acvh15zlsn";
+  };
+
+  # patches from http://aur.archlinux.org/packages.php?ID=54883
+  patches = [ ./fix-build.patch ./gnus-bug.diff ];
+
+  buildInputs = [ emacs ];
+
+  installFlags = [ "ELISPDIR=$(out)/share/emacs/site-lisp" ];
+  installTargets = "install-bin";
+
+  meta = {
+    description = "An emacs-lisp mode for skinning your emacs.";
+    homepage = http://www.nongnu.org/color-theme;
+    license = "GPLv2+";
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/color-theme/fix-build.patch b/pkgs/applications/editors/emacs-modes/color-theme/fix-build.patch
new file mode 100644
index 000000000000..cfc237c8cdc1
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/color-theme/fix-build.patch
@@ -0,0 +1,19 @@
+--- a/Makefile	2009-05-15 18:22:49.000000000 +0200
++++ b/Makefile	2009-05-16 08:59:36.000000000 +0200
+@@ -15,6 +15,7 @@
+ TARGET	= $(patsubst %.el,%.elc,$(SPECIAL) $(SOURCE))
+ MANUAL  = color-theme
+ MISC	= AUTHORS COPYING ChangeLog Makefile.defs Makefile $(AUTOLOADFILE).in
++LOADPATH = "$(shell pwd)" "$(shell pwd)/themes"
+ #AUTHORS CREDITS HISTORY NEWS README Makefile ChangeLog \
+ #ChangeLog.2005 ChangeLog.2004 ChangeLog.2003 ChangeLog.2002 \
+ #ChangeLog.2001 servers.pl color-theme-auto.in color-theme.texi
+@@ -47,7 +48,7 @@
+ 
+ %.elc: %.el
+ 	@$(EMACS) $(OPTIONCOMPILE) \
+-	--eval '(setq load-path (cons "." load-path))' \
++	--eval '(setq load-path (append load-path (list $(LOADPATH))))' \
+ 	-f batch-byte-compile $<
+ 
+ %.info: %.texi
diff --git a/pkgs/applications/editors/emacs-modes/color-theme/gnus-bug.diff b/pkgs/applications/editors/emacs-modes/color-theme/gnus-bug.diff
new file mode 100644
index 000000000000..9d227df562e1
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/color-theme/gnus-bug.diff
@@ -0,0 +1,28 @@
+diff -Naur color-theme-6.6.0.orig/color-theme.el color-theme-6.6.0.new/color-theme.el
+--- color-theme-6.6.0.orig/color-theme.el	2011-11-18 01:17:29.000000000 +0100
++++ color-theme-6.6.0.new/color-theme.el	2011-11-18 01:24:07.000000000 +0100
+@@ -73,9 +73,10 @@
+   "Non-nil if running XEmacs.")
+ 
+ ;; Add this since it appears to miss in emacs-2x
+-(or (fboundp 'replace-in-string)
+-    (defun replace-in-string (target old new)
+-      (replace-regexp-in-string old new  target)))
++(if (fboundp 'replace-in-string)
++    (defalias 'color-theme-replace-in-string 'replace-in-string)
++  (defsubst color-theme-replace-in-string (target old new &optional literal)
++    (replace-regexp-in-string old new target nil literal)))
+ 
+ ;; face-attr-construct has a problem in Emacs 20.7 and older when
+ ;; dealing with inverse-video faces.  Here is a short test to check
+@@ -1626,8 +1627,8 @@
+        (add-to-list 'color-themes
+                     (list ',n
+                           (upcase-initials
+-                           (replace-in-string
+-                            (replace-in-string 
++                           (color-theme-replace-in-string
++                            (color-theme-replace-in-string 
+                              (symbol-name ',n) "^color-theme-" "") "-" " "))
+                           ,author))
+        (defun ,n ()
diff --git a/pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix b/pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix
new file mode 100644
index 000000000000..b629186033f0
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/flymake-cursor/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "flymake-cursor-0.1.4";
+
+  src = fetchurl {
+    url = "http://www.emacswiki.org/emacs/download/flymake-cursor.el";
+    sha256 = "1wxqqmn2fk2b778nksvgn1mi7ajarcpc5lla90xx9jwz47d9hx02";
+  };
+
+  phases = [ "buildPhase" "installPhase"];
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    cp $src flymake-cursor.el
+    emacs --batch -f batch-byte-compile flymake-cursor.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install flymake-cursor.el flymake-cursor.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Displays flymake error msg in minibuffer after delay.";
+    homepage = http://www.emacswiki.org/emacs/flymake-cursor.el;
+    license = stdenv.lib.licenses.publicDomain;
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/gh/default.nix b/pkgs/applications/editors/emacs-modes/gh/default.nix
new file mode 100644
index 000000000000..28773e97c409
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/gh/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit, emacs, pcache, logito }:
+
+stdenv.mkDerivation rec {
+  name = "gh-0.5.3";
+
+  src = fetchgit {
+    url = "https://github.com/sigma/gh.el.git";
+    rev = "ef03b63d063ec22f03af449aa955c98dfad7f80e";
+    sha256 = "efa231e0091e8c7785385149dc97b2d8dc24aba65f4b0974b8ed7f62b7596ad3";
+  };
+
+  buildInputs = [ emacs ];
+  propagatedUserEnvPkgs = [ pcache logito ];
+
+  patchPhase = ''
+    sed -i Makefile \
+      -e "s|^ *EFLAGS *=|& -L ${pcache}/share/emacs/site-lisp -L ${logito}/share/emacs/site-lisp --eval '(setq user-emacs-directory \"./\")'|" \
+      -e "s|/usr/local|$out|" \
+      -e "s|/site-lisp/\$(PKGNAME)|/site-lisp|"
+  '';
+
+  buildPhase = "make lisp";
+
+  meta = {
+    description = "A (very early) GitHub client library for Emacs";
+    homepage = https://github.com/sigma/gh.el;
+    license = "GPLv2+";
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/gist/default.nix b/pkgs/applications/editors/emacs-modes/gist/default.nix
new file mode 100644
index 000000000000..21a2137dd392
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/gist/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchgit, emacs, gh, pcache, logito }:
+
+stdenv.mkDerivation rec {
+  name = "gist-1.0";
+
+  src = fetchgit {
+    url = "https://github.com/sigma/gist.el.git";
+    rev = "bbb457e4eaaf5f96cfaaa4f63021e3e542bfbfed";
+    sha256 = "469f9df52076d0c6038183cff4b9415bca98de66c08814a60b69729b44bdf294";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs -L ${gh}/share/emacs/site-lisp \
+          -L ${pcache}/share/emacs/site-lisp \
+          -L ${logito}/share/emacs/site-lisp \
+          --eval '(setq user-emacs-directory "./")' \
+          --batch -f batch-byte-compile gist.el
+  '';
+
+  propagatedUserEnvPkgs = [ gh pcache logito ];
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install gist.el gist.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Emacs integration for gist.github.com";
+    homepage = https://github.com/sigma/gist.el;
+    license = "GPLv2+";
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/haskell/default.nix b/pkgs/applications/editors/emacs-modes/haskell/default.nix
index f58b66a506ee..c8de8726284b 100644
--- a/pkgs/applications/editors/emacs-modes/haskell/default.nix
+++ b/pkgs/applications/editors/emacs-modes/haskell/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchgit, emacs }:
 
 stdenv.mkDerivation {
-  name = "haskell-mode-2.8.0.29-g7682f99";
+  name = "haskell-mode-2.8.0.29-gae3e4499d2";
 
   src = fetchgit {
     url = "http://github.com/haskell/haskell-mode.git";
-    rev = "7682f991acd63d9400597d5f4980f62d7b1c4c0b";
-    sha256 = "f4508a11fa65ece237c9ee9f623bc4e9ad3d3d58ab2fcacc8ddb080c29aac717";
+    rev = "ae3e4499d27a1468bdf88ffe0ce15cd7e4bb9f2a";
+    sha256 = "29a1725da620c13ff2b3b56906e76dd9f19317eee92bd5750b3aa9a4264effae";
   };
 
   buildInputs = [emacs];
diff --git a/pkgs/applications/editors/emacs-modes/htmlize/default.nix b/pkgs/applications/editors/emacs-modes/htmlize/default.nix
index 948beae82d47..d4de24d394c1 100644
--- a/pkgs/applications/editors/emacs-modes/htmlize/default.nix
+++ b/pkgs/applications/editors/emacs-modes/htmlize/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation {
-  name = "htmlize-1.37";
+  name = "htmlize-1.40";
 
   builder = ./builder.sh;
 
   src = fetchurl {
     url = http://fly.srk.fer.hr/~hniksic/emacs/htmlize.el.cgi;
-    sha256 = "70cf41a2ea6a478a45143a8cd672381c01ed894448200e602531acbf2b1fd160";
+    sha256 = "1v7pzif5b7dr6iyllqvzka8i6s23rsjdnmilnma054gv8d4shw6a";
   };
 
   meta = {
diff --git a/pkgs/applications/editors/emacs-modes/jade/default.nix b/pkgs/applications/editors/emacs-modes/jade/default.nix
new file mode 100644
index 000000000000..0c99ceaca22b
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/jade/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, emacs }:
+
+stdenv.mkDerivation {
+  name = "jade-mode-0-20120802";
+
+  src = fetchgit {
+    url = "https://github.com/brianc/jade-mode.git";
+    rev = "275ab149edb0f6bcfae6ac17ba456f3351191604";
+    sha256 = "3cd2bebcd66e59d60b8e5e538e65a8ffdfc9a53b86443090a284e8329d7cb09b";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs --batch -L . -f batch-byte-compile *.el
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/emacs/site-lisp
+    cp *.el *.elc $out/share/emacs/site-lisp/
+  '';
+
+  meta = {
+    description = "Emacs major mode for jade and stylus.";
+    homepage = https://github.com/brianc/jade-mode;
+    license = "GPLv2+";
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/js2/default.nix b/pkgs/applications/editors/emacs-modes/js2/default.nix
index 87661d75ff51..cbd883304348 100644
--- a/pkgs/applications/editors/emacs-modes/js2/default.nix
+++ b/pkgs/applications/editors/emacs-modes/js2/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchgit, emacs }:
 
 stdenv.mkDerivation {
-  name = "js2-mode-0-20120601";
+  name = "js2-mode-0-20120712";
 
   src = fetchgit {
     url = "git://github.com/mooz/js2-mode.git";
-    rev = "81bcbf7df7077db27facf0470cf9e31c18b8333e";
-    sha256 = "1bec62816ec9d5f5882832902020573d95d038fff25b17bf1975b84a3ab535c3";
+    rev = "f8cb9c52614e0a8e477f1ac557585ed950246c9b";
+    sha256 = "37055b7e8c1d9eee6b86f6b9b9d74ad196cc43701bc2263ffd539a3e44025047";
   };
 
   buildInputs = [ emacs ];
diff --git a/pkgs/applications/editors/emacs-modes/logito/default.nix b/pkgs/applications/editors/emacs-modes/logito/default.nix
new file mode 100644
index 000000000000..09161ec80678
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/logito/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "logito-0.1";
+
+  src = fetchgit {
+    url = "https://github.com/sigma/logito.git";
+    rev = "824acb89d2cc18cb47281a4fbddd81ad244a2052";
+    sha256 = "b9a7433417eafc5bc158f63dddf559b2044368eb3061f0264169de319c68fe4a";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs --batch -f batch-byte-compile logito.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install logito.el logito.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "tiny logging framework for Emacs";
+    homepage = https://github.com/sigma/logito;
+    license = "GPLv2+";
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/lorem-ipsum/default.nix b/pkgs/applications/editors/emacs-modes/lorem-ipsum/default.nix
new file mode 100644
index 000000000000..94427537003b
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/lorem-ipsum/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "lorem-ipsum-0.1";
+
+  src = fetchurl {
+    url = "http://www.emacswiki.org/emacs/download/lorem-ipsum.el";
+    sha256 = "122d0z3xqfaikgk34l7bh989mfxddin2ljinysp2lqw8djfi7jsl";
+  };
+
+  phases = [ "buildPhase" "installPhase"];
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    cp $src lorem-ipsum.el
+    emacs --batch -f batch-byte-compile lorem-ipsum.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install lorem-ipsum.el lorem-ipsum.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Insert dummy pseudo Latin text for emacs.";
+    homepage = http://www.emacswiki.org/emacs/LoremIpsum;
+    license = "GPLv2+";
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/magit/default.nix b/pkgs/applications/editors/emacs-modes/magit/default.nix
index f096d3b0057d..580b2761fa97 100644
--- a/pkgs/applications/editors/emacs-modes/magit/default.nix
+++ b/pkgs/applications/editors/emacs-modes/magit/default.nix
@@ -1,22 +1,32 @@
-{ stdenv, fetchurl, emacs, texinfo }:
+{ stdenv, fetchurl, emacs, texinfo, unzip }:
 
 let
-  version = "1.1.1";
+  version = "1.2.0";
 in
 stdenv.mkDerivation {
   name = "magit-${version}";
 
   src = fetchurl {
-    url = "http://github.com/downloads/magit/magit/magit-${version}.tar.gz";
-    sha256 = "0zp5qxippmalin2fr73w2alf2w7ilcahmybzdvgn4ch2s3dgvzcz";
+    url = "https://github.com/magit/magit/zipball/${version}";
+    sha256 = "1877s8ikvcb457mmljmw366h6pgg4zzx98qfazhqj8snl4yqsj4i";
+    name = "magit-${version}.zip";
   };
 
-  buildInputs = [emacs texinfo];
+  buildInputs = [ emacs texinfo unzip ];
 
   configurePhase = "makeFlagsArray=( PREFIX=$out SYSCONFDIR=$out/etc )";
 
+  # Add (require 'magit-site-init) to your ~/.emacs file to set-up magit mode.
+  postInstall = ''
+    mv $out/etc/emacs/site-start.d/50magit.el $out/share/emacs/site-lisp/magit-site-init.el
+    sed -i -e 's|50magit|magit-site-init|' $out/share/emacs/site-lisp/magit-site-init.el
+    rmdir $out/etc/emacs/site-start.d $out/etc/emacs $out/etc
+  '';
+
   meta = {
+    homepage = "https://github.com/magit/magit";
     description = "Magit, an Emacs interface to Git";
+    license = "GPLv3+";
 
     longDescription = ''
       With Magit, you can inspect and modify your Git repositories with
@@ -30,8 +40,6 @@ stdenv.mkDerivation {
       save you from learning Git itself.
     '';
 
-    license = "GPLv3+";
-    homepage = "https://github.com/magit/magit";
     platforms = stdenv.lib.platforms.all;
     maintainers = with stdenv.lib.maintainers; [ simons ludo ];
   };
diff --git a/pkgs/applications/editors/emacs-modes/org/default.nix b/pkgs/applications/editors/emacs-modes/org/default.nix
index fb4de650ee01..d3829bc9d115 100644
--- a/pkgs/applications/editors/emacs-modes/org/default.nix
+++ b/pkgs/applications/editors/emacs-modes/org/default.nix
@@ -1,30 +1,24 @@
-{ fetchurl, stdenv, emacs, texinfo, which }:
+{ fetchurl, stdenv, emacs, texinfo, which, texLive }:
 
 stdenv.mkDerivation rec {
-  name = "org-7.8.03";
+  name = "org-7.9.1";
 
   src = fetchurl {
     url = "http://orgmode.org/${name}.tar.gz";
-    sha256 = "49357cca7d892e70cd2dfcc0b5d96d9fd164ef5a1f251ace3865ecb27dc1e958";
+    sha256 = "0kz1dnzfpmmslwal150z9rxrnddjpaw2glx26qihpxzs0zzpw201";
   };
 
-  buildInputs = [ emacs texinfo ];
-
-  patchPhase =
-    '' sed -i "lisp/org-clock.el" -e's|"which"|"${which}/bin/which"|g'
-    '';
+  buildInputs = [ emacs ];
+  buildNativeInputs = [ texinfo texLive ];
 
   configurePhase =
-    '' sed -i Makefile \
-           -e "s|^prefix=.*$|prefix=$out|g"
+    '' sed -i mk/default.mk \
+           -e "s|^prefix\t=.*$|prefix=$out|g"
     '';
 
-  #XXX: fails because of missing UTILITIES/manfull.pl, currently not
-  # included in the release tarball, but git.
-
-  #postBuild =
-  #  '' make doc
-  #  '';
+  postBuild =
+    '' make doc
+    '';
 
   installPhase =
     '' make install install-info
diff --git a/pkgs/applications/editors/emacs-modes/org2blog/default.nix b/pkgs/applications/editors/emacs-modes/org2blog/default.nix
new file mode 100644
index 000000000000..c8c538c5cb7c
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/org2blog/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit, emacs, xmlRpc }:
+
+stdenv.mkDerivation rec {
+  name = "org2blog-0.5";
+
+  src = fetchgit {
+    url = https://github.com/punchagan/org2blog.git;
+    rev = "338abe30e9bc89684f8384f8deaf826b63844da6";
+    sha256 = "46ab31e90d0d54071c126b7d5599a3e82062baa79ddf26b988bcb88d306d6827";
+  };
+
+  buildInputs = [ emacs ];
+  propagatedUserEnvPkgs = [ xmlRpc ];
+
+  buildPhase = ''
+    emacs -L . -L ${xmlRpc}/share/emacs/site-lisp --batch -f batch-byte-compile *.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install *.el* $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "A tool to publish directly from Emacs’ org-mode to WordPress blogs.";
+    homepage = https://github.com/punchagan/org2blog;
+    license = "GPLv3+";
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/pcache/default.nix b/pkgs/applications/editors/emacs-modes/pcache/default.nix
new file mode 100644
index 000000000000..c0aa07726788
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/pcache/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "pcache-0.2.3";
+
+  src = fetchgit {
+    url = "https://github.com/sigma/pcache.git";
+    rev = "fa8f863546e2e8f2fc0a70f5cc766a7f584e01b6";
+    sha256 = "f7cdad5a729b24f96ec69db4adfd19daf45c27aaf3a0267385b252cb2e59daa0";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs --batch -f batch-byte-compile pcache.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install pcache.el pcache.elc $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Persistent caching for Emacs";
+    homepage = https://github.com/sigma/pcache.el;
+    license = "GPLv2+";
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/rect-mark/default.nix b/pkgs/applications/editors/emacs-modes/rect-mark/default.nix
new file mode 100644
index 000000000000..ac01e02b4334
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/rect-mark/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, emacs}:
+
+stdenv.mkDerivation rec {
+  name = "rect-mark-1.4";
+
+  src = fetchurl {
+    url = "http://emacswiki.org/emacs/download/rect-mark.el";
+    sha256 = "0pyyg53z9irh5jdfvh2qp4pm8qrml9r7lh42wfmdw6c7f56qryh8";
+  };
+
+  phases = [ "buildPhase" "installPhase"];
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    cp $src rect-mark.el
+    emacs --batch -f batch-byte-compile rect-mark.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install rect-mark.el* $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Mark a rectangle of text with highlighting.";
+    homepage = http://emacswiki.org/emacs/RectangleMark;
+    license = "GPLv2+";
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix b/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix
new file mode 100644
index 000000000000..a253e25cad45
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/sunrise-commander/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchgit, emacs}:
+
+stdenv.mkDerivation rec {
+  name = "sunrise-commander-6r435";
+
+  src = fetchgit {
+    url = https://github.com/escherdragon/sunrise-commander.git;
+    rev = "7a44ca7abd9fe79f87934c78d00dc2a91419a4f1";
+    sha256 = "2909beccc9daaa79e70876ac6547088c2459b624c364dda1886fe4d7adc7708b";
+  };
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    emacs -L . --batch -f batch-byte-compile *.el
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/emacs/site-lisp
+    install *.el* $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "Two-pane file manager for Emacs based on Dired and inspired by MC.";
+    homepage = http://www.emacswiki.org/emacs/Sunrise_Commander;
+    license = "GPLv3+";
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/xml-rpc/default.nix b/pkgs/applications/editors/emacs-modes/xml-rpc/default.nix
new file mode 100644
index 000000000000..87a732b5b4ca
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/xml-rpc/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl, emacs}:
+
+stdenv.mkDerivation rec {
+  name = "xml-rpc-1.6.8";
+
+  src = fetchurl {
+    url = https://launchpadlibrarian.net/40270196/xml-rpc.el;
+    sha256 = "0i8hf90yhrjwqrv7q1f2g1cff6ld8apqkka42fh01wkdys1fbm7b";
+  };
+
+  phases = [ "buildPhase" "installPhase"];
+
+  buildInputs = [ emacs ];
+
+  buildPhase = ''
+    cp $src xml-rpc.el
+    emacs --batch -f batch-byte-compile xml-rpc.el
+  '';
+
+  installPhase = ''
+    install -d $out/share/emacs/site-lisp
+    install xml-rpc.el* $out/share/emacs/site-lisp
+  '';
+
+  meta = {
+    description = "An elisp implementation of clientside XML-RPC.";
+    homepage = https://launchpad.net/xml-rpc-el;
+    license = "GPLv3+";
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/applications/editors/hexedit/default.nix b/pkgs/applications/editors/hexedit/default.nix
new file mode 100644
index 000000000000..07985dc214ae
--- /dev/null
+++ b/pkgs/applications/editors/hexedit/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "hexedit-${version}";
+  version = "1.2.12";
+
+  src = fetchurl {
+    url = "http://rigaux.org/${name}.src.tgz";
+    sha256 = "bcffbf3d128516cc4e1da64485866fbb5f62754f2af8327e7a527855186ba10f";
+  };
+
+  buildInputs = [ ncurses ];
+
+  meta = {
+    description = "View and edit files in hexadecimal or in ASCII";
+    homepage = "http://prigaux.chez.com/hexedit.html";
+    license = stdenv.lib.licenses.gpl2Plus;
+  };
+}
diff --git a/pkgs/applications/editors/joe/default.nix b/pkgs/applications/editors/joe/default.nix
index b6324e5879ce..0e97a036905c 100644
--- a/pkgs/applications/editors/joe/default.nix
+++ b/pkgs/applications/editors/joe/default.nix
@@ -1,10 +1,11 @@
 {stdenv, fetchurl} :
 
-stdenv.mkDerivation {
-  name = "joe-3.3";
+stdenv.mkDerivation rec {
+  name = "joe-3.7";
+
   src = fetchurl {
-    url = mirror://sourceforge/joe-editor/joe-3.3.tar.gz;
-    md5 = "02221716679c039c5da00c275d61dbf4";
+    url = "mirror://sourceforge/joe-editor/${name}.tar.gz";
+    sha256 = "0vqhffdjn3xwsfa383i6kdrpfwilq8b382ljjhy1v32smphmdr6a";
   };
 
   meta = {
diff --git a/pkgs/applications/editors/kdevelop/default.nix b/pkgs/applications/editors/kdevelop/default.nix
index 92b4da5280ac..249ede5ebd0e 100644
--- a/pkgs/applications/editors/kdevelop/default.nix
+++ b/pkgs/applications/editors/kdevelop/default.nix
@@ -3,18 +3,26 @@
 
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
-  version = "4.3.0";
+  version = "4.3.1";
   pname = "kdevelop";
 
   src = fetchurl {
     url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.bz2";
-    sha256 = "0vb2f5922r1da4va8sx2qn2i1lf2gqg7nfg594kncy98a9b1avnr";
+    sha256 = "0015hv39rqhyq1w6jw65lx7ls4l5pc3a2asvd5zsd65831vrfxxs";
   };
 
   buildInputs = [ kdevplatform kdebase_workspace okteta ];
 
   buildNativeInputs = [ cmake pkgconfig automoc4 shared_mime_info gettext perl ];
 
+  patches =
+    [ ( fetchurl {
+        url = https://git.reviewboard.kde.org/r/105211/diff/raw/;
+        name = "okteta-0.9.patch"; # fixes build with KDE-4.9.x
+        sha256 = "1mvqhw7jr1vi66l3jgam3slyfafcvwy4g3iapfi69dpfnzhmcxl0";
+      } )
+    ];
+
   NIX_CFLAGS_COMPILE = "-I${okteta}/include/KDE";
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index 7e03fd6b7b30..9e6b700f9efa 100644
--- a/pkgs/applications/editors/vim/configurable.nix
+++ b/pkgs/applications/editors/vim/configurable.nix
@@ -46,14 +46,14 @@ composableDerivation {} {
       ;
 
   cfg = {
-    pythonSupport    = getConfig [ "vim" "python" ] true;
-    darwinSupport    = getConfig [ "vim" "darwin" ] false;
-    nlsSupport       = getConfig [ "vim" "nls" ] false;
-    tclSupport       = getConfig [ "vim" "tcl" ] false;
-    multibyteSupport = getConfig [ "vim" "multibyte" ] false;
-    cscopeSupport    = getConfig [ "vim" "cscope" ] false;
+    pythonSupport    = config.vim.python or true;
+    darwinSupport    = config.vim.darwin or false;
+    nlsSupport       = config.vim.nls or false;
+    tclSupport       = config.vim.tcl or false;
+    multibyteSupport = config.vim.multibyte or false;
+    cscopeSupport    = config.vim.cscope or false;
     # add .nix filetype detection and minimal syntax highlighting support
-    ftNixSupport     = getConfig [ "vim" "ftNix" ] true;
+    ftNixSupport     = config.vim.ftNix or true;
   };
 
   #--enable-gui=OPTS     X11 GUI default=auto OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon
diff --git a/pkgs/applications/graphics/geeqie/default.nix b/pkgs/applications/graphics/geeqie/default.nix
index a166fc7010e1..2506b26e238a 100644
--- a/pkgs/applications/graphics/geeqie/default.nix
+++ b/pkgs/applications/graphics/geeqie/default.nix
@@ -2,11 +2,11 @@
 , intltool, gettext, libchamplain_0_6, fbida }:
 
 stdenv.mkDerivation rec {
-  name = "geeqie-1.0";
+  name = "geeqie-1.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/geeqie/${name}.tar.gz";
-    sha256 = "1p8z47cqdqqkn8b0fr5bqsfinz4dgqk4353s8f8d9ha6cik69bfi";
+    sha256 = "1kzy39z9505xkayyx7rjj2wda76xy3ch1s5z35zn8yli54ffhi2m";
   };
 
   preConfigure =
diff --git a/pkgs/applications/graphics/gimp/2.8.nix b/pkgs/applications/graphics/gimp/2.8.nix
index bf29ae13e5e7..44d9330043fb 100644
--- a/pkgs/applications/graphics/gimp/2.8.nix
+++ b/pkgs/applications/graphics/gimp/2.8.nix
@@ -4,11 +4,11 @@
 , python, pygtk, libart_lgpl, libexif, gettext, xlibs }:
 
 stdenv.mkDerivation rec {
-  name = "gimp-2.8.0";
+  name = "gimp-2.8.2";
   
   src = fetchurl {
     url = "ftp://ftp.gimp.org/pub/gimp/v2.8/${name}.tar.bz2";
-    md5 = "28997d14055f15db063eb92e1c8a7ebb";
+    md5 = "b542138820ca3a41cbd63fc331907955";
   };
   
   buildInputs = 
diff --git a/pkgs/applications/graphics/gimp/default.nix b/pkgs/applications/graphics/gimp/default.nix
index ad35b7512315..b59b2bb67503 100644
--- a/pkgs/applications/graphics/gimp/default.nix
+++ b/pkgs/applications/graphics/gimp/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, gtk, freetype
-, fontconfig, libart_lgpl, libtiff, libjpeg, libpng, libexif, zlib, perl
-, perlXMLParser, python, pygtk, gettext, xlibs, intltool, babl, gegl
+, fontconfig, libart_lgpl, libtiff, libjpeg, libpng12, libexif, zlib, perl
+, perlXMLParser, python, pygtk, gettext, xlibs, intltool, babl_0_0_22, gegl_0_0_22
 }:
 
 stdenv.mkDerivation rec {
@@ -13,8 +13,8 @@ stdenv.mkDerivation rec {
   
   buildInputs = [
     pkgconfig gtk freetype fontconfig
-    libart_lgpl libtiff libjpeg libpng libexif zlib perl
-    perlXMLParser python pygtk gettext intltool babl gegl
+    libart_lgpl libtiff libjpeg libpng12 libexif zlib perl
+    perlXMLParser python pygtk gettext intltool babl_0_0_22 gegl_0_0_22
   ];
 
   passthru = { inherit gtk; }; # probably its a good idea to use the same gtk in plugins ?
diff --git a/pkgs/applications/graphics/meshlab/default.nix b/pkgs/applications/graphics/meshlab/default.nix
index 9b39d8e8f1f7..a811d759f7eb 100644
--- a/pkgs/applications/graphics/meshlab/default.nix
+++ b/pkgs/applications/graphics/meshlab/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, qt, bzip2, lib3ds, levmar, muparser, unzip}:
 
 stdenv.mkDerivation rec {
-  name = "meshlab-1.2.3a";
+  name = "meshlab-1.3.2";
 
   src = fetchurl {
-    url = mirror://sourceforge/meshlab/MeshLabSrc_AllInc_v123a.tgz;
-    sha256 = "09w42q0x1yjr7l9ng952lic7vkb1arsvqg1fld5s297zwzfmsl9v";
+    url = "mirror://sourceforge/meshlab/meshlab/MeshLab%20v1.3.2/MeshLabSrc_AllInc_v132.tgz";
+    sha256 = "d57f0a99a55421aac54a66e2475d48f00f7b1752f9587cd69cf9b5b9c1a519b1";
   };
 
   # I don't know why I need this; without this, the rpath set at the beginning of the
@@ -13,13 +13,16 @@ stdenv.mkDerivation rec {
   dontPatchELF = true;
 
   buildPhase = ''
+    mkdir -p "$out/include"
+    cp -r vcglib "$out/include"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$out/include/vcglib"
     export NIX_LDFLAGS="-rpath $out/opt/meshlab $NIX_LDFLAGS"
     cd meshlab/src
     pushd external
     qmake -recursive external.pro
     make
     popd
-    qmake -recursive meshlabv12.pro
+    qmake -recursive meshlab_full.pro
     make
   '';
 
@@ -31,6 +34,8 @@ stdenv.mkDerivation rec {
     ln -s $out/opt/meshlab/meshlab $out/bin/meshlab
   '';
 
+  sourceRoot = ".";
+
   buildInputs = [ qt unzip ];
 
   meta = {
diff --git a/pkgs/applications/graphics/rapcad/default.nix b/pkgs/applications/graphics/rapcad/default.nix
new file mode 100644
index 000000000000..e83824bd685a
--- /dev/null
+++ b/pkgs/applications/graphics/rapcad/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchgit, qt4, cgal, boost, gmp, mpfr, flex, bison, dxflib}: 
+
+stdenv.mkDerivation rec {
+  version = "0.8.0";
+  name = "rapcad-${version}";
+
+  src = fetchgit {
+    url = "git://git.rapcad.org/rapcad";
+    rev = "refs/tags/v${version}";
+    sha256 = "37c7107dc4fcf8942a4ad35377c4e42e6aedfa35296e5fcf8d84882ae35087c7";
+  };
+  
+  buildInputs = [qt4 cgal boost gmp mpfr flex bison dxflib];
+
+  configurePhase = ''
+    qmake;
+    sed -e "s@/usr/@$out/@g" -i $(find . -name Makefile)
+  '';
+
+  meta = {
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    platforms = stdenv.lib.platforms.linux;
+    description = ''Constructive solid geometry package'';
+  };
+}
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index e8307a79cf75..828d55ad4789 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -20,7 +20,9 @@ stdenv.mkDerivation rec {
     "-DPYTHON_LIBPATH=${python}/lib"
   ];
 
-  NIX_CFLAGS_COMPILE = "-iquote ${ilmbase}/include/OpenEXR -I${python}/include/${python.libPrefix}";
+  NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR -I${python}/include/${python.libPrefix}";
+
+  enableParallelBuilding = true;
 
   meta = {
     description = "3D Creation/Animation/Publishing System";
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index d902fe3ffa13..b9b148483702 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     [ python pyqt4 sip popplerQt4 libpng imagemagick libjpeg
       fontconfig podofo qt4 pil chmlib icu
       pythonPackages.mechanize pythonPackages.lxml pythonPackages.dateutil
-      pythonPackages.cssutils pythonPackages.beautifulsoap
+      pythonPackages.cssutils pythonPackages.beautifulsoup
       pythonPackages.sqlite3 sqlite
     ];
 
diff --git a/pkgs/applications/misc/girara/default.nix b/pkgs/applications/misc/girara/default.nix
new file mode 100644
index 000000000000..2fa36b33eb06
--- /dev/null
+++ b/pkgs/applications/misc/girara/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, pkgconfig, gtk, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "girara-0.1.2";
+
+  src = fetchurl {
+    url = "http://pwmt.org/projects/girara/download/${name}.tar.gz";
+    sha256 = "89231d0da3c790e0765ad85d74f64cf50051b8bafe6065882e34e378ab14ec99";
+  };
+
+  buildInputs = [ pkgconfig gtk gettext ];
+
+  makeFlags = "PREFIX=$(out)";
+
+  meta = {
+    homepage = http://pwmt.org/projects/girara/;
+    description = "User interface library";
+    longDescription = ''
+      girara is a library that implements a GTK+ based VIM-like user interface
+      that focuses on simplicity and minimalism.
+    '';
+    license = "free";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
+
diff --git a/pkgs/applications/misc/gpsbabel/default.nix b/pkgs/applications/misc/gpsbabel/default.nix
index a8ccb1c0fef0..29d5b1ee7cc8 100644
--- a/pkgs/applications/misc/gpsbabel/default.nix
+++ b/pkgs/applications/misc/gpsbabel/default.nix
@@ -1,15 +1,19 @@
-{ fetchurl, stdenv, zlib, expat }:
+{ fetchurl, stdenv, zlib, expat, which }:
 
-stdenv.mkDerivation rec {
-  name = "gpsbabel-1.3.6";
+let version = "1.4.3"; in
+stdenv.mkDerivation {
+  name = "gpsbabel-${version}";
 
   src = fetchurl {
-    url = "http://www.gpsbabel.org/plan9.php?dl=${name}.tar.gz";
-    name = "${name}.tar.gz";
-    sha256 = "1dm9lpcdsj0vz699zz932xc1vphvap627wl0qp61izlkzh25vg88";
+    # gpgbabel.org makes it hard to get the source tarball automatically, so
+    # get it from elsewhere.
+    url = "mirror://debian/pool/main/g/gpsbabel/gpsbabel_${version}.orig.tar.gz";
+    sha256 = "1s31xa36ivf836h89m1f3qiaz3c3znvqjdm0bnh8vr2jjlrz9jdi";
   };
 
-  buildInputs = [ zlib expat ];
+  # FIXME: Would need libxml2 for one of the tests, but that in turns require
+  # network access for the XML schemas.
+  buildInputs = [ zlib expat which ];
 
   /* FIXME: Building the documentation, with "make doc", requires this:
 
@@ -17,7 +21,10 @@ stdenv.mkDerivation rec {
 
     But FOP isn't packaged yet.  */
 
-  configureFlags = "--with-zlib=system";
+  preConfigure = "cd gpsbabel";
+  configureFlags = [ "--with-zlib=system" ];
+
+  doCheck = true;
 
   meta = {
     description = "GPSBabel, a tool to convert, upload and download data from GPS and Map programs";
@@ -44,5 +51,8 @@ stdenv.mkDerivation rec {
     homepage = http://www.gpsbabel.org/;
 
     license = "GPLv2+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.gnu;         # arbitrary choice
   };
 }
diff --git a/pkgs/applications/misc/grass/default.nix b/pkgs/applications/misc/grass/default.nix
index 067e43545737..6abf6da4a69f 100644
--- a/pkgs/applications/misc/grass/default.nix
+++ b/pkgs/applications/misc/grass/default.nix
@@ -1,4 +1,4 @@
-{getConfig, ...}@a:
+{ config, ... }@a:
 
 # You can set gui by exporting GRASS_GUI=..
 # see http://grass.itc.it/gdp/html_grass64/g.gui.html
@@ -36,31 +36,31 @@ a.composableDerivation.composableDerivation {} (fix: {
   ];
 
   cfg = {
-    _64bitSupport = getConfig ["grass" "64bitSupport"] true;
-    cursesSupport = getConfig ["grass" "curses"] true;
-    gdalSupport = getConfig ["grass" "gdal"] true;
-    pythonSupport = getConfig ["grass" "python"] true;
-    wxwidgetsSupport = getConfig ["grass" "wxwidgets"] true;
-    readlineSupport = getConfig ["grass" "readline"] true;
-    jpegSupport = getConfig ["grass" "jpeg"] true;
-    tiffSupport = getConfig ["grass" "tiff"] true;
-    pngSupport = getConfig ["grass" "png"] true;
-    tcltkSupport = getConfig ["grass" "tcltk"] true;
-    postgresSupport = getConfig ["grass" "postgres"] true;
-    mysqlSupport = getConfig ["grass" "mysql"] true;
-    sqliteSupport = getConfig ["grass" "sqlite"] true;
-    ffmpegSupport = getConfig ["grass" "ffmpeg"] true;
-    openglSupport = getConfig ["grass" "opengl"] true;
-    odbcSupport = getConfig ["grass" "odbc"] false; # fails to find libodbc - why ?
-    fftwSupport = getConfig ["grass" "fftw"] true;
-    blasSupport = getConfig ["grass" "blas"] true;
-    lapackSupport = getConfig ["grass" "lapack"] true;
-    cairoSupport = getConfig ["grass" "cairo"] true;
-    motifSupport = getConfig ["grass" "motif"] true;
-    freetypeSupport = getConfig ["grass" "freetype"] true;
-    projSupport = getConfig ["grass" "proj"] true;
-    opendwgSupport = getConfig ["grass" "dwg"] false;
-    largefileSupport = getConfig ["grass" "largefile"] true;
+    _64bitSupport = config.grass."64bitSupport" or true;
+    cursesSupport = config.grass.curses or true;
+    gdalSupport = config.grass.gdal or true;
+    pythonSupport = config.grass.python or true;
+    wxwidgetsSupport = config.grass.wxwidgets or true;
+    readlineSupport = config.grass.readline or true;
+    jpegSupport = config.grass.jpeg or true;
+    tiffSupport = config.grass.tiff or true;
+    pngSupport = config.grass.png or true;
+    tcltkSupport = config.grass.tcltk or true;
+    postgresSupport = config.grass.postgres or true;
+    mysqlSupport = config.grass.mysql or true;
+    sqliteSupport = config.grass.sqlite or true;
+    ffmpegSupport = config.grass.ffmpeg or true;
+    openglSupport = config.grass.opengl or true;
+    odbcSupport = config.grass.odbc or false; # fails to find libodbc - why ?
+    fftwSupport = config.grass.fftw or true;
+    blasSupport = config.grass.blas or true;
+    lapackSupport = config.grass.lapack or true;
+    cairoSupport = config.grass.cairo or true;
+    motifSupport = config.grass.motif or true;
+    freetypeSupport = config.grass.freetype or true;
+    projSupport = config.grass.proj or true;
+    opendwgSupport = config.grass.dwg or false;
+    largefileSupport = config.grass.largefile or true;
   };
 
   # ?? NLS support:                no
diff --git a/pkgs/applications/misc/gxneur/default.nix b/pkgs/applications/misc/gxneur/default.nix
new file mode 100644
index 000000000000..520b8304f63f
--- /dev/null
+++ b/pkgs/applications/misc/gxneur/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, gtk2, xorg, glib, xneur_0_13, libglade, GConf, pcre }:
+
+stdenv.mkDerivation {
+  name = "gxneur-0.13.0";
+  
+  src = fetchurl {
+    url = http://dists.xneur.ru/release-0.13.0/tgz/gxneur-0.13.0.tar.bz2;
+    sha256 = "f093428a479158247a7ff8424f0aec9af9f7b1d05b191cf30b7c534965a6839f";
+  };
+
+  buildInputs = [
+    xorg.libX11 pkgconfig  glib gtk2 xorg.libXpm xorg.libXt xorg.libXext xneur_0_13
+    libglade GConf pcre
+  ];
+
+  preConfigure = ''
+    sed -e 's@-Werror@@' -i configure
+    sed -e 's@"xneur"@"${xneur_0_13}/bin/xneur"@' -i src/misc.c
+  '';
+
+  meta = {
+    description = "GUI for XNEUR keyboard layout switcher";
+  };
+}
diff --git a/pkgs/applications/misc/ikiwiki/default.nix b/pkgs/applications/misc/ikiwiki/default.nix
index f3fb575c6e57..1f99a02f429f 100644
--- a/pkgs/applications/misc/ikiwiki/default.nix
+++ b/pkgs/applications/misc/ikiwiki/default.nix
@@ -1,7 +1,8 @@
 { stdenv, fetchurl, perl, gettext, makeWrapper, PerlMagick, YAML
 , TextMarkdown, URI, HTMLParser, HTMLScrubber, HTMLTemplate, TimeDate
 , CGISession, CGIFormBuilder, DBFile, LocaleGettext, RpcXML, XMLSimple
-, YAMLLibYAML, which, HTMLTree
+, YAMLLibYAML, which, HTMLTree, AuthenPassphrase, NetOpenIDConsumer
+, LWPxParanoidAgent, CryptSSLeay
 , gitSupport ? false, git ? null
 , docutilsSupport ? false, python ? null, docutils ? null
 , monotoneSupport ? false, monotone ? null
@@ -22,7 +23,7 @@ assert mercurialSupport -> (mercurial != null);
 
 let
   name = "ikiwiki";
-  version = "3.20120629";
+  version = "3.20120725";
 
   lib = stdenv.lib;
 in
@@ -31,12 +32,13 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://ftp.de.debian.org/debian/pool/main/i/ikiwiki/${name}_${version}.tar.gz";
-    sha256 = "7e39cdb727f261ce20fde5f0b05966680589a3d028c569780addd4b530382f07";
+    sha256 = "b600096a77b17e4a9e8a9552c4d36e01ed9217a0f8ff8a4f15110cf80e7adfad";
   };
 
   buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate
     TimeDate gettext makeWrapper DBFile CGISession CGIFormBuilder LocaleGettext
-    RpcXML XMLSimple PerlMagick YAML YAMLLibYAML which HTMLTree ]
+    RpcXML XMLSimple PerlMagick YAML YAMLLibYAML which HTMLTree AuthenPassphrase
+    NetOpenIDConsumer LWPxParanoidAgent CryptSSLeay ]
     ++ lib.optionals docutilsSupport [python docutils]
     ++ lib.optionals gitSupport [git]
     ++ lib.optionals monotoneSupport [monotone]
@@ -70,6 +72,11 @@ stdenv.mkDerivation {
     done
   '';
 
+  preCheck = ''
+    # Git needs some help figuring this out during test suite run.
+    export EMAIL="nobody@example.org"
+  '';
+
   checkTarget = "test";
   doCheck = true;
 
diff --git a/pkgs/applications/misc/lyx/default.nix b/pkgs/applications/misc/lyx/default.nix
index 4358c3fe6e75..cb832ed99f5c 100644
--- a/pkgs/applications/misc/lyx/default.nix
+++ b/pkgs/applications/misc/lyx/default.nix
@@ -1,18 +1,27 @@
-# I haven't put much effort into this expressions .. so some optional depencencies may be missing - Marc
 { fetchurl, stdenv, texLive, python, makeWrapper, pkgconfig
-, libX11, qt
+, libX11, qt4, enchant #, mythes, boost
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.0.3";
+  version = "2.0.4";
   name = "lyx-${version}";
 
   src = fetchurl {
     url = "ftp://ftp.lyx.org/pub/lyx/stable/2.0.x/${name}.tar.xz";
-    sha256 = "1j2sl22w41h4vrgnxv2n0s7d11k6zchjbggjw3ai9yxcahvrj72f";
+    sha256 = "137dzmz1z6aqz9mdj8gmmi0k60s9sfn6gy916j175cwzq6hpncb8";
   };
 
-  buildInputs = [texLive qt python makeWrapper pkgconfig ];
+  configureFlags = [
+    #"--without-included-boost"
+    /*  Boost is a huge dependency from which 1.4 MB of libs would be used.
+        Using internal boost stuff only increases executable by around 0.2 MB. */
+    #"--without-included-mythes" # such a small library isn't worth a split package
+  ];
+
+  buildInputs = [
+    texLive qt4 python makeWrapper pkgconfig
+    enchant # mythes boost
+  ];
 
   meta = {
     description = "WYSIWYM frontend for LaTeX, DocBook, etc.";
diff --git a/pkgs/applications/misc/mathblog/default.nix b/pkgs/applications/misc/mathblog/default.nix
deleted file mode 100644
index e5ed53a56a03..000000000000
--- a/pkgs/applications/misc/mathblog/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ cabal, ConfigFile, filepath, HStringTemplate, HUnit, pandoc
-, pandocTypes, SHA, testFramework, testFrameworkHunit, time
-}:
-
-cabal.mkDerivation (self: {
-  pname = "mathblog";
-  version = "0.5";
-  sha256 = "01iyzrwscqirhcr4622d0n16mr4p54qbvg5m2a0ns36j59xfd79g";
-  isLibrary = false;
-  isExecutable = true;
-  buildDepends = [
-    ConfigFile filepath HStringTemplate HUnit pandoc pandocTypes SHA
-    testFramework testFrameworkHunit time
-  ];
-  meta = {
-    description = "A program for creating and managing a static weblog with LaTeX math and function graphs";
-    license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
-  };
-})
diff --git a/pkgs/applications/misc/st/default.nix b/pkgs/applications/misc/st/default.nix
new file mode 100644
index 000000000000..5ac2ad6b9ad8
--- /dev/null
+++ b/pkgs/applications/misc/st/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, libX11, ncurses}:
+
+stdenv.mkDerivation rec {
+  name = "st-0.2.1";
+  
+  src = fetchurl {
+    url = http://hg.suckless.org/st/archive/0.2.1.tar.gz;
+    sha256 = "15yqyys69ifjc4vrzvamrg7x0pwa60mnjpi0kap4y9ykhds83xab";
+  };
+  
+  buildInputs = [ libX11 ncurses ];
+
+  installPhase = ''
+    TERMINFO=$out/share/terminfo make install PREFIX=$out
+  '';
+    
+  meta = {
+    homepage = http://st.suckless.org/;
+    license = "MIT";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/applications/misc/surf/default.nix b/pkgs/applications/misc/surf/default.nix
index 3164f0c1a94a..61d2e6a65bd0 100644
--- a/pkgs/applications/misc/surf/default.nix
+++ b/pkgs/applications/misc/surf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "surf-${version}";
-  version="0.4.1";
+  version="0.5";
 
   src = fetchurl {
     url = "http://dl.suckless.org/surf/surf-${version}.tar.gz";
-    sha256 = "0im5psjw0r8av3zjyy2wqcl6y5ylwnrab5kfcwc23bsbx2irnw4k";
+    sha256 = "19qfkwdk6p5hcwnnplscp1kmypz74mga7x6iqy6w3g18s221f2mx";
   };
 
   buildInputs = [ gtk webkit pkgconfig glib libsoup ];
diff --git a/pkgs/applications/misc/xpdf/default.nix b/pkgs/applications/misc/xpdf/default.nix
index d653c9728504..5218df775955 100644
--- a/pkgs/applications/misc/xpdf/default.nix
+++ b/pkgs/applications/misc/xpdf/default.nix
@@ -1,4 +1,4 @@
-{ enableGUI ? true, enablePDFtoPPM ? true, useT1Lib ? true
+{ enableGUI ? true, enablePDFtoPPM ? true, useT1Lib ? false
 , stdenv, fetchurl, x11 ? null, motif ? null, freetype ? null, t1lib ? null
 , base14Fonts ? null
 }:
@@ -7,6 +7,8 @@ assert enableGUI -> x11 != null && motif != null && freetype != null;
 assert enablePDFtoPPM -> freetype != null;
 assert useT1Lib -> t1lib != null;
 
+assert !useT1Lib; # t1lib has multiple unpatched security vulnerabilities
+
 stdenv.mkDerivation {
   name = "xpdf-3.03";
 
diff --git a/pkgs/applications/misc/zathura/builder.sh b/pkgs/applications/misc/zathura/builder.sh
new file mode 100644
index 000000000000..9ca45b2cc992
--- /dev/null
+++ b/pkgs/applications/misc/zathura/builder.sh
@@ -0,0 +1,11 @@
+source $stdenv/setup
+
+mkdir -pv $out/bin/
+
+cat > $out/bin/zathura <<EOF
+#!/bin/sh
+exec $zathura --plugins-dir=$plugins_path "\$@"
+EOF
+
+chmod 755 $out/bin/zathura
+
diff --git a/pkgs/applications/misc/zathura/core/default.nix b/pkgs/applications/misc/zathura/core/default.nix
new file mode 100644
index 000000000000..0c58965fc19f
--- /dev/null
+++ b/pkgs/applications/misc/zathura/core/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, gtk, girara, gettext }:
+
+stdenv.mkDerivation rec {
+
+  version = "0.1.2";
+
+  name = "zathura-core-${version}";
+
+  src = fetchurl {
+    url = "http://pwmt.org/projects/zathura/download/zathura-${version}.tar.gz";
+    sha256 = "a496c25071e54f675b65ee5eab02fd002c04c2d7d5cf4aa8a1cb517cc13beaef";
+  };
+
+  buildInputs = [ pkgconfig gtk girara gettext ];
+
+  makeFlags = "PREFIX=$(out)";
+
+  meta = {
+    homepage = http://pwmt.org/projects/zathura/;
+    description = "A core component for zathura PDF viewer";
+    license = "free";
+    platforms = stdenv.lib.platforms.linux;
+
+    # Set lower priority in order to provide user with a wrapper script called
+    # 'zathura' instead of real zathura executable. The wrapper will build
+    # plugin path argument before executing the original.
+    priority = 1;
+  };
+}
diff --git a/pkgs/applications/misc/zathura/default.nix b/pkgs/applications/misc/zathura/default.nix
index 2e58a028a30f..b5ba4f9ada75 100644
--- a/pkgs/applications/misc/zathura/default.nix
+++ b/pkgs/applications/misc/zathura/default.nix
@@ -1,27 +1,41 @@
-{ stdenv, fetchurl, pkgconfig, gtk, poppler }:
-
-stdenv.mkDerivation rec {
-  name = "zathura-0.0.8.4";
-  
-  src = fetchurl {
-    url = "http://pwmt.org/download/${name}.tar.gz";
-    sha256 = "03iq6n7bpgrkq3l8b2ab3flcfxrqpxc1f3ycn31xr2b6bjwi72qn";
-  };
-  
-  buildInputs = [ pkgconfig gtk poppler ];
-
-  makeFlags = "PREFIX=$(out)";
-  
-  meta = {
-    homepage = https://pwmt.org/zathura/;
-    description = "A highly customizable and functional PDF viewer";
-    longDescription = ''
-      Zathura is a highly customizable and functional PDF viewer based on the
-      poppler rendering library and the gtk+ toolkit. The idea behind zathura
-      is an application that provides a minimalistic and space saving interface
-      as well as an easy usage that mainly focuses on keyboard interaction.
-    '';
-    license = "free";
-    platforms = stdenv.lib.platforms.linux;
+{ callPackage, pkgs }:
+
+rec {
+  inherit (pkgs) stdenv;
+
+  zathura_core = callPackage ./core { };
+
+  zathura_pdf_poppler = callPackage ./pdf-poppler { };
+
+  zathura_djvu = callPackage ./djvu { };
+
+  zathura_ps = callPackage ./ps { };
+
+  zathuraWrapper = stdenv.mkDerivation rec {
+
+    name = "zathura-0.1.2";
+
+    plugins_path = stdenv.lib.makeSearchPath "lib" [
+      zathura_pdf_poppler
+      zathura_djvu
+      zathura_ps
+    ];
+
+    zathura = "${zathura_core}/bin/zathura";
+
+    builder = ./builder.sh;
+
+    meta = {
+      homepage = http://pwmt.org/projects/zathura/;
+      description = "A highly customizable and functional PDF viewer";
+      longDescription = ''
+        Zathura is a highly customizable and functional PDF viewer based on the
+        poppler rendering library and the gtk+ toolkit. The idea behind zathura
+        is an application that provides a minimalistic and space saving interface
+        as well as an easy usage that mainly focuses on keyboard interaction.
+      '';
+      license = "free";
+    };
   };
 }
+
diff --git a/pkgs/applications/misc/zathura/djvu/default.nix b/pkgs/applications/misc/zathura/djvu/default.nix
new file mode 100644
index 000000000000..c4656e732364
--- /dev/null
+++ b/pkgs/applications/misc/zathura/djvu/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, gtk, zathura_core, girara, djvulibre, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "zathura-djvu-0.1.1";
+
+  src = fetchurl {
+    url = "http://pwmt.org/projects/zathura/plugins/download/${name}.tar.gz";
+    sha256 = "04adad7bf1bb392eae4b7b856fe7d40a137f8185ac274289df922758ae827172";
+  };
+
+  buildInputs = [ pkgconfig djvulibre gettext zathura_core gtk girara ];
+
+  patches = [ ./gtkflags.patch ];
+
+  makeFlags = "PREFIX=$(out) PLUGINDIR=$(out)/lib";
+
+  meta = {
+    homepage = http://pwmt.org/projects/zathura/;
+    description = "A zathura DJVU plugin";
+    longDescription = ''
+	  The zathura-djvu plugin adds DjVu support to zathura by using the
+	  djvulibre library.
+    '';
+    license = "free";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
+
diff --git a/pkgs/applications/misc/zathura/djvu/gtkflags.patch b/pkgs/applications/misc/zathura/djvu/gtkflags.patch
new file mode 100644
index 000000000000..2a2fe298a7b9
--- /dev/null
+++ b/pkgs/applications/misc/zathura/djvu/gtkflags.patch
@@ -0,0 +1,23 @@
+--- a/config.mk	2012-05-14 01:13:09.009740082 +0400
++++ b/config.mk	2012-05-14 01:13:50.400525700 +0400
+@@ -11,6 +11,9 @@
+ LIBDIR ?= ${PREFIX}/lib
+ 
+ # libs
++GTK_INC ?= $(shell pkg-config --cflags gtk+-2.0)
++GTK_LIB ?= $(shell pkg-config --libs gtk+-2.0)
++
+ CAIRO_INC ?= $(shell pkg-config --cflags cairo)
+ CAIRO_LIB ?= $(shell pkg-config --libs cairo)
+ 
+@@ -29,8 +32,8 @@
+ PLUGINDIR = ${LIBDIR}/zathura
+ endif
+ 
+-INCS = ${GIRARA_INC} ${GLIB_INC} ${DJVU_INC} ${ZATHURA_INC}
+-LIBS = ${GIRARA_LIB} ${GLIB_LIB} ${DJVU_LIB}
++INCS = ${GIRARA_INC} ${GLIB_INC} ${DJVU_INC} ${ZATHURA_INC} ${GTK_INC}
++LIBS = ${GIRARA_LIB} ${GLIB_LIB} ${DJVU_LIB} ${GTK_LIB}
+ 
+ # flags
+ CFLAGS += -std=c99 -fPIC -pedantic -Wall -Wno-format-zero-length $(INCS)
diff --git a/pkgs/applications/misc/zathura/pdf-poppler/default.nix b/pkgs/applications/misc/zathura/pdf-poppler/default.nix
new file mode 100644
index 000000000000..17e00b4e6220
--- /dev/null
+++ b/pkgs/applications/misc/zathura/pdf-poppler/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, pkgconfig, zathura_core, girara, poppler, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "zathura-pdf-poppler-0.1.1";
+
+  src = fetchurl {
+    url = "http://pwmt.org/projects/zathura/plugins/download/${name}.tar.gz";
+    sha256 = "bec5fee721fcaee9f4b53d3882908b19efa82815393aa8c3619ff948b909d4a7";
+  };
+
+  buildInputs = [ pkgconfig poppler gettext zathura_core girara ];
+
+  makeFlags = "PREFIX=$(out) PLUGINDIR=$(out)/lib";
+
+  meta = {
+    homepage = http://pwmt.org/projects/zathura/;
+    description = "A zathura PDF plugin";
+    longDescription = ''
+      The zathura-pdf-poppler plugin adds PDF support to zathura by 
+      using the poppler rendering engine.
+    '';
+    license = "free";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/zathura/ps/default.nix b/pkgs/applications/misc/zathura/ps/default.nix
new file mode 100644
index 000000000000..ae9aeee7715e
--- /dev/null
+++ b/pkgs/applications/misc/zathura/ps/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, pkgconfig, gtk, zathura_core, girara, libspectre, gettext }:
+
+stdenv.mkDerivation rec {
+  name = "zathura-ps-0.1.0";
+
+  src = fetchurl {
+    url = "http://pwmt.org/projects/zathura/plugins/download/${name}.tar.gz";
+    sha256 = "1669fd11e436636cdedb2cde206b562f4f9c666cea9773f6f2014e765fd62789";
+  };
+
+  buildInputs = [ pkgconfig libspectre gettext zathura_core gtk girara ];
+
+  patches = [ ./gtkflags.patch ];
+
+  makeFlags = "PREFIX=$(out) PLUGINDIR=$(out)/lib";
+
+  meta = {
+    homepage = http://pwmt.org/projects/zathura/;
+    description = "A zathura PS plugin";
+    longDescription = ''
+      The zathura-ps plugin adds PS support to zathura by using the
+      libspectre library.
+      '';
+    license = "free";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
+
diff --git a/pkgs/applications/misc/zathura/ps/gtkflags.patch b/pkgs/applications/misc/zathura/ps/gtkflags.patch
new file mode 100644
index 000000000000..7c944a12f0ef
--- /dev/null
+++ b/pkgs/applications/misc/zathura/ps/gtkflags.patch
@@ -0,0 +1,25 @@
+diff --git a/config.mk b/config.mk.new
+index c3a7b37..0cbce67 100644
+--- a/config.mk
++++ b/config.mk
+@@ -10,6 +10,9 @@ ZATHURA_VERSION_CHECK ?= $(shell pkg-config --atleast-version=$(ZATHURA_MIN_VERS
+ PREFIX ?= /usr
+ 
+ # libs
++GTK_INC ?= $(shell pkg-config --cflags gtk+-2.0)
++GTK_LIB ?= $(shell pkg-config --libs gtk+-2.0)
++
+ CAIRO_INC ?= $(shell pkg-config --cflags cairo)
+ CAIRO_LIB ?= $(shell pkg-config --libs cairo)
+ 
+@@ -26,8 +29,8 @@ ZATHURA_INC ?= $(shell pkg-config --cflags zathura)
+ PLUGINDIR ?= $(shell pkg-config --variable=plugindir zathura)
+ PLUGINDIR ?= ${PREFIX}/lib/zathura
+ 
+-INCS = ${GLIB_INC} ${SPECTRE_INC} ${GIRARA_INC} ${ZATHURA_INC}
+-LIBS = ${GLIB_LIB} ${SPECTRE_LIB} ${GIRARA_LIB}
++INCS = ${GLIB_INC} ${SPECTRE_INC} ${GIRARA_INC} ${ZATHURA_INC} ${GTK_INC}
++LIBS = ${GLIB_LIB} ${SPECTRE_LIB} ${GIRARA_LIB} ${GTK_LIB}
+ 
+ # flags
+ CFLAGS += -std=c99 -fPIC -pedantic -Wall -Wno-format-zero-length $(INCS)
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index 4c3a02dcecc2..33f9283b47ad 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -1,7 +1,4 @@
-{ stdenv, getConfig, fetchurl, makeWrapper, which
-
-# this is needed in order to build the versions older than 21.x
-, subversion
+{ stdenv, config, fetchurl, makeWrapper, which
 
 # default dependencies
 , bzip2, flac, speex
@@ -25,30 +22,33 @@
 , libselinux # config.selinux
 }:
 
+with stdenv.lib;
+
 let
-  mkConfigurable = stdenv.lib.mapAttrs (flag: default: getConfig ["chromium" flag] default);
+  mkConfigurable = mapAttrs (flag: default: attrByPath ["chromium" flag] default config);
 
-  config = mkConfigurable {
+  cfg = mkConfigurable {
     channel = "stable";
     selinux = false;
     nacl = false;
-    openssl = true;
+    openssl = false;
     gnome = false;
     gnomeKeyring = false;
     proprietaryCodecs = true;
     cups = false;
-    pulseaudio = getConfig ["pulseaudio"] true;
+    pulseaudio = config.pulseaudio or true;
   };
 
-  sourceInfo = builtins.getAttr config.channel (import ./sources.nix);
+  sourceInfo = builtins.getAttr cfg.channel (import ./sources.nix);
 
-  mkGypFlags = with stdenv.lib; let
-    sanitize = value:
-      if value == true then "1"
-      else if value == false then "0"
-      else "${value}";
-    toFlag = key: value: "-D${key}=${sanitize value}";
-  in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs));
+  mkGypFlags =
+    let
+      sanitize = value:
+        if value == true then "1"
+        else if value == false then "0"
+        else "${value}";
+      toFlag = key: value: "-D${key}=${sanitize value}";
+    in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs));
 
   gypFlagsUseSystemLibs = {
     use_system_bzip2 = true;
@@ -59,7 +59,7 @@ let
     use_system_libpng = true;
     use_system_libxml = true;
     use_system_speex = true;
-    use_system_ssl = true;
+    use_system_ssl = cfg.openssl;
     use_system_stlport = true;
     use_system_xdg_utils = true;
     use_system_yasm = true;
@@ -73,14 +73,28 @@ let
     use_system_v8 = false;
   };
 
-  needsSubversion = stdenv.lib.versionOlder sourceInfo.version "21.0.0.0";
-
   defaultDependencies = [
     bzip2 flac speex
     libevent expat libjpeg
     libpng libxml2 libxslt
     xdg_utils yasm zlib
-  ] ++ stdenv.lib.optional needsSubversion subversion;
+  ];
+
+  seccompPatch = let
+    pre22 = versionOlder sourceInfo.version "22.0.0.0";
+  in if pre22 then ./enable_seccomp.patch else ./enable_seccomp22.patch;
+
+  # XXX: this reverts r151720 to prevent http://crbug.com/143623
+  maybeRevertZlibChanges = let
+    below22 = versionOlder sourceInfo.version "22.0.0.0";
+    patch = fetchurl {
+      name = "revert-r151720";
+      url = "http://git.chromium.org/gitweb/?p=chromium.git;a=commitdiff_plain;"
+          + "hp=4419ec6414b33b6b19bb2e380b4998ed5193ecab;"
+          + "h=0fabb4fda7059a8757422e8a44e70deeab28e698";
+      sha256 = "0n0d6mkg89g8q63cifapzpg9dxfs2n6xvk4k13szhymvf67b77pf";
+    };
+  in optional (!below22) patch;
 
 in stdenv.mkDerivation rec {
   name = "${packageName}-${version}";
@@ -97,27 +111,28 @@ in stdenv.mkDerivation rec {
     which makeWrapper
     python perl pkgconfig
     nspr udev
-    (if config.openssl then openssl else nss)
+    (if cfg.openssl then openssl else nss)
     utillinux alsaLib
     gcc bison gperf
     krb5
     glib gtk dbus_glib
     libXScrnSaver libXcursor mesa
-  ] ++ stdenv.lib.optional config.gnomeKeyring libgnome_keyring
-    ++ stdenv.lib.optionals config.gnome [ gconf libgcrypt ]
-    ++ stdenv.lib.optional config.selinux libselinux
-    ++ stdenv.lib.optional config.cups libgcrypt
-    ++ stdenv.lib.optional config.pulseaudio pulseaudio;
+  ] ++ optional cfg.gnomeKeyring libgnome_keyring
+    ++ optionals cfg.gnome [ gconf libgcrypt ]
+    ++ optional cfg.selinux libselinux
+    ++ optional cfg.cups libgcrypt
+    ++ optional cfg.pulseaudio pulseaudio;
 
-  opensslPatches = stdenv.lib.optional config.openssl openssl.patches;
+  opensslPatches = optional cfg.openssl openssl.patches;
 
   prePatch = "patchShebangs .";
 
-  patches = stdenv.lib.optional (!config.selinux) ./enable_seccomp.patch
-         ++ stdenv.lib.optional config.cups ./cups_allow_deprecated.patch
-         ++ stdenv.lib.optional config.pulseaudio ./pulseaudio_array_bounds.patch;
+  patches = optional (!cfg.selinux) seccompPatch
+         ++ optional cfg.cups ./cups_allow_deprecated.patch
+         ++ optional cfg.pulseaudio ./pulseaudio_array_bounds.patch
+         ++ maybeRevertZlibChanges;
 
-  postPatch = stdenv.lib.optionalString config.openssl ''
+  postPatch = optionalString cfg.openssl ''
     cat $opensslPatches | patch -p1 -d third_party/openssl/openssl
   '';
 
@@ -125,21 +140,21 @@ in stdenv.mkDerivation rec {
     linux_use_gold_binary = false;
     linux_use_gold_flags = false;
     proprietary_codecs = false;
-    use_gnome_keyring = config.gnomeKeyring;
-    use_gconf = config.gnome;
-    use_gio = config.gnome;
-    use_pulseaudio = config.pulseaudio;
-    disable_nacl = !config.nacl;
-    use_openssl = config.openssl;
-    selinux = config.selinux;
-    use_cups = config.cups;
-  } // stdenv.lib.optionalAttrs config.proprietaryCodecs {
+    use_gnome_keyring = cfg.gnomeKeyring;
+    use_gconf = cfg.gnome;
+    use_gio = cfg.gnome;
+    use_pulseaudio = cfg.pulseaudio;
+    disable_nacl = !cfg.nacl;
+    use_openssl = cfg.openssl;
+    selinux = cfg.selinux;
+    use_cups = cfg.cups;
+  } // optionalAttrs cfg.proprietaryCodecs {
     # enable support for the H.264 codec
     proprietary_codecs = true;
     ffmpeg_branding = "Chrome";
-  } // stdenv.lib.optionalAttrs (stdenv.system == "x86_64-linux") {
+  } // optionalAttrs (stdenv.system == "x86_64-linux") {
     target_arch = "x64";
-  } // stdenv.lib.optionalAttrs (stdenv.system == "i686-linux") {
+  } // optionalAttrs (stdenv.system == "i686-linux") {
     target_arch = "ia32";
   });
 
@@ -172,6 +187,7 @@ in stdenv.mkDerivation rec {
     mkdir -vp "$out/libexec/${packageName}"
     cp -v "out/${buildType}/"*.pak "$out/libexec/${packageName}/"
     cp -vR "out/${buildType}/locales" "out/${buildType}/resources" "$out/libexec/${packageName}/"
+    cp -v out/${buildType}/libffmpegsumo.so "$out/libexec/${packageName}/"
 
     cp -v "out/${buildType}/chrome" "$out/libexec/${packageName}/${packageName}"
 
@@ -190,11 +206,11 @@ in stdenv.mkDerivation rec {
     done
   '';
 
-  meta =  with stdenv.lib; {
+  meta = {
     description = "Chromium, an open source web browser";
     homepage = http://www.chromium.org/;
-    maintainers = with stdenv.lib.maintainers; [ goibhniu chaoflow ];
+    maintainers = with maintainers; [ goibhniu chaoflow ];
     license = licenses.bsd3;
-    platforms = with stdenv.lib.platforms; linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/browsers/chromium/enable_seccomp22.patch b/pkgs/applications/networking/browsers/chromium/enable_seccomp22.patch
new file mode 100644
index 000000000000..f947d796f186
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/enable_seccomp22.patch
@@ -0,0 +1,20 @@
+diff --git a/content/common/sandbox_linux.cc b/content/common/sandbox_linux.cc
+index d4618e5..108f846 100644
+--- a/content/common/sandbox_linux.cc
++++ b/content/common/sandbox_linux.cc
+@@ -38,15 +38,9 @@ void LogSandboxStarted(const std::string& sandbox_name) {
+ // Implement the command line enabling logic for seccomp-legacy.
+ bool IsSeccompLegacyDesired() {
+ #if defined(SECCOMP_SANDBOX)
+-#if defined(NDEBUG)
+-  // Off by default; allow turning on with a switch.
+-  return CommandLine::ForCurrentProcess()->HasSwitch(
+-      switches::kEnableSeccompSandbox);
+-#else
+   // On by default; allow turning off with a switch.
+   return !CommandLine::ForCurrentProcess()->HasSwitch(
+       switches::kDisableSeccompSandbox);
+-#endif  // NDEBUG
+ #endif  // SECCOMP_SANDBOX
+   return false;
+ }
diff --git a/pkgs/applications/networking/browsers/chromium/sources.nix b/pkgs/applications/networking/browsers/chromium/sources.nix
index 93cc3a993b16..e4e72617bc42 100644
--- a/pkgs/applications/networking/browsers/chromium/sources.nix
+++ b/pkgs/applications/networking/browsers/chromium/sources.nix
@@ -1,19 +1,18 @@
 # This file is autogenerated from update.sh in the same directory.
-# VHASH: 545cfbcd1fc31d037d1e6b5382995075d2a875a51d181cc26851e49dbd2227d8
 {
   dev = {
-    version = "22.0.1207.1";
-    url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-22.0.1207.1.tar.bz2";
-    sha256 = "1kzzaaczz1mwsfw7fn8la6h4yls2wy537ypabqgwyim01jhfmilp";
+    version = "23.0.1262.0";
+    url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-23.0.1262.0.tar.bz2";
+    sha256 = "19sqiv2vg9qy1kj6s12sq5aknvp3969yw26szwp54ipfv7lxqjh6";
   };
   beta = {
-    version = "21.0.1180.41";
-    url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-21.0.1180.41.tar.bz2";
-    sha256 = "1225ny7y5msyk44lb5dspd4aq0yiaawsb5xi9g8iimiv80j4h34a";
+    version = "22.0.1229.56";
+    url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-22.0.1229.56.tar.bz2";
+    sha256 = "0wynq27yz1aslsnrjmf47dwbglblpfida2kmgv23l804mgdj19gv";
   };
   stable = {
-    version = "20.0.1132.57";
-    url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-20.0.1132.57.tar.bz2";
-    sha256 = "06v4ybvaj3gx1v4visfyfzbq2q3xasa8xlf05f4wi2bf62vcc98j";
+    version = "21.0.1180.89";
+    url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-21.0.1180.89.tar.bz2";
+    sha256 = "1i9mjbjj3aywg03hd59m9j5gq5b5fl8nvw56g47q8s9k1bcsik0n";
   };
 }
diff --git a/pkgs/applications/networking/browsers/chromium/update.sh b/pkgs/applications/networking/browsers/chromium/update.sh
index c9dd69df9a20..c978ee4adf3a 100755
--- a/pkgs/applications/networking/browsers/chromium/update.sh
+++ b/pkgs/applications/networking/browsers/chromium/update.sh
@@ -4,16 +4,92 @@ channels_url="http://omahaproxy.appspot.com/";
 bucket_url="http://commondatastorage.googleapis.com/chromium-browser-official/";
 output_file="$(cd "$(dirname "$0")" && pwd)/sources.nix";
 
-get_channels()
+nix_getattr()
+{
+    input_file="$1";
+    attr="$2";
+
+    var="$(nix-instantiate --eval-only -A "$attr" "$output_file")";
+    echo "$var" | tr -d '\\"';
+}
+
+### poor mans key/value-store :-) ###
+
+ver_sha_table=""; # list of version:sha256
+
+sha_lookup()
+{
+    version="$1";
+
+    for ver_sha in $ver_sha_table;
+    do
+        if [ "x${ver_sha%:*}" = "x$version" ];
+        then
+            echo "${ver_sha##*:}";
+            return 0;
+        fi;
+    done;
+
+    return 1;
+}
+
+sha_insert()
+{
+    version="$1";
+    sha256="$2";
+
+    ver_sha_table="$ver_sha_table $version:$sha256";
+}
+
+if [ -e "$output_file" ];
+then
+    get_sha256()
+    {
+        channel="$1";
+        version="$2";
+        url="$3";
+
+        oldver="$(nix_getattr "$output_file" "$channel.version")";
+
+        echo -n "Checking if $oldver ($channel) is up to date..." >&2;
+
+        if [ "x$version" != "x$oldver" ];
+        then
+            echo " no, getting sha256 for new version $version:" >&2;
+            sha256="$(nix-prefetch-url "$url")";
+        else
+            echo " yes, keeping old sha256." >&2;
+            sha256="$(nix_getattr "$output_file" "$channel.sha256")";
+        fi;
+
+        sha_insert "$version" "$sha256"
+        echo "$sha256";
+    }
+else
+    get_sha256()
+    {
+        nix-prefetch-url "$url";
+    }
+fi;
+
+get_channel_exprs()
 {
     for chline in $(echo "$1" | cut -d, -f-2);
     do
         channel="${chline%%,*}";
         version="${chline##*,}";
-
         url="${bucket_url%/}/chromium-$version.tar.bz2";
 
-        sha256="$(nix-prefetch-url "$url")";
+        echo -n "Checking if sha256 of version $version is cached..." >&2;
+        if sha256="$(sha_lookup "$version")";
+        then
+            echo " yes: $sha256" >&2;
+        else
+            echo " no." >&2;
+            sha256="$(get_sha256 "$channel" "$version" "$url")";
+        fi;
+
+        sha_insert "$version" "$sha256";
 
         echo "  $channel = {";
         echo "    version = \"$version\";";
@@ -25,26 +101,13 @@ get_channels()
 
 cd "$(dirname "$0")";
 
-versions="$(curl -s "$channels_url" | sed -n -e 's/^linux,\(\([^,]\+,\)\{2\}\).*$/\1/p')";
-
-if [ -e "$output_file" ];
-then
-    vhash="$(echo "$versions" | sha256sum | cut -d' ' -f1)";
-    old_vhash="$(sed -n 's/# *VHASH: *//p' "$output_file")";
-
-    if [ "x$vhash" = "x$old_vhash" ];
-    then
-        echo "$output_file is already up to date, bailing out." >&2;
-        exit 1;
-    fi;
-fi;
-
-channels="$(get_channels "$versions")";
+omaha="$(curl -s "$channels_url")";
+versions="$(echo "$omaha" | sed -n -e 's/^linux,\(\([^,]\+,\)\{2\}\).*$/\1/p')";
+channel_exprs="$(get_channel_exprs "$versions")";
 
 cat > "$output_file" <<-EOF
 # This file is autogenerated from update.sh in the same directory.
-# VHASH: $vhash
 {
-$channels
+$channel_exprs
 }
 EOF
diff --git a/pkgs/applications/networking/browsers/firefox/12.0.nix b/pkgs/applications/networking/browsers/firefox/12.0.nix
index 6a22b1d8e5f4..97e23d1b8b26 100644
--- a/pkgs/applications/networking/browsers/firefox/12.0.nix
+++ b/pkgs/applications/networking/browsers/firefox/12.0.nix
@@ -33,7 +33,7 @@ rec {
       "--with-system-zlib"
       "--with-system-bz2"
       "--with-system-nspr"
-      # "--with-system-nss"
+      "--with-system-nss"
       # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
       # "--enable-system-cairo" # disabled for the moment because our Cairo is too old
       "--enable-system-sqlite"
@@ -54,7 +54,7 @@ rec {
       [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
         python dbus dbus_glib pango freetype fontconfig xlibs.libXi
         xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
-        alsaLib nspr /* nss */ libnotify xlibs.pixman yasm mesa
+        alsaLib nspr nss libnotify xlibs.pixman yasm mesa
         xlibs.libXScrnSaver xlibs.scrnsaverproto
         xlibs.libXext xlibs.xextproto sqlite unzip
       ];
@@ -129,7 +129,7 @@ rec {
       
     buildInputs =
       [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
-        dbus dbus_glib pango freetype fontconfig alsaLib nspr libnotify
+        dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
         xlibs.pixman yasm mesa sqlite file unzip
       ];
 
diff --git a/pkgs/applications/networking/browsers/firefox/13.0.nix b/pkgs/applications/networking/browsers/firefox/13.0.nix
index 1b0219557427..fbbf3275ad1a 100644
--- a/pkgs/applications/networking/browsers/firefox/13.0.nix
+++ b/pkgs/applications/networking/browsers/firefox/13.0.nix
@@ -33,7 +33,7 @@ rec {
       "--with-system-zlib"
       "--with-system-bz2"
       "--with-system-nspr"
-      # "--with-system-nss"
+      "--with-system-nss"
       # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
       # "--enable-system-cairo" # disabled for the moment because our Cairo is too old
       "--enable-system-sqlite"
@@ -54,7 +54,7 @@ rec {
       [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
         python dbus dbus_glib pango freetype fontconfig xlibs.libXi
         xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
-        alsaLib nspr /* nss */ libnotify xlibs.pixman yasm mesa
+        alsaLib nspr nss libnotify xlibs.pixman yasm mesa
         xlibs.libXScrnSaver xlibs.scrnsaverproto
         xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper
       ];
@@ -136,7 +136,7 @@ rec {
       
     buildInputs =
       [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
-        dbus dbus_glib pango freetype fontconfig alsaLib nspr libnotify
+        dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
         xlibs.pixman yasm mesa sqlite file unzip
       ];
 
diff --git a/pkgs/applications/networking/browsers/firefox/15.0.nix b/pkgs/applications/networking/browsers/firefox/15.0.nix
new file mode 100644
index 000000000000..cb79f4422eb7
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/15.0.nix
@@ -0,0 +1,179 @@
+{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
+, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
+, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
+, yasm, mesa, sqlite, unzip, makeWrapper, pysqlite
+
+, # If you want the resulting program to call itself "Firefox" instead
+  # of "Shiretoko" or whatever, enable this option.  However, those
+  # binaries may not be distributed without permission from the
+  # Mozilla Foundation, see
+  # http://www.mozilla.org/foundation/trademarks/.
+  enableOfficialBranding ? false
+}:
+
+assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
+
+rec {
+
+  firefoxVersion = "15.0.1";
+
+  xulVersion = "15.0.1"; # this attribute is used by other packages
+
+
+  src = fetchurl {
+    url = "ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2";
+    sha1 = "bdbc4b6656c59b926e18f99b3335484427d08641";
+  };
+
+  commonConfigureFlags =
+    [ "--enable-optimize"
+      "--disable-debug"
+      "--enable-strip"
+      "--with-system-jpeg"
+      "--with-system-zlib"
+      "--with-system-bz2"
+      "--with-system-nspr"
+      "--with-system-nss"
+      # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
+      # "--enable-system-cairo" # disabled for the moment because our Cairo is too old
+      "--enable-system-sqlite"
+      "--disable-crashreporter"
+      "--disable-tests"
+      "--disable-necko-wifi" # maybe we want to enable this at some point
+      "--disable-installer"
+      "--disable-updater"
+    ];
+
+
+  xulrunner = stdenv.mkDerivation rec {
+    name = "xulrunner-${xulVersion}";
+
+    inherit src;
+
+    buildInputs =
+      [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
+        python dbus dbus_glib pango freetype fontconfig xlibs.libXi
+        xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
+        alsaLib nspr nss libnotify xlibs.pixman yasm mesa
+        xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite
+        xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper
+      ];
+
+    configureFlags =
+      [ "--enable-application=xulrunner"
+        "--disable-javaxpcom"
+      ] ++ commonConfigureFlags;
+
+    enableParallelBuilding = true;
+
+    preConfigure =
+      ''
+        export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}"
+
+        mkdir ../objdir
+        cd ../objdir
+        configureScript=../mozilla-release/configure
+      ''; # */
+
+    #installFlags = "SKIP_GRE_REGISTRATION=1";
+
+    postInstall = ''
+      # Fix run-mozilla.sh search
+      libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*)
+      echo libDir: $libDir
+      test -n "$libDir"
+      cd $out/bin
+      rm xulrunner
+
+      for i in $out/lib/$libDir/*; do
+          file $i;
+          if file $i | grep executable &>/dev/null; then
+              echo -e '#! /bin/sh\n"'"$i"'" "$@"' > "$out/bin/$(basename "$i")";
+              chmod a+x "$out/bin/$(basename "$i")";
+          fi;
+      done
+      for i in $out/lib/$libDir/*.so; do
+          patchelf --set-rpath "$(patchelf --print-rpath "$i"):$out/lib/$libDir" $i || true
+      done
+      for i in $out/lib/$libDir/{plugin-container,xulrunner,xulrunner-stub}; do
+          wrapProgram $i --prefix LD_LIBRARY_PATH ':' "$out/lib/$libDir"
+      done
+      rm -f $out/bin/run-mozilla.sh
+    ''; # */
+
+    meta = {
+      description = "Mozilla Firefox XUL runner";
+      homepage = http://www.mozilla.com/en-US/firefox/;
+    };
+
+    passthru = { inherit gtk; version = xulVersion; };
+  };
+
+
+  firefox = stdenv.mkDerivation rec {
+    name = "firefox-${firefoxVersion}";
+
+    inherit src;
+
+    enableParallelBuilding = true;
+
+    buildInputs =
+      [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
+        dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
+        xlibs.pixman yasm mesa sqlite file unzip pysqlite
+      ];
+
+    propagatedBuildInputs = [xulrunner];
+
+    configureFlags =
+      [ "--enable-application=browser"
+        "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
+        "--enable-chrome-format=jar"
+        "--disable-elf-hack"
+      ]
+      ++ commonConfigureFlags
+      ++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";
+
+    makeFlags = [
+      "SYSTEM_LIBXUL=1"
+    ];
+
+    # Hack to work around make's idea of -lbz2 dependency
+    preConfigure =
+      ''
+        find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
+          stdenv.lib.concatStringsSep ":"
+            (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
+        }' ';'
+      '';
+
+    postInstall =
+      ''
+        ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner
+        for j in $out/bin/*; do
+            i="$(readlink "$j")";
+            file $i;
+            if file $i | grep executable &>/dev/null; then
+                rm "$out/bin/$(basename "$i")"
+                echo -e '#! /bin/sh\nexec "'"$i"'" "$@"' > "$out/bin/$(basename "$i")"
+                chmod a+x "$out/bin/$(basename "$i")"
+            fi;
+        done;
+        cd "$out/lib/"firefox-*
+        rm firefox
+        echo -e '#!${stdenv.shell}\n${xulrunner}/bin/xulrunner "'"$PWD"'/application.ini" "$@"' > firefox
+        chmod a+x firefox
+      ''; # */
+
+    meta = {
+      description = "Mozilla Firefox - the browser, reloaded";
+      homepage = http://www.mozilla.com/en-US/firefox/;
+      maintainers = [ stdenv.lib.maintainers.eelco ];
+    };
+
+    passthru = {
+      inherit gtk xulrunner nspr;
+      isFirefox3Like = true;
+    };
+  };
+}
diff --git a/pkgs/applications/networking/browsers/firefox/3.6.nix b/pkgs/applications/networking/browsers/firefox/3.6.nix
index 40b7959139d2..c430bb7089a8 100644
--- a/pkgs/applications/networking/browsers/firefox/3.6.nix
+++ b/pkgs/applications/networking/browsers/firefox/3.6.nix
@@ -31,7 +31,7 @@ rec {
       "--with-system-zlib"
       "--with-system-bz2"
       "--with-system-nspr"
-      #"--with-system-nss"
+      "--with-system-nss"
       # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
       "--enable-system-cairo"
       #"--enable-system-sqlite" # <-- this seems to be discouraged
@@ -59,7 +59,7 @@ rec {
       [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
         python dbus dbus_glib pango freetype fontconfig xlibs.libXi
         xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
-        alsaLib nspr /* nss */ libnotify xlibs.pixman
+        alsaLib nspr nss libnotify xlibs.pixman
       ];
 
     preConfigure = if stdenv.isMips then ''
@@ -118,7 +118,7 @@ rec {
 
     buildInputs =
       [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
-        dbus dbus_glib pango freetype fontconfig alsaLib nspr libnotify
+        dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
         xlibs.pixman
       ];
 
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
index 86588f2ed97b..a3f255b5d3e5 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/google-talk-plugin/default.nix
@@ -1,12 +1,14 @@
 { stdenv, fetchurl, rpm, cpio, mesa, xorg, cairo
 , libpng12, gtk, glib, gdk_pixbuf, fontconfig, freetype, curl
-, dbus_glib, alsaLib, pulseaudio, udev
+, dbus_glib, alsaLib, pulseaudio, udev, pango
 }:
 
 with stdenv.lib;
 
 let
 
+  baseURL = "http://dl.google.com/linux/talkplugin/deb/pool/main/g/google-talkplugin";
+
   rpathPlugin = makeLibraryPath
     [ mesa
       xorg.libXt
@@ -35,32 +37,32 @@ let
       dbus_glib
       udev
       curl
+      pango
+      cairo
     ];
 
 in
 
-stdenv.mkDerivation {
-  name = "google-talk-plugin-2.9.10.0";
+stdenv.mkDerivation rec {
+  name = "google-talk-plugin-${version}";
+  version = "3.5.1.0";
 
   src =
     if stdenv.system == "x86_64-linux" then
       fetchurl {
-        url = "http://dl.google.com/linux/direct/google-talkplugin_current_x86_64.rpm";
-        sha256 = "1lgvv6bkdc5knghyn4gsg5gp7h3qyr4rb978gsi39gkvcazksm0b";
+        url = "${baseURL}/google-talkplugin_${version}-1_amd64.deb";
+        sha256 = "0ml4yirzdcladw11fq5d8lwqfqgb1fh9vpbzbzmhplvyj6mvkqrj";
       }
     else if stdenv.system == "i686-linux" then
       fetchurl {
-        url = "http://dl.google.com/linux/direct/google-talkplugin_current_i386.rpm";
-        sha256 = "0k9j27pklwb3vih2cydz9552p9270p73hdi14f0bmn6afxjxd13m";
+        url = "${baseURL}/google-talkplugin_${version}-1_i386.deb";
+        sha256 = "1kfd26zygb76iqnr8n3f7k7n9h5bz0rf716n80crqzyasv51mn57";
       }
     else throw "Google Talk does not support your platform.";
 
-  buildInputs = [ rpm cpio ];
-      
-  unpackPhase =
-    ''
-      rpm2cpio $src | cpio -i --make-directories -v
-    '';
+  unpackPhase = ''
+    ar p "$src" data.tar.gz | tar xz
+  '';
 
   installPhase =
     ''
diff --git a/pkgs/applications/networking/browsers/rekonq/default.nix b/pkgs/applications/networking/browsers/rekonq/default.nix
index 791b73c9c78c..4a46de14f9bc 100644
--- a/pkgs/applications/networking/browsers/rekonq/default.nix
+++ b/pkgs/applications/networking/browsers/rekonq/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl, kdelibs, gettext, pkgconfig }:
+{ stdenv, fetchurl, kdelibs, gettext, pkgconfig, shared_desktop_ontologies, qca2, qoauth }:
 
 stdenv.mkDerivation rec {
-  name = "rekonq-0.9.0-1";
+  name = "rekonq-1.1";
 
   src = fetchurl {
-    url = "mirror://sf/rekonq/${name}.tar.bz2";
-    sha256 = "0vri6wdxxi7qkcjpgvscwa7m3ysy62jns924d07arvy8bmg5whc5";
+    url = "mirror://sourceforge/rekonq/${name}.tar.bz2";
+    sha256 = "1bs733mwyfb7bxnial8n49b82ip04sark2mxwlq7ixxsbgq7972l";
   };
 
-  buildInputs = [ kdelibs ];
+  buildInputs = [ kdelibs qca2 qoauth ];
 
-  buildNativeInputs = [ gettext pkgconfig ];
+  buildNativeInputs = [ gettext pkgconfig shared_desktop_ontologies ];
 
   meta = with stdenv.lib; {
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/browsers/w3m/default.nix b/pkgs/applications/networking/browsers/w3m/default.nix
index d5294c961e64..38ef20ec9694 100644
--- a/pkgs/applications/networking/browsers/w3m/default.nix
+++ b/pkgs/applications/networking/browsers/w3m/default.nix
@@ -1,12 +1,15 @@
 { stdenv, fetchurl
 , sslSupport ? true
 , graphicsSupport ? false
+, mouseSupport ? false
 , ncurses, openssl ? null, boehmgc, gettext, zlib
-, imlib2 ? null, x11 ? null
+, imlib2 ? null, x11 ? null, fbcon ? null
+, gpm ? null
 }:
 
 assert sslSupport -> openssl != null;
-assert graphicsSupport -> x11 != null;
+assert graphicsSupport -> imlib2 != null && (x11 != null || fbcon != null);
+assert mouseSupport -> gpm != null;
 
 stdenv.mkDerivation rec {
   name = "w3m-0.5.3";
@@ -22,11 +25,14 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ncurses boehmgc gettext zlib]
     ++ stdenv.lib.optional sslSupport openssl
-    ++ stdenv.lib.optionals graphicsSupport [imlib2 x11];
+    ++ stdenv.lib.optional mouseSupport gpm
+    ++ stdenv.lib.optionals graphicsSupport [imlib2 x11 fbcon];
 
-  configureFlags = "--with-ssl=${openssl} --with-gc=${boehmgc}";
+  configureFlags = "--with-ssl=${openssl} --with-gc=${boehmgc}"
+    + stdenv.lib.optionalString graphicsSupport " --enable-image=x11,fb";
 
   preConfigure = ''
+    substituteInPlace ./configure --replace "/lib /usr/lib /usr/local/lib /usr/ucblib /usr/ccslib /usr/ccs/lib /lib64 /usr/lib64" /no-such-path
     substituteInPlace ./configure --replace /usr /no-such-path
   '';
 
diff --git a/pkgs/applications/networking/cluster/hadoop/default.nix b/pkgs/applications/networking/cluster/hadoop/default.nix
new file mode 100644
index 000000000000..7d475a675587
--- /dev/null
+++ b/pkgs/applications/networking/cluster/hadoop/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, makeWrapper, which, jre, bash }:
+
+stdenv.mkDerivation rec {
+
+  name = "hadoop-2.0.1-alpha";
+
+  src = fetchurl {
+    url = "mirror://apache/hadoop/common/${name}/${name}.tar.gz";
+    sha256 = "4e5f4fa1574ee58fd6d59a220b66578fc2cf62c229120eeed07f2880c86f0e59";
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  buildPhase = ''
+    for n in "bin/"* "sbin/"*; do
+      sed -i $n -e "s|#!/usr/bin/env bash|#! ${bash}/bin/bash|"
+    done
+    patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" bin/container-executor
+  '';
+
+  installPhase = ''
+    mkdir -p $out
+    mv *.txt share/doc/hadoop/
+    mv * $out
+
+    for n in $out/{bin,sbin}"/"*; do
+      wrapProgram $n --prefix PATH : "${which}/bin:${jre}/bin:${bash}/bin" --set JAVA_HOME "${jre}" --set HADOOP_PREFIX "$out"
+    done
+  '';
+
+  meta = {
+    homepage = "http://hadoop.apache.org/";
+    description = "framework for distributed processing of large data sets across clusters of computers";
+    license = stdenv.lib.licenses.asl20;
+
+    longDescription = ''
+      The Apache Hadoop software library is a framework that allows for
+      the distributed processing of large data sets across clusters of
+      computers using a simple programming model. It is designed to
+      scale up from single servers to thousands of machines, each
+      offering local computation and storage. Rather than rely on
+      hardware to deliver high-avaiability, the library itself is
+      designed to detect and handle failures at the application layer,
+      so delivering a highly-availabile service on top of a cluster of
+      computers, each of which may be prone to failures.
+    '';
+
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/applications/networking/esniper/default.nix b/pkgs/applications/networking/esniper/default.nix
index dda0755a7383..327e4c4a9c52 100644
--- a/pkgs/applications/networking/esniper/default.nix
+++ b/pkgs/applications/networking/esniper/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, openssl, curl }:
+{ stdenv, fetchurl, openssl, curl, coreutils, gawk, bash, which }:
 
 stdenv.mkDerivation {
   name = "esniper-2.27.0";
@@ -10,8 +10,12 @@ stdenv.mkDerivation {
 
   buildInputs = [openssl curl];
 
+  # Add support for CURL_CA_BUNDLE variable.
+  patches = [ ./find-ca-bundle.patch ];
+
   postInstall = ''
-    sed -e  "2i export PATH=\"$out/bin:\$PATH\"" <"frontends/snipe" >"$out/bin/snipe"
+    sed <"frontends/snipe" >"$out/bin/snipe" \
+      -e "2i export PATH=\"$out/bin:${coreutils}/bin:${gawk}/bin:${bash}/bin:${which}/bin:\$PATH\""
     chmod 555 "$out/bin/snipe"
   '';
 
@@ -24,5 +28,3 @@ stdenv.mkDerivation {
     maintainers = [ stdenv.lib.maintainers.simons ];
   };
 }
-
-
diff --git a/pkgs/applications/networking/esniper/find-ca-bundle.patch b/pkgs/applications/networking/esniper/find-ca-bundle.patch
new file mode 100644
index 000000000000..e4df272a0c9a
--- /dev/null
+++ b/pkgs/applications/networking/esniper/find-ca-bundle.patch
@@ -0,0 +1,26 @@
+diff -ubr '--exclude=*.o' esniper-2-27-0-orig/http.c esniper-2-27-0-patched/http.c
+--- esniper-2-27-0-orig/http.c	2012-02-06 22:04:06.000000000 +0100
++++ esniper-2-27-0-patched/http.c	2012-07-27 10:54:20.893054646 +0200
+@@ -200,6 +200,9 @@
+ int
+ initCurlStuff(void)
+ {
++	/* Path to OpenSSL bundle file. */
++	const char *ssl_capath=NULL;
++
+ 	/* list for custom headers */
+ 	struct curl_slist *slist=NULL;
+ 
+@@ -241,6 +244,12 @@
+ 	if ((curlrc = curl_easy_setopt(easyhandle, CURLOPT_COOKIEFILE, "")))
+ 		return initCurlStuffFailed();
+ 
++	/* If the environment variable CURL_CA_BUNDLE is set, pass through its
++	 * contents to curl. */
++	if ((ssl_capath = getenv("CURL_CA_BUNDLE")))
++		if ((curlrc = curl_easy_setopt(easyhandle, CURLOPT_CAINFO, ssl_capath)))
++			return initCurlStuffFailed();
++
+ 	slist = curl_slist_append(slist, "Accept: text/*");
+ 	slist = curl_slist_append(slist, "Accept-Language: en");
+ 	slist = curl_slist_append(slist, "Accept-Charset: iso-8859-1,*,utf-8");
diff --git a/pkgs/applications/networking/instant-messengers/baresip/default.nix b/pkgs/applications/networking/instant-messengers/baresip/default.nix
new file mode 100644
index 000000000000..ba530374c71f
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/baresip/default.nix
@@ -0,0 +1,45 @@
+{stdenv, fetchurl, zlib, openssl, libre, librem, pkgconfig
+, cairo, mpg123, gstreamer, gst_ffmpeg, gst_plugins_base, gst_plugins_bad
+, gst_plugins_good, alsaLib, SDL, libv4l, celt, libsndfile, srtp, ffmpeg
+, gsm, speex, portaudio, spandsp, libuuid
+}:
+stdenv.mkDerivation rec {
+  version = "0.4.2";
+  name = "baresip-${version}";
+  src=fetchurl {
+    url = "http://www.creytiv.com/pub/baresip-${version}.tar.gz";
+    sha256 = "3ac15b3d3cf17b2417ba871e7eaaaf41ab10cb30b900adcee357d5e91ea033e7";
+  };
+  buildInputs = [zlib openssl libre librem pkgconfig
+    cairo mpg123 gstreamer gst_ffmpeg gst_plugins_base gst_plugins_bad gst_plugins_good
+    alsaLib SDL libv4l celt libsndfile srtp ffmpeg gsm speex portaudio spandsp libuuid
+    ];
+  makeFlags = [
+    "LIBRE_MK=${libre}/share/re/re.mk"
+    "LIBRE_INC=${libre}/include/re"
+    "LIBRE_SO=${libre}/lib"
+    "LIBREM_PATH=${librem}"
+    ''PREFIX=$(out)''
+    "USE_VIDEO=1"
+
+    "USE_ALSA=1" "USE_AMR=1" "USE_CAIRO=1" "USE_CELT=1" 
+    "USE_CONS=1" "USE_EVDEV=1" "USE_FFMPEG=1"  "USE_GSM=1" "USE_GST=1" 
+    "USE_L16=1" "USE_MPG123=1" "USE_OSS=1" "USE_PLC=1" 
+    "USE_PORTAUDIO=1" "USE_SDL=1" "USE_SNDFILE=1" "USE_SPEEX=1" 
+    "USE_SPEEX_AEC=1" "USE_SPEEX_PP=1" "USE_SPEEX_RESAMP=1" "USE_SRTP=1" 
+    "USE_STDIO=1" "USE_SYSLOG=1" "USE_UUID=1" "USE_V4L2=1" "USE_X11=1"
+
+    "USE_BV32=" "USE_COREAUDIO=" "USE_G711=" "USE_G722=" "USE_G722_1=" 
+    "USE_ILBC=" "USE_OPUS=" "USE_SILK=" 
+  ]
+  ++ stdenv.lib.optional (stdenv.gcc.gcc != null) "SYSROOT_ALT=${stdenv.gcc.gcc}"
+  ++ stdenv.lib.optional (stdenv.gcc.libc != null) "SYSROOT=${stdenv.gcc.libc}"
+  ;
+  NIX_CFLAGS_COMPILE='' -I${librem}/include/rem -I${gsm}/include/gsm '';
+  meta = {
+    homepage = "http://www.creytiv.com/baresip.html";
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    license = with stdenv.lib.licenses; bsd3;
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/gajim/default.nix b/pkgs/applications/networking/instant-messengers/gajim/default.nix
index bca70d14c008..1def7e2b1f01 100644
--- a/pkgs/applications/networking/instant-messengers/gajim/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gajim/default.nix
@@ -2,19 +2,20 @@ a :
 let 
   fetchurl = a.fetchurl;
 
-  version = a.lib.attrByPath ["version"] "0.14.1" a; 
+  version = a.lib.attrByPath ["version"] "0.15.1" a; 
   buildInputs = with a; [
     python pyGtkGlade gtk perl intltool dbus gettext
     pkgconfig makeWrapper libglade pyopenssl libXScrnSaver
     libXt xproto libXext xextproto libX11 gtkspell aspell
     scrnsaverproto pycrypto pythonDBus pythonSexy 
-    docutils
+    docutils pyasn1 farstream gst_plugins_bad gstreamer
+    gst_ffmpeg gst_python
   ];
 in
 rec {
   src = fetchurl {
-    url = "http://www.gajim.org/downloads/0.14/gajim-${version}.tar.gz";
-    sha256 = "ef757572acf3f3d59408fd95b7ec99bc0e39c5b8c66bc61c78ba65e71c3d8e18";
+    url = "http://www.gajim.org/downloads/0.15/gajim-${version}.tar.gz";
+    sha256 = "b315d4a600da0c5f8248e8f887a41ce2630c49995b36cbad8fb2cd81cc8d2e8b";
   };
 
   inherit buildInputs;
@@ -24,6 +25,7 @@ rec {
     export PYTHONPATH="$PYTHONPATH''${PYTHONPATH:+:}$(toPythonPath ${a.pyGtkGlade})/gtk-2.0"
     export PYTHONPATH="$PYTHONPATH''${PYTHONPATH:+:}$(toPythonPath ${a.pygobject})/gtk-2.0"
     sed -e '/-L[$]x_libraries/d' -i configure
+    sed -e 's@tmpfd.close()@os.close(tmpfd)@' -i src/common/latex.py
   '') ["addInputs" "doUnpack"];
 
   fixScriptNames = a.fullDepEntry (''
@@ -34,11 +36,15 @@ rec {
       name="''${name##*/.}"
       mv "$i" "$out/bin-wrapped/$name"
       sed -e 's^'"$i"'^'"$out/bin-wrapped/$name"'^' -i "$out/bin/$name"
+      sed -e "2aexport LD_LIBRARY_PATH=\"\$LD_LIBRARY_PATH\''${LD_LIBRARY_PATH:+:}${a.gtkspell}/lib:${a.gtkspell}/lib64\"" -i "$out/bin/gajim"
+      sed -e "2aexport NIX_LDFLAGS=\"\$NIX_LDFLAGS -L${a.gtkspell}/lib -L${a.gtkspell}/lib64\"" -i "$out/bin/gajim"
+      sed -e "2aexport GST_PLUGIN_PATH=\"\$GST_PLUGIN_PATH''${GST_PLUGIN_PATH:+:}$(echo ${a.gst_plugins_bad}/lib/gstreamer-*):$(echo ${a.gst_ffmpeg}/lib/gstreamer-*):$(echo ${a.farstream}/lib/gstreamer-*)\"" -i "$out/bin/gajim"
     done
   '') ["wrapBinContentsPython"];
 
   /* doConfigure should be removed if not needed */
-  phaseNames = ["preConfigure" (a.doDump "1") "doConfigure" "doMakeInstall" "wrapBinContentsPython" "fixScriptNames"];
+  phaseNames = ["preConfigure" (a.doDump "1") "doConfigure" "doMakeInstall" 
+    "wrapBinContentsPython" "fixScriptNames"];
 
   name = "gajim-" + version;
   meta = {
diff --git a/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix b/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix
new file mode 100644
index 000000000000..c35101bb874f
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/salut-a-toi/default.nix
@@ -0,0 +1,45 @@
+{stdenv, fetchurl, python, pythonPackages, pygobject, pythonDBus}: 
+stdenv.mkDerivation rec {
+  url = "ftp://ftp.goffi.org/sat/sat-0.2.0.tar.bz2";
+  name = stdenv.lib.nameFromURL url ".tar";
+  src = fetchurl {
+    inherit url;
+    sha256 = "14qqgsgqns1xcp97nd3jcxrq54z1x5a6kimqxy029hh7ys813mf1";
+  };
+
+  buildInputs = with pythonPackages; 
+    [
+      python twisted urwid beautifulsoup wxPython distribute pygobject
+      wokkel pythonDBus pyfeed wrapPython
+    ];
+
+  configurePhase = ''
+    sed -e "s@sys.prefix@'$out'@g" -i setup.py
+    sed -e "1aexport PATH=\"\$PATH\":\"$out/bin\":\"${pythonPackages.twisted}/bin\"" -i src/sat.sh
+    sed -e "1aexport PYTHONPATH=\"\$PYTHONPATHPATH\":\"$PYTHONPATH\":"$out/lib/${python.libPrefix}/site-packages"" -i src/sat.sh
+
+    echo 'import wokkel.muc' | python 
+  '';
+
+  buildPhase = ''
+    python setup.py build
+  '';
+
+  installPhase = ''
+    python setup.py install --prefix="$out" 
+
+    for i in "$out/bin"/*; do
+      head -n 1 "$i" | grep -E '[/ ]python( |$)' && {
+        wrapProgram "$i" --prefix PYTHONPATH : "$PYTHONPATH:$out/lib/${python.libPrefix}/site-packages"
+      } || true 
+    done
+  '';
+  
+  meta = {
+    homepage = "http://sat.goffi.org/";
+    description = "A multi-frontend XMPP client";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    license = stdenv.lib.licenses.gpl3Plus;
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/tkabber-plugins/default.nix b/pkgs/applications/networking/instant-messengers/tkabber-plugins/default.nix
index c361f3270e65..b46133e433e6 100644
--- a/pkgs/applications/networking/instant-messengers/tkabber-plugins/default.nix
+++ b/pkgs/applications/networking/instant-messengers/tkabber-plugins/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, tkabber}:
+{ stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   name = "tkabber-plugins-${version}";
@@ -10,9 +10,12 @@ stdenv.mkDerivation rec {
   };
 
   configurePhase = ''
-    mkdir -p $out/bin
     sed -e "s@/usr/local@$out@" -i Makefile
   '';
 
-  buildInputs = [tkabber];
+  meta = {
+    homepage = "http://tkabber.jabber.ru/tkabber-plugins";
+    description = "Plugins for the Tkabber instant messenger";
+    license = stdenv.lib.licenses.gpl2;
+  };
 }
diff --git a/pkgs/applications/networking/instant-messengers/tkabber/default.nix b/pkgs/applications/networking/instant-messengers/tkabber/default.nix
index 30c91d3d905b..03a98cb20597 100644
--- a/pkgs/applications/networking/instant-messengers/tkabber/default.nix
+++ b/pkgs/applications/networking/instant-messengers/tkabber/default.nix
@@ -1,6 +1,15 @@
-{ stdenv, fetchurl, tcl, tk, tcllib, tcltls, bwidget, cacert, makeWrapper, x11 }:
+{ stdenv, fetchurl, tcl, tk, tcllib, tcltls, tclgpg
+, bwidget, makeWrapper, x11 }:
 
-stdenv.mkDerivation rec {
+let
+  tclLibraries = [ bwidget tcllib tcltls tclgpg ];
+
+  getTclLibPath = p: "${p}/lib/${p.libPrefix}";
+
+  tclLibPaths = stdenv.lib.concatStringsSep " "
+    (map getTclLibPath tclLibraries);
+
+in stdenv.mkDerivation rec {
   name = "tkabber-0.11.1";
 
   src = fetchurl {
@@ -13,7 +22,7 @@ stdenv.mkDerivation rec {
   patchPhase = ''
     substituteInPlace login.tcl --replace \
       "custom::defvar loginconf(sslcacertstore) \"\"" \
-      "custom::defvar loginconf(sslcacertstore) \"${cacert}/etc/ca-bundle.crt\""
+      "custom::defvar loginconf(sslcacertstore) \$env(OPENSSL_X509_CERT_FILE)"
 
     sed -i '/^if.*load_default_xrdb/,/^}$/ {
         s@option readfile \(\[fullpath [^]]*\]\)@option readfile "'"$out/share/doc/tkabber/examples/xrdb/${defaultTheme}.xrdb"'"@
@@ -26,13 +35,16 @@ stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    wrapProgram $out/bin/tkabber --set TCLLIBPATH "${bwidget}/tcltk\ ${tcllib}/lib/tcllib${tcllib.version}\ ${tcltls}/lib/tls${tcltls.version}"
+    wrapProgram $out/bin/tkabber \
+      --set TCLLIBPATH '"${tclLibPaths}"' \
+      --set TKABBER_SITE_PLUGINS '$HOME/.nix-profile/share/tkabber-plugins'
   '';
 
-  buildInputs = [tcl tk tcllib tcltls bwidget x11 makeWrapper];
+  buildInputs = [ tcl tk x11 makeWrapper ] ++ tclLibraries;
 
   meta = {
     homepage = "http://tkabber.jabber.ru/";
     description = "A GUI client for the XMPP (Jabber) instant messaging protocol";
+    license = stdenv.lib.licenses.gpl2;
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/vacuum/default.nix b/pkgs/applications/networking/instant-messengers/vacuum/default.nix
index bddedce7183d..63f18ee7dc4c 100644
--- a/pkgs/applications/networking/instant-messengers/vacuum/default.nix
+++ b/pkgs/applications/networking/instant-messengers/vacuum/default.nix
@@ -12,11 +12,11 @@ let
   buildInputs = map (n: builtins.getAttr n x)
     (builtins.attrNames (builtins.removeAttrs x helperArgNames));
   sourceInfo = rec {
-    version="1.1.2";
+    version="1.2.0";
     baseName="vacuum-im";
     name="${baseName}-${version}";
     url="http://vacuum-im.googlecode.com/files/vacuum-${version}.tar.xz";
-    hash="451dde9b3587503b035fa1ddd2c99f2052a0b17a603491c59e8c47a8bcd4746d";
+    hash="55a2c27aaaf79c7a4de127c22d3845ede35970283d35ee57fd5ceca581b085fc";
   };
 in
 rec {
diff --git a/pkgs/applications/networking/irc/ii/default.nix b/pkgs/applications/networking/irc/ii/default.nix
new file mode 100644
index 000000000000..a283258d589a
--- /dev/null
+++ b/pkgs/applications/networking/irc/ii/default.nix
@@ -0,0 +1,20 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "ii-1.6";
+  
+  src = fetchurl {
+    url = "http://dl.suckless.org/tools/${name}.tar.gz";
+    sha256 = "0afccbcm7i9lfch5mwzs3l1ax79dg3g6rrw0z8rb7d2kn8wsckvr";
+  };
+
+  installPhase = ''
+    make install PREFIX=$out
+  '';
+
+  meta = {
+    homepage = http://tools.suckless.org/ii/;
+    license = "MIT";
+    description = "Irc it, simple FIFO based irc client";
+  };
+}
diff --git a/pkgs/applications/networking/irc/konversation/default.nix b/pkgs/applications/networking/irc/konversation/default.nix
index 938a26fd785b..c4d2f4b3782b 100644
--- a/pkgs/applications/networking/irc/konversation/default.nix
+++ b/pkgs/applications/networking/irc/konversation/default.nix
@@ -3,15 +3,15 @@
 
 let
   pn = "konversation";
-  v = "1.3.1";
+  v = "1.4";
 in
 
 stdenv.mkDerivation rec {
   name = "${pn}-${v}";
 
   src = fetchurl {
-    url = "mirror://kde/stable/${pn}/${v}/src/${name}.tar.bz2";
-    sha256 = "0wigcvi6lscy14dhm5nh1mkhfx7xxdq9g163pwpd0xndvybrfhfl";
+    url = "mirror://kde/stable/${pn}/${v}/src/${name}.tar.xz";
+    sha256 = "030vsbb18dlzsnjl3fzyd1m9wvvksiyc1lm45abi4q6x4xd60knv";
   };
 
   buildInputs = [ cmake qt4 perl gettext libXScrnSaver kdelibs kdepimlibs
diff --git a/pkgs/applications/networking/mailreaders/notmuch/default.nix b/pkgs/applications/networking/mailreaders/notmuch/default.nix
index 9dd352857fb9..266035aa1bd3 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.12";
+  name = "notmuch-0.13.2";
 
   src = fetchurl {
     url = "http://notmuchmail.org/releases/${name}.tar.gz";
-    sha256 = "1dbbbbba3567df9c67ecc642d1e63269a527952c557f6b0c8bafcd4e37893992";
+    sha256 = "75ec5f5d04bb7e3a8cc6224859b691f704a2a35f2f6027ffb674e829268f1d68";
   };
 
   buildInputs = [ bash emacs gdb glib gmime gnupg1 pkgconfig talloc xapian ];
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/11.x.nix b/pkgs/applications/networking/mailreaders/thunderbird/11.x.nix
index 0c8ba4b05ff1..0d36bf887397 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/11.x.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/11.x.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
   name = "thunderbird-${version}";
 
   src = fetchurl {
-    url = "http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.bz2";
+    url = "ftp://ftp.mozilla.org/pub/thunderbird/releases/11.0.1/source/thunderbird-${version}.source.tar.bz2";
     sha1 = "037344b451b1c031472d92f96d401b15d8e3e7d3";
   };
 
diff --git a/pkgs/applications/networking/netperf/default.nix b/pkgs/applications/networking/netperf/default.nix
index 7ef6a86c5eb7..705f1455c458 100644
--- a/pkgs/applications/networking/netperf/default.nix
+++ b/pkgs/applications/networking/netperf/default.nix
@@ -1,11 +1,19 @@
 {stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "netperf-2.5.0";
+  name = "netperf-2.6.0";
 
   src = fetchurl {
     url = "ftp://ftp.netperf.org/netperf/${name}.tar.bz2";
-    sha256 = "1l06bb99b4wfnmq247b8rvp4kn3w6bh1m46ri4d74z22li7br545";
+    sha256 = "cd8dac710d4273d29f70e8dbd09353a6362ac58a11926e0822233c0cb230323a";
   };
-}
 
+  meta = {
+    description = "benchmark to measure the performance of many different types of networking";
+    homepage = "http://www.netperf.org/netperf/";
+    license = "Hewlett-Packard BSD-like license";
+
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [];
+  };
+}
diff --git a/pkgs/applications/networking/p2p/ktorrent/default.nix b/pkgs/applications/networking/p2p/ktorrent/default.nix
index 5f15cbc495f0..b408f20b7110 100644
--- a/pkgs/applications/networking/p2p/ktorrent/default.nix
+++ b/pkgs/applications/networking/p2p/ktorrent/default.nix
@@ -5,14 +5,14 @@ stdenv.mkDerivation rec {
   name = pname + "-" + version;
 
   pname = "ktorrent";
-  version = "4.1.3";
+  version = "4.2.1";
 
   src = fetchurl {
     url = "${meta.homepage}/downloads/${version}/${name}.tar.bz2";
-    sha256 = "0ih68bml6ic3mxk5l4ypgmxwyg9mglp57gw5igrnm5yszm7jz19g";
+    sha256 = "1b6w7i1vvq8mlw9yrlxvb51hvaj6rpl8lv9b9zagyl3wcanz73zd";
   };
 
-  patches = [ ./find-workspace.diff ./drop-taskmanager-dependency.patch ];
+  patches = [ ./find-workspace.diff ];
 
   KDEDIRS = libktorrent;
 
diff --git a/pkgs/applications/networking/p2p/ktorrent/drop-taskmanager-dependency.patch b/pkgs/applications/networking/p2p/ktorrent/drop-taskmanager-dependency.patch
deleted file mode 100644
index 2998b3926798..000000000000
--- a/pkgs/applications/networking/p2p/ktorrent/drop-taskmanager-dependency.patch
+++ /dev/null
@@ -1,175 +0,0 @@
-commit 6d4a6ae51692966862ccb20d17cb217717519d40
-Author: Joris Guisson <joris.guisson@gmail.com>
-Date:   Wed Nov 23 20:17:08 2011 +0100
-
-    Use dbus to show ktorrent window from plasma applet. This removes the dependency on libtaskmanager.
-    
-    BUG: 287309
-Changelog removed by Yury G. Kudryashov
-
-diff --git a/plasma/applet/CMakeLists.txt b/plasma/applet/CMakeLists.txt
-index 3a72241..4307cf2 100644
---- a/plasma/applet/CMakeLists.txt
-+++ b/plasma/applet/CMakeLists.txt
-@@ -5,25 +5,15 @@ if(NOT QT_VERSION_OK)
- 
- else(NOT QT_VERSION_OK)
- 	
--	set(TASKMANAGER_FOUND FALSE)
--	FIND_PATH(TASKMANAGER_INCLUDE_DIR NAMES taskmanager.h  PATHS ${KDE4_INCLUDE_DIR}/taskmanager ${INCLUDE_INSTALL_DIR}/taskmanager.h)
--	FIND_LIBRARY(TASKMANAGER_LIBRARY NAMES taskmanager PATHS ${KDE4_LIB_DIR} ${LIB_INSTALL_DIR})
--
--	if(TASKMANAGER_INCLUDE_DIR AND TASKMANAGER_LIBRARY)
--		set(TASKMANAGER_FOUND TRUE)
--		message(STATUS "Found libtaskmanager: ${TASKMANAGER_LIBRARY} ")
--		include_directories(${TASKMANAGER_INCLUDE_DIR})
--		set(ktapplet_SRCS applet.cpp chunkbar.cpp fadingitem.cpp fadingnavigationwidget.cpp)
--		
--		kde4_add_ui_files(ktapplet_SRCS appletconfig.ui)
--		
--		kde4_add_plugin(plasma_applet_ktorrent ${ktapplet_SRCS})
--		target_link_libraries(plasma_applet_ktorrent  ${KDE4_PLASMA_LIBS} ${KDE4_KIO_LIBS} ${TASKMANAGER_LIBRARY} ${LIBKTORRENT_LIBRARIES} ktcore)
--		
--		install(TARGETS plasma_applet_ktorrent DESTINATION ${PLUGIN_INSTALL_DIR})
--		install(FILES plasma-applet-ktorrent.desktop DESTINATION ${SERVICES_INSTALL_DIR})
--	endif(TASKMANAGER_INCLUDE_DIR AND TASKMANAGER_LIBRARY)
--
--	macro_log_feature(TASKMANAGER_FOUND "libtaskmanager" "libtaskmanager library and header files" "http://www.kde.org/" FALSE "" "libtaskmanager is needed for KTorrent Plasmoid")
-+	
-+	set(ktapplet_SRCS applet.cpp chunkbar.cpp fadingitem.cpp fadingnavigationwidget.cpp)
-+	
-+	kde4_add_ui_files(ktapplet_SRCS appletconfig.ui)
-+	
-+	kde4_add_plugin(plasma_applet_ktorrent ${ktapplet_SRCS})
-+	target_link_libraries(plasma_applet_ktorrent  ${KDE4_PLASMA_LIBS} ${KDE4_KIO_LIBS} ${LIBKTORRENT_LIBRARIES} ktcore)
-+	
-+	install(TARGETS plasma_applet_ktorrent DESTINATION ${PLUGIN_INSTALL_DIR})
-+	install(FILES plasma-applet-ktorrent.desktop DESTINATION ${SERVICES_INSTALL_DIR})
- 
- endif(NOT QT_VERSION_OK)
-diff --git a/plasma/applet/applet.cpp b/plasma/applet/applet.cpp
-index 59e7191..bf09479 100644
---- a/plasma/applet/applet.cpp
-+++ b/plasma/applet/applet.cpp
-@@ -21,6 +21,9 @@
- #include "applet.h"
- #include <QFile>
- #include <QGraphicsLinearLayout>
-+#include <QDBusConnection>
-+#include <QDBusConnectionInterface>
-+#include <QDBusMessage>
- #include <KConfigDialog>
- #include <KLocale>
- #include <KRun>
-@@ -31,12 +34,11 @@
- #include <Plasma/IconWidget>
- #endif
- #include <Plasma/Label>
--#include <taskmanager/taskmanager.h>
--#include <taskmanager/task.h>
- #include <util/functions.h>
- #include "chunkbar.h"
- #include "fadingnavigationwidget.h"
- 
-+
- using namespace bt;
- 
- namespace ktplasma
-@@ -174,7 +176,8 @@ namespace ktplasma
- 		}
- 	}
- 
--	void Applet::updateNavigation() {
-+	void Applet::updateNavigation() 
-+	{
- 		navigation->setEnabled(connected_to_app && !sources.empty()
- 			&& (sources.count() > 1 || !sources.contains(current_source)));
- 	}
-@@ -193,12 +196,14 @@ namespace ktplasma
- 		}
- 	}
- 	
--	void Applet::updateSources() {
-+	void Applet::updateSources() 
-+	{
- 		sources = engine->sources();
- 		sources.removeOne("core");
- 	}
- 
--	void Applet::setSource(QString source) {
-+	void Applet::setSource(QString source) 
-+	{
- 		if (!current_source.isEmpty())
- 			engine->disconnectSource(current_source,this);
- 		clearData();
-@@ -340,20 +345,39 @@ namespace ktplasma
- 
- 	void Applet::iconClicked()
- 	{
--		TaskManager::TaskDict tasks = TaskManager::TaskManager::self()->tasks();
--		for (TaskManager::TaskDict::iterator i = tasks.begin();i != tasks.end();i ++)
-+		QDBusConnection session_bus = QDBusConnection::sessionBus();
-+		QDBusConnectionInterface* dbus_service = session_bus.interface();
-+		if (!session_bus.isConnected() || !dbus_service || !dbus_service->isServiceRegistered("org.ktorrent.ktorrent"))
- 		{
--			if (i.value()->className() == "ktorrent")
--			{
--				KWindowSystem::activateWindow(i.key());
--				return;
--			}
-+			// can't find the window, try launching it
-+			KUrl::List empty;
-+			KRun::run("ktorrent", empty, 0);
-+		}
-+		else
-+		{
-+			QDBusMessage msg = QDBusMessage::createMethodCall("org.ktorrent.ktorrent", "/ktorrent/MainWindow_1", "org.kde.KMainWindow", "winId");
-+			QDBusPendingCall call = session_bus.asyncCall(msg, 5000);
-+			QDBusPendingCallWatcher* watcher = new QDBusPendingCallWatcher(call ,this);
-+			connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)), this, SLOT(dbusCallFinished(QDBusPendingCallWatcher*)));
- 		}
--
--		// can't find the window, try launching it
--		KUrl::List empty;
--		KRun::run("ktorrent", empty, 0);
- 	}
-+	
-+	void Applet::dbusCallFinished(QDBusPendingCallWatcher* self)
-+	{
-+		if (self->isError())
-+		{
-+			// call failed, try launching it
-+			KUrl::List empty;
-+			KRun::run("ktorrent", empty, 0);
-+		}
-+		else
-+		{
-+			QDBusPendingReply<qlonglong> reply = *self;
-+			KWindowSystem::activateWindow(reply.value());		
-+		}
-+		self->deleteLater();
-+	}
-+
- 
- 	void Applet::clearData()
- 	{		
-diff --git a/plasma/applet/applet.h b/plasma/applet/applet.h
-index 29b3265..d396118 100644
---- a/plasma/applet/applet.h
-+++ b/plasma/applet/applet.h
-@@ -27,6 +27,7 @@
- #include "fadingnavigationwidget.h"
- 
- class QGraphicsLinearLayout;
-+class QDBusPendingCallWatcher;
- 
- namespace Plasma
- {
-@@ -68,6 +69,7 @@ namespace ktplasma
- 		void iconClicked();
- 		void selectPrev();
- 		void selectNext();
-+		void dbusCallFinished(QDBusPendingCallWatcher* self);
- 		
- 	private:
- 		void updateTorrentCombo();
diff --git a/pkgs/applications/networking/p2p/mldonkey/default.nix b/pkgs/applications/networking/p2p/mldonkey/default.nix
index f86901d5ddec..2f739b056d4f 100644
--- a/pkgs/applications/networking/p2p/mldonkey/default.nix
+++ b/pkgs/applications/networking/p2p/mldonkey/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, ocaml, zlib, bzip2, ncurses, file, gd, libpng }:
 
 stdenv.mkDerivation (rec {
-  name = "mldonkey-3.1.1";
+  name = "mldonkey-3.1.3";
   
   src = fetchurl {
     url = "mirror://sourceforge/mldonkey/${name}.tar.bz2";
-    sha256 = "1cj0xvfx03jnpifcqxcgfjhkl3f70r86d8zn2flj9wvlnam98qlr";
+    sha256 = "1qnr0qzliw4aynf2zhmm5hmrc9bd5vhdq3bi8n88j4nc86gry9bw";
   };
   
   meta = {
@@ -15,9 +15,9 @@ stdenv.mkDerivation (rec {
 
   buildInputs = [ ocaml zlib ncurses bzip2 file gd libpng ];
   configureFlags = [ "--disable-gui" ];
-} // (if (stdenv.system != "i686-linux" && stdenv.system != "x86_64-linux") then
+} // (if !ocaml.nativeCompilers then
 {
-  # Byte code compilation (the ocaml opt compiler is not supported in many platforms)
+  # Byte code compilation (the ocaml opt compiler is not supported in some platforms)
   buildPhase = "make mlnet.byte";
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/applications/networking/sniffers/kismet/default.nix b/pkgs/applications/networking/sniffers/kismet/default.nix
index a7831785db81..9e41e8b7aaf6 100644
--- a/pkgs/applications/networking/sniffers/kismet/default.nix
+++ b/pkgs/applications/networking/sniffers/kismet/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, libpcap, ncurses, expat, pcre}:
 
 stdenv.mkDerivation {
-  name = "kismet-2010-01-r1";
+  name = "kismet-2011-03-r2";
 
   src = fetchurl {
-    url = http://www.kismetwireless.net/code/kismet-2010-01-R1.tar.gz;
-    sha256 = "106qird64x1v29nz6k5zs9dxxdq6q7fb7d6np0pnwm3dd2p1w7cx";
+    url = http://www.kismetwireless.net/code/kismet-2011-03-R2.tar.gz;
+    sha256 = "0r1admlaiq7k0v13d9ci9i9mf5m25i1r5r18bkawsla9fbxrk83i";
   };
 
   buildInputs = [libpcap ncurses expat pcre];
diff --git a/pkgs/applications/networking/sync/unison/default.nix b/pkgs/applications/networking/sync/unison/default.nix
index b6906c86afe2..ea30903fb383 100644
--- a/pkgs/applications/networking/sync/unison/default.nix
+++ b/pkgs/applications/networking/sync/unison/default.nix
@@ -1,9 +1,6 @@
 {stdenv, fetchurl, ocaml, lablgtk, fontschumachermisc, xset, makeWrapper, ncurses
 , enableX11 ? true}:
 
-let
-  nativeCode = if stdenv.isArm then false else true;
-in
 stdenv.mkDerivation (rec {
 
   name = "unison-2.40.63";
@@ -19,7 +16,7 @@ stdenv.mkDerivation (rec {
   '' else "";
 
   makeFlags = "INSTALLDIR=$(out)/bin/" + (if enableX11 then " UISTYLE=gtk2" else "")
-    + (if ! nativeCode then " NATIVE=false" else "");
+    + (if ! ocaml.nativeCompilers then " NATIVE=false" else "");
 
   preInstall = "mkdir -p $out/bin";
 
@@ -30,7 +27,7 @@ stdenv.mkDerivation (rec {
     done
   '' else "";
 
-  dontStrip = if ! nativeCode then true else false;
+  dontStrip = if ! ocaml.nativeCompilers then true else false;
 
   meta = {
     homepage = http://www.cis.upenn.edu/~bcpierce/unison/;
diff --git a/pkgs/applications/networking/umurmur/default.nix b/pkgs/applications/networking/umurmur/default.nix
new file mode 100644
index 000000000000..7c731874a5f5
--- /dev/null
+++ b/pkgs/applications/networking/umurmur/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, openssl, protobufc, libconfig }:
+
+stdenv.mkDerivation rec {
+  name = "umurmur-0.2.10";
+  
+  src = fetchurl {
+    url = "http://umurmur.googlecode.com/files/${name}.tar.gz";
+    sha256 = "0c990jvm73a6lajr1qlzw0p6nkshkh2nqwjmz2sq79pj0hm9ckvy";
+  };
+  
+  buildInputs = [ openssl protobufc libconfig ];
+
+  configureFlags = "--with-ssl=openssl";
+
+  meta = {
+    description = "Minimalistic Murmur (Mumble server)";
+    license = "BSD";
+    homepage = http://code.google.com/p/umurmur/;
+  };
+}
diff --git a/pkgs/applications/networking/vnstat/default.nix b/pkgs/applications/networking/vnstat/default.nix
index 69a0a7efde83..57afefd7dcdd 100644
--- a/pkgs/applications/networking/vnstat/default.nix
+++ b/pkgs/applications/networking/vnstat/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, ncurses}:
 
 stdenv.mkDerivation rec {
-  name = "vnstat-1.9";
-  
+  name = "vnstat-1.11";
+
   src = fetchurl {
-    url = http://humdi.net/vnstat/vnstat-1.9.tar.gz;
-    sha256 = "1migym0wig1s3b7d22ipxkd1p78sqc89dwx82qbf5hsb5q2fk4q1";
+    url = "http://humdi.net/vnstat/${name}.tar.gz";
+    sha256 = "09p0mlf49zzmh6jzwyvzd9k3jv7bl8i6w8xl65ns3dmv2zc7c65p";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/networking/yafc/default.nix b/pkgs/applications/networking/yafc/default.nix
index 7089c7507db0..bdbb53d1675f 100644
--- a/pkgs/applications/networking/yafc/default.nix
+++ b/pkgs/applications/networking/yafc/default.nix
@@ -1,11 +1,10 @@
 {stdenv, fetchurl, readline, libssh, intltool}:
 
 stdenv.mkDerivation rec {
-  name = "yafc";
-  version = "1.2.0";
+  name = "yafc-1.2.3";
   src = fetchurl {
-    url = "https://github.com/downloads/sebastinas/yafc/${name}-${version}.tar.xz";
-    sha256 = "0h5cbvvfkigvzfqqzvgqpn8m0ilyng3rgyh85c0mi48klzv8kb58";
+    url = "https://github.com/downloads/sebastinas/yafc/${name}.tar.xz";
+    sha256 = "11h5r9ragfpil338kq981wxnifacflqfwgydhmy00b3fbdlnxzsi";
   };
 
   buildInputs = [ readline libssh intltool ];
diff --git a/pkgs/applications/office/calligra/default.nix b/pkgs/applications/office/calligra/default.nix
index b64338adaf18..152246ee58f2 100644
--- a/pkgs/applications/office/calligra/default.nix
+++ b/pkgs/applications/office/calligra/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, cmake, kdelibs, attica, perl, zlib, libpng, boost, mesa
 , kdepimlibs, createresources ? null, eigen, qca2, exiv2, soprano, marble, lcms2
 , fontconfig, freetype, sqlite, icu, libwpd, libwpg, pkgconfig, popplerQt4
-, libkdcraw, libxslt, fftw, glew, gsl, shared_desktop_ontologies }:
+, libkdcraw, libxslt, fftw, glew, gsl, shared_desktop_ontologies, okular }:
 
 stdenv.mkDerivation rec {
-  name = "calligra-2.4.2";
+  name = "calligra-2.5.0";
 
   src = fetchurl {
     url = "mirror://kde/stable/${name}/${name}.tar.bz2";
-    sha256 = "14wi8mr87aas12f75qi6p8x0pij365sbz4c737qhh4302fh8fsqg";
+    sha256 = "0q6ydi7hzrzwqzb38gikdh1l2zf8qp4i3nkgyb01148bjwrhvf21";
   };
 
   buildNativeInputs = [ cmake perl pkgconfig ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ kdelibs attica zlib libpng boost mesa kdepimlibs
     createresources eigen qca2 exiv2 soprano marble lcms2 fontconfig freetype
     sqlite icu libwpd libwpg popplerQt4 libkdcraw libxslt fftw glew gsl
-    shared_desktop_ontologies ];
+    shared_desktop_ontologies okular ];
 
   meta = {
     description = "A Qt/KDE office suite, formely known as koffice";
diff --git a/pkgs/applications/office/openoffice/generate-libreoffice-srcs.sh b/pkgs/applications/office/openoffice/generate-libreoffice-srcs.sh
index 1d751ec7049e..fb8cc8161145 100644
--- a/pkgs/applications/office/openoffice/generate-libreoffice-srcs.sh
+++ b/pkgs/applications/office/openoffice/generate-libreoffice-srcs.sh
@@ -2,17 +2,19 @@
 
 # Take the list of files from the main package, ooo.lst.in
 
-echo '{fetchurl} : ['
+cat <<EOF
+[
+EOF
 
-while read a; do
-
-  URL=http://dev-www.libreoffice.org/src/$a
-
-  MD5=${a::32}
-  echo '(fetchurl {'
-  echo "  url = \"$URL\";"
-  echo "  md5 = \"$MD5\";"
-  echo '})'
+read file
+while read file; do
+  if [[ "$file" == @* ]]; then
+    break
+  fi
+  echo '{'
+  echo "  name = \"${file:33}\";"
+  echo "  md5 = \"${file:0:32}\";"
+  echo '}'
 done
 
 echo ']'
diff --git a/pkgs/applications/office/openoffice/libreoffice-srcs.nix b/pkgs/applications/office/openoffice/libreoffice-srcs.nix
index 6b98e32e46fd..47630e5cfdf3 100644
--- a/pkgs/applications/office/openoffice/libreoffice-srcs.nix
+++ b/pkgs/applications/office/openoffice/libreoffice-srcs.nix
@@ -1,370 +1,374 @@
-{fetchurl} : [
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/48a9f787f43a09c0a9b7b00cd1fddbbf-hyphen-2.7.1.tar.gz";
-  md5 = "48a9f787f43a09c0a9b7b00cd1fddbbf";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/63ddc5116488985e820075e65fbe6aa4-openssl-0.9.8o.tar.gz";
-  md5 = "63ddc5116488985e820075e65fbe6aa4";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/db5ffcd50064421176e8afb7b85fd1a7-pixman-0.24.0.tar.bz2";
-  md5 = "db5ffcd50064421176e8afb7b85fd1a7";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/0b49ede71c21c0599b0cc19b353a6cb3-README_apache-commons.txt";
+[
+{
+  name = "hyphen-2.8.3.tar.gz";
+  md5 = "86261f06c097d3e425a2f6d0b0635380";
+}
+{
+  name = "openssl-0.9.8v.tar.gz";
+  md5 = "51a40a81b3b7abe8a5c33670bd3da0ce";
+}
+{
+  name = "pixman-0.24.4.tar.bz2";
+  md5 = "c63f411b3ad147db2bcce1bf262a0e02";
+}
+{
+  name = "README_apache-commons.txt";
   md5 = "0b49ede71c21c0599b0cc19b353a6cb3";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/e1c178b18f130b40494561f02bc1a948-libexttextcat-3.2.0.tar.bz2";
-  md5 = "e1c178b18f130b40494561f02bc1a948";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip";
+}
+{
+  name = "libexttextcat-3.3.1.tar.bz2";
+  md5 = "6097739c841f671cb21332b9cc593ae7";
+}
+{
+  name = "hsqldb_1_8_0.zip";
   md5 = "17410483b5b5f267aa18b7e00b65e6e0";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/1756c4fa6c616ae15973c104cd8cb256-Adobe-Core35_AFMs-314.tar.gz";
+}
+{
+  name = "Adobe-Core35_AFMs-314.tar.gz";
   md5 = "1756c4fa6c616ae15973c104cd8cb256";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz";
+}
+{
+  name = "STLport-4.5.tar.gz";
   md5 = "18f577b374d60b3c760a3a3350407632";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz";
+}
+{
+  name = "xmlsec1-1.2.14.tar.gz";
   md5 = "1f24ab1d39f4a51faf22244c94a6203f";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/24be19595acad0a2cae931af77a0148a-LICENSE_source-9.0.0.7-bj.html";
+}
+{
+  name = "LICENSE_source-9.0.0.7-bj.html";
   md5 = "24be19595acad0a2cae931af77a0148a";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz";
+}
+{
+  name = "lp_solve_5.5.tar.gz";
   md5 = "26b3e95ddf3d9c077c480ea45874b3b8";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/284e768eeda0e2898b0d5bf7e26a016e-raptor-1.4.18.tar.gz";
+}
+{
+  name = "raptor-1.4.18.tar.gz";
   md5 = "284e768eeda0e2898b0d5bf7e26a016e";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz";
+}
+{
+  name = "jakarta-tomcat-5.0.30-src.tar.gz";
   md5 = "2a177023f9ea8ec8bd00837605c5df1b";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz";
+}
+{
+  name = "commons-lang-2.3-src.tar.gz";
   md5 = "2ae988b339daec234019a7066f96733e";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz";
+}
+{
+  name = "commons-httpclient-3.1-src.tar.gz";
   md5 = "2c9b0f83ed5890af02c0df1c1776f39b";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/0be45d54cc5e1c2e3102e32b8c190346-liberation-fonts-ttf-1.07.1.tar.gz";
+}
+{
+  name = "liberation-fonts-ttf-1.07.1.tar.gz";
   md5 = "0be45d54cc5e1c2e3102e32b8c190346";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip";
+}
+{
+  name = "swingExSrc.zip";
   md5 = "35c94d2df8893241173de1d16b6034c0";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/35efabc239af896dfb79be7ebdd6e6b9-gentiumbasic-fonts-1.10.zip";
+}
+{
+  name = "gentiumbasic-fonts-1.10.zip";
   md5 = "35efabc239af896dfb79be7ebdd6e6b9";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip";
+}
+{
+  name = "sacjava-1.3.zip";
   md5 = "39bb3fcea1514f1369fcfc87542390fd";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz";
+}
+{
+  name = "epm-3.7.tar.gz";
   md5 = "3ade8cfe7e59ca8e65052644fed9fca4";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz";
+}
+{
+  name = "commons-logging-1.1.1-src.tar.gz";
   md5 = "3c219630e4302863a9a83d0efde889db";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/48470d662650c3c074e1c3fabbc67bbd-README_source-9.0.0.7-bj.txt";
+}
+{
+  name = "README_source-9.0.0.7-bj.txt";
   md5 = "48470d662650c3c074e1c3fabbc67bbd";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/48d8169acc35f97e05d8dcdfd45be7f2-lucene-2.3.2.tar.gz";
-  md5 = "48d8169acc35f97e05d8dcdfd45be7f2";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/4a660ce8466c9df01f19036435425c3a-glibc-2.1.3-stub.tar.gz";
+}
+{
+  name = "clucene-core-2.3.3.4.tar.gz";
+  md5 = "48d647fbd8ef8889e5a7f422c1bfda94";
+}
+{
+  name = "glibc-2.1.3-stub.tar.gz";
   md5 = "4a660ce8466c9df01f19036435425c3a";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/f101a9e88b783337b20b2e26dfd26d5f-cairo-1.10.2.tar.gz";
+}
+{
+  name = "cairo-1.10.2.tar.gz";
   md5 = "f101a9e88b783337b20b2e26dfd26d5f";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/599dc4cc65a07ee868cf92a667a913d2-xpdf-3.02.tar.gz";
+}
+{
+  name = "xpdf-3.02.tar.gz";
   md5 = "599dc4cc65a07ee868cf92a667a913d2";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/7740a8ec23878a2f50120e1faa2730f2-libxml2-2.7.6.tar.gz";
+}
+{
+  name = "libxml2-2.7.6.tar.gz";
   md5 = "7740a8ec23878a2f50120e1faa2730f2";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/7376930b0d3f3d77a685d94c4a3acda8-STLport-4.5-0119.tar.gz";
+}
+{
+  name = "STLport-4.5-0119.tar.gz";
   md5 = "7376930b0d3f3d77a685d94c4a3acda8";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip";
+}
+{
+  name = "rhino1_5R5.zip";
   md5 = "798b2ffdc8bcfe7bca2cf92b62caf685";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/ecb2e37e45c9933e2a963cabe03670ab-curl-7.19.7.tar.gz";
+}
+{
+  name = "curl-7.19.7.tar.gz";
   md5 = "ecb2e37e45c9933e2a963cabe03670ab";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/8294d6c42e3553229af9934c5c0ed997-stax-api-1.0-2-sources.jar";
+}
+{
+  name = "stax-api-1.0-2-sources.jar";
   md5 = "8294d6c42e3553229af9934c5c0ed997";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/bd30e9cf5523cdfc019b94f5e1d7fd19-cppunit-1.12.1.tar.gz";
+}
+{
+  name = "cppunit-1.12.1.tar.gz";
   md5 = "bd30e9cf5523cdfc019b94f5e1d7fd19";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/a169ab152209200a7bad29a275cb0333-seamonkey-1.1.14.source.tar.gz";
+}
+{
+  name = "seamonkey-1.1.14.source.tar.gz";
   md5 = "a169ab152209200a7bad29a275cb0333";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/a4d9b30810a434a3ed39fc0003bbd637-LICENSE_stax-api-1.0-2-sources.html";
+}
+{
+  name = "LICENSE_stax-api-1.0-2-sources.html";
   md5 = "a4d9b30810a434a3ed39fc0003bbd637";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip";
+}
+{
+  name = "xsltml_2.1.2.zip";
   md5 = "a7983f859eafb2677d7ff386a023bc40";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip";
+}
+{
+  name = "source-9.0.0.7-bj.zip";
   md5 = "ada24d37d8d638b3d8a9985e80bc2978";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz";
+}
+{
+  name = "commons-codec-1.3-src.tar.gz";
   md5 = "af3c3acf618de6108d65fcdc92b492e1";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/bc702168a2af16869201dbe91e46ae48-LICENSE_Python-2.6.1";
+}
+{
+  name = "LICENSE_Python-2.6.1";
   md5 = "bc702168a2af16869201dbe91e46ae48";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/c441926f3a552ed3e5b274b62e86af16-STLport-4.0.tar.gz";
+}
+{
+  name = "STLport-4.0.tar.gz";
   md5 = "c441926f3a552ed3e5b274b62e86af16";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/ca66e26082cab8bb817185a116db809b-redland-1.0.8.tar.gz";
+}
+{
+  name = "redland-1.0.8.tar.gz";
   md5 = "ca66e26082cab8bb817185a116db809b";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/d4c4d91ab3a8e52a2e69d48d34ef4df4-core.zip";
+}
+{
+  name = "core.zip";
   md5 = "d4c4d91ab3a8e52a2e69d48d34ef4df4";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/d70951c80dabecc2892c919ff5d07172-db-4.7.25.NC-custom.tar.gz";
+}
+{
+  name = "db-4.7.25.NC-custom.tar.gz";
   md5 = "d70951c80dabecc2892c919ff5d07172";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/e0707ff896045731ff99e99799606441-README_db-4.7.25.NC-custom.txt";
+}
+{
+  name = "README_db-4.7.25.NC-custom.txt";
   md5 = "e0707ff896045731ff99e99799606441";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/e81c2f0953aa60f8062c05a4673f2be0-Python-2.6.1.tar.bz2";
+}
+{
+  name = "Python-2.6.1.tar.bz2";
   md5 = "e81c2f0953aa60f8062c05a4673f2be0";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/e61d0364a30146aaa3001296f853b2b9-libxslt-1.1.26.tar.gz";
+}
+{
+  name = "libxslt-1.1.26.tar.gz";
   md5 = "e61d0364a30146aaa3001296f853b2b9";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/ea570af93c284aa9e5621cd563f54f4d-bsh-2.0b1-src.tar.gz";
+}
+{
+  name = "bsh-2.0b1-src.tar.gz";
   md5 = "ea570af93c284aa9e5621cd563f54f4d";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/ea91f2fb4212a21d708aced277e6e85a-vigra1.4.0.tar.gz";
+}
+{
+  name = "vigra1.4.0.tar.gz";
   md5 = "ea91f2fb4212a21d708aced277e6e85a";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/ee8b492592568805593f81f8cdf2a04c-expat-2.0.1.tar.gz";
-  md5 = "ee8b492592568805593f81f8cdf2a04c";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/fb7ba5c2182be4e73748859967455455-README_stax-api-1.0-2-sources.txt";
+}
+{
+  name = "expat-2.1.0.tar.gz";
+  md5 = "dd7dab7a5fea97d2a6a43f511449b7cd";
+}
+{
+  name = "README_stax-api-1.0-2-sources.txt";
   md5 = "fb7ba5c2182be4e73748859967455455";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/fca8706f2c4619e2fa3f8f42f8fc1e9d-rasqal-0.9.16.tar.gz";
+}
+{
+  name = "rasqal-0.9.16.tar.gz";
   md5 = "fca8706f2c4619e2fa3f8f42f8fc1e9d";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz";
-  md5 = "fdb27bfe2dbe2e7b57ae194d9bf36bab";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/f872f4ac066433d8ff92f5e316b36ff9-dejavu-fonts-ttf-2.33.zip";
+}
+{
+  name = "dejavu-fonts-ttf-2.33.zip";
   md5 = "f872f4ac066433d8ff92f5e316b36ff9";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/0981bda6548a8c8233ffce2b6e4b2a23-mysql-connector-c++-1.1.0.tar.gz";
+}
+{
+  name = "mysql-connector-c++-1.1.0.tar.gz";
   md5 = "0981bda6548a8c8233ffce2b6e4b2a23";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/061a9f17323117c9358ed60f33ecff78-postgresql-9.1.1.tar.bz2";
+}
+{
+  name = "postgresql-9.1.1.tar.bz2";
   md5 = "061a9f17323117c9358ed60f33ecff78";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/067201ea8b126597670b5eff72e1f66c-mythes-1.2.0.tar.gz";
-  md5 = "067201ea8b126597670b5eff72e1f66c";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip";
+}
+{
+  name = "mythes-1.2.2.tar.gz";
+  md5 = "e1e255dc43dbcbb34cb19e8a0eba90ae";
+}
+{
+  name = "libformula-1.1.7.zip";
   md5 = "3404ab6b1792ae5f16bbd603bd1e1d03";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip";
+}
+{
+  name = "libfonts-1.1.6.zip";
   md5 = "3bdf40c0d199af31923e900d082ca2dd";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip";
+}
+{
+  name = "librepository-1.1.6.zip";
   md5 = "8ce2fcd72becf06c41f7201d15373ed9";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip";
+}
+{
+  name = "libloader-1.1.6.zip";
   md5 = "97b2d4dba862397f446b217e2b623e71";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip";
+}
+{
+  name = "libxml-1.1.7.zip";
   md5 = "ace6ab49184e329db254e454a010f56d";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip";
+}
+{
+  name = "flute-1.1.6.zip";
   md5 = "d8bd5eed178db6e2b18eeed243f85aa8";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip";
+}
+{
+  name = "liblayout-0.2.10.zip";
   md5 = "db60e4fde8dd6d6807523deb71ee34dc";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip";
+}
+{
+  name = "libbase-1.1.6.zip";
   md5 = "eeb2c7ddf0d302fba4bfc6e97eac9624";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip";
+}
+{
+  name = "libserializer-1.1.6.zip";
   md5 = "f94d9870737518e3b597f9265f4e9803";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip";
+}
+{
+  name = "flow-engine-0.9.4.zip";
   md5 = "ba2930200c9f019c2d93a8c88c651a0f";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/ff369e69ef0f0143beb5626164e87ae2-neon-0.29.5.tar.gz";
+}
+{
+  name = "neon-0.29.5.tar.gz";
   md5 = "ff369e69ef0f0143beb5626164e87ae2";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/3dd55b952826d2b32f51308f2f91aa89-gettext-0.18.1.1.tar.gz";
+}
+{
+  name = "gettext-0.18.1.1.tar.gz";
   md5 = "3dd55b952826d2b32f51308f2f91aa89";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/9f6e85e1e38490c3956f4415bcd33e6e-glib-2.28.1.tar.gz";
+}
+{
+  name = "glib-2.28.1.tar.gz";
   md5 = "9f6e85e1e38490c3956f4415bcd33e6e";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/a7d6c5f2fe2d481149ed3ba807b5c043-gdk-pixbuf-2.23.0.tar.gz";
+}
+{
+  name = "gdk-pixbuf-2.23.0.tar.gz";
   md5 = "a7d6c5f2fe2d481149ed3ba807b5c043";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/3a84ac2da37cae5bf7ce616228c6fbde-libgsf-1.14.19.tar.gz";
+}
+{
+  name = "libgsf-1.14.19.tar.gz";
   md5 = "3a84ac2da37cae5bf7ce616228c6fbde";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/22ad1c8d3fda7e73b0798035f3dd96bc-pango-1.28.3.tar.gz";
+}
+{
+  name = "pango-1.28.3.tar.gz";
   md5 = "22ad1c8d3fda7e73b0798035f3dd96bc";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/0611e099e807210cf738dcb41425d104-libcroco-0.6.2.tar.gz";
+}
+{
+  name = "libcroco-0.6.2.tar.gz";
   md5 = "0611e099e807210cf738dcb41425d104";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/d7a242ca43e33e1b63d3073f9d46a6a8-librsvg-2.32.1.tar.gz";
+}
+{
+  name = "librsvg-2.32.1.tar.gz";
   md5 = "d7a242ca43e33e1b63d3073f9d46a6a8";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/220035f111ea045a51e290906025e8b5-libpng-1.5.1.tar.gz";
-  md5 = "220035f111ea045a51e290906025e8b5";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/a2c10c04f396a9ce72894beb18b4e1f9-jpeg-8c.tar.gz";
+}
+{
+  name = "libpng-1.5.10.tar.gz";
+  md5 = "9e5d864bce8f06751bbd99962ecf4aad";
+}
+{
+  name = "jpeg-8c.tar.gz";
   md5 = "a2c10c04f396a9ce72894beb18b4e1f9";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/c735eab2d659a96e5a594c9e8541ad63-zlib-1.2.5.tar.gz";
-  md5 = "c735eab2d659a96e5a594c9e8541ad63";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/314e582264c36b3735466c522899aa07-icu4c-4_4_2-src.tgz";
-  md5 = "314e582264c36b3735466c522899aa07";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt";
+}
+{
+  name = "zlib-1.2.7.tar.bz2";
+  md5 = "2ab442d169156f34c379c968f3f482dd";
+}
+{
+  name = "icu4c-49_1_1-src.tgz";
+  md5 = "7c53f83e0327343f4060c0eb83842daf";
+}
+{
+  name = "ConvertTextToNumber-1.3.2.oxt";
   md5 = "451ccf439a36a568653b024534669971";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/b99fb620b1324b4ce79ee6998b507146-JLanguageTool-1.4.0.tar.bz2";
-  md5 = "b99fb620b1324b4ce79ee6998b507146";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/debc62758716a169df9f62e6ab2bc634-zlib-1.2.3.tar.gz";
-  md5 = "debc62758716a169df9f62e6ab2bc634";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/0f63ee487fda8f21fafa767b3c447ac9-ixion-0.2.0.tar.gz";
+}
+{
+  name = "JLanguageTool-1.7.0.tar.bz2";
+  md5 = "b63e6340a02ff1cacfeadb2c42286161";
+}
+{
+  name = "ixion-0.2.0.tar.gz";
   md5 = "0f63ee487fda8f21fafa767b3c447ac9";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/71474203939fafbe271e1263e61d083e-nss-3.12.8-with-nspr-4.8.6.tar.gz";
-  md5 = "71474203939fafbe271e1263e61d083e";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/9d283e02441d8cebdcd1e5d9df227d67-libwpg-0.2.1.tar.bz2";
+}
+{
+  name = "nss-3.13.5-with-nspr-4.9.1.tar.gz";
+  md5 = "a0a861f539f0e7a91d05e6b9457e4db1";
+}
+{
+  name = "libwpg-0.2.1.tar.bz2";
   md5 = "9d283e02441d8cebdcd1e5d9df227d67";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/c01351d7db2b205de755d58769288224-libwpd-0.9.4.tar.bz2";
+}
+{
+  name = "libwpd-0.9.4.tar.bz2";
   md5 = "c01351d7db2b205de755d58769288224";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/34dd7951abbda99b7a75a09993a37965-libwps-0.2.4.tar.bz2";
-  md5 = "34dd7951abbda99b7a75a09993a37965";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/0ff7d225d087793c8c2c680d77aac3e7-mdds_0.5.3.tar.bz2";
+}
+{
+  name = "libwps-0.2.7.tar.bz2";
+  md5 = "d197bd6211669a2fa4ca648faf04bcb1";
+}
+{
+  name = "mdds_0.5.3.tar.bz2";
   md5 = "0ff7d225d087793c8c2c680d77aac3e7";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/f02578f5218f217a9f20e9c30e119c6a-boost_1_44_0.tar.bz2";
+}
+{
+  name = "boost_1_44_0.tar.bz2";
   md5 = "f02578f5218f217a9f20e9c30e119c6a";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/3121aaf3e13e5d88dfff13fb4a5f1ab8-hunspell-1.3.2.tar.gz";
+}
+{
+  name = "hunspell-1.3.2.tar.gz";
   md5 = "3121aaf3e13e5d88dfff13fb4a5f1ab8";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/3bf481ca95109b14435125c0dd1f2217-graphite2-1.0.3.tgz";
+}
+{
+  name = "graphite2-1.0.3.tgz";
   md5 = "3bf481ca95109b14435125c0dd1f2217";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/d28864eb2b59bb57b034c0d4662a3cee-libvisio-0.0.15.tar.bz2";
-  md5 = "d28864eb2b59bb57b034c0d4662a3cee";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip";
+}
+{
+  name = "libvisio-0.0.18.tar.bz2";
+  md5 = "a9a1db27688bad49418667b434d29c1f";
+}
+{
+  name = "LinLibertineG-20120116.zip";
   md5 = "e7a384790b13c29113e22e596ade9687";
-})
-(fetchurl {
-  url = "http://dev-www.libreoffice.org/src/7c2549f6b0a8bb604e6c4c729ffdcfe6-libcmis-0.1.0.tar.gz";
-  md5 = "7c2549f6b0a8bb604e6c4c729ffdcfe6";
-})
+}
+{
+  name = "libcmis-0.2.3.tar.gz";
+  md5 = "0d2dcdfbf28d6208751b33057f5361f0";
+}
+{
+  name = "libcdr-0.0.8.tar.bz2";
+  md5 = "ce5a1def34578b75959ac31210f031f6";
+}
+{
+  name = "lcms2-2.3.tar.gz";
+  md5 = "327348d67c979c88c2dec59a23a17d85";
+}
+{
+  name = "libvisio-0.0.19.tar.bz2";
+  md5 = "94e7f271e38c976462558b4278590178";
+}
 ]
diff --git a/pkgs/applications/office/openoffice/libreoffice.nix b/pkgs/applications/office/openoffice/libreoffice.nix
index fb577be03907..d336266ccaf1 100644
--- a/pkgs/applications/office/openoffice/libreoffice.nix
+++ b/pkgs/applications/office/openoffice/libreoffice.nix
@@ -1,37 +1,59 @@
 { stdenv, fetchurl, pam, python, tcsh, libxslt, perl, ArchiveZip
-, CompressZlib, zlib, libjpeg, expat, pkgconfig, freetype, libwpd
+, CompressZlib, zlib, libjpeg, expat, pkgconfigUpstream, freetype, libwpd
 , libxml2, db4, sablotron, curl, libXaw, fontconfig, libsndfile, neon
 , bison, flex, zip, unzip, gtk, libmspack, getopt, file, cairo, which
 , icu, boost, jdk, ant, libXext, libX11, libXtst, libXi, cups
 , libXinerama, openssl, gperf, cppunit, GConf, ORBit2, poppler
 , librsvg, gnome_vfs, gstreamer, gst_plugins_base, mesa
-, autoconf, automake, openldap, bash
+, autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
+, libwpg, dbus_glib, qt4, kde4, clucene_core_2, libcdr, lcms2, vigra
+, libiodbc, mdds, saneBackends, mythes, libexttextcat, libvisio
 , fontsConf
 , langs ? [ "en-US" "en-GB" "ca" "ru" "eo" "fr" "nl" "de" ]
 }:
 
 let
   langsSpaces = stdenv.lib.concatStringsSep " " langs;
-in
-stdenv.mkDerivation rec {
-  name = "libreoffice-3.5.1.2";
-
-  srcs_download = import ./libreoffice-srcs.nix { inherit fetchurl; };
-
-  src_translation = fetchurl {
-    url = "http://download.documentfoundation.org/libreoffice/src/3.5.1/libreoffice-translations-3.5.1.2.tar.xz";
-    sha256 = "cf8ed662f7d0a679bd3a242a7f88cf445b769afdcd8a3d3df655d774f296972a";
+  major = "3";
+  minor = "6";
+  patch = "1";
+  tweak = "2";
+  subdir = "${major}.${minor}.${patch}";
+  version = "${subdir}.${tweak}";
+  fetchThirdParty = {name, md5}: fetchurl {
+    inherit name md5;
+    url = "http://dev-www.libreoffice.org/src/${md5}-${name}";
   };
-
-  src_help = fetchurl {
-    url = "http://download.documentfoundation.org/libreoffice/src/3.5.1/libreoffice-help-3.5.1.2.tar.xz";
-    sha256 = "43b07225854b1c8b3195b252453b8e97d2d58d83909bf4b5f920cb08b7f33e30";
+  fetchSrc = {name, sha256}: fetchurl {
+    url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${name}-${version}.tar.xz";
+    inherit sha256;
   };
-
-  src = fetchurl {
-    url = "http://download.documentfoundation.org/libreoffice/src/3.5.1/libreoffice-core-3.5.1.2.tar.xz";
-    sha256 = "61cd12e20fb9460178fc6f08100a9a189c2390c21e2e47eb66e07a5b0ce5cd94";
+  srcs = {
+    third_party = [ (fetchurl rec {
+        url = "http://dev-www.libreoffice.org/extern/${md5}-${name}";
+        md5 = "185d60944ea767075d27247c3162b3bc";
+        name = "unowinreg.dll";
+      }) ] ++ (map fetchThirdParty (import ./libreoffice-srcs.nix));
+    translations = fetchSrc {
+      name = "translations";
+      sha256 = "0id4ad8h3fl4s2ax6r4w4af74xvagkv0qwy50f483lqq3a3pl7fl";
+    };
+
+    help = fetchSrc {
+      name = "help";
+      sha256 = "0jd3l3rkhmdvrvgklkmrh9zsg9hlv3vhy6s97fnzhpzr90sjqrs1";
+    };
+
+    core = fetchSrc {
+      name = "core";
+      sha256 = "12zc0zviy1p3gk1v5nm4ks4rzscn68lpnl3kis4q693zhsk8jyh3";
+    };
   };
+in
+stdenv.mkDerivation rec {
+  name = "libreoffice-${version}";
+
+  src = srcs.core;
 
   # Openoffice will open libcups dynamically, so we link it directly
   # to make its dlopen work.
@@ -40,47 +62,44 @@ stdenv.mkDerivation rec {
   # If we call 'configure', 'make' will then call configure again without parameters.
   # It's their system.
   configureScript = "./autogen.sh";
+  dontUseCmakeConfigure = true;
+
+  postUnpack = ''
+    mkdir -v $sourceRoot/src
+  '' + (stdenv.lib.concatMapStrings (f: "ln -sv ${f} $sourceRoot/src/${f.outputHash}-${f.name}\n") srcs.third_party)
+  + ''
+    ln -sv ${srcs.help} $sourceRoot/src/${srcs.help.name}
+    ln -sv ${srcs.translations} $sourceRoot/src/${srcs.translations.name}
+  '';
 
-  preConfigure = ''
-    tar xf $src_translation
-    # Libreoffice expects by default the translations in ./translations
-    mv libreoffice-translations-3.5.1.2/translations .
-    tar xf $src_help
-    # Libreoffice expects by default the help in ./helpcontent2
-    mv libreoffice-help-3.5.1.2/helpcontent2 .
-
-    sed -i 's,/bin/bash,${bash}/bin/bash,' sysui/desktop/share/makefile.mk solenv/bin/localize
-    sed -i 's,/usr/bin/env bash,${bash}/bin/bash,' bin/unpack-sources \
-      solenv/bin/install-gdb-printers solenv/bin/striplanguagetags.sh
-
-    sed -i 's,/usr/bin/env perl,${perl}/bin/perl,' solenv/bin/concat-deps.pl solenv/bin/ooinstall
+  patchPhase = ''
+    find . -type f -print0 | xargs -0 sed -i \
+      -e 's,! */bin/bash,!${bash}/bin/bash,' -e 's,\(!\|SHELL=\) */usr/bin/env bash,\1${bash}/bin/bash,' \
+      -e 's,! */usr/bin/perl,!${perl}/bin/perl,' -e 's,! */usr/bin/env perl,!${perl}/bin/perl,' \
+      -e 's,! */usr/bin/python,!${python}/bin/python,' -e 's,! */usr/bin/env python,!${python}/bin/python,'
     sed -i 's,ANT_OPTS+="\(.*\)",ANT_OPTS+=\1,' apache-commons/java/*/makefile.mk
+  '';
+
+  QT4DIR = qt4;
+  KDE4DIR = kde4.kdelibs;
 
+  # I set --with-num-cpus=$NIX_BUILD_CORES, as it's the equivalent of
+  # enableParallelBuilding=true in this build system.
+  preConfigure = ''
     # Needed to find genccode
     PATH=$PATH:${icu}/sbin
 
-    configureFlagsArray=("--with-lang=${langsSpaces}")
+    configureFlagsArray=("--with-lang=${langsSpaces}" "--with-num-cpus=$NIX_BUILD_CORES")
   '';
 
+  makeFlags = "SHELL=${bash}/bin/bash";
+
   buildPhase = ''
     # This is required as some cppunittests require fontconfig configured
     export FONTCONFIG_FILE=${fontsConf}
-    mkdir src
-    for a in $srcs_download; do
-      FILE=$(basename $a)
-      # take out the hash
-      cp -v $a src/$(echo $FILE | sed 's/[^-]*-//')
-    done
-
-    # Remove an exit 1, ignoring the lack of wget or curl
-    sed '/wget nor curl/{n;d}' -i download
-    ./download
 
     # Fix sysui: wants to create a tar for root
     sed -i -e 's,--own.*root,,' sysui/desktop/slackware/makefile.mk
-    # Fix redland: wants to set rpath to /usr/local/lib
-    sed -i -e 's,^CONFIGURE_FLAGS.*,& --prefix='$TMPDIR, redland/redland/makefile.mk \
-      redland/raptor/makefile.mk redland/rasqal/makefile.mk
 
     # This to aovid using /lib:/usr/lib at linking
     sed -i '/gb_LinkTarget_LDFLAGS/{ n; /rpath-link/d;}' solenv/gbuild/platform/unxgcc.mk
@@ -99,27 +118,29 @@ stdenv.mkDerivation rec {
   '';
 
   configureFlags = [
-    "--enable-verbose"
+    #"--enable-verbose"
 
     # Without these, configure does not finish
     "--without-junit"
-    "--without-system-mythes"
 
     # Without this, it wants to download
+    "--enable-python=system"
+    "--enable-dbus"
+    "--enable-kde4"
+    "--disable-odk"
     "--with-system-cairo"
     "--with-system-libs"
-    "--enable-python=system"
-    "--with-system-boost"
+    "--with-boost-libdir=${boost}/lib"
     "--with-system-db"
+    "--with-openldap" "--enable-ldap"
+    "--without-system-libwps"
+    "--without-doxygen"
 
     # I imagine this helps. Copied from go-oo.
     "--disable-epm"
     "--disable-mathmldtd"
     "--disable-mozilla"
-    "--disable-odk"
-    "--disable-dbus"
     "--disable-kde"
-    "--disable-kde4"
     "--disable-postgresql-sdbc"
     "--with-package-format=native"
     "--with-jdk-home=${jdk}"
@@ -131,30 +152,26 @@ stdenv.mkDerivation rec {
     "--without-system-beanshell"
     "--without-system-hsqldb"
     "--without-system-jars"
-    "--without-system-hunspell"
     "--without-system-altlinuxhyph"
     "--without-system-lpsolve"
     "--without-system-graphite"
-    "--without-system-mozilla"
-    "--without-system-libwps"
-    "--without-system-libwpg"
-    "--without-system-redland"
-    "--without-system-libvisio"
+    "--without-system-mozilla-headers"
     "--without-system-libcmis"
-    "--without-system-nss"
-    "--without-system-sampleicc"
-    "--without-system-libexttextcat"
-  ];
 
-  buildInputs = [
-    pam python tcsh libxslt perl ArchiveZip CompressZlib zlib 
-    libjpeg expat pkgconfig freetype libwpd libxml2 db4 sablotron curl 
-    libXaw fontconfig libsndfile neon bison flex zip unzip gtk libmspack 
-    getopt file jdk cairo which icu boost libXext libX11 libXtst libXi mesa
-    cups libXinerama openssl gperf GConf ORBit2 gnome_vfs gstreamer gst_plugins_base
-    ant autoconf openldap cppunit poppler librsvg automake
+    "--with-java-target-version=1.6" # The default 1.7 not supported
   ];
 
+  buildInputs =
+    [ ant ArchiveZip autoconf automake bison boost cairo clucene_core_2
+      CompressZlib cppunit cups curl db4 dbus_glib expat file flex fontconfig
+      freetype GConf getopt gnome_vfs gperf gst_plugins_base gstreamer gtk
+      hunspell icu jdk kde4.kdelibs lcms2 libcdr libexttextcat libiodbc libjpeg
+      libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
+      libXaw libXext libXi libXinerama libxml2 libxslt libXtst mdds mesa mythes
+      neon nspr nss openldap openssl ORBit2 pam perl pkgconfigUpstream poppler
+      python sablotron saneBackends tcsh unzip vigra which zip zlib
+    ];
+
   meta = {
     description = "Libre-office, variant of openoffice.org";
     homepage = http://libreoffice.org/;
diff --git a/pkgs/applications/office/scribus/default.nix b/pkgs/applications/office/scribus/default.nix
index 3c72db17e1f1..a4f5821c54c0 100644
--- a/pkgs/applications/office/scribus/default.nix
+++ b/pkgs/applications/office/scribus/default.nix
@@ -1,21 +1,24 @@
 { stdenv, fetchurl, pkgconfig, freetype, lcms, libtiff, libxml2
-, libart_lgpl, qt, python, cups, fontconfig, libjpeg
-, zlib, libpng, xorg, cairo, podofo, aspell, boost, cmake }:
-stdenv.mkDerivation {
-  name = "scribus-1.4.0rc6";
+, libart_lgpl, qt4, python, cups, fontconfig, libjpeg
+, zlib, libpng, xorg, cairo, podofo, aspell, boostHeaders, cmake }:
+
+stdenv.mkDerivation rec {
+  name = "scribus-1.4.1";
 
   src = fetchurl {
-    url = mirror://sourceforge/scribus/scribus/scribus-1.4.0.rc6.tar.bz2;
-    sha256 = "1rrnzxjzhqj4lgyfswly501xlyvm4hsnnq7zw008v0cnkx31icli";
+    url = "mirror://sourceforge/scribus/scribus/${name}.tar.xz";
+    sha256 = "1n67z2bk5ca2sxvv43jvj7yygfr4d2x5yc69zk70v38prm0gqlv8";
   };
 
   enableParallelBuilding = true;
 
-  buildInputs =
-    [ pkgconfig cmake freetype lcms libtiff libxml2 libart_lgpl qt
+  buildInputs = with xorg;
+    [ pkgconfig cmake freetype lcms libtiff libxml2 libart_lgpl qt4
       python cups fontconfig
-      xorg.libXaw xorg.libXext xorg.libX11 xorg.libXtst xorg.libXi xorg.libXinerama
       libjpeg zlib libpng podofo aspell cairo
+      boostHeaders # for internal 2geom library
+      libXaw libXext libX11 libXtst libXi libXinerama
+      libpthreadstubs libXau libXdmcp
     ];
 
   meta = {
diff --git a/pkgs/applications/office/skrooge/default.nix b/pkgs/applications/office/skrooge/default.nix
index 9b27a3e23797..44ffdf57db58 100644
--- a/pkgs/applications/office/skrooge/default.nix
+++ b/pkgs/applications/office/skrooge/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, kdelibs, grantlee, qca2, libofx, gettext }:
 
 stdenv.mkDerivation rec {
-  name = "skrooge-1.3.0";
+  name = "skrooge-1.3.2";
 
   src = fetchurl {
     url = "http://skrooge.org/files/${name}.tar.bz2";
-    sha256 = "1sfzzn9xz01c0095w4scckiiwv2gfbaxx05h7ds5n02a113w53kz";
+    sha256 = "18j36yamxzfwpnnnjiach22q9088c2nlcilzh2p24gjhgnnd0v6r";
   };
 
   buildInputs = [ kdelibs grantlee qca2 libofx ];
diff --git a/pkgs/applications/science/astronomy/stellarium/default.nix b/pkgs/applications/science/astronomy/stellarium/default.nix
index dcf6ccd7d9b7..b651370db216 100644
--- a/pkgs/applications/science/astronomy/stellarium/default.nix
+++ b/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -1,14 +1,14 @@
 {stdenv, fetchurl, cmake, freetype, libpng, mesa, gettext, openssl, qt4, perl, libiconv}:
 
 let
-  name = "stellarium-0.11.2";
+  name = "stellarium-0.11.3";
 in
 stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
     url = "mirror://sourceforge/stellarium/${name}.tar.gz";
-    sha256 = "1qk26s0gal2pqr8zy95270fiszxsc6znzzrj5jap91zzibn17945";
+    sha256 = "f7c7eeaefcdc54c0fb8766f09e0c838acb742719adcdf12a6c1e12d55ecd6ac3";
   };
 
   buildInputs = [ cmake freetype libpng mesa gettext openssl qt4 perl libiconv ];
diff --git a/pkgs/applications/science/electronics/gtkwave/default.nix b/pkgs/applications/science/electronics/gtkwave/default.nix
index 697d0e925cde..bb4b969f0621 100644
--- a/pkgs/applications/science/electronics/gtkwave/default.nix
+++ b/pkgs/applications/science/electronics/gtkwave/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, gtk, gperf, pkgconfig, bzip2, tcl, tk, judy, xz}:
 stdenv.mkDerivation rec {
-  name = "gtkwave-3.3.28";
+  name = "gtkwave-3.3.39";
 
   src = fetchurl {
     url = "mirror://sourceforge/gtkwave/${name}.tar.gz";
-    sha256 = "0y3dmx39xwc3m23fwjkxvp9gqxpckk8s5814nhs8fnxa384z5cz0";
+    sha256 = "1va506anlbpbha7l6h94s44xjdy6ch22iv629swn4bh5m3qi33bg";
   };
 
   buildInputs = [ gtk gperf pkgconfig bzip2 tcl tk judy xz ];
diff --git a/pkgs/applications/science/logic/coq/8.3.nix b/pkgs/applications/science/logic/coq/8.3.nix
new file mode 100644
index 000000000000..f23622de8a03
--- /dev/null
+++ b/pkgs/applications/science/logic/coq/8.3.nix
@@ -0,0 +1,69 @@
+# - coqide compilation can be disabled by setting lablgtk to null;
+
+{stdenv, fetchurl, ocaml, findlib, camlp5, ncurses, lablgtk ? null}:
+
+let 
+  version = "8.3pl4";
+  buildIde = lablgtk != null;
+  ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
+  idePatch = if buildIde then ''
+    substituteInPlace scripts/coqmktop.ml --replace \
+    "\"-I\"; \"+lablgtk2\"" \
+    "\"-I\"; \"$(echo "${lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)\"; \"-I\"; \"$(echo "${lablgtk}"/lib/ocaml/*/site-lib/stublibs)\""
+  '' else "";
+in
+
+stdenv.mkDerivation {
+  name = "coq-${version}";
+
+  src = fetchurl {
+    url = "http://coq.inria.fr/V${version}/files/coq-${version}.tar.gz";
+    sha256 = "17d3lmchmqir1rawnr52g78srg4wkd7clzpzfsivxc4y1zp6rwkr";
+  };
+
+  buildInputs = [ ocaml findlib camlp5 ncurses lablgtk ];
+
+  prefixKey = "-prefix ";
+
+  preConfigure = ''
+    configureFlagsArray=(
+      -opt
+      -camldir ${ocaml}/bin
+      -camlp5dir $(ocamlfind query camlp5)
+      ${ideFlags}
+    )
+  '';
+
+  buildFlags = "world"; # Debug with "world VERBOSE=1";
+
+  patches = [ ./configure.8.3.patch ];
+
+  postPatch = ''
+    UNAME=$(type -tp uname)
+    RM=$(type -tp rm)
+    substituteInPlace configure --replace "/bin/uname" "$UNAME"
+    substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM"
+    ${idePatch}
+  '';
+
+  # This post install step is needed to build ssrcoqide from the ssreflect package
+  # It could be made optional, but I see little harm in including it in the default
+  # distribution -- roconnor
+  # This will likely no longer be necessary for coq >= 8.4. -- roconnor
+  postInstall = if buildIde then ''
+   cp ide/*.cmi ide/ide.*a $out/lib/coq/ide/
+  '' else "";
+
+  meta = {
+    description = "Coq proof assistant";
+    longDescription = ''
+      Coq is a formal proof management system.  It provides a formal language
+      to write mathematical definitions, executable algorithms and theorems
+      together with an environment for semi-interactive development of
+      machine-checked proofs.
+    '';
+    homepage = "http://coq.inria.fr";
+    license = "LGPL";
+    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/applications/science/logic/coq/configure.8.3.patch b/pkgs/applications/science/logic/coq/configure.8.3.patch
new file mode 100644
index 000000000000..431cccac4b0b
--- /dev/null
+++ b/pkgs/applications/science/logic/coq/configure.8.3.patch
@@ -0,0 +1,1112 @@
+diff -Nuar coq-8.3pl3-orig/configure coq-8.3pl3/configure
+--- coq-8.3pl3-orig/configure	2011-12-19 22:57:30.000000000 +0100
++++ coq-8.3pl3/configure	2012-03-17 16:38:16.000000000 +0100
+@@ -395,7 +395,6 @@
+ 	 ocamlyaccexec=$CAMLBIN/ocamlyacc
+ 	 ocamlmktopexec=$CAMLBIN/ocamlmktop
+ 	 ocamlmklibexec=$CAMLBIN/ocamlmklib
+-	 camlp4oexec=$CAMLBIN/camlp4o
+ esac
+ 
+ if test ! -f "$CAMLC" ; then
+@@ -628,7 +627,7 @@
+             no)  LABLGTKLIB=+lablgtk2                   # Pour le message
+                  LABLGTKINCLUDES="-I $LABLGTKLIB";;     # Pour le makefile
+             yes) LABLGTKLIB="$lablgtkdir"               # Pour le message
+-                 LABLGTKINCLUDES="-I \"$LABLGTKLIB\"";; # Pour le makefile
++                 LABLGTKINCLUDES="-I $LABLGTKLIB";;     # Pour le makefile
+         esac;;
+     no) LABLGTKINCLUDES="";;
+ esac
+diff -Nuar coq-8.3pl3-orig/configure~ coq-8.3pl3/configure~
+--- coq-8.3pl3-orig/configure~	1970-01-01 01:00:00.000000000 +0100
++++ coq-8.3pl3/configure~	2011-12-19 22:57:30.000000000 +0100
+@@ -0,0 +1,1088 @@
++#!/bin/sh
++
++##################################
++#
++#  Configuration script for Coq
++# 
++##################################
++
++VERSION=8.3pl3
++VOMAGIC=08300
++STATEMAGIC=58300
++DATE=`LANG=C date +"%B %Y"`
++
++# Create the bin/ directory if non-existent
++test -d bin || mkdir bin
++
++# a local which command for sh
++which () {
++IFS=":" # set words separator in PATH to be ':' (it allows spaces in dirnames)
++for i in $PATH; do
++  if test -z "$i"; then i=.; fi 
++  if [ -f "$i/$1" ] ; then
++	IFS=" "
++        echo "$i/$1"
++	break
++  fi
++done
++}
++
++usage () {
++    printf "Available options for configure are:\n"
++    echo "-help"
++    printf "\tDisplays this help page\n"
++    echo "-prefix <dir>"
++    printf "\tSet installation directory to <dir>\n"
++    echo "-local"
++    printf "\tSet installation directory to the current source tree\n"
++    echo "-coqrunbyteflags"
++    printf "\tSet link flags for VM-dependent bytecode (coqtop)\n"
++    echo "-coqtoolsbyteflags"
++    printf "\tSet link flags for VM-independant bytecode (coqdep, coqdoc, ...)\n"
++    echo "-custom"
++    printf "\tGenerate all bytecode executables with -custom (not recommended)\n"
++    echo "-src"
++    printf "\tSpecifies the source directory\n"
++    echo "-bindir"
++    echo "-libdir"
++    echo "-mandir"
++    echo "-docdir"
++    printf "\tSpecifies where to install bin/lib/man/doc files resp.\n"
++    echo "-emacslib"
++    echo "-emacs"
++    printf "\tSpecifies where emacs files are to be installed\n"
++    echo "-coqdocdir"
++    printf "\tSpecifies where Coqdoc style files are to be installed\n"
++    echo "-camldir"
++    printf "\tSpecifies the path to the OCaml library\n"
++    echo "-lablgtkdir"
++    printf "\tSpecifies the path to the Lablgtk library\n"
++    echo "-camlp5dir"
++    printf "\tSpecifies where to look for the Camlp5 library and tells to use it\n"
++    echo "-arch"
++    printf "\tSpecifies the architecture\n"
++    echo "-opt"
++    printf "\tSpecifies whether or not to use OCaml *.opt optimized compilers\n"
++    echo "-natdynlink (yes|no)"
++    printf "\tSpecifies whether or not to use dynamic loading of native code\n"
++    echo "-coqide (opt|byte|no)"
++    printf "\tSpecifies whether or not to compile Coqide\n"
++    echo "-browser <command>"
++    printf "\tUse <command> to open URL %%s\n"
++    echo "-with-doc (yes|no)"
++    printf "\tSpecifies whether or not to compile the documentation\n"
++    echo "-with-geoproof (yes|no)"
++    printf "\tSpecifies whether or not to use Geoproof binding\n"
++    echo "-with-cc <file>"
++    echo "-with-ar <file>"
++    echo "-with-ranlib <file>"
++    printf "\tTells configure where to find gcc/ar/ranlib executables\n"
++    echo "-byte-only"
++    printf "\tCompiles only bytecode version of Coq\n"
++    echo "-debug"
++    printf "\tAdd debugging information in the Coq executables\n"
++    echo "-profile"
++    printf "\tAdd profiling information in the Coq executables\n"
++    echo "-annotate"
++    printf "\tCompiles Coq with -dtypes option\n"
++}
++
++
++# Default OCaml binaries
++bytecamlc=ocamlc
++nativecamlc=ocamlopt
++ocamlmklibexec=ocamlmklib
++ocamlexec=ocaml
++ocamldepexec=ocamldep
++ocamldocexec=ocamldoc
++ocamllexexec=ocamllex
++ocamlyaccexec=ocamlyacc
++ocamlmktopexec=ocamlmktop
++camlp4oexec=camlp4o
++
++
++coq_debug_flag=
++coq_debug_flag_opt=
++coq_profile_flag=
++coq_annotate_flag=
++best_compiler=opt
++cflags="-fno-defer-pop -Wall -Wno-unused"
++natdynlink=yes
++
++gcc_exec=gcc
++ar_exec=ar
++ranlib_exec=ranlib
++
++local=false
++coqrunbyteflags_spec=no
++coqtoolsbyteflags_spec=no
++custom_spec=no
++src_spec=no
++prefix_spec=no
++bindir_spec=no
++libdir_spec=no
++mandir_spec=no
++docdir_spec=no
++emacslib_spec=no
++emacs_spec=no
++camldir_spec=no
++lablgtkdir_spec=no
++coqdocdir_spec=no
++arch_spec=no
++coqide_spec=no
++browser_spec=no
++wwwcoq_spec=no
++with_geoproof=false
++with_doc=all
++with_doc_spec=no
++force_caml_version=no
++force_caml_version_spec=no
++
++COQSRC=`pwd`
++
++# Parse command-line arguments
++
++while : ; do
++  case "$1" in
++    "") break;;
++    -help|--help) usage
++	          exit;;
++    -prefix|--prefix) prefix_spec=yes
++                      prefix="$2"
++		      shift;;
++    -local|--local) local=true;;
++    -coqrunbyteflags|--coqrunbyteflags) coqrunbyteflags_spec=yes
++                                        coqrunbyteflags="$2"
++                                        shift;;
++    -coqtoolsbyteflags|--coqtoolsbyteflags) coqtoolsbyteflags_spec=yes
++                                            coqtoolsbyteflags="$2"
++                                            shift;;
++    -custom|--custom) custom_spec=yes
++                      shift;;
++    -src|--src) src_spec=yes
++                COQSRC="$2"
++	        shift;;
++    -bindir|--bindir) bindir_spec=yes
++                      bindir="$2"
++		      shift;;
++    -libdir|--libdir) libdir_spec=yes
++                      libdir="$2"
++		      shift;;
++    -mandir|--mandir) mandir_spec=yes
++                      mandir="$2"
++		      shift;;
++    -docdir|--docdir) docdir_spec=yes
++                      docdir="$2"
++		      shift;;
++    -emacslib|--emacslib) emacslib_spec=yes
++                          emacslib="$2"
++			  shift;;
++    -emacs |--emacs) emacs_spec=yes
++		     emacs="$2"
++		     shift;;
++    -coqdocdir|--coqdocdir) coqdocdir_spec=yes
++	              coqdocdir="$2"
++		      shift;;
++    -camldir|--camldir) camldir_spec=yes
++	                camldir="$2"
++			shift;;
++    -lablgtkdir|--lablgtkdir) lablgtkdir_spec=yes
++	                lablgtkdir="$2"
++			shift;;
++    -camlp5dir|--camlp5dir)
++	                camlp5dir="$2"
++			shift;;
++    -arch|--arch) arch_spec=yes
++                  arch=$2
++		  shift;;
++    -opt|--opt) bytecamlc=ocamlc.opt
++                camlp4oexec=camlp4o  # can't add .opt since dyn load'll be required
++                nativecamlc=ocamlopt.opt;;
++    -natdynlink|--natdynlink) case "$2" in
++	                  yes) natdynlink=yes;;
++                          *) natdynlink=no
++                        esac
++                        shift;;
++    -coqide|--coqide) coqide_spec=yes
++		      case "$2" in
++			  byte|opt) COQIDE=$2;;
++			  *) COQIDE=no
++		      esac
++		      shift;;
++    -browser|--browser) browser_spec=yes
++		      BROWSER=$2
++		      shift;;
++    -coqwebsite|--coqwebsite) wwwcoq_spec=yes
++                      WWWCOQ=$2
++                      shift;;
++    -with-doc|--with-doc) with_doc_spec=yes
++		      case "$2" in
++			  yes|all) with_doc=all;;
++			  *) with_doc=no
++		      esac
++		      shift;;
++    -with-geoproof|--with-geoproof) 
++	  case "$2" in
++	      yes) with_geoproof=true;;
++	      no) with_geoproof=false;;
++	  esac
++	  shift;;
++    -with-cc|-with-gcc|--with-cc|--with-gcc) 
++	  gcc_spec=yes
++	  gcc_exec=$2
++	  shift;;
++    -with-ar|--with-ar) 
++	  ar_spec=yes
++	  ar_exec=$2
++	  shift;;
++    -with-ranlib|--with-ranlib) 
++	  ranlib_spec=yes
++	  ranlib_exec=$2
++	  shift;;
++    -byte-only|-byteonly|--byteonly|--byte-only) best_compiler=byte;;
++    -debug|--debug) coq_debug_flag=-g;;
++    -profile|--profile) coq_profile_flag=-p;;
++    -annotate|--annotate) coq_annotate_flag=-dtypes;;
++    -force-caml-version|--force-caml-version|-force-ocaml-version|--force-ocaml-version) 
++          force_caml_version_spec=yes
++	  force_caml_version=yes;;
++    *) echo "Unknown option \"$1\"." 1>&2; usage; exit 2;;
++  esac
++  shift
++done
++
++if [ $prefix_spec = yes -a $local = true ] ; then
++  echo "Options -prefix and -local are incompatible."
++  echo "Configure script failed!"
++  exit 1
++fi
++
++# compile date
++DATEPGM=`which date`
++case $DATEPGM in
++    "") echo "I can't find the program \"date\" in your path."
++        echo "Please give me the current date"
++	read COMPILEDATE;;
++    *)  COMPILEDATE=`date +"%h %d %Y %H:%M:%S"`;;
++esac
++
++# Architecture
++
++case $arch_spec in
++    no) 
++    # First we test if we are running a Cygwin system
++    if [ `uname -s | cut -c -6` = "CYGWIN" ] ; then
++	ARCH="win32"
++    else
++	# If not, we determine the architecture
++	if test -x /bin/arch ; then
++ 	    ARCH=`/bin/arch`
++ 	elif test -x /usr/bin/arch ; then
++ 	    ARCH=`/usr/bin/arch`
++ 	elif test -x /usr/ucb/arch ; then
++ 	    ARCH=`/usr/ucb/arch`
++ 	elif test -x /bin/uname ; then
++ 	    ARCH=`/bin/uname -s`
++ 	elif test -x /usr/bin/uname ; then
++ 	    ARCH=`/usr/bin/uname -s`
++	else
++	    echo "I can not automatically find the name of your architecture."
++	    printf "%s"\
++		"Give me a name, please [win32 for Win95, Win98 or WinNT]: "
++	    read ARCH
++	fi
++    fi;;
++    yes) ARCH=$arch
++esac
++
++# executable extension
++
++case $ARCH in
++    win32) 
++      EXE=".exe"
++      DLLEXT=".dll";;
++    *) EXE=""
++       DLLEXT=".so"
++esac
++
++# Is the source tree checked out from a recognised
++# version control system ?
++if test -e .svn/entries ; then 
++    checkedout=svn
++elif [ -d '{arch}' ]; then
++    checkedout=gnuarch
++elif [ -z "${GIT_DIR}" ] && [ -d .git ] || [ -d "${GIT_DIR}" ]; then
++    checkedout=git
++else
++    checkedout=0
++fi
++
++# make command
++
++MAKE=`which make`
++if [ "$MAKE" != "" ]; then
++  MAKEVERSION=`$MAKE -v | head -1 | cut -d" " -f3`
++  MAKEVERSIONMAJOR=`echo $MAKEVERSION | cut -d. -f1`
++  MAKEVERSIONMINOR=`echo $MAKEVERSION | cut -d. -f2`
++  if [ "$MAKEVERSIONMAJOR" -eq 3 -a "$MAKEVERSIONMINOR" -ge 81 ]; then
++      echo "You have GNU Make $MAKEVERSION. Good!"
++  else
++      OK="no"
++      if [ -x ./make ]; then
++	  MAKEVERSION=`./make -v | head -1`
++	  if [ "$MAKEVERSION" = "GNU Make 3.81" ]; then OK="yes"; fi
++      fi
++      if [ $OK = "no" ]; then
++	  echo "GNU Make >= 3.81 is needed."
++	  echo "Make 3.81 can be downloaded from ftp://ftp.gnu.org/gnu/make/make-3.81.tar.gz"
++	  echo "then locally installed on a Unix-style system by issuing:"
++	  echo "  tar xzvf make-3.81.tar.gz"
++	  echo "  cd make-3.81"
++          echo "  ./configure"
++          echo "  make"
++          echo "  mv make .."
++	  echo "  cd .."
++	  echo "Restart then the configure script and later use ./make instead of make."
++	  exit 1
++      else
++	  echo "You have locally installed GNU Make 3.81. Good!"
++      fi
++  fi
++else
++  echo "Cannot find GNU Make >= 3.81."
++fi
++
++# Browser command
++
++if [ "$browser_spec" = "no" ]; then
++    case $ARCH in
++        win32) BROWSER='C:\PROGRA~1\INTERN~1\IEXPLORE %s' ;;
++        *) BROWSER='firefox -remote "OpenURL(%s,new-tab)" || firefox %s &' ;;
++    esac
++fi
++
++if [ "$wwwcoq_spec" = "no" ]; then
++    WWWCOQ="http://coq.inria.fr/"
++fi
++
++#########################################
++# Objective Caml programs
++
++case $camldir_spec in
++    no) CAMLC=`which $bytecamlc`
++	case "$CAMLC" in
++	    "") echo "$bytecamlc is not present in your path!"
++		echo "Give me manually the path to the $bytecamlc executable [/usr/local/bin by default]: "
++		read CAMLC
++		
++		case "$CAMLC" in
++		    "") CAMLC=/usr/local/bin/$bytecamlc;;
++		    */ocamlc|*/ocamlc.opt) true;;
++		    */) CAMLC="${CAMLC}"$bytecamlc;;
++		    *) CAMLC="${CAMLC}"/$bytecamlc;;
++		esac
++	esac
++	CAMLBIN=`dirname "$CAMLC"`;;
++    yes) CAMLC=$camldir/$bytecamlc
++        
++         CAMLBIN=`dirname "$CAMLC"`
++	 bytecamlc="$CAMLC"
++	 nativecamlc=$CAMLBIN/$nativecamlc
++	 ocamlexec=$CAMLBIN/ocaml
++	 ocamldepexec=$CAMLBIN/ocamldep
++	 ocamldocexec=$CAMLBIN/ocamldoc
++	 ocamllexexec=$CAMLBIN/ocamllex
++	 ocamlyaccexec=$CAMLBIN/ocamlyacc
++	 ocamlmktopexec=$CAMLBIN/ocamlmktop
++	 ocamlmklibexec=$CAMLBIN/ocamlmklib
++	 camlp4oexec=$CAMLBIN/camlp4o
++esac
++
++if test ! -f "$CAMLC" ; then
++    echo "I can not find the executable '$CAMLC'. Have you installed it?"
++    echo "Configuration script failed!"
++    exit 1
++fi
++
++# Under Windows, OCaml only understands Windows filenames (C:\...)
++case $ARCH in
++    win32) CAMLBIN=`cygpath -m ${CAMLBIN}`;;
++esac
++
++CAMLVERSION=`"$bytecamlc" -version`
++
++case $CAMLVERSION in
++    1.*|2.*|3.00|3.01|3.02|3.03|3.03alpha|3.04|3.05beta|3.05|3.06|3.07*|3.08*|3.09*)
++	echo "Your version of Objective-Caml is $CAMLVERSION."
++	if [ "$force_caml_version" = "yes" ]; then
++	    echo "*Warning* You are compiling Coq with an outdated version of Objective-Caml."
++	else
++	    echo "          You need Objective-Caml 3.10.2 or later."
++	    echo "          Configuration script failed!"
++	    exit 1
++	fi;;
++    ?*)
++	CAMLP4COMPAT="-loc loc" 
++	echo "You have Objective-Caml $CAMLVERSION. Good!";;
++    *)
++	echo "I found the Objective-Caml compiler but cannot find its version number!"
++	echo "Is it installed properly?"
++	echo "Configuration script failed!"
++	exit 1;;
++esac
++
++CAMLTAG=OCAML`echo $CAMLVERSION | sed -e "s/\([1-9]\)\.\([0-9]*\).*/\1\2/g"`
++
++# For coqmktop & bytecode compiler
++
++case $ARCH in
++    win32) # Awfull trick to get around a ^M problem at the end of CAMLLIB
++      CAMLLIB=`"$CAMLC" -where | sed -e 's/^\(.*\)$/\1/'` ;;
++    *)
++      CAMLLIB=`"$CAMLC" -where`
++esac
++
++if [ "$coq_debug_flag" = "-g" ]; then
++    case $CAMLTAG in
++        OCAML31*)
++            # Compilation debug flag
++            coq_debug_flag_opt="-g"
++            ;;
++    esac
++fi
++
++# Native dynlink
++if [ "$natdynlink" = "yes" -a -f `"$CAMLC" -where`/dynlink.cmxa ]; then
++    HASNATDYNLINK=true
++else
++    HASNATDYNLINK=false
++fi
++
++case $HASNATDYNLINK,`uname -s`,`uname -r`,$CAMLVERSION in
++    true,Darwin,9.*,3.11.*)  # ocaml 3.11.0 dynlink on MacOS 10.5 is buggy
++        NATDYNLINKFLAG=os5fixme;;
++    #Possibly a problem on 10.6.0/10.6.1/10.6.2
++    #May just be a 32 vs 64 problem for all 10.6.*
++    true,Darwin,10.0.*,3.11.*) # Possibly a problem on 10.6.0
++        NATDYNLINKFLAG=os5fixme;;
++    true,Darwin,10.1.*,3.11.*) # Possibly a problem on 10.6.1
++        NATDYNLINKFLAG=os5fixme;;
++    true,Darwin,10.2.*,3.11.*) # Possibly a problem on 10.6.2
++        NATDYNLINKFLAG=os5fixme;;
++    true,Darwin,10.*,3.11.*)
++        if [ `getconf LONG_BIT` = "32" ]; then
++	    # Still a problem for x86_32
++            NATDYNLINKFLAG=os5fixme
++        else
++	    # Not a problem for x86_64
++            NATDYNLINKFLAG=$HASNATDYNLINK
++        fi;;
++    *)
++        NATDYNLINKFLAG=$HASNATDYNLINK;;
++esac
++
++# Camlp4 / Camlp5 configuration
++
++if [ "$camlp5dir" != "" ]; then
++    CAMLP4=camlp5
++    CAMLP4LIB=$camlp5dir
++    if [ ! -f $camlp5dir/camlp5.cma ]; then
++	echo "Cannot find camlp5 libraries in $camlp5dir (camlp5.cma not found)."
++	echo "Configuration script failed!"
++	exit 1
++    fi
++    camlp4oexec=`echo $camlp4oexec | sed -e 's/4/5/'`
++else
++    case $CAMLTAG in
++        OCAML31*)
++            if [ -x "${CAMLLIB}/camlp5" ]; then
++                CAMLP4LIB=+camlp5
++            elif [ -x "${CAMLLIB}/site-lib/camlp5" ]; then
++                CAMLP4LIB=+site-lib/camlp5
++            else
++	        echo "Objective Caml $CAMLVERSION found but no Camlp5 installed."
++	        echo "Configuration script failed!"
++	        exit 1
++            fi
++            CAMLP4=camlp5
++            camlp4oexec=`echo $camlp4oexec | sed -e 's/4/5/'`
++            ;;
++        *)
++            CAMLP4=camlp4
++            CAMLP4LIB=+camlp4
++            ;;
++    esac
++fi
++
++if [ "$CAMLP4" = "camlp5" ] && `$camlp4oexec -v 2>&1 | grep -q 5.00`; then
++    echo "Camlp5 version 5.00 not supported: versions 4.0x or >= 5.01 are OK"
++    echo "(depending also on your ocaml version)."
++    echo "Configuration script failed!"
++    exit 1
++fi
++
++
++case $CAMLP4LIB in
++    +*) FULLCAMLP4LIB=$CAMLLIB/`echo $CAMLP4LIB | cut -b 2-`;;
++    *)  FULLCAMLP4LIB=$CAMLP4LIB;;
++esac
++
++# Assume that camlp(4|5) binaries are at the same place as ocaml ones
++# (this should become configurable some day) 
++CAMLP4BIN=${CAMLBIN}
++
++# do we have a native compiler: test of ocamlopt and its version
++
++if [ "$best_compiler" = "opt" ] ; then
++  if test -e "$nativecamlc" || test -e "`which $nativecamlc`"; then
++      CAMLOPTVERSION=`"$nativecamlc" -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
++      if [ "`uname -s`" = "Darwin" -a "$ARCH" = "i386" ]; then
++	  case $CAMLOPTVERSION in
++	      3.09.3|3.1?*) ;;
++	      *) echo "Native compilation on MacOS X Pentium requires Objective-Caml >= 3.09.3,"
++		 best_compiler=byte
++		 echo "only the bytecode version of Coq will be available."
++	  esac
++      elif [ ! -f $FULLCAMLP4LIB/gramlib.cmxa ]; then
++	  best_compiler=byte
++	  echo "Cannot find native-code $CAMLP4,"
++	  echo "only the bytecode version of Coq will be available."
++      else
++        if [ "$CAMLOPTVERSION" != "$CAMLVERSION" ] ; then
++	  echo "Native and bytecode compilers do not have the same version!"
++        fi
++        echo "You have native-code compilation. Good!"
++      fi
++  else
++      best_compiler=byte
++      echo "You have only bytecode compilation."
++  fi
++fi
++
++# OS dependent libraries
++
++case $ARCH in
++  sun4*) OS=`uname -r`
++	case $OS in
++	   5*) OS="Sun Solaris $OS"
++	       OSDEPLIBS="-cclib -lunix -cclib -lnsl -cclib -lsocket";;
++	   *) OS="Sun OS $OS"
++	      OSDEPLIBS="-cclib -lunix"
++        esac;;
++  alpha) OSDEPLIBS="-cclib -lunix";;
++  win32) OS="Win32" 
++	 OSDEPLIBS="-cclib -lunix"
++	 cflags="-mno-cygwin $cflags";;
++  *) OSDEPLIBS="-cclib -lunix"
++esac
++
++# lablgtk2 and CoqIDE
++
++# -byte-only should imply -coqide byte, unless the user decides otherwise
++
++if [ "$best_compiler" = "byte" -a "$coqide_spec" = "no" ]; then 
++    coqide_spec=yes
++    COQIDE=byte
++fi
++
++# Which coqide is asked ? which one is possible ?
++
++if [ "$coqide_spec" = "yes" -a "$COQIDE" = "no" ]; then 
++    echo "CoqIde disabled as requested."
++else
++    case $lablgtkdir_spec in
++	no) 
++	    if [ -f "${CAMLLIB}/lablgtk2/glib.mli" ]; then
++		lablgtkdir=${CAMLLIB}/lablgtk2
++	    elif [ -f "${CAMLLIB}/site-lib/lablgtk2/glib.mli" ]; then
++		lablgtkdir=${CAMLLIB}/site-lib/lablgtk2
++	    fi;;
++	yes)
++	    if [ ! -f "$lablgtkdir/glib.mli" ]; then
++		echo "Incorrect LablGtk2 library (glib.mli not found)."
++		echo "Configuration script failed!"
++		exit 1
++	    fi;;
++    esac
++    if [ "$lablgtkdir" = "" ]; then
++	echo "LablGtk2 not found: CoqIde will not be available."
++	COQIDE=no
++    elif [ -z "`grep -w convert_with_fallback "$lablgtkdir/glib.mli"`" ]; then
++	echo "LablGtk2 found but too old: CoqIde will not be available."
++	COQIDE=no;
++    elif [ "$coqide_spec" = "yes" -a "$COQIDE" = "byte" ]; then 
++	echo "LablGtk2 found, bytecode CoqIde will be used as requested."
++	COQIDE=byte
++    elif [ ! -f "${CAMLLIB}/threads/threads.cmxa" ]; then 
++	echo "LablGtk2 found, no native threads: bytecode CoqIde will be available."
++	COQIDE=byte
++    else 
++	echo "LablGtk2 found, native threads: native CoqIde will be available."
++	COQIDE=opt
++    fi
++fi
++
++case $COQIDE in
++    byte|opt)
++        case $lablgtkdir_spec in
++            no)  LABLGTKLIB=+lablgtk2                   # Pour le message
++                 LABLGTKINCLUDES="-I $LABLGTKLIB";;     # Pour le makefile
++            yes) LABLGTKLIB="$lablgtkdir"               # Pour le message
++                 LABLGTKINCLUDES="-I \"$LABLGTKLIB\"";; # Pour le makefile
++        esac;;
++    no) LABLGTKINCLUDES="";;
++esac
++
++# strip command
++
++case $ARCH in
++    win32)
++	# true -> strip : it exists under cygwin !
++	STRIPCOMMAND="strip";; 
++    *)
++    if [ "$coq_profile_flag" = "-p" ] || [ "$coq_debug_flag" = "-g" ] ||
++       [ "`uname -s`" = "Darwin" -a "$HASNATDYNLINK" = "true" ]
++    then
++	STRIPCOMMAND="true"
++    else
++	STRIPCOMMAND="strip"
++    fi
++esac
++
++# mktexlsr
++#MKTEXLSR=`which mktexlsr`
++#case $MKTEXLSR in
++#    "") MKTEXLSR=true;;
++#esac
++
++# "
++### Test if documentation can be compiled (latex, hevea)
++
++if test "$with_doc" = "all" 
++then
++    for cmd in "latex" "hevea" ; do
++	if test ! -x "`which $cmd`"
++	then 
++	    echo "$cmd was not found; documentation will not be available"
++	    with_doc=no
++	    break
++	fi
++    done
++fi
++
++###########################################
++# bindir, libdir, mandir, docdir, etc.
++
++case $src_spec in
++  no) COQTOP=${COQSRC}
++esac
++
++# OCaml only understand Windows filenames (C:\...)
++case $ARCH in
++    win32) COQTOP=`cygpath -m ${COQTOP}`
++esac
++
++case $ARCH in
++  win32)
++	 bindir_def='C:\coq\bin'
++	 libdir_def='C:\coq\lib'
++	 mandir_def='C:\coq\man'
++	 docdir_def='C:\coq\doc'
++	 emacslib_def='C:\coq\emacs'
++         coqdocdir_def='C:\coq\latex';;
++  *)
++	 bindir_def=/usr/local/bin
++	 libdir_def=/usr/local/lib/coq
++	 mandir_def=/usr/local/man
++	 docdir_def=/usr/local/share/doc/coq
++	 emacslib_def=/usr/local/share/emacs/site-lisp
++         coqdocdir_def=/usr/local/share/texmf/tex/latex/misc;;
++esac
++
++emacs_def=emacs
++
++case $bindir_spec/$prefix_spec/$local in
++    yes/*/*) BINDIR=$bindir ;;
++    */yes/*) BINDIR=$prefix/bin ;;
++    */*/true) BINDIR=$COQTOP/bin ;;
++    *) printf "Where should I install the Coq binaries [$bindir_def]? "
++        read BINDIR
++	case $BINDIR in
++	    "") BINDIR=$bindir_def;;
++	    *) true;;
++	esac;;
++esac
++
++case $libdir_spec/$prefix_spec/$local in
++    yes/*/*) LIBDIR=$libdir;;
++    */yes/*)
++        case $ARCH in
++          win32) LIBDIR=$prefix ;;
++          *)  LIBDIR=$prefix/lib/coq ;;
++        esac ;;
++    */*/true) LIBDIR=$COQTOP ;;
++    *)  printf "Where should I install the Coq library [$libdir_def]? "
++        read LIBDIR
++	case $LIBDIR in
++	    "") LIBDIR=$libdir_def;;
++	    *) true;;
++	esac;;
++esac
++
++case $mandir_spec/$prefix_spec/$local in
++    yes/*/*) MANDIR=$mandir;;
++    */yes/*) MANDIR=$prefix/man ;;
++    */*/true) MANDIR=$COQTOP/man ;;
++    *)  printf "Where should I install the Coq man pages [$mandir_def]? "
++        read MANDIR
++	case $MANDIR in
++	    "") MANDIR=$mandir_def;;
++	    *) true;;
++	esac;;
++esac
++
++case $docdir_spec/$prefix_spec/$local in
++    yes/*/*) DOCDIR=$docdir; HTMLREFMANDIR=$DOCDIR/html/refman;;
++    */yes/*) DOCDIR=$prefix/share/doc/coq; HTMLREFMANDIR=$DOCDIR/html/refman;;
++    */*/true) DOCDIR=$COQTOP/doc; HTMLREFMANDIR=$DOCDIR/refman/html;;
++    *)  printf "Where should I install the Coq documentation [$docdir_def]? "
++        read DOCDIR
++	case $DOCDIR in
++	    "") DOCDIR=$docdir_def; HTMLREFMANDIR=$DOCDIR/html/refman;;
++	    *) true;;
++	esac;;
++esac
++
++case $emacslib_spec/$prefix_spec/$local in
++    yes/*/*) EMACSLIB=$emacslib;;
++    */yes/*)
++        case $ARCH in
++          win32) EMACSLIB=$prefix/emacs ;;
++          *)  EMACSLIB=$prefix/share/emacs/site-lisp ;;
++        esac ;;
++    */*/true) EMACSLIB=$COQTOP/tools/emacs ;;
++    *) printf "Where should I install the Coq Emacs mode [$emacslib_def]? "
++        read EMACSLIB
++	case $EMACSLIB in
++	    "") EMACSLIB=$emacslib_def;;
++	    *) true;;
++	esac;;
++esac
++
++case $coqdocdir_spec/$prefix_spec/$local in
++    yes/*/*) COQDOCDIR=$coqdocdir;;
++    */yes/*)
++        case $ARCH in
++          win32) COQDOCDIR=$prefix/latex ;;
++          *)  COQDOCDIR=$prefix/share/emacs/site-lisp ;;
++        esac ;;
++    */*/true) COQDOCDIR=$COQTOP/tools/coqdoc ;;
++    *) printf "Where should I install Coqdoc TeX/LaTeX files [$coqdocdir_def]? "
++        read COQDOCDIR
++	case $COQDOCDIR in
++	    "") COQDOCDIR=$coqdocdir_def;;
++	    *) true;;
++	esac;;
++esac
++
++# Determine if we enable -custom by default (Windows and MacOS)
++CUSTOM_OS=no
++if [ "$ARCH" = "win32" ] || [ "`uname -s`" = "Darwin" ]; then
++    CUSTOM_OS=yes
++fi
++
++BUILDLDPATH="# you might want to set CAML_LD_LIBRARY_PATH by hand!"
++case $coqrunbyteflags_spec/$local/$custom_spec/$CUSTOM_OS in
++    yes/*/*/*) COQRUNBYTEFLAGS="$coqrunbyteflags";;
++    */*/yes/*|*/*/*/yes) COQRUNBYTEFLAGS="-custom";;
++    */true/*/*) COQRUNBYTEFLAGS="-dllib -lcoqrun -dllpath '$COQTOP'/kernel/byterun";;
++    *)
++        COQRUNBYTEFLAGS="-dllib -lcoqrun -dllpath '$LIBDIR'"
++        BUILDLDPATH="export CAML_LD_LIBRARY_PATH='$COQTOP'/kernel/byterun";;
++esac
++case $coqtoolsbyteflags_spec/$custom_spec/$CUSTOM_OS in
++    yes/*/*) COQTOOLSBYTEFLAGS="$coqtoolsbyteflags";;
++    */yes/*|*/*/yes) COQTOOLSBYTEFLAGS="-custom";;
++    *) COQTOOLSBYTEFLAGS="";;
++esac
++
++# case $emacs_spec in
++#     no) printf "Which Emacs command should I use to compile coq.el [$emacs_def]? "
++#         read EMACS
++	
++# 	case $EMACS in
++# 	    "") EMACS=$emacs_def;;
++# 	    *) true;;
++# 	esac;;
++#     yes) EMACS=$emacs;;
++# esac
++
++
++
++###########################################
++# Summary of the configuration
++
++echo ""
++echo "  Coq top directory                 : $COQTOP"
++echo "  Architecture                      : $ARCH"
++if test ! -z "$OS" ; then
++  echo "  Operating system                  : $OS"
++fi
++echo "  Coq VM bytecode link flags        : $COQRUNBYTEFLAGS"
++echo "  Coq tools bytecode link flags     : $COQTOOLSBYTEFLAGS"
++echo "  OS dependent libraries            : $OSDEPLIBS"
++echo "  Objective-Caml/Camlp4 version     : $CAMLVERSION"
++echo "  Objective-Caml/Camlp4 binaries in : $CAMLBIN"
++echo "  Objective-Caml library in         : $CAMLLIB"
++echo "  Camlp4 library in                 : $CAMLP4LIB"
++if test "$best_compiler" = opt ; then
++echo "  Native dynamic link support       : $HASNATDYNLINK"
++fi
++if test "$COQIDE" != "no"; then
++echo "  Lablgtk2 library in               : $LABLGTKLIB"
++fi
++if test "$with_doc" = "all"; then
++echo "  Documentation                     : All"
++else
++echo "  Documentation                     : None"
++fi
++echo "  CoqIde                            : $COQIDE"
++echo "  Web browser                       : $BROWSER"
++echo "  Coq web site                      : $WWWCOQ"
++echo ""
++
++echo "  Paths for true installation:"
++echo "    binaries      will be copied in $BINDIR"
++echo "    library       will be copied in $LIBDIR"
++echo "    man pages     will be copied in $MANDIR"
++echo "    documentation will be copied in $DOCDIR"
++echo "    emacs mode    will be copied in $EMACSLIB"
++echo ""
++
++##################################################
++# Building the $COQTOP/dev/ocamldebug-coq file
++##################################################
++
++OCAMLDEBUGCOQ=$COQSRC/dev/ocamldebug-coq
++
++if test "$coq_debug_flag" = "-g" ; then
++  rm -f $OCAMLDEBUGCOQ
++  sed -e "s|COQTOPDIRECTORY|$COQTOP|" \
++      -e "s|COQLIBDIRECTORY|$LIBDIR|" \
++      -e "s|CAMLBINDIRECTORY|$CAMLBIN|" \
++      -e "s|CAMLP4LIBDIRECTORY|$FULLCAMLP4LIB|"\
++      $OCAMLDEBUGCOQ.template > $OCAMLDEBUGCOQ
++  chmod a-w,a+x $OCAMLDEBUGCOQ
++fi
++
++####################################################
++# Fixing lablgtk types (before/after 2.6.0) 
++####################################################
++
++if [ ! "$COQIDE" = "no" ]; then 
++    if grep "class view " "$lablgtkdir/gText.mli" | grep -q "\[>" ; then
++       if grep -q "?accepts_tab:bool" "$lablgtkdir/gText.mli" ; then
++        cp -f ide/undo_lablgtk_ge212.mli ide/undo.mli
++       else
++	cp -f ide/undo_lablgtk_ge26.mli ide/undo.mli
++       fi
++    else
++	cp -f ide/undo_lablgtk_lt26.mli ide/undo.mli
++    fi
++fi  
++
++##############################################
++# Creation of configuration files
++##############################################
++
++mlconfig_file="$COQSRC/config/coq_config.ml"
++config_file="$COQSRC/config/Makefile"
++config_template="$COQSRC/config/Makefile.template"
++
++
++### Warning !!
++### After this line, be careful when using variables,
++### since some of them (e.g. $COQSRC) will be escaped
++
++
++# An escaped version of a variable
++escape_var () {
++"$ocamlexec" 2>&1 1>/dev/null <<EOF
++  prerr_endline(String.escaped(Sys.getenv"$VAR"));;
++EOF
++}
++
++# Escaped version of browser command
++export BROWSER
++BROWSER=`VAR=BROWSER escape_var`
++
++# damned backslashes under M$Windows
++case $ARCH in
++    win32)
++	COQTOP=`echo $COQTOP |sed -e 's|\\\|\\\\\\\|g'`
++	BINDIR=`echo $BINDIR |sed -e 's|\\\|\\\\\\\|g'`
++	COQSRC=`cygpath -m $COQSRC |sed -e 's|\\\|\\\\\\\|g'`
++	LIBDIR=`echo $LIBDIR |sed -e 's|\\\|\\\\\\\|g'`
++	CAMLBIN=`echo $CAMLBIN |sed -e 's|\\\|\\\\\\\|g'`
++	CAMLLIB=`echo $CAMLLIB |sed -e 's|\\\|\\\\\\\|g'`
++	MANDIR=`echo $MANDIR |sed -e 's|\\\|\\\\\\\|g'`
++	DOCDIR=`echo $DOCDIR |sed -e 's|\\\|\\\\\\\|g'`
++	EMACSLIB=`echo $EMACSLIB |sed -e 's|\\\|\\\\\\\|g'`
++	COQDOCDIR=`echo $COQDOCDIR |sed -e 's|\\\|\\\\\\\|g'`
++	CAMLP4BIN=`echo $CAMLP4BIN |sed -e 's|\\\|\\\\\\\|g'`
++	CAMLP4LIB=`echo $CAMLP4LIB |sed -e 's|\\\|\\\\\\\|g'`
++	LABLGTKINCLUDES=`echo $LABLGTKINCLUDES |sed -e 's|\\\|\\\\\\\|g'`
++	COQRUNBYTEFLAGS=`echo $COQRUNBYTEFLAGS |sed -e 's|\\\|\\\\\\\|g'`
++	COQTOOLSBYTEFLAGS=`echo $COQTOOLSBYTEFLAGS |sed -e 's|\\\|\\\\\\\|g'`
++	BUILDLDPATH=`echo $BUILDLDPATH |sed -e 's|\\\|\\\\\\\|g'`
++	ocamlexec=`echo $ocamlexec |sed -e 's|\\\|\\\\\\\|g'`
++	bytecamlc=`echo $bytecamlc |sed -e 's|\\\|\\\\\\\|g'`
++	nativecamlc=`echo $nativecamlc |sed -e 's|\\\|\\\\\\\|g'`
++	ocamlmklibexec=`echo $ocamlmklibexec |sed -e 's|\\\|\\\\\\\|g'`
++	ocamldepexec=`echo $ocamldepexec |sed -e 's|\\\|\\\\\\\|g'`
++	ocamldocexec=`echo $ocamldocexec |sed -e 's|\\\|\\\\\\\|g'`
++	ocamllexexec=`echo $ocamllexexec |sed -e 's|\\\|\\\\\\\|g'`
++	ocamlyaccexec=`echo $ocamlyaccexec |sed -e 's|\\\|\\\\\\\|g'`
++	camlp4oexec=`echo $camlp4oexec |sed -e 's|\\\|\\\\\\\|g'`
++    ;;
++esac
++
++#####################################################
++# Building the $COQTOP/config/coq_config.ml file
++#####################################################
++
++rm -f "$mlconfig_file"
++cat << END_OF_COQ_CONFIG > $mlconfig_file
++(* DO NOT EDIT THIS FILE: automatically generated by ../configure *)
++
++let local = $local
++let coqrunbyteflags = "$COQRUNBYTEFLAGS"
++let coqlib = "$LIBDIR"
++let coqsrc = "$COQSRC"
++let ocaml = "$ocamlexec"
++let ocamlc = "$bytecamlc"
++let ocamlopt = "$nativecamlc"
++let ocamlmklib = "$ocamlmklibexec"
++let ocamldep = "$ocamldepexec"
++let ocamldoc = "$ocamldocexec"
++let ocamlyacc = "$ocamlyaccexec"
++let ocamllex = "$ocamllexexec"
++let camlbin = "$CAMLBIN"
++let camllib = "$CAMLLIB"
++let camlp4 = "$CAMLP4"
++let camlp4o = "$camlp4oexec"
++let camlp4bin = "$CAMLP4BIN"
++let camlp4lib = "$CAMLP4LIB"
++let camlp4compat = "$CAMLP4COMPAT"
++let coqideincl = "$LABLGTKINCLUDES"
++let cflags = "$cflags"
++let best = "$best_compiler"
++let arch = "$ARCH"
++let has_coqide = "$COQIDE"
++let has_natdynlink = $HASNATDYNLINK
++let natdynlinkflag = "$NATDYNLINKFLAG"
++let osdeplibs = "$OSDEPLIBS"
++let version = "$VERSION"
++let caml_version = "$CAMLVERSION"
++let date = "$DATE"
++let compile_date = "$COMPILEDATE"
++let vo_magic_number = $VOMAGIC
++let state_magic_number = $STATEMAGIC
++let exec_extension = "$EXE"
++let with_geoproof = ref $with_geoproof
++let browser = "$BROWSER"
++let wwwcoq = "$WWWCOQ"
++let wwwrefman = wwwcoq ^ "distrib/" ^ version ^ "/refman/"
++let wwwstdlib = wwwcoq ^ "distrib/" ^ version ^ "/stdlib/"
++let localwwwrefman = "file://$HTMLREFMANDIR/"
++
++END_OF_COQ_CONFIG
++
++# to be sure printf is found on windows when spaces occur in PATH variable
++PRINTF=`which printf`
++
++# Subdirectories of theories/ added in coq_config.ml
++subdirs () {
++    (cd $1; find * \( -name .svn -prune \) -o \( -type d -exec $PRINTF "\"%s\";\n" {} \; \) >> "$mlconfig_file")
++}
++
++echo "let theories_dirs = [" >> "$mlconfig_file"
++subdirs theories
++echo "]" >> "$mlconfig_file"
++
++echo "let plugins_dirs = [" >> "$mlconfig_file"
++subdirs plugins
++echo "]" >> "$mlconfig_file"
++
++chmod a-w "$mlconfig_file"
++
++
++###############################################
++# Building the $COQTOP/config/Makefile file
++###############################################
++
++rm -f "$config_file"
++
++sed -e "s|LOCALINSTALLATION|$local|" \
++    -e "s|XCOQRUNBYTEFLAGS|$COQRUNBYTEFLAGS|" \
++    -e "s|XCOQTOOLSBYTEFLAGS|$COQTOOLSBYTEFLAGS|" \
++    -e "s|COQSRCDIRECTORY|$COQSRC|" \
++    -e "s|COQVERSION|$VERSION|" \
++    -e "s|BINDIRDIRECTORY|$BINDIR|" \
++    -e "s|COQLIBDIRECTORY|$LIBDIR|" \
++    -e "s|BUILDLDPATH=|$BUILDLDPATH|" \
++    -e "s|MANDIRDIRECTORY|$MANDIR|" \
++    -e "s|DOCDIRDIRECTORY|$DOCDIR|" \
++    -e "s|EMACSLIBDIRECTORY|$EMACSLIB|" \
++    -e "s|EMACSCOMMAND|$EMACS|" \
++    -e "s|COQDOCDIRECTORY|$COQDOCDIR|" \
++    -e "s|MKTEXLSRCOMMAND|$MKTEXLSR|" \
++    -e "s|ARCHITECTURE|$ARCH|" \
++    -e "s|OSDEPENDENTLIBS|$OSDEPLIBS|" \
++    -e "s|OSDEPENDENTP4OPTFLAGS|$OSDEPP4OPTFLAGS|" \
++    -e "s|CAMLLIBDIRECTORY|$CAMLLIB|" \
++    -e "s|CAMLTAG|$CAMLTAG|" \
++    -e "s|CAMLP4BINDIRECTORY|$CAMLP4BIN|" \
++    -e "s|CAMLP4LIBDIRECTORY|$CAMLP4LIB|" \
++    -e "s|CAMLP4TOOL|$camlp4oexec|" \
++    -e "s|CAMLP4COMPATFLAGS|$CAMLP4COMPAT|" \
++    -e "s|LABLGTKINCLUDES|$LABLGTKINCLUDES|" \
++    -e "s|COQDEBUGFLAGOPT|$coq_debug_flag_opt|" \
++    -e "s|COQDEBUGFLAG|$coq_debug_flag|" \
++    -e "s|COQPROFILEFLAG|$coq_profile_flag|" \
++    -e "s|CAMLANNOTATEFLAG|$coq_annotate_flag|" \
++    -e "s|CCOMPILEFLAGS|$cflags|" \
++    -e "s|BESTCOMPILER|$best_compiler|" \
++    -e "s|DLLEXTENSION|$DLLEXT|" \
++    -e "s|EXECUTEEXTENSION|$EXE|" \
++    -e "s|BYTECAMLC|$bytecamlc|" \
++    -e "s|OCAMLMKLIBEXEC|$ocamlmklibexec|" \
++    -e "s|NATIVECAMLC|$nativecamlc|" \
++    -e "s|OCAMLEXEC|$ocamlexec|" \
++    -e "s|OCAMLDEPEXEC|$ocamldepexec|" \
++    -e "s|OCAMLDOCEXEC|$ocamldocexec|" \
++    -e "s|OCAMLLEXEXEC|$ocamllexexec|" \
++    -e "s|OCAMLYACCEXEC|$ocamlyaccexec|" \
++    -e "s|CAMLMKTOPEXEC|$ocamlmktopexec|" \
++    -e "s|CCEXEC|$gcc_exec|" \
++    -e "s|AREXEC|$ar_exec|" \
++    -e "s|RANLIBEXEC|$ranlib_exec|" \
++    -e "s|STRIPCOMMAND|$STRIPCOMMAND|" \
++    -e "s|COQIDEOPT|$COQIDE|" \
++    -e "s|CHECKEDOUTSOURCETREE|$checkedout|" \
++    -e "s|WITHDOCOPT|$with_doc|" \
++    -e "s|HASNATIVEDYNLINK|$NATDYNLINKFLAG|" \
++      "$config_template" > "$config_file"
++
++chmod a-w "$config_file"
++
++##################################################
++# The end
++####################################################
++
++echo "If anything in the above is wrong, please restart './configure'."
++echo
++echo "*Warning* To compile the system for a new architecture"
++echo "          don't forget to do a 'make archclean' before './configure'."
++
++# $Id: configure 14833 2011-12-19 21:57:30Z notin $
diff --git a/pkgs/applications/science/logic/coq/configure.patch b/pkgs/applications/science/logic/coq/configure.patch
index 431cccac4b0b..aa38ce06e92b 100644
--- a/pkgs/applications/science/logic/coq/configure.patch
+++ b/pkgs/applications/science/logic/coq/configure.patch
@@ -9,1104 +9,3 @@ diff -Nuar coq-8.3pl3-orig/configure coq-8.3pl3/configure
  esac
  
  if test ! -f "$CAMLC" ; then
-@@ -628,7 +627,7 @@
-             no)  LABLGTKLIB=+lablgtk2                   # Pour le message
-                  LABLGTKINCLUDES="-I $LABLGTKLIB";;     # Pour le makefile
-             yes) LABLGTKLIB="$lablgtkdir"               # Pour le message
--                 LABLGTKINCLUDES="-I \"$LABLGTKLIB\"";; # Pour le makefile
-+                 LABLGTKINCLUDES="-I $LABLGTKLIB";;     # Pour le makefile
-         esac;;
-     no) LABLGTKINCLUDES="";;
- esac
-diff -Nuar coq-8.3pl3-orig/configure~ coq-8.3pl3/configure~
---- coq-8.3pl3-orig/configure~	1970-01-01 01:00:00.000000000 +0100
-+++ coq-8.3pl3/configure~	2011-12-19 22:57:30.000000000 +0100
-@@ -0,0 +1,1088 @@
-+#!/bin/sh
-+
-+##################################
-+#
-+#  Configuration script for Coq
-+# 
-+##################################
-+
-+VERSION=8.3pl3
-+VOMAGIC=08300
-+STATEMAGIC=58300
-+DATE=`LANG=C date +"%B %Y"`
-+
-+# Create the bin/ directory if non-existent
-+test -d bin || mkdir bin
-+
-+# a local which command for sh
-+which () {
-+IFS=":" # set words separator in PATH to be ':' (it allows spaces in dirnames)
-+for i in $PATH; do
-+  if test -z "$i"; then i=.; fi 
-+  if [ -f "$i/$1" ] ; then
-+	IFS=" "
-+        echo "$i/$1"
-+	break
-+  fi
-+done
-+}
-+
-+usage () {
-+    printf "Available options for configure are:\n"
-+    echo "-help"
-+    printf "\tDisplays this help page\n"
-+    echo "-prefix <dir>"
-+    printf "\tSet installation directory to <dir>\n"
-+    echo "-local"
-+    printf "\tSet installation directory to the current source tree\n"
-+    echo "-coqrunbyteflags"
-+    printf "\tSet link flags for VM-dependent bytecode (coqtop)\n"
-+    echo "-coqtoolsbyteflags"
-+    printf "\tSet link flags for VM-independant bytecode (coqdep, coqdoc, ...)\n"
-+    echo "-custom"
-+    printf "\tGenerate all bytecode executables with -custom (not recommended)\n"
-+    echo "-src"
-+    printf "\tSpecifies the source directory\n"
-+    echo "-bindir"
-+    echo "-libdir"
-+    echo "-mandir"
-+    echo "-docdir"
-+    printf "\tSpecifies where to install bin/lib/man/doc files resp.\n"
-+    echo "-emacslib"
-+    echo "-emacs"
-+    printf "\tSpecifies where emacs files are to be installed\n"
-+    echo "-coqdocdir"
-+    printf "\tSpecifies where Coqdoc style files are to be installed\n"
-+    echo "-camldir"
-+    printf "\tSpecifies the path to the OCaml library\n"
-+    echo "-lablgtkdir"
-+    printf "\tSpecifies the path to the Lablgtk library\n"
-+    echo "-camlp5dir"
-+    printf "\tSpecifies where to look for the Camlp5 library and tells to use it\n"
-+    echo "-arch"
-+    printf "\tSpecifies the architecture\n"
-+    echo "-opt"
-+    printf "\tSpecifies whether or not to use OCaml *.opt optimized compilers\n"
-+    echo "-natdynlink (yes|no)"
-+    printf "\tSpecifies whether or not to use dynamic loading of native code\n"
-+    echo "-coqide (opt|byte|no)"
-+    printf "\tSpecifies whether or not to compile Coqide\n"
-+    echo "-browser <command>"
-+    printf "\tUse <command> to open URL %%s\n"
-+    echo "-with-doc (yes|no)"
-+    printf "\tSpecifies whether or not to compile the documentation\n"
-+    echo "-with-geoproof (yes|no)"
-+    printf "\tSpecifies whether or not to use Geoproof binding\n"
-+    echo "-with-cc <file>"
-+    echo "-with-ar <file>"
-+    echo "-with-ranlib <file>"
-+    printf "\tTells configure where to find gcc/ar/ranlib executables\n"
-+    echo "-byte-only"
-+    printf "\tCompiles only bytecode version of Coq\n"
-+    echo "-debug"
-+    printf "\tAdd debugging information in the Coq executables\n"
-+    echo "-profile"
-+    printf "\tAdd profiling information in the Coq executables\n"
-+    echo "-annotate"
-+    printf "\tCompiles Coq with -dtypes option\n"
-+}
-+
-+
-+# Default OCaml binaries
-+bytecamlc=ocamlc
-+nativecamlc=ocamlopt
-+ocamlmklibexec=ocamlmklib
-+ocamlexec=ocaml
-+ocamldepexec=ocamldep
-+ocamldocexec=ocamldoc
-+ocamllexexec=ocamllex
-+ocamlyaccexec=ocamlyacc
-+ocamlmktopexec=ocamlmktop
-+camlp4oexec=camlp4o
-+
-+
-+coq_debug_flag=
-+coq_debug_flag_opt=
-+coq_profile_flag=
-+coq_annotate_flag=
-+best_compiler=opt
-+cflags="-fno-defer-pop -Wall -Wno-unused"
-+natdynlink=yes
-+
-+gcc_exec=gcc
-+ar_exec=ar
-+ranlib_exec=ranlib
-+
-+local=false
-+coqrunbyteflags_spec=no
-+coqtoolsbyteflags_spec=no
-+custom_spec=no
-+src_spec=no
-+prefix_spec=no
-+bindir_spec=no
-+libdir_spec=no
-+mandir_spec=no
-+docdir_spec=no
-+emacslib_spec=no
-+emacs_spec=no
-+camldir_spec=no
-+lablgtkdir_spec=no
-+coqdocdir_spec=no
-+arch_spec=no
-+coqide_spec=no
-+browser_spec=no
-+wwwcoq_spec=no
-+with_geoproof=false
-+with_doc=all
-+with_doc_spec=no
-+force_caml_version=no
-+force_caml_version_spec=no
-+
-+COQSRC=`pwd`
-+
-+# Parse command-line arguments
-+
-+while : ; do
-+  case "$1" in
-+    "") break;;
-+    -help|--help) usage
-+	          exit;;
-+    -prefix|--prefix) prefix_spec=yes
-+                      prefix="$2"
-+		      shift;;
-+    -local|--local) local=true;;
-+    -coqrunbyteflags|--coqrunbyteflags) coqrunbyteflags_spec=yes
-+                                        coqrunbyteflags="$2"
-+                                        shift;;
-+    -coqtoolsbyteflags|--coqtoolsbyteflags) coqtoolsbyteflags_spec=yes
-+                                            coqtoolsbyteflags="$2"
-+                                            shift;;
-+    -custom|--custom) custom_spec=yes
-+                      shift;;
-+    -src|--src) src_spec=yes
-+                COQSRC="$2"
-+	        shift;;
-+    -bindir|--bindir) bindir_spec=yes
-+                      bindir="$2"
-+		      shift;;
-+    -libdir|--libdir) libdir_spec=yes
-+                      libdir="$2"
-+		      shift;;
-+    -mandir|--mandir) mandir_spec=yes
-+                      mandir="$2"
-+		      shift;;
-+    -docdir|--docdir) docdir_spec=yes
-+                      docdir="$2"
-+		      shift;;
-+    -emacslib|--emacslib) emacslib_spec=yes
-+                          emacslib="$2"
-+			  shift;;
-+    -emacs |--emacs) emacs_spec=yes
-+		     emacs="$2"
-+		     shift;;
-+    -coqdocdir|--coqdocdir) coqdocdir_spec=yes
-+	              coqdocdir="$2"
-+		      shift;;
-+    -camldir|--camldir) camldir_spec=yes
-+	                camldir="$2"
-+			shift;;
-+    -lablgtkdir|--lablgtkdir) lablgtkdir_spec=yes
-+	                lablgtkdir="$2"
-+			shift;;
-+    -camlp5dir|--camlp5dir)
-+	                camlp5dir="$2"
-+			shift;;
-+    -arch|--arch) arch_spec=yes
-+                  arch=$2
-+		  shift;;
-+    -opt|--opt) bytecamlc=ocamlc.opt
-+                camlp4oexec=camlp4o  # can't add .opt since dyn load'll be required
-+                nativecamlc=ocamlopt.opt;;
-+    -natdynlink|--natdynlink) case "$2" in
-+	                  yes) natdynlink=yes;;
-+                          *) natdynlink=no
-+                        esac
-+                        shift;;
-+    -coqide|--coqide) coqide_spec=yes
-+		      case "$2" in
-+			  byte|opt) COQIDE=$2;;
-+			  *) COQIDE=no
-+		      esac
-+		      shift;;
-+    -browser|--browser) browser_spec=yes
-+		      BROWSER=$2
-+		      shift;;
-+    -coqwebsite|--coqwebsite) wwwcoq_spec=yes
-+                      WWWCOQ=$2
-+                      shift;;
-+    -with-doc|--with-doc) with_doc_spec=yes
-+		      case "$2" in
-+			  yes|all) with_doc=all;;
-+			  *) with_doc=no
-+		      esac
-+		      shift;;
-+    -with-geoproof|--with-geoproof) 
-+	  case "$2" in
-+	      yes) with_geoproof=true;;
-+	      no) with_geoproof=false;;
-+	  esac
-+	  shift;;
-+    -with-cc|-with-gcc|--with-cc|--with-gcc) 
-+	  gcc_spec=yes
-+	  gcc_exec=$2
-+	  shift;;
-+    -with-ar|--with-ar) 
-+	  ar_spec=yes
-+	  ar_exec=$2
-+	  shift;;
-+    -with-ranlib|--with-ranlib) 
-+	  ranlib_spec=yes
-+	  ranlib_exec=$2
-+	  shift;;
-+    -byte-only|-byteonly|--byteonly|--byte-only) best_compiler=byte;;
-+    -debug|--debug) coq_debug_flag=-g;;
-+    -profile|--profile) coq_profile_flag=-p;;
-+    -annotate|--annotate) coq_annotate_flag=-dtypes;;
-+    -force-caml-version|--force-caml-version|-force-ocaml-version|--force-ocaml-version) 
-+          force_caml_version_spec=yes
-+	  force_caml_version=yes;;
-+    *) echo "Unknown option \"$1\"." 1>&2; usage; exit 2;;
-+  esac
-+  shift
-+done
-+
-+if [ $prefix_spec = yes -a $local = true ] ; then
-+  echo "Options -prefix and -local are incompatible."
-+  echo "Configure script failed!"
-+  exit 1
-+fi
-+
-+# compile date
-+DATEPGM=`which date`
-+case $DATEPGM in
-+    "") echo "I can't find the program \"date\" in your path."
-+        echo "Please give me the current date"
-+	read COMPILEDATE;;
-+    *)  COMPILEDATE=`date +"%h %d %Y %H:%M:%S"`;;
-+esac
-+
-+# Architecture
-+
-+case $arch_spec in
-+    no) 
-+    # First we test if we are running a Cygwin system
-+    if [ `uname -s | cut -c -6` = "CYGWIN" ] ; then
-+	ARCH="win32"
-+    else
-+	# If not, we determine the architecture
-+	if test -x /bin/arch ; then
-+ 	    ARCH=`/bin/arch`
-+ 	elif test -x /usr/bin/arch ; then
-+ 	    ARCH=`/usr/bin/arch`
-+ 	elif test -x /usr/ucb/arch ; then
-+ 	    ARCH=`/usr/ucb/arch`
-+ 	elif test -x /bin/uname ; then
-+ 	    ARCH=`/bin/uname -s`
-+ 	elif test -x /usr/bin/uname ; then
-+ 	    ARCH=`/usr/bin/uname -s`
-+	else
-+	    echo "I can not automatically find the name of your architecture."
-+	    printf "%s"\
-+		"Give me a name, please [win32 for Win95, Win98 or WinNT]: "
-+	    read ARCH
-+	fi
-+    fi;;
-+    yes) ARCH=$arch
-+esac
-+
-+# executable extension
-+
-+case $ARCH in
-+    win32) 
-+      EXE=".exe"
-+      DLLEXT=".dll";;
-+    *) EXE=""
-+       DLLEXT=".so"
-+esac
-+
-+# Is the source tree checked out from a recognised
-+# version control system ?
-+if test -e .svn/entries ; then 
-+    checkedout=svn
-+elif [ -d '{arch}' ]; then
-+    checkedout=gnuarch
-+elif [ -z "${GIT_DIR}" ] && [ -d .git ] || [ -d "${GIT_DIR}" ]; then
-+    checkedout=git
-+else
-+    checkedout=0
-+fi
-+
-+# make command
-+
-+MAKE=`which make`
-+if [ "$MAKE" != "" ]; then
-+  MAKEVERSION=`$MAKE -v | head -1 | cut -d" " -f3`
-+  MAKEVERSIONMAJOR=`echo $MAKEVERSION | cut -d. -f1`
-+  MAKEVERSIONMINOR=`echo $MAKEVERSION | cut -d. -f2`
-+  if [ "$MAKEVERSIONMAJOR" -eq 3 -a "$MAKEVERSIONMINOR" -ge 81 ]; then
-+      echo "You have GNU Make $MAKEVERSION. Good!"
-+  else
-+      OK="no"
-+      if [ -x ./make ]; then
-+	  MAKEVERSION=`./make -v | head -1`
-+	  if [ "$MAKEVERSION" = "GNU Make 3.81" ]; then OK="yes"; fi
-+      fi
-+      if [ $OK = "no" ]; then
-+	  echo "GNU Make >= 3.81 is needed."
-+	  echo "Make 3.81 can be downloaded from ftp://ftp.gnu.org/gnu/make/make-3.81.tar.gz"
-+	  echo "then locally installed on a Unix-style system by issuing:"
-+	  echo "  tar xzvf make-3.81.tar.gz"
-+	  echo "  cd make-3.81"
-+          echo "  ./configure"
-+          echo "  make"
-+          echo "  mv make .."
-+	  echo "  cd .."
-+	  echo "Restart then the configure script and later use ./make instead of make."
-+	  exit 1
-+      else
-+	  echo "You have locally installed GNU Make 3.81. Good!"
-+      fi
-+  fi
-+else
-+  echo "Cannot find GNU Make >= 3.81."
-+fi
-+
-+# Browser command
-+
-+if [ "$browser_spec" = "no" ]; then
-+    case $ARCH in
-+        win32) BROWSER='C:\PROGRA~1\INTERN~1\IEXPLORE %s' ;;
-+        *) BROWSER='firefox -remote "OpenURL(%s,new-tab)" || firefox %s &' ;;
-+    esac
-+fi
-+
-+if [ "$wwwcoq_spec" = "no" ]; then
-+    WWWCOQ="http://coq.inria.fr/"
-+fi
-+
-+#########################################
-+# Objective Caml programs
-+
-+case $camldir_spec in
-+    no) CAMLC=`which $bytecamlc`
-+	case "$CAMLC" in
-+	    "") echo "$bytecamlc is not present in your path!"
-+		echo "Give me manually the path to the $bytecamlc executable [/usr/local/bin by default]: "
-+		read CAMLC
-+		
-+		case "$CAMLC" in
-+		    "") CAMLC=/usr/local/bin/$bytecamlc;;
-+		    */ocamlc|*/ocamlc.opt) true;;
-+		    */) CAMLC="${CAMLC}"$bytecamlc;;
-+		    *) CAMLC="${CAMLC}"/$bytecamlc;;
-+		esac
-+	esac
-+	CAMLBIN=`dirname "$CAMLC"`;;
-+    yes) CAMLC=$camldir/$bytecamlc
-+        
-+         CAMLBIN=`dirname "$CAMLC"`
-+	 bytecamlc="$CAMLC"
-+	 nativecamlc=$CAMLBIN/$nativecamlc
-+	 ocamlexec=$CAMLBIN/ocaml
-+	 ocamldepexec=$CAMLBIN/ocamldep
-+	 ocamldocexec=$CAMLBIN/ocamldoc
-+	 ocamllexexec=$CAMLBIN/ocamllex
-+	 ocamlyaccexec=$CAMLBIN/ocamlyacc
-+	 ocamlmktopexec=$CAMLBIN/ocamlmktop
-+	 ocamlmklibexec=$CAMLBIN/ocamlmklib
-+	 camlp4oexec=$CAMLBIN/camlp4o
-+esac
-+
-+if test ! -f "$CAMLC" ; then
-+    echo "I can not find the executable '$CAMLC'. Have you installed it?"
-+    echo "Configuration script failed!"
-+    exit 1
-+fi
-+
-+# Under Windows, OCaml only understands Windows filenames (C:\...)
-+case $ARCH in
-+    win32) CAMLBIN=`cygpath -m ${CAMLBIN}`;;
-+esac
-+
-+CAMLVERSION=`"$bytecamlc" -version`
-+
-+case $CAMLVERSION in
-+    1.*|2.*|3.00|3.01|3.02|3.03|3.03alpha|3.04|3.05beta|3.05|3.06|3.07*|3.08*|3.09*)
-+	echo "Your version of Objective-Caml is $CAMLVERSION."
-+	if [ "$force_caml_version" = "yes" ]; then
-+	    echo "*Warning* You are compiling Coq with an outdated version of Objective-Caml."
-+	else
-+	    echo "          You need Objective-Caml 3.10.2 or later."
-+	    echo "          Configuration script failed!"
-+	    exit 1
-+	fi;;
-+    ?*)
-+	CAMLP4COMPAT="-loc loc" 
-+	echo "You have Objective-Caml $CAMLVERSION. Good!";;
-+    *)
-+	echo "I found the Objective-Caml compiler but cannot find its version number!"
-+	echo "Is it installed properly?"
-+	echo "Configuration script failed!"
-+	exit 1;;
-+esac
-+
-+CAMLTAG=OCAML`echo $CAMLVERSION | sed -e "s/\([1-9]\)\.\([0-9]*\).*/\1\2/g"`
-+
-+# For coqmktop & bytecode compiler
-+
-+case $ARCH in
-+    win32) # Awfull trick to get around a ^M problem at the end of CAMLLIB
-+      CAMLLIB=`"$CAMLC" -where | sed -e 's/^\(.*\)$/\1/'` ;;
-+    *)
-+      CAMLLIB=`"$CAMLC" -where`
-+esac
-+
-+if [ "$coq_debug_flag" = "-g" ]; then
-+    case $CAMLTAG in
-+        OCAML31*)
-+            # Compilation debug flag
-+            coq_debug_flag_opt="-g"
-+            ;;
-+    esac
-+fi
-+
-+# Native dynlink
-+if [ "$natdynlink" = "yes" -a -f `"$CAMLC" -where`/dynlink.cmxa ]; then
-+    HASNATDYNLINK=true
-+else
-+    HASNATDYNLINK=false
-+fi
-+
-+case $HASNATDYNLINK,`uname -s`,`uname -r`,$CAMLVERSION in
-+    true,Darwin,9.*,3.11.*)  # ocaml 3.11.0 dynlink on MacOS 10.5 is buggy
-+        NATDYNLINKFLAG=os5fixme;;
-+    #Possibly a problem on 10.6.0/10.6.1/10.6.2
-+    #May just be a 32 vs 64 problem for all 10.6.*
-+    true,Darwin,10.0.*,3.11.*) # Possibly a problem on 10.6.0
-+        NATDYNLINKFLAG=os5fixme;;
-+    true,Darwin,10.1.*,3.11.*) # Possibly a problem on 10.6.1
-+        NATDYNLINKFLAG=os5fixme;;
-+    true,Darwin,10.2.*,3.11.*) # Possibly a problem on 10.6.2
-+        NATDYNLINKFLAG=os5fixme;;
-+    true,Darwin,10.*,3.11.*)
-+        if [ `getconf LONG_BIT` = "32" ]; then
-+	    # Still a problem for x86_32
-+            NATDYNLINKFLAG=os5fixme
-+        else
-+	    # Not a problem for x86_64
-+            NATDYNLINKFLAG=$HASNATDYNLINK
-+        fi;;
-+    *)
-+        NATDYNLINKFLAG=$HASNATDYNLINK;;
-+esac
-+
-+# Camlp4 / Camlp5 configuration
-+
-+if [ "$camlp5dir" != "" ]; then
-+    CAMLP4=camlp5
-+    CAMLP4LIB=$camlp5dir
-+    if [ ! -f $camlp5dir/camlp5.cma ]; then
-+	echo "Cannot find camlp5 libraries in $camlp5dir (camlp5.cma not found)."
-+	echo "Configuration script failed!"
-+	exit 1
-+    fi
-+    camlp4oexec=`echo $camlp4oexec | sed -e 's/4/5/'`
-+else
-+    case $CAMLTAG in
-+        OCAML31*)
-+            if [ -x "${CAMLLIB}/camlp5" ]; then
-+                CAMLP4LIB=+camlp5
-+            elif [ -x "${CAMLLIB}/site-lib/camlp5" ]; then
-+                CAMLP4LIB=+site-lib/camlp5
-+            else
-+	        echo "Objective Caml $CAMLVERSION found but no Camlp5 installed."
-+	        echo "Configuration script failed!"
-+	        exit 1
-+            fi
-+            CAMLP4=camlp5
-+            camlp4oexec=`echo $camlp4oexec | sed -e 's/4/5/'`
-+            ;;
-+        *)
-+            CAMLP4=camlp4
-+            CAMLP4LIB=+camlp4
-+            ;;
-+    esac
-+fi
-+
-+if [ "$CAMLP4" = "camlp5" ] && `$camlp4oexec -v 2>&1 | grep -q 5.00`; then
-+    echo "Camlp5 version 5.00 not supported: versions 4.0x or >= 5.01 are OK"
-+    echo "(depending also on your ocaml version)."
-+    echo "Configuration script failed!"
-+    exit 1
-+fi
-+
-+
-+case $CAMLP4LIB in
-+    +*) FULLCAMLP4LIB=$CAMLLIB/`echo $CAMLP4LIB | cut -b 2-`;;
-+    *)  FULLCAMLP4LIB=$CAMLP4LIB;;
-+esac
-+
-+# Assume that camlp(4|5) binaries are at the same place as ocaml ones
-+# (this should become configurable some day) 
-+CAMLP4BIN=${CAMLBIN}
-+
-+# do we have a native compiler: test of ocamlopt and its version
-+
-+if [ "$best_compiler" = "opt" ] ; then
-+  if test -e "$nativecamlc" || test -e "`which $nativecamlc`"; then
-+      CAMLOPTVERSION=`"$nativecamlc" -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
-+      if [ "`uname -s`" = "Darwin" -a "$ARCH" = "i386" ]; then
-+	  case $CAMLOPTVERSION in
-+	      3.09.3|3.1?*) ;;
-+	      *) echo "Native compilation on MacOS X Pentium requires Objective-Caml >= 3.09.3,"
-+		 best_compiler=byte
-+		 echo "only the bytecode version of Coq will be available."
-+	  esac
-+      elif [ ! -f $FULLCAMLP4LIB/gramlib.cmxa ]; then
-+	  best_compiler=byte
-+	  echo "Cannot find native-code $CAMLP4,"
-+	  echo "only the bytecode version of Coq will be available."
-+      else
-+        if [ "$CAMLOPTVERSION" != "$CAMLVERSION" ] ; then
-+	  echo "Native and bytecode compilers do not have the same version!"
-+        fi
-+        echo "You have native-code compilation. Good!"
-+      fi
-+  else
-+      best_compiler=byte
-+      echo "You have only bytecode compilation."
-+  fi
-+fi
-+
-+# OS dependent libraries
-+
-+case $ARCH in
-+  sun4*) OS=`uname -r`
-+	case $OS in
-+	   5*) OS="Sun Solaris $OS"
-+	       OSDEPLIBS="-cclib -lunix -cclib -lnsl -cclib -lsocket";;
-+	   *) OS="Sun OS $OS"
-+	      OSDEPLIBS="-cclib -lunix"
-+        esac;;
-+  alpha) OSDEPLIBS="-cclib -lunix";;
-+  win32) OS="Win32" 
-+	 OSDEPLIBS="-cclib -lunix"
-+	 cflags="-mno-cygwin $cflags";;
-+  *) OSDEPLIBS="-cclib -lunix"
-+esac
-+
-+# lablgtk2 and CoqIDE
-+
-+# -byte-only should imply -coqide byte, unless the user decides otherwise
-+
-+if [ "$best_compiler" = "byte" -a "$coqide_spec" = "no" ]; then 
-+    coqide_spec=yes
-+    COQIDE=byte
-+fi
-+
-+# Which coqide is asked ? which one is possible ?
-+
-+if [ "$coqide_spec" = "yes" -a "$COQIDE" = "no" ]; then 
-+    echo "CoqIde disabled as requested."
-+else
-+    case $lablgtkdir_spec in
-+	no) 
-+	    if [ -f "${CAMLLIB}/lablgtk2/glib.mli" ]; then
-+		lablgtkdir=${CAMLLIB}/lablgtk2
-+	    elif [ -f "${CAMLLIB}/site-lib/lablgtk2/glib.mli" ]; then
-+		lablgtkdir=${CAMLLIB}/site-lib/lablgtk2
-+	    fi;;
-+	yes)
-+	    if [ ! -f "$lablgtkdir/glib.mli" ]; then
-+		echo "Incorrect LablGtk2 library (glib.mli not found)."
-+		echo "Configuration script failed!"
-+		exit 1
-+	    fi;;
-+    esac
-+    if [ "$lablgtkdir" = "" ]; then
-+	echo "LablGtk2 not found: CoqIde will not be available."
-+	COQIDE=no
-+    elif [ -z "`grep -w convert_with_fallback "$lablgtkdir/glib.mli"`" ]; then
-+	echo "LablGtk2 found but too old: CoqIde will not be available."
-+	COQIDE=no;
-+    elif [ "$coqide_spec" = "yes" -a "$COQIDE" = "byte" ]; then 
-+	echo "LablGtk2 found, bytecode CoqIde will be used as requested."
-+	COQIDE=byte
-+    elif [ ! -f "${CAMLLIB}/threads/threads.cmxa" ]; then 
-+	echo "LablGtk2 found, no native threads: bytecode CoqIde will be available."
-+	COQIDE=byte
-+    else 
-+	echo "LablGtk2 found, native threads: native CoqIde will be available."
-+	COQIDE=opt
-+    fi
-+fi
-+
-+case $COQIDE in
-+    byte|opt)
-+        case $lablgtkdir_spec in
-+            no)  LABLGTKLIB=+lablgtk2                   # Pour le message
-+                 LABLGTKINCLUDES="-I $LABLGTKLIB";;     # Pour le makefile
-+            yes) LABLGTKLIB="$lablgtkdir"               # Pour le message
-+                 LABLGTKINCLUDES="-I \"$LABLGTKLIB\"";; # Pour le makefile
-+        esac;;
-+    no) LABLGTKINCLUDES="";;
-+esac
-+
-+# strip command
-+
-+case $ARCH in
-+    win32)
-+	# true -> strip : it exists under cygwin !
-+	STRIPCOMMAND="strip";; 
-+    *)
-+    if [ "$coq_profile_flag" = "-p" ] || [ "$coq_debug_flag" = "-g" ] ||
-+       [ "`uname -s`" = "Darwin" -a "$HASNATDYNLINK" = "true" ]
-+    then
-+	STRIPCOMMAND="true"
-+    else
-+	STRIPCOMMAND="strip"
-+    fi
-+esac
-+
-+# mktexlsr
-+#MKTEXLSR=`which mktexlsr`
-+#case $MKTEXLSR in
-+#    "") MKTEXLSR=true;;
-+#esac
-+
-+# "
-+### Test if documentation can be compiled (latex, hevea)
-+
-+if test "$with_doc" = "all" 
-+then
-+    for cmd in "latex" "hevea" ; do
-+	if test ! -x "`which $cmd`"
-+	then 
-+	    echo "$cmd was not found; documentation will not be available"
-+	    with_doc=no
-+	    break
-+	fi
-+    done
-+fi
-+
-+###########################################
-+# bindir, libdir, mandir, docdir, etc.
-+
-+case $src_spec in
-+  no) COQTOP=${COQSRC}
-+esac
-+
-+# OCaml only understand Windows filenames (C:\...)
-+case $ARCH in
-+    win32) COQTOP=`cygpath -m ${COQTOP}`
-+esac
-+
-+case $ARCH in
-+  win32)
-+	 bindir_def='C:\coq\bin'
-+	 libdir_def='C:\coq\lib'
-+	 mandir_def='C:\coq\man'
-+	 docdir_def='C:\coq\doc'
-+	 emacslib_def='C:\coq\emacs'
-+         coqdocdir_def='C:\coq\latex';;
-+  *)
-+	 bindir_def=/usr/local/bin
-+	 libdir_def=/usr/local/lib/coq
-+	 mandir_def=/usr/local/man
-+	 docdir_def=/usr/local/share/doc/coq
-+	 emacslib_def=/usr/local/share/emacs/site-lisp
-+         coqdocdir_def=/usr/local/share/texmf/tex/latex/misc;;
-+esac
-+
-+emacs_def=emacs
-+
-+case $bindir_spec/$prefix_spec/$local in
-+    yes/*/*) BINDIR=$bindir ;;
-+    */yes/*) BINDIR=$prefix/bin ;;
-+    */*/true) BINDIR=$COQTOP/bin ;;
-+    *) printf "Where should I install the Coq binaries [$bindir_def]? "
-+        read BINDIR
-+	case $BINDIR in
-+	    "") BINDIR=$bindir_def;;
-+	    *) true;;
-+	esac;;
-+esac
-+
-+case $libdir_spec/$prefix_spec/$local in
-+    yes/*/*) LIBDIR=$libdir;;
-+    */yes/*)
-+        case $ARCH in
-+          win32) LIBDIR=$prefix ;;
-+          *)  LIBDIR=$prefix/lib/coq ;;
-+        esac ;;
-+    */*/true) LIBDIR=$COQTOP ;;
-+    *)  printf "Where should I install the Coq library [$libdir_def]? "
-+        read LIBDIR
-+	case $LIBDIR in
-+	    "") LIBDIR=$libdir_def;;
-+	    *) true;;
-+	esac;;
-+esac
-+
-+case $mandir_spec/$prefix_spec/$local in
-+    yes/*/*) MANDIR=$mandir;;
-+    */yes/*) MANDIR=$prefix/man ;;
-+    */*/true) MANDIR=$COQTOP/man ;;
-+    *)  printf "Where should I install the Coq man pages [$mandir_def]? "
-+        read MANDIR
-+	case $MANDIR in
-+	    "") MANDIR=$mandir_def;;
-+	    *) true;;
-+	esac;;
-+esac
-+
-+case $docdir_spec/$prefix_spec/$local in
-+    yes/*/*) DOCDIR=$docdir; HTMLREFMANDIR=$DOCDIR/html/refman;;
-+    */yes/*) DOCDIR=$prefix/share/doc/coq; HTMLREFMANDIR=$DOCDIR/html/refman;;
-+    */*/true) DOCDIR=$COQTOP/doc; HTMLREFMANDIR=$DOCDIR/refman/html;;
-+    *)  printf "Where should I install the Coq documentation [$docdir_def]? "
-+        read DOCDIR
-+	case $DOCDIR in
-+	    "") DOCDIR=$docdir_def; HTMLREFMANDIR=$DOCDIR/html/refman;;
-+	    *) true;;
-+	esac;;
-+esac
-+
-+case $emacslib_spec/$prefix_spec/$local in
-+    yes/*/*) EMACSLIB=$emacslib;;
-+    */yes/*)
-+        case $ARCH in
-+          win32) EMACSLIB=$prefix/emacs ;;
-+          *)  EMACSLIB=$prefix/share/emacs/site-lisp ;;
-+        esac ;;
-+    */*/true) EMACSLIB=$COQTOP/tools/emacs ;;
-+    *) printf "Where should I install the Coq Emacs mode [$emacslib_def]? "
-+        read EMACSLIB
-+	case $EMACSLIB in
-+	    "") EMACSLIB=$emacslib_def;;
-+	    *) true;;
-+	esac;;
-+esac
-+
-+case $coqdocdir_spec/$prefix_spec/$local in
-+    yes/*/*) COQDOCDIR=$coqdocdir;;
-+    */yes/*)
-+        case $ARCH in
-+          win32) COQDOCDIR=$prefix/latex ;;
-+          *)  COQDOCDIR=$prefix/share/emacs/site-lisp ;;
-+        esac ;;
-+    */*/true) COQDOCDIR=$COQTOP/tools/coqdoc ;;
-+    *) printf "Where should I install Coqdoc TeX/LaTeX files [$coqdocdir_def]? "
-+        read COQDOCDIR
-+	case $COQDOCDIR in
-+	    "") COQDOCDIR=$coqdocdir_def;;
-+	    *) true;;
-+	esac;;
-+esac
-+
-+# Determine if we enable -custom by default (Windows and MacOS)
-+CUSTOM_OS=no
-+if [ "$ARCH" = "win32" ] || [ "`uname -s`" = "Darwin" ]; then
-+    CUSTOM_OS=yes
-+fi
-+
-+BUILDLDPATH="# you might want to set CAML_LD_LIBRARY_PATH by hand!"
-+case $coqrunbyteflags_spec/$local/$custom_spec/$CUSTOM_OS in
-+    yes/*/*/*) COQRUNBYTEFLAGS="$coqrunbyteflags";;
-+    */*/yes/*|*/*/*/yes) COQRUNBYTEFLAGS="-custom";;
-+    */true/*/*) COQRUNBYTEFLAGS="-dllib -lcoqrun -dllpath '$COQTOP'/kernel/byterun";;
-+    *)
-+        COQRUNBYTEFLAGS="-dllib -lcoqrun -dllpath '$LIBDIR'"
-+        BUILDLDPATH="export CAML_LD_LIBRARY_PATH='$COQTOP'/kernel/byterun";;
-+esac
-+case $coqtoolsbyteflags_spec/$custom_spec/$CUSTOM_OS in
-+    yes/*/*) COQTOOLSBYTEFLAGS="$coqtoolsbyteflags";;
-+    */yes/*|*/*/yes) COQTOOLSBYTEFLAGS="-custom";;
-+    *) COQTOOLSBYTEFLAGS="";;
-+esac
-+
-+# case $emacs_spec in
-+#     no) printf "Which Emacs command should I use to compile coq.el [$emacs_def]? "
-+#         read EMACS
-+	
-+# 	case $EMACS in
-+# 	    "") EMACS=$emacs_def;;
-+# 	    *) true;;
-+# 	esac;;
-+#     yes) EMACS=$emacs;;
-+# esac
-+
-+
-+
-+###########################################
-+# Summary of the configuration
-+
-+echo ""
-+echo "  Coq top directory                 : $COQTOP"
-+echo "  Architecture                      : $ARCH"
-+if test ! -z "$OS" ; then
-+  echo "  Operating system                  : $OS"
-+fi
-+echo "  Coq VM bytecode link flags        : $COQRUNBYTEFLAGS"
-+echo "  Coq tools bytecode link flags     : $COQTOOLSBYTEFLAGS"
-+echo "  OS dependent libraries            : $OSDEPLIBS"
-+echo "  Objective-Caml/Camlp4 version     : $CAMLVERSION"
-+echo "  Objective-Caml/Camlp4 binaries in : $CAMLBIN"
-+echo "  Objective-Caml library in         : $CAMLLIB"
-+echo "  Camlp4 library in                 : $CAMLP4LIB"
-+if test "$best_compiler" = opt ; then
-+echo "  Native dynamic link support       : $HASNATDYNLINK"
-+fi
-+if test "$COQIDE" != "no"; then
-+echo "  Lablgtk2 library in               : $LABLGTKLIB"
-+fi
-+if test "$with_doc" = "all"; then
-+echo "  Documentation                     : All"
-+else
-+echo "  Documentation                     : None"
-+fi
-+echo "  CoqIde                            : $COQIDE"
-+echo "  Web browser                       : $BROWSER"
-+echo "  Coq web site                      : $WWWCOQ"
-+echo ""
-+
-+echo "  Paths for true installation:"
-+echo "    binaries      will be copied in $BINDIR"
-+echo "    library       will be copied in $LIBDIR"
-+echo "    man pages     will be copied in $MANDIR"
-+echo "    documentation will be copied in $DOCDIR"
-+echo "    emacs mode    will be copied in $EMACSLIB"
-+echo ""
-+
-+##################################################
-+# Building the $COQTOP/dev/ocamldebug-coq file
-+##################################################
-+
-+OCAMLDEBUGCOQ=$COQSRC/dev/ocamldebug-coq
-+
-+if test "$coq_debug_flag" = "-g" ; then
-+  rm -f $OCAMLDEBUGCOQ
-+  sed -e "s|COQTOPDIRECTORY|$COQTOP|" \
-+      -e "s|COQLIBDIRECTORY|$LIBDIR|" \
-+      -e "s|CAMLBINDIRECTORY|$CAMLBIN|" \
-+      -e "s|CAMLP4LIBDIRECTORY|$FULLCAMLP4LIB|"\
-+      $OCAMLDEBUGCOQ.template > $OCAMLDEBUGCOQ
-+  chmod a-w,a+x $OCAMLDEBUGCOQ
-+fi
-+
-+####################################################
-+# Fixing lablgtk types (before/after 2.6.0) 
-+####################################################
-+
-+if [ ! "$COQIDE" = "no" ]; then 
-+    if grep "class view " "$lablgtkdir/gText.mli" | grep -q "\[>" ; then
-+       if grep -q "?accepts_tab:bool" "$lablgtkdir/gText.mli" ; then
-+        cp -f ide/undo_lablgtk_ge212.mli ide/undo.mli
-+       else
-+	cp -f ide/undo_lablgtk_ge26.mli ide/undo.mli
-+       fi
-+    else
-+	cp -f ide/undo_lablgtk_lt26.mli ide/undo.mli
-+    fi
-+fi  
-+
-+##############################################
-+# Creation of configuration files
-+##############################################
-+
-+mlconfig_file="$COQSRC/config/coq_config.ml"
-+config_file="$COQSRC/config/Makefile"
-+config_template="$COQSRC/config/Makefile.template"
-+
-+
-+### Warning !!
-+### After this line, be careful when using variables,
-+### since some of them (e.g. $COQSRC) will be escaped
-+
-+
-+# An escaped version of a variable
-+escape_var () {
-+"$ocamlexec" 2>&1 1>/dev/null <<EOF
-+  prerr_endline(String.escaped(Sys.getenv"$VAR"));;
-+EOF
-+}
-+
-+# Escaped version of browser command
-+export BROWSER
-+BROWSER=`VAR=BROWSER escape_var`
-+
-+# damned backslashes under M$Windows
-+case $ARCH in
-+    win32)
-+	COQTOP=`echo $COQTOP |sed -e 's|\\\|\\\\\\\|g'`
-+	BINDIR=`echo $BINDIR |sed -e 's|\\\|\\\\\\\|g'`
-+	COQSRC=`cygpath -m $COQSRC |sed -e 's|\\\|\\\\\\\|g'`
-+	LIBDIR=`echo $LIBDIR |sed -e 's|\\\|\\\\\\\|g'`
-+	CAMLBIN=`echo $CAMLBIN |sed -e 's|\\\|\\\\\\\|g'`
-+	CAMLLIB=`echo $CAMLLIB |sed -e 's|\\\|\\\\\\\|g'`
-+	MANDIR=`echo $MANDIR |sed -e 's|\\\|\\\\\\\|g'`
-+	DOCDIR=`echo $DOCDIR |sed -e 's|\\\|\\\\\\\|g'`
-+	EMACSLIB=`echo $EMACSLIB |sed -e 's|\\\|\\\\\\\|g'`
-+	COQDOCDIR=`echo $COQDOCDIR |sed -e 's|\\\|\\\\\\\|g'`
-+	CAMLP4BIN=`echo $CAMLP4BIN |sed -e 's|\\\|\\\\\\\|g'`
-+	CAMLP4LIB=`echo $CAMLP4LIB |sed -e 's|\\\|\\\\\\\|g'`
-+	LABLGTKINCLUDES=`echo $LABLGTKINCLUDES |sed -e 's|\\\|\\\\\\\|g'`
-+	COQRUNBYTEFLAGS=`echo $COQRUNBYTEFLAGS |sed -e 's|\\\|\\\\\\\|g'`
-+	COQTOOLSBYTEFLAGS=`echo $COQTOOLSBYTEFLAGS |sed -e 's|\\\|\\\\\\\|g'`
-+	BUILDLDPATH=`echo $BUILDLDPATH |sed -e 's|\\\|\\\\\\\|g'`
-+	ocamlexec=`echo $ocamlexec |sed -e 's|\\\|\\\\\\\|g'`
-+	bytecamlc=`echo $bytecamlc |sed -e 's|\\\|\\\\\\\|g'`
-+	nativecamlc=`echo $nativecamlc |sed -e 's|\\\|\\\\\\\|g'`
-+	ocamlmklibexec=`echo $ocamlmklibexec |sed -e 's|\\\|\\\\\\\|g'`
-+	ocamldepexec=`echo $ocamldepexec |sed -e 's|\\\|\\\\\\\|g'`
-+	ocamldocexec=`echo $ocamldocexec |sed -e 's|\\\|\\\\\\\|g'`
-+	ocamllexexec=`echo $ocamllexexec |sed -e 's|\\\|\\\\\\\|g'`
-+	ocamlyaccexec=`echo $ocamlyaccexec |sed -e 's|\\\|\\\\\\\|g'`
-+	camlp4oexec=`echo $camlp4oexec |sed -e 's|\\\|\\\\\\\|g'`
-+    ;;
-+esac
-+
-+#####################################################
-+# Building the $COQTOP/config/coq_config.ml file
-+#####################################################
-+
-+rm -f "$mlconfig_file"
-+cat << END_OF_COQ_CONFIG > $mlconfig_file
-+(* DO NOT EDIT THIS FILE: automatically generated by ../configure *)
-+
-+let local = $local
-+let coqrunbyteflags = "$COQRUNBYTEFLAGS"
-+let coqlib = "$LIBDIR"
-+let coqsrc = "$COQSRC"
-+let ocaml = "$ocamlexec"
-+let ocamlc = "$bytecamlc"
-+let ocamlopt = "$nativecamlc"
-+let ocamlmklib = "$ocamlmklibexec"
-+let ocamldep = "$ocamldepexec"
-+let ocamldoc = "$ocamldocexec"
-+let ocamlyacc = "$ocamlyaccexec"
-+let ocamllex = "$ocamllexexec"
-+let camlbin = "$CAMLBIN"
-+let camllib = "$CAMLLIB"
-+let camlp4 = "$CAMLP4"
-+let camlp4o = "$camlp4oexec"
-+let camlp4bin = "$CAMLP4BIN"
-+let camlp4lib = "$CAMLP4LIB"
-+let camlp4compat = "$CAMLP4COMPAT"
-+let coqideincl = "$LABLGTKINCLUDES"
-+let cflags = "$cflags"
-+let best = "$best_compiler"
-+let arch = "$ARCH"
-+let has_coqide = "$COQIDE"
-+let has_natdynlink = $HASNATDYNLINK
-+let natdynlinkflag = "$NATDYNLINKFLAG"
-+let osdeplibs = "$OSDEPLIBS"
-+let version = "$VERSION"
-+let caml_version = "$CAMLVERSION"
-+let date = "$DATE"
-+let compile_date = "$COMPILEDATE"
-+let vo_magic_number = $VOMAGIC
-+let state_magic_number = $STATEMAGIC
-+let exec_extension = "$EXE"
-+let with_geoproof = ref $with_geoproof
-+let browser = "$BROWSER"
-+let wwwcoq = "$WWWCOQ"
-+let wwwrefman = wwwcoq ^ "distrib/" ^ version ^ "/refman/"
-+let wwwstdlib = wwwcoq ^ "distrib/" ^ version ^ "/stdlib/"
-+let localwwwrefman = "file://$HTMLREFMANDIR/"
-+
-+END_OF_COQ_CONFIG
-+
-+# to be sure printf is found on windows when spaces occur in PATH variable
-+PRINTF=`which printf`
-+
-+# Subdirectories of theories/ added in coq_config.ml
-+subdirs () {
-+    (cd $1; find * \( -name .svn -prune \) -o \( -type d -exec $PRINTF "\"%s\";\n" {} \; \) >> "$mlconfig_file")
-+}
-+
-+echo "let theories_dirs = [" >> "$mlconfig_file"
-+subdirs theories
-+echo "]" >> "$mlconfig_file"
-+
-+echo "let plugins_dirs = [" >> "$mlconfig_file"
-+subdirs plugins
-+echo "]" >> "$mlconfig_file"
-+
-+chmod a-w "$mlconfig_file"
-+
-+
-+###############################################
-+# Building the $COQTOP/config/Makefile file
-+###############################################
-+
-+rm -f "$config_file"
-+
-+sed -e "s|LOCALINSTALLATION|$local|" \
-+    -e "s|XCOQRUNBYTEFLAGS|$COQRUNBYTEFLAGS|" \
-+    -e "s|XCOQTOOLSBYTEFLAGS|$COQTOOLSBYTEFLAGS|" \
-+    -e "s|COQSRCDIRECTORY|$COQSRC|" \
-+    -e "s|COQVERSION|$VERSION|" \
-+    -e "s|BINDIRDIRECTORY|$BINDIR|" \
-+    -e "s|COQLIBDIRECTORY|$LIBDIR|" \
-+    -e "s|BUILDLDPATH=|$BUILDLDPATH|" \
-+    -e "s|MANDIRDIRECTORY|$MANDIR|" \
-+    -e "s|DOCDIRDIRECTORY|$DOCDIR|" \
-+    -e "s|EMACSLIBDIRECTORY|$EMACSLIB|" \
-+    -e "s|EMACSCOMMAND|$EMACS|" \
-+    -e "s|COQDOCDIRECTORY|$COQDOCDIR|" \
-+    -e "s|MKTEXLSRCOMMAND|$MKTEXLSR|" \
-+    -e "s|ARCHITECTURE|$ARCH|" \
-+    -e "s|OSDEPENDENTLIBS|$OSDEPLIBS|" \
-+    -e "s|OSDEPENDENTP4OPTFLAGS|$OSDEPP4OPTFLAGS|" \
-+    -e "s|CAMLLIBDIRECTORY|$CAMLLIB|" \
-+    -e "s|CAMLTAG|$CAMLTAG|" \
-+    -e "s|CAMLP4BINDIRECTORY|$CAMLP4BIN|" \
-+    -e "s|CAMLP4LIBDIRECTORY|$CAMLP4LIB|" \
-+    -e "s|CAMLP4TOOL|$camlp4oexec|" \
-+    -e "s|CAMLP4COMPATFLAGS|$CAMLP4COMPAT|" \
-+    -e "s|LABLGTKINCLUDES|$LABLGTKINCLUDES|" \
-+    -e "s|COQDEBUGFLAGOPT|$coq_debug_flag_opt|" \
-+    -e "s|COQDEBUGFLAG|$coq_debug_flag|" \
-+    -e "s|COQPROFILEFLAG|$coq_profile_flag|" \
-+    -e "s|CAMLANNOTATEFLAG|$coq_annotate_flag|" \
-+    -e "s|CCOMPILEFLAGS|$cflags|" \
-+    -e "s|BESTCOMPILER|$best_compiler|" \
-+    -e "s|DLLEXTENSION|$DLLEXT|" \
-+    -e "s|EXECUTEEXTENSION|$EXE|" \
-+    -e "s|BYTECAMLC|$bytecamlc|" \
-+    -e "s|OCAMLMKLIBEXEC|$ocamlmklibexec|" \
-+    -e "s|NATIVECAMLC|$nativecamlc|" \
-+    -e "s|OCAMLEXEC|$ocamlexec|" \
-+    -e "s|OCAMLDEPEXEC|$ocamldepexec|" \
-+    -e "s|OCAMLDOCEXEC|$ocamldocexec|" \
-+    -e "s|OCAMLLEXEXEC|$ocamllexexec|" \
-+    -e "s|OCAMLYACCEXEC|$ocamlyaccexec|" \
-+    -e "s|CAMLMKTOPEXEC|$ocamlmktopexec|" \
-+    -e "s|CCEXEC|$gcc_exec|" \
-+    -e "s|AREXEC|$ar_exec|" \
-+    -e "s|RANLIBEXEC|$ranlib_exec|" \
-+    -e "s|STRIPCOMMAND|$STRIPCOMMAND|" \
-+    -e "s|COQIDEOPT|$COQIDE|" \
-+    -e "s|CHECKEDOUTSOURCETREE|$checkedout|" \
-+    -e "s|WITHDOCOPT|$with_doc|" \
-+    -e "s|HASNATIVEDYNLINK|$NATDYNLINKFLAG|" \
-+      "$config_template" > "$config_file"
-+
-+chmod a-w "$config_file"
-+
-+##################################################
-+# The end
-+####################################################
-+
-+echo "If anything in the above is wrong, please restart './configure'."
-+echo
-+echo "*Warning* To compile the system for a new architecture"
-+echo "          don't forget to do a 'make archclean' before './configure'."
-+
-+# $Id: configure 14833 2011-12-19 21:57:30Z notin $
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index bf759a4a3260..9596c30ee6af 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -1,15 +1,13 @@
 # - coqide compilation can be disabled by setting lablgtk to null;
 
-{stdenv, fetchurl, ocaml, findlib, camlp5, ncurses, lablgtk ? null}:
+{stdenv, fetchurl, pkgconfig, ocaml, findlib, camlp5, ncurses, lablgtk ? null}:
 
 let 
-  version = "8.3pl4";
+  version = "8.4";
   buildIde = lablgtk != null;
   ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
-  idePatch = if buildIde then ''
-    substituteInPlace scripts/coqmktop.ml --replace \
-    "\"-I\"; \"+lablgtk2\"" \
-    "\"-I\"; \"$(echo "${lablgtk}"/lib/ocaml/*/site-lib/lablgtk2)\"; \"-I\"; \"$(echo "${lablgtk}"/lib/ocaml/*/site-lib/stublibs)\""
+  idePath = if buildIde then ''
+    CAML_LD_LIBRARY_PATH=${lablgtk}/lib/ocaml/3.12.1/site-lib/stublibs
   '' else "";
 in
 
@@ -17,15 +15,23 @@ stdenv.mkDerivation {
   name = "coq-${version}";
 
   src = fetchurl {
-    url = "http://coq.inria.fr/V${version}/files/coq-${version}.tar.gz";
-    sha256 = "17d3lmchmqir1rawnr52g78srg4wkd7clzpzfsivxc4y1zp6rwkr";
+    url = "http://pauillac.inria.fr/~herbelin/coq/distrib/V${version}/files/coq-${version}.tar.gz";
+    sha256 = "0ka2lak9il4hlblk461awf0hbi3mxqhc1wz6kllxradyy2vfaspl";
   };
 
-  buildInputs = [ ocaml findlib camlp5 ncurses lablgtk ];
+  buildInputs = [ pkgconfig ocaml findlib camlp5 ncurses lablgtk ];
 
-  prefixKey = "-prefix ";
+  patches = [ ./configure.patch ];
+
+  postPatch = ''
+    UNAME=$(type -tp uname)
+    RM=$(type -tp rm)
+    substituteInPlace configure --replace "/bin/uname" "$UNAME"
+    substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM"
+  '';
 
   preConfigure = ''
+    buildFlagsArray=(${idePath})
     configureFlagsArray=(
       -opt
       -camldir ${ocaml}/bin
@@ -34,25 +40,9 @@ stdenv.mkDerivation {
     )
   '';
 
-  buildFlags = "world"; # Debug with "world VERBOSE=1";
-
-  patches = [ ./configure.patch ];
-
-  postPatch = ''
-    UNAME=$(type -tp uname)
-    RM=$(type -tp rm)
-    substituteInPlace configure --replace "/bin/uname" "$UNAME"
-    substituteInPlace tools/beautify-archive --replace "/bin/rm" "$RM"
-    ${idePatch}
-  '';
+  prefixKey = "-prefix ";
 
-  # This post install step is needed to build ssrcoqide from the ssreflect package
-  # It could be made optional, but I see little harm in including it in the default
-  # distribution -- roconnor
-  # This will likely no longer be necessary for coq >= 8.4. -- roconnor
-  postInstall = if buildIde then ''
-   cp ide/*.cmi ide/ide.*a $out/lib/coq/ide/
-  '' else "";
+  buildFlags = "revision coq coqide";
 
   meta = {
     description = "Coq proof assistant";
diff --git a/pkgs/applications/science/logic/isabelle/default.nix b/pkgs/applications/science/logic/isabelle/default.nix
index 4a268cac6455..bbc868910f57 100644
--- a/pkgs/applications/science/logic/isabelle/default.nix
+++ b/pkgs/applications/science/logic/isabelle/default.nix
@@ -2,9 +2,7 @@
 # nettools needed for hostname
 
 let
-  pname = "Isabelle";
-  version = "2011";
-  name = "${pname}${version}";
+  name = "Isabelle2012";
   theories = ["HOL" "FOL" "ZF"];
 in
 
@@ -12,8 +10,8 @@ stdenv.mkDerivation {
   inherit name theories;
 
   src = fetchurl {
-    url = http://isabelle.in.tum.de/website-Isabelle2011/dist/Isabelle2011.tar.gz;
-    sha256 = "ea85eb2a859891be387f020b2e45f8c9a0bd1d8bbc3902f28a429e9c61cb0b6a";
+    url = http://www.cl.cam.ac.uk/research/hvg/isabelle/dist/Isabelle2012.tar.gz;
+    sha256 = "1w2k5cg0d9hyigax0hwp6d84jnylb13ysk4x5kwl2412xryravxq";
   };
 
   buildInputs = [ perl polyml nettools ];
diff --git a/pkgs/applications/science/logic/ssreflect/default.nix b/pkgs/applications/science/logic/ssreflect/default.nix
index c554b5dcea1c..764954f54f8f 100644
--- a/pkgs/applications/science/logic/ssreflect/default.nix
+++ b/pkgs/applications/science/logic/ssreflect/default.nix
@@ -6,7 +6,7 @@
 
 let
   pname = "ssreflect";
-  version = "1.3pl4";
+  version = "1.4";
   name = "${pname}-${version}";
   webpage = http://www.msr-inria.inria.fr/Projects/math-components;
 in
@@ -15,22 +15,16 @@ stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
-    url = "${webpage}/${name}.tar.gz";
-    sha256 = "1ha3iiqq79pgll5ra9z0xdi3d3dr3wb9f5vsm4amy884l5anva02";
+    url = "${webpage}/${name}-coq8.4.tar.gz";
+    sha256 = "1ysx29xw09i86lq0d92z9cnyx133jfgq4qddy3501000fn7xwi7h";
   };
 
   buildInputs = [ ocaml camlp5 coq makeWrapper ];
 
   patches = [ ./static.patch ];
 
-  postBuild = ''
-    cd src
-    coqmktop -ide -opt ssreflect.cmx -o ../bin/ssrcoqide
-    cd ..
-  '';
-
   installPhase = ''
-    COQLIB=$out/lib/coq make -f Makefile.coq install -e
+    COQLIB=$out/lib/coq/ make -f Makefile.coq install -e
     mkdir -p $out/bin
     cp bin/* $out/bin
     for i in $out/bin/*; do
@@ -39,6 +33,7 @@ stdenv.mkDerivation {
         --add-flags "$out/lib/coq/user-contrib/Ssreflect" \
         --add-flags "Ssreflect"
     done
+    makeWrapper "${coq}/bin/coqide" "$out/bin/ssrcoqide" --add-flags "-coqtop" --add-flags "$out/bin/ssrcoq"
   '';
 
   meta = {
diff --git a/pkgs/applications/science/logic/ssreflect/static.patch b/pkgs/applications/science/logic/ssreflect/static.patch
index edb8a6111f7e..2211d8802582 100644
--- a/pkgs/applications/science/logic/ssreflect/static.patch
+++ b/pkgs/applications/science/logic/ssreflect/static.patch
@@ -1,33 +1,21 @@
---- ssreflect1.3pl4/Make	(revision 3823)
-+++ ssreflect1.3pl4/Make	(working copy)
-@@ -1,18 +1,18 @@
- ## Uncomment for static linking
- ## <static>
--#
--#-custom "$(COQBIN)coqmktop -opt -o bin/ssrcoq src/ssreflect.cmx" "src/ssreflect.cmx" bin/ssrcoq
--#-custom "$(COQBIN)coqmktop -o bin/ssrcoq.byte src/ssreflect.cmo" "src/ssreflect.cmo bin/ssrcoq" bin/ssrcoq.byte
+--- ssreflect1.4-coq8.4/Make	(revision 3823)
++++ ssreflect1.4-coq8.4/Make	(working copy)
+@@ -1,10 +1,10 @@
+-### Uncomment for static linking
+-##
+-#-custom "$(COQBIN)coqmktop -coqlib `$(COQBIN)coqtop -where` -opt -o bin/ssrcoq src/ssrmatching.cmx src/ssreflect.cmx" "src/ssrmatching.cmx src/ssreflect.cmx" bin/ssrcoq
+-#-custom "$(COQBIN)coqmktop -coqlib `$(COQBIN)coqtop -where` -o bin/ssrcoq.byte src/ssrmatching.cmo src/ssreflect.cmo" "src/ssrmatching.cmo src/ssreflect.cmo" bin/ssrcoq.byte
 -#-custom "$(SSRCOQ) $(COQFLAGS) -compile $*" "%.v $(SSRCOQ)" "%.vo"
 -#SSRCOQ = bin/ssrcoq
--#
-+
-+-custom "$(COQBIN)coqmktop -opt -o bin/ssrcoq src/ssreflect.cmx" "src/ssreflect.cmx" bin/ssrcoq
-+-custom "$(COQBIN)coqmktop -o bin/ssrcoq.byte src/ssreflect.cmo" "src/ssreflect.cmo bin/ssrcoq" bin/ssrcoq.byte
+-##
++## Uncomment for static linking
++#
++-custom "$(COQBIN)coqmktop -coqlib `$(COQBIN)coqtop -where` -opt -o bin/ssrcoq src/ssrmatching.cmx src/ssreflect.cmx" "src/ssrmatching.cmx src/ssreflect.cmx" bin/ssrcoq
++-custom "$(COQBIN)coqmktop -coqlib `$(COQBIN)coqtop -where` -o bin/ssrcoq.byte src/ssrmatching.cmo src/ssreflect.cmo" "src/ssrmatching.cmo src/ssreflect.cmo" bin/ssrcoq.byte
 +-custom "$(SSRCOQ) $(COQFLAGS) -compile $*" "%.v $(SSRCOQ)" "%.vo"
 +SSRCOQ = bin/ssrcoq
-+
- ## </static>
- 
- ## Uncomment for dynamic linking
- ## <dynamic>
--
---I src
--
-+#
-+#-I src
 +#
- ## </dynamic>
  
  ## What follows should be left untouched by the final user of ssreflect
-Common subdirectories: old/src and new/src
-Common subdirectories: old/test and new/test
-Common subdirectories: old/theories and new/theories
+ -R theories Ssreflect
+
diff --git a/pkgs/applications/version-management/bazaar/default.nix b/pkgs/applications/version-management/bazaar/default.nix
index 462aede3b1c7..856320f01684 100644
--- a/pkgs/applications/version-management/bazaar/default.nix
+++ b/pkgs/applications/version-management/bazaar/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://bazaar-vcs.org/;
     description = "A distributed version control system that Just Works";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/version-management/darcs/default.nix b/pkgs/applications/version-management/darcs/default.nix
index 53cb4b360a0c..a6b4b9a60de5 100644
--- a/pkgs/applications/version-management/darcs/default.nix
+++ b/pkgs/applications/version-management/darcs/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "darcs";
-  version = "2.8.1";
-  sha256 = "1fz9k9zihb0fz0w2y55iqa1fd604nxzz48r62sx3ixxn8qqsvrd1";
+  version = "2.8.2";
+  sha256 = "1gd8028k91hjsd9hvx3pw4h5zsn2ckc7pfp7f1f566dpp1g422v5";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
@@ -15,6 +15,10 @@ cabal.mkDerivation (self: {
     zlib
   ];
   extraLibraries = [ curl ];
+  postInstall = ''
+    mkdir -p $out/etc/bash_completion.d
+    mv contrib/darcs_completion $out/etc/bash_completion.d/darcs
+  '';
   meta = {
     homepage = "http://darcs.net/";
     description = "a distributed, interactive, smart revision control system";
diff --git a/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix b/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix
new file mode 100644
index 000000000000..115424ac69c8
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/darcs-to-git/default.nix
@@ -0,0 +1,79 @@
+{ stdenv, fetchgit, ruby, gnugrep, diffutils, git, darcs }:
+
+stdenv.mkDerivation rec {
+  name = "darcs-to-git-${version}";
+  version = "0.2git";
+
+  src = fetchgit {
+    url = "git://github.com/purcell/darcs-to-git.git";
+    rev = "58a55936899c7e391df5ae1326c307fbd4617a25";
+    sha256 = "366aa691920991e21cfeebd4cbd53a6c42d80e2bc46ff398af482d1d15bac4c3";
+  };
+
+  patchPhase = let
+    matchExecution = ''(\<(output_of|system|run)\([^"%]*("|%w\()|^[^"`]*`)'';
+  in ''
+    sed -r -i \
+      -e '1s|^#!.*|#!${ruby}/bin/ruby|' \
+      -e 's!${matchExecution}git\>!\1${git}/bin/git!' \
+      -e 's!${matchExecution}darcs\>!\1${darcs}/bin/darcs!' \
+      -e 's!${matchExecution}diff\>!\1${diffutils}/bin/diff!' \
+      -e 's!\<egrep\>!${gnugrep}/bin/egrep!g' \
+      -e 's!%w\(darcs init\)!%w(${darcs}/bin/darcs init)!' \
+      darcs-to-git
+  '';
+
+  installPhase = ''
+    install -vD darcs-to-git "$out/bin/darcs-to-git"
+  '';
+
+  doCheck = true;
+
+  checkPhase = ''
+    orig_dir="$(pwd)"
+    darcs_repos="$(pwd)/darcs_test_repos"
+    git_repos="$(pwd)/git_test_repos"
+    test_home="$(pwd)/test_home"
+    mkdir "$darcs_repos" "$git_repos" "$test_home"
+    cd "$darcs_repos"
+    ${darcs}/bin/darcs init
+    echo "this is a test file" > new_file1
+    ${darcs}/bin/darcs add new_file1
+    HOME="$test_home" ${darcs}/bin/darcs record -a -m c1 -A none
+    echo "testfile1" > new_file1
+    echo "testfile2" > new_file2
+    ${darcs}/bin/darcs add new_file2
+    HOME="$test_home" ${darcs}/bin/darcs record -a -m c2 -A none
+    ${darcs}/bin/darcs mv new_file2 only_one_file
+    rm -f new_file1
+    HOME="$test_home" ${darcs}/bin/darcs record -a -m c3 -A none
+    cd "$git_repos"
+    HOME="$test_home" PATH= "$orig_dir/darcs-to-git" "$darcs_repos"
+    assertFileContents() {
+      echo -n "File $1 contains '$2'..." >&2
+      if [ "x$(cat "$1")" = "x$2" ]; then
+        echo " passed." >&2
+        return 0
+      else
+        echo " failed: '$(cat "$1")' != '$2'" >&2
+        return 1
+      fi
+    }
+    echo "Checking if converted repository matches original repository:" >&2
+    assertFileContents only_one_file testfile2
+    ${git}/bin/git reset --hard HEAD^
+    assertFileContents new_file1 testfile1
+    assertFileContents new_file2 testfile2
+    ${git}/bin/git reset --hard HEAD^
+    assertFileContents new_file1 "this is a test file"
+    echo "All checks passed." >&2
+    cd "$orig_dir"
+    rm -rf "$darcs_repos" "$git_repos" "$test_home"
+  '';
+
+  meta = {
+    description = "Converts a Darcs repository into a Git repository";
+    homepage = "http://www.sanityinc.com/articles/converting-darcs-repositories-to-git";
+    license = stdenv.lib.licenses.mit;
+  };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index 53e214e8f370..6ee19832750c 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -69,22 +69,8 @@ rec {
     inherit stdenv fetchurl unzip;
   };
 
-  tig = stdenv.mkDerivation {
-    name = "tig-0.16";
-    src = fetchurl {
-      url = "http://jonas.nitro.dk/tig/releases/tig-0.16.tar.gz";
-      sha256 = "167kak44n66wqjj6jrv8q4ijjac07cw22rlpqjqz3brlhx4cb3ix";
-    };
-    buildInputs = [ncurses asciidoc xmlto docbook_xsl];
-    installPhase = ''
-      make install
-      make install-doc
-    '';
-    meta = {
-      description = "console git repository browser that additionally can act as a pager for output from various git commands";
-      homepage = http://jonas.nitro.dk/tig/;
-      license = "GPLv2";
-    };
+  tig = import ./tig {
+    inherit stdenv fetchurl ncurses asciidoc xmlto docbook_xsl;
   };
 
   gitFastExport = import ./fast-export {
@@ -105,4 +91,6 @@ rec {
   gitSubtree = import ./git-subtree {
     inherit stdenv fetchurl git asciidoc xmlto docbook_xsl docbook_xml_dtd_45 libxslt;
   };
+
+  darcsToGit = callPackage ./darcs-to-git { };
 }
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 16f62ad50ec2..86c8e9717b16 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
@@ -5,14 +5,14 @@
 }:
 
 let
-  version = "3.20120629";
+  version = "3.20120825";
 in
 stdenv.mkDerivation {
   name = "git-annex-${version}";
 
   src = fetchurl {
     url = "http://git.kitenet.net/?p=git-annex.git;a=snapshot;sf=tgz;h=refs/tags/${version}";
-    sha256 = "0dajcmx1sn3rqlba5b66lkiwji849gxzcb5d8666in21g7lc1ccs";
+    sha256 = "edffe6a99d07599f62d4d5f6823de8a830abe8977c7671fd6eb21aeaebc0b8d0";
     name = "git-annex-${version}.tar.gz";
   };
 
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 4ed5f78d6e0c..916aa69b05fd 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -9,10 +9,10 @@
 
 let
 
-  version = "1.7.11";
-  
+  version = "1.7.12.1";
+
   svn = subversionClient.override { perlBindings = true; };
-  
+
 in
 
 stdenv.mkDerivation {
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://git-core.googlecode.com/files/git-${version}.tar.gz";
-    sha256 = "0qgi1cj19dnn0sl3n38dbz68nllvyppdvs2jb77ksiar4jb9lsc3";
+    sha256 = "a0c2b7e122ac2e40fe5b69baeeaac24b237a1341f08ba848cadaa835a0dbcfcd";
   };
 
   patches = [ ./docbook2texi.patch ];
@@ -100,7 +100,7 @@ stdenv.mkDerivation {
        for prog in bin/gitk libexec/git-core/{git-gui,git-citool,git-gui--askpass}; do
          sed -i -e "s|exec 'wish'|exec '${tk}/bin/wish'|g" \
                 -e "s|exec wish|exec '${tk}/bin/wish'|g" \
-		"$out/$prog"
+                "$out/$prog"
        done
      '' else ''
        # Don't wrap Tcl/Tk, replace them by notification scripts
diff --git a/pkgs/applications/version-management/git-and-tools/tig/default.nix b/pkgs/applications/version-management/git-and-tools/tig/default.nix
new file mode 100644
index 000000000000..d567e20d7320
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/tig/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, ncurses, asciidoc, xmlto, docbook_xsl }:
+
+stdenv.mkDerivation {
+  name = "tig-1.0";
+  src = fetchurl {
+    url = "http://jonas.nitro.dk/tig/releases/tig-1.0.tar.gz";
+    md5 = "a2d414d1cebbc9cd4f3d545bc6f225c6";
+  };
+  buildInputs = [ncurses asciidoc xmlto docbook_xsl];
+  installPhase = ''
+    make install
+    make install-doc
+  '';
+  meta = {
+    description = "Tig is a git repository browser that additionally can act as a pager for output from various git commands";
+    homepage = "http://jonas.nitro.dk/tig/";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index 24e1b95bf0cb..486bebc2531c 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -2,14 +2,14 @@
 , guiSupport ? false, tk ? null, curses }:
 
 let
-  name = "mercurial-2.1.2";
+  name = "mercurial-2.2.3";
 in
 stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
     url = "http://mercurial.selenic.com/release/${name}.tar.gz";
-    sha256 = "11lqjnbal667rkbafby9qvb7hyxfycyc7h3hw04p4s4mw64lhkci";
+    sha256 = "0yv7kn96270fixigry910c1i3zzivimh1xjxywqjn9dshn2y6qbw";
   };
 
   inherit python; # pass it so that the same version can be used in hg2git
@@ -43,7 +43,7 @@ stdenv.mkDerivation {
 
       # copy hgweb.cgi to allow use in apache
       mkdir -p $out/share/cgi-bin
-      cp -v hgweb.cgi $out/share/cgi-bin
+      cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin
       chmod u+x $out/share/cgi-bin/hgweb.cgi
     '';
 
diff --git a/pkgs/applications/version-management/mr/default.nix b/pkgs/applications/version-management/mr/default.nix
index ca272504517a..9e8024d7b191 100644
--- a/pkgs/applications/version-management/mr/default.nix
+++ b/pkgs/applications/version-management/mr/default.nix
@@ -1,13 +1,13 @@
-{ stdenv, fetchgit, fetchgitrevision, perl }:
+{ stdenv, fetchurl, perl }:
 
 stdenv.mkDerivation rec {
 
-  version = "1.12";
+  version = "1.13";
   name = "mr-" + version;
 
-  src = fetchgit {
-    url = "git://git.kitenet.net/mr.git";
-    rev = "353f63c968368edea9b14261f510c34ce4e0c97f";
+  src = fetchurl {
+    url = "http://ftp.de.debian.org/debian/pool/main/m/mr/mr_${version}.tar.gz";
+    sha256 = "1q3qxk8dwbv30v2xxh852wnwl1msgkvk5cgxyicpqj8kh5b96zlz";
   };
 
   buildInputs = [perl];
@@ -17,12 +17,11 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    ensureDir $out/bin
-    ensureDir $out/share/man/man1
-    cp mr $out/bin
-    cp webcheckout $out/bin
-    cp mr.1 $out/share/man/man1
-    cp webcheckout.1 $out/share/man/man1
+    mkdir -pv $out/bin $out/share/man/man1
+    cp -v mr $out/bin
+    cp -v webcheckout $out/bin
+    cp -v mr.1 $out/share/man/man1
+    cp -v webcheckout.1 $out/share/man/man1
   '';
       
   meta = {
diff --git a/pkgs/applications/version-management/veracity/default.nix b/pkgs/applications/version-management/veracity/default.nix
index 91650deb077d..6bf452c18210 100644
--- a/pkgs/applications/version-management/veracity/default.nix
+++ b/pkgs/applications/version-management/veracity/default.nix
@@ -63,7 +63,7 @@ rec {
     export SGNEEDS_DIR="$out"/sgneeds/
     export VVTHIRDPARTY="$out"/sgneeds/
 
-    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$out/sgneeds/include"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I"$out/sgneeds/include" -Wno-error"
   '') ["minInit" "defEnsureDir"];
 
   prepareMakefiles = a.fullDepEntry ''
diff --git a/pkgs/applications/version-management/veracity/src-for-default.nix b/pkgs/applications/version-management/veracity/src-for-default.nix
index b074c3ec5079..395dda240b8b 100644
--- a/pkgs/applications/version-management/veracity/src-for-default.nix
+++ b/pkgs/applications/version-management/veracity/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="1.5.0.10647";
-   name="veracity-1.5.0.10647";
-   hash="1b10npyxxg9592wigfpv66h17bzbsg2hqcfm7imyn941a34qrkd3";
-   url="http://download.sourcegear.com/Veracity/nightly/1.5.0.10647/veracity-source-${version}.tar.gz";
-   advertisedUrl="http://download.sourcegear.com/Veracity/nightly/1.5.0.10647/veracity-source-1.5.0.10647.tar.gz";
+   version="2.0.0.10822";
+   name="veracity-2.0.0.10822";
+   hash="0zgvrsjxfd1p9pflx1kxggmk953jhjk02h1hili9h1vdasvn2188";
+   url="http://download.sourcegear.com/Veracity/release/2.0.0.10822/veracity-source-${version}.tar.gz";
+   advertisedUrl="http://download.sourcegear.com/Veracity/release/2.0.0.10822/veracity-source-2.0.0.10822.tar.gz";
   
   
 }
diff --git a/pkgs/applications/video/MPlayer/default.nix b/pkgs/applications/video/MPlayer/default.nix
index 3c1cd2ff4472..566089201cda 100644
--- a/pkgs/applications/video/MPlayer/default.nix
+++ b/pkgs/applications/video/MPlayer/default.nix
@@ -97,7 +97,7 @@ stdenv.mkDerivation rec {
 
   buildInputs =
     [ freetype zlib pkgconfig ]
-    ++ stdenv.lib.optional x11Support [ libX11 libXext mesa ]
+    ++ stdenv.lib.optionals x11Support [ libX11 libXext mesa ]
     ++ stdenv.lib.optional alsaSupport alsaLib
     ++ stdenv.lib.optional xvSupport libXv
     ++ stdenv.lib.optional theoraSupport libtheora
diff --git a/pkgs/applications/video/bangarang/default.nix b/pkgs/applications/video/bangarang/default.nix
index 2fe4b4d0bdc2..0bc7476dc820 100644
--- a/pkgs/applications/video/bangarang/default.nix
+++ b/pkgs/applications/video/bangarang/default.nix
@@ -1,13 +1,14 @@
 { stdenv, fetchurl, cmake, qt4, kdelibs, automoc4, phonon, soprano, shared_desktop_ontologies, kdemultimedia, taglib, glibc, gettext }:
 stdenv.mkDerivation rec {
-  name = "bangarang-2.0";
+  name = "bangarang-2.1";
 
   src = fetchurl {
     url = "http://bangarangissuetracking.googlecode.com/files/${name}.tar.gz";
-    sha256 = "1fixqx56k0mk0faz35rzpdg6zaa0mvm4548rg0g7fhafl35fxzlz";
+    sha256 = "1g4pap79k8qaqi0py34xqvisxln1nc5hbvph692ah3af06n6cly1";
   };
 
-  buildInputs = [ cmake qt4 kdelibs automoc4 phonon soprano shared_desktop_ontologies kdemultimedia taglib glibc gettext ];
+  buildInputs = [ kdelibs phonon soprano shared_desktop_ontologies kdemultimedia taglib gettext ];
+  buildNativeInputs = [ cmake ];
 
   meta = with stdenv.lib; {
     description = "A media player for KDE based on Nepomuk and Phonon";
@@ -17,7 +18,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = http://bangarangkde.wordpress.com/;
     license = "GPLv3";
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ maintainers.phreedom maintainers.urkud ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/video/kdenlive/default.nix b/pkgs/applications/video/kdenlive/default.nix
index d8620eb33cdd..b518e9c7456a 100644
--- a/pkgs/applications/video/kdenlive/default.nix
+++ b/pkgs/applications/video/kdenlive/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, lib, cmake, qt4, perl, kdelibs, automoc4, phonon
 , mlt, gettext , qimageblitz, qjson, shared_mime_info, soprano
-, pkgconfig }:
+, pkgconfig, shared_desktop_ontologies }:
 
 stdenv.mkDerivation rec {
   name = "kdenlive-${version}";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = 
     [ cmake qt4 perl kdelibs automoc4 phonon mlt gettext qimageblitz
-      qjson shared_mime_info soprano pkgconfig 
+      qjson shared_mime_info soprano pkgconfig shared_desktop_ontologies
     ];
 
   meta = {
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index b33bcddbffb8..65357acf00fd 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   name = "vlc-${version}";
-  version = "2.0.1";
+  version = "2.0.3";
 
   src = fetchurl {
     url = "http://download.videolan.org/pub/videolan/vlc/${version}/${name}.tar.xz";
-    sha256 = "7f485725c17487a77d70844cbd9acf528360d65cd6ff79d206657920f4fcbf4b";
+    sha256 = "1lnjfpizgp8slj6i4fgk5wld6nfw08wfhkb1i1dvzbhmfigq1agv";
   };
 
   buildInputs =
diff --git a/pkgs/applications/virtualization/virt-manager/custom_runner.py b/pkgs/applications/virtualization/virt-manager/custom_runner.py
new file mode 100644
index 000000000000..5322c20dd329
--- /dev/null
+++ b/pkgs/applications/virtualization/virt-manager/custom_runner.py
@@ -0,0 +1,13 @@
+#!/usr/bin/python -t
+# this script was written to use /etc/nixos/nixpkgs/pkgs/development/python-modules/generic/wrap.sh
+# which already automates python executable wrapping by extending the PATH/pythonPath
+
+# from http://docs.python.org/library/subprocess.html
+# Warning Invoking the system shell with shell=True can be a security hazard if combined with untrusted input. See the warning under Frequently Used Arguments for details.
+
+from subprocess import Popen, PIPE, STDOUT
+
+cmd = 'PYTHON_EXECUTABLE_PATH -t THE_CUSTOM_PATH/share/virt-manager/THE_CUSTOM_PROGRAM.py'
+p = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True)
+output = p.stdout.read()
+print output
diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix
index c41db3f58c56..79ea777eeadd 100644
--- a/pkgs/applications/virtualization/virt-manager/default.nix
+++ b/pkgs/applications/virtualization/virt-manager/default.nix
@@ -1,70 +1,85 @@
-x@{builderDefsPackage
-  , gnome, gtk, glib, libxml2, libvirt, gtkvnc, cyrus_sasl, libtasn1, makeWrapper 
-  , intltool, python, pygtk, libxml2Python
-  # virtinst is required, but it breaks when building
-  , ...}:
-builderDefsPackage
-(a :  
-let 
-  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ 
-    ["gnome"];
+{ stdenv, fetchurl, pythonPackages, intltool, libvirt, libxml2Python, curl, python, makeWrapper, virtinst, pyGtkGlade, pythonDBus, gnome_python, gtkvnc}:
 
-  buildInputs = (map (n: builtins.getAttr n x)
-    (builtins.attrNames (builtins.removeAttrs x helperArgNames)))
-    ++ [gnome.libglade intltool python libvirt];
-  sourceInfo = rec {
-    baseName="virt-manager";
+with stdenv.lib;
 
-    version = "0.9.1"; 
-    name = "virt-manager-${version}";
+let version = "0.9.1"; 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";
-    hash = "15e064167ba5ff84ce6fc8790081d61890430f2967f89886a84095a23e40094a";
-  };
-in
-rec {
-  src = a.fetchurl {
-    url = sourceInfo.url;
-    sha256 = sourceInfo.hash;
+    sha256 = "15e064167ba5ff84ce6fc8790081d61890430f2967f89886a84095a23e40094a";
   };
 
-  patchPhase = a.fullDepEntry '' 
-    substituteInPlace "src/virt-manager.in" --replace "exec /usr/bin/python" "exec ${python}/bin/python"
-    sed -e '/import libxml2/i import sys\
-    sys.path.append("${libxml2Python}/lib/${python.libPrefix}/site-packages")' \
-    -i src/virtManager/util.py
-    sed -e '/import libxml2/i import sys\
-    sys.path.append("${libxml2Python}/lib/${python.libPrefix}/site-packages")' \
-    -i src/virtManager/libvirtobject.py
-  '' ["minInit"];
+  pythonPath = with pythonPackages;
+    [ setuptools eventlet greenlet gflags netaddr sqlalchemy carrot routes
+      paste_deploy m2crypto ipy boto_1_9 twisted sqlalchemy_migrate
+      distutils_extra simplejson readline glance cheetah lockfile httplib2
+      # !!! should libvirt be a build-time dependency?  Note that
+      # libxml2Python is a dependency of libvirt.py. 
+      libvirt libxml2Python urlgrabber virtinst pyGtkGlade pythonDBus gnome_python gtkvnc
+    ];
+
+  buildInputs =
+    [ pythonPackages.python 
+      pythonPackages.wrapPython
+      pythonPackages.mox
+      pythonPackages.urlgrabber
+      intltool
+      pyGtkGlade
+      pythonDBus
+      gnome_python
+      gtkvnc
+    ] ++ pythonPath;
+
+  buildPhase = "make";
+  
+  buildNativeInputs = [ makeWrapper pythonPackages.wrapPython ];
 
-  inherit (sourceInfo) name version;
-  inherit buildInputs;
+  # patch the runner script in order to make wrapPythonPrograms work and run the program using a syscall
+  # example code: /etc/nixos/nixpkgs/pkgs/development/interpreters/spidermonkey/1.8.0-rc1.nix
+  customRunner = ./custom_runner.py;
 
-  /* doConfigure should be removed if not needed */
-  phaseNames = [ "doUnpack" "patchPhase" "doConfigure" "doMakeInstall" "installPhase" ];
+  # TODO
+  # virt-manager     -> import gtk.glade -> No module named glade --> fixed by removing 'pygtk' and by only using pyGtkGlade
+  #                  -> import gconf     -> ImportError: No module named gconf
+  #                        -> pfad um gtk-2.0 erweitern in virt-manger runner -> /nix/store/hnyxc9i4yz2mc42n44ms13mn8n486s5h-gnome-python-2.28.1/lib/python2.7/site-packages/gtk-2.0
+  #                  -> Error starting Virtual Machine Manager: Failed to contact configuration server; the most common cause is a missing or misconfigured D-Bus session bus daemon. See http://projects.gnome.org/gconf/ for information. (Details -  1: GetIOR failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.GConf was not provided by any .service files)
 
-  installPhase = a.fullDepEntry ''
-    wrapProgram $out/bin/virt-manager --set PYTHONPATH $PYTHONPATH
-  '' ["minInit"];
+#Traceback (most recent call last):
+#  File "/nix/store/y9rcdiv6686sqcv4r39p575s37jzc2cz-virt-manager-0.9.1/share/virt-manager/virt-manager.py", line 383, in <module>
+#    main()
+#  File "/nix/store/y9rcdiv6686sqcv4r39p575s37jzc2cz-virt-manager-0.9.1/share/virt-manager/virt-manager.py", line 315, in main
+#    config = virtManager.config.vmmConfig(appname, appversion, glade_dir)
+#  File "/nix/store/y9rcdiv6686sqcv4r39p575s37jzc2cz-virt-manager-0.9.1/share/virt-manager/virtManager/config.py", line 98, in __init__
+#    self.conf.add_dir(self.conf_dir, gconf.CLIENT_PRELOAD_NONE)
+#GError: Failed to contact configuration server; the most common cause is a missing or misconfigured D-Bus session bus daemon. See http://projects.gnome.org/gconf/ for information. (Details -  1: GetIOR failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.GConf was not provided by any .service files)
+# -> fixed by http://nixos.org/wiki/Solve_GConf_errors_when_running_GNOME_applications & a restart
+  # virt-manager-tui -> ImportError: No module named newt_syrup.dialogscreen
 
-  #NIX_CFLAGS_COMPILE = "-fno-stack-protector";
+  patchPhase = ''
+    cat ${customRunner} > src/virt-manager.in
+    substituteInPlace "src/virt-manager.in" --replace "THE_CUSTOM_PATH" "$out"
+    substituteInPlace "src/virt-manager.in" --replace "THE_CUSTOM_PROGRAM" "virt-manager"
+    substituteInPlace "src/virt-manager.in" --replace "PYTHON_EXECUTABLE_PATH" "${python}/bin/python"
+
+    cat ${customRunner} > src/virt-manager-tui.in
+    substituteInPlace "src/virt-manager-tui.in" --replace "THE_CUSTOM_PATH" "$out"
+    substituteInPlace "src/virt-manager-tui.in" --replace "THE_CUSTOM_PROGRAM" "virt-manager-tui"
+    substituteInPlace "src/virt-manager-tui.in" --replace "PYTHON_EXECUTABLE_PATH" "${python}/bin/python"
+  '';
+
+  # /etc/nixos/nixpkgs/pkgs/development/python-modules/generic/wrap.sh
+  installPhase = ''
+    make install
+    wrapPythonPrograms
+  '';
 
   meta = {
     homepage = http://virt-manager.org;
     description = "The 'Virtual Machine Manager' application (virt-manager for short package name) is a desktop user interface for managing virtual machines.";
-  
-    maintainers = with a.lib.maintainers;
-    [
-      qknight
-    ];
-    platforms = with a.lib.platforms;
-      linux;
-    license = a.lib.licenses.gpl2;
-  };
-  passthru = {
-    updateInfo = {
-      downloadPage = "http://virt-manager.org/download.html";
-    };
+    license = "GPLv2";
+    maintainers = with stdenv.lib.maintainers; [qknight];
   };
-}) x
-
+}
diff --git a/pkgs/applications/virtualization/virtinst/default.nix b/pkgs/applications/virtualization/virtinst/default.nix
index 0c574db23911..2bb2adaa00ac 100644
--- a/pkgs/applications/virtualization/virtinst/default.nix
+++ b/pkgs/applications/virtualization/virtinst/default.nix
@@ -30,19 +30,11 @@ stdenv.mkDerivation rec {
 
   buildPhase = "python setup.py build";
 
-  PYTHON_EGG_CACHE = "`pwd`/.egg-cache";
-
-#      substituteInPlace nova/api/ec2/cloud.py \
-#        --replace 'sh genrootca.sh' $out/libexec/nova/genrootca.sh
-#    '';
-
   installPhase =
     ''    
        python setup.py install --prefix="$out";
     '';
 
-  #checkPhase = "python setup.py test";
-
   meta = {
     homepage = http://virt-manager.org;
     license = "GPLv2+";
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 2736c603a48d..56387f9e5c40 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -8,21 +8,38 @@
 
 with stdenv.lib;
 
-let version = "4.1.18"; in
+let
 
-stdenv.mkDerivation {
-  name = "virtualbox-${version}-${kernel.version}";
+  version = "4.1.22";
+
+  forEachModule = action: ''
+    for mod in \
+      $sourcedir/out/linux.*/release/bin/src/vboxdrv \
+      $sourcedir/out/linux.*/release/bin/src/vboxpci \
+      $sourcedir/out/linux.*/release/bin/src/vboxnetadp \
+      $sourcedir/out/linux.*/release/bin/src/vboxnetflt
+    do
+      if [ "x$(basename "$mod")" != xvboxdrv -a ! -e "$mod/Module.symvers" ]
+      then
+        cp -v $sourcedir/out/linux.*/release/bin/src/vboxdrv/Module.symvers \
+              "$mod/Module.symvers"
+      fi
+      INSTALL_MOD_PATH="$out" INSTALL_MOD_DIR=misc \
+      make -C "$MODULES_BUILD_DIR" "M=$mod" DEPMOD=/do_not_use_depmod ${action}
+    done
+  '';
 
-  NIX_CFLAGS_COMPILE="-I${kernel}/lib/modules/${kernel.modDirVersion}/build/include/generated";
+in stdenv.mkDerivation {
+  name = "virtualbox-${version}-${kernel.version}";
 
   src = fetchurl {
     url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
-    sha256 = "e650e4fdc23581b9edc0e5d5705cc596c76796851ebf65ccda0edb8e413fa3b7";
+    sha256 = "7abb506203dd0d69b4b408fd999b5b9a479a9adce5f80e9b5569641c053dd153";
   };
 
   buildInputs =
     [ iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt4 libIDL SDL
-      libcap glib kernel python alsaLib curl pam xorriso makeself perl jdk
+      libcap glib kernel python alsaLib curl pam xorriso makeself perl
       pkgconfig which libXmu ]
     ++ optional javaBindings jdk
     ++ optional pythonBindings python;
@@ -34,18 +51,19 @@ stdenv.mkDerivation {
         -e 's@MKISOFS --version@MKISOFS -version@' \
         -e 's@PYTHONDIR=.*@PYTHONDIR=${if pythonBindings then python else ""}@' \
         -i configure
-    ls kBuild/bin/linux.x86/k* tools/linux.x86/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 
-    ls kBuild/bin/linux.amd64/k* tools/linux.amd64/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 
+    ls kBuild/bin/linux.x86/k* tools/linux.x86/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2
+    ls kBuild/bin/linux.amd64/k* tools/linux.amd64/bin/* | xargs -n 1 patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2
     find . -type f | xargs sed 's/depmod -a/true/' -i
     export USER=nix
     set +x
   '';
 
   configurePhase = ''
+    sourcedir="$(pwd)"
     ./configure --with-qt4-dir=${qt4} \
       ${optionalString (!javaBindings) "--disable-java"} \
       ${optionalString (!pythonBindings) "--disable-python"} \
-      --disable-pulse --disable-hardening \
+      --disable-pulse --disable-hardening --disable-kmods \
       --with-mkisofs=${xorriso}/bin/xorrisofs
     sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
         -i AutoConfig.kmk
@@ -55,7 +73,9 @@ stdenv.mkDerivation {
     cat >> AutoConfig.kmk << END_PATHS
     VBOX_PATH_APP_PRIVATE := $out
     VBOX_PATH_APP_DOCS := $out/doc
-    VBOX_JAVA_HOME := ${jdk}
+    ${optionalString javaBindings ''
+      VBOX_JAVA_HOME := ${jdk}
+    ''}
     END_PATHS
     echo "VBOX_WITH_DOCS :=" >> LocalConfig.kmk
     echo "VBOX_WITH_WARNINGS_AS_ERRORS :=" >> LocalConfig.kmk
@@ -63,51 +83,35 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  preBuild = ''
+  buildPhase = ''
     source env.sh
     kmk
-    cd out/linux.*/release/bin/src
-    export KERN_DIR=${kernel}/lib/modules/*/build
+    ${forEachModule "modules"}
   '';
 
-  postBuild = ''
-    cd ../../../../..
-  '';
-    
   installPhase = ''
     libexec=$out/libexec/virtualbox
-  
+
     # Install VirtualBox files
     cd out/linux.*/release/bin
     mkdir -p $libexec
     cp -av * $libexec
-    
-    # Install kernel module
-    cd src
-    kernelVersion=$(cd ${kernel}/lib/modules; ls)
-    export MODULE_DIR=$out/lib/modules/$kernelVersion/misc
-    
-    # Remove root ownership stuff, since this does not work in a chroot environment
-    for i in `find . -name Makefile`; do
-	sed -i -e "s|-o root||g" \
-               -e "s|-g root||g" $i
-    done
-    
+
     # Install kernel modules
-    make install
-    
+    ${forEachModule "modules_install"}
+
     # Create wrapper script
     mkdir -p $out/bin
     for file in VirtualBox VBoxManage VBoxSDL VBoxBalloonCtrl VBoxBFE VBoxHeadless; do
         ln -s "$libexec/$file" $out/bin/$file
     done
-    
+
     # Create and fix desktop item
     mkdir -p $out/share/applications
     sed -i -e "s|Icon=VBox|Icon=$libexec/VBox.png|" $libexec/virtualbox.desktop
     ln -sfv $libexec/virtualbox.desktop $out/share/applications
   '';
-  
+
   meta = {
     description = "PC emulator";
     homepage = http://www.virtualbox.org/;
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index ec77ca91910f..d903c44866c0 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, lib, patchelf, cdrkit, kernel, which, makeWrapper
 , libX11, libXt, libXext, libXmu, libXcomposite, libXfixes, libXrandr, libXcursor}:
 
-let version = "4.1.18"; in
+let version = "4.1.22"; in
 
 stdenv.mkDerivation {
   name = "VirtualBox-GuestAdditions-${version}";
   src = fetchurl {
     url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
-    sha256 = "1zsjh4q71ny10s2zaxnaw4w3bs961c21xv6dd6zpwhnbimlhlrqb";
+    sha256 = "5c7d9a4a31c8a926ba6dbae2b9704a561638e94ea0fc4f805a9231dd4f932d46";
   };
   KERN_DIR = "${kernel}/lib/modules/*/build";
   buildInputs = [ patchelf cdrkit makeWrapper ];
@@ -17,16 +17,16 @@ stdenv.mkDerivation {
     cp -r install/* $out
 
   '';
-  
+
   buildCommand = ''
     ${if stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" then ''
         isoinfo -J -i $src -x /VBoxLinuxAdditions.run > ./VBoxLinuxAdditions.run
         chmod 755 ./VBoxLinuxAdditions.run
-	./VBoxLinuxAdditions.run --noexec --keep
+        ./VBoxLinuxAdditions.run --noexec --keep
       ''
       else throw ("Architecture: "+stdenv.system+" not supported for VirtualBox guest additions")
     }
-    
+
     # Unpack files
     cd install
     ${if stdenv.system == "i686-linux" then ''
@@ -38,31 +38,31 @@ stdenv.mkDerivation {
       else throw ("Architecture: "+stdenv.system+" not supported for VirtualBox guest additions")
     }
 
-    
-    # Build kernel modules    
-    cd src        
+
+    # Build kernel modules
+    cd src
 
     for i in *
     do
-	cd $i
-	find . -type f | xargs sed 's/depmod -a/true/' -i
-	make
-	cd ..
+        cd $i
+        find . -type f | xargs sed 's/depmod -a/true/' -i
+        make
+        cd ..
     done
 
     cd ..
-    
+
     # Change the interpreter for various binaries
     for i in sbin/VBoxService bin/{VBoxClient,VBoxControl}
     do
         ${if stdenv.system == "i686-linux" then ''
           patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 $i
-	''
-	else if stdenv.system == "x86_64-linux" then ''
-	  patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $i
-	''
-	else throw ("Architecture: "+stdenv.system+" not supported for VirtualBox guest additions")
-	}
+        ''
+        else if stdenv.system == "x86_64-linux" then ''
+          patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $i
+        ''
+        else throw ("Architecture: "+stdenv.system+" not supported for VirtualBox guest additions")
+        }
     done
 
     # Change rpath for various binaries and libraries
@@ -72,11 +72,11 @@ stdenv.mkDerivation {
     do
         patchelf --set-rpath $out/lib $i
     done
-    
+
     # Remove references to /usr from various scripts and files
     sed -i -e "s|/usr/bin|$out/bin|" share/VBoxGuestAdditions/vboxclient.desktop
     sed -i -e "s|/usr/bin|$out/bin|" bin/VBoxClient-all
-    
+
     # Install binaries
     mkdir -p $out/sbin
     install -m 755 sbin/VBoxService $out/sbin
@@ -94,7 +94,7 @@ stdenv.mkDerivation {
     cp -v lib/VBoxOGL*.so $out/lib
     mkdir -p $out/lib/dri
     ln -s $out/lib/VBoxOGL.so $out/lib/dri/vboxvideo_dri.so
-    
+
     # Install desktop file
     mkdir -p $out/share/autostart
     cp -v share/VBoxGuestAdditions/vboxclient.desktop $out/share/autostart
@@ -103,23 +103,23 @@ stdenv.mkDerivation {
     mkdir -p $out/lib/xorg/modules/{drivers,input}
     install -m 644 lib/VBoxGuestAdditions/vboxvideo_drv_19.so $out/lib/xorg/modules/drivers/vboxvideo_drv.so
     # There doesn't appear to be a vboxmouse driver for Xorg 1.9. Was there ever?
-#    install -m 644 lib/VBoxGuestAdditions/vboxmouse_drv_19.so $out/lib/xorg/modules/input/vboxmouse_drv.so
+    #install -m 644 lib/VBoxGuestAdditions/vboxmouse_drv_19.so $out/lib/xorg/modules/input/vboxmouse_drv.so
 
     # Install kernel modules
     cd src
-    
+
     for i in *
     do
         cd $i
-	kernelVersion=$(cd ${kernel}/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"
-	make install
-	cd ..
-    done    
-  '';
-  
+        kernelVersion=$(cd ${kernel}/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"
+        make install
+        cd ..
+    done
+  ''; # */
+
   meta = {
     description = "Guest additions for VirtualBox";
     longDescriptions = ''
@@ -129,5 +129,6 @@ stdenv.mkDerivation {
     '';
     license = "GPL";
     maintainers = [ lib.maintainers.sander ];
+    platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/virtualization/xen/default.nix b/pkgs/applications/virtualization/xen/default.nix
index d898daad2a77..3cb16a6b4425 100644
--- a/pkgs/applications/virtualization/xen/default.nix
+++ b/pkgs/applications/virtualization/xen/default.nix
@@ -6,7 +6,7 @@ with stdenv.lib;
 
 let
 
-  version = "4.1.2";
+  version = "4.0.3";
 
   libDir = if stdenv.is64bit then "lib64" else "lib";
 
@@ -30,24 +30,23 @@ let
       }
     ];
 
-  ipxeSrc =
-      { url = http://xenbits.xensource.com/xen-extfiles/ipxe-git-v1.0.0.tar.gz;
-        sha256 = "d3128bfda9a1542049c278755f85bbcbb8441da7bfd702d511ce237fcf86a723";
-      };
-in
+in 
 
 stdenv.mkDerivation {
   name = "xen-${version}";
 
   src = fetchurl {
     url = "http://bits.xensource.com/oss-xen/release/${version}/xen-${version}.tar.gz";
-    sha256 = "7d9c93057cf480d3f1efa792b19285a84fa3c06060ea5c5c453be00887389b0d";
+    sha256 = "0p4i7mm8cdsr8i9z3dij6nriyvz6la2rhm7jkyk2n8h62nnxi1b5";
   };
 
   patches =
     [ # Xen looks for headers in /usr/include and for libraries using
       # ldconfig.  Don't do that.
       ./has-header.patch
+
+      # GCC 4.5 compatibility.
+      ./gcc-4.5.patch
     ];
 
   buildInputs =
@@ -80,6 +79,9 @@ stdenv.mkDerivation {
       substituteInPlace tools/xenstat/Makefile \
         --replace /usr/include/curses.h ${ncurses}/include/curses.h
 
+      substituteInPlace tools/ioemu-qemu-xen/xen-hooks.mak \
+        --replace /usr/include/pci ${pciutils}/include/pci
+
       # Work around a bug in our GCC wrapper: `gcc -MF foo -v' doesn't
       # print the GCC version number properly.
       substituteInPlace xen/Makefile \
@@ -103,18 +105,12 @@ stdenv.mkDerivation {
         --replace 'XENDOM_CONFIG=/etc/sysconfig/xendomains' "" \
         --replace /bin/ls ls
 
-      grep -rl /etc/xen * | xargs sed -i 's|/etc/xen|$out/etc/xen|g'
-
       # Xen's stubdoms need various sources that it usually fetches at
       # build time using wget.  We can't have that.
       ${flip concatMapStrings stubdomSrcs (x: let src = fetchurl x; in ''
         cp ${src} stubdom/${src.name}
       '')}
 
-      ${let src = fetchurl ipxeSrc; in ''
-        cp ${src} tools/firmware/etherboot/ipxe.tar.gz
-      ''}
-
       # Hack to get `gcc -m32' to work without having 32-bit Glibc headers.
       mkdir -p tools/include/gnu
       touch tools/include/gnu/stubs-32.h
diff --git a/pkgs/applications/virtualization/xen/gcc-4.5.patch b/pkgs/applications/virtualization/xen/gcc-4.5.patch
new file mode 100644
index 000000000000..a8412d69fd3f
--- /dev/null
+++ b/pkgs/applications/virtualization/xen/gcc-4.5.patch
@@ -0,0 +1,39 @@
+http://lists.xensource.com/archives/html/xen-devel/2010-07/msg01276.html
+
+diff -ru -x '*~' xen-4.0.1-orig//extras/mini-os/arch/x86/mm.c xen-4.0.1//extras/mini-os/arch/x86/mm.c
+--- xen-4.0.1-orig//extras/mini-os/arch/x86/mm.c	2010-08-25 12:22:07.000000000 +0200
++++ xen-4.0.1//extras/mini-os/arch/x86/mm.c	2010-12-22 20:10:05.000000000 +0100
+@@ -281,7 +281,7 @@
+ /*
+  * Mark portion of the address space read only.
+  */
+-extern void shared_info;
++extern char shared_info[PAGE_SIZE]; 
+ static void set_readonly(void *text, void *etext)
+ {
+     unsigned long start_address =
+diff -ru -x '*~' xen-4.0.1-orig//extras/mini-os/minios.mk xen-4.0.1//extras/mini-os/minios.mk
+--- xen-4.0.1-orig//extras/mini-os/minios.mk	2010-08-25 12:22:07.000000000 +0200
++++ xen-4.0.1//extras/mini-os/minios.mk	2010-12-22 20:03:11.000000000 +0100
+@@ -10,6 +10,7 @@
+ DEF_CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,)
+ DEF_CFLAGS += $(call cc-option,$(CC),-fgnu89-inline)
+ DEF_CFLAGS += -Wstrict-prototypes -Wnested-externs -Wpointer-arith -Winline
++DEF_CFLAGS += -Wno-uninitialized
+ DEF_CPPFLAGS += -D__XEN_INTERFACE_VERSION__=$(XEN_INTERFACE_VERSION)
+ 
+ DEF_ASFLAGS += -D__ASSEMBLY__
+diff -ru -x '*~' xen-4.0.1-orig//extras/mini-os/netfront.c xen-4.0.1//extras/mini-os/netfront.c
+--- xen-4.0.1-orig//extras/mini-os/netfront.c	2010-08-25 12:22:07.000000000 +0200
++++ xen-4.0.1//extras/mini-os/netfront.c	2010-12-22 19:56:59.000000000 +0100
+@@ -25,8 +25,8 @@
+ 
+ 
+ 
+-#define NET_TX_RING_SIZE __RING_SIZE((struct netif_tx_sring *)0, PAGE_SIZE)
+-#define NET_RX_RING_SIZE __RING_SIZE((struct netif_rx_sring *)0, PAGE_SIZE)
++#define NET_TX_RING_SIZE __CONST_RING_SIZE(netif_tx, PAGE_SIZE)
++#define NET_RX_RING_SIZE __CONST_RING_SIZE(netif_rx, PAGE_SIZE)
+ #define GRANT_INVALID_REF 0
+ 
+ 
diff --git a/pkgs/applications/window-managers/awesome/cmake284.patch b/pkgs/applications/window-managers/awesome/cmake284.patch
deleted file mode 100644
index 4af70227805f..000000000000
--- a/pkgs/applications/window-managers/awesome/cmake284.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 1aedd853fcaeeafadd24512f84e6e269f5db0b4e Mon Sep 17 00:00:00 2001
-From: Thomas Moschny <thomas.moschny@gmx.de>
-Date: Mon, 21 Feb 2011 17:58:04 +0100
-Subject: [PATCH] Normalize icon path names (fixes #869).
-
-The elements in ${icon_sources}, as returned by file(GLOB ...) contain
-double slashes, could be a bug in cmake. This causes building with
-cmake 2.8.4 to fail, due to dependency problems lateron.
-
-This patch works around the issue by normalizing all path names in
-${icon_sources} while appending them to ${ALL_ICONS}, thereby removing
-the double slashes.
----
- CMakeLists.txt |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 64be9b9..472bec2 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -244,14 +244,15 @@ endif()
- 
- # {{{ Theme icons
- file(GLOB icon_sources RELATIVE ${SOURCE_DIR} ${SOURCE_DIR}/themes/*/titlebar/*.png)
--set(ALL_ICONS ${icon_sources})
- 
- foreach(icon ${icon_sources})
-     # Copy all icons to the build dir to simplify the following code.
-     # Source paths are interpreted relative to ${SOURCE_DIR}, target paths
-     # relative to ${BUILD_DIR}.
-     get_filename_component(icon_path ${icon} PATH)
-+    get_filename_component(icon_name ${icon} NAME)
-     file(COPY ${icon} DESTINATION ${icon_path})
-+    set(ALL_ICONS ${ALL_ICONS} "${icon_path}/${icon_name}")
- endforeach()
- 
- macro(a_icon_convert match replacement input)
--- 
-1.7.3.4
-
diff --git a/pkgs/applications/window-managers/awesome/default.nix b/pkgs/applications/window-managers/awesome/default.nix
index 960b0bfe31be..61f2145ff33c 100644
--- a/pkgs/applications/window-managers/awesome/default.nix
+++ b/pkgs/applications/window-managers/awesome/default.nix
@@ -39,16 +39,6 @@ stdenv.mkDerivation rec {
       --replace "set(AWE_MAN_LANGS it es fr de ru)" \
                 "set(AWE_MAN_LANGS it es fr de)"
   '';
-
-  # XXX: maybe not needed anymore
-  # Somehow libev does not get into the rpath, although it should.
-  # Something may be wrong in the gcc wrapper.
-  preBuild = ''
-    export NIX_LDFLAGS_BEFORE="-lev";
-  '';
-
-  # Cmake fails strangely at finding lua. Looks to me like a cmake 2.8 error.
-  cmakeFlags = [ "-DLUA_LIBRARIES=${lua}/lib/liblua.a" ];
  
   meta = {
     homepage = http://awesome.naquadah.org/;
diff --git a/pkgs/applications/window-managers/trayer/default.nix b/pkgs/applications/window-managers/trayer/default.nix
index ce66f7d9bcc0..b8ecf81f7fc7 100644
--- a/pkgs/applications/window-managers/trayer/default.nix
+++ b/pkgs/applications/window-managers/trayer/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, pkgconfig, gdk_pixbuf, gtk, libXmu }:
 
 stdenv.mkDerivation rec {
-  name = "trayer-1.1.3";
+  name = "trayer-1.1.5";
 
   buildInputs = [ pkgconfig gdk_pixbuf gtk libXmu ];
 
   src = fetchurl {
           url = "https://github.com/sargon/trayer-srg/tarball/${name}";
           name = "${name}.tar.gz";
-          sha256 = "03be5ea47278ecdb6ffb1d3b5115a855a6eccd6aa6702b84e89ee047ddd76558";
+          sha256 = "98804500188c0bb99c7389ebea4b2e4dfffa2f3d06dc97e633b4934cf7c29757";
         };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/applications/window-managers/xmonad/default.nix b/pkgs/applications/window-managers/xmonad/default.nix
index a490bc8018dd..fd215986fa30 100644
--- a/pkgs/applications/window-managers/xmonad/default.nix
+++ b/pkgs/applications/window-managers/xmonad/default.nix
@@ -14,7 +14,6 @@ cabal.mkDerivation (self: {
     platforms = self.ghc.meta.platforms;
     maintainers = [
       self.stdenv.lib.maintainers.andres
-      self.stdenv.lib.maintainers.simons
     ];
   };
 
diff --git a/pkgs/applications/window-managers/xmonad/xmonad-extras.nix b/pkgs/applications/window-managers/xmonad/xmonad-extras.nix
index 42ffeae6f9c2..eefc865b537c 100644
--- a/pkgs/applications/window-managers/xmonad/xmonad-extras.nix
+++ b/pkgs/applications/window-managers/xmonad/xmonad-extras.nix
@@ -10,7 +10,10 @@ cabal.mkDerivation (self: {
     hint libmpd mtl network parsec random regexPosix split X11 xmonad
     xmonadContrib
   ];
-  configureFlags = "-f-with_hlist";
+  patchPhase = ''
+    sed -i xmonad-extras.cabal -e 's|split .*|split|'
+  '';
+  configureFlags = "-f-with_hlist -fwith_split -fwith_parsec";
   meta = {
     homepage = "http://projects.haskell.org/xmonad-extras";
     description = "Third party extensions for xmonad with wacky dependencies";
diff --git a/pkgs/build-support/buildenv/builder.pl b/pkgs/build-support/buildenv/builder.pl
index 71502c9f6683..08331b178f4f 100755
--- a/pkgs/build-support/buildenv/builder.pl
+++ b/pkgs/build-support/buildenv/builder.pl
@@ -66,7 +66,7 @@ sub findFiles {
 
     unless (-d $target && ($oldTarget eq "" || -d $oldTarget)) {
         if ($ignoreCollisions) {
-            warn "collision between `$target' and `$oldTarget'";
+            warn "collision between `$target' and `$oldTarget'" if $ignoreCollisions == 1;
             return;
         } else {
             die "collision between `$target' and `$oldTarget'";
@@ -122,7 +122,7 @@ while (scalar(keys %postponed) > 0) {
     my @pkgDirs = keys %postponed;
     %postponed = ();
     foreach my $pkgDir (sort @pkgDirs) {
-        addPkg($pkgDir, 1);
+        addPkg($pkgDir, 2);
     }
 }
 
diff --git a/pkgs/build-support/cabal/default.nix b/pkgs/build-support/cabal/default.nix
index 8ae8c06d5132..42392aff60c4 100644
--- a/pkgs/build-support/cabal/default.nix
+++ b/pkgs/build-support/cabal/default.nix
@@ -1,6 +1,6 @@
 # generic builder for Cabal packages
 
-{stdenv, fetchurl, lib, pkgconfig, ghc, Cabal, enableLibraryProfiling ? false} :
+{ stdenv, fetchurl, lib, pkgconfig, ghc, Cabal, jailbreakCabal, enableLibraryProfiling ? false }:
 {
   mkDerivation =
     args : # arguments for the individual package, can modify the defaults
@@ -86,7 +86,8 @@
             configurePhase = ''
               eval "$preConfigure"
 
-              for i in Setup.hs Setup.lhs; do
+              ${lib.optionalString (lib.attrByPath ["jailbreak"] false self) "${jailbreakCabal}/bin/jailbreak-cabal ${self.pname}.cabal && "
+              }for i in Setup.hs Setup.lhs; do
                 test -f $i && ghc --make $i
               done
 
diff --git a/pkgs/build-support/fetchhg/default.nix b/pkgs/build-support/fetchhg/default.nix
index bc27516f46d5..537867f215ba 100644
--- a/pkgs/build-support/fetchhg/default.nix
+++ b/pkgs/build-support/fetchhg/default.nix
@@ -4,7 +4,7 @@
 stdenv.mkDerivation {
   name = "hg-archive" + (if (name != null) then "-${name}" else "");
   builder = ./builder.sh;
-  buildInputs = [mercurial nix];
+  buildInputs = [mercurial];
 
   # Nix <= 0.7 compatibility.
   id = md5;
diff --git a/pkgs/build-support/fetchurl/default.nix b/pkgs/build-support/fetchurl/default.nix
index ec3d45e652e8..cc59dd7fab1e 100644
--- a/pkgs/build-support/fetchurl/default.nix
+++ b/pkgs/build-support/fetchurl/default.nix
@@ -22,6 +22,21 @@ let
     then builtins.attrNames mirrors
     else [] /* backwards compatibility */;
 
+  impureEnvVars = [
+    # We borrow these environment variables from the caller to allow
+    # easy proxy configuration.  This is impure, but a fixed-output
+    # derivation like fetchurl is allowed to do so since its result is
+    # by definition pure.
+    "http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
+
+    # This variable allows the user to pass additional options to curl
+    "NIX_CURL_FLAGS"
+
+    # This variable allows the user to override hashedMirrors from the
+    # command-line.
+    "NIX_HASHED_MIRRORS"
+  ] ++ (map (site: "NIX_MIRRORS_${site}") sites);
+
 in
       
 { # URL to fetch.
@@ -83,23 +98,8 @@ stdenv.mkDerivation {
       if sha256 != "" then "sha256" else if sha1 != "" then "sha1" else "md5";
   outputHash = if outputHash != "" then outputHash else
       if sha256 != "" then sha256 else if sha1 != "" then sha1 else md5;
-  
-  impureEnvVars = [
-    # We borrow these environment variables from the caller to allow
-    # easy proxy configuration.  This is impure, but a fixed-output
-    # derivation like fetchurl is allowed to do so since its result is
-    # by definition pure.
-    "http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
-
-    # This variable allows the user to pass additional options to curl
-    "NIX_CURL_FLAGS"
-
-    # This variable allows the user to override hashedMirrors from the
-    # command-line.
-    "NIX_HASHED_MIRRORS"
-  ] ++ (map (site: "NIX_MIRRORS_${site}") sites);
 
-  inherit showURLs mirrorsFile;
+  inherit showURLs mirrorsFile impureEnvVars;
 
   # Doing the download on a remote machine just duplicates network
   # traffic, so don't do that.
diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index 0491e4994b6d..dd81692b5f2d 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -24,9 +24,6 @@ rec {
 
   # GNU (http://www.gnu.org/prep/ftp.html).
   gnu = [
-    # This one is the master repository, and thus it's always up-to-date.
-    http://ftp.gnu.org/pub/gnu/
-
     # This one redirects to a (supposedly) nearby and (supposedly) up-to-date
     # mirror.
     http://ftpmirror.gnu.org/
@@ -37,6 +34,9 @@ rec {
     ftp://ftp.cs.tu-berlin.de/pub/gnu/
     ftp://ftp.chg.ru/pub/gnu/
     ftp://ftp.funet.fi/pub/mirrors/ftp.gnu.org/gnu/
+
+    # This one is the master repository, and thus it's always up-to-date.
+    http://ftp.gnu.org/pub/gnu/
   ];
 
   # GCC.
diff --git a/pkgs/build-support/gcc-wrapper/buildergo.sh b/pkgs/build-support/gcc-wrapper/buildergo.sh
new file mode 100644
index 000000000000..cb6bfd7f0517
--- /dev/null
+++ b/pkgs/build-support/gcc-wrapper/buildergo.sh
@@ -0,0 +1,194 @@
+source $stdenv/setup
+
+
+mkdir -p $out/bin
+mkdir -p $out/nix-support
+
+
+if test -z "$nativeLibc"; then
+    dynamicLinker="$libc/lib/$dynamicLinker"
+    echo $dynamicLinker > $out/nix-support/dynamic-linker
+
+    if test -e $libc/lib/32/ld-linux.so.2; then
+        echo $libc/lib/32/ld-linux.so.2 > $out/nix-support/dynamic-linker-m32
+    fi
+
+    # The "-B$libc/lib/" flag is a quick hack to force gcc to link
+    # against the crt1.o from our own glibc, rather than the one in
+    # /usr/lib.  (This is only an issue when using an `impure'
+    # compiler/linker, i.e., one that searches /usr/lib and so on.)
+    #
+    # Unfortunately, setting -B appears to override the default search
+    # path. Thus, the gcc-specific "../includes-fixed" directory is
+    # now longer searched and glibc's <limits.h> header fails to
+    # compile, because it uses "#include_next <limits.h>" to find the
+    # limits.h file in ../includes-fixed. To remedy the problem,
+    # another -idirafter is necessary to add that directory again.
+    echo "-B$libc/lib/ -idirafter $libc/include -idirafter $gcc/lib/gcc/*/*/include-fixed" > $out/nix-support/libc-cflags
+
+    echo "-L$libc/lib" > $out/nix-support/libc-ldflags
+
+    # The dynamic linker is passed in `ldflagsBefore' to allow
+    # explicit overrides of the dynamic linker by callers to gcc/ld
+    # (the *last* value counts, so ours should come first).
+    echo "-dynamic-linker $dynamicLinker" > $out/nix-support/libc-ldflags-before
+fi
+
+if test -n "$nativeTools"; then
+    gccPath="$nativePrefix/bin"
+    ldPath="$nativePrefix/bin"
+else
+    if test -e "$gcc/lib64"; then
+        gccLDFlags="$gccLDFlags -L$gcc/lib64"
+    fi
+    gccLDFlags="$gccLDFlags -L$gcc/lib"
+    if [ -n "$langVhdl" ]; then
+        gccLDFlags="$gccLDFlags -L$zlib/lib"
+    fi
+    echo "$gccLDFlags" > $out/nix-support/gcc-ldflags
+
+    # GCC shows $gcc/lib in `gcc -print-search-dirs', but not
+    # $gcc/lib64 (even though it does actually search there...)..
+    # This confuses libtool.  So add it to the compiler tool search
+    # path explicitly.
+    if test -e "$gcc/lib64"; then
+        gccCFlags="$gccCFlags -B$gcc/lib64"
+    fi
+
+    # Find the gcc libraries path (may work only without multilib)
+    if [ -n "$langAda" ]; then
+        basePath=`echo $gcc/lib/*/*/*`
+        gccCFlags="$gccCFlags -B$basePath -I$basePath/adainclude"
+
+        gnatCFlags="-aI$basePath/adainclude -aO$basePath/adalib"
+        echo "$gnatCFlags" > $out/nix-support/gnat-cflags
+    fi
+    echo "$gccCFlags" > $out/nix-support/gcc-cflags
+    
+    gccPath="$gcc/bin"
+    ldPath="$binutils/bin"
+fi
+
+
+doSubstitute() {
+    local src=$1
+    local dst=$2
+    # Can't use substitute() here, because replace may not have been
+    # built yet (in the bootstrap).
+    sed \
+        -e "s^@out@^$out^g" \
+        -e "s^@shell@^$shell^g" \
+        -e "s^@gcc@^$gcc^g" \
+        -e "s^@gccProg@^$gccProg^g" \
+        -e "s^@gnatProg@^$gnatProg^g" \
+        -e "s^@gnatlinkProg@^$gnatlinkProg^g" \
+        -e "s^@binutils@^$binutils^g" \
+        -e "s^@coreutils@^$coreutils^g" \
+        -e "s^@libc@^$libc^g" \
+        -e "s^@ld@^$ldPath/ld^g" \
+        < "$src" > "$dst" 
+}
+
+
+# Make wrapper scripts around gcc, g++, and gfortran.  Also make symlinks
+# cc, c++, and f77.
+mkGccWrapper() {
+    local dst=$1
+    local src=$2
+
+    if ! test -f "$src"; then
+        echo "$src does not exist (skipping)"
+        return 1
+    fi
+
+    gccProg="$src"
+    doSubstitute "$gccWrapper" "$dst"
+    chmod +x "$dst"
+}
+
+mkGnatWrapper() {
+    local dst=$1
+    local src=$2
+
+    if ! test -f "$src"; then
+        echo "$src does not exist (skipping)"
+        return 1
+    fi
+
+    gnatProg="$src"
+    doSubstitute "$gnatWrapper" "$dst"
+    chmod +x "$dst"
+}
+
+mkGnatLinkWrapper() {
+    local dst=$1
+    local src=$2
+
+    if ! test -f "$src"; then
+        echo "$src does not exist (skipping)"
+        return 1
+    fi
+
+    gnatlinkProg="$src"
+    doSubstitute "$gnatlinkWrapper" "$dst"
+    chmod +x "$dst"
+}
+
+if mkGccWrapper $out/bin/gcc $gccPath/gcc
+then
+    ln -sv gcc $out/bin/cc
+fi
+
+if mkGccWrapper $out/bin/g++ $gccPath/g++
+then
+    ln -sv g++ $out/bin/c++
+fi
+
+if mkGccWrapper $out/bin/gfortran $gccPath/gfortran
+then
+    ln -sv gfortran $out/bin/g77
+    ln -sv gfortran $out/bin/f77
+fi
+
+mkGccWrapper $out/bin/gcj $gccPath/gcj || true
+
+mkGccWrapper $out/bin/gccgo $gccPath/gccgo || true
+
+mkGccWrapper $out/bin/gnatgcc $gccPath/gnatgcc || true
+mkGnatWrapper $out/bin/gnatmake $gccPath/gnatmake || true
+mkGnatWrapper $out/bin/gnatbind $gccPath/gnatbind || true
+mkGnatLinkWrapper $out/bin/gnatlink $gccPath/gnatlink || true
+
+if [ -f $gccPath/ghdl ]; then
+    ln -sf $gccPath/ghdl $out/bin/ghdl
+fi
+
+# Create a symlink to as (the assembler).  This is useful when a
+# gcc-wrapper is installed in a user environment, as it ensures that
+# the right assembler is called.
+ln -s $ldPath/as $out/bin/as
+
+
+# Make a wrapper around the linker.
+doSubstitute "$ldWrapper" "$out/bin/ld"
+chmod +x "$out/bin/ld"
+
+
+# Emit a setup hook.  Also store the path to the original GCC and
+# Glibc.
+test -n "$gcc" && echo $gcc > $out/nix-support/orig-gcc
+test -n "$libc" && echo $libc > $out/nix-support/orig-libc
+
+doSubstitute "$addFlags" "$out/nix-support/add-flags.sh"
+
+doSubstitute "$setupHook" "$out/nix-support/setup-hook"
+
+cp -p $utils $out/nix-support/utils.sh
+
+
+# Propagate the wrapped gcc so that if you install the wrapper, you get
+# tools like gcov, the manpages, etc. as well (including for binutils
+# and Glibc).
+if test -z "$nativeTools"; then
+    echo $gcc $binutils $libc > $out/nix-support/propagated-user-env-packages
+fi
diff --git a/pkgs/build-support/gcc-wrapper/default.nix b/pkgs/build-support/gcc-wrapper/default.nix
index d3fe5a0569f9..5e50a5c7dfb5 100644
--- a/pkgs/build-support/gcc-wrapper/default.nix
+++ b/pkgs/build-support/gcc-wrapper/default.nix
@@ -21,10 +21,11 @@ let
 
   gccVersion = (builtins.parseDrvName gcc.name).version;
   gccName = (builtins.parseDrvName gcc.name).name;
-  
+
+  langGo = if nativeTools then false else gcc ? langGo && gcc.langGo;
 in
 
-stdenv.mkDerivation {
+stdenv.mkDerivation ({
   name =
     (if name != "" then name else gccName + "-wrapper") +
     (if gcc != null && gccVersion != "" then "-" + gccVersion else "");
@@ -90,3 +91,9 @@ stdenv.mkDerivation {
        abort "don't know the name of the dynamic linker for this platform")
     else "";
 }
+#  This go wrapper should be reworked in stdenv-updates.
+// (if langGo then
+{
+  inherit langGo;
+  builder = ./buildergo.sh;
+} else {}))
diff --git a/pkgs/build-support/release/ant-build.nix b/pkgs/build-support/release/ant-build.nix
index fe15f93a8fe2..0cabdf2f7e79 100644
--- a/pkgs/build-support/release/ant-build.nix
+++ b/pkgs/build-support/release/ant-build.nix
@@ -8,8 +8,8 @@
 , antProperties ? []
 , antBuildInputs ? []
 , buildfile ? "build.xml"
-, ant ? pkgs.ant
-, jre ? pkgs.jre
+, ant ? pkgs.apacheAntOpenJDK
+, jre ? pkgs.openjdk
 , hydraAntLogger ? pkgs.hydraAntLogger
 , ... } @ args:
 
@@ -100,15 +100,10 @@ stdenv.mkDerivation (
     postHook = ''
       mkdir -p $out/nix-support
       echo "$system" > $out/nix-support/system
+      . ${./functions.sh}
 
-      # If `src' is the result of a call to `makeSourceTarball', then it
-      # has a subdirectory containing the actual tarball(s).  If there are
-      # multiple tarballs, just pick the first one.
       origSrc=$src
-      if test -d $src/tarballs; then
-          src=$(ls $src/tarballs/*.tar.bz2 $src/tarballs/*.tar.gz | sort | head -1)
-      fi
-
+      src=$(findTarballs $src | head -1)
     ''; 
   }
 )
diff --git a/pkgs/build-support/release/binary-tarball.nix b/pkgs/build-support/release/binary-tarball.nix
index 6901c9f5555f..41fab231ee34 100644
--- a/pkgs/build-support/release/binary-tarball.nix
+++ b/pkgs/build-support/release/binary-tarball.nix
@@ -35,14 +35,10 @@ stdenv.mkDerivation (
     postHook = ''
       mkdir -p $out/nix-support
       echo "$system" > $out/nix-support/system
+      . ${./functions.sh}
 
-      # If `src' is the result of a call to `makeSourceTarball', then it
-      # has a subdirectory containing the actual tarball(s).  If there are
-      # multiple tarballs, just pick the first one.
       origSrc=$src
-      if test -d $src/tarballs; then
-          src=$(ls $src/tarballs/*.tar.bz2 $src/tarballs/*.tar.gz | sort | head -1)
-      fi
+      src=$(findTarballs $src | head -1)
 
       if test -e $origSrc/nix-support/hydra-release-name; then
           releaseName=$(cat $origSrc/nix-support/hydra-release-name)
diff --git a/pkgs/build-support/release/debian-build.nix b/pkgs/build-support/release/debian-build.nix
index 0095a2ff8818..feb15267f592 100644
--- a/pkgs/build-support/release/debian-build.nix
+++ b/pkgs/build-support/release/debian-build.nix
@@ -30,17 +30,10 @@ vmTools.runInLinuxImage (stdenv.mkDerivation (
 
     # !!! cut&paste from rpm-build.nix
     postHook = ''
-      mkdir -p $out/nix-support
-      cat "$diskImage"/nix-support/full-name > $out/nix-support/full-name
-
-      # If `src' is the result of a call to `makeSourceTarball', then it
-      # has a subdirectory containing the actual tarball(s).  If there are
-      # multiple tarballs, just pick the first one.
-      echo $src
-      if test -d $src/tarballs; then
-          src=$(ls $src/tarballs/*.tar.bz2 $src/tarballs/*.tar.gz | sort | head -1)
-      fi
-    ''; # */
+      . ${./functions.sh}
+      propagateImageName
+      src=$(findTarballs $src | head -1) # Find a tarball.
+    '';
 
     installExtraDebsPhase = ''
       for i in $extraDebs; do
diff --git a/pkgs/build-support/release/functions.sh b/pkgs/build-support/release/functions.sh
new file mode 100644
index 000000000000..9f2d03519c8c
--- /dev/null
+++ b/pkgs/build-support/release/functions.sh
@@ -0,0 +1,14 @@
+findTarballs() {
+    local suffix
+    test -d "$1/tarballs/" && {
+        for suffix in tar.gz tgz tar.bz2 tbz2 tar.xz tar.lzma; do
+            ls $1/tarballs/*.$suffix 2> /dev/null
+        done | sort
+    }
+    echo "$1"
+}
+
+propagateImageName() {
+    ensureDir $out/nix-support
+    cat "$diskImage"/nix-support/full-name > $out/nix-support/full-name
+}
diff --git a/pkgs/build-support/release/nix-build.nix b/pkgs/build-support/release/nix-build.nix
index 8abbca978750..336563ae285f 100644
--- a/pkgs/build-support/release/nix-build.nix
+++ b/pkgs/build-support/release/nix-build.nix
@@ -58,13 +58,9 @@ stdenv.mkDerivation (
     name = name + (if src ? version then "-" + src.version else "");
   
     postHook = ''
-      # If `src' is the result of a call to `makeSourceTarball', then it
-      # has a subdirectory containing the actual tarball(s).  If there are
-      # multiple tarballs, just pick the first one.
+      . ${./functions.sh}
       origSrc=$src
-      if test -d $src/tarballs; then
-          src=$(ls $src/tarballs/*.tar.bz2 $src/tarballs/*.tar.gz $src/tarballs/*.tar.xz | sort | head -1)
-      fi
+      src=$(findTarballs $src | head -1)
 
       # Set GCC flags for coverage analysis, if desired.
       if test -n "${toString doCoverageAnalysis}"; then
diff --git a/pkgs/build-support/release/rpm-build.nix b/pkgs/build-support/release/rpm-build.nix
index 9ec9ace07573..708b62302d57 100644
--- a/pkgs/build-support/release/rpm-build.nix
+++ b/pkgs/build-support/release/rpm-build.nix
@@ -14,16 +14,10 @@ vmTools.buildRPM (
     name = name + "-" + diskImage.name + (if src ? version then "-" + src.version else "");
 
     preBuild = ''
-      mkdir -p $out/nix-support
-      cat "$diskImage"/nix-support/full-name > $out/nix-support/full-name
-
-      # If `src' is the result of a call to `makeSourceTarball', then it
-      # has a subdirectory containing the actual tarball(s).  If there are
-      # multiple tarballs, just pick the first one.
-      if test -d $src/tarballs; then
-          src=$(ls $src/tarballs/*.tar.bz2 $src/tarballs/*.tar.gz | sort | head -1)
-      fi
-    ''; # */
+      . ${./functions.sh}
+      propagateImageName
+      src=$(findTarballs $src | head -1) # Pick the first tarball.
+    '';
 
     postInstall = ''
       declare -a rpms rpmNames
@@ -36,12 +30,12 @@ vmTools.buildRPM (
       done
 
       echo "installing ''${rpms[*]}..."
-      rpm -ip ''${rpms[*]} --excludepath /nix/store
+      rpm -Up ''${rpms[*]} --excludepath /nix/store
 
       eval "$postRPMInstall"
       
       echo "uninstalling ''${rpmNames[*]}..."
-      rpm -e ''${rpmNames[*]}
+      rpm -e ''${rpmNames[*]} --nodeps
 
       for i in $out/rpms/*/*.src.rpm; do
         echo "file srpm $i" >> $out/nix-support/hydra-build-products
diff --git a/pkgs/build-support/source-from-head-fun.nix b/pkgs/build-support/source-from-head-fun.nix
index 3281cec54440..c6d6cfcc95b6 100644
--- a/pkgs/build-support/source-from-head-fun.nix
+++ b/pkgs/build-support/source-from-head-fun.nix
@@ -9,8 +9,8 @@
    The documentation is availible at http://github.com/MarcWeber/nix-repository-manager/raw/master/README
 
 */
-{ getConfig }:
+{ config }:
   localTarName: publishedSrcSnapshot:
-  if getConfig ["sourceFromHead" "useLocalRepos"] false then
-    "${getConfig ["sourceFromHead" "managedRepoDir"] "/set/sourceFromHead.managedRepoDir/please"}/dist/${localTarName}"
+  if config.sourceFromHead.useLocalRepos or false then
+    "${config.sourceFromHead.managedRepoDir or "/set/sourceFromHead.managedRepoDir/please"}/dist/${localTarName}"
   else publishedSrcSnapshot
diff --git a/pkgs/build-support/vm/deb/deb-closure.pl b/pkgs/build-support/vm/deb/deb-closure.pl
index 5e4ea54c43f8..1d41f89218bd 100644
--- a/pkgs/build-support/vm/deb/deb-closure.pl
+++ b/pkgs/build-support/vm/deb/deb-closure.pl
@@ -53,6 +53,8 @@ foreach my $cdata (values %packages) {
     my @provides = getDeps(Dpkg::Deps::parse($cdata->{Provides}));
     foreach my $name (@provides) {
         #die "conflicting provide: $name\n" if defined $provides{$name};
+        #warn "provide by $cdata->{Package} conflicts with package with the same name: $name\n";
+        next if defined $packages{$name};
         $provides{$name} = $cdata->{Package};
     }
 }
@@ -67,7 +69,7 @@ sub closePackage {
     my $pkgName = shift;
     print STDERR ">>> $pkgName\n";
     my $cdata = $packages{$pkgName};
-    
+
     if (!defined $cdata) {
         die "unknown (virtual) package $pkgName"
             unless defined $provides{$pkgName};
@@ -75,7 +77,7 @@ sub closePackage {
         $pkgName = $provides{$pkgName};
         $cdata = $packages{$pkgName};
     }
-    
+
     die "unknown package $pkgName" unless defined $cdata;
     return if defined $donePkgs{$pkgName};
     $donePkgs{$pkgName} = 1;
@@ -85,9 +87,9 @@ sub closePackage {
             $provides{$name} = $cdata->{Package};
         }
     }
-    
+
     my @depNames = ();
-    
+
     if (defined $cdata->{Depends}) {
         print STDERR "    $pkgName: $cdata->{Depends}\n";
         my $deps = Dpkg::Deps::parse($cdata->{Depends});
@@ -141,7 +143,7 @@ foreach my $pkgName (@order) {
     my $origName = basename $cdata->{Filename};
     my $cleanedName = $origName;
     $cleanedName =~ s/~//g;
-    
+
     print "    (fetchurl {\n";
     print "      url = $urlPrefix/$cdata->{Filename};\n";
     print "      sha256 = \"$cdata->{SHA256}\";\n";
@@ -165,4 +167,3 @@ if ($newComponent != 1) {
     print STDERR "argh: ", keys %forward, "\n";
     exit 1;
 }
-    
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 6af4a5c05748..e8de915e7889 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -34,7 +34,7 @@ rec {
     ''
       mkdir -p $out/bin
       mkdir -p $out/lib
-      
+
       # Copy what we need from Glibc.
       cp -p ${pkgs.stdenv.glibc}/lib/ld-linux*.so.? $out/lib
       cp -p ${pkgs.stdenv.glibc}/lib/libc.so.* $out/lib
@@ -60,7 +60,7 @@ rec {
       cp ${module_init_tools}/sbin/insmod $out/bin/insmod
       cp ${nettools}/sbin/ifconfig $out/bin
       cp ${sysvinit}/sbin/halt $out/bin
-            
+
       # Run patchelf to make the programs refer to the copied libraries.
       for i in $out/bin/* $out/lib/*; do if ! test -L $i; then nuke-refs $i; fi; done
 
@@ -70,17 +70,19 @@ rec {
       done
     ''; # */
 
-    
+
   createDeviceNodes = dev:
     ''
-      mknod ${dev}/null c 1 3
-      mknod ${dev}/zero c 1 5
-      mknod ${dev}/tty  c 5 0
+      mknod ${dev}/null    c 1 3
+      mknod ${dev}/zero    c 1 5
+      mknod ${dev}/random  c 1 8
+      mknod ${dev}/urandom c 1 9
+      mknod ${dev}/tty     c 5 0
       . /sys/class/block/${hd}/uevent
       mknod ${dev}/${hd} b $MAJOR $MINOR
     '';
 
-  
+
   stage1Init = writeScript "vm-run-stage1" ''
     #! ${initrdUtils}/bin/bash -e
     echo START
@@ -122,7 +124,7 @@ rec {
 
     mount -t tmpfs none /dev
     ${createDeviceNodes "/dev"}
-    
+
     ifconfig eth0 up 10.0.2.15
 
     mkdir /fs
@@ -155,7 +157,7 @@ rec {
 
     mkdir -p /fs/etc
     ln -sf /proc/mounts /fs/etc/mtab
-    
+
     echo "Now running: $command"
     test -n "$command"
 
@@ -169,7 +171,7 @@ rec {
     halt -d -p -f
   '';
 
-  
+
   initrd = makeInitrd {
     contents = [
       { object = stage1Init;
@@ -178,11 +180,11 @@ rec {
     ];
   };
 
-  
+
   stage2Init = writeScript "vm-run-stage2" ''
     #! ${bash}/bin/sh
     source /tmp/xchg/saved-env
-    
+
     export NIX_STORE=/nix/store
     export NIX_BUILD_TOP=/tmp
     export TMPDIR=/tmp
@@ -250,6 +252,7 @@ rec {
         path = $TMPDIR/xchg
         read only = no
         guest ok = yes
+      $EXTRA_SAMBA_CONF
       SMB
 
       rm -f ./samba
@@ -285,12 +288,12 @@ rec {
 
     chmod +x ./run-vm
     source ./run-vm
-    
+
     if ! test -e xchg/in-vm-exit; then
       echo "Virtual machine didn't produce an exit code."
       exit 1
     fi
-    
+
     eval "$postVM"
 
     exit $(cat xchg/in-vm-exit)
@@ -342,7 +345,7 @@ rec {
      If the build fails and Nix is run with the `-K' option, a script
      `run-vm' will be left behind in the temporary build directory
      that allows you to boot into the VM and debug it interactively. */
-     
+
   runInLinuxVM = drv: lib.overrideDerivation drv (attrs: {
     requiredSystemFeatures = [ "kvm" ];
     builder = "${bash}/bin/sh";
@@ -352,7 +355,7 @@ rec {
     QEMU_OPTS = "-m ${toString (if attrs ? memSize then attrs.memSize else 256)}";
   });
 
-  
+
   extractFs = {file, fs ? null} :
     with pkgs; runInLinuxVM (
     stdenv.mkDerivation {
@@ -378,7 +381,7 @@ rec {
       '';
     });
 
-    
+
   extractMTDfs = {file, fs ? null} :
     with pkgs; runInLinuxVM (
     stdenv.mkDerivation {
@@ -405,7 +408,7 @@ rec {
       '';
     });
 
-    
+
   qemuCommandGeneric = ''
     PATH="${samba}/sbin:$PATH" \
     ${kvm}/bin/qemu-kvm \
@@ -414,7 +417,7 @@ rec {
       $QEMU_OPTS
   '';
 
-  
+
   /* Run a command in an x86 virtual machine image containing an
      arbitrary OS.  The VM should be configured to do the following:
 
@@ -459,7 +462,7 @@ rec {
      the Nix store, but using the tools provided by /bin, /usr/bin
      etc. from the specified filesystem image, which typically is a
      filesystem containing a non-NixOS Linux distribution. */
-     
+
   runInLinuxImage = attrs: runInLinuxVM (attrs // {
     mountDisk = true;
 
@@ -490,12 +493,12 @@ rec {
 
   /* Create a filesystem image of the specified size and fill it with
      a set of RPM packages. */
-    
+
   fillDiskWithRPMs =
     { size ? 4096, rpms, name, fullName, preInstall ? "", postInstall ? ""
     , runScripts ? true, createRootFS ? defaultCreateRootFS
     }:
-    
+
     runInLinuxVM (stdenv.mkDerivation {
       inherit name preInstall postInstall rpms;
       memSize = 512;
@@ -505,7 +508,7 @@ rec {
         ${createRootFS}
 
         chroot=$(type -tP chroot)
-        
+
         echo "unpacking RPMs..."
         for i in $rpms; do
             echo "$i..."
@@ -524,19 +527,19 @@ rec {
         mkdir -p /mnt/nix/store
         ${utillinux}/bin/mount -o bind /nix/store /mnt/nix/store
         ${utillinux}/bin/mount -o bind /tmp /mnt/tmp
-        
+
         echo "installing RPMs..."
         PATH=/usr/bin:/bin:/usr/sbin:/sbin $chroot /mnt \
           rpm -iv ${if runScripts then "" else "--noscripts"} $rpms
 
         echo "running post-install script..."
         eval "$postInstall"
-        
+
         rm /mnt/.debug
 
-        ${utillinux}/bin/umount /mnt/nix/store 
-        ${utillinux}/bin/umount /mnt/tmp 
-        ${utillinux}/bin/umount /mnt 
+        ${utillinux}/bin/umount /mnt/nix/store
+        ${utillinux}/bin/umount /mnt/tmp
+        ${utillinux}/bin/umount /mnt
       '';
 
       passthru = { inherit fullName; };
@@ -545,7 +548,7 @@ rec {
 
   /* Generate a script that can be used to run an interactive session
      in the given image. */
-     
+
   makeImageTestScript = image: writeScript "image-test" ''
     #! ${bash}/bin/sh
     if test -z "$1"; then
@@ -570,7 +573,7 @@ rec {
   /* Build RPM packages from the tarball `src' in the Linux
      distribution installed in the filesystem `diskImage'.  The
      tarball must contain an RPM specfile. */
-  
+
   buildRPM = attrs: runInLinuxImage (stdenv.mkDerivation ({
     phases = "prepareImagePhase sysInfoPhase buildPhase installPhase";
 
@@ -583,7 +586,7 @@ rec {
         done
       fi
     '';
-  
+
     sysInfoPhase = ''
       echo "System/kernel: $(uname -a)"
       if test -e /etc/fedora-release; then echo "Fedora release: $(cat /etc/fedora-release)"; fi
@@ -592,7 +595,7 @@ rec {
       rpm -qa --qf "%{Name}-%{Version}-%{Release} (%{Arch}; %{Distribution}; %{Vendor})\n"
       stopNest
     '';
-    
+
     buildPhase = ''
       eval "$preBuild"
 
@@ -609,7 +612,7 @@ rec {
       mkdir $rpmout $rpmout/SPECS $rpmout/BUILD $rpmout/RPMS $rpmout/SRPMS
 
       echo "%_topdir $rpmout" >> $HOME/.rpmmacros
-      
+
       rpmbuild -vv -ta "$srcName"
 
       eval "$postBuild"
@@ -639,7 +642,7 @@ rec {
 
   fillDiskWithDebs =
     { size ? 4096, debs, name, fullName, postInstall ? null, createRootFS ? defaultCreateRootFS }:
-    
+
     runInLinuxVM (stdenv.mkDerivation {
       inherit name postInstall;
 
@@ -655,7 +658,7 @@ rec {
         # Unpack the .debs.  We do this to prevent pre-install scripts
         # (which have lots of circular dependencies) from barfing.
         echo "unpacking Debs..."
-        
+
         for deb in $debs; do
           if test "$deb" != "|"; then
             echo "$deb..."
@@ -668,7 +671,7 @@ rec {
         ${utillinux}/bin/mount -o bind /nix/store /mnt/inst/nix/store
         ${utillinux}/bin/mount -o bind /proc /mnt/proc
         ${utillinux}/bin/mount -o bind /dev /mnt/dev
-        
+
         # Misc. files/directories assumed by various packages.
         echo "initialising Dpkg DB..."
         touch /mnt/etc/shells
@@ -682,7 +685,7 @@ rec {
         echo "installing Debs..."
 
         export DEBIAN_FRONTEND=noninteractive
-        
+
         oldIFS="$IFS"
         IFS="|"
         for component in $debs; do
@@ -697,13 +700,13 @@ rec {
           PATH=/usr/bin:/bin:/usr/sbin:/sbin $chroot /mnt \
             /usr/bin/dpkg --install --force-all $debs < /dev/null || true
         done
-        
+
         echo "running post-install script..."
         eval "$postInstall"
         ln -sf dash /mnt/bin/sh
 
         rm /mnt/.debug
-        
+
         ${utillinux}/bin/umount /mnt/inst/nix/store
         ${utillinux}/bin/umount /mnt/proc
         ${utillinux}/bin/umount /mnt/dev
@@ -717,10 +720,10 @@ rec {
   /* Generate a Nix expression containing fetchurl calls for the
      closure of a set of top-level RPM packages from the
      `primary.xml.gz' file of a Fedora or openSUSE distribution. */
-     
+
   rpmClosureGenerator =
     {name, packagesLists, urlPrefixes, packages, archs ? []}:
-    assert (builtins.length packagesLists) == (builtins.length urlPrefixes) ;
+    assert (builtins.length packagesLists) == (builtins.length urlPrefixes);
     runCommand "${name}.nix" {buildInputs = [perl perlPackages.XMLSimple]; inherit archs;} ''
       ${lib.concatImapStrings (i: pl: ''
         gunzip < ${pl} > ./packages_${toString i}.xml
@@ -734,7 +737,7 @@ rec {
   /* Helper function that combines rpmClosureGenerator and
      fillDiskWithRPMs to generate a disk image from a set of package
      names. */
-     
+
   makeImageFromRPMDist =
     { name, fullName, size ? 4096
     , urlPrefix ? "", urlPrefixes ? [urlPrefix]
@@ -756,10 +759,13 @@ rec {
      (i.e. generate a closure from a Packages.bz2 file). */
 
   debClosureGenerator =
-    {name, packagesList, urlPrefix, packages}:
-    
+    {name, packagesLists, urlPrefix, packages}:
+
     runCommand "${name}.nix" {} ''
-      bunzip2 < ${packagesList} > ./Packages
+      for i in ${toString packagesLists}; do
+        echo "adding $i..."
+        bunzip2 < $i >> ./Packages
+      done
 
       # Work around this bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=452279
       sed -i ./Packages -e s/x86_64-linux-gnu/x86-64-linux-gnu/g
@@ -767,19 +773,20 @@ rec {
       ${perl}/bin/perl -I${dpkg} -w ${deb/deb-closure.pl} \
         ./Packages ${urlPrefix} ${toString packages} > $out
     '';
-  
+
 
   /* Helper function that combines debClosureGenerator and
      fillDiskWithDebs to generate a disk image from a set of package
      names. */
-     
+
   makeImageFromDebDist =
-    { name, fullName, size ? 4096, urlPrefix, packagesList
+    { name, fullName, size ? 4096, urlPrefix
+    , packagesList ? "", packagesLists ? [packagesList]
     , packages, extraPackages ? [], postInstall ? "" }:
 
     let
       expr = debClosureGenerator {
-        inherit name packagesList urlPrefix;
+        inherit name packagesLists urlPrefix;
         packages = packages ++ extraPackages;
       };
     in
@@ -790,7 +797,7 @@ rec {
 
 
   /* The set of supported RPM-based distributions. */
-      
+
   rpmDistros = {
 
     fedora2i386 = {
@@ -817,7 +824,7 @@ rec {
       runScripts = false;
       packages = commonFedoraPackages;
     };
-    
+
     fedora5i386 = {
       name = "fedora-core-5-i386";
       fullName = "Fedora Core 5 (i386)";
@@ -828,7 +835,7 @@ rec {
       urlPrefix = mirror://fedora/linux/core/5/i386/os;
       packages = commonFedoraPackages ++ [ "util-linux" ];
     };
-    
+
     fedora7i386 = {
       name = "fedora-7-i386";
       fullName = "Fedora 7 (i386)";
@@ -839,7 +846,7 @@ rec {
       urlPrefix = mirror://fedora/linux/releases/7/Everything/i386/os;
       packages = commonFedoraPackages;
     };
-    
+
     fedora8i386 = {
       name = "fedora-8-i386";
       fullName = "Fedora 8 (i386)";
@@ -1057,9 +1064,9 @@ rec {
 
 
   /* The set of supported Dpkg-based distributions. */
-      
+
   debDistros = {
-  
+
     # Interestingly, the SHA-256 hashes provided by Ubuntu in
     # http://nl.archive.ubuntu.com/ubuntu/dists/{gutsy,hardy}/Release are
     # wrong, but the SHA-1 and MD5 hashes are correct.  Intrepid is fine.
@@ -1074,7 +1081,7 @@ rec {
       urlPrefix = mirror://ubuntu;
       packages = commonDebianPackages;
     };
-        
+
     ubuntu804i386 = {
       name = "ubuntu-8.04-hardy-i386";
       fullName = "Ubuntu 8.04 Hardy (i386)";
@@ -1085,7 +1092,7 @@ rec {
       urlPrefix = mirror://ubuntu;
       packages = commonDebianPackages;
     };
-         
+
     ubuntu804x86_64 = {
       name = "ubuntu-8.04-hardy-amd64";
       fullName = "Ubuntu 8.04 Hardy (amd64)";
@@ -1096,7 +1103,7 @@ rec {
       urlPrefix = mirror://ubuntu;
       packages = commonDebianPackages;
     };
-         
+
     ubuntu810i386 = {
       name = "ubuntu-8.10-intrepid-i386";
       fullName = "Ubuntu 8.10 Intrepid (i386)";
@@ -1107,7 +1114,7 @@ rec {
       urlPrefix = mirror://ubuntu;
       packages = commonDebianPackages;
     };
- 
+
     ubuntu810x86_64 = {
       name = "ubuntu-8.10-intrepid-amd64";
       fullName = "Ubuntu 8.10 Intrepid (amd64)";
@@ -1129,7 +1136,7 @@ rec {
       urlPrefix = mirror://ubuntu;
       packages = commonDebianPackages;
     };
- 
+
     ubuntu904x86_64 = {
       name = "ubuntu-9.04-jaunty-amd64";
       fullName = "Ubuntu 9.04 Jaunty (amd64)";
@@ -1151,11 +1158,11 @@ rec {
       urlPrefix = mirror://ubuntu;
       packages = commonDebPackages ++ [ "diff" "mktemp" ];
     };
- 
+
     ubuntu910x86_64 = {
       name = "ubuntu-9.10-karmic-amd64";
       fullName = "Ubuntu 9.10 Karmic (amd64)";
-      packagesList = fetchurl {
+     packagesList = fetchurl {
         url = mirror://ubuntu/dists/karmic/main/binary-amd64/Packages.bz2;
         sha256 = "3a604fcb0c135eeb8b95da3e90a8fd4cfeff519b858cd3c9e62ea808cb9fec40";
       };
@@ -1166,43 +1173,67 @@ rec {
     ubuntu1004i386 = {
       name = "ubuntu-10.04-lucid-i386";
       fullName = "Ubuntu 10.04 Lucid (i386)";
-      packagesList = fetchurl {
-        url = mirror://ubuntu/dists/lucid/main/binary-i386/Packages.bz2;
-        sha256 = "0e46596202a68caa754dfe0883f46047525309880c492cdd5e2d0970fcf626aa";
-      };
+      packagesList =
+        [ (fetchurl {
+            url = mirror://ubuntu/dists/lucid/main/binary-i386/Packages.bz2;
+            sha256 = "0e46596202a68caa754dfe0883f46047525309880c492cdd5e2d0970fcf626aa";
+          })
+          (fetchurl {
+            url = mirror://ubuntu/dists/lucid/universe/binary-i386/Packages.bz2;
+            sha256 = "13nvsb7na9igps2fdbbfpq4y8ihccmcs6x35pfyfp6rkhjgpzigy";
+          })
+        ];
       urlPrefix = mirror://ubuntu;
       packages = commonDebPackages ++ [ "diffutils" "mktemp" ];
     };
- 
+
     ubuntu1004x86_64 = {
       name = "ubuntu-10.04-lucid-amd64";
       fullName = "Ubuntu 10.04 Lucid (amd64)";
-      packagesList = fetchurl {
-        url = mirror://ubuntu/dists/lucid/main/binary-amd64/Packages.bz2;
-        sha256 = "74a8f3192b0eda397d65316e0fa6cd34d5358dced41639e07d9f1047971bfef0";
-      };
+      packagesList =
+        [ (fetchurl {
+            url = mirror://ubuntu/dists/lucid/main/binary-amd64/Packages.bz2;
+            sha256 = "74a8f3192b0eda397d65316e0fa6cd34d5358dced41639e07d9f1047971bfef0";
+          })
+          (fetchurl {
+            url = mirror://ubuntu/dists/lucid/universe/binary-amd64/Packages.bz2;
+            sha256 = "112lbnf8rcsbbh89aci4m6gwac0jy16838aij0av8n076zwkvlj9";
+          })
+        ];
       urlPrefix = mirror://ubuntu;
       packages = commonDebPackages ++ [ "diffutils" "mktemp" ];
     };
 
     ubuntu1010i386 = {
-      name = "ubuntu-10.04-maverick-i386";
-      fullName = "Ubuntu 10.04 Maverick (i386)";
-      packagesList = fetchurl {
-        url = mirror://ubuntu/dists/maverick/main/binary-i386/Packages.bz2;
-        sha256 = "1qjs4042y03bxbxwjs3pgrs99ba6vqvjaaz6zhaxxaqj1r12dwa0";
-      };
+      name = "ubuntu-10.10-maverick-i386";
+      fullName = "Ubuntu 10.10 Maverick (i386)";
+      packagesList =
+        [ (fetchurl {
+            url = mirror://ubuntu/dists/maverick/main/binary-i386/Packages.bz2;
+            sha256 = "1qjs4042y03bxbxwjs3pgrs99ba6vqvjaaz6zhaxxaqj1r12dwa0";
+          })
+          (fetchurl {
+            url = mirror://ubuntu/dists/maverick/universe/binary-i386/Packages.bz2;
+            sha256 = "1g5pnhx730wj32221ic8p2q6zcka23knpyg190mvq9x7kflcbfzy";
+          })
+        ];
       urlPrefix = mirror://ubuntu;
       packages = commonDebPackages ++ [ "diffutils" ];
     };
- 
+
     ubuntu1010x86_64 = {
-      name = "ubuntu-10.04-maverick-amd64";
-      fullName = "Ubuntu 10.04 Maverick (amd64)";
-      packagesList = fetchurl {
-        url = mirror://ubuntu/dists/maverick/main/binary-amd64/Packages.bz2;
-        sha256 = "1p0i4gp1bxd3zvckgnh1hx4vfc23rfgzd19dk5rmi61lzbzzqbgc";
-      };
+      name = "ubuntu-10.10-maverick-amd64";
+      fullName = "Ubuntu 10.10 Maverick (amd64)";
+      packagesList =
+        [ (fetchurl {
+            url = mirror://ubuntu/dists/maverick/main/binary-amd64/Packages.bz2;
+            sha256 = "1p0i4gp1bxd3zvckgnh1hx4vfc23rfgzd19dk5rmi61lzbzzqbgc";
+          })
+          (fetchurl {
+            url = mirror://ubuntu/dists/maverick/universe/binary-amd64/Packages.bz2;
+            sha256 = "0m26viwah29gh47p8m3jpnx6l84dhpwnms29m9bvqn1vwcrgjh0s";
+          })
+        ];
       urlPrefix = mirror://ubuntu;
       packages = commonDebPackages ++ [ "diffutils" ];
     };
@@ -1210,43 +1241,67 @@ rec {
     ubuntu1110i386 = {
       name = "ubuntu-11.10-oneiric-i386";
       fullName = "Ubuntu 11.10 Oneiric (i386)";
-      packagesList = fetchurl {
-        url = mirror://ubuntu/dists/oneiric/main/binary-i386/Packages.bz2;
-        sha256 = "11r1s76ppi7rwz08i20d7n4ndaj9lb9wsl9k8ww4s1c6agzpwv8a";
-      };
+      packagesList =
+        [ (fetchurl {
+            url = mirror://ubuntu/dists/oneiric/main/binary-i386/Packages.bz2;
+            sha256 = "11r1s76ppi7rwz08i20d7n4ndaj9lb9wsl9k8ww4s1c6agzpwv8a";
+          })
+          (fetchurl {
+            url = mirror://ubuntu/dists/oneiric/universe/binary-i386/Packages.bz2;
+            sha256 = "1dr59j8pjdhk07fpc0x73afcd9630kkdsbabx3bj92q71104yigz";
+          })
+        ];
       urlPrefix = mirror://ubuntu;
       packages = commonDebPackages ++ [ "diffutils" ];
     };
- 
+
     ubuntu1110x86_64 = {
       name = "ubuntu-11.10-oneiric-amd64";
       fullName = "Ubuntu 11.10 Oneiric (amd64)";
-      packagesList = fetchurl {
-        url = mirror://ubuntu/dists/oneiric/main/binary-amd64/Packages.bz2;
-        sha256 = "07k784gxwaqmyggmzczy9hjkgfp6p6dcs8rhkxw5hfzn0jaf8l2s";
-      };
+      packagesLists =
+        [ (fetchurl {
+            url = mirror://ubuntu/dists/oneiric/main/binary-amd64/Packages.bz2;
+            sha256 = "07k784gxwaqmyggmzczy9hjkgfp6p6dcs8rhkxw5hfzn0jaf8l2s";
+          })
+          (fetchurl {
+            url = mirror://ubuntu/dists/oneiric/universe/binary-amd64/Packages.bz2;
+            sha256 = "1v3ldxn5jnnfgs863ryd6wl3fsb3glainr1ma2zn2l5vpzhpi2h1";
+          })
+        ];
       urlPrefix = mirror://ubuntu;
       packages = commonDebPackages ++ [ "diffutils" ];
     };
 
     ubuntu1204i386 = {
-      name = "ubuntu-12.04-oneiric-i386";
+      name = "ubuntu-12.04-precise-i386";
       fullName = "Ubuntu 12.04 Precise (i386)";
-      packagesList = fetchurl {
-        url = mirror://ubuntu/dists/precise/main/binary-i386/Packages.bz2;
-        sha256 = "18ns9h4qhvjfcip9z55grzi371racxavgqkp6b5kfkdq2wwwax2d";
-      };
+      packagesLists =
+        [ (fetchurl {
+            url = mirror://ubuntu/dists/precise/main/binary-i386/Packages.bz2;
+            sha256 = "18ns9h4qhvjfcip9z55grzi371racxavgqkp6b5kfkdq2wwwax2d";
+          })
+          (fetchurl {
+            url = mirror://ubuntu/dists/precise/universe/binary-i386/Packages.bz2;
+            sha256 = "085lkzbnzkc74kfdmwdc32sfqyfz8dr0rbiifk8kx9jih3xjw2jk";
+          })
+        ];
       urlPrefix = mirror://ubuntu;
       packages = commonDebPackages ++ [ "diffutils" ];
     };
- 
+
     ubuntu1204x86_64 = {
-      name = "ubuntu-12.04-oneiric-amd64";
+      name = "ubuntu-12.04-precise-amd64";
       fullName = "Ubuntu 12.04 Precise (amd64)";
-      packagesList = fetchurl {
-        url = mirror://ubuntu/dists/precise/main/binary-amd64/Packages.bz2;
-        sha256 = "1aabpn0hdih6cbabyn87yvhccqj44q9k03mqmjsb920iqlckl3fc";
-      };
+      packagesList =
+        [ (fetchurl {
+            url = mirror://ubuntu/dists/precise/main/binary-amd64/Packages.bz2;
+            sha256 = "1aabpn0hdih6cbabyn87yvhccqj44q9k03mqmjsb920iqlckl3fc";
+          })
+          (fetchurl {
+            url = mirror://ubuntu/dists/precise/universe/binary-amd64/Packages.bz2;
+            sha256 = "0x4hz5aplximgb7gnpvrhkw8m7a40s80rkm5b8hil0afblwlg4vr";
+          })
+        ];
       urlPrefix = mirror://ubuntu;
       packages = commonDebPackages ++ [ "diffutils" ];
     };
@@ -1261,7 +1316,7 @@ rec {
       urlPrefix = mirror://debian;
       packages = commonDebianPackages;
     };
-        
+
     debian40x86_64 = {
       name = "debian-4.0r9-etch-amd64";
       fullName = "Debian 4.0r9 Etch (amd64)";
@@ -1305,7 +1360,7 @@ rec {
       urlPrefix = mirror://debian;
       packages = commonDebianPackages;
     };
-        
+
     debian60x86_64 = {
       name = "debian-6.0.4-squeeze-amd64";
       fullName = "Debian 6.0.4 Squeeze (amd64)";
@@ -1343,7 +1398,7 @@ rec {
     "unzip"
   ];
 
-  
+
   /* Common packages for openSUSE images. */
   commonOpenSUSEPackages = [
     "aaa_base"
@@ -1387,7 +1442,7 @@ rec {
     "patch"
     "locales"
     # Needed by checkinstall:
-    "util-linux" 
+    "util-linux"
     "file"
     "dpkg-dev"
     "pkg-config"
@@ -1397,7 +1452,7 @@ rec {
   ];
 
   commonDebianPackages = commonDebPackages ++ [ "sysvinit" "diff" "mktemp" ];
-  
+
 
   /* A set of functions that build the Linux distributions specified
      in `rpmDistros' and `debDistros'.  For instance,
@@ -1411,29 +1466,29 @@ rec {
      `diskImageFuns.ubuntu1004x86_64 { extraPackages = ["firefox"];
      size = 8192; }' builds an 8 GiB image containing Firefox in
      addition to the default packages. */
-  diskImageFuns = 
+  diskImageFuns =
     (lib.mapAttrs (name: as: as2: makeImageFromRPMDist (as // as2)) rpmDistros) //
     (lib.mapAttrs (name: as: as2: makeImageFromDebDist (as // as2)) debDistros);
 
-    
+
   /* Shorthand for `diskImageFuns.<attr> { extraPackages = ... }'. */
   diskImageExtraFuns =
     lib.mapAttrs (name: f: extraPackages: f { inherit extraPackages; }) diskImageFuns;
 
-    
+
   /* Default disk images generated from the `rpmDistros' and
      `debDistros' sets (along with Red Hat 9 and SuSE 9.0 images). */
 
   diskImages =
     lib.mapAttrs (name: f: f {}) diskImageFuns //
-    
+
     { redhat9i386 = fillDiskWithRPMs {
         name = "redhat-9-i386";
         fullName = "Red Hat Linux 9 (i386)";
         size = 1024;
         rpms = import ./rpm/redhat-9-i386.nix {inherit fetchurl;};
       };
-    
+
       suse90i386 = fillDiskWithRPMs {
         name = "suse-9.0-i386";
         fullName = "SUSE Linux 9.0 (i386)";
@@ -1453,7 +1508,7 @@ rec {
           echo 'video:x:33:' >> /mnt/etc/group
         '';
       };
-      
+
     };
-    
+
 }
diff --git a/pkgs/data/documentation/man-pages/default.nix b/pkgs/data/documentation/man-pages/default.nix
index 0aca88a46c06..f9e4f1b43715 100644
--- a/pkgs/data/documentation/man-pages/default.nix
+++ b/pkgs/data/documentation/man-pages/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "man-pages-3.41";
+  name = "man-pages-3.42";
   
   src = fetchurl {
     url = "mirror://kernel/linux/docs/man-pages/Archive/${name}.tar.xz";
-    sha256 = "1fldlsw51al9cvmz8dixrfv2j80bamjd5bzxsa66cvhc48n8p2nf";
+    sha256 = "11kh0ifzqbxk797lq037ixqhpf6h90w9xxygzh796mddg4rr4s9j";
   };
 
   preBuild =
diff --git a/pkgs/data/fonts/lmodern/lmmath.nix b/pkgs/data/fonts/lmodern/lmmath.nix
new file mode 100644
index 000000000000..651a84726af6
--- /dev/null
+++ b/pkgs/data/fonts/lmodern/lmmath.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation {
+  name = "lmmath-0.903";
+  
+  src = fetchurl {
+    url = "http://www.gust.org.pl/projects/e-foundry/lm-math/download/lmmath0903otf";
+    sha256 = "ee96cb14f5c746d6c6b9ecfbdf97dafc2f535be3dd277e15e8ea6fb594995d64";
+    name = "lmmath-0.903.zip";
+  };
+
+  buildInputs = [unzip];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    mkdir -p $out/texmf/fonts/opentype
+    mkdir -p $out/share/fonts/opentype
+
+    cp *.{OTF,otf} $out/texmf/fonts/opentype/lmmath-regular.otf
+    cp *.{OTF,otf} $out/share/fonts/opentype/lmmath-regular.otf
+
+    ln -s $out/texmf* $out/share/
+  '';
+
+  meta = {
+    description = "Latin Modern font";
+  };
+}
+
diff --git a/pkgs/data/misc/hicolor-icon-theme/default.nix b/pkgs/data/misc/hicolor-icon-theme/default.nix
index e249dac1dc9c..553665396ec1 100644
--- a/pkgs/data/misc/hicolor-icon-theme/default.nix
+++ b/pkgs/data/misc/hicolor-icon-theme/default.nix
@@ -11,5 +11,6 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Default fallback theme used by implementations of the icon theme specification";
     homepage = http://icon-theme.freedesktop.org/releases/;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/data/misc/mobile-broadband-provider-info/default.nix b/pkgs/data/misc/mobile-broadband-provider-info/default.nix
index 830e0ffa68a4..52e9ebf0617c 100644
--- a/pkgs/data/misc/mobile-broadband-provider-info/default.nix
+++ b/pkgs/data/misc/mobile-broadband-provider-info/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl }:
 
 let
-  version = "20110511";
+  version = "20120614";
   pname = "mobile-broadband-provider-info";
   name = "${pname}-${version}";
 in
@@ -9,8 +9,8 @@ stdenv.mkDerivation rec {
   inherit name;
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${version}/${name}.tar.bz2";
-    sha256 = "0cny8bd6kdwvabnwdr00f4wp4xjbc8ynp0kcdg72c1q9186kdikj";
+    url = "mirror://gnome/sources/${pname}/${version}/${name}.tar.xz";
+    sha256 = "72507a732e0cd16cf27424bb094b1c7a03e2206c119ad124722a283e587755f1";
   };
 
   meta = {
diff --git a/pkgs/data/misc/shared-desktop-ontologies/default.nix b/pkgs/data/misc/shared-desktop-ontologies/default.nix
index 39fcc6d1a68e..23a800f6ae0f 100644
--- a/pkgs/data/misc/shared-desktop-ontologies/default.nix
+++ b/pkgs/data/misc/shared-desktop-ontologies/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, cmake }:
 
 stdenv.mkDerivation rec {
-  name = "shared-desktop-ontologies-0.8.1";
+  name = "shared-desktop-ontologies-0.10.0";
   
   src = fetchurl {
     url = "mirror://sourceforge/oscaf/${name}.tar.bz2";
-    sha256 = "0w6rhhfjl5r6gv2jw3nc1sj5l4fxz4s1wv0iclcrak3wa5vyy6h3";
+    sha256 = "00y55bjmxrwiiw8q0n0jcv95l945hp7nglbwj408sk5m2vq026di";
   };
   
   buildInputs = [ cmake ];
diff --git a/pkgs/data/misc/tzdata/default.nix b/pkgs/data/misc/tzdata/default.nix
new file mode 100644
index 000000000000..c49430935aeb
--- /dev/null
+++ b/pkgs/data/misc/tzdata/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl }:
+
+let version = "2012f"; in
+
+stdenv.mkDerivation rec {
+  name = "tzdata-${version}";
+
+  srcs =
+    [ (fetchurl {
+        url = "http://www.iana.org/time-zones/repository/releases/tzdata${version}.tar.gz";
+        sha256 = "1k165i8g23rr0z26k02x1l4immp69g6yqjrd3lwmbvj5li4mmsdg";
+      })
+      (fetchurl {
+        url = "http://www.iana.org/time-zones/repository/releases/tzcode${version}.tar.gz";
+        sha256 = "1m6rg9003mkjyvpv5gg5lcia9fzhy7ndwgs68qlpbipnw5p0k2pk";
+      })
+    ];
+
+  sourceRoot = ".";
+
+  makeFlags = "TOPDIR=$(out) TZDIR=$(out)/share/zoneinfo ETCDIR=$(TMPDIR)/etc LIBDIR=$(TMPDIR)/lib MANDIR=$(TMPDIR)/man AWK=awk";
+
+  postInstall =
+    ''
+      mv $out/share/zoneinfo-posix $out/share/zoneinfo/posix
+      mv $out/share/zoneinfo-leaps $out/share/zoneinfo/right
+    '';
+
+  meta = {
+    homepage = http://www.iana.org/time-zones;
+    description = "Database of current and historical time zones";
+  };
+}
diff --git a/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix b/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix
index 3d47ed567873..c65c8b98c6ac 100644
--- a/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix
+++ b/pkgs/desktops/gnome-2/bindings/gnome-python/default.nix
@@ -13,9 +13,10 @@ stdenv.mkDerivation rec {
 
   phases = "unpackPhase configurePhase buildPhase installPhase";
 
-  # You should be using WAF instead; see the file INSTALL.WAF
+  # WAF is probably the biggest crap on this planet, btw i removed the /gtk-2.0 path thingy
   configurePhase = ''
-    python waf configure --prefix=$out
+    sed -e "s@{PYTHONDIR}/gtk-2.0@{PYTHONDIR}/@" -i gconf/wscript 
+    python waf configure --prefix=$out 
   '';
 
   buildPhase = ''
@@ -35,4 +36,4 @@ stdenv.mkDerivation rec {
     description = "Python wrapper for gconf";
     maintainers = [ stdenv.lib.maintainers.qknight ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/desktops/gnome-2/default.nix b/pkgs/desktops/gnome-2/default.nix
index 943dbc9a5008..36d0860caa5d 100644
--- a/pkgs/desktops/gnome-2/default.nix
+++ b/pkgs/desktops/gnome-2/default.nix
@@ -44,6 +44,8 @@
 
   gnome_mime_data = callPackage ./platform/gnome-mime-data { };
 
+  gnome_python = callPackage ./bindings/gnome-python { };
+
   gnome_vfs = callPackage ./platform/gnome-vfs { };
 
   gnome_vfs_monikers = callPackage ./platform/gnome-vfs-monikers { };
@@ -115,6 +117,4 @@
 
   libglademm = callPackage ./bindings/libglademm { };
 
-  gnome_python = callPackage ./bindings/gnome-python { };
-
 }
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-icon-theme/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-icon-theme/default.nix
index a16dfb14d226..a1dbf78bba26 100644
--- a/pkgs/desktops/gnome-2/desktop/gnome-icon-theme/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/gnome-icon-theme/default.nix
@@ -1,12 +1,14 @@
-{ stdenv, fetchurl, pkgconfig, intltool, iconnamingutils }:
+{ stdenv, fetchurl, pkgconfig, intltool, iconnamingutils, gtk }:
 
 stdenv.mkDerivation rec {
-  name = "gnome-icon-theme-2.30.3";
+  #name = "gnome-icon-theme-3.4.0";
+  name = "gnome-icon-theme-2.91.93";
 
   src = fetchurl {
-    url = mirror://gnome/sources/gnome-icon-theme/2.30/gnome-icon-theme-2.30.3.tar.bz2;
-    sha256 = "1iysjfw3rajv9skdhshwcbjsm4jrsl6sfvqzrfynsfl4fyfjyzj1";
+    #url = "mirror://gnome/sources/gnome-icon-theme/3.4/${name}.tar.xz";
+    url = "mirror://gnome/sources/gnome-icon-theme/2.91/${name}.tar.bz2";
+    sha256 = "cc7f15e54e2640697b58c26e74cc3f6ebadeb4ef6622bffe9c1e6874cc3478d6";
   };
   
-  buildNativeInputs = [ pkgconfig intltool iconnamingutils ];
+  buildNativeInputs = [ pkgconfig intltool iconnamingutils gtk ];
 }
diff --git a/pkgs/desktops/kde-4.7/kde-workspace.nix b/pkgs/desktops/kde-4.7/kde-workspace.nix
index 20fc5b564554..8116f4bb6b59 100644
--- a/pkgs/desktops/kde-4.7/kde-workspace.nix
+++ b/pkgs/desktops/kde-4.7/kde-workspace.nix
@@ -27,6 +27,8 @@ kde {
        --replace /usr/share/X11 ${xkeyboard_config}/etc/X11
    '';
 
+  enableParallelBuilding = false;
+  
   meta = {
     description = "KDE workspace components such as Plasma, Kwin and System Settings";
     license = "GPLv2";
diff --git a/pkgs/desktops/kde-4.7/kdelibs.nix b/pkgs/desktops/kde-4.7/kdelibs.nix
index 31df83e5ee92..429fbb2a709c 100644
--- a/pkgs/desktops/kde-4.7/kdelibs.nix
+++ b/pkgs/desktops/kde-4.7/kdelibs.nix
@@ -1,4 +1,4 @@
-{ kde, gcc, cmake, perl
+{ kde, gcc, cmake, perl, aspell
 , qt4, bzip2, pcre, fam, libxml2, libxslt, shared_mime_info, giflib, jasper
 , openexr, avahi, kerberos, acl, attr, shared_desktop_ontologies, libXScrnSaver
 , automoc4, strigi, soprano, qca2, attica, enchant, libdbusmenu_qt
@@ -10,7 +10,7 @@ kde {
   buildInputs =
     [ acl attr attica avahi bzip2 enchant fam getopt giflib herqq jasper
       libdbusmenu_qt libXScrnSaver libxslt pcre polkit_qt_1 qca2
-      shared_desktop_ontologies xz udev libxml2 libjpeg kerberos
+      shared_desktop_ontologies xz udev libxml2 libjpeg kerberos aspell
     ];
 
   propagatedBuildInputs = [ qt4 soprano strigi phonon ];
diff --git a/pkgs/desktops/kde-4.8/support/akonadi/default.nix b/pkgs/desktops/kde-4.8/support/akonadi/default.nix
index db0608ead3fc..b939eb19b5e4 100644
--- a/pkgs/desktops/kde-4.8/support/akonadi/default.nix
+++ b/pkgs/desktops/kde-4.8/support/akonadi/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, cmake, qt4, shared_mime_info, libxslt, boost, automoc4, soprano }:
 
 stdenv.mkDerivation rec {
-  name = "akonadi-1.7.0";
+  name = "akonadi-1.7.2";
   
   src = fetchurl {
     url = "mirror://kde/stable/akonadi/src/${name}.tar.bz2";
-    sha256 = "105mjr6n1g6kl0djp2l8jr8b7j4s9gy2ls43g1wf3py1hf6j5fdz";
+    sha256 = "07rbhc8aa3d896j2r64ljv3amd6s4xhlbgq7kx99m1f68yl1fwjb";
   };
 
   buildInputs = [ qt4 soprano libxslt boost ];
diff --git a/pkgs/desktops/xfce-4.6/applications/mousepad.nix b/pkgs/desktops/xfce-4.6/applications/mousepad.nix
deleted file mode 100644
index 5912b21c7661..000000000000
--- a/pkgs/desktops/xfce-4.6/applications/mousepad.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libxfce4util, libxfcegui4, gtk }:
-
-stdenv.mkDerivation rec {
-  name = "mousepad-0.2.16";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/mousepad/0.2/${name}.tar.bz2";
-    sha1 = "4e63033e0a71578f3ec9a0d2e6a505efd0424ef9";
-  };
-
-  buildInputs = [ pkgconfig intltool libxfce4util libxfcegui4 gtk ];
-
-  meta = {
-    homepage = http://www.xfce.org/projects/mousepad/;
-    description = "A simple text editor for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/applications/ristretto.nix b/pkgs/desktops/xfce-4.6/applications/ristretto.nix
deleted file mode 100644
index aefabcb65fbd..000000000000
--- a/pkgs/desktops/xfce-4.6/applications/ristretto.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, libexif, gtk, thunar
-, exo, dbus_glib, libxfce4util, libxfcegui4, xfconf }:
-
-stdenv.mkDerivation rec {
-  name = "ristretto-0.0.22";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/ristretto/0.0/${name}.tar.gz";
-    sha1 = "bddbc8618ba67699ccf5ee4ea0b538b1be7fdb0a";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool libexif gtk thunar exo dbus_glib
-      libxfce4util libxfcegui4 xfconf
-    ];
-
-  NIX_LDFLAGS = "-lX11";
-
-  meta = {
-    homepage = http://goodies.xfce.org/projects/applications/ristretto;
-    description = "A fast and lightweight picture-viewer for the Xfce desktop environment";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/applications/terminal.nix b/pkgs/desktops/xfce-4.6/applications/terminal.nix
deleted file mode 100644
index bd198a12af44..000000000000
--- a/pkgs/desktops/xfce-4.6/applications/terminal.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl
-, pkgconfig, ncurses
-, intltool, vte
-, exo, libxfce4util
-, gtk
-}:
-
-stdenv.mkDerivation {
-  name = "xfce-terminal-0.4.5";
-  
-  src = fetchurl {
-    url = http://archive.xfce.org/src/apps/terminal/0.4/Terminal-0.4.5.tar.bz2;
-    sha256 = "14w8mhmyrq6dd9574zfvq0pymknljckq6qgcv1r6c1r22jydrzcj";
-  };
-
-  buildInputs = [ pkgconfig intltool exo gtk vte libxfce4util ncurses ];
-
-  meta = {
-    homepage = http://www.xfce.org/projects/terminal;
-    description = "A modern terminal emulator primarily for the Xfce desktop environment";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/applications/xfce4-mixer.nix b/pkgs/desktops/xfce-4.6/applications/xfce4-mixer.nix
deleted file mode 100644
index 76cc5ea028f0..000000000000
--- a/pkgs/desktops/xfce-4.6/applications/xfce4-mixer.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, gstreamer, gst_plugins_base
-, gtk, libxfce4util, libxfcegui4, xfce4panel, xfconf, makeWrapper }:
-
-let
-
-  # The usual Gstreamer plugins package has a zillion dependencies
-  # that we don't need for a simple mixer, so build a minimal package.
-  gst_plugins_minimal = gst_plugins_base.override {
-    minimalDeps = true;
-  };
-
-in
-
-stdenv.mkDerivation rec {
-  name = "xfce4-mixer-4.6.1";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/xfce4-mixer/4.6/${name}.tar.bz2";
-    sha1 = "e86163782fc4fc31671c7cb212d23d34106ad3af";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool glib gstreamer gst_plugins_minimal gtk
-      libxfce4util libxfcegui4 xfce4panel xfconf makeWrapper
-    ];
-
-  postInstall =
-    ''
-      mkdir -p $out/nix-support
-      echo ${gst_plugins_minimal} > $out/nix-support/propagated-user-env-packages
-    '';
-
-  meta = {
-    homepage = http://www.xfce.org/projects/xfce4-mixer;
-    description = "A volume control application for the Xfce desktop environment";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/applications/xfce4-power-manager.nix b/pkgs/desktops/xfce-4.6/applications/xfce4-power-manager.nix
deleted file mode 100644
index 65e906f5d83f..000000000000
--- a/pkgs/desktops/xfce-4.6/applications/xfce4-power-manager.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, dbus_glib, xfconf
-, libxfcegui4, libxfce4util, libnotify, xfce4panel }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-power-manager-0.8.5";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/apps/xfce4-power-manager/0.8/${name}.tar.bz2";
-    sha1 = "b1ce0f120733ec1a6267d50ba5c2990bbbbccfd4";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk dbus_glib xfconf libxfcegui4 libxfce4util
-      libnotify xfce4panel
-    ];
-
-  NIX_CFLAGS_COMPILE = "-I${libxfcegui4}/include/xfce4";
-
-  meta = {
-    homepage = http://goodies.xfce.org/projects/applications/xfce4-power-manager;
-    description = "A power manager for the Xfce Desktop Environment";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/art/xfce4-icon-theme.nix b/pkgs/desktops/xfce-4.6/art/xfce4-icon-theme.nix
deleted file mode 100644
index f42790c62166..000000000000
--- a/pkgs/desktops/xfce-4.6/art/xfce4-icon-theme.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-icon-theme-4.4.3";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/src/art/xfce4-icon-theme/4.4/${name}.tar.bz2";
-    sha1 = "0c0d0c45cd4a7f609310db8e9d17c1c4a131a6e7";
-  };
-
-  buildInputs = [ pkgconfig intltool gtk ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Icons for Xfce";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/exo.nix b/pkgs/desktops/xfce-4.6/core/exo.nix
deleted file mode 100644
index 5115a402c0dc..000000000000
--- a/pkgs/desktops/xfce-4.6/core/exo.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, URI, glib, gtk, libxfce4util
-, enableHAL ? true, hal, dbus_glib }:
-
-stdenv.mkDerivation rec {
-  name = "exo-0.3.107";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha256 = "18z2xmdl577r60ln2waai10dd7i384k0bxrmf7gchrxd9c9aq4ha";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool URI glib gtk libxfce4util ] ++
-    stdenv.lib.optionals enableHAL [ hal dbus_glib ];
-
-  meta = {
-    homepage = http://www.xfce.org/projects/exo;
-    description = "Application library for the Xfce desktop environment";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/gtk-xfce-engine.nix b/pkgs/desktops/xfce-4.6/core/gtk-xfce-engine.nix
deleted file mode 100644
index 156da1c64834..000000000000
--- a/pkgs/desktops/xfce-4.6/core/gtk-xfce-engine.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk }:
-
-stdenv.mkDerivation rec {
-  name = "gtk-xfce-engine-2.6.0";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "a7be2f330833d150c5fb37f68a4c2138348b5446";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "GTK+ theme engine for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/libxfce4menu.nix b/pkgs/desktops/xfce-4.6/core/libxfce4menu.nix
deleted file mode 100644
index fda09979819e..000000000000
--- a/pkgs/desktops/xfce-4.6/core/libxfce4menu.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, intltool, gtk, libxfce4util }:
-
-stdenv.mkDerivation rec {
-  name = "libxfce4menu-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce-4.6.2/src/${name}.tar.bz2";
-    sha1 = "32a85c1ad31360347d5a2f240c4ddc08b444d124";
-  };
-
-  buildInputs = [ pkgconfig glib intltool gtk libxfce4util ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Xfce menu support library";
-    license = "LGPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/libxfce4util.nix b/pkgs/desktops/xfce-4.6/core/libxfce4util.nix
deleted file mode 100644
index ca90822cfd0f..000000000000
--- a/pkgs/desktops/xfce-4.6/core/libxfce4util.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, intltool }:
-
-stdenv.mkDerivation rec {
-  name = "libxfce4util-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce-4.6.2/src/${name}.tar.bz2";
-    sha256 = "10wcw7r8cjb0farffic037pcjr5bwrjrm8s3jrcb7c0b038pwbmf";
-  };
-
-  buildInputs = [ pkgconfig glib intltool ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Basic utility non-GUI functions for Xfce";
-    license = "bsd";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/libxfcegui4.nix b/pkgs/desktops/xfce-4.6/core/libxfcegui4.nix
deleted file mode 100644
index 056853f9eb15..000000000000
--- a/pkgs/desktops/xfce-4.6/core/libxfcegui4.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, xfconf
-, libglade, libstartup_notification }:
-
-stdenv.mkDerivation rec {
-  name = "libxfcegui4-4.6.4";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce-4.6.2/src/${name}.tar.bz2";
-    sha1 = "a12c79f8fa14c5d1fc0fca5615a451b7d23f8695";
-  };
-
-  # By default, libxfcegui4 tries to install into libglade's prefix.
-  # Install into our own prefix instead.
-  preConfigure =
-    ''
-      configureFlags="--with-libglade-module-path=$out/lib/libglade/2.0"
-    '';
-
-  buildInputs =
-    [ pkgconfig intltool gtk libxfce4util xfconf libglade
-      libstartup_notification
-    ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Basic GUI library for Xfce";
-    license = "LGPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/thunar.nix b/pkgs/desktops/xfce-4.6/core/thunar.nix
deleted file mode 100644
index 2fecb7814b11..000000000000
--- a/pkgs/desktops/xfce-4.6/core/thunar.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, exo, gtk, libxfce4util
-, dbus_glib, libstartup_notification, xfconf, hal, xfce4panel
-, gamin }:
-
-stdenv.mkDerivation rec {
-  name = "thunar-1.0.2";
-  
-  src = fetchurl {
-    url = http://archive.xfce.org/xfce/4.6.2/src/Thunar-1.0.2.tar.bz2;
-    sha1 = "f7ae00c32402e4bc502aba15477b78e2c558c7c3";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool exo gtk libxfce4util
-      dbus_glib libstartup_notification xfconf xfce4panel gamin
-    ];
-
-  propagatedBuildInputs = [ hal ];
-
-  meta = {
-    homepage = http://thunar.xfce.org/;
-    description = "Xfce file manager";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfce-utils.nix b/pkgs/desktops/xfce-4.6/core/xfce-utils.nix
deleted file mode 100644
index ed2bfc56108c..000000000000
--- a/pkgs/desktops/xfce-4.6/core/xfce-utils.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfcegui4 }:
-
-stdenv.mkDerivation rec {
-  name = "xfce-utils-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "6373886c3d70e576859741bde747a235567ffd8e";
-  };
-
-  configureFlags = "--with-xsession-prefix=$(out)/share/xsessions";
-
-  buildInputs = [ pkgconfig intltool gtk libxfce4util libxfcegui4 ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Utilities and scripts for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfce4-panel.nix b/pkgs/desktops/xfce-4.6/core/xfce4-panel.nix
deleted file mode 100644
index 7708d019b90a..000000000000
--- a/pkgs/desktops/xfce-4.6/core/xfce4-panel.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfcegui4
-, libwnck, exo, libstartup_notification }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-panel-4.6.4";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "d2b310c036be84ed9886c06ae35b7a1a8eabfcb8";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk libxfce4util exo libwnck
-      libstartup_notification
-    ];
-
-  propagatedBuildInputs = [ libxfcegui4 ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Xfce panel";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfce4-session.nix b/pkgs/desktops/xfce-4.6/core/xfce4-session.nix
deleted file mode 100644
index fc56be085c4a..000000000000
--- a/pkgs/desktops/xfce-4.6/core/xfce4-session.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfcegui4
-, libwnck, dbus_glib, xfconf, libglade, xorg }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-session-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "2a5778a1543f97845f118a186e2dbb8a8ea3ff4b";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk libxfce4util libxfcegui4 libwnck dbus_glib
-      xfconf libglade xorg.iceauth
-    ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Session manager for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfce4-settings.nix b/pkgs/desktops/xfce-4.6/core/xfce4-settings.nix
deleted file mode 100644
index 0935955231e3..000000000000
--- a/pkgs/desktops/xfce-4.6/core/xfce4-settings.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, exo, gtk, libxfce4util, libxfcegui4
-, libglade, xfconf, xorg, libwnck, libnotify }:
-
-stdenv.mkDerivation rec {
-  name = "xfce4-settings-4.6.5";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "c036cc2f3100a46b2649e678dff7c0106b219263";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool exo gtk libxfce4util libxfcegui4 libglade
-      xfconf xorg.libXi xorg.libXcursor libwnck libnotify
-    #gtk libxfce4util libxfcegui4 libwnck dbus_glib
-      #xfconf libglade xorg.iceauth
-    ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Settings manager for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfconf.nix b/pkgs/desktops/xfce-4.6/core/xfconf.nix
deleted file mode 100644
index 2fc88bd12586..000000000000
--- a/pkgs/desktops/xfce-4.6/core/xfconf.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, libxfce4util, dbus_glib }:
-
-stdenv.mkDerivation rec {
-  name = "xfconf-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "2b9656a1b7f323d2600ddc929191afb50c8018f8";
-  };
-
-  buildInputs = [ pkgconfig intltool glib libxfce4util ];
-
-  propagatedBuildInputs = [ dbus_glib ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Simple client-server configuration storage and query system for Xfce";
-    license = "GPLv2";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfdesktop.nix b/pkgs/desktops/xfce-4.6/core/xfdesktop.nix
deleted file mode 100644
index 90a69bd8692f..000000000000
--- a/pkgs/desktops/xfce-4.6/core/xfdesktop.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gtk, libxfce4util, libxfcegui4
-, libwnck, xfconf, libglade, libxfce4menu, xfce4panel, thunar, exo }:
-
-stdenv.mkDerivation rec {
-  name = "xfdesktop-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha1 = "cefcd1c1386d34386d4e900cbf88b7c24ef3bafb";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk libxfce4util libxfcegui4 libwnck xfconf
-      libglade libxfce4menu xfce4panel thunar exo
-    ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Xfce desktop manager";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/core/xfwm4.nix b/pkgs/desktops/xfce-4.6/core/xfwm4.nix
deleted file mode 100644
index 6e88ef9cd0d9..000000000000
--- a/pkgs/desktops/xfce-4.6/core/xfwm4.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gtk, intltool, libglade, libxfce4util
-, libxfcegui4, xfconf, libwnck, libstartup_notification, xorg }:
-
-stdenv.mkDerivation rec {
-  name = "xfwm4-4.6.2";
-  
-  src = fetchurl {
-    url = "http://archive.xfce.org/xfce/4.6.2/src/${name}.tar.bz2";
-    sha256 = "0a2q2pr5mzp6hsrd0llr90i9wii2qj2054shkpvkain20gp1ja11";
-  };
-
-  buildInputs =
-    [ pkgconfig intltool gtk libglade libxfce4util libxfcegui4 xfconf
-      libwnck libstartup_notification
-      xorg.libXcomposite xorg.libXfixes xorg.libXdamage
-    ];
-
-  meta = {
-    homepage = http://www.xfce.org/;
-    description = "Window manager for Xfce";
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/xfce-4.6/default.nix b/pkgs/desktops/xfce-4.6/default.nix
deleted file mode 100644
index 1769c3f7a041..000000000000
--- a/pkgs/desktops/xfce-4.6/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ callPackage, pkgs }:
-
-rec {
-  inherit (pkgs) gtk glib;
-
-  #### CORE
-
-  exo = callPackage ./core/exo.nix {
-    inherit (pkgs.perlPackages) URI;
-  };
-
-  libxfce4util = callPackage ./core/libxfce4util.nix { };
-
-  libxfcegui4 = callPackage ./core/libxfcegui4.nix {
-    inherit (pkgs.gnome) libglade;
-  };
-
-  libxfce4menu = callPackage ./core/libxfce4menu.nix { };
-
-  xfconf = callPackage ./core/xfconf.nix { };
-
-  xfwm4 = callPackage ./core/xfwm4.nix {
-    inherit (pkgs.gnome) libglade libwnck;
-  };
-
-  xfceutils = callPackage ./core/xfce-utils.nix { };
-
-  xfce4session = callPackage ./core/xfce4-session.nix {
-    inherit (pkgs.gnome) libglade libwnck;
-  };
-
-  xfce4settings = callPackage ./core/xfce4-settings.nix {
-    inherit (pkgs.gnome) libglade libwnck;
-  };
-
-  xfce4panel = callPackage ./core/xfce4-panel.nix {
-    inherit (pkgs.gnome) libwnck;
-  };
-
-  xfdesktop = callPackage ./core/xfdesktop.nix {
-    inherit (pkgs.gnome) libwnck libglade;
-  };
-
-  thunar = callPackage ./core/thunar.nix { };
-
-  gtk_xfce_engine = callPackage ./core/gtk-xfce-engine.nix { };
-
-  #### APPLICATIONS
-  
-  terminal = callPackage ./applications/terminal.nix {
-    inherit (pkgs.gnome) vte;
-  };
-
-  mousepad = callPackage ./applications/mousepad.nix { };
-
-  ristretto = callPackage ./applications/ristretto.nix { };
-
-  xfce4_power_manager = callPackage ./applications/xfce4-power-manager.nix { };
-
-  xfce4mixer = callPackage ./applications/xfce4-mixer.nix { };
-
-  #### ART
-
-  xfce4icontheme = callPackage ./art/xfce4-icon-theme.nix { };
-  
-}
diff --git a/pkgs/desktops/xfce-4.8/support/gvfs.nix b/pkgs/desktops/xfce-4.8/support/gvfs.nix
index 6e50e6825dd6..33f7315a9d9b 100644
--- a/pkgs/desktops/xfce-4.8/support/gvfs.nix
+++ b/pkgs/desktops/xfce-4.8/support/gvfs.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, glib, dbus, intltool, udev, libgdu }:
+{ stdenv, fetchurl, pkgconfig, glib, dbus, intltool, udev, libgdu, fuse }:
 
 stdenv.mkDerivation rec {
   name = "gvfs-1.8.2";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "0895ac8f6d416e1b15433b6b6b68eb119c6e8b04fdb66db665d684355ef89345";
   };
 
-  buildInputs = [ pkgconfig glib dbus.libs intltool udev libgdu ];
+  buildInputs = [ pkgconfig glib dbus.libs intltool udev libgdu fuse ];
 
   meta = {
     description = "Virtual Filesystem support library (for Xfce)";
diff --git a/pkgs/development/compilers/dev86/default.nix b/pkgs/development/compilers/dev86/default.nix
index 0dfb0be96f93..539588ac3add 100644
--- a/pkgs/development/compilers/dev86/default.nix
+++ b/pkgs/development/compilers/dev86/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation {
-  name = "dev86-0.16.18";
+  name = "dev86-0.16.19";
   
   src = fetchurl {
-    url = http://www.debath.co.uk/dev86/Dev86src-0.16.18.tar.gz;
-    sha256 = "1wcg2x8i2fq7kqgazx2il3qfmikyi4kfb23vm45yxlwq72l55604";
+    url = http://www.debath.co.uk/dev86/Dev86src-0.16.19.tar.gz;
+    sha256 = "33398b87ca85e2b69e4062cf59f2f7354af46da5edcba036c6f97bae17b8d00e";
   };
 
   makeFlags = "PREFIX=$(out)";
diff --git a/pkgs/development/compilers/gcc/4.5/default.nix b/pkgs/development/compilers/gcc/4.5/default.nix
index b3c639c6f0ae..9cf38718a473 100644
--- a/pkgs/development/compilers/gcc/4.5/default.nix
+++ b/pkgs/development/compilers/gcc/4.5/default.nix
@@ -40,7 +40,7 @@ assert libelf != null -> zlib != null;
 with stdenv.lib;
 with builtins;
 
-let version = "4.5.3";
+let version = "4.5.4";
     javaEcj = fetchurl {
       # The `$(top_srcdir)/ecj.jar' file is automatically picked up at
       # `configure' time.
diff --git a/pkgs/development/compilers/gcc/4.5/sources.nix b/pkgs/development/compilers/gcc/4.5/sources.nix
index acf1ec2971cb..71e1e483cacd 100644
--- a/pkgs/development/compilers/gcc/4.5/sources.nix
+++ b/pkgs/development/compilers/gcc/4.5/sources.nix
@@ -1,26 +1,26 @@
 /* Automatically generated by `update-gcc.sh', do not edit.
-   For GCC 4.5.3.  */
+   For GCC 4.5.4.  */
 { fetchurl, optional, version, langC, langCC, langFortran, langJava, langAda }:
 
-assert version == "4.5.3";
+assert version == "4.5.4";
 optional /* langC */ true (fetchurl {
   url = "mirror://gcc/releases/gcc-${version}/gcc-core-${version}.tar.bz2";
-  sha256 = "fef7ef1396d41f4af2dacbea8826a895060a8a72d9f05546c091085b036f1f87";
+  sha256 = "894d90f72cbfc8707e330fa2b1847c443fa97cf9b7f26e86be554709510e624a";
 }) ++
 optional langCC (fetchurl {
   url = "mirror://gcc/releases/gcc-${version}/gcc-g++-${version}.tar.bz2";
-  sha256 = "e088b9fe0016070da921f353ef8c0c2f81fd11d21e3aeb09210ab7bad080804b";
+  sha256 = "f7e3bab5e22713fbce46c2acb35fb727748473a34a942ce00393d75e1b09b6b9";
 }) ++
 optional langFortran (fetchurl {
   url = "mirror://gcc/releases/gcc-${version}/gcc-fortran-${version}.tar.bz2";
-  sha256 = "618e8a2334eb3e2baf00891e9b2da47f32e797520e230acddb5f02fada0006cd";
+  sha256 = "cf0803b4f5334a526dd8da1b2171d6724f50c17346b2d5c509b6abc973d2ef34";
 }) ++
 optional langJava (fetchurl {
   url = "mirror://gcc/releases/gcc-${version}/gcc-java-${version}.tar.bz2";
-  sha256 = "c687198d4882c9d505eeb406595dad041602a5b6c67da5cf15d4941b34d20144";
+  sha256 = "c98398da6f8c4c7d1758e291089d99853fdd27112cd3f146b7a8c26e6d762a23";
 }) ++
 optional langAda (fetchurl {
   url = "mirror://gcc/releases/gcc-${version}/gcc-ada-${version}.tar.bz2";
-  sha256 = "686a6d2453bc325f32ddc90edf86502dc68320c7cd6948d60d93d0b0f5965b8f";
+  sha256 = "8abddae15be65572b4d639bd9818057019bb4a45da4decfc6451511c8d580c5e";
 }) ++
 []
diff --git a/pkgs/development/compilers/gcc/4.7/builder.sh b/pkgs/development/compilers/gcc/4.7/builder.sh
new file mode 100644
index 000000000000..4ae7a1c193b9
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.7/builder.sh
@@ -0,0 +1,249 @@
+source $stdenv/setup
+
+
+export NIX_FIXINC_DUMMY=$NIX_BUILD_TOP/dummy
+mkdir $NIX_FIXINC_DUMMY
+
+
+if test "$staticCompiler" = "1"; then
+    EXTRA_LDFLAGS="-static"
+else
+    EXTRA_LDFLAGS=""
+fi
+
+# GCC interprets empty paths as ".", which we don't want.
+if test -z "$CPATH"; then unset CPATH; fi
+if test -z "$LIBRARY_PATH"; then unset LIBRARY_PATH; fi
+echo "\$CPATH is \`$CPATH'"
+echo "\$LIBRARY_PATH is \`$LIBRARY_PATH'"
+
+if test "$noSysDirs" = "1"; then
+
+    if test -e $NIX_GCC/nix-support/orig-libc; then
+
+        # Figure out what extra flags to pass to the gcc compilers
+        # being generated to make sure that they use our glibc.
+        extraFlags="$(cat $NIX_GCC/nix-support/libc-cflags)"
+        extraLDFlags="$(cat $NIX_GCC/nix-support/libc-ldflags) $(cat $NIX_GCC/nix-support/libc-ldflags-before)"
+
+        # Use *real* header files, otherwise a limits.h is generated
+        # that does not include Glibc's limits.h (notably missing
+        # SSIZE_MAX, which breaks the build).
+        export NIX_FIXINC_DUMMY=$(cat $NIX_GCC/nix-support/orig-libc)/include
+
+        # The path to the Glibc binaries such as `crti.o'.
+        glibc_libdir="$(cat $NIX_GCC/nix-support/orig-libc)/lib"
+        
+    else
+        # Hack: support impure environments.
+        extraFlags="-isystem /usr/include"
+        extraLDFlags="-L/usr/lib64 -L/usr/lib"
+        glibc_libdir="/usr/lib"
+        export NIX_FIXINC_DUMMY=/usr/include
+    fi
+
+    extraFlags="-I$NIX_FIXINC_DUMMY $extraFlags"
+    extraLDFlags="-L$glibc_libdir -rpath $glibc_libdir $extraLDFlags"
+
+    # BOOT_CFLAGS defaults to `-g -O2'; since we override it below,
+    # make sure to explictly add them so that files compiled with the
+    # bootstrap compiler are optimized and (optionally) contain
+    # debugging information (info "(gccinstall) Building").
+    if test -n "$dontStrip"; then
+	extraFlags="-O2 -g $extraFlags"
+    else
+	# Don't pass `-g' at all; this saves space while building.
+	extraFlags="-O2 $extraFlags"
+    fi
+
+    EXTRA_FLAGS="$extraFlags"
+    for i in $extraLDFlags; do
+        EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,$i"
+    done
+
+    if test -n "$targetConfig"; then
+        # Cross-compiling, we need gcc not to read ./specs in order to build
+        # the g++ compiler (after the specs for the cross-gcc are created).
+        # Having LIBRARY_PATH= makes gcc read the specs from ., and the build
+        # breaks. Having this variable comes from the default.nix code to bring
+        # gcj in.
+        unset LIBRARY_PATH
+        unset CPATH
+        if test -z "$crossStageStatic"; then
+            EXTRA_TARGET_CFLAGS="-B${libcCross}/lib -idirafter ${libcCross}/include"
+            EXTRA_TARGET_LDFLAGS="-Wl,-L${libcCross}/lib"
+        fi
+    else
+        if test -z "$NIX_GCC_CROSS"; then
+            EXTRA_TARGET_CFLAGS="$EXTRA_FLAGS"
+            EXTRA_TARGET_CXXFLAGS="$EXTRA_FLAGS"
+            EXTRA_TARGET_LDFLAGS="$EXTRA_LDFLAGS"
+        else
+            # This the case of cross-building the gcc.
+            # We need special flags for the target, different than those of the build
+            # Assertion:
+            test -e $NIX_GCC_CROSS/nix-support/orig-libc
+
+            # Figure out what extra flags to pass to the gcc compilers
+            # being generated to make sure that they use our glibc.
+            extraFlags="$(cat $NIX_GCC_CROSS/nix-support/libc-cflags)"
+            extraLDFlags="$(cat $NIX_GCC_CROSS/nix-support/libc-ldflags) $(cat $NIX_GCC_CROSS/nix-support/libc-ldflags-before)"
+
+            # Use *real* header files, otherwise a limits.h is generated
+            # that does not include Glibc's limits.h (notably missing
+            # SSIZE_MAX, which breaks the build).
+            NIX_FIXINC_DUMMY_CROSS=$(cat $NIX_GCC_CROSS/nix-support/orig-libc)/include
+
+            # The path to the Glibc binaries such as `crti.o'.
+            glibc_libdir="$(cat $NIX_GCC_CROSS/nix-support/orig-libc)/lib"
+
+            extraFlags="-I$NIX_FIXINC_DUMMY_CROSS $extraFlags"
+            extraLDFlags="-L$glibc_libdir -rpath $glibc_libdir $extraLDFlags"
+
+            EXTRA_TARGET_CFLAGS="$extraFlags"
+            for i in $extraLDFlags; do
+                EXTRA_TARGET_LDFLAGS="$EXTRA_TARGET_LDFLAGS -Wl,$i"
+            done
+        fi
+    fi
+
+
+    # CFLAGS_FOR_TARGET are needed for the libstdc++ configure script to find
+    # the startfiles.
+    # FLAGS_FOR_TARGET are needed for the target libraries to receive the -Bxxx
+    # for the startfiles.
+    makeFlagsArray=( \
+        "${makeFlagsArray[@]}" \
+        NATIVE_SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
+        SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
+        CFLAGS_FOR_BUILD="$EXTRA_FLAGS $EXTRA_LDFLAGS" \
+        CXXFLAGS_FOR_BUILD="$EXTRA_FLAGS $EXTRA_LDFLAGS" \
+        CFLAGS_FOR_TARGET="$EXTRA_TARGET_CFLAGS $EXTRA_TARGET_LDFLAGS" \
+        CXXFLAGS_FOR_TARGET="$EXTRA_TARGET_CFLAGS $EXTRA_TARGET_LDFLAGS" \
+        FLAGS_FOR_TARGET="$EXTRA_TARGET_CFLAGS $EXTRA_TARGET_LDFLAGS" \
+        LDFLAGS_FOR_BUILD="$EXTRA_FLAGS $EXTRA_LDFLAGS" \
+        LDFLAGS_FOR_TARGET="$EXTRA_TARGET_LDFLAGS $EXTRA_TARGET_LDFLAGS" \
+        )
+
+    if test -z "$targetConfig"; then
+        makeFlagsArray=( \
+            "${makeFlagsArray[@]}" \
+            BOOT_CFLAGS="$EXTRA_FLAGS $EXTRA_LDFLAGS" \
+            BOOT_LDFLAGS="$EXTRA_TARGET_CFLAGS $EXTRA_TARGET_LDFLAGS" \
+            )
+    fi
+
+    if test -n "$targetConfig" -a "$crossStageStatic" == 1; then
+        # We don't want the gcc build to assume there will be a libc providing
+        # limits.h in this stagae
+        makeFlagsArray=( \
+            "${makeFlagsArray[@]}" \
+            LIMITS_H_TEST=false \
+            )
+    else
+        makeFlagsArray=( \
+            "${makeFlagsArray[@]}" \
+            LIMITS_H_TEST=true \
+            )
+    fi
+fi
+
+if test -n "$targetConfig"; then
+    # The host strip will destroy some important details of the objects
+    dontStrip=1
+fi
+
+
+preConfigure() {
+    if test -n "$newlibSrc"; then
+        tar xvf "$newlibSrc" -C ..
+        ln -s ../newlib-*/newlib newlib
+        # Patch to get armvt5el working:
+        sed -i -e 's/ arm)/ arm*)/' newlib/configure.host
+    fi
+    # Bug - they packaged zlib
+    if test -d "zlib"; then
+        # This breaks the build without-headers, which should build only
+        # the target libgcc as target libraries.
+        # See 'configure:5370'
+        rm -Rf zlib
+    fi
+
+    if test -f "$NIX_GCC/nix-support/orig-libc"; then
+        # Patch the configure script so it finds glibc headers.  It's
+        # important for example in order not to get libssp built,
+        # because its functionality is in glibc already.
+        glibc_headers="$(cat $NIX_GCC/nix-support/orig-libc)/include"
+        sed -i \
+            -e "s,glibc_header_dir=/usr/include,glibc_header_dir=$glibc_headers", \
+            gcc/configure
+    fi
+
+    if test -n "$crossMingw" -a -n "$crossStageStatic"; then
+        mkdir -p ../mingw
+        # --with-build-sysroot expects that:
+        cp -R $libcCross/include ../mingw
+        configureFlags="$configureFlags --with-build-sysroot=`pwd`/.."
+    fi
+
+    # Perform the build in a different directory.
+    mkdir ../build
+    cd ../build
+    configureScript=../$sourceRoot/configure
+}
+
+
+postConfigure() {
+    # Don't store the configure flags in the resulting executables.
+    sed -e '/TOPLEVEL_CONFIGURE_ARGUMENTS=/d' -i Makefile
+}
+
+
+postInstall() {
+    # Remove precompiled headers for now.  They are very big and
+    # probably not very useful yet.
+    find $out/include -name "*.gch" -exec rm -rf {} \; -prune
+
+    # Remove `fixincl' to prevent a retained dependency on the
+    # previous gcc.
+    rm -rf $out/libexec/gcc/*/*/install-tools
+    rm -rf $out/lib/gcc/*/*/install-tools
+    
+    # More dependencies with the previous gcc or some libs (gccbug stores the build command line)
+    rm -rf $out/bin/gccbug
+    # Take out the bootstrap-tools from the rpath, as it's not needed at all having $out
+    for i in $out/libexec/gcc/*/*/*; do
+        if PREV_RPATH=`patchelf --print-rpath $i`; then
+            patchelf --set-rpath `echo $PREV_RPATH | sed 's,:[^:]*bootstrap-tools/lib,,'` $i
+        fi
+    done
+
+    # Get rid of some "fixed" header files
+    rm -rf $out/lib/gcc/*/*/include/root
+
+    # Replace hard links for i686-pc-linux-gnu-gcc etc. with symlinks.
+    for i in $out/bin/*-gcc*; do
+        if cmp -s $out/bin/gcc $i; then
+            ln -sfn gcc $i
+        fi
+    done
+
+    for i in $out/bin/c++ $out/bin/*-c++* $out/bin/*-g++*; do
+        if cmp -s $out/bin/g++ $i; then
+            ln -sfn g++ $i
+        fi
+    done
+
+    eval "$postInstallGhdl"
+}
+
+
+if test -z "$targetConfig" && test -z "$crossConfig"; then
+    if test -z "$profiledCompiler"; then
+        buildFlags="bootstrap $buildFlags"
+    else    
+        buildFlags="profiledbootstrap $buildFlags"
+    fi
+fi
+
+genericBuild
diff --git a/pkgs/development/compilers/gcc/4.7/default.nix b/pkgs/development/compilers/gcc/4.7/default.nix
new file mode 100644
index 000000000000..2a45dc50c6de
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.7/default.nix
@@ -0,0 +1,452 @@
+{ stdenv, fetchurl, noSysDirs
+, langC ? true, langCC ? true, langFortran ? false
+, langJava ? false
+, langAda ? false
+, langVhdl ? false
+, langGo ? false
+, profiledCompiler ? false
+, staticCompiler ? false
+, enableShared ? true
+, texinfo ? null
+, perl ? null # optional, for texi2pod (then pod2man); required for Java
+, gmp, mpfr, mpc, gettext, which
+, libelf                      # optional, for link-time optimizations (LTO)
+, ppl ? null, cloog ? null # optional, for the Graphite optimization framework.
+, zlib ? null, boehmgc ? null
+, zip ? null, unzip ? null, pkgconfig ? null, gtk ? null, libart_lgpl ? null
+, libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null
+, libXrender ? null, xproto ? null, renderproto ? null, xextproto ? null
+, libXrandr ? null, libXi ? null, inputproto ? null, randrproto ? null
+, gnatboot ? null
+, enableMultilib ? false
+, enablePlugin ? true             # whether to support user-supplied plug-ins
+, name ? "gcc"
+, cross ? null
+, binutilsCross ? null
+, libcCross ? null
+, crossStageStatic ? true
+, gnat ? null
+, libpthread ? null, libpthreadCross ? null  # required for GNU/Hurd
+, stripped ? true
+, gnused ? null
+}:
+
+assert langJava     -> zip != null && unzip != null
+                       && zlib != null && boehmgc != null
+                       && perl != null;  # for `--enable-java-home'
+assert langAda      -> gnatboot != null;
+assert langVhdl     -> gnat != null;
+
+# LTO needs libelf and zlib.
+assert libelf != null -> zlib != null;
+
+# Make sure we get GNU sed.
+assert stdenv.isDarwin -> gnused != null;
+
+# The go frontend is written in c++
+assert langGo -> langCC;
+
+with stdenv.lib;
+with builtins;
+
+let version = "4.7.2";
+
+    # Whether building a cross-compiler for GNU/Hurd.
+    crossGNU = cross != null && cross.config == "i586-pc-gnu";
+
+    patches = [ ]
+      ++ optional (cross != null) ./libstdc++-target.patch
+      # ++ optional noSysDirs ./no-sys-dirs.patch
+      # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
+      # target libraries and tools.
+      ++ optional langAda ./gnat-cflags.patch
+      ++ optional langFortran ./gfortran-driving.patch
+      ++ optional (stdenv.isGNU || crossGNU) ./hurd-sigrtmin.patch;
+
+    javaEcj = fetchurl {
+      # The `$(top_srcdir)/ecj.jar' file is automatically picked up at
+      # `configure' time.
+
+      # XXX: Eventually we might want to take it from upstream.
+      url = "ftp://sourceware.org/pub/java/ecj-4.3.jar";
+      sha256 = "0jz7hvc0s6iydmhgh5h2m15yza7p2rlss2vkif30vm9y77m97qcx";
+    };
+
+    # Antlr (optional) allows the Java `gjdoc' tool to be built.  We want a
+    # binary distribution here to allow the whole chain to be bootstrapped.
+    javaAntlr = fetchurl {
+      url = http://www.antlr.org/download/antlr-3.1.3.jar;
+      sha256 = "1f41j0y4kjydl71lqlvr73yagrs2jsg1fjymzjz66mjy7al5lh09";
+    };
+
+    xlibs = [
+      libX11 libXt libSM libICE libXtst libXrender libXrandr libXi
+      xproto renderproto xextproto inputproto randrproto
+    ];
+
+    javaAwtGtk = langJava && gtk != null;
+
+    /* Cross-gcc settings */
+    gccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null cross;
+    gccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null cross;
+    gccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null cross;
+    withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
+    withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
+    withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
+    crossMingw = (cross != null && cross.libc == "msvcrt");
+
+    crossConfigureFlags =
+      "--target=${cross.config}" +
+      withArch +
+      withCpu +
+      withAbi +
+      (if (crossMingw && crossStageStatic) then
+        " --with-headers=${libcCross}/include" +
+        " --with-gcc" +
+        " --with-gnu-as" +
+        " --with-gnu-ld" +
+        " --with-gnu-ld" +
+        " --disable-shared" +
+        " --disable-nls" +
+        " --disable-debug" +
+        " --enable-sjlj-exceptions" +
+        " --enable-threads=win32" +
+        " --disable-win32-registry"
+        else if crossStageStatic then
+        " --disable-libssp --disable-nls" +
+        " --without-headers" +
+        " --disable-threads " +
+        " --disable-libmudflap " +
+        " --disable-libgomp " +
+        " --disable-libquadmath" +
+        " --disable-shared" +
+        " --disable-decimal-float" # libdecnumber requires libc
+        else
+        " --with-headers=${libcCross}/include" +
+        " --enable-__cxa_atexit" +
+        " --enable-long-long" +
+        (if crossMingw then
+          " --enable-threads=win32" +
+          " --enable-sjlj-exceptions" +
+          " --enable-hash-synchronization" +
+          " --disable-libssp" +
+          " --disable-nls" +
+          " --with-dwarf2" +
+          # I think noone uses shared gcc libs in mingw, so we better do the same.
+          # In any case, mingw32 g++ linking is broken by default with shared libs,
+          # unless adding "-lsupc++" to any linking command. I don't know why.
+          " --disable-shared" +
+          (if cross.config == "x86_64-w64-mingw32" then
+            # To keep ABI compatibility with upstream mingw-w64
+            " --enable-fully-dynamic-string"
+            else "")
+          else (if cross.libc == "uclibc" then
+            # In uclibc cases, libgomp needs an additional '-ldl'
+            # and as I don't know how to pass it, I disable libgomp.
+            " --disable-libgomp" else "") +
+          " --enable-threads=posix" +
+          " --enable-nls" +
+          " --disable-decimal-float") # No final libdecnumber (it may work only in 386)
+        );
+    stageNameAddon = if (crossStageStatic) then "-stage-static" else
+      "-stage-final";
+    crossNameAddon = if (cross != null) then "-${cross.config}" + stageNameAddon else "";
+
+in
+
+# We need all these X libraries when building AWT with GTK+.
+assert gtk != null -> (filter (x: x == null) xlibs) == [];
+
+stdenv.mkDerivation ({
+  name = "${name}${if stripped then "" else "-debug"}-${version}" + crossNameAddon;
+
+  builder = ./builder.sh;
+
+  src = fetchurl {
+    url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2";
+    sha256 = "115h03hil99ljig8lkrq4qk426awmzh0g99wrrggxf8g07bq74la";
+  };
+
+  inherit patches;
+
+  postPatch =
+    if (stdenv.isGNU
+        || (libcCross != null                  # e.g., building `gcc.hostDrv'
+            && libcCross ? crossConfig
+            && libcCross.crossConfig == "i586-pc-gnu")
+        || (crossGNU && libcCross != null))
+    then
+      # On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
+      # in glibc, so add the right `-I' flags to the default spec string.
+      assert libcCross != null -> libpthreadCross != null;
+      let
+        libc = if libcCross != null then libcCross else stdenv.glibc;
+        gnu_h = "gcc/config/gnu.h";
+        i386_gnu_h = "gcc/config/i386/gnu.h";
+        extraCPPDeps =
+             libc.propagatedBuildInputs
+          ++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross
+          ++ stdenv.lib.optional (libpthread != null) libpthread;
+        extraCPPSpec =
+          concatStrings (intersperse " "
+                          (map (x: "-I${x}/include") extraCPPDeps));
+        extraLibSpec =
+          if libpthreadCross != null
+          then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}"
+          else "-L${libpthread}/lib";
+      in
+        '' echo "augmenting \`CPP_SPEC' in \`${i386_gnu_h}' with \`${extraCPPSpec}'..."
+           sed -i "${i386_gnu_h}" \
+               -es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g'
+
+           echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..."
+           sed -i "${gnu_h}" \
+               -es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g'
+
+           echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc}/include'..."
+           sed -i "${gnu_h}" \
+               -es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc}/include"|g'
+           sed -i gcc/config/t-gnu \
+               -es'|NATIVE_SYSTEM_HEADER_DIR.*$|NATIVE_SYSTEM_HEADER_DIR = ${libc}/include|g'
+        ''
+    else if cross != null || stdenv.gcc.libc != null then
+      # On NixOS, use the right path to the dynamic linker instead of
+      # `/lib/ld*.so'.
+      let
+        libc = if (libcCross != null) then libcCross else stdenv.gcc.libc;
+      in
+        '' echo "fixing the \`GLIBC_DYNAMIC_LINKER' and \`UCLIBC_DYNAMIC_LINKER' macros..."
+           for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h
+           do
+             grep -q LIBC_DYNAMIC_LINKER "$header" || continue
+             echo "  fixing \`$header'..."
+             sed -i "$header" \
+                 -e 's|define[[:blank:]]*\([UCG]\+\)LIBC_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define \1LIBC_DYNAMIC_LINKER\2 "${libc}\3"|g'
+           done
+        ''
+    else null;
+
+  inherit noSysDirs profiledCompiler staticCompiler langJava crossStageStatic
+    libcCross crossMingw;
+
+  buildNativeInputs = [ texinfo which gettext ]
+    ++ (optional (perl != null) perl)
+    ++ (optional javaAwtGtk pkgconfig);
+
+  buildInputs = [ gmp mpfr mpc libelf ]
+    ++ (optional (ppl != null) ppl)
+    ++ (optional (cloog != null) cloog)
+    ++ (optional (zlib != null) zlib)
+    ++ (optionals langJava [ boehmgc zip unzip ])
+    ++ (optionals javaAwtGtk ([ gtk libart_lgpl ] ++ xlibs))
+    ++ (optionals (cross != null) [binutilsCross])
+    ++ (optionals langAda [gnatboot])
+    ++ (optionals langVhdl [gnat])
+
+    # The builder relies on GNU sed (for instance, Darwin's `sed' fails with
+    # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
+    ++ (optional stdenv.isDarwin gnused)
+    ;
+
+  configureFlagsArray = stdenv.lib.optionals
+    (ppl != null && ppl ? dontDisableStatic && ppl.dontDisableStatic)
+        [ "--with-host-libstdcxx=-lstdc++ -lgcc_s" ];
+
+  # 'iant' at #go-nuts@freenode, gccgo maintainer, said that
+  # they have a bug in 4.7.1 if adding "--disable-static"
+  dontDisableStatic = langGo;
+
+  configureFlags = "
+    ${if enableMultilib then "" else "--disable-multilib"}
+    ${if enableShared then "" else "--disable-shared"}
+    ${if enablePlugin then "--enable-plugin" else ""}
+    ${if ppl != null then "--with-ppl=${ppl}" else ""}
+    ${if cloog != null then
+      "--with-cloog=${cloog} --enable-cloog-backend=isl"
+      else ""}
+    ${if langJava then
+      "--with-ecj-jar=${javaEcj} " +
+
+      # Follow Sun's layout for the convenience of IcedTea/OpenJDK.  See
+      # <http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2010-April/008888.html>.
+      "--enable-java-home --with-java-home=\${prefix}/lib/jvm/jre "
+      else ""}
+    ${if javaAwtGtk then "--enable-java-awt=gtk" else ""}
+    ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr}" else ""}
+    --with-gmp=${gmp}
+    --with-mpfr=${mpfr}
+    --with-mpc=${mpc}
+    ${if (libelf != null) then "--with-libelf=${libelf}" else ""}
+    --disable-libstdcxx-pch
+    --without-included-gettext
+    --with-system-zlib
+    --enable-languages=${
+      concatStrings (intersperse ","
+        (  optional langC        "c"
+        ++ optional langCC       "c++"
+        ++ optional langFortran  "fortran"
+        ++ optional langJava     "java"
+        ++ optional langAda      "ada"
+        ++ optional langVhdl     "vhdl"
+        ++ optional langGo       "go"
+        )
+      )
+    }
+    ${if (stdenv ? glibc) then " --with-native-system-header-dir=${stdenv.glibc}/include" else ""}
+    ${ # Trick that should be taken out once we have a mips64el-linux not loongson2f
+      if cross == null && stdenv.system == "mips64el-linux" then "--with-arch=loongson2f" else ""}
+    ${if langAda then " --enable-libada" else ""}
+    ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+    ${if cross != null then crossConfigureFlags else ""}
+  ";
+
+  targetConfig = if (cross != null) then cross.config else null;
+
+  installTargets =
+    if stripped
+    then "install-strip"
+    else "install";
+
+  crossAttrs = {
+    patches = patches ++ [ ./hurd-sigrtmin.patch ];
+    AR = "${stdenv.cross.config}-ar";
+    LD = "${stdenv.cross.config}-ld";
+    CC = "${stdenv.cross.config}-gcc";
+    CXX = "${stdenv.cross.config}-gcc";
+    AR_FOR_TARGET = "${stdenv.cross.config}-ar";
+    LD_FOR_TARGET = "${stdenv.cross.config}-ld";
+    CC_FOR_TARGET = "${stdenv.cross.config}-gcc";
+    NM_FOR_TARGET = "${stdenv.cross.config}-nm";
+    CXX_FOR_TARGET = "${stdenv.cross.config}-g++";
+    # If we are making a cross compiler, cross != null
+    NIX_GCC_CROSS = if cross == null then "${stdenv.gccCross}" else "";
+    dontStrip = true;
+    configureFlags = ''
+      ${if enableMultilib then "" else "--disable-multilib"}
+      ${if enableShared then "" else "--disable-shared"}
+      ${if ppl != null then "--with-ppl=${ppl.hostDrv}" else ""}
+      ${if cloog != null then "--with-cloog=${cloog.hostDrv} --enable-cloog-backend=isl" else ""}
+      ${if langJava then "--with-ecj-jar=${javaEcj.hostDrv}" else ""}
+      ${if javaAwtGtk then "--enable-java-awt=gtk" else ""}
+      ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.hostDrv}" else ""}
+      --with-gmp=${gmp.hostDrv}
+      --with-mpfr=${mpfr.hostDrv}
+      --disable-libstdcxx-pch
+      --without-included-gettext
+      --with-system-zlib
+      --enable-languages=${
+        concatStrings (intersperse ","
+          (  optional langC        "c"
+          ++ optional langCC       "c++"
+          ++ optional langFortran  "fortran"
+          ++ optional langJava     "java"
+          ++ optional langAda      "ada"
+          ++ optional langVhdl     "vhdl"
+          ++ optional langGo       "go"
+          )
+        )
+      }
+      ${if langAda then " --enable-libada" else ""}
+      ${if (cross == null && stdenv.isi686) then "--with-arch=i686" else ""}
+      ${if cross != null then crossConfigureFlags else ""}
+      --target=${stdenv.cross.config}
+    '';
+  };
+
+
+  # Needed for the cross compilation to work
+  AR = "ar";
+  LD = "ld";
+  CC = "gcc";
+
+  # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find
+  # the library headers and binaries, regarless of the language being
+  # compiled.
+
+  # Note: When building the Java AWT GTK+ peer, the build system doesn't
+  # honor `--with-gmp' et al., e.g., when building
+  # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just
+  # add them to $CPATH and $LIBRARY_PATH in this case.
+  #
+  # Likewise, the LTO code doesn't find zlib.
+
+  CPATH = concatStrings
+            (intersperse ":" (map (x: x + "/include")
+                                  (optionals (zlib != null) [ zlib ]
+                                   ++ optionals langJava [ boehmgc ]
+                                   ++ optionals javaAwtGtk xlibs
+                                   ++ optionals javaAwtGtk [ gmp mpfr ]
+                                   ++ optional (libpthread != null) libpthread
+                                   ++ optional (libpthreadCross != null) libpthreadCross
+
+                                   # On GNU/Hurd glibc refers to Mach & Hurd
+                                   # headers.
+                                   ++ optionals (libcCross != null &&
+                                                 hasAttr "propagatedBuildInputs" libcCross)
+                                        libcCross.propagatedBuildInputs)));
+
+  LIBRARY_PATH = concatStrings
+                   (intersperse ":" (map (x: x + "/lib")
+                                         (optionals (zlib != null) [ zlib ]
+                                          ++ optionals langJava [ boehmgc ]
+                                          ++ optionals javaAwtGtk xlibs
+                                          ++ optionals javaAwtGtk [ gmp mpfr ]
+                                          ++ optional (libpthread != null) libpthread)));
+
+  EXTRA_TARGET_CFLAGS =
+    if cross != null && libcCross != null
+    then "-idirafter ${libcCross}/include"
+    else null;
+
+  EXTRA_TARGET_LDFLAGS =
+    if cross != null && libcCross != null
+    then "-B${libcCross}/lib -Wl,-L${libcCross}/lib" +
+         (optionalString (libpthreadCross != null)
+           " -L${libpthreadCross}/lib -Wl,${libpthreadCross.TARGET_LDFLAGS}")
+    else null;
+
+  passthru = { inherit langC langCC langAda langFortran langVhdl
+      langGo enableMultilib version; };
+
+  /* From gccinstall.info:
+     "parallel make is currently not supported since collisions in profile
+     collecting may occur"
+  */
+  enableParallelBuilding = !profiledCompiler;
+
+  meta = {
+    homepage = http://gcc.gnu.org/;
+    license = "GPLv3+";  # runtime support libraries are typically LGPLv3+
+    description = "GNU Compiler Collection, version ${version}"
+      + (if stripped then "" else " (with debugging info)");
+
+    longDescription = ''
+      The GNU Compiler Collection includes compiler front ends for C, C++,
+      Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well
+      as libraries for these languages (libstdc++, libgcj, libgomp,...).
+
+      GCC development is a part of the GNU Project, aiming to improve the
+      compiler used in the GNU system including the GNU/Linux variant.
+    '';
+
+    maintainers = [
+      stdenv.lib.maintainers.ludo
+      stdenv.lib.maintainers.viric
+      stdenv.lib.maintainers.shlevy
+    ];
+
+    # Volunteers needed for the {Cyg,Dar}win ports of *PPL.
+    # gnatboot is not available out of linux platforms, so we disable the darwin build
+    # for the gnat (ada compiler).
+    platforms = stdenv.lib.platforms.linux ++ optionals (langAda == false && libelf == null) [ "i686-darwin" ];
+  };
+}
+
+// optionalAttrs (cross != null && cross.libc == "msvcrt" && crossStageStatic) {
+  makeFlags = [ "all-gcc" "all-target-libgcc" ];
+  installTargets = "install-gcc install-target-libgcc";
+}
+
+# Strip kills static libs of other archs (hence cross != null)
+// optionalAttrs (!stripped || cross != null) { dontStrip = true; NIX_STRIP_DEBUG = 0; }
+)
diff --git a/pkgs/development/compilers/gcc/4.7/gfortran-driving.patch b/pkgs/development/compilers/gcc/4.7/gfortran-driving.patch
new file mode 100644
index 000000000000..70708886b405
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.7/gfortran-driving.patch
@@ -0,0 +1,20 @@
+This patch fixes interaction with Libtool.
+See <http://thread.gmane.org/gmane.comp.gcc.patches/258777>, for details.
+
+--- a/gcc/fortran/gfortranspec.c
++++ b/gcc/fortran/gfortranspec.c
+@@ -461,8 +461,15 @@ For more information about these matters, see the file named COPYING\n\n"));
+     {
+       fprintf (stderr, _("Driving:"));
+       for (i = 0; i < g77_newargc; i++)
++	{
++	  if (g77_new_decoded_options[i].opt_index == OPT_l)
++	    /* Make sure no white space is inserted after `-l'.  */
++	    fprintf (stderr, " -l%s",
++		     g77_new_decoded_options[i].canonical_option[1]);
++	  else
+ 	fprintf (stderr, " %s",
+ 		 g77_new_decoded_options[i].orig_option_with_args_text);
++	}
+       fprintf (stderr, "\n");
+     }
diff --git a/pkgs/development/compilers/gcc/4.7/gnat-cflags.patch b/pkgs/development/compilers/gcc/4.7/gnat-cflags.patch
new file mode 100644
index 000000000000..bf2acf065e9b
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.7/gnat-cflags.patch
@@ -0,0 +1,33 @@
+diff --git a/libada/Makefile.in b/libada/Makefile.in
+index f5057a0..337e0c6 100644
+--- a/libada/Makefile.in
++++ b/libada/Makefile.in
+@@ -55,7 +55,7 @@ GCC_WARN_CFLAGS = $(LOOSE_WARN)
+ WARN_CFLAGS = @warn_cflags@
+ 
+ TARGET_LIBGCC2_CFLAGS=
+-GNATLIBCFLAGS= -g -O2
++GNATLIBCFLAGS= -g -O2 $(CFLAGS)
+ GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -fexceptions \
+ 	-DIN_RTS @have_getipinfo@
+ 
+--- a/gcc/ada/gcc-interface/Makefile.in
++++ b/gcc/ada/gcc-interface/Makefile.in
+@@ -105,7 +105,7 @@ ADAFLAGS = -W -Wall -gnatpg -gnata
+ SOME_ADAFLAGS =-gnata
+ FORCE_DEBUG_ADAFLAGS = -g
+ GNATLIBFLAGS = -gnatpg -nostdinc
+-GNATLIBCFLAGS = -g -O2
++GNATLIBCFLAGS = -g -O2 $(CFLAGS_FOR_TARGET)
+ # Pretend that _Unwind_GetIPInfo is available for the target by default.  This
+ # should be autodetected during the configuration of libada and passed down to
+ # here, but we need something for --disable-libada and hope for the best.
+@@ -193,7 +193,7 @@ RTSDIR = rts$(subst /,_,$(MULTISUBDIR))
+ # Link flags used to build gnat tools.  By default we prefer to statically
+ # link with libgcc to avoid a dependency on shared libgcc (which is tricky
+ # to deal with as it may conflict with the libgcc provided by the system).
+-GCC_LINK_FLAGS=-static-libgcc
++GCC_LINK_FLAGS=-static-libgcc $(CFLAGS_FOR_TARGET)
+ 
+ # End of variables for you to override.
+ 
diff --git a/pkgs/development/compilers/gcc/4.7/hurd-sigrtmin.patch b/pkgs/development/compilers/gcc/4.7/hurd-sigrtmin.patch
new file mode 100644
index 000000000000..dc8236d2b99f
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.7/hurd-sigrtmin.patch
@@ -0,0 +1,14 @@
+GNU libc on GNU/Hurd doesn't define `__SIGRTMIN'.
+From <http://patch-tracker.debian.org/patch/series/view/gcc-4.6/4.6.3-1/hurd-fixes.diff>.
+
+--- a/libgcc/generic-morestack.c	2011-12-19 21:14:52.000000000 +0100
++++ b/libgcc/generic-morestack.c	2011-12-19 21:15:35.000000000 +0100
+@@ -507,7 +507,7 @@
+   sigemptyset (&__morestack_initial_sp.mask);
+ 
+   sigfillset (&__morestack_fullmask);
+-#ifdef __GLIBC__
++#if defined(__GLIBC__) && defined(__SIGRTMIN)
+   /* In glibc, the first two real time signals are used by the NPTL
+      threading library.  By taking them out of the set of signals, we
+      avoiding copying the signal mask in pthread_sigmask.  More
diff --git a/pkgs/development/compilers/gcc/4.7/java-jvgenmain-link.patch b/pkgs/development/compilers/gcc/4.7/java-jvgenmain-link.patch
new file mode 100644
index 000000000000..2612e8bfbbbc
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.7/java-jvgenmain-link.patch
@@ -0,0 +1,17 @@
+The `jvgenmain' executable must be linked against `vec.o', among others,
+since it uses its vector API.
+
+--- gcc-4.3.3/gcc/java/Make-lang.in	2008-12-05 00:00:19.000000000 +0100
++++ gcc-4.3.3/gcc/java/Make-lang.in	2009-07-03 16:11:41.000000000 +0200
+@@ -109,9 +109,9 @@ jcf-dump$(exeext): $(JCFDUMP_OBJS) $(LIB
+ 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JCFDUMP_OBJS) \
+ 		$(CPPLIBS) $(ZLIB) $(LDEXP_LIB) $(LIBS)
+ 
+-jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS)
++jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS) $(BUILD_RTL)
+ 	rm -f $@
+-	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JVGENMAIN_OBJS) $(LIBS)
++	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(JVGENMAIN_OBJS) $(BUILD_RTL) $(LIBS)
+ 
+ #
+ # Build hooks:
diff --git a/pkgs/development/compilers/gcc/4.7/libstdc++-target.patch b/pkgs/development/compilers/gcc/4.7/libstdc++-target.patch
new file mode 100644
index 000000000000..fb622b395806
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.7/libstdc++-target.patch
@@ -0,0 +1,32 @@
+Patch to make the target libraries 'configure' scripts find the proper CPP.
+I noticed that building the mingw32 cross compiler.
+Looking at the build script for mingw in archlinux, I think that only nixos
+needs this patch. I don't know why.
+diff --git a/Makefile.in b/Makefile.in
+index 93f66b6..d691917 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -266,6 +266,7 @@ BASE_TARGET_EXPORTS = \
+ 	AR="$(AR_FOR_TARGET)"; export AR; \
+ 	AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \
+ 	CC="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CC; \
++	CPP="$(CC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CC; \
+ 	CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
+ 	CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
+ 	CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
+@@ -291,11 +292,13 @@ BASE_TARGET_EXPORTS = \
+ RAW_CXX_TARGET_EXPORTS = \
+ 	$(BASE_TARGET_EXPORTS) \
+ 	CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
+-	CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX;
++	CXX="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; \
++	CXXCPP="$(RAW_CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CXX;
+ 
+ NORMAL_TARGET_EXPORTS = \
+ 	$(BASE_TARGET_EXPORTS) \
+-	CXX="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX;
++	CXX="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CXX; \
++	CXXCPP="$(CXX_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS -E"; export CXX;
+ 
+ # Where to find GMP
+ HOST_GMPLIBS = @gmplibs@
diff --git a/pkgs/development/compilers/gcc/4.7/no-sys-dirs.patch b/pkgs/development/compilers/gcc/4.7/no-sys-dirs.patch
new file mode 100644
index 000000000000..79901703cb82
--- /dev/null
+++ b/pkgs/development/compilers/gcc/4.7/no-sys-dirs.patch
@@ -0,0 +1,41 @@
+diff -ru gcc-4.3.1-orig/gcc/cppdefault.c gcc-4.3.1/gcc/cppdefault.c
+--- gcc-4.3.1-orig/gcc/cppdefault.c	2007-07-26 10:37:01.000000000 +0200
++++ gcc-4.3.1/gcc/cppdefault.c	2008-06-25 17:48:23.000000000 +0200
+@@ -41,6 +41,10 @@
+ # undef CROSS_INCLUDE_DIR
+ #endif
+ 
++#undef LOCAL_INCLUDE_DIR
++#undef SYSTEM_INCLUDE_DIR
++#undef STANDARD_INCLUDE_DIR
++
+ const struct default_include cpp_include_defaults[]
+ #ifdef INCLUDE_DEFAULTS
+ = INCLUDE_DEFAULTS;
+diff -ru gcc-4.3.1-orig/gcc/gcc.c gcc-4.3.1/gcc/gcc.c
+--- gcc-4.3.1-orig/gcc/gcc.c	2008-03-02 23:55:19.000000000 +0100
++++ gcc-4.3.1/gcc/gcc.c	2008-06-25 17:52:53.000000000 +0200
+@@ -1478,10 +1478,10 @@
+ /* Default prefixes to attach to command names.  */
+ 
+ #ifndef STANDARD_STARTFILE_PREFIX_1
+-#define STANDARD_STARTFILE_PREFIX_1 "/lib/"
++#define STANDARD_STARTFILE_PREFIX_1 ""
+ #endif
+ #ifndef STANDARD_STARTFILE_PREFIX_2
+-#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"
++#define STANDARD_STARTFILE_PREFIX_2 ""
+ #endif
+ 
+ #ifdef CROSS_DIRECTORY_STRUCTURE  /* Don't use these prefixes for a cross compiler.  */
+--- gcc-4.3.1-orig/gcc/Makefile.in	2008-05-11 20:54:15.000000000 +0200
++++ gcc-4.3.1/gcc/Makefile.in	2008-06-25 17:48:23.000000000 +0200
+@@ -3277,7 +3281,7 @@
+   -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
+   -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
+   -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
+-  -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
++  -DLOCAL_INCLUDE_DIR=\"/no-such-dir\" \
+   -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
+   -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
+   -DPREFIX=\"$(prefix)/\" \
diff --git a/pkgs/development/compilers/ghc/7.4.2-binary.nix b/pkgs/development/compilers/ghc/7.4.2-binary.nix
new file mode 100644
index 000000000000..85e10d7090ce
--- /dev/null
+++ b/pkgs/development/compilers/ghc/7.4.2-binary.nix
@@ -0,0 +1,97 @@
+{stdenv, fetchurl, perl, ncurses, gmp}:
+
+let
+  supportedPlatforms = ["x86_64-linux" "i686-linux" "i686-darwin" "x86_64-darwin"];
+in
+
+assert stdenv.lib.elem stdenv.system supportedPlatforms;
+
+stdenv.mkDerivation rec {
+  version = "7.4.2";
+
+  name = "ghc-${version}-binary";
+
+  src =
+    if stdenv.system == "i686-linux" then
+      fetchurl {
+        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
+        sha256 = "0gny7knhss0w0d9r6jm1gghrcb8kqjvj94bb7hxf9syrk4fxlcxi";
+      }
+    else if stdenv.system == "x86_64-linux" then
+      fetchurl {
+        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
+        sha256 = "043jabd0lh6n1zlqhysngbpvlsdznsa2mmsj08jyqgahw9sjb5ns";
+      }
+    else if stdenv.system == "i686-darwin" then
+      fetchurl {
+        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-apple-darwin.tar.bz2";
+        sha256 = "1vrbs3pzki37hzym1f1nh07lrqh066z3ypvm81fwlikfsvk4djc0";
+      }
+    else if stdenv.system == "x86_64-darwin" then
+      fetchurl {
+        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-apple-darwin.tar.bz2";
+        sha256 = "1imzqc0slpg0r6p40n5a9m18cbcm0m86z8dgyhfxcckksw54mzwf";
+      }
+    else throw "cannot bootstrap GHC on this platform";
+
+  buildInputs = [perl];
+
+  postUnpack =
+    # Strip is harmful, see also below. It's important that this happens
+    # first. The GHC Cabal build system makes use of strip by default and
+    # has hardcoded paths to /usr/bin/strip in many places. We replace
+    # those below, making them point to our dummy script.
+     ''
+      mkdir "$TMP/bin"
+      for i in strip; do
+        echo '#!/bin/sh' >> "$TMP/bin/$i"
+        chmod +x "$TMP/bin/$i"
+        PATH="$TMP/bin:$PATH"
+      done
+     '' +
+    # We have to patch the GMP paths for the integer-gmp package.
+     ''
+      find . -name integer-gmp.buildinfo \
+          -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp}/lib@" {} \;
+     '' +
+    # On Linux, use patchelf to modify the executables so that they can
+    # find editline/gmp.
+    (if stdenv.isLinux then ''
+      find . -type f -perm +100 \
+          -exec patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
+          --set-rpath "${ncurses}/lib:${gmp}/lib" {} \;
+      sed -i "s|/usr/bin/perl|perl\x00        |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
+      sed -i "s|/usr/bin/gcc|gcc\x00        |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
+      for prog in ld ar gcc strip ranlib; do
+        find . -name "setup-config" -exec sed -i "s@/usr/bin/$prog@$(type -p $prog)@g" {} \;
+      done
+     '' else "");
+
+  configurePhase = ''
+    ./configure --prefix=$out --with-gmp-libraries=${gmp}/lib --with-gmp-includes=${gmp}/include
+  '';
+
+  # Stripping combined with patchelf breaks the executables (they die
+  # with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
+  dontStrip = true;
+
+  # No building is necessary, but calling make without flags ironically
+  # calls install-strip ...
+  buildPhase = "true";
+
+  postInstall =
+      ''
+        # Sanity check, can ghc create executables?
+        cd $TMP
+        mkdir test-ghc; cd test-ghc
+        cat > main.hs << EOF
+          module Main where
+          main = putStrLn "yes"
+        EOF
+        $out/bin/ghc --make main.hs
+        echo compilation ok
+        [ $(./main) == "yes" ]
+      '';
+
+  meta.platforms = supportedPlatforms;
+}
diff --git a/pkgs/development/compilers/ghc/7.6.1.nix b/pkgs/development/compilers/ghc/7.6.1.nix
new file mode 100644
index 000000000000..335befb6c125
--- /dev/null
+++ b/pkgs/development/compilers/ghc/7.6.1.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, ghc, perl, gmp, ncurses }:
+
+stdenv.mkDerivation rec {
+  version = "7.6.1";
+
+  name = "ghc-${version}";
+
+  src = fetchurl {
+    url = "http://haskell.org/ghc/dist/7.6.1/${name}-src.tar.bz2";
+    sha256 = "1q5rqp8z90mq6ysf7h28zkbhfaxlrpva2qy0wnkr43d7214dzp7i";
+  };
+
+  buildInputs = [ ghc perl gmp ncurses ];
+
+  # My attempts to compile GHC with parallel build support enabled, failed
+  # 4 consecutive times with the following error:
+  #
+  #    building rts/dist/build/AutoApply.debug_o
+  #    building rts/dist/build/AutoApply.thr_o
+  #      rts_dist_HC rts/dist/build/AutoApply.debug_o
+  #    /nix/store/1iigiim5855m8j7pmwf5xrnpf705s4dh-binutils-2.21.1a/bin/ld: cannot find libraries/integer-gmp/dist-install/build/cbits/gmp-wrappers_o_split/gmp-wrappers__1.o
+  #    collect2: ld returned 1 exit status
+  #    make[1]: *** [libraries/integer-gmp/dist-install/build/cbits/gmp-wrappers.p_o] Error 1
+  enableParallelBuilding = false;
+
+  buildMK = ''
+    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-libraries="${gmp}/lib"
+    libraries/integer-gmp_CONFIGURE_OPTS += --configure-option=--with-gmp-includes="${gmp}/include"
+  '';
+
+  preConfigure = ''
+    echo "${buildMK}" > mk/build.mk
+    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
+  '';
+
+  configureFlags=[
+    "--with-gcc=${stdenv.gcc}/bin/gcc"
+  ];
+
+  # required, because otherwise all symbols from HSffi.o are stripped, and
+  # that in turn causes GHCi to abort
+  stripDebugFlags=["-S" "--keep-file-symbols"];
+
+  meta = {
+    homepage = "http://haskell.org/ghc";
+    description = "The Glasgow Haskell Compiler";
+    maintainers = [
+      stdenv.lib.maintainers.marcweber
+      stdenv.lib.maintainers.andres
+      stdenv.lib.maintainers.simons
+    ];
+    platforms = ghc.meta.platforms;
+  };
+
+}
diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix
index 566e7d80f865..5487b00cef26 100644
--- a/pkgs/development/compilers/ghc/head.nix
+++ b/pkgs/development/compilers/ghc/head.nix
@@ -1,13 +1,12 @@
 { stdenv, fetchurl, ghc, perl, gmp, ncurses }:
 
 stdenv.mkDerivation rec {
-  version = "7.5.20120714";
-
+  version = "7.7.20120912";
   name = "ghc-${version}";
 
   src = fetchurl {
     url = "http://haskell.org/ghc/dist/current/dist/${name}-src.tar.bz2";
-    sha256 = "02jicyqqr18yixf970f1rfrn64bm528aig6s9566galji063p6ah";
+    sha256 = "0dilndcfs1nhs48nhi361bpffmbbyjaq1i6qnzn24vg34wckyrjg";
   };
 
   buildInputs = [ ghc perl gmp ncurses ];
diff --git a/pkgs/development/compilers/ghc/with-packages.nix b/pkgs/development/compilers/ghc/with-packages.nix
index 9313c54b9080..f4f567f30b39 100644
--- a/pkgs/development/compilers/ghc/with-packages.nix
+++ b/pkgs/development/compilers/ghc/with-packages.nix
@@ -59,6 +59,11 @@ stdenv.mkDerivation rec {
           ln -s $f $out/bin
           echo -n .
         done
+        for f in "$currentPath/etc/bash_completion.d/"*; do
+	  mkdir -p $out/etc/bash_completion.d
+          ln -s $f $out/etc/bash_completion.d/
+          echo -n .
+        done
         for f in "$currentPkgDir/"*.conf; do
           ln -s $f $linkedPkgDir
           echo -n .
diff --git a/pkgs/development/compilers/ghc/wrapper.nix b/pkgs/development/compilers/ghc/wrapper.nix
index 4407f16c9e02..bc28fdc91319 100644
--- a/pkgs/development/compilers/ghc/wrapper.nix
+++ b/pkgs/development/compilers/ghc/wrapper.nix
@@ -1,6 +1,10 @@
-{stdenv, ghc, makeWrapper, coreutils}:
+{ stdenv, ghc, makeWrapper, coreutils }:
 
-stdenv.mkDerivation {
+let
+  ghc761OrLater = !stdenv.lib.versionOlder ghc.version "7.6.1";
+  packageDBFlag = if ghc761OrLater then "-package-db" else "-package-conf";
+in
+stdenv.mkDerivation ({
   name = "ghc-${ghc.version}-wrapper";
 
   buildInputs = [makeWrapper];
@@ -15,10 +19,10 @@ stdenv.mkDerivation {
       makeWrapper $ghc/bin/$prg $out/bin/$prg --add-flags "\$($out/bin/ghc-get-packages.sh ${ghc.version} \"\$(dirname \$0)\")"
     done
     for prg in runghc runhaskell; do
-      makeWrapper $ghc/bin/$prg $out/bin/$prg --add-flags "\$($out/bin/ghc-get-packages.sh ${ghc.version} \"\$(dirname \$0)\" \" -package-conf --ghc-arg=\")"
+      makeWrapper $ghc/bin/$prg $out/bin/$prg --add-flags "\$($out/bin/ghc-get-packages.sh ${ghc.version} \"\$(dirname \$0)\" \" ${packageDBFlag} --ghc-arg=\")"
     done
     for prg in ghc-pkg ghc-pkg-${ghc.version}; do
-      makeWrapper $ghc/bin/$prg $out/bin/$prg --add-flags "\$($out/bin/ghc-get-packages.sh ${ghc.version} \"\$(dirname \$0)\" --package-conf=)"
+      makeWrapper $ghc/bin/$prg $out/bin/$prg --add-flags "\$($out/bin/ghc-get-packages.sh ${ghc.version} \"\$(dirname \$0)\" -${packageDBFlag}=)"
     done
     for prg in hp2ps hpc hasktags hsc2hs; do
       test -x $ghc/bin/$prg && ln -s $ghc/bin/$prg $out/bin/$prg
@@ -29,7 +33,7 @@ stdenv.mkDerivation {
 
     for arg in \$($out/bin/ghc-get-packages.sh ${ghc.version} \"\$(dirname \$0)\"); do
       case "\$arg" in
-        -package-conf) ;;
+        ${packageDBFlag}) ;;
         *)
           CANONICALIZED="\$(${stdenv.lib.optionalString stdenv.isDarwin "${coreutils}/bin/"}readlink -f "\$arg")"
           GHC_PACKAGES_HASH["\$CANONICALIZED"]= ;;
@@ -50,4 +54,4 @@ stdenv.mkDerivation {
   inherit ghc;
   inherit (ghc) meta;
   ghcVersion = ghc.version;
-}
+} // (stdenv.lib.optionalAttrs ghc761OrLater { preFixup = "sed -i -e 's|-package-conf|${packageDBFlag}|' $out/bin/ghc-get-packages.sh"; }))
diff --git a/pkgs/development/compilers/go/cacert.patch b/pkgs/development/compilers/go/cacert.patch
new file mode 100644
index 000000000000..42a44313835f
--- /dev/null
+++ b/pkgs/development/compilers/go/cacert.patch
@@ -0,0 +1,15 @@
+Go comes with hardcoded cacert. We add the usual in NixOS,
+for easier NixOS life.
+
+diff --git a/src/pkg/crypto/x509/root_unix.go b/src/pkg/crypto/x509/root_unix.go
+index 76e79f4..6ef1dd3 100644
+--- a/src/pkg/crypto/x509/root_unix.go
++++ b/src/pkg/crypto/x509/root_unix.go
+@@ -15,6 +15,7 @@ var certFiles = []string{
+ 	"/etc/ssl/ca-bundle.pem",                 // OpenSUSE
+ 	"/etc/ssl/cert.pem",                      // OpenBSD
+ 	"/usr/local/share/certs/ca-root-nss.crt", // FreeBSD
++	"/etc/ssl/certs/ca-bundle.crt",           // NixOS
+ }
+ 
+ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate, err error) {
diff --git a/pkgs/development/compilers/go/default.nix b/pkgs/development/compilers/go/default.nix
index 143c091a1dc0..1d9765539bfc 100644
--- a/pkgs/development/compilers/go/default.nix
+++ b/pkgs/development/compilers/go/default.nix
@@ -1,50 +1,64 @@
-{ stdenv, fetchhg, bison, glibc, ed, which, bash, coreutils, makeWrapper, perl }:
+{ stdenv, fetchurl, bison, glibc, bash, coreutils, makeWrapper}:
 
 let
-  version = "2010-06-09";
-  sha256 = "b607879b333ef100466c726a13cc69ed143566a3c1af59f6d33a6e90b9d0c917";
-
   loader386 = "${glibc}/lib/ld-linux.so.2";
   loaderAmd64 = "${glibc}/lib/ld-linux-x86-64.so.2";
+  loaderArm = "${glibc}/lib/ld-linux.so.3";
 in
 
 stdenv.mkDerivation {
-  name = "go-" + version;
+  name = "go-1.0.2";
 
-  # No tarball yet.
-  src = fetchhg {
-    url = https://go.googlecode.com/hg/;
-    tag = "release." + version;
-    inherit sha256;
+  src = fetchurl {
+    url = http://go.googlecode.com/files/go1.0.2.src.tar.gz;
+    sha256 = "1a4mpkb3bd9dwp0r3fgrfcyk5lgw0f0cfrbskg2lrhc7a12zpz3h";
   };
 
-  buildInputs = [ bison glibc ed which bash makeWrapper ];
+  buildInputs = [ bison glibc bash makeWrapper ];
+
+  # I'm not sure what go wants from its 'src', but the go installation manual
+  # describes an installation keeping the src.
+  preUnpack = ''
+    mkdir -p $out/share
+    cd $out/share
+  '';
 
   prePatch = ''
+    cd ..
+    if [ ! -d go ]; then
+      mv * go
+    fi
+    cd go
+
     patchShebangs ./ # replace /bin/bash
-    # only for 386 build
     # !!! substituteInPlace does not seems to be effective.
     sed -i 's,/lib/ld-linux.so.2,${loader386},' src/cmd/8l/asm.c
     sed -i 's,/lib64/ld-linux-x86-64.so.2,${loaderAmd64},' src/cmd/6l/asm.c
-    sed -i 's,/usr/share/zoneinfo/,${glibc}/share/zoneinfo/,' src/pkg/time/zoneinfo.go
-    sed -i 's,/bin/ed,${ed}/bin/ed,' src/cmd/6l/mkenam
+    sed -i 's,/lib64/ld-linux-x86-64.so.3,${loaderArm},' src/cmd/5l/asm.c
+    sed -i 's,/usr/share/zoneinfo/,${glibc}/share/zoneinfo/,' src/pkg/time/zoneinfo_unix.go
 
-    sed -i -e 's,/bin/cat,${coreutils}/bin/cat,' \
-      -e 's,/bin/echo,${coreutils}/bin/echo,' \
-      src/pkg/exec/exec_test.go
+    #sed -i -e 's,/bin/cat,${coreutils}/bin/cat,' \
+    #  -e 's,/bin/echo,${coreutils}/bin/echo,' \
+    #  src/pkg/exec/exec_test.go
 
     # Disabling the 'os/http/net' tests (they want files not available in
     # chroot builds)
-    sed -i -e '/^NOTEST=/a\\tos\\\n\thttp\\\n\tnet\\' src/pkg/Makefile
-
-    sed -i -e 's,/bin:/usr/bin:/usr/local/bin,'$PATH, test/run
-    sed -i -e 's,/usr/bin/perl,${perl}/bin/perl,' test/errchk
+    rm src/pkg/net/{multicast_test.go,parse_test.go,port_test.go}
+    # The os test wants to read files in an existing path. Just it don't be /usr/bin.
+    sed -i 's,/usr/bin,'"`pwd`", src/pkg/os/os_test.go
+    sed -i 's,/bin/pwd,'"`type -P pwd`", src/pkg/os/os_test.go
+    # Disable the hostname test
+    sed -i '/TestHostname/areturn' src/pkg/os/os_test.go
   '';
 
+  patches = [ ./cacert.patch ];
+
   GOOS = "linux";
   GOARCH = if (stdenv.system == "i686-linux") then "386"
           else if (stdenv.system == "x86_64-linux") then "amd64"
+          else if (stdenv.system == "armv5tel-linux") then "arm"
           else throw "Unsupported system";
+  GOARM = stdenv.lib.optionalString (stdenv.system == "armv5tel-linux") "5";
 
   installPhase = ''
     mkdir -p "$out/bin"
@@ -55,28 +69,17 @@ stdenv.mkDerivation {
     ./all.bash
     cd -
 
-    # Handle Libraries and make them availabale under /share/go.
-    export GOLIB="pkg/"$GOOS"_"$GOARCH
-    mkdir -p "$out/lib/go/$GOLIB"
-    cp -r ./$GOLIB $out/lib/go/pkg/
-
-    # this line set $AS $CC $GC $LD
-    source ./src/Make.$GOARCH
-
-    # Wrap the compiler and the linker to define the location of the
+    # Wrap the tools to define the location of the
     # libraries.
-    wrapProgram "$out/bin/$GC" \
-      --add-flags "-I" \
-      --add-flags "$out/lib/go/$GOLIB"
-
-    wrapProgram "$out/bin/$LD" \
-      --set "GOROOT" "$out/lib/go/" \
-      --set "GOOS" "$GOOS" \
-      --set "GOARCH" "$GOARCH"
+    for a in go gofmt godoc; do
+	    wrapProgram "$out/bin/$a" \
+	      --set "GOROOT" $out/share/go \
+        ${if (stdenv.system == "armv5tel-linux") then "--set GOARM $GOARM" else ""}
+    done
 
     # Copy the emacs configuration for Go files.
     mkdir -p "$out/share/emacs/site-lisp"
-    cp ./misc/emacs/* $out/share/emacs/site-lisp/ # */
+    cp ./misc/emacs/* $out/share/emacs/site-lisp/
   '';
 
   meta = {
diff --git a/pkgs/development/compilers/idris/default.nix b/pkgs/development/compilers/idris/default.nix
index fe9ce209191e..deb97a19b1c0 100644
--- a/pkgs/development/compilers/idris/default.nix
+++ b/pkgs/development/compilers/idris/default.nix
@@ -1,15 +1,15 @@
-{ cabal, binary, Cabal, epic, filepath, happy, haskeline, mtl
-, parsec, transformers
+{ cabal, binary, Cabal, filepath, happy, haskeline, mtl, parsec
+, transformers
 }:
 
 cabal.mkDerivation (self: {
   pname = "idris";
-  version = "0.9.2.1";
-  sha256 = "16jbmyza57066s3wmkvgwn11kqn0nzkjrrvsinh9xd69a79h2iiy";
+  version = "0.9.3.1";
+  sha256 = "1dqb7gd5jn5f062hfwrirrfxv6ac1f6khkfax912j01mg147hv9a";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
-    binary Cabal epic filepath haskeline mtl parsec transformers
+    binary Cabal filepath haskeline mtl parsec transformers
   ];
   buildTools = [ happy ];
   meta = {
diff --git a/pkgs/development/compilers/jdk/builder.sh b/pkgs/development/compilers/jdk/builder.sh
deleted file mode 100644
index ccfe2838d1b6..000000000000
--- a/pkgs/development/compilers/jdk/builder.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-buildInputs="$unzip"
-source $stdenv/setup
-
-unzip $src || true
-
-mkdir -p $out
-mv $dirname/* $out/
-
-# Remove crap in the root directory.
-for file in $out/*
-do
-  if test -f $file ; then
-    rm $file
-  fi
-done
-
-# Set the dynamic linker.
-rpath=
-for i in $libraries; do
-    rpath=$rpath${rpath:+:}$i/lib
-done
-find $out -type f -perm +100 \
-    -exec patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
-    --set-rpath "$rpath" {} \;
-
-# Unpack .pack files.
-for i in $(find $out -name "*.pack"); do
-    echo "unpacking $i..."
-    $out/bin/unpack200 "$i" "$(dirname $i)/$(basename $i .pack).jar"
-    rm "$i"
-done
-
-# Put the *_md.h files in the right place.
-cd $out/include && ln -s */*_md.h .
diff --git a/pkgs/development/compilers/jdk/default-1.4.nix b/pkgs/development/compilers/jdk/default-1.4.nix
deleted file mode 100644
index 48eb5e6e7b71..000000000000
--- a/pkgs/development/compilers/jdk/default-1.4.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{stdenv, fetchurl}: 
-
-if stdenv.system == "i686-linux"
-  then
-    (import ./j2sdk-1.4.x-sun-linux.nix) {
-      inherit stdenv fetchurl;
-    }
-  else
-    abort "the Java 2 SDK is not supported on this platform"
diff --git a/pkgs/development/compilers/jdk/default-5.nix b/pkgs/development/compilers/jdk/default-5.nix
deleted file mode 100644
index dfd4e31f4b37..000000000000
--- a/pkgs/development/compilers/jdk/default-5.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{stdenv, fetchurl, unzip, requireFile}: 
-
-if stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"
-  then
-    (import ./jdk5-oracle-linux.nix) {
-      inherit stdenv fetchurl unzip requireFile;
-    }
-  else
-    abort "the Java 5 SDK is not supported on this platform"
diff --git a/pkgs/development/compilers/jdk/default.nix b/pkgs/development/compilers/jdk/default.nix
index 547833c15cd4..8940be7f34d5 100644
--- a/pkgs/development/compilers/jdk/default.nix
+++ b/pkgs/development/compilers/jdk/default.nix
@@ -2,8 +2,6 @@ args:
 
 if args.stdenv.system == "i686-linux" || args.stdenv.system == "x86_64-linux" then
   (import ./jdk6-linux.nix) ( removeAttrs args ["cabextract"] )
-else if args.stdenv.system == "powerpc-linux" then
-  (import ./jdk5-ibm-powerpc-linux.nix) (removeAttrs args ["pluginSupport" "xlibs" "installjdk" "cabextract"])
 else if args.stdenv.system == "i686-cygwin" then
   (import ./jdk6-cygwin.nix) (removeAttrs args ["pluginSupport" "xlibs" "installjdk" "xlibs"])
 else
diff --git a/pkgs/development/compilers/jdk/ibm-builder.sh b/pkgs/development/compilers/jdk/ibm-builder.sh
deleted file mode 100644
index 2ff3a71322a6..000000000000
--- a/pkgs/development/compilers/jdk/ibm-builder.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-source $stdenv/setup
-
-if ! test -e "$pathname"; then
-    echo ""
-    echo "SORRY!"
-    echo "You should download \`$(basename $pathname)' from IBM and place it in $(dirname $pathname)."
-    echo "Blame IBM, not us."
-    echo ""
-    exit 1
-fi
-
-actual=$(md5sum -b $pathname | cut -c1-32)
-if test "$actual" != "$md5"; then
-    echo "hash is $actual, expected $md5"
-    exit 1
-fi
-
-tar zxf $pathname || true
-
-mkdir -p $out
-mv $dirname/* $out/
-
-# Remove crap in the root directory.
-for file in $out/*
-do
-  if test -f $file ; then
-    rm $file
-  fi
-done
diff --git a/pkgs/development/compilers/jdk/j2sdk-1.4.x-sun-linux.nix b/pkgs/development/compilers/jdk/j2sdk-1.4.x-sun-linux.nix
deleted file mode 100644
index 846055ce523d..000000000000
--- a/pkgs/development/compilers/jdk/j2sdk-1.4.x-sun-linux.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * This Nix expression requires the user to download the j2sdk
- * distribution to /tmp. Please obtain j2sdk-1_4_2_03-linux-i586.bin
- * from java.sun.com by hand and place it in /tmp. Blame Sun, not me.
- *
- * Note that this is not necessary if someone has already pushed a
- * binary.
- *
- * @author Martin Bravenboer <martin@cs.uu.nl>
- */
-{stdenv, fetchurl}: 
-
-assert stdenv.system == "i686-linux";
-
-derivation {
-  name = "j2sdk-1.4.2";
-  filename = "j2sdk-1.4.2_05";
-  dirname = "j2sdk1.4.2_05";
-  system = stdenv.system;
-  builder = ./builder.sh;
-  pathname = "/tmp/j2sdk-1_4_2_05-linux-i586.bin";
-  md5 = "825ff134f3e370f6e677638d32962082";
-  stdenv = stdenv;
-}
diff --git a/pkgs/development/compilers/jdk/jdk5-ibm-powerpc-linux.nix b/pkgs/development/compilers/jdk/jdk5-ibm-powerpc-linux.nix
deleted file mode 100644
index a4c2bd589afe..000000000000
--- a/pkgs/development/compilers/jdk/jdk5-ibm-powerpc-linux.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ swingSupport ? true
-, stdenv, fetchurl, unzip, makeWrapper, libX11 ? null, libXext ? null
-}:
-
-assert stdenv.system == "powerpc-linux";
-
-assert swingSupport -> libX11 != null && libXext != null;
-
-(stdenv.mkDerivation {
-  name = "jdk-1.5.0";
-  builder = ./ibm-builder.sh;
-  dirname = "ibm-java2-ppc-50";
-  pathname = "/tmp/ibm-java2-sdk-50-linux-ppc.tgz";
-  md5 = "6bed4ae0b24d3eea2914f2f6dcc0ceb4";
-  libraries =
-    (if swingSupport then [libX11 libXext] else []);
-} // {inherit swingSupport;})
diff --git a/pkgs/development/compilers/jdk/jdk5-oracle-linux.nix b/pkgs/development/compilers/jdk/jdk5-oracle-linux.nix
deleted file mode 100644
index 8884585d154d..000000000000
--- a/pkgs/development/compilers/jdk/jdk5-oracle-linux.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * This Nix expression requires the user to download the Java 5.0 JDK
- * distribution to /tmp. Please obtain jdk-1_5_0_22-linux-i586.bin for
- * 32-bit systems or jdk-1_5_0_22-linux-amd64.bin for 64-bit systems
- * from java.sun.com (look for archived software downloads) 
- * by hand and place it in /tmp. Blame Oracle, not me.
- *
- * Note that this is not necessary if someone has already pushed a
- * binary.
- */
-{stdenv, fetchurl, unzip, requireFile}: 
-
-assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
-
-stdenv.mkDerivation rec {
-  name =  "jdk-1_5_0_22";
-  dirname = "jdk1.5.0_22";
-  builder = ./builder.sh;
-  src = requireFile {
-    message = ''
-      SORRY!
-      We may not download the needed binary distribution automatically.
-      You should download ${distfilename} from Sun and add it to store.
-      For example, "nix-prefetch-url file:///\$PWD/${distfilename}" in the 
-      directory where you saved it is OK.
-      Blame Sun, not us.
-    '';
-    name = distfilename;
-    sha256 = if stdenv.system == "x86_64-linux" then 
-      "1h63gigvg8id95igcj8xw7qvxs4p2y9hvx4xbvkwg8bji3ifb0sk" 
-    else "0655n2q1y023zzwbk6gs9vwsnb29jc0m3bg3x3xdw623qgb4k6px";
-  };
-  distfilename = if stdenv.system == "x86_64-linux" then "${name}-linux-amd64.bin" else "${name}-linux-i586.bin";
-  
-  inherit unzip stdenv;
-}
diff --git a/pkgs/development/compilers/jdk/jdk6-cygwin.nix b/pkgs/development/compilers/jdk/jdk6-cygwin.nix
index 766151dfe6b3..31c9c6140314 100644
--- a/pkgs/development/compilers/jdk/jdk6-cygwin.nix
+++ b/pkgs/development/compilers/jdk/jdk6-cygwin.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   name = "jdk-1.6.0_20";
 
   src = fetchurl {
-    url = file:///tmp/jdk-6u20-windows-i586.exe ;
+    url = file:///tmp/jdk-6u20-windows-i586.exe;
     sha256 = "0w4afz8a9gi1iyhh47gvhiy59dfrzx0fnmywdff3v5cx696w25fh";
   };
 
@@ -43,4 +43,6 @@ stdenv.mkDerivation rec {
        ./jre/lib/ext/localedata.pack \
        ./lib/tools.pack
   '';
+
+  meta.license = "unfree";
 }
diff --git a/pkgs/development/compilers/jdk/jdk6-linux.nix b/pkgs/development/compilers/jdk/jdk6-linux.nix
index 224f77a13570..b564d3110144 100644
--- a/pkgs/development/compilers/jdk/jdk6-linux.nix
+++ b/pkgs/development/compilers/jdk/jdk6-linux.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation {
   inherit installjdk;
 
   buildInputs = [unzip makeWrapper];
-  
+
   /**
    * libXt is only needed on amd64
    */
@@ -67,4 +67,6 @@ stdenv.mkDerivation {
   inherit (xlibs) libX11;
 
   mozillaPlugin = if installjdk then "/jre/lib/${architecture}/plugins" else "/lib/${architecture}/plugins";
+
+  meta.license = "unfree";
 }
diff --git a/pkgs/development/compilers/julia/default.nix b/pkgs/development/compilers/julia/default.nix
index a594e0e68158..a01aa3aded44 100644
--- a/pkgs/development/compilers/julia/default.nix
+++ b/pkgs/development/compilers/julia/default.nix
@@ -1,35 +1,46 @@
-{ stdenv, fetchgit, gfortran, perl, m4, llvm, gmp, pcre, blas, liblapack
+{ stdenv, fetchgit, gfortran, perl, m4, llvm, gmp, pcre, zlib
  , readline, fftwSinglePrec, fftw, libunwind, suitesparse, glpk, fetchurl
- , ncurses, libunistring, lighttpd, patchelf
+ , ncurses, libunistring, lighttpd, patchelf, openblas, liblapack
  } :
 let
-  liblapackShared = liblapack.override{shared=true;};
   realGcc = stdenv.gcc.gcc;
 in
 stdenv.mkDerivation rec {
   pname = "julia";
-  date = "20120501";
+  date = "20120922";
   name = "${pname}-git-${date}";
 
-  grisu_ver = "1.1";
-  dsfmt_ver = "2.1";
-  arpack_ver = "3.1.0";
+  grisu_ver = "1.1.1";
+  dsfmt_ver = "2.2";
+  openblas_ver = "v0.2.2";
+  lapack_ver = "3.4.1";
+  arpack_ver = "3.1.2";
   clp_ver = "1.14.5";
   lighttpd_ver = "1.4.29";
 
   grisu_src = fetchurl {
     url = "http://double-conversion.googlecode.com/files/double-conversion-${grisu_ver}.tar.gz";
-    sha256 = "addee31d11350e4dde2b19c749eda648cb0ab38a68b0dd0d0a45dc49c7346fe7";
+    sha256 = "e1cabb73fd69e74f145aea91100cde483aef8b79dc730fcda0a34466730d4d1d";
   };
   dsfmt_src = fetchurl {
     url = "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${dsfmt_ver}.tar.gz";
     name = "dsfmt-${dsfmt_ver}.tar.gz";
-    sha256 = "e9d3e04bc984ec3b14033342f5ebdcd5202d8d8e40128dd737f566945612378f";
+    sha256 = "bc3947a9b2253a869fcbab8ff395416cb12958be9dba10793db2cd7e37b26899";
+  };
+  openblas_src = fetchurl {
+    url = "https://github.com/xianyi/OpenBLAS/tarball/${openblas_ver}";
+    name = "openblas-${openblas_ver}.tar.gz";
+    sha256 = "19ffec70f9678f5c159feadc036ca47720681b782910fbaa95aa3867e7e86d8e";
   };
   arpack_src = fetchurl {
-    url = "http://forge.scilab.org/index.php/p/arpack-ng/downloads/376/get/";
+    url = "http://forge.scilab.org/index.php/p/arpack-ng/downloads/497/get/";
     name = "arpack-ng_${arpack_ver}.tar.gz";
-    sha256 = "65b7856126f06ecbf9ec450d50df92ca9260d4b0d21baf02497554ac230d6feb";
+    sha256 = "1wk06bdjgap4hshx0lswzi7vxy2lrdx353y1k7yvm97mpsjvsf4k";
+  };
+  lapack_src = fetchurl {
+    url = "http://www.netlib.org/lapack/lapack-${lapack_ver}.tgz";
+    name = "lapack-${lapack_ver}.tgz";
+    sha256 = "93b910f94f6091a2e71b59809c4db4a14655db527cfc5821ade2e8c8ab75380f";
   };
   clp_src = fetchurl {
     url = "http://www.coin-or.org/download/source/Clp/Clp-${clp_ver}.tgz";
@@ -43,16 +54,17 @@ stdenv.mkDerivation rec {
 
   src = fetchgit {
     url = "git://github.com/JuliaLang/julia.git";
-    rev = "990ffabb00f0e51d326911888facdbc473fb634d";
-    sha256 = "dfcf41b2d7b62dd490bfd6f6fb962713c920de3f00afaee47423bd26eba7e3b2";
+    rev = "e1ba1ebf09da42a5bd7f4ed18f1595ae06032b4c";
+    sha256 = "187e67a7c6bf44469e0e0dda41072ac8f3a40380ea9364ed07a4cadc08965663";
   };
 
-  buildInputs = [ gfortran perl m4 gmp pcre llvm blas liblapackShared readline 
+  buildInputs = [ gfortran perl m4 gmp pcre llvm readline zlib
     fftw fftwSinglePrec libunwind suitesparse glpk ncurses libunistring patchelf
+    openblas liblapack
     ];
 
   configurePhase = ''
-    for i in GMP LLVM PCRE BLAS LAPACK READLINE FFTW LIBUNWIND SUITESPARSE GLPK; 
+    for i in GMP LLVM PCRE LAPACK OPENBLAS BLAS READLINE FFTW LIBUNWIND SUITESPARSE GLPK LIGHTTPD ZLIB; 
     do 
       sed -e "s@USE_SYSTEM_$i=0@USE_SYSTEM_$i=1@" -i Make.inc; 
     done
@@ -62,52 +74,44 @@ stdenv.mkDerivation rec {
       cp "$1" "$2/$(basename "$1" | sed -e 's/^[a-z0-9]*-//')"
     }
 
-    for i in "${grisu_src}" "${dsfmt_src}" "${arpack_src}" "${clp_src}" "${lighttpd_src}" ; do
+    for i in "${grisu_src}" "${dsfmt_src}" "${arpack_src}" "${clp_src}" ; do
       copy_kill_hash "$i" deps
     done
     copy_kill_hash "${dsfmt_src}" deps/random
 
-    sed -e '/cd SuiteSparse-SYSTEM/,+1s@find /lib /usr/lib /usr/local/lib@find ${suitesparse}/lib@' -i deps/Makefile
-
     ${if realGcc ==null then "" else 
-    ''export NIX_LDFLAGS="$NIX_LDFLAGS -L${realGcc}/lib -L${realGcc}/lib64 -lpcre -llapack -lm -lfftw3f -lfftw3 -lglpk -lunistring "''}
+    ''export NIX_LDFLAGS="$NIX_LDFLAGS -L${realGcc}/lib -L${realGcc}/lib64 -lpcre -llapack -lm -lfftw3f -lfftw3 -lglpk -lunistring -lz "''}
 
     sed -e 's@ cpp @ gcc -E @g' -i base/Makefile
 
-    sed -e '1s@#! */bin/bash@#!${stdenv.shell}@' -i deps/*.sh
-
     export LDFLAGS="-L${suitesparse}/lib"
 
+    export GLPK_PREFIX="${glpk}/include"
+
     mkdir -p "$out/lib"
     sed -e "s@/usr/local/lib@$out/lib@g" -i deps/Makefile
     sed -e "s@/usr/lib@$out/lib@g" -i deps/Makefile
     
-    sed -e '/libumfpack.a/s@find @find ${suitesparse}/lib @' -i deps/Makefile
-
-    export makeFlags="$makeFlags PREFIX=\"$out\" USR=\"$out\""
-
-    sed -e 's@openblas@blas@' -i base/*.jl
-
-    sed -e '/install -v julia-release-webserver/d' -i Makefile
+    export makeFlags="$makeFlags PREFIX=$out" 
 
     export dontPatchELF=1
   '';
 
-  postInstall = ''
-   ln -s "$out/share/julia/julia" "$out/bin"
-
-   mkdir -p "$out/share/julia/ui/"
-   cp -r ui/website "$out/share/julia/ui/"
-   cp deps/lighttpd.conf "$out/share/julia/ui/"
-
-   mkdir -p "$out/share/julia/ui/webserver/"
-   cp -r ui/webserver/{*.jl,*.h} "$out/share/julia/ui/webserver/"
+  preBuild = ''
+    make -C test/unicode all
+    make -C extras glpk_h.jl GLPK_PREFIX="$GLPK_PREFIX"
+  '';
 
-   echo -e '#!/bin/sh' >> "$out/bin/julia-webserver"
-   echo -e "cd \"$out/share/julia\"" >> "$out/bin/julia-webserver"
-   echo -e '${lighttpd}/sbin/lighttpd -D -f ./ui/lighttpd.conf &' >> "$out/bin/julia-webserver"
-   echo -e "'$out/bin/julia-release-webserver' -p 2001" >> "$out/bin/julia-webserver"
-   chmod a+x "$out/bin/julia-webserver"
+  postInstall = ''
+   ld -E --whole-archive --shared ${suitesparse}/lib/lib*[a-z].a -o "$out"/lib/libsuitesparse-shared.so
+   for i in umfpack cholmod amd camd colamd ; do
+     ln -s "libsuitesparse-shared.so" "$out/lib/lib$i.so"
+   done
+   ln -s "${lighttpd}/sbin/lighttpd" "$out/sbin/"
+   ln -s "${lighttpd}/lib/"* "$out/lib/"
+
+   cp -r test examples "$out/lib/julia"
+   ls -R > "$out/ls-R"
   '';
 
   meta = {
diff --git a/pkgs/development/compilers/mono/default.nix b/pkgs/development/compilers/mono/default.nix
index 2f257fccc52d..f59bb2cac403 100644
--- a/pkgs/development/compilers/mono/default.nix
+++ b/pkgs/development/compilers/mono/default.nix
@@ -23,7 +23,8 @@ stdenv.mkDerivation {
   # The file /nix/store/xxx-mono-2.4.2.1/lib/mscorlib.dll is an invalid CIL image
   dontStrip = true;
 
-  enableParallelBuilding = true;
+  # Parallel building doesn't work, as shows http://hydra.nixos.org/build/2983601
+  enableParallelBuilding = false;
 
   preBuild = "
     makeFlagsArray=(INSTALL=`type -tp install`)
diff --git a/pkgs/development/compilers/ocaml/3.12.1.nix b/pkgs/development/compilers/ocaml/3.12.1.nix
index 66075d4a9669..c719abc4abc7 100644
--- a/pkgs/development/compilers/ocaml/3.12.1.nix
+++ b/pkgs/development/compilers/ocaml/3.12.1.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchurl, ncurses, x11 }:
 
 let
-   useX11 = !stdenv.isArm;
-   useNativeCompilers = !stdenv.isArm;
+   useX11 = !stdenv.isArm && !stdenv.isMips;
+   useNativeCompilers = !stdenv.isMips;
    inherit (stdenv.lib) optionals optionalString;
 in
 
@@ -30,6 +30,10 @@ stdenv.mkDerivation rec {
     ln -sv $out/lib/ocaml/caml $out/include/caml
   '';
 
+  passthru = {
+    nativeCompilers = useNativeCompilers;
+  };
+
   meta = {
     homepage = http://caml.inria.fr/ocaml;
     licenses = [ "QPL" /* compiler */ "LGPLv2" /* library */ ];
diff --git a/pkgs/development/compilers/ocaml/4.00.0.nix b/pkgs/development/compilers/ocaml/4.00.0.nix
new file mode 100644
index 000000000000..e25654a24818
--- /dev/null
+++ b/pkgs/development/compilers/ocaml/4.00.0.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchurl, ncurses, x11 }:
+
+let
+   useX11 = !stdenv.isArm && !stdenv.isMips;
+   useNativeCompilers = !stdenv.isMips;
+   inherit (stdenv.lib) optionals optionalString;
+in
+
+stdenv.mkDerivation rec {
+  
+  name = "ocaml-4.00.0";
+  
+  src = fetchurl {
+    url = "http://caml.inria.fr/pub/distrib/ocaml-4.00/${name}.tar.bz2";
+    sha256 = "ec886d7bc587ce472fcbdf294feb4b1fa2d8e7ef78ab6a4e66551699435d5cd7";
+  };
+
+  prefixKey = "-prefix ";
+  configureFlags = ["-no-tk"] ++ optionals useX11 [ "-x11lib" x11 ];
+  buildFlags = "world" + optionalString useNativeCompilers " bootstrap world.opt";
+  buildInputs = [ncurses] ++ optionals useX11 [ x11 ];
+  installTargets = "install" + optionalString useNativeCompilers " installopt";
+  preConfigure = ''
+    CAT=$(type -tp cat)
+    sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
+  '';
+  postBuild = ''
+    mkdir -p $out/include
+    ln -sv $out/lib/ocaml/caml $out/include/caml
+  '';
+
+  passthru = {
+    nativeCompilers = useNativeCompilers;
+  };
+
+  meta = {
+    homepage = http://caml.inria.fr/ocaml;
+    licenses = [ "QPL" /* compiler */ "LGPLv2" /* library */ ];
+    description = "OCaml, the most popular variant of the Caml language";
+
+    longDescription =
+      ''
+        OCaml is the most popular variant of the Caml language.  From a
+        language standpoint, it extends the core Caml language with a
+        fully-fledged object-oriented layer, as well as a powerful module
+        system, all connected by a sound, polymorphic type system featuring
+        type inference.
+
+        The OCaml system is an industrial-strength implementation of this
+        language, featuring a high-performance native-code compiler (ocamlopt)
+        for 9 processor architectures (IA32, PowerPC, AMD64, Alpha, Sparc,
+        Mips, IA64, HPPA, StrongArm), as well as a bytecode compiler (ocamlc)
+        and an interactive read-eval-print loop (ocaml) for quick development
+        and portability.  The OCaml distribution includes a comprehensive
+        standard library, a replay debugger (ocamldebug), lexer (ocamllex) and
+        parser (ocamlyacc) generators, a pre-processor pretty-printer (camlp4)
+        and a documentation generator (ocamldoc).
+      '';
+
+    platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+  };
+
+}
diff --git a/pkgs/development/compilers/openjdk/bootstrap.nix b/pkgs/development/compilers/openjdk/bootstrap.nix
new file mode 100644
index 000000000000..2ac2eed117c6
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/bootstrap.nix
@@ -0,0 +1,21 @@
+{ runCommand, glibc, fetchurl }:
+
+let
+  # !!! These should be on nixos.org
+  src = if glibc.system == "x86_64-linux" then
+    fetchurl {
+      url = http://nixos.org/tarballs/openjdk-bootstrap-x86_64-linux-2012-08-24.tar.xz;
+      sha256 = "0gla9dxrfq2w1hvgsnn8jg8a60k27im6z43a6iidi0qmwa0wah32";
+    }
+  else if glibc.system == "i686-linux" then
+    fetchurl {
+      url = http://nixos.org/tarballs/openjdk-bootstrap-i686-linux-2012-08-24.tar.xz;
+      sha256 = "184wq212bycwbbq4ix8cc6jwjxkrqw9b01zb86q95kqpa8zy5206";
+    }
+  else throw "No bootstrap for system";
+in
+
+runCommand "openjdk-bootstrap" {} ''
+  xz -dc ${src} | sed "s/e*-glibc-[^/]*/$(basename ${glibc})/g" | tar xv
+  mv openjdk-bootstrap $out
+''
diff --git a/pkgs/development/compilers/openjdk/default.nix b/pkgs/development/compilers/openjdk/default.nix
index cf85c1706a8a..f243baab5919 100644
--- a/pkgs/development/compilers/openjdk/default.nix
+++ b/pkgs/development/compilers/openjdk/default.nix
@@ -21,6 +21,21 @@
 , jreOnly ? false
 }:
 
+let
+
+  /**
+   * The JRE libraries are in directories that depend on the CPU.
+   */
+  architecture =
+    if stdenv.system == "i686-linux" then
+      "i386"
+    else if stdenv.system == "x86_64-linux" then
+      "amd64"
+    else
+      throw "openjdk requires i686-linux or x86_64 linux";
+
+in
+
 stdenv.mkDerivation rec {
   name = "openj${if jreOnly then "re" else "dk"}-7b127";
 
@@ -107,6 +122,7 @@ stdenv.mkDerivation rec {
     "UNIXCOMMAND_PATH="
     "BOOTDIR=${jdk}"
     "DROPS_DIR=$(DROPS_PATH)"
+    "SKIP_BOOT_CYCLE=false"
   ];
 
   configurePhase = ''
@@ -136,5 +152,7 @@ stdenv.mkDerivation rec {
 
     platforms = stdenv.lib.platforms.linux;
   };
+
+  passthru = { inherit architecture; };
 }
 
diff --git a/pkgs/development/compilers/openjdk/make-bootstrap.nix b/pkgs/development/compilers/openjdk/make-bootstrap.nix
new file mode 100644
index 000000000000..090a1479741a
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/make-bootstrap.nix
@@ -0,0 +1,26 @@
+{ runCommand, openjdk, nukeReferences }:
+
+let arch = openjdk.architecture; in
+
+runCommand "${openjdk.name}-bootstrap.tar.xz" {} ''
+  mkdir -p openjdk-bootstrap/bin
+  mkdir -p openjdk-bootstrap/lib
+  mkdir -p openjdk-bootstrap/jre/lib/{security,ext,${arch}/{jli,server,client,headless}}
+  cp ${openjdk}/bin/{idlj,ja{va{,c,p,h},r},rmic} openjdk-bootstrap/bin
+  cp ${openjdk}/lib/tools.jar openjdk-bootstrap/lib
+  cp ${openjdk}/jre/lib/{meta-index,{charsets,jce,jsse,rt,resources}.jar,currency.data} openjdk-bootstrap/jre/lib
+  cp ${openjdk}/jre/lib/security/java.security openjdk-bootstrap/jre/lib/security
+  cp ${openjdk}/jre/lib/ext/{meta-index,sunjce_provider.jar} openjdk-bootstrap/jre/lib/ext
+  cp ${openjdk}/jre/lib/${arch}/{jvm.cfg,lib{awt,java,verify,zip,nio,net}.so} openjdk-bootstrap/jre/lib/${arch}
+  cp ${openjdk}/jre/lib/${arch}/jli/libjli.so openjdk-bootstrap/jre/lib/${arch}/jli
+  cp ${openjdk}/jre/lib/${arch}/server/libjvm.so openjdk-bootstrap/jre/lib/${arch}/server
+  cp ${openjdk}/jre/lib/${arch}/client/libjvm.so openjdk-bootstrap/jre/lib/${arch}/client ||
+    rmdir openjdk-bootstrap/jre/lib/${arch}/client
+  cp ${openjdk}/jre/lib/${arch}/headless/libmawt.so openjdk-bootstrap/jre/lib/${arch}/headless
+  cp -a ${openjdk}/include openjdk-bootstrap
+
+  chmod -R +w openjdk-bootstrap
+  find openjdk-bootstrap -print0 | xargs -0 ${nukeReferences}/bin/nuke-refs
+
+  tar cv openjdk-bootstrap | xz > $out
+''
diff --git a/pkgs/development/compilers/pakcs/default.nix b/pkgs/development/compilers/pakcs/default.nix
index 35771f6691f2..817559ffeccb 100644
--- a/pkgs/development/compilers/pakcs/default.nix
+++ b/pkgs/development/compilers/pakcs/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation {
       with dynamic web pages, prototyping embedded systems).
     '';
 
-    maintainers = [ stdenv.lib.maintainers.kkallio stdenv.lib.maintainers.simons ];
+    maintainers = [ stdenv.lib.maintainers.kkallio ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/compilers/polyml/default.nix b/pkgs/development/compilers/polyml/default.nix
index 9a3d0a7deb4d..dfdc50cd827c 100644
--- a/pkgs/development/compilers/polyml/default.nix
+++ b/pkgs/development/compilers/polyml/default.nix
@@ -1,16 +1,15 @@
 {stdenv, fetchurl}:
 
 let
-  pname = "polyml";
-  version = "5.4";
+  version = "5.4.1";
 in
 
 stdenv.mkDerivation {
-  name = "${pname}-${version}";
+  name = "polyml-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/${pname}/${pname}.${version}.tar.gz";
-    sha256 = "1ykbm4zk260dkdr8jl7mjaqxy98h65fq0z82k44b1fp5q8zy5d34";
+    url = "mirror://sourceforge/polyml/polyml.${version}.tar.gz";
+    sha256 = "514d1d07be487b783d4dfa29dbd550b3396640579ce135a9eb5a61f08e7f9cac";
   };
 
   meta = {
@@ -19,7 +18,7 @@ stdenv.mkDerivation {
       Poly/ML is a full implementation of Standard ML.
     '';
     homepage = http://www.polyml.org/;
-    license = "LGPL";
+    license = stdenv.lib.licenses.lgpl21;
     platforms = with stdenv.lib.platforms; linux;
     maintainers = [ #Add your name here!
       stdenv.lib.maintainers.z77z
diff --git a/pkgs/development/compilers/sbcl/src-for-default.nix b/pkgs/development/compilers/sbcl/src-for-default.nix
index 467ed05a6a44..d56520d29021 100644
--- a/pkgs/development/compilers/sbcl/src-for-default.nix
+++ b/pkgs/development/compilers/sbcl/src-for-default.nix
@@ -1,9 +1,9 @@
 rec {
-   version="1.0.57";
-   name="sbcl-1.0.57";
-   hash="1vvifyq0lapx6p6wz6jknsgch3lbyr7m785844wdgkdx2hh8ch51";
-   url="http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.57/sbcl-1.0.57-source.tar.bz2";
-   advertisedUrl="http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.57/sbcl-1.0.57-source.tar.bz2";
+   version="1.0.58";
+   name="sbcl-1.0.58";
+   hash="0ifr96hy5ax5c5iv7igwgkwcqb3pwrc4ism957pkfb5yy39p4yc1";
+   url="http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.58/sbcl-1.0.58-source.tar.bz2";
+   advertisedUrl="http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.58/sbcl-1.0.58-source.tar.bz2";
   
   
 }
diff --git a/pkgs/development/compilers/scala/default.nix b/pkgs/development/compilers/scala/default.nix
index 340076cc1378..a78ee06f652d 100644
--- a/pkgs/development/compilers/scala/default.nix
+++ b/pkgs/development/compilers/scala/default.nix
@@ -12,12 +12,10 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     mkdir -p $out
-    rm bin/*.bat
+    rm "bin/"*.bat
     mv * $out
   '';
 
-  phases = "unpackPhase installPhase";
-
   meta = {
     description = "Scala is a general purpose programming language";
     longDescription = ''
@@ -25,7 +23,7 @@ stdenv.mkDerivation rec {
       common programming patterns in a concise, elegant, and type-safe way.
       It smoothly integrates features of object-oriented and functional
       languages, enabling Java and other programmers to be more productive.
-      Code sizes are typically reduced by a factor of two to three when 
+      Code sizes are typically reduced by a factor of two to three when
       compared to an equivalent Java application.
     '';
     homepage = http://www.scala-lang.org/;
diff --git a/pkgs/development/compilers/uhc/default.nix b/pkgs/development/compilers/uhc/default.nix
index 2c812e8842b6..fa66306721d7 100644
--- a/pkgs/development/compilers/uhc/default.nix
+++ b/pkgs/development/compilers/uhc/default.nix
@@ -44,7 +44,6 @@ in stdenv.mkDerivation {
     platforms = stdenv.lib.platforms.linux;
     maintainers = [
       stdenv.lib.maintainers.andres
-      stdenv.lib.maintainers.simons
     ];
   };
 }
diff --git a/pkgs/development/compilers/urweb/default.nix b/pkgs/development/compilers/urweb/default.nix
index 7dbbe3752839..7c0ddde66128 100644
--- a/pkgs/development/compilers/urweb/default.nix
+++ b/pkgs/development/compilers/urweb/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "urweb";
-  version = "20120110";
+  version = "20120807";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "http://www.impredicative.com/ur/${name}.tgz";
-    sha256 = "1f67nj2akji9dh3n2hwmcrrwd61zlrnb0xh841fpb3n20ycjzg6j";
+    sha256 = "15g1cz108dkzlp433cg56x76f20y6zcs9sbgxgdniyfakmn4ld6l";
   };
 
   buildInputs = [ stdenv.gcc file openssl mlton mysql postgresql sqlite ];
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
     '';
 
     homepage = http://www.impredicative.com/ur/;
-    license = "bsd";
+    license = stdenv.lib.licenses.bsd3;
     platforms = [ "i686-linux" "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/eclipse/ecj/default.nix b/pkgs/development/eclipse/ecj/default.nix
index 53343f00ca55..8d083126e4cf 100644
--- a/pkgs/development/eclipse/ecj/default.nix
+++ b/pkgs/development/eclipse/ecj/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchurl, unzip, ant, gcj }:
 
 let
-  version = "3.6.1";
-  date    = "201009090800";
+  version = "3.7.2";
+  date    = "201202080800";
   isGCJ   = stdenv.lib.strings.substring 0 3 gcj.name == "gcj";
   javaExec  = if isGCJ then "gij" else "java";
   javaFlags = if isGCJ then "--cp" else "-cp";
@@ -11,8 +11,8 @@ in
     name = "ecj-${version}";
 
     src = fetchurl {
-      url = "http://eclipse.ialto.org/eclipse/downloads/drops/R-${version}-${date}/ecjsrc-${version}.zip";
-      sha256 = "0xfsig2pzd9wy524wp11s7pc7cj81s28g1485995b44d9qbi17h8";
+      url = "http://eclipse.ialto.org/eclipse/downloads/drops/R-${version}-${date}/ecjsrc-${version}.jar";
+      sha256 = "0swyysbyfmv068x8q1c5jqpwk5zb4xahg17aypx5rwb660f8fpbm";
     };
 
     buildInputs = [ unzip ant gcj ];
diff --git a/pkgs/development/interpreters/guile/default.nix b/pkgs/development/interpreters/guile/default.nix
index 0e1e21ed9621..cc49ab87af89 100644
--- a/pkgs/development/interpreters/guile/default.nix
+++ b/pkgs/development/interpreters/guile/default.nix
@@ -81,10 +81,31 @@
 
 //
 
+(stdenv.lib.optionalAttrs stdenv.isSunOS {
+  # TODO: Move me above.
+  configureFlags =
+    [
+      # Make sure the right <gmp.h> is found, and not the incompatible
+      # /usr/include/mp.h from OpenSolaris.  See
+      # <https://lists.gnu.org/archive/html/hydra-users/2012-08/msg00000.html>
+      # for details.
+      "--with-libgmp-prefix=${gmp}"
+
+      # Same for these (?).
+      "--with-libreadline-prefix=${readline}"
+      "--with-libunistring-prefix=${libunistring}"
+
+      # See below.
+      "--without-threads"
+    ];
+})
+
+//
+
 (if stdenv.isFreeBSD
  then {
-   # XXX: Thread support is currently broken on FreeBSD (namely the
-   # `SCM_I_IS_THREAD' assertion in `scm_spawn_thread' is hit.)
+   # XXX: Thread support is currently broken on FreeBSD and Solaris (namely
+   # the `SCM_I_IS_THREAD' assertion in `scm_spawn_thread' is hit.)
    configureFlags = [ "--without-threads" ];
  }
  else {}))
diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix
index 4293e0112991..3ffdc415f880 100644
--- a/pkgs/development/interpreters/octave/default.nix
+++ b/pkgs/development/interpreters/octave/default.nix
@@ -3,10 +3,10 @@ libX11, graphicsmagick, pcre, liblapack, texLive, pkgconfig, mesa, fltk,
 fftw, fftwSinglePrec, zlib, curl, qrupdate }:
 
 stdenv.mkDerivation rec {
-  name = "octave-3.6.1";
+  name = "octave-3.6.2";
   src = fetchurl {
     url = "mirror://gnu/octave/${name}.tar.bz2";
-    sha256 = "1xmd9rqpwzn6z808i3brw1w9lh083vpjg046cj4gg3qdazkkw1zq";
+    sha256 = "1bn48ldhx585iyrylnz59b6mb3wlpvmz2i3ri8q75s5ys29rpdhb";
   };
 
   buildInputs = [ gfortran readline ncurses perl flex texinfo qhull libX11
diff --git a/pkgs/development/interpreters/octave/hg.nix b/pkgs/development/interpreters/octave/hg.nix
index a908ddc0fc88..f414dd719654 100644
--- a/pkgs/development/interpreters/octave/hg.nix
+++ b/pkgs/development/interpreters/octave/hg.nix
@@ -1,5 +1,5 @@
 {stdenv, fetchurl, gfortran, readline, ncurses, perl, flex,
- bison, autoconf, automake, sourceFromHead, getConfig, lib, atlas, gperf, python, glibc, gnuplot, texinfo, texLive, qhull, libX11}:
+ bison, autoconf, automake, sourceFromHead, config, lib, atlas, gperf, python, glibc, gnuplot, texinfo, texLive, qhull, libX11}:
 
 let commonBuildInputs = [gfortran readline ncurses perl glibc qhull libX11 texinfo]; in
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation ({
       license = "GPL-3";
     };
 } // (
-  if (getConfig ["octave" "devVersion"] false) then {
+  if (config.octave.devVersion or false) then {
     name = "octave-hg"; # developement version mercurial repo
     # REGION AUTO UPDATE:   { name="octave"; type = "hg"; url = "http://www.octave.org/hg/octave"; }
     src = sourceFromHead "octave-03b414516dd8.tar.gz"
@@ -27,7 +27,7 @@ stdenv.mkDerivation ({
         export HOME=$TMP
         '';
     buildInputs = commonBuildInputs ++ [ flex bison autoconf automake gperf gnuplot texLive ]
-                  ++ lib.optionals (getConfig ["octave" "atlas"] true) [ python atlas ];
+                  ++ lib.optionals (config.octave.atlas or true) [ python atlas ];
     # it does build, but documentation doesn't.. So just remove that directory
     # from the buildfile
     buildPhase = ''
@@ -44,6 +44,6 @@ stdenv.mkDerivation ({
       sha256 = "1lm4v85kdic4n5yxwzrdb0v6dc6nw06ljgx1q8hfkmi146kpg7s6";
     };
     buildInputs = commonBuildInputs ++ [ flex bison autoconf automake python ]
-                  ++ lib.optionals (getConfig ["octave" "atlas"] true) [ python atlas ];
+                  ++ lib.optionals (config.octave.atlas or true) [ python atlas ];
   }
 ))
diff --git a/pkgs/development/interpreters/php/5.2.nix b/pkgs/development/interpreters/php/5.2.nix
index f98d178663f1..4395c0f498c9 100644
--- a/pkgs/development/interpreters/php/5.2.nix
+++ b/pkgs/development/interpreters/php/5.2.nix
@@ -121,23 +121,23 @@ composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
     };
 
   cfg = {
-    mysqlSupport = getConfig ["php" "mysql"] true;
-    mysqliSupport = getConfig ["php" "mysqli"] true;
-    pdo_mysqlSupport = getConfig ["php" "pdo_mysql"] true;
-    libxml2Support = getConfig ["php" "libxml2"] true;
-    apxs2Support = getConfig ["php" "apxs2"] true;
-    bcmathSupport = getConfig ["php" "bcmath"] true;
-    socketsSupport = getConfig ["php" "sockets"] true;
-    curlSupport = getConfig ["php" "curl"] true;
-    gettextSupport = getConfig ["php" "gettext"] true;
-    postgresqlSupport = getConfig ["php" "postgresql"] true;
-    readlineSupport = getConfig ["php" "readline"] true;
-    sqliteSupport = getConfig ["php" "sqlite"] true;
-    soapSupport = getConfig ["php" "soap"] true;
-    zlibSupport = getConfig ["php" "zlib"] true;
-    opensslSupport = getConfig ["php" "openssl"] true;
-    mbstringSupport = getConfig ["php" "mbstring"] true;
-    gdSupport = getConfig ["php" "gd"] true;
+    mysqlSupport = config.php.mysql or true;
+    mysqliSupport = config.php.mysqli or true;
+    pdo_mysqlSupport = config.php.pdo_mysql or true;
+    libxml2Support = config.php.libxml2 or true;
+    apxs2Support = config.php.apxs2 or true;
+    bcmathSupport = config.php.bcmath or true;
+    socketsSupport = config.php.sockets or true;
+    curlSupport = config.php.curl or true;
+    gettextSupport = config.php.gettext or true;
+    postgresqlSupport = config.php.postgresql or true;
+    readlineSupport = config.php.readline or true;
+    sqliteSupport = config.php.sqlite or true;
+    soapSupport = config.php.soap or true;
+    zlibSupport = config.php.zlib or true;
+    opensslSupport = config.php.openssl or true;
+    mbstringSupport = config.php.mbstring or true;
+    gdSupport = config.php.gd or true;
   };
 
   configurePhase = ''
diff --git a/pkgs/development/interpreters/php/5.3.nix b/pkgs/development/interpreters/php/5.3.nix
index 48eb8ac5ee9d..d4aebc77637b 100644
--- a/pkgs/development/interpreters/php/5.3.nix
+++ b/pkgs/development/interpreters/php/5.3.nix
@@ -8,7 +8,7 @@ in
 
 composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
 
-  version = "5.3.14";
+  version = "5.3.15";
 
   name = "php-${version}";
 
@@ -121,23 +121,23 @@ composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
     };
 
   cfg = {
-    mysqlSupport = getConfig ["php" "mysql"] true;
-    mysqliSupport = getConfig ["php" "mysqli"] true;
-    pdo_mysqlSupport = getConfig ["php" "pdo_mysql"] true;
-    libxml2Support = getConfig ["php" "libxml2"] true;
-    apxs2Support = getConfig ["php" "apxs2"] true;
-    bcmathSupport = getConfig ["php" "bcmath"] true;
-    socketsSupport = getConfig ["php" "sockets"] true;
-    curlSupport = getConfig ["php" "curl"] true;
-    gettextSupport = getConfig ["php" "gettext"] true;
-    postgresqlSupport = getConfig ["php" "postgresql"] true;
-    readlineSupport = getConfig ["php" "readline"] true;
-    sqliteSupport = getConfig ["php" "sqlite"] true;
-    soapSupport = getConfig ["php" "soap"] true;
-    zlibSupport = getConfig ["php" "zlib"] true;
-    opensslSupport = getConfig ["php" "openssl"] true;
-    mbstringSupport = getConfig ["php" "mbstring"] true;
-    gdSupport = getConfig ["php" "gd"] true;
+    mysqlSupport = config.php.mysql or true;
+    mysqliSupport = config.php.mysqli or true;
+    pdo_mysqlSupport = config.php.pdo_mysql or true;
+    libxml2Support = config.php.libxml2 or true;
+    apxs2Support = config.php.apxs2 or true;
+    bcmathSupport = config.php.bcmath or true;
+    socketsSupport = config.php.sockets or true;
+    curlSupport = config.php.curl or true;
+    gettextSupport = config.php.gettext or true;
+    postgresqlSupport = config.php.postgresql or true;
+    readlineSupport = config.php.readline or true;
+    sqliteSupport = config.php.sqlite or true;
+    soapSupport = config.php.soap or true;
+    zlibSupport = config.php.zlib or true;
+    opensslSupport = config.php.openssl or true;
+    mbstringSupport = config.php.mbstring or true;
+    gdSupport = config.php.gd or true;
   };
 
   configurePhase = ''
@@ -149,15 +149,12 @@ composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
 
   installPhase = ''
     unset installPhase; installPhase;
-    cp php.ini-${ if builtins.lessThan (builtins.compareVersions version "5.3") 0
-        then "recommended" /* < PHP 5.3 */
-        else "production" /* >= PHP 5.3 */
-    } $iniFile
+    cp php.ini-production $iniFile
   '';
 
   src = args.fetchurl {
     url = "http://nl.php.net/get/php-${version}.tar.bz2/from/this/mirror";
-    sha256 = "1cqw0knkrb7wn49ki5kcly4i0hjnd12sf9l4rhk0vny5hdp5n1y8";
+    sha256 = "1vzij845n2akh2lkpacgdc5r0f7nw6pk9l9vi1h8l8k4krjjbdzr";
     name = "php-${version}.tar.bz2";
   };
 
diff --git a/pkgs/development/interpreters/ruby/libs.nix b/pkgs/development/interpreters/ruby/libs.nix
index 9aa9203f10f6..1b4b7aec2b1c 100644
--- a/pkgs/development/interpreters/ruby/libs.nix
+++ b/pkgs/development/interpreters/ruby/libs.nix
@@ -1,4 +1,4 @@
-{stdenv, getConfig, fetchurl, callPackage}:
+{ stdenv, config, fetchurl, callPackage }:
 
 let
   inherit (stdenv.lib) fold optional;
@@ -36,7 +36,7 @@ in
           if builtins.pathExists file then import (builtins.toPath file)
           else null;
       in
-      getConfig [ "gems" name ] fallback;
+      stdenv.lib.attrByPath [ "gems" name ] fallback config;
   in
 {
   generated = getLocalGemFun "generated";
diff --git a/pkgs/development/interpreters/tcl/default.nix b/pkgs/development/interpreters/tcl/default.nix
index 060aa3b5a6ba..48755065b992 100644
--- a/pkgs/development/interpreters/tcl/default.nix
+++ b/pkgs/development/interpreters/tcl/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation {
   meta = {
     description = "The Tcl scription language";
     homepage = http://www.tcl.tk/;
+    license = stdenv.lib.licenses.tcltk;
   };
   
   passthru = {
diff --git a/pkgs/development/libraries/babl/0_0_22.nix b/pkgs/development/libraries/babl/0_0_22.nix
new file mode 100644
index 000000000000..2464a09f51aa
--- /dev/null
+++ b/pkgs/development/libraries/babl/0_0_22.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+  name = "babl-0.0.22";
+
+  src = fetchurl {
+    url = ftp://ftp.gtk.org/pub/babl/0.0/babl-0.0.22.tar.bz2;
+    sha256 = "0v8gbf9si4sd06199f8lfmrsbvi6i0hxphd34kyvsj6g2kkkg10s";
+  };
+
+  meta = { 
+    description = "Image pixel format conversion library";
+    homepage = http://gegl.org/babl/;
+    license = "GPL3";
+  };
+}
diff --git a/pkgs/development/libraries/boost/1.50-headers.nix b/pkgs/development/libraries/boost/1.51-headers.nix
index b901d73da733..4b1c1f80c541 100644
--- a/pkgs/development/libraries/boost/1.50-headers.nix
+++ b/pkgs/development/libraries/boost/1.51-headers.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation {
-  name = "boost-1.50.0-headers";
+  name = "boost-1.51.0-headers";
 
   src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_50_0.tar.bz2";
-    sha256 = "0ac5b82g6b5pdhzypgddql0i3i9vvrwf9iqp3lyp19hzr2wf5b69";
+    url = "mirror://sourceforge/boost/boost_1_51_0.tar.bz2";
+    sha256 = "fb2d2335a29ee7fe040a197292bfce982af84a645c81688a915c84c925b69696";
   };
 
   phases = [ "installPhase" ];
 
   installPhase = ''
     mkdir -p $out/include
-    tar xvf $src -C $out/include --strip-components=1 boost_1_50_0/boost
+    tar xf $src -C $out/include --strip-components=1 ./boost_1_51_0/boost
   '';
 
   meta = {
diff --git a/pkgs/development/libraries/boost/1.50.nix b/pkgs/development/libraries/boost/1.51.nix
index 3d6c6010a20f..8b040dd86473 100644
--- a/pkgs/development/libraries/boost/1.50.nix
+++ b/pkgs/development/libraries/boost/1.51.nix
@@ -38,7 +38,7 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "boost-1.50.0";
+  name = "boost-1.51.0";
 
   meta = {
     homepage = "http://boost.org/";
@@ -50,8 +50,8 @@ stdenv.mkDerivation {
   };
 
   src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_50_0.tar.bz2";
-    sha256 = "0ac5b82g6b5pdhzypgddql0i3i9vvrwf9iqp3lyp19hzr2wf5b69";
+    url = "mirror://sourceforge/boost/boost_1_51_0.tar.bz2";
+    sha256 = "fb2d2335a29ee7fe040a197292bfce982af84a645c81688a915c84c925b69696";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/bwidget/default.nix b/pkgs/development/libraries/bwidget/default.nix
index 693e0587a0b2..31dc885bc433 100644
--- a/pkgs/development/libraries/bwidget/default.nix
+++ b/pkgs/development/libraries/bwidget/default.nix
@@ -12,9 +12,19 @@ stdenv.mkDerivation rec {
   dontBuild = true;
 
   installPhase = ''
-    ensureDir "$out/tcltk"
-    cp -R *.tcl lang images "$out/tcltk/"
+    ensureDir "$out/lib/${passthru.libPrefix}"
+    cp -R *.tcl lang images "$out/lib/${passthru.libPrefix}"
   '';
 
-  buildInputs = [tcl];
+  passthru = {
+    libPrefix = "bwidget${version}";
+  };
+
+  buildInputs = [ tcl ];
+
+  meta = {
+    homepage = "http://tcl.activestate.com/software/tcllib/";
+    description = "The BWidget toolkit is a high-level widget set for Tcl/Tk.";
+    license = stdenv.lib.licenses.tcltk;
+  };
 }
diff --git a/pkgs/development/libraries/celt/0.5.1.nix b/pkgs/development/libraries/celt/0.5.1.nix
new file mode 100644
index 000000000000..0f42e7cd0407
--- /dev/null
+++ b/pkgs/development/libraries/celt/0.5.1.nix
@@ -0,0 +1,46 @@
+x@{builderDefsPackage
+  , ...}:
+builderDefsPackage
+(a :
+let
+  helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
+    [];
+
+  buildInputs = map (n: builtins.getAttr n x)
+    (builtins.attrNames (builtins.removeAttrs x helperArgNames));
+  sourceInfo = rec {
+    baseName="celt";
+    version="0.5.1.3";
+    name="${baseName}-${version}";
+    url="http://downloads.xiph.org/releases/${baseName}/${name}.tar.gz";
+    hash="0bkam9z5vnrxpbxkkh9kw6yzjka9di56h11iijikdd1f71l5nbpw";
+  };
+in
+rec {
+  src = a.fetchurl {
+    url = sourceInfo.url;
+    sha256 = sourceInfo.hash;
+  };
+
+  inherit (sourceInfo) name version;
+  inherit buildInputs;
+
+  /* doConfigure should be removed if not needed */
+  phaseNames = ["doConfigure" "doMakeInstall"];
+
+  meta = {
+    description = "CELT - low-delay audio codec";
+    maintainers = with a.lib.maintainers;
+    [
+      raskin
+    ];
+    platforms = with a.lib.platforms;
+      linux;
+    license = "free";
+  };
+  passthru = {
+    updateInfo = {
+      downloadPage = "http://www.celt-codec.org/downloads/";
+    };
+  };
+}) x
diff --git a/pkgs/development/libraries/clucene-core/2.x.nix b/pkgs/development/libraries/clucene-core/2.x.nix
new file mode 100644
index 000000000000..72460184df21
--- /dev/null
+++ b/pkgs/development/libraries/clucene-core/2.x.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchurl, cmake, boost, zlib}:
+
+stdenv.mkDerivation rec {
+  name = "clucene-core-2.3.3.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/clucene/${name}.tar.gz";
+    sha256 = "1arffdwivig88kkx685pldr784njm0249k0rb1f1plwavlrw9zfx";
+  };
+
+  buildNativeInputs = [ cmake ];
+
+  buildInputs = [ boost zlib ];
+
+  cmakeFlags = [ "-DBUILD_CONTRIBS=ON" "-DBUILD_CONTRIBS_LIB=ON" ];
+
+  patches = # From debian
+    [ ./Fix-pkgconfig-file-by-adding-clucene-shared-library.patch
+      ./Fixing_ZLIB_configuration_in_shared_CMakeLists.patch
+      ./Install-contribs-lib.patch
+    ];
+
+  meta = {
+    description = "CLucene is a port of the very popular Java Lucene text search engine API. Core package, 2.x branch.";
+    homepage = http://clucene.sourceforge.net;
+  };
+}
diff --git a/pkgs/development/libraries/clucene-core/Fix-pkgconfig-file-by-adding-clucene-shared-library.patch b/pkgs/development/libraries/clucene-core/Fix-pkgconfig-file-by-adding-clucene-shared-library.patch
new file mode 100644
index 000000000000..80e49a8e712e
--- /dev/null
+++ b/pkgs/development/libraries/clucene-core/Fix-pkgconfig-file-by-adding-clucene-shared-library.patch
@@ -0,0 +1,19 @@
+From 7be4a19b76d98260cf95040a47935f854a4ba7a4 Mon Sep 17 00:00:00 2001
+From: Valentin Rusu <kde@rusu.info>
+Date: Sat, 17 Dec 2011 13:47:58 +0100
+Subject: [PATCH] Fix .pc file by adding clucene-shared library
+
+---
+ src/core/libclucene-core.pc.cmake |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/src/core/libclucene-core.pc.cmake
++++ b/src/core/libclucene-core.pc.cmake
+@@ -6,6 +6,6 @@ includedir=${prefix}/include:${prefix}/i
+ Name: libclucene
+ Description: CLucene - a C++ search engine, ported from the popular Apache Lucene
+ Version: @CLUCENE_VERSION_MAJOR@.@CLUCENE_VERSION_MINOR@.@CLUCENE_VERSION_REVISION@.@CLUCENE_VERSION_PATCH@
+-Libs: -L${prefix}/@LIB_DESTINATION@/ -lclucene-core
++Libs: -L${prefix}/@LIB_DESTINATION@/ -lclucene-core -lclucene-shared
+ Cflags: -I${prefix}/include -I${prefix}/include/CLucene/ext
+ ~
diff --git a/pkgs/development/libraries/clucene-core/Fixing_ZLIB_configuration_in_shared_CMakeLists.patch b/pkgs/development/libraries/clucene-core/Fixing_ZLIB_configuration_in_shared_CMakeLists.patch
new file mode 100644
index 000000000000..f5f44a7fa2c4
--- /dev/null
+++ b/pkgs/development/libraries/clucene-core/Fixing_ZLIB_configuration_in_shared_CMakeLists.patch
@@ -0,0 +1,20 @@
+From 772481ca94071ddfe65102a451926e4f9aeb4d2c Mon Sep 17 00:00:00 2001
+From: Veit Jahns <idolum@users.sourceforge.net>
+Date: Thu, 26 May 2011 13:35:28 +0200
+Subject: [PATCH] Fixing ZLIB configuration in shared's CMakeLists
+
+---
+ src/shared/CMakeLists.txt |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/src/shared/CMakeLists.txt
++++ b/src/shared/CMakeLists.txt
+@@ -42,7 +42,7 @@ INCLUDE (CheckAtomicFunctions)
+ find_package(ZLIB)
+ IF ( ZLIB_FOUND )
+   SET ( EXTRA_LIBS ${EXTRA_LIBS} ${ZLIB_LIBRARY} )
+-ELSEIF ( ZLIB_FOUND )
++ELSE ( ZLIB_FOUND )
+   MESSAGE( "ZLIB not found, using local: ${clucene-ext_SOURCE_DIR}/zlib" )
+   SET(ZLIB_INCLUDE_DIR ${clucene-ext_SOURCE_DIR}/zlib )
+   SET(ZLIB_LIBRARY ${clucene-ext_BINARY_DIR})
diff --git a/pkgs/development/libraries/clucene-core/Install-contribs-lib.patch b/pkgs/development/libraries/clucene-core/Install-contribs-lib.patch
new file mode 100644
index 000000000000..899411fe02b4
--- /dev/null
+++ b/pkgs/development/libraries/clucene-core/Install-contribs-lib.patch
@@ -0,0 +1,49 @@
+Description: contribs-lib is not built and installed even with config
+Author: Vitaliy Filippov
+Bug: https://sourceforge.net/tracker/index.php?func=detail&aid=3392466&group_id=80013&atid=558446
+ 
+---
+ CMakeLists.txt                  |    2 +-
+ src/contribs-lib/CMakeLists.txt |   17 +++++++++++++++++
+ 2 files changed, 18 insertions(+), 1 deletion(-)
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -163,7 +163,7 @@ IF ( BUILD_CONTRIBS )
+   SET(BUILD_CONTRIBS_LIB 1)
+ ENDIF ( BUILD_CONTRIBS )
+ IF ( BUILD_CONTRIBS_LIB )
+-  ADD_SUBDIRECTORY (src/contribs-lib EXCLUDE_FROM_ALL)
++  ADD_SUBDIRECTORY (src/contribs-lib)
+ ENDIF ( BUILD_CONTRIBS_LIB )
+ 
+ 
+--- a/src/contribs-lib/CMakeLists.txt
++++ b/src/contribs-lib/CMakeLists.txt
+@@ -106,9 +106,26 @@ add_library(clucene-contribs-lib SHARED
+ )
+ TARGET_LINK_LIBRARIES(clucene-contribs-lib ${clucene_contrib_extra_libs})
+ 
++#install public headers.
++FOREACH(file ${HEADERS})
++	get_filename_component(apath ${file} PATH)
++	get_filename_component(aname ${file} NAME)
++	file(RELATIVE_PATH relpath ${CMAKE_SOURCE_DIR}/src/contribs-lib ${apath})
++	IF ( NOT aname MATCHES "^_.*" )
++		install(FILES ${file} 
++		        DESTINATION include/${relpath}
++		        COMPONENT development)
++	ENDIF ( NOT aname MATCHES "^_.*" )
++ENDFOREACH(file)
++
+ #set properties on the libraries
+ SET_TARGET_PROPERTIES(clucene-contribs-lib PROPERTIES
+     VERSION ${CLUCENE_VERSION}
+     SOVERSION ${CLUCENE_SOVERSION}
+     COMPILE_DEFINITIONS_DEBUG _DEBUG
+ )
++
++#and install library
++install(TARGETS clucene-contribs-lib 
++        DESTINATION ${LIB_DESTINATION}  
++        COMPONENT runtime )
diff --git a/pkgs/development/libraries/cyrus-sasl/default.nix b/pkgs/development/libraries/cyrus-sasl/default.nix
index a03f753a1141..c5aefbe32144 100644
--- a/pkgs/development/libraries/cyrus-sasl/default.nix
+++ b/pkgs/development/libraries/cyrus-sasl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, openssl, db4, gettext }:
+{ stdenv, fetchurl, openssl, db4, gettext, pam }:
 
 stdenv.mkDerivation rec {
   name = "cyrus-sasl-2.1.25";
@@ -8,12 +8,13 @@ stdenv.mkDerivation rec {
     sha256 = "418c16e6240a4f9b637cbe3d62937b9675627bad27c622191d47de8686fe24fe";
   };
 
-  buildInputs = [ openssl db4 gettext ];
+  buildInputs = [ openssl db4 gettext ] ++ stdenv.lib.optional stdenv.isLinux pam;
 
   # Set this variable at build-time to make sure $out can be evaluated.
   preConfigure = ''
     configureFlagsArray=( --with-plugindir=$out/lib/sasl2
                           --with-configdir=$out/lib/sasl2
+			  --with-saslauthd=/run/saslauthd
 			  --enable-login
 			)
   '';
diff --git a/pkgs/development/libraries/dxflib/default.nix b/pkgs/development/libraries/dxflib/default.nix
new file mode 100644
index 000000000000..f9c58857731c
--- /dev/null
+++ b/pkgs/development/libraries/dxflib/default.nix
@@ -0,0 +1,17 @@
+{stdenv, fetchurl}: 
+
+stdenv.mkDerivation rec {
+  version = "2.5.0.0-1";
+  name = "dxflib-${version}";
+  src = fetchurl {
+    url = "http://www.qcad.org/archives/dxflib/${name}.src.tar.gz";
+    sha256 = "20ad9991eec6b0f7a3cc7c500c044481a32110cdc01b65efa7b20d5ff9caefa9";
+  };
+
+  meta = {
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    platforms = stdenv.lib.platforms.linux;
+    description = ''DXF file format library'';
+  };
+}
+
diff --git a/pkgs/development/libraries/farstream/default.nix b/pkgs/development/libraries/farstream/default.nix
index b2b8ca6255b1..3babcb828337 100644
--- a/pkgs/development/libraries/farstream/default.nix
+++ b/pkgs/development/libraries/farstream/default.nix
@@ -1,5 +1,7 @@
 { stdenv, fetchurl, libnice, pkgconfig, python, gstreamer, gst_plugins_base
-, pygobject, gst_python, gupnp_igd }:
+, pygobject, gst_python, gupnp_igd
+, gst_plugins_good, gst_plugins_bad, gst_ffmpeg
+}:
 
 stdenv.mkDerivation rec {
   name = "farstream-0.1.2";
@@ -8,11 +10,13 @@ stdenv.mkDerivation rec {
     sha256 = "1nbkbvq959f70zhr03fwdibhs0sbf1k7zmbz9w99vda7gdcl0nps";
   };
 
-  buildInputs = [ libnice python pygobject gst_python gupnp_igd ];
+  buildInputs = [ libnice python pygobject gupnp_igd ];
 
   buildNativeInputs = [ pkgconfig ];
 
-  propagatedBuildInputs = [ gstreamer gst_plugins_base ];
+  propagatedBuildInputs = [ gstreamer gst_plugins_base gst_python 
+    gst_plugins_good gst_plugins_bad gst_ffmpeg
+    ];
 
   meta = {
     homepage = http://www.freedesktop.org/wiki/Software/Farstream;
diff --git a/pkgs/development/libraries/fftw/default.nix b/pkgs/development/libraries/fftw/default.nix
index 845ec7720106..6b4fbe7df6ce 100644
--- a/pkgs/development/libraries/fftw/default.nix
+++ b/pkgs/development/libraries/fftw/default.nix
@@ -1,15 +1,19 @@
-{fetchurl, stdenv, builderDefs, stringsWithDeps, singlePrecision ? false}:
-let localDefs = builderDefs.passthru.function { 
+{fetchurl, stdenv, builderDefs, stringsWithDeps, singlePrecision ? false, pthreads ? false}:
+let
+  version = "3.3.2";
+  localDefs = builderDefs.passthru.function { 
   src = 
     fetchurl {
-      url = ftp://ftp.fftw.org/pub/fftw/fftw-3.2.2.tar.gz;
-      sha256 = "13vnglardq413q2518zi4a8pam3znydrz28m9w09kss9xrjsx9va";
+      url = "ftp://ftp.fftw.org/pub/fftw/fftw-${version}.tar.gz";
+      sha256 = "b1236a780ca6e66fc5f8eda6ef0665d680e8253d9f01d7bf211b714a50032d01";
     };
   buildInputs = [];
-  configureFlags = ["--enable-shared" "--enable-openmp"]
+  configureFlags = ["--enable-shared"]
                         # some distros seem to be shipping both versions within the same package?
                         # why does --enable-float still result in ..3f.so instead of ..3.so?
                    ++ (if singlePrecision then [ "--enable-single" ] else [ ])
+		   ++ (stdenv.lib.optional (!pthreads) "--enable-openmp")
+		   ++ (stdenv.lib.optional pthreads "--enable-threads")
                         # I think all i686 has sse
                    ++ (if (stdenv.isi686 || stdenv.isx86_64) && singlePrecision then [ "--enable-sse" ] else [ ])
                         # I think all x86_64 has sse2
@@ -18,8 +22,8 @@ let localDefs = builderDefs.passthru.function {
   };
 in with localDefs;
 stdenv.mkDerivation {
-  name = "fftw-3.2.2" + ( if singlePrecision then "-single" else "-double" );
-  builder = writeScript "fftw-3.2.1-builder"
+  name = "fftw-3.3.2" + ( if singlePrecision then "-single" else "-double" );
+  builder = writeScript "fftw-3.3.2-builder"
     (textClosure localDefs [doConfigure doMakeInstall doForceShare]);
   meta = {
     description = "Fastest Fourier Transform in the West library";
diff --git a/pkgs/development/libraries/freeimage/default.nix b/pkgs/development/libraries/freeimage/default.nix
index ec381dc433a6..c3cfa6e8c87b 100644
--- a/pkgs/development/libraries/freeimage/default.nix
+++ b/pkgs/development/libraries/freeimage/default.nix
@@ -1,9 +1,9 @@
 {stdenv, fetchurl, unzip}:
 stdenv.mkDerivation {
-  name = "freeimage-3.15.0";
+  name = "freeimage-3.15.3";
   src = fetchurl {
-    url = mirror://sourceforge/freeimage/FreeImage3150.zip;
-    sha256 = "0diyj862sdqwjqb7v2nccf8cl6886v937jkw6dgszp86qpwsfx3n";
+    url = mirror://sourceforge/freeimage/FreeImage3153.zip;
+    sha256 = "0i60fn1n9rw55dci0yw92zrw7k1jz3f9kv2z1wxmh84s5ngxa626";
   };
   buildInputs = [ unzip ];
   prePatch = ''
diff --git a/pkgs/development/libraries/gegl/0_0_22.nix b/pkgs/development/libraries/gegl/0_0_22.nix
new file mode 100644
index 000000000000..150ba1ac961a
--- /dev/null
+++ b/pkgs/development/libraries/gegl/0_0_22.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, glib, babl_0_0_22, libpng12, cairo, libjpeg
+, librsvg, pango, gtk }:
+        
+stdenv.mkDerivation {
+  name = "gegl-0.0.22";
+
+  src = fetchurl {
+    url = ftp://ftp.gimp.org/pub/gegl/0.0/gegl-0.0.22.tar.bz2;
+    sha256 = "0nx6r9amzhw5d2ghlw3z8qnry18rwz1ymvl2cm31b8p49z436wl5";
+  };
+
+  configureFlags = "--disable-docs"; # needs fonts otherwise  don't know how to pass them
+
+  buildInputs = [ pkgconfig glib babl_0_0_22 libpng12 cairo libjpeg librsvg pango gtk ];
+
+  meta = { 
+    description = "Graph-based image processing framework";
+    homepage = http://www.gegl.org;
+    license = "GPL3";
+  };
+}
diff --git a/pkgs/development/libraries/glib/2.32.x.nix b/pkgs/development/libraries/glib/2.32.x.nix
index 40e0b81cb938..8fd77b025891 100644
--- a/pkgs/development/libraries/glib/2.32.x.nix
+++ b/pkgs/development/libraries/glib/2.32.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, gettext, perl, libiconv, zlib, libffi
+{ stdenv, fetchurl, pkgconfig, gettext, perl, libiconvOrNull, zlib, libffi
 , python, pcre }:
 
 # TODO:
@@ -20,7 +20,11 @@ stdenv.mkDerivation rec {
   };
 
   # configure script looks for d-bus but it is only needed for tests
-  buildInputs = [ pcre ] ++ stdenv.lib.optional (!stdenv.isLinux) libiconv;
+  buildInputs = [ pcre ]
+    ++ (if libiconvOrNull != null
+        then [ libiconvOrNull ]
+        else []);
+
   buildNativeInputs = [ perl pkgconfig gettext python ];
 
   propagatedBuildInputs = [ zlib libffi ];
diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix
index 4bd0dfdc5291..93f5dab537e9 100644
--- a/pkgs/development/libraries/gnutls/default.nix
+++ b/pkgs/development/libraries/gnutls/default.nix
@@ -1,17 +1,18 @@
 { fetchurl, stdenv, zlib, lzo, libtasn1, nettle
-, guileBindings, guile, perl, psmisc }:
+, guileBindings, guile, perl, gmp }:
 
 assert guileBindings -> guile != null;
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
 
-  name = "gnutls-3.0.18";
+  name = "gnutls-3.0.22";
 
   src = fetchurl {
     url = "mirror://gnu/gnutls/${name}.tar.xz";
-    sha256 = "1ynqnj1j6rrzplk2i64dik34829r0y7lwk4qlvjx993q3mj7z863";
+    sha256 = "1pp90fm27qi5cd0pq18xcmnl79xcbfwxc54bg1xi1wv0vryqdpcr";
   };
 
+  # FIXME: Turn into a Nix list.
   configurePhase = ''
     ./configure --prefix="$out"                                 \
       --disable-dependency-tracking --enable-fast-install       \
@@ -19,6 +20,11 @@ stdenv.mkDerivation rec {
       --with-lzo --with-libtasn1-prefix="${libtasn1}"		\
       ${if guileBindings
         then "--enable-guile --with-guile-site-dir=\"$out/share/guile/site\""
+        else ""}${if stdenv.isSunOS
+          # TODO: Use `--with-libnettle-prefix' on all platforms
+          # Note: GMP is a dependency of Nettle, whose public headers include
+          # GMP headers, hence the hack.
+        then " --with-libnettle-prefix=${nettle} CPPFLAGS=-I${gmp}/include"
         else ""}
   '';
 
@@ -29,13 +35,9 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ nettle libtasn1 ];
 
-  # XXX: Disable tests on non-Linux because of the `mini-loss-time' hack
-  # below, which is Linux-specific.
-  doCheck = stdenv.isLinux;
-
-  postCheck =
-    # Kill a process that's left behind.
-    stdenv.lib.optionalString doCheck "${psmisc}/bin/killall mini-loss-time";
+  # XXX: Gnulib's `test-select' fails on FreeBSD:
+  # http://hydra.nixos.org/build/2962084/nixlog/1/raw .
+  doCheck = (!stdenv.isFreeBSD);
 
   meta = {
     description = "The GNU Transport Layer Security Library";
@@ -60,3 +62,10 @@ stdenv.mkDerivation rec {
     maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
+
+//
+
+(stdenv.lib.optionalAttrs stdenv.isFreeBSD {
+  # FreeBSD doesn't have <alloca.h>, and Gnulib's `alloca' module isn't used.
+  patches = [ ./guile-gnulib-includes.patch ];
+}))
diff --git a/pkgs/development/libraries/gnutls/guile-gnulib-includes.patch b/pkgs/development/libraries/gnutls/guile-gnulib-includes.patch
new file mode 100644
index 000000000000..1624d1f7ab9d
--- /dev/null
+++ b/pkgs/development/libraries/gnutls/guile-gnulib-includes.patch
@@ -0,0 +1,17 @@
+commit 699ae6ef085c699dd5f3fb460b0f8a2408cc2860
+Author: Simon Josefsson <simon@josefsson.org>
+Date:   Thu Aug 9 15:24:11 2012 +0200
+
+    Add gnulib -I's to guile-snarf command.
+
+--- gnutls-3.0.22/guile/src/Makefile.in	2012-08-04 20:52:39.000000000 +0200
++++ gnutls-3.0.22/guile/src/Makefile.in	2012-08-11 21:55:20.000000000 +0200
+@@ -1564,7 +1564,7 @@ AM_CPPFLAGS = \
+ # `$(GUILE_CFLAGS)' may contain a series of `-I' switches so it must be
+ # included here, even though we'd really want `$(GUILE_CPPFLAGS)'.
+ snarfcppopts = $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+-	       $(CFLAGS) $(AM_CFLAGS) $(GUILE_CFLAGS)
++	       $(CFLAGS) $(guile_gnutls_v_2_la_CFLAGS)
+ 
+ all: $(BUILT_SOURCES)
+ 	$(MAKE) $(AM_MAKEFLAGS) all-am
diff --git a/pkgs/development/libraries/haskell/Agda/default.nix b/pkgs/development/libraries/haskell/Agda/default.nix
index c72177e2108f..b598accffc60 100644
--- a/pkgs/development/libraries/haskell/Agda/default.nix
+++ b/pkgs/development/libraries/haskell/Agda/default.nix
@@ -13,9 +13,7 @@ cabal.mkDerivation (self: {
     QuickCheck syb xhtml zlib
   ];
   buildTools = [ alex happy ];
-  patchPhase = ''
-    sed -i -e 's|mtl == 2.0.\*|mtl|' Agda.cabal
-  '';
+  jailbreak = true;
   meta = {
     homepage = "http://wiki.portal.chalmers.se/agda/";
     description = "A dependently typed functional programming language and proof assistant";
diff --git a/pkgs/development/libraries/haskell/AspectAG/default.nix b/pkgs/development/libraries/haskell/AspectAG/default.nix
index 3b2df825a73b..6cbd760b4aca 100644
--- a/pkgs/development/libraries/haskell/AspectAG/default.nix
+++ b/pkgs/development/libraries/haskell/AspectAG/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "AspectAG";
-  version = "0.3.4.1";
-  sha256 = "12iaf27crynwnnd7qm1zvvaj6zw6i6c05mb4dsq55dnhph2l356g";
+  version = "0.3.6.1";
+  sha256 = "01pglvf38v5ii2w03kdlgngxbb3ih0j5bsilv5qwc9vrh2iwirhf";
   buildDepends = [ HList mtl ];
   meta = {
     homepage = "http://www.cs.uu.nl/wiki/bin/view/Center/AspectAG";
diff --git a/pkgs/development/libraries/haskell/Cabal/1.16.0.nix b/pkgs/development/libraries/haskell/Cabal/1.16.0.nix
new file mode 100644
index 000000000000..14e811b5e94e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/Cabal/1.16.0.nix
@@ -0,0 +1,15 @@
+{ cabal, filepath }:
+
+cabal.mkDerivation (self: {
+  pname = "Cabal";
+  version = "1.16.0";
+  sha256 = "0ia2ysqbnnbfv75l8617bys5iaq8aygcbd1ijqcbzd3asf8flyms";
+  buildDepends = [ filepath ];
+  meta = {
+    homepage = "http://www.haskell.org/cabal/";
+    description = "A framework for packaging Haskell software";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/Chart/default.nix b/pkgs/development/libraries/haskell/Chart/default.nix
index 4c4584bf9a24..a59e4ca7f422 100644
--- a/pkgs/development/libraries/haskell/Chart/default.nix
+++ b/pkgs/development/libraries/haskell/Chart/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Chart";
-  version = "0.15";
-  sha256 = "1357gqn2ifalknl85n2z9ysf195dnaxm175rp0kmmzbf4vik9gc4";
+  version = "0.16";
+  sha256 = "1mb8hgxj0i5s7l061pfn49m5f6qdwvmgy6ni7jmg85vpy6b7jra3";
   buildDepends = [
     cairo colour dataAccessor dataAccessorTemplate mtl time
   ];
diff --git a/pkgs/development/libraries/haskell/CouchDB/default.nix b/pkgs/development/libraries/haskell/CouchDB/default.nix
index 3642d402615c..705a0a5fdea4 100644
--- a/pkgs/development/libraries/haskell/CouchDB/default.nix
+++ b/pkgs/development/libraries/haskell/CouchDB/default.nix
@@ -1,10 +1,10 @@
-{ cabal, HTTP, json, mtl, network }:
+{ cabal, HTTP, json, mtl, network, utf8String }:
 
 cabal.mkDerivation (self: {
   pname = "CouchDB";
-  version = "0.10.1";
-  sha256 = "1ny62ab0sjrkh7mpxj0ahqrv7c8dh0n5s1g8xl0mq3yiwlrjdsim";
-  buildDepends = [ HTTP json mtl network ];
+  version = "1.2";
+  sha256 = "0a9g0iblfyqppcy1ni3ac8f3yv5km95bfblhwqlsk6khydi5ka98";
+  buildDepends = [ HTTP json mtl network utf8String ];
   meta = {
     homepage = "http://github.com/arjunguha/haskell-couchdb/";
     description = "CouchDB interface";
diff --git a/pkgs/development/libraries/haskell/Crypto/default.nix b/pkgs/development/libraries/haskell/Crypto/default.nix
index f6f06b9c283d..f93fbdcb6796 100644
--- a/pkgs/development/libraries/haskell/Crypto/default.nix
+++ b/pkgs/development/libraries/haskell/Crypto/default.nix
@@ -11,9 +11,6 @@ cabal.mkDerivation (self: {
     description = "Collects together existing Haskell cryptographic functions into a package";
     license = "unknown";
     platforms = self.ghc.meta.platforms;
-    maintainers = [
-      self.stdenv.lib.maintainers.andres
-      self.stdenv.lib.maintainers.simons
-    ];
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/GLUT/2.3.0.0.nix b/pkgs/development/libraries/haskell/GLUT/2.3.0.0.nix
index 7725d1c8303e..4c50197a6d74 100644
--- a/pkgs/development/libraries/haskell/GLUT/2.3.0.0.nix
+++ b/pkgs/development/libraries/haskell/GLUT/2.3.0.0.nix
@@ -1,5 +1,5 @@
 { cabal, freeglut, libICE, libSM, libXi, libXmu, mesa, OpenGL
-, OpenGLRaw, StateVar, Tensor
+, OpenGLRaw, StateVar, Tensor, fetchurl
 }:
 
 cabal.mkDerivation (self: {
@@ -8,6 +8,10 @@ cabal.mkDerivation (self: {
   sha256 = "10rh57w3lx8fs0xy24lqilv5a5sgq57kshydja41r6fq9wdvwp99";
   buildDepends = [ OpenGL OpenGLRaw StateVar Tensor ];
   extraLibraries = [ freeglut libICE libSM libXi libXmu mesa ];
+  patches = [
+    (fetchurl { url = "https://github.com/haskell-opengl/GLUT/commit/e962ebb7bed7e61e4591ae67f86199d557c7d54c.patch"; sha256 = "0s9xrkz1pkbkhsjzwbj4ayynmvzp5cckkl2lrizcjwcnqv83srmq"; })
+    (fetchurl { url = "https://github.com/haskell-opengl/GLUT/commit/fced812bc726c208064a2c48e411f4d609444abc.patch"; sha256 = "1kc7ic70lq43v8ikbcgbs5f2l4wzaz9vylhkmp38q26zs6qzbv07"; })
+  ];
   meta = {
     homepage = "http://www.haskell.org/haskellwiki/Opengl";
     description = "A binding for the OpenGL Utility Toolkit";
diff --git a/pkgs/development/libraries/haskell/Graphalyze/default.nix b/pkgs/development/libraries/haskell/Graphalyze/default.nix
index d0258fd26988..90bcb9f8605d 100644
--- a/pkgs/development/libraries/haskell/Graphalyze/default.nix
+++ b/pkgs/development/libraries/haskell/Graphalyze/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Graphalyze";
-  version = "0.13.0.0";
-  sha256 = "1xh6xg2rw43cbi83rmpb0c2yib9cfj0pwg66nx5x5a0al2c9pdsr";
+  version = "0.13.0.1";
+  sha256 = "1yk7iglsspbj0kxh5rhjkc6q65vz07vpygiig07w86g2s6gad8am";
   buildDepends = [
     bktrees fgl filepath graphviz pandoc random text time
   ];
diff --git a/pkgs/development/libraries/haskell/HStringTemplate/default.nix b/pkgs/development/libraries/haskell/HStringTemplate/default.nix
index 0048a9c470de..e966fb1283ea 100644
--- a/pkgs/development/libraries/haskell/HStringTemplate/default.nix
+++ b/pkgs/development/libraries/haskell/HStringTemplate/default.nix
@@ -1,13 +1,14 @@
-{ cabal, deepseq, filepath, mtl, parsec, syb, sybWithClass, text
-, time, utf8String
+{ cabal, blazeBuilder, deepseq, filepath, mtl, parsec, syb
+, sybWithClass, text, time, utf8String
 }:
 
 cabal.mkDerivation (self: {
   pname = "HStringTemplate";
-  version = "0.6.8";
-  sha256 = "1fybvb3v2b786n1hfzcvyanj3yfm5j8z4fm48vaskcggawh6rlkr";
+  version = "0.6.10";
+  sha256 = "0asv8n4l2j819cngxgdk5p0b4bqcxnmdc2mlp9b3s7mrs15ljxkk";
   buildDepends = [
-    deepseq filepath mtl parsec syb sybWithClass text time utf8String
+    blazeBuilder deepseq filepath mtl parsec syb sybWithClass text time
+    utf8String
   ];
   meta = {
     description = "StringTemplate implementation in Haskell";
diff --git a/pkgs/development/libraries/haskell/HTTP/4000.2.5.nix b/pkgs/development/libraries/haskell/HTTP/4000.2.5.nix
new file mode 100644
index 000000000000..f345e7c98e1c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HTTP/4000.2.5.nix
@@ -0,0 +1,15 @@
+{ cabal, mtl, network, parsec }:
+
+cabal.mkDerivation (self: {
+  pname = "HTTP";
+  version = "4000.2.5";
+  sha256 = "03ij1zkykc438x2r1szz6ddvfhrjywlx61nrz377srcpbdmhxpb7";
+  buildDepends = [ mtl network parsec ];
+  meta = {
+    homepage = "https://github.com/haskell/HTTP";
+    description = "A library for client-side HTTP";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/HUnit/1.2.5.0.nix b/pkgs/development/libraries/haskell/HUnit/1.2.5.1.nix
index cf5a68b803c3..06ac5fa1bbf6 100644
--- a/pkgs/development/libraries/haskell/HUnit/1.2.5.0.nix
+++ b/pkgs/development/libraries/haskell/HUnit/1.2.5.1.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "HUnit";
-  version = "1.2.5.0";
-  sha256 = "0yxa3clrrjwg9faa3vsqb44xdzhdgwji56lrh7sa7dgq8bv1h6nr";
+  version = "1.2.5.1";
+  sha256 = "0wa4yqgfyrfxzhdyd04xvzi4qaswbg0rrbywz8sxzkp71v91a35w";
   buildDepends = [ deepseq ];
   meta = {
     homepage = "http://hunit.sourceforge.net/";
diff --git a/pkgs/development/libraries/haskell/HsOpenSSL/default.nix b/pkgs/development/libraries/haskell/HsOpenSSL/default.nix
index 202130516948..9eefaaef84a0 100644
--- a/pkgs/development/libraries/haskell/HsOpenSSL/default.nix
+++ b/pkgs/development/libraries/haskell/HsOpenSSL/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "HsOpenSSL";
-  version = "0.10.3.1";
-  sha256 = "0dilmaibx18mfg4c8g96c1svhynhkrq4i5zzv3wg0a550g3xc0py";
+  version = "0.10.3.3";
+  sha256 = "04d2nd2hcbglw8blwhi3d32vazdxnvs9s52788qyllgm7gmay6a5";
   buildDepends = [ network time ];
   extraLibraries = [ openssl ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/JuicyPixels/default.nix b/pkgs/development/libraries/haskell/JuicyPixels/default.nix
index a99f8295c60f..8ec3a41a7099 100644
--- a/pkgs/development/libraries/haskell/JuicyPixels/default.nix
+++ b/pkgs/development/libraries/haskell/JuicyPixels/default.nix
@@ -4,14 +4,14 @@
 
 cabal.mkDerivation (self: {
   pname = "JuicyPixels";
-  version = "1.3";
-  sha256 = "07wljfag4ylw16wdi7znjb61pfihdik5d7p4h2lmz6xirm4mjzrm";
+  version = "2.0.1";
+  sha256 = "0irisyrqz9cyyjd428qnnxyybrqc54s1qi5vyz0md0acz7mr5anh";
   buildDepends = [
     cereal deepseq mtl primitive transformers vector zlib
   ];
   meta = {
     homepage = "https://github.com/Twinside/Juicy.Pixels";
-    description = "Picture loading/serialization (in png, jpeg and bitmap)";
+    description = "Picture loading/serialization (in png, jpeg, bitmap and gif)";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
     maintainers = [ self.stdenv.lib.maintainers.andres ];
diff --git a/pkgs/development/libraries/haskell/ListLike/default.nix b/pkgs/development/libraries/haskell/ListLike/default.nix
index f0b1ccd8bc04..58595edf744a 100644
--- a/pkgs/development/libraries/haskell/ListLike/default.nix
+++ b/pkgs/development/libraries/haskell/ListLike/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "ListLike";
-  version = "3.1.5";
-  sha256 = "0hxpjmj5qdyb55wda2bgd3crkg9q6dklhj2kff7qz6wkx5fdbvjs";
+  version = "3.1.6";
+  sha256 = "0ij6yb80dv841zn23lp6251avzmljzmy4j25r7w6h55y32y7gq46";
   isLibrary = true;
   isExecutable = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/MissingH/default.nix b/pkgs/development/libraries/haskell/MissingH/default.nix
index 52e26fe1f839..659a1158d0f3 100644
--- a/pkgs/development/libraries/haskell/MissingH/default.nix
+++ b/pkgs/development/libraries/haskell/MissingH/default.nix
@@ -1,15 +1,15 @@
 { cabal, filepath, hslogger, HUnit, mtl, network, parsec, random
-, regexCompat
+, regexCompat, time
 }:
 
 cabal.mkDerivation (self: {
   pname = "MissingH";
-  version = "1.1.1.0";
-  sha256 = "1i2fdr6p0jnn9w865ngjcchbsamrvnvdf9c4vzhjhzy500z2k1ry";
+  version = "1.2.0.0";
+  sha256 = "0bqg1j2pvm0ixrbnsxrr5kgibhbp191irhcavqlwfwgaxhrpqnm1";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    filepath hslogger HUnit mtl network parsec random regexCompat
+    filepath hslogger HUnit mtl network parsec random regexCompat time
   ];
   meta = {
     homepage = "http://software.complete.org/missingh";
diff --git a/pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix b/pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix
index 10b28522a506..9b044f6dbab5 100644
--- a/pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix
+++ b/pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "MonadCatchIO-mtl";
-  version = "0.3.0.4";
-  sha256 = "0wzdrfplwa4v9miv88rg3jvf7l6gphc29lpdp5qjm5873y57jxm7";
+  version = "0.3.0.5";
+  sha256 = "01c2xif4aly2lmg2qkri791ignq3r2qg4xbc8m06cdm6gh5a2dqp";
   buildDepends = [ extensibleExceptions mtl ];
   meta = {
     homepage = "http://darcsden.com/jcpetruzza/MonadCatchIO-mtl";
diff --git a/pkgs/development/libraries/haskell/MonadRandom/default.nix b/pkgs/development/libraries/haskell/MonadRandom/default.nix
index da343a527ce6..d8c492f23b61 100644
--- a/pkgs/development/libraries/haskell/MonadRandom/default.nix
+++ b/pkgs/development/libraries/haskell/MonadRandom/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "MonadRandom";
-  version = "0.1.7";
-  sha256 = "0y4fsb3j0babq388rw3y1kbxbjz6plfgbg4g1y27hdf7jf5c8x33";
+  version = "0.1.8";
+  sha256 = "1zin7qyv86gza60q6a6r8az2dwxm80wh23idvmjapgbjn2kfvfim";
   buildDepends = [ mtl random ];
   meta = {
     description = "Random-number generation monad";
diff --git a/pkgs/development/libraries/haskell/QuickCheck/2.5.nix b/pkgs/development/libraries/haskell/QuickCheck/2.5.1.1.nix
index 127d90ca5e7d..24e16a4955f5 100644
--- a/pkgs/development/libraries/haskell/QuickCheck/2.5.nix
+++ b/pkgs/development/libraries/haskell/QuickCheck/2.5.1.1.nix
@@ -1,10 +1,10 @@
-{ cabal, extensibleExceptions, random }:
+{ cabal, random }:
 
 cabal.mkDerivation (self: {
   pname = "QuickCheck";
-  version = "2.5";
-  sha256 = "0a4ibyw5abm7ds6pds41147phjkccx8v60vqdj05c5n28hbzbgbh";
-  buildDepends = [ extensibleExceptions random ];
+  version = "2.5.1.1";
+  sha256 = "1ff2mhm27l8cc8nrsbw2z65dc9m7h879jykl5g7yqip5l88j0jcq";
+  buildDepends = [ random ];
   meta = {
     homepage = "http://code.haskell.org/QuickCheck";
     description = "Automatic testing of Haskell programs";
diff --git a/pkgs/development/libraries/haskell/RepLib/default.nix b/pkgs/development/libraries/haskell/RepLib/default.nix
index 1bc52184474f..15cba0c0b283 100644
--- a/pkgs/development/libraries/haskell/RepLib/default.nix
+++ b/pkgs/development/libraries/haskell/RepLib/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "RepLib";
-  version = "0.5.3";
-  sha256 = "1kpd4qli6fclrr3i21kmdwbpa0la7ssi9pgagzclr3yj2ca2hsgw";
+  version = "0.5.3.1";
+  sha256 = "0lc1ma6h5wdfl4crnvg1vyvlx4xvps4l2nwb9dl6nyspmpjad807";
   buildDepends = [ mtl typeEquality ];
   meta = {
     homepage = "http://code.google.com/p/replib/";
diff --git a/pkgs/development/libraries/haskell/SDL/default.nix b/pkgs/development/libraries/haskell/SDL/default.nix
index a83518f9e10c..62731657e82a 100644
--- a/pkgs/development/libraries/haskell/SDL/default.nix
+++ b/pkgs/development/libraries/haskell/SDL/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "SDL";
-  version = "0.6.3";
-  sha256 = "0m3ick3rw8623ja42yfj4pa57naa6yb20ym8lv252gwb18ghp4sp";
+  version = "0.6.4";
+  sha256 = "1zrfx2nw0k8lfkr6vnwsp5wr3yz62v0bq60p4sdzj7gm01bz92g0";
   extraLibraries = [ SDL ];
   meta = {
     description = "Binding to libSDL";
diff --git a/pkgs/development/libraries/haskell/Shellac/Shellac-haskeline.nix b/pkgs/development/libraries/haskell/Shellac/Shellac-haskeline.nix
deleted file mode 100644
index 9f75a09ee690..000000000000
--- a/pkgs/development/libraries/haskell/Shellac/Shellac-haskeline.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ cabal, haskeline, mtl, Shellac }:
-
-cabal.mkDerivation (self: {
-  pname = "Shellac-haskeline";
-  version = "0.2.0.1";
-  sha256 = "1xvs2ni83yyf7rx3ikmn2bkx20fyj03d03crqyyfw28mikhgv5br";
-  buildDepends = [ haskeline mtl Shellac ];
-  patchPhase = ''
-    sed -i -e 's|mtl>=1.1 && < 2.1|mtl|' Shellac-haskeline.cabal
-  '';
-  meta = {
-    description = "Haskeline backend module for Shellac";
-    license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
-  };
-})
diff --git a/pkgs/development/libraries/haskell/Shellac/Shellac-readline.nix b/pkgs/development/libraries/haskell/Shellac/Shellac-readline.nix
deleted file mode 100644
index a39ddf3383ec..000000000000
--- a/pkgs/development/libraries/haskell/Shellac/Shellac-readline.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ cabal, readline, Shellac }:
-
-cabal.mkDerivation (self: {
-  pname = "Shellac-readline";
-  version = "0.9";
-  sha256 = "3edffecf2225c199f0a4df55e3685f7deee47755ae7f8d03f5da7fac3c2ab878";
-  buildDepends = [ readline Shellac ];
-  meta = {
-    description = "Readline backend module for Shellac";
-    license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
-  };
-})
diff --git a/pkgs/development/libraries/haskell/Vec/default.nix b/pkgs/development/libraries/haskell/Vec/default.nix
index 996cfd1a78cd..85fdcfd0b4af 100644
--- a/pkgs/development/libraries/haskell/Vec/default.nix
+++ b/pkgs/development/libraries/haskell/Vec/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Vec";
-  version = "1.0";
-  sha256 = "1lyi7di92q1f0k08nj7766nm0ygaqdrjdphnb6imvyrsmjrspaqk";
+  version = "1.0.1";
+  sha256 = "1v0v0ph881vynx8q8xwmn9da6qrd16g83q5i132nxys3ynl5s76m";
   meta = {
     homepage = "http://github.net/sedillard/Vec";
     description = "Fixed-length lists and low-dimensional linear algebra";
diff --git a/pkgs/development/libraries/haskell/X11/1.6.0.nix b/pkgs/development/libraries/haskell/X11/1.6.0.2.nix
index 6292f7eab5c5..dff5bca4400b 100644
--- a/pkgs/development/libraries/haskell/X11/1.6.0.nix
+++ b/pkgs/development/libraries/haskell/X11/1.6.0.2.nix
@@ -1,11 +1,9 @@
-{ cabal, libX11, libXext, libXinerama, libXrandr, libXrender, syb
-}:
+{ cabal, libX11, libXext, libXinerama, libXrandr, libXrender }:
 
 cabal.mkDerivation (self: {
   pname = "X11";
-  version = "1.6.0";
-  sha256 = "0jjnr4490mkdrmq3lvv7hha7rc9vbwsxlwsvcv56q6zgjx4zwf8j";
-  buildDepends = [ syb ];
+  version = "1.6.0.2";
+  sha256 = "0z1g93k2zbkb9is2zy6pfwp13bv11cvs30b9cz253wjv2liphshw";
   extraLibraries = [
     libX11 libXext libXinerama libXrandr libXrender
   ];
diff --git a/pkgs/development/libraries/haskell/abstract-deque/default.nix b/pkgs/development/libraries/haskell/abstract-deque/default.nix
index 90d6f4c274ef..a6219a4b2a0d 100644
--- a/pkgs/development/libraries/haskell/abstract-deque/default.nix
+++ b/pkgs/development/libraries/haskell/abstract-deque/default.nix
@@ -1,11 +1,12 @@
-{ cabal, HUnit, IORefCAS }:
+{ cabal, HUnit }:
 
 cabal.mkDerivation (self: {
   pname = "abstract-deque";
-  version = "0.1.5";
-  sha256 = "1zp19kq3m72nx7rr00yyq8iwia4abg4x9kw4d5s5k0srp5f9fn3q";
-  buildDepends = [ HUnit IORefCAS ];
+  version = "0.1.6";
+  sha256 = "13s8xbr31sqj8n3bh4xp82fqw5d5g1a27fpfqw69jfmr5xc9s1za";
+  buildDepends = [ HUnit ];
   meta = {
+    homepage = "https://github.com/rrnewton/haskell-lockfree-queue/wiki";
     description = "Abstract, parameterized interface to mutable Deques";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/accelerate-cuda/default.nix b/pkgs/development/libraries/haskell/accelerate-cuda/default.nix
index 4ed0f4ea5e38..26f2c0a14c06 100644
--- a/pkgs/development/libraries/haskell/accelerate-cuda/default.nix
+++ b/pkgs/development/libraries/haskell/accelerate-cuda/default.nix
@@ -1,20 +1,17 @@
-{ cabal, accelerate, binary, blazeBuilder, cryptohash, cuda
-, fclabels, filepath, hashable, hashtables, languageCQuote
-, mainlandPretty, mtl, srcloc, transformers, unorderedContainers
+{ cabal, accelerate, binary, cryptohash, cuda, fclabels, filepath
+, hashable, hashtables, languageCQuote, mainlandPretty, mtl, srcloc
+, text, transformers, unorderedContainers
 }:
 
 cabal.mkDerivation (self: {
   pname = "accelerate-cuda";
-  version = "0.12.1.0";
-  sha256 = "1y6viivizv4frdh3xk5wqhs7wwnhqyjr9wid1y1d5l42mz41vp84";
+  version = "0.12.1.2";
+  sha256 = "184rxdp9idvhrqa0k3fqcm3nrgjcs3f53dz7wrhhpfa3iqrr6vd4";
   buildDepends = [
-    accelerate binary blazeBuilder cryptohash cuda fclabels filepath
-    hashable hashtables languageCQuote mainlandPretty mtl srcloc
+    accelerate binary cryptohash cuda fclabels filepath hashable
+    hashtables languageCQuote mainlandPretty mtl srcloc text
     transformers unorderedContainers
   ];
-  patchPhase = ''
-    sed -i -e 's|\<defaultMain\>|defaultMainWithHooks autoconfUserHooks|' Setup.hs
-  '';
   meta = {
     homepage = "http://www.cse.unsw.edu.au/~chak/project/accelerate/";
     description = "Accelerate backend for NVIDIA GPUs";
diff --git a/pkgs/development/libraries/haskell/accelerate-examples/default.nix b/pkgs/development/libraries/haskell/accelerate-examples/default.nix
index f1f7aefb736e..f88824c21fed 100644
--- a/pkgs/development/libraries/haskell/accelerate-examples/default.nix
+++ b/pkgs/development/libraries/haskell/accelerate-examples/default.nix
@@ -22,7 +22,7 @@ cabal.mkDerivation (self: {
     homepage = "http://www.cse.unsw.edu.au/~chak/project/accelerate/";
     description = "Examples using the Accelerate library";
     license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
+    platforms = self.stdenv.lib.platforms.none;
     maintainers = [ self.stdenv.lib.maintainers.andres ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/active/default.nix b/pkgs/development/libraries/haskell/active/default.nix
new file mode 100644
index 000000000000..5c563ad9cd73
--- /dev/null
+++ b/pkgs/development/libraries/haskell/active/default.nix
@@ -0,0 +1,13 @@
+{ cabal, newtype, semigroupoids, semigroups, vectorSpace }:
+
+cabal.mkDerivation (self: {
+  pname = "active";
+  version = "0.1.0.2";
+  sha256 = "1iymh3sd21ba7ijwv5afphn5vhmwchk6725hbcsdwk2d2x2gd674";
+  buildDepends = [ newtype semigroupoids semigroups vectorSpace ];
+  meta = {
+    description = "Abstractions for animation";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/arrows/default.nix b/pkgs/development/libraries/haskell/arrows/default.nix
index baebfbce0f60..149f5f951e5d 100644
--- a/pkgs/development/libraries/haskell/arrows/default.nix
+++ b/pkgs/development/libraries/haskell/arrows/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "arrows";
-  version = "0.4.4.0";
-  sha256 = "1dcvv1vscyggwqmlm6j2sc29zy0wmhn6w4g617gbxxb1j28bm6a9";
+  version = "0.4.4.1";
+  sha256 = "1qpbpwsc3frjdngwjv3r58nfa0ik88cqh24ls47svigsz3c4n42v";
   buildDepends = [ Stream ];
   meta = {
     homepage = "http://www.haskell.org/arrows/";
diff --git a/pkgs/development/libraries/haskell/asn1-data/default.nix b/pkgs/development/libraries/haskell/asn1-data/default.nix
index 60e795f6e2ef..a90e8e769e23 100644
--- a/pkgs/development/libraries/haskell/asn1-data/default.nix
+++ b/pkgs/development/libraries/haskell/asn1-data/default.nix
@@ -1,17 +1,15 @@
-{ cabal, attoparsec, attoparsecEnumerator, enumerator, mtl, text }:
+{ cabal, cereal, mtl, text }:
 
 cabal.mkDerivation (self: {
   pname = "asn1-data";
-  version = "0.6.1.3";
-  sha256 = "0vly55dpqrm9vb8ayp72na1nf2rr5ini3d81qqvxflmjgpksrgwq";
+  version = "0.7.1";
+  sha256 = "10s7mxygw6w8a8mx090msvbl8pji8m68lsxxyr5bp7p887naia7r";
   isLibrary = true;
   isExecutable = true;
-  buildDepends = [
-    attoparsec attoparsecEnumerator enumerator mtl text
-  ];
+  buildDepends = [ cereal mtl text ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-asn1-data";
-    description = "ASN1 data reader and writer in RAW, BER, DER and CER forms";
+    description = "ASN1 data reader and writer in RAW, BER and DER forms";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
     maintainers = [ self.stdenv.lib.maintainers.andres ];
diff --git a/pkgs/development/libraries/haskell/async/default.nix b/pkgs/development/libraries/haskell/async/default.nix
index ca759009817f..a0da6384e958 100644
--- a/pkgs/development/libraries/haskell/async/default.nix
+++ b/pkgs/development/libraries/haskell/async/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "async";
-  version = "2.0.1.1";
-  sha256 = "132xr0sb3j02s134my4p7khj95d3v3jlpxqjrgn6h8brw0gp6wcq";
+  version = "2.0.1.3";
+  sha256 = "1rbjr6xw5sp8npw17fxg0942kikssv2hyci2sy26r0na98483mkh";
   buildDepends = [ stm ];
   meta = {
     homepage = "https://github.com/simonmar/async";
diff --git a/pkgs/development/libraries/haskell/attoparsec-binary/attoparsec-binary-ghc7.6.1.patch b/pkgs/development/libraries/haskell/attoparsec-binary/attoparsec-binary-ghc7.6.1.patch
new file mode 100644
index 000000000000..dae949b25708
--- /dev/null
+++ b/pkgs/development/libraries/haskell/attoparsec-binary/attoparsec-binary-ghc7.6.1.patch
@@ -0,0 +1,20 @@
+diff --git a/Data/Attoparsec/Binary.hs b/Data/Attoparsec/Binary.hs
+index fab76c6..01d6c8b 100644
+--- a/Data/Attoparsec/Binary.hs
++++ b/Data/Attoparsec/Binary.hs
+@@ -23,7 +23,7 @@ import Data.Word
+ byteSize :: (Bits a) => a -> Int
+ byteSize = (`div` 8) . bitSize
+ 
+-pack :: (Bits a) => B.ByteString -> a
++pack :: (Bits a, Num a) => B.ByteString -> a
+ pack = B.foldl' (\n h -> (n `shiftL` 8) .|. fromIntegral h) 0
+ 
+ anyWordN :: (Bits a) => (B.ByteString -> a) -> Parser a
+@@ -84,4 +84,4 @@ word64be = wordN unpack
+ 
+ -- |Match a specific 64-bit little-endian word.
+ word64le :: Word64 -> Parser Word64
+-word64le = wordN $ B.reverse . unpack
+\ No newline at end of file
++word64le = wordN $ B.reverse . unpack
diff --git a/pkgs/development/libraries/haskell/attoparsec-binary/default.nix b/pkgs/development/libraries/haskell/attoparsec-binary/default.nix
new file mode 100644
index 000000000000..623ae1040901
--- /dev/null
+++ b/pkgs/development/libraries/haskell/attoparsec-binary/default.nix
@@ -0,0 +1,13 @@
+{ cabal, attoparsec }:
+
+cabal.mkDerivation (self: {
+  pname = "attoparsec-binary";
+  version = "0.2";
+  sha256 = "02vswxsgayw50xli7mbacsjmk1diifzkfgnyfn9ck5mk41dl9rh5";
+  buildDepends = [ attoparsec ];
+  meta = {
+    description = "Binary processing extensions to Attoparsec";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/attoparsec-conduit/default.nix b/pkgs/development/libraries/haskell/attoparsec-conduit/default.nix
index d59ebcaf2677..97a6c67f6b27 100644
--- a/pkgs/development/libraries/haskell/attoparsec-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/attoparsec-conduit/default.nix
@@ -2,12 +2,12 @@
 
 cabal.mkDerivation (self: {
   pname = "attoparsec-conduit";
-  version = "0.4.0.1";
-  sha256 = "1r01xaaw439qpbfnanv2yfw9fz6id8cy17yqdm6x6vk35hmv59kc";
+  version = "0.5.0.2";
+  sha256 = "183p4jd2cfzvv9lhp4w5z4xrb3ki5l1h8kmlwv8523plnk7x7486";
   buildDepends = [ attoparsec conduit text transformers ];
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
-    description = "Turn attoparsec parsers into sinks";
+    description = "Consume attoparsec parsers via conduit";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
     maintainers = [ self.stdenv.lib.maintainers.andres ];
diff --git a/pkgs/development/libraries/haskell/attoparsec/enumerator.nix b/pkgs/development/libraries/haskell/attoparsec/enumerator.nix
index ee4b42a49bd1..d52687d80801 100644
--- a/pkgs/development/libraries/haskell/attoparsec/enumerator.nix
+++ b/pkgs/development/libraries/haskell/attoparsec/enumerator.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "attoparsec-enumerator";
-  version = "0.3";
-  sha256 = "1sfqcr1mvny9gf0zzggwvs2b20knxrbb208rzaa86ay0b5b5jw5v";
+  version = "0.3.1";
+  sha256 = "10h6i23vhcishp599s4lbp0c46wcba99w6iv4ickdr1avrm9z2m7";
   buildDepends = [ attoparsec enumerator text ];
   meta = {
     homepage = "https://john-millikin.com/software/attoparsec-enumerator/";
diff --git a/pkgs/development/libraries/haskell/authenticate/default.nix b/pkgs/development/libraries/haskell/authenticate/default.nix
index 679e9d39e025..27edc1e9a9c7 100644
--- a/pkgs/development/libraries/haskell/authenticate/default.nix
+++ b/pkgs/development/libraries/haskell/authenticate/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "authenticate";
-  version = "1.2.1.1";
-  sha256 = "0kfzsi8za87lgr52b9n6m9fby95d4hm21z7dbaqjv5whr90nwy54";
+  version = "1.3.1.1";
+  sha256 = "120n7z22x4y4ngxqxsi65zn992f1lksaawcd7rmjvf8m0fysbb4n";
   buildDepends = [
     aeson attoparsec blazeBuilder blazeBuilderConduit caseInsensitive
     conduit httpConduit httpTypes monadControl network resourcet
diff --git a/pkgs/development/libraries/haskell/base64-bytestring/default.nix b/pkgs/development/libraries/haskell/base64-bytestring/default.nix
index 5fd552d6272b..bc3eca3050df 100644
--- a/pkgs/development/libraries/haskell/base64-bytestring/default.nix
+++ b/pkgs/development/libraries/haskell/base64-bytestring/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "base64-bytestring";
-  version = "0.1.2.0";
-  sha256 = "039naasb3z8q42zl067paylxb9i1m1pkp4w6b5yqsc38sbmikv1z";
+  version = "1.0.0.0";
+  sha256 = "0z0r0lrpka3qrq45ajzyxsjc2as7zp6bq7z7sd56rwiziw7vp7vm";
   meta = {
     homepage = "https://github.com/bos/base64-bytestring";
     description = "Fast base64 encoding and deconding for ByteStrings";
diff --git a/pkgs/development/libraries/haskell/benchpress/default.nix b/pkgs/development/libraries/haskell/benchpress/default.nix
index 9d1720541bf8..c80f04f966db 100644
--- a/pkgs/development/libraries/haskell/benchpress/default.nix
+++ b/pkgs/development/libraries/haskell/benchpress/default.nix
@@ -2,12 +2,9 @@
 
 cabal.mkDerivation (self: {
   pname = "benchpress";
-  version = "0.2.2.4";
-  sha256 = "0cabjx0gkbk5blqkm9pmnz8kmi3573367365gny4r3m431iwxgnf";
+  version = "0.2.2.6";
+  sha256 = "19ygaf2g4yqkfbc6bw6fmf9jsymbj1iallzvl0zw3vjx860rchfg";
   buildDepends = [ mtl time ];
-  patchPhase = ''
-    sed -i -e 's|base .*,|base,|' -e 's|mtl .*,|mtl,|' benchpress.cabal
-  '';
   meta = {
     homepage = "http://github.com/tibbe/benchpress";
     description = "Micro-benchmarking with detailed statistics";
diff --git a/pkgs/development/libraries/haskell/binary/default.nix b/pkgs/development/libraries/haskell/binary/default.nix
index a8fefba02741..f0757bcca023 100644
--- a/pkgs/development/libraries/haskell/binary/default.nix
+++ b/pkgs/development/libraries/haskell/binary/default.nix
@@ -2,10 +2,10 @@
 
 cabal.mkDerivation (self: {
   pname = "binary";
-  version = "0.5.1.1";
-  sha256 = "0s62a92a2wwp8hdmkc6j6i9lh5mi6z1yd26fbhsbbm8bxah64pcl";
+  version = "0.6.1.0";
+  sha256 = "0d423k37973f5v9mz9401zmsfdgspnf9h6s9xgr3zh19giz7c3js";
   meta = {
-    homepage = "http://code.haskell.org/binary/";
+    homepage = "https://github.com/kolmodin/binary";
     description = "Binary serialisation for Haskell values using lazy ByteStrings";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/blaze-builder-conduit/default.nix b/pkgs/development/libraries/haskell/blaze-builder-conduit/default.nix
index 127ac09edf54..14d4498f5858 100644
--- a/pkgs/development/libraries/haskell/blaze-builder-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-builder-conduit/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "blaze-builder-conduit";
-  version = "0.4.0.2";
-  sha256 = "0wblkvh1v7275n1i66xmm3kg57i21s8m2sfwfnjarwbcjqbgrjih";
+  version = "0.5.0.1";
+  sha256 = "1avbgrgqzryqv717714s0418lknm0lqzkis3hia00qhy762amlcn";
   buildDepends = [ blazeBuilder conduit text transformers ];
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
diff --git a/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix b/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix
index a953d9f45258..00176d215bae 100644
--- a/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "blaze-builder-enumerator";
-  version = "0.2.0.4";
-  sha256 = "1zwp9hcjsmy5p5i436ajvl86zl1z4pzcfp6c57sj8vfr08rrrkq9";
+  version = "0.2.0.5";
+  sha256 = "0bbbv9wwzw9ss3d02mszdzxzhg6pcrnpwir9bvby7xkmfqpyffaa";
   buildDepends = [ blazeBuilder enumerator transformers ];
   meta = {
     homepage = "https://github.com/meiersi/blaze-builder-enumerator";
diff --git a/pkgs/development/libraries/haskell/blaze-html/default.nix b/pkgs/development/libraries/haskell/blaze-html/default.nix
index c8b2eb06a321..c2505aeb72fa 100644
--- a/pkgs/development/libraries/haskell/blaze-html/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-html/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "blaze-html";
-  version = "0.5.0.0";
-  sha256 = "0cfvdf50jbm6w277jf69ac57nbkgkn2ifcp6r2amd3qdbmdgqkwj";
+  version = "0.5.1.0";
+  sha256 = "1f256z68pbm1h6wsk33p94byxwfp01i4pbdrch32jdi1q35cmqxh";
   buildDepends = [ blazeBuilder blazeMarkup text ];
   meta = {
     homepage = "http://jaspervdj.be/blaze";
diff --git a/pkgs/development/libraries/haskell/blaze-markup/default.nix b/pkgs/development/libraries/haskell/blaze-markup/default.nix
index 7a5adbf10794..1f6a83894cc6 100644
--- a/pkgs/development/libraries/haskell/blaze-markup/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-markup/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "blaze-markup";
-  version = "0.5.1.0";
-  sha256 = "0vq0xzwa13sjybg6zdi3ynsn6yxyl1q6rbalvb9r6f3plrmik37a";
+  version = "0.5.1.1";
+  sha256 = "14va7db8icf2xj7v4i5z0srgv74pf8z6w7046lxs3cyj5pcjl2r9";
   buildDepends = [ blazeBuilder text ];
   meta = {
     homepage = "http://jaspervdj.be/blaze";
diff --git a/pkgs/development/libraries/haskell/blaze-textual/default.nix b/pkgs/development/libraries/haskell/blaze-textual/default.nix
index f673f708707d..65f39c8cc081 100644
--- a/pkgs/development/libraries/haskell/blaze-textual/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-textual/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "blaze-textual";
-  version = "0.2.0.6";
-  sha256 = "1699fj9zig6ids9bdjn5v0gqhnyx5dkzi542gkx1gs8943c94737";
+  version = "0.2.0.8";
+  sha256 = "0zzqh53ywzz8ss58glp3i8is8gry5yqzvdjw4xh95fbbzcz4cgc7";
   buildDepends = [ blazeBuilder text time vector ];
   meta = {
     homepage = "http://github.com/bos/blaze-textual";
diff --git a/pkgs/development/libraries/haskell/bmp/default.nix b/pkgs/development/libraries/haskell/bmp/default.nix
index 705b462a6d52..e018ac7a8d28 100644
--- a/pkgs/development/libraries/haskell/bmp/default.nix
+++ b/pkgs/development/libraries/haskell/bmp/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "bmp";
-  version = "1.2.1.1";
-  sha256 = "0s5srqkaccrwh9gsxn9kmyh4jf0qf40ix8ipi0b70fbbffr97hmk";
+  version = "1.2.2.1";
+  sha256 = "0yxkkvpgavk9im9i9f6zpzc1n5nj2g4qsk4ck51aqz2fv6z1rhiy";
   buildDepends = [ binary ];
   meta = {
     homepage = "http://code.ouroborus.net/bmp";
diff --git a/pkgs/development/libraries/haskell/cabal-file-th/default.nix b/pkgs/development/libraries/haskell/cabal-file-th/default.nix
index c57e46cb8bb5..55b4fea36fec 100644
--- a/pkgs/development/libraries/haskell/cabal-file-th/default.nix
+++ b/pkgs/development/libraries/haskell/cabal-file-th/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal-file-th";
-  version = "0.2.2";
-  sha256 = "1ql2gmg3mdfkmnk1m3966npr6l1in15fzlkbn7dr1cp4s90igqhy";
+  version = "0.2.3";
+  sha256 = "0kawvb5n56rkq4453l6pia3wrr6jvvdwkghi6i176n1gm2zf2ri8";
   buildDepends = [ Cabal ];
   meta = {
     homepage = "http://github.com/nkpart/cabal-file-th";
diff --git a/pkgs/development/libraries/haskell/case-insensitive/default.nix b/pkgs/development/libraries/haskell/case-insensitive/default.nix
index 4187716f0267..7f53773f1ab6 100644
--- a/pkgs/development/libraries/haskell/case-insensitive/default.nix
+++ b/pkgs/development/libraries/haskell/case-insensitive/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "case-insensitive";
-  version = "0.4.0.1";
-  sha256 = "15wcpzmj1ppl27p8hph9y8nxkjkd4yrvamxi3gk0ahfnb47chaq7";
+  version = "0.4.0.3";
+  sha256 = "1lpfxfwfxiimvh5nxqrnjqj2687dp7rmv9wkrpmw2zm5wkxwcmzf";
   buildDepends = [ hashable text ];
   meta = {
     homepage = "https://github.com/basvandijk/case-insensitive";
diff --git a/pkgs/development/libraries/haskell/certificate/default.nix b/pkgs/development/libraries/haskell/certificate/default.nix
index 89410dbcb004..18114de5ec27 100644
--- a/pkgs/development/libraries/haskell/certificate/default.nix
+++ b/pkgs/development/libraries/haskell/certificate/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "certificate";
-  version = "1.2.3";
-  sha256 = "0xn46327a50vj70d26gc4z2rn4l6qk77j7mkdwg1j2yh6mcn0n7a";
+  version = "1.2.8";
+  sha256 = "0lcyvkr0iqywwid9zlpzfvzpg70gvw7y0ij51ljadrwp882nj0ws";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ asn1Data cryptoPubkeyTypes mtl pem time ];
diff --git a/pkgs/development/libraries/haskell/cgi/3001.1.8.2.nix b/pkgs/development/libraries/haskell/cgi/3001.1.8.3.nix
index d77bd227f8bd..cfe95ab8e1e3 100644
--- a/pkgs/development/libraries/haskell/cgi/3001.1.8.2.nix
+++ b/pkgs/development/libraries/haskell/cgi/3001.1.8.3.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cgi";
-  version = "3001.1.8.2";
-  sha256 = "09ly7bn5ck563jq1wip5w628g74xj4p1ha9rllfdck33pqrl2mgz";
+  version = "3001.1.8.3";
+  sha256 = "1pacv0qxfs7l71xvf9amd7qsw5g725qbrm8r6fgdb2awyl925sf4";
   buildDepends = [
     extensibleExceptions MonadCatchIOMtl mtl network parsec xhtml
   ];
diff --git a/pkgs/development/libraries/haskell/cipher-aes/default.nix b/pkgs/development/libraries/haskell/cipher-aes/default.nix
new file mode 100644
index 000000000000..42152bfb0d77
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cipher-aes/default.nix
@@ -0,0 +1,15 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "cipher-aes";
+  version = "0.1.2";
+  sha256 = "1c8drabfmx5wc519kxsr64bdvakfvxwzhfh7ym01kk1dpja0nlnq";
+  isLibrary = true;
+  isExecutable = true;
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-cipher-aes";
+    description = "Fast AES cipher implementation with advanced mode of operations";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/clientsession/default.nix b/pkgs/development/libraries/haskell/clientsession/default.nix
index 08e81eaa98fd..03d3896e8531 100644
--- a/pkgs/development/libraries/haskell/clientsession/default.nix
+++ b/pkgs/development/libraries/haskell/clientsession/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "clientsession";
-  version = "0.7.5";
-  sha256 = "1q2zlq06s0d476ywvb1fkxw34aagcaiqw7jrrmr3lj89q3ylhivr";
+  version = "0.8.0.1";
+  sha256 = "0r6j15wkyp4akhaxvimjxlwdka7cbm3c3nfk5bvkqan1nrip5rxv";
   buildDepends = [
     base64Bytestring cereal cprngAes cryptoApi cryptocipher entropy
     skein tagged
diff --git a/pkgs/development/libraries/haskell/cmdargs/default.nix b/pkgs/development/libraries/haskell/cmdargs/default.nix
index 55c50cb99fb1..0719bf5a03cc 100644
--- a/pkgs/development/libraries/haskell/cmdargs/default.nix
+++ b/pkgs/development/libraries/haskell/cmdargs/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cmdargs";
-  version = "0.9.5";
-  sha256 = "0ihanswhq5d29d9ll5q4grkbaq64dwfsayws7y4xa387d5s9p3iv";
+  version = "0.10";
+  sha256 = "1xx4cks3hr2ldb0hd5hnc53dpns2zm4gc1dw25gs1vc977kga3hz";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ filepath transformers ];
diff --git a/pkgs/development/libraries/haskell/comonad-transformers/default.nix b/pkgs/development/libraries/haskell/comonad-transformers/default.nix
new file mode 100644
index 000000000000..bc378235b91a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/comonad-transformers/default.nix
@@ -0,0 +1,19 @@
+{ cabal, comonad, contravariant, distributive, semigroupoids
+, semigroups, transformers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "comonad-transformers";
+  version = "3.0";
+  sha256 = "1bjix61rdzmqcd1irh6p91jwy4sz1617sj4zic07p7ng9h7fsz24";
+  buildDepends = [
+    comonad contravariant distributive semigroupoids semigroups
+    transformers
+  ];
+  meta = {
+    homepage = "http://github.com/ekmett/comonad-transformers/";
+    description = "Comonad transformers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/comonad/default.nix b/pkgs/development/libraries/haskell/comonad/default.nix
new file mode 100644
index 000000000000..3394de012060
--- /dev/null
+++ b/pkgs/development/libraries/haskell/comonad/default.nix
@@ -0,0 +1,14 @@
+{ cabal, semigroups, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "comonad";
+  version = "3.0.0.2";
+  sha256 = "01q71b446mdbdj81qjrxjl5bshbg4bjih5zpw9fd4y5431bclfhi";
+  buildDepends = [ semigroups transformers ];
+  meta = {
+    homepage = "http://github.com/ekmett/comonad/";
+    description = "Haskell 98 compatible comonads";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/conduit/default.nix b/pkgs/development/libraries/haskell/conduit/default.nix
index 9c2b377aa8a3..c383c46f30b5 100644
--- a/pkgs/development/libraries/haskell/conduit/default.nix
+++ b/pkgs/development/libraries/haskell/conduit/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "conduit";
-  version = "0.4.2";
-  sha256 = "1v8s80g8gyxb139dzqbbh4qv6ax08g5smrvx2zc5sd2773wwqwz0";
+  version = "0.5.2.4";
+  sha256 = "17959j5frfbl5af4pmxhfb4swrjckk4fh5wmd5bwsbs824glb97a";
   buildDepends = [
     liftedBase monadControl resourcet text transformers
     transformersBase void
diff --git a/pkgs/development/libraries/haskell/configurator/default.nix b/pkgs/development/libraries/haskell/configurator/default.nix
new file mode 100644
index 000000000000..3618f5980554
--- /dev/null
+++ b/pkgs/development/libraries/haskell/configurator/default.nix
@@ -0,0 +1,18 @@
+{ cabal, attoparsec, hashable, text, unixCompat
+, unorderedContainers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "configurator";
+  version = "0.2.0.1";
+  sha256 = "02w6f5q2xkpc3kgqz6a58g7yr0q4xd8ck1b6lr64ahvqwsjbxy6p";
+  buildDepends = [
+    attoparsec hashable text unixCompat unorderedContainers
+  ];
+  meta = {
+    homepage = "http://github.com/bos/configurator";
+    description = "Configuration management";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/contravariant/default.nix b/pkgs/development/libraries/haskell/contravariant/default.nix
new file mode 100644
index 000000000000..526b9e1f9973
--- /dev/null
+++ b/pkgs/development/libraries/haskell/contravariant/default.nix
@@ -0,0 +1,14 @@
+{ cabal, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "contravariant";
+  version = "0.2.0.2";
+  sha256 = "0142s1c914zbfnvysvcc9s3bv8qs6wimnqcmxca1gxaxqvyfkf3p";
+  buildDepends = [ transformers ];
+  meta = {
+    homepage = "http://github.com/ekmett/contravariant/";
+    description = "Haskell 98 contravariant functors";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/cookie/default.nix b/pkgs/development/libraries/haskell/cookie/default.nix
index 1b958b3240e3..b7dae5d4a9b1 100644
--- a/pkgs/development/libraries/haskell/cookie/default.nix
+++ b/pkgs/development/libraries/haskell/cookie/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cookie";
-  version = "0.4.0";
-  sha256 = "1vkz6nys26i0yprb8jkv8iyq9xqnxb0wv07f7s7c448vx4gfln98";
+  version = "0.4.0.1";
+  sha256 = "01k5gq9kwbrivkhr1sj8aw4cgf2c1xgwwajqvd435r0g99fpx5kk";
   buildDepends = [ blazeBuilder dataDefault text time ];
   meta = {
     homepage = "http://github.com/snoyberg/cookie";
diff --git a/pkgs/development/libraries/haskell/cprng-aes/default.nix b/pkgs/development/libraries/haskell/cprng-aes/default.nix
index 881d4519a532..1feb21a8b638 100644
--- a/pkgs/development/libraries/haskell/cprng-aes/default.nix
+++ b/pkgs/development/libraries/haskell/cprng-aes/default.nix
@@ -1,10 +1,14 @@
-{ cabal, cereal, cryptoApi, cryptocipher, entropy, random }:
+{ cabal, cereal, cipherAes, cryptoApi, cryptocipher, entropy
+, random
+}:
 
 cabal.mkDerivation (self: {
   pname = "cprng-aes";
-  version = "0.2.3";
-  sha256 = "1xyphzb3afvw7kpgq3b0c86b45rp5a8s870gag1lp7h686lhfnn3";
-  buildDepends = [ cereal cryptoApi cryptocipher entropy random ];
+  version = "0.2.4";
+  sha256 = "0rk14yj76p5a1h6jlz4q2fgijjid430lwcr57zkkda8mdibqqs5j";
+  buildDepends = [
+    cereal cipherAes cryptoApi cryptocipher entropy random
+  ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-cprng-aes";
     description = "Crypto Pseudo Random Number Generator using AES in counter mode";
diff --git a/pkgs/development/libraries/haskell/criterion/default.nix b/pkgs/development/libraries/haskell/criterion/default.nix
index a687a592baa6..54b6b20dc836 100644
--- a/pkgs/development/libraries/haskell/criterion/default.nix
+++ b/pkgs/development/libraries/haskell/criterion/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "criterion";
-  version = "0.6.0.1";
-  sha256 = "0k6ip41w5h1z8gl67a8vsb6c3md5nc4yh1vd6dysp9fqgn0vky0a";
+  version = "0.6.1.1";
+  sha256 = "1w5yqcgnx2ij3hmvmz5g4ynj6n8wa3yyk1kfbbwxyh9j5kc2xwiw";
   buildDepends = [
     aeson deepseq filepath hastache mtl mwcRandom parsec statistics
     time transformers vector vectorAlgorithms
diff --git a/pkgs/development/libraries/haskell/crypto-conduit/default.nix b/pkgs/development/libraries/haskell/crypto-conduit/default.nix
index 747cbbf2864d..539fa3b192f3 100644
--- a/pkgs/development/libraries/haskell/crypto-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/crypto-conduit/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "crypto-conduit";
-  version = "0.3.2";
-  sha256 = "09f6l60wcblp15hx3hppskjsyah9bh6jwqqr4dvl6j03011gx4id";
+  version = "0.4.0.1";
+  sha256 = "1afkn9kp5y1qsgd2l2q85d2bh0wbvn07x0ddi72sr8g7daw8zrs8";
   buildDepends = [ cereal conduit cryptoApi transformers ];
   meta = {
     homepage = "https://github.com/meteficha/crypto-conduit";
diff --git a/pkgs/development/libraries/haskell/cuda/default.nix b/pkgs/development/libraries/haskell/cuda/default.nix
index 5c0614bc0b44..3baa02d26747 100644
--- a/pkgs/development/libraries/haskell/cuda/default.nix
+++ b/pkgs/development/libraries/haskell/cuda/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cuda";
-  version = "0.4.1.0";
-  sha256 = "1drr95d4v3khidxr6na5vyq28bv5rqk2n676q0bydc4rqwhb1z6w";
+  version = "0.4.1.1";
+  sha256 = "05hhlnfyr30r1frsc15px38ijd1qvs125yjxvsi6q1kmmkq1w6y9";
   buildDepends = [ extensibleExceptions ];
   buildTools = [ c2hs ];
   extraLibraries = [ cudatoolkit nvidia_x11 self.stdenv.gcc ];
@@ -37,7 +37,7 @@ cabal.mkDerivation (self: {
   meta = {
     description = "FFI binding to the CUDA interface for programming NVIDIA GPUs";
     license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
+    platforms = self.stdenv.lib.platforms.none;
     maintainers = [ self.stdenv.lib.maintainers.andres ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/data-accessor/data-accessor.nix b/pkgs/development/libraries/haskell/data-accessor/data-accessor.nix
index 6f73cc48817f..7c1de10b20b0 100644
--- a/pkgs/development/libraries/haskell/data-accessor/data-accessor.nix
+++ b/pkgs/development/libraries/haskell/data-accessor/data-accessor.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "data-accessor";
-  version = "0.2.2.2";
-  sha256 = "1q9hx2bkp7dknr9ygx39lj93i846x8g9j7lkhkjijvsicih28yyi";
+  version = "0.2.2.3";
+  sha256 = "1fa1rbbs3m05y61w42vj4vqlcpqmz60v8mv3r0h6lx669k6ka5gj";
   buildDepends = [ transformers ];
   meta = {
     homepage = "http://www.haskell.org/haskellwiki/Record_access";
diff --git a/pkgs/development/libraries/haskell/data-default/default.nix b/pkgs/development/libraries/haskell/data-default/default.nix
index 41728d393f83..893f2121f0ab 100644
--- a/pkgs/development/libraries/haskell/data-default/default.nix
+++ b/pkgs/development/libraries/haskell/data-default/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "data-default";
-  version = "0.4.0";
-  sha256 = "1pil8dxbk0zl2zw1xj9h2bpwpdriwfd7aj48kh0xpw9yazg3m802";
+  version = "0.5.0";
+  sha256 = "1wv8wjd9j40s7h19aph5pqph7rby5ma1nlagqywn9q0634iq9n2a";
   buildDepends = [ dlist ];
   meta = {
     description = "A class for types with a default value";
diff --git a/pkgs/development/libraries/haskell/data-lens-template/default.nix b/pkgs/development/libraries/haskell/data-lens-template/default.nix
new file mode 100644
index 000000000000..7ba9e3f9da74
--- /dev/null
+++ b/pkgs/development/libraries/haskell/data-lens-template/default.nix
@@ -0,0 +1,14 @@
+{ cabal, dataLens }:
+
+cabal.mkDerivation (self: {
+  pname = "data-lens-template";
+  version = "2.1.7";
+  sha256 = "108xvk5glsw016vdvjb1p3a9zh7rgbkjv5xashs1hj25f8k4cw49";
+  buildDepends = [ dataLens ];
+  meta = {
+    homepage = "http://github.com/roconnor/data-lens-template/";
+    description = "Utilities for Data.Lens";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/data-lens/default.nix b/pkgs/development/libraries/haskell/data-lens/default.nix
new file mode 100644
index 000000000000..e4cff67f3761
--- /dev/null
+++ b/pkgs/development/libraries/haskell/data-lens/default.nix
@@ -0,0 +1,17 @@
+{ cabal, comonad, comonadTransformers, semigroupoids, transformers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "data-lens";
+  version = "2.10.2";
+  sha256 = "1mv4lh5rhmq09d89ci07kj9anv7ckrlqh9x3xr4jq9idf7sf54b5";
+  buildDepends = [
+    comonad comonadTransformers semigroupoids transformers
+  ];
+  meta = {
+    homepage = "http://github.com/roconnor/data-lens/";
+    description = "Haskell 98 Lenses";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/date-cache/default.nix b/pkgs/development/libraries/haskell/date-cache/default.nix
new file mode 100644
index 000000000000..a460dcbdafc5
--- /dev/null
+++ b/pkgs/development/libraries/haskell/date-cache/default.nix
@@ -0,0 +1,12 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "date-cache";
+  version = "0.3.0";
+  sha256 = "0grhcbd0rhdn0cf1fz82x8pv8cmxfhndlcwyrax4mnnr3pql9kmb";
+  meta = {
+    description = "Date cacher";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/deepseq/1.3.0.0.nix b/pkgs/development/libraries/haskell/deepseq/1.3.0.1.nix
index 2470dcdf89fb..78f9273e46a2 100644
--- a/pkgs/development/libraries/haskell/deepseq/1.3.0.0.nix
+++ b/pkgs/development/libraries/haskell/deepseq/1.3.0.1.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "deepseq";
-  version = "1.3.0.0";
-  sha256 = "0z2k1rda67nmhv62irjfd642iarj1i9m55l6p47j4cysrszhvqgy";
+  version = "1.3.0.1";
+  sha256 = "068zka6rwprbzpx7yisi1ajsxdly23zaf2vjklx1wp66yypx54lp";
   meta = {
     description = "Deep evaluation of data structures";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/derive/default.nix b/pkgs/development/libraries/haskell/derive/default.nix
index c05f7fd02317..906c51fc0722 100644
--- a/pkgs/development/libraries/haskell/derive/default.nix
+++ b/pkgs/development/libraries/haskell/derive/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "derive";
-  version = "2.5.9";
-  sha256 = "1rws401dpdck7c9jxfv9h46r06vn730lw1fsxvvidnf3hlr0yyk5";
+  version = "2.5.11";
+  sha256 = "0934k49kpp32wffpvpk2sia7frd9ik56k6ghy6d6j31cabxf9m8r";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/diagrams/cairo.nix b/pkgs/development/libraries/haskell/diagrams/cairo.nix
new file mode 100644
index 000000000000..f23be1ebfb18
--- /dev/null
+++ b/pkgs/development/libraries/haskell/diagrams/cairo.nix
@@ -0,0 +1,19 @@
+{ cabal, cairo, cmdargs, diagramsCore, diagramsLib, filepath, gtk
+, mtl, split
+}:
+
+cabal.mkDerivation (self: {
+  pname = "diagrams-cairo";
+  version = "0.5.0.2";
+  sha256 = "1wwk65c2cx7rkhmai5spms791fjhl3snwhj0w9399q8pgj6g4lj8";
+  buildDepends = [
+    cairo cmdargs diagramsCore diagramsLib filepath gtk mtl split
+  ];
+  jailbreak = true;
+  meta = {
+    homepage = "http://projects.haskell.org/diagrams";
+    description = "Cairo backend for diagrams drawing EDSL";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/diagrams/core.nix b/pkgs/development/libraries/haskell/diagrams/core.nix
new file mode 100644
index 000000000000..365e27371319
--- /dev/null
+++ b/pkgs/development/libraries/haskell/diagrams/core.nix
@@ -0,0 +1,18 @@
+{ cabal, MemoTrie, newtype, semigroups, vectorSpace
+, vectorSpacePoints
+}:
+
+cabal.mkDerivation (self: {
+  pname = "diagrams-core";
+  version = "0.5.0.1";
+  sha256 = "073fk9cxm1kh92alr51dgwps9wxc5w3470axc6q7w91sk5cskpxy";
+  buildDepends = [
+    MemoTrie newtype semigroups vectorSpace vectorSpacePoints
+  ];
+  meta = {
+    homepage = "http://projects.haskell.org/diagrams";
+    description = "Core libraries for diagrams EDSL";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/diagrams/diagrams.nix b/pkgs/development/libraries/haskell/diagrams/diagrams.nix
new file mode 100644
index 000000000000..21c3a7a28f60
--- /dev/null
+++ b/pkgs/development/libraries/haskell/diagrams/diagrams.nix
@@ -0,0 +1,15 @@
+{ cabal, diagramsCairo, diagramsCore, diagramsLib }:
+
+cabal.mkDerivation (self: {
+  pname = "diagrams";
+  version = "0.5";
+  sha256 = "163h2fg3gpmsfm57gjyja2rxh9pl6s3xnzlidfdy201zbk1mzdg5";
+  buildDepends = [ diagramsCairo diagramsCore diagramsLib ];
+  noHaddock = true;
+  meta = {
+    homepage = "http://projects.haskell.org/diagrams";
+    description = "Embedded domain-specific language for declarative vector graphics";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/diagrams/lib.nix b/pkgs/development/libraries/haskell/diagrams/lib.nix
new file mode 100644
index 000000000000..d5c386c1e1f7
--- /dev/null
+++ b/pkgs/development/libraries/haskell/diagrams/lib.nix
@@ -0,0 +1,19 @@
+{ cabal, active, colour, dataDefault, diagramsCore, newtype
+, NumInstances, semigroups, vectorSpace
+}:
+
+cabal.mkDerivation (self: {
+  pname = "diagrams-lib";
+  version = "0.5.0.1";
+  sha256 = "0spfsllr2z064cxkdqcij02f0ikxxmll2dqj7rfikp4738wj21dy";
+  buildDepends = [
+    active colour dataDefault diagramsCore newtype NumInstances
+    semigroups vectorSpace
+  ];
+  meta = {
+    homepage = "http://projects.haskell.org/diagrams";
+    description = "Embedded domain-specific language for declarative graphics";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix b/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix
new file mode 100644
index 000000000000..acc75a3552a2
--- /dev/null
+++ b/pkgs/development/libraries/haskell/digestive-functors-heist/default.nix
@@ -0,0 +1,14 @@
+{ cabal, digestiveFunctors, heist, text, xmlhtml }:
+
+cabal.mkDerivation (self: {
+  pname = "digestive-functors-heist";
+  version = "0.5.0.0";
+  sha256 = "1cqzpnr53mailnmjgkbqk4f4hrjd84h6682mr8x7qg5v27zvcdbn";
+  buildDepends = [ digestiveFunctors heist text xmlhtml ];
+  meta = {
+    homepage = "http://github.com/jaspervdj/digestive-functors";
+    description = "Heist frontend for the digestive-functors library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/digestive-functors-snap/default.nix b/pkgs/development/libraries/haskell/digestive-functors-snap/default.nix
new file mode 100644
index 000000000000..3d5725e603ff
--- /dev/null
+++ b/pkgs/development/libraries/haskell/digestive-functors-snap/default.nix
@@ -0,0 +1,14 @@
+{ cabal, digestiveFunctors, filepath, mtl, snapCore, text }:
+
+cabal.mkDerivation (self: {
+  pname = "digestive-functors-snap";
+  version = "0.5.0.0";
+  sha256 = "01lbd42rsryzqzra8ax22iw6c9fyv5az8q7dkdi6yyfxdq976l0x";
+  buildDepends = [ digestiveFunctors filepath mtl snapCore text ];
+  meta = {
+    homepage = "http://github.com/jaspervdj/digestive-functors";
+    description = "Snap backend for the digestive-functors library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/digestive-functors/default.nix b/pkgs/development/libraries/haskell/digestive-functors/default.nix
new file mode 100644
index 000000000000..d6d4710f3060
--- /dev/null
+++ b/pkgs/development/libraries/haskell/digestive-functors/default.nix
@@ -0,0 +1,14 @@
+{ cabal, mtl, text }:
+
+cabal.mkDerivation (self: {
+  pname = "digestive-functors";
+  version = "0.5.0.2";
+  sha256 = "1phakcljl6ri2p9lfzjnn001jw0inyxa5zd7lp2k9lhq1yq0byb0";
+  buildDepends = [ mtl text ];
+  meta = {
+    homepage = "http://github.com/jaspervdj/digestive-functors";
+    description = "A practical formlet library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/directory-tree/default.nix b/pkgs/development/libraries/haskell/directory-tree/default.nix
index f99e043cf9e3..65148f10a22d 100644
--- a/pkgs/development/libraries/haskell/directory-tree/default.nix
+++ b/pkgs/development/libraries/haskell/directory-tree/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "directory-tree";
-  version = "0.10.0";
-  sha256 = "08b0w9j55x6c06pri7yvv84n24inhpb4miybdnkyjkjy7r3yy7m4";
+  version = "0.10.1";
+  sha256 = "02acmfdw1yjb0h9dpjy04xxclsasm1p0m6w1dvccd4x2aqc6ybbw";
   buildDepends = [ filepath ];
   meta = {
     homepage = "http://coder.bsimmons.name/blog/2009/05/directory-tree-module-released/";
diff --git a/pkgs/development/libraries/haskell/distributive/default.nix b/pkgs/development/libraries/haskell/distributive/default.nix
new file mode 100644
index 000000000000..a8b07c608d8a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/distributive/default.nix
@@ -0,0 +1,14 @@
+{ cabal, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "distributive";
+  version = "0.2.2";
+  sha256 = "13wvr2wb3h2nr1qd3dwjqx0b6g4igjqm3q2cyi4mc41gwihkbhr2";
+  buildDepends = [ transformers ];
+  meta = {
+    homepage = "http://github.com/ekmett/distributive/";
+    description = "Haskell 98 Distributive functors -- Dual to Traversable";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/double-conversion/default.nix b/pkgs/development/libraries/haskell/double-conversion/default.nix
index 82a1e4d4c39b..5d92b8178c18 100644
--- a/pkgs/development/libraries/haskell/double-conversion/default.nix
+++ b/pkgs/development/libraries/haskell/double-conversion/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "double-conversion";
-  version = "0.2.0.4";
-  sha256 = "00rb8n2ky20ah9ry398jagi9gb0gz40yjfalh35cpckmg30z199x";
+  version = "0.2.0.5";
+  sha256 = "1z23a8sfnq5lady8n2kcina9a7df8lmsliscf85x84dxkd3a1ahf";
   buildDepends = [ text ];
   meta = {
     homepage = "https://github.com/bos/double-conversion";
diff --git a/pkgs/development/libraries/haskell/dstring/default.nix b/pkgs/development/libraries/haskell/dstring/default.nix
index e025b00f8372..4b5dd2b38883 100644
--- a/pkgs/development/libraries/haskell/dstring/default.nix
+++ b/pkgs/development/libraries/haskell/dstring/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "dstring";
-  version = "0.4.0.3";
-  sha256 = "0wzj1wzls7w79ac84sc5msblh2dmfmcxm77drpdqdirl1pwdlq9c";
+  version = "0.4.0.4";
+  sha256 = "15zy1dhfs87hxq1qm54ym0pdhvg7l76m7vy5y06dnksb1sblhaqm";
   buildDepends = [ baseUnicodeSymbols dlist ];
   meta = {
     homepage = "https://github.com/basvandijk/dstring";
diff --git a/pkgs/development/libraries/haskell/explicit-exception/default.nix b/pkgs/development/libraries/haskell/explicit-exception/default.nix
index 86d4cc50c3ba..0f2385a004ff 100644
--- a/pkgs/development/libraries/haskell/explicit-exception/default.nix
+++ b/pkgs/development/libraries/haskell/explicit-exception/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "explicit-exception";
-  version = "0.1.7";
-  sha256 = "0pqh97fxs55554bd16dknggkr0yayqj1dz0sddp9b2svjy2q4vrm";
+  version = "0.1.7.1";
+  sha256 = "15p5pndam6byd3p8qlnn8pjdhb7rvn93fxa2m40x3wxh58ymkh14";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ transformers ];
diff --git a/pkgs/development/libraries/haskell/fast-logger/default.nix b/pkgs/development/libraries/haskell/fast-logger/default.nix
index 562489977236..e266aa15ff87 100644
--- a/pkgs/development/libraries/haskell/fast-logger/default.nix
+++ b/pkgs/development/libraries/haskell/fast-logger/default.nix
@@ -1,10 +1,10 @@
-{ cabal, blazeBuilder, filepath }:
+{ cabal, blazeBuilder, dateCache, filepath, text, unixTime }:
 
 cabal.mkDerivation (self: {
   pname = "fast-logger";
-  version = "0.0.2";
-  sha256 = "1pwxhgcy4lmc63dnr9fihkmiclf60hrnsv8wzbsdg0jcj4qi0zr7";
-  buildDepends = [ blazeBuilder filepath ];
+  version = "0.3.1";
+  sha256 = "0sjn3vad0fbchv1fhap71wfnihlwnfhk6p9h9hpnbr0i4b32f1ks";
+  buildDepends = [ blazeBuilder dateCache filepath text unixTime ];
   meta = {
     description = "A fast logging system";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/fclabels/default.nix b/pkgs/development/libraries/haskell/fclabels/default.nix
index 5f62315a9727..79ea3160df22 100644
--- a/pkgs/development/libraries/haskell/fclabels/default.nix
+++ b/pkgs/development/libraries/haskell/fclabels/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "fclabels";
-  version = "1.1.3";
-  sha256 = "1f8aav4gcpixmnnwcml0aqsqswb8fc0rp986nbyap22gmcw4hflx";
+  version = "1.1.4.3";
+  sha256 = "10qr0ncsqxg0dg2f73ip873gr342saxhidaf3c6g5vr03cvmmkap";
   buildDepends = [ mtl transformers ];
   meta = {
     description = "First class accessor labels";
diff --git a/pkgs/development/libraries/haskell/file-embed/default.nix b/pkgs/development/libraries/haskell/file-embed/default.nix
index 1ca06b356ecf..0a6fdf6c8cce 100644
--- a/pkgs/development/libraries/haskell/file-embed/default.nix
+++ b/pkgs/development/libraries/haskell/file-embed/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "file-embed";
-  version = "0.0.4.4";
-  sha256 = "1czwa5vpafhvif4gv7bwa7hrxkrbrvvybgyjckd0hdpl6bpd4nhp";
+  version = "0.0.4.5";
+  sha256 = "18rhcjll5gj790g5balk3xhnmmgjh2bixik8vna5drs7y9i0innp";
   meta = {
     homepage = "https://github.com/snoyberg/file-embed";
     description = "Use Template Haskell to embed file contents directly";
diff --git a/pkgs/development/libraries/haskell/filepath/default.nix b/pkgs/development/libraries/haskell/filepath/default.nix
index ae28bdc2e41f..0cd65bb1905e 100644
--- a/pkgs/development/libraries/haskell/filepath/default.nix
+++ b/pkgs/development/libraries/haskell/filepath/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "filepath";
-  version = "1.3.0.0";
-  sha256 = "1v5affq82b4fypm49d5sradcx4ymgmkac563vfx483pmyl73i5jl";
+  version = "1.3.0.1";
+  sha256 = "1ny8dz8rv883vg6hkzg3zank771cr2z9sfhii7aw4rfb71k29g5p";
   meta = {
     homepage = "http://www-users.cs.york.ac.uk/~ndm/filepath/";
     description = "Library for manipulating FilePaths in a cross platform way";
diff --git a/pkgs/development/libraries/haskell/filestore/default.nix b/pkgs/development/libraries/haskell/filestore/default.nix
index 355c6ef876ce..752037698ca1 100644
--- a/pkgs/development/libraries/haskell/filestore/default.nix
+++ b/pkgs/development/libraries/haskell/filestore/default.nix
@@ -12,6 +12,7 @@ cabal.mkDerivation (self: {
     Diff filepath HUnit mtl parsec split time utf8String xml
   ];
   noHaddock = true;
+  jailbreak = true;
   meta = {
     description = "Interface for versioning file stores";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/filesystem-conduit/default.nix b/pkgs/development/libraries/haskell/filesystem-conduit/default.nix
new file mode 100644
index 000000000000..3e6252a4e00a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/filesystem-conduit/default.nix
@@ -0,0 +1,17 @@
+{ cabal, conduit, systemFileio, systemFilepath, text, transformers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "filesystem-conduit";
+  version = "0.5.0.1";
+  sha256 = "1rpyrvs9hsi86zj6rghv91jn5lcx9wppg1wa4gp976kmagd4wl93";
+  buildDepends = [
+    conduit systemFileio systemFilepath text transformers
+  ];
+  meta = {
+    homepage = "http://github.com/snoyberg/conduit";
+    description = "Use system-filepath data types with conduits";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/fingertree/default.nix b/pkgs/development/libraries/haskell/fingertree/default.nix
index 71afad2cdbc9..299b2e926dbd 100644
--- a/pkgs/development/libraries/haskell/fingertree/default.nix
+++ b/pkgs/development/libraries/haskell/fingertree/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "fingertree";
-  version = "0.0.1.0";
-  sha256 = "e80bf256506290c8f4fb44222920ae7d8405fd22e453c7a08dba49297d49328b";
+  version = "0.0.1.1";
+  sha256 = "00llr24b2r539250fangl0jj39gf26gjwvhjpy5qg8l920hrjn78";
   meta = {
     description = "Generic finger-tree structure, with example instances";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/flexible-defaults/default.nix b/pkgs/development/libraries/haskell/flexible-defaults/default.nix
index 40ac59d1c9e3..9cba8f2c13f1 100644
--- a/pkgs/development/libraries/haskell/flexible-defaults/default.nix
+++ b/pkgs/development/libraries/haskell/flexible-defaults/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "flexible-defaults";
-  version = "0.0.0.3";
-  sha256 = "1s0dz61bqzzbxqvn9i8zwaccsha15als45zzjs2yc11r3m151dla";
+  version = "0.0.1.0";
+  sha256 = "0vq8ci3zbzmw8abjd12dhjiqzz4ckr99c1fqk32qsp5bvm81bdma";
   buildDepends = [ thExtras transformers ];
   meta = {
     homepage = "https://github.com/mokus0/flexible-defaults";
diff --git a/pkgs/development/libraries/haskell/funcmp/default.nix b/pkgs/development/libraries/haskell/funcmp/default.nix
index f6893cc37975..d17ca718f0ae 100644
--- a/pkgs/development/libraries/haskell/funcmp/default.nix
+++ b/pkgs/development/libraries/haskell/funcmp/default.nix
@@ -2,14 +2,17 @@
 
 cabal.mkDerivation (self: {
   pname = "funcmp";
-  version = "1.6";
-  sha256 = "1l317gnav6adbdi849zdcgcvrlcs4mz4p0s67wg323prq713fkz0";
+  version = "1.7";
+  sha256 = "1rna7x7lw36fv5pyq0zn4b472mh11r0bszzji13wm3byhhmzs04k";
   buildDepends = [ filepath ];
   meta = {
     homepage = "http://savannah.nongnu.org/projects/funcmp/";
     description = "Functional MetaPost";
     license = "GPL";
     platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/generic-deriving/default.nix b/pkgs/development/libraries/haskell/generic-deriving/default.nix
index ffc44542976e..67a35960ac97 100644
--- a/pkgs/development/libraries/haskell/generic-deriving/default.nix
+++ b/pkgs/development/libraries/haskell/generic-deriving/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "generic-deriving";
-  version = "1.2.1";
-  sha256 = "0ld4kh3p3lmavxi4y25fpxvq75qk7bd87yvwcbj63j6af1v60h2z";
+  version = "1.2.2";
+  sha256 = "1k64c3wqvgcvwarv55v8c303l959rs01znq443wynzi7kz7xcfl9";
   meta = {
     description = "Generic programming library for generalised deriving";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/ghc-events/default.nix b/pkgs/development/libraries/haskell/ghc-events/default.nix
index 4827b7494845..0b5fc5c107ab 100644
--- a/pkgs/development/libraries/haskell/ghc-events/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-events/default.nix
@@ -7,10 +7,8 @@ cabal.mkDerivation (self: {
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ binary mtl ];
-  patchPhase = ''
-    sed -i -e 's|mtl *>=.*$|mtl,|' ghc-events.cabal
-  '';
   noHaddock = true;
+  jailbreak = true;
   meta = {
     description = "Library and tool for parsing .eventlog files from GHC";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/ghc-syb-utils/default.nix b/pkgs/development/libraries/haskell/ghc-syb-utils/default.nix
index 804e55a22452..6f5f14585074 100644
--- a/pkgs/development/libraries/haskell/ghc-syb-utils/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-syb-utils/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "ghc-syb-utils";
-  version = "0.2.1.0";
-  sha256 = "02wmd4zkng38z3bhsk4w4dqj1lzznhg2p0ijwr1a0dgx8cqr490z";
+  version = "0.2.1.1";
+  sha256 = "1fwlzqbkjn592jh01nccn99iii6047fg9f3hh255586nzngihh1l";
   buildDepends = [ syb ];
   meta = {
     homepage = "http://github.com/nominolo/ghc-syb";
diff --git a/pkgs/development/libraries/haskell/gitit/default.nix b/pkgs/development/libraries/haskell/gitit/default.nix
index 148750e9ddcd..7de302aee6de 100644
--- a/pkgs/development/libraries/haskell/gitit/default.nix
+++ b/pkgs/development/libraries/haskell/gitit/default.nix
@@ -18,9 +18,7 @@ cabal.mkDerivation (self: {
     safe SHA syb tagsoup text time url utf8String xhtml xml xssSanitize
     zlib
   ];
-  patchPhase = ''
-    sed -i -e 's|hslogger.*,|hslogger,|' gitit.cabal
-  '';
+  jailbreak = true;
   meta = {
     homepage = "http://gitit.net";
     description = "Wiki using happstack, git or darcs, and pandoc";
diff --git a/pkgs/development/libraries/haskell/gloss/default.nix b/pkgs/development/libraries/haskell/gloss/default.nix
index 08e08e29ec04..e988eae9adf8 100644
--- a/pkgs/development/libraries/haskell/gloss/default.nix
+++ b/pkgs/development/libraries/haskell/gloss/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "gloss";
-  version = "1.7.4.1";
-  sha256 = "01mxazdgmz3k8y4s2k2mj11g1m788dykx60i7bqbdwzbzc65hcfw";
+  version = "1.7.6.1";
+  sha256 = "1gwmrnwn1x0hs9jp2qsjp737wahbdsjrp2kp7gpz9pkq4a6jmjmx";
   buildDepends = [ bmp GLUT OpenGL ];
   meta = {
     homepage = "http://gloss.ouroborus.net";
diff --git a/pkgs/development/libraries/haskell/glpk-hs/default.nix b/pkgs/development/libraries/haskell/glpk-hs/default.nix
index 621a7e9c4c51..006f227a8c20 100644
--- a/pkgs/development/libraries/haskell/glpk-hs/default.nix
+++ b/pkgs/development/libraries/haskell/glpk-hs/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "glpk-hs";
-  version = "0.3.2";
-  sha256 = "0y7imgzcnh6x36m5f6mns5ay1xhxy5p6i5nh16p2ywzjj0padcg8";
+  version = "0.3.3";
+  sha256 = "1pnq0v5va7f40ky9xb8c4z9wcmmnny2vk4afasz5pwivbxh42mfl";
   buildDepends = [ deepseq mtl ];
   extraLibraries = [ glpk ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/graphviz/default.nix b/pkgs/development/libraries/haskell/graphviz/default.nix
index 77867472d661..7986ef07c1ee 100644
--- a/pkgs/development/libraries/haskell/graphviz/default.nix
+++ b/pkgs/development/libraries/haskell/graphviz/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "graphviz";
-  version = "2999.13.0.3";
-  sha256 = "0rwjlwfa3s1vgh5mwzwmzq4s153iq338zy7jqi0qyxcs52illqq8";
+  version = "2999.14.1.0";
+  sha256 = "13fni5sf6cdfvgyh7kqjjdhmjxkhbgl3gbi0cbq90n8blzg4q1ql";
   buildDepends = [
     colour dlist fgl filepath polyparse text transformers wlPprintText
   ];
diff --git a/pkgs/development/libraries/haskell/hackage-db/default.nix b/pkgs/development/libraries/haskell/hackage-db/default.nix
index b27ff78d8f95..37698cebb38a 100644
--- a/pkgs/development/libraries/haskell/hackage-db/default.nix
+++ b/pkgs/development/libraries/haskell/hackage-db/default.nix
@@ -10,6 +10,9 @@ cabal.mkDerivation (self: {
     description = "provide access to the Hackage database via Data.Map";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index 8dfeb9413d38..c3e10a315722 100644
--- a/pkgs/development/libraries/haskell/hakyll/default.nix
+++ b/pkgs/development/libraries/haskell/hakyll/default.nix
@@ -1,16 +1,16 @@
 { cabal, binary, blazeHtml, blazeMarkup, citeprocHs, cryptohash
-, filepath, hamlet, mtl, pandoc, parsec, regexBase, regexTdfa
-, snapCore, snapServer, tagsoup, text, time
+, filepath, hamlet, lrucache, mtl, pandoc, parsec, regexBase
+, regexTdfa, snapCore, snapServer, tagsoup, text, time
 }:
 
 cabal.mkDerivation (self: {
   pname = "hakyll";
-  version = "3.4.0.0";
-  sha256 = "1m69kzjbsspf69qc3yq6qhpnk3vd3k5qa7zssazm8717sgrb2z9m";
+  version = "3.4.2.1";
+  sha256 = "0h2xs4qwy2lqdg4v7zbzfmkvr411j34fba3dm05skq7d908wjji0";
   buildDepends = [
     binary blazeHtml blazeMarkup citeprocHs cryptohash filepath hamlet
-    mtl pandoc parsec regexBase regexTdfa snapCore snapServer tagsoup
-    text time
+    lrucache mtl pandoc parsec regexBase regexTdfa snapCore snapServer
+    tagsoup text time
   ];
   meta = {
     homepage = "http://jaspervdj.be/hakyll";
diff --git a/pkgs/development/libraries/haskell/hamlet/default.nix b/pkgs/development/libraries/haskell/hamlet/default.nix
index addc495d867d..4fd567f75aa5 100644
--- a/pkgs/development/libraries/haskell/hamlet/default.nix
+++ b/pkgs/development/libraries/haskell/hamlet/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hamlet";
-  version = "1.0.1.4";
-  sha256 = "0rvsp54wrhaz5pnn136w1xlny9dkwv48ihyhq02yg5gg510v08v7";
+  version = "1.1.1";
+  sha256 = "0003rp40px3zd5j2k8mm6igafbw8npn0zxm3ip27pq506ak2a0p9";
   buildDepends = [
     blazeBuilder blazeHtml blazeMarkup failure parsec shakespeare text
   ];
diff --git a/pkgs/development/libraries/haskell/happstack/happstack-hamlet.nix b/pkgs/development/libraries/haskell/happstack/happstack-hamlet.nix
index 6c105b1e4763..cf71dde30c34 100644
--- a/pkgs/development/libraries/haskell/happstack/happstack-hamlet.nix
+++ b/pkgs/development/libraries/haskell/happstack/happstack-hamlet.nix
@@ -5,6 +5,7 @@ cabal.mkDerivation (self: {
   version = "7.0.1";
   sha256 = "13ayypl2x402h6a7yq7fvgd2mn21gl5gcw2hk7f5vr2bdlvwv53n";
   buildDepends = [ hamlet happstackServer text ];
+  jailbreak = true;
   meta = {
     homepage = "http://www.happstack.com/";
     description = "Support for Hamlet HTML templates in Happstack";
diff --git a/pkgs/development/libraries/haskell/happstack/happstack-server.nix b/pkgs/development/libraries/haskell/happstack/happstack-server.nix
index 39f93102da00..5d4b4365f393 100644
--- a/pkgs/development/libraries/haskell/happstack/happstack-server.nix
+++ b/pkgs/development/libraries/haskell/happstack/happstack-server.nix
@@ -1,19 +1,18 @@
 { cabal, base64Bytestring, blazeHtml, extensibleExceptions
 , filepath, hslogger, html, monadControl, mtl, network, parsec
-, sendfile, syb, systemFilepath, text, time, transformers
+, sendfile, syb, systemFilepath, text, threads, time, transformers
 , transformersBase, utf8String, xhtml, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "happstack-server";
-  version = "7.0.3";
-  sha256 = "06r5h1jhb4h9hra7radhr3rq404283nwv4mhppfxsh4adk5ng0qy";
-  isLibrary = true;
-  isExecutable = true;
+  version = "7.0.5";
+  sha256 = "11ialzvjdqmf62yl5r9yxir8fg5agfg1fysf3c3ja5456k07b466";
   buildDepends = [
     base64Bytestring blazeHtml extensibleExceptions filepath hslogger
     html monadControl mtl network parsec sendfile syb systemFilepath
-    text time transformers transformersBase utf8String xhtml zlib
+    text threads time transformers transformersBase utf8String xhtml
+    zlib
   ];
   meta = {
     homepage = "http://happstack.com";
diff --git a/pkgs/development/libraries/haskell/happstack/happstack-util.nix b/pkgs/development/libraries/haskell/happstack/happstack-util.nix
index b457ec6dc322..8dfac311a9a5 100644
--- a/pkgs/development/libraries/haskell/happstack/happstack-util.nix
+++ b/pkgs/development/libraries/haskell/happstack/happstack-util.nix
@@ -12,9 +12,7 @@ cabal.mkDerivation (self: {
     extensibleExceptions filepath hslogger mtl network parsec random
     time unixCompat
   ];
-  patchPhase = ''
-    sed -i -e 's|mtl >= 1.1 && < 2.1|mtl|' happstack-util.cabal
-  '';
+  jailbreak = true;
   meta = {
     homepage = "http://happstack.com";
     description = "Web framework";
diff --git a/pkgs/development/libraries/haskell/hashable/default.nix b/pkgs/development/libraries/haskell/hashable/default.nix
index c706b020fef6..96fe7ae0eb13 100644
--- a/pkgs/development/libraries/haskell/hashable/default.nix
+++ b/pkgs/development/libraries/haskell/hashable/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hashable";
-  version = "1.1.2.3";
-  sha256 = "19v94b34c2j6f9d9xii2hg0mjxdkq51aifkcqw6hbicn97kfcxls";
+  version = "1.1.2.5";
+  sha256 = "0gbiaj5ck2bvvinndp2pg7qsm2h2izbnz9wi97dbm7i8r4qd9d9z";
   buildDepends = [ text ];
   meta = {
     homepage = "http://github.com/tibbe/hashable";
diff --git a/pkgs/development/libraries/haskell/hashed-storage/default.nix b/pkgs/development/libraries/haskell/hashed-storage/default.nix
index 04f465bb9fe3..161e81eb3754 100644
--- a/pkgs/development/libraries/haskell/hashed-storage/default.nix
+++ b/pkgs/development/libraries/haskell/hashed-storage/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hashed-storage";
-  version = "0.5.9";
-  sha256 = "1ycn0zwk5jqm6wwgs8nxpdg7fh5wx0i2058i0a924whj196kkhk2";
+  version = "0.5.10";
+  sha256 = "1k7drnk0y5apjvwsiw85032yvxllbi7ndg6h9x207gnjxm64m0h5";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/hashtables/default.nix b/pkgs/development/libraries/haskell/hashtables/default.nix
index 1f9e4b418e28..08f933559108 100644
--- a/pkgs/development/libraries/haskell/hashtables/default.nix
+++ b/pkgs/development/libraries/haskell/hashtables/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hashtables";
-  version = "1.0.1.6";
-  sha256 = "071msa15447rk2zc5jbpms8sc1ml8yi1n5pycycrcik8dhsm3slb";
+  version = "1.0.1.7";
+  sha256 = "0swk501whj08jj9q1d1lwg06nakimxnr7797zx8y8275f5mmisi7";
   buildDepends = [ hashable primitive vector ];
   meta = {
     homepage = "http://github.com/gregorycollins/hashtables";
diff --git a/pkgs/development/libraries/haskell/haskeline/default.nix b/pkgs/development/libraries/haskell/haskeline/0.6.4.7.nix
index 9863293c41de..9863293c41de 100644
--- a/pkgs/development/libraries/haskell/haskeline/default.nix
+++ b/pkgs/development/libraries/haskell/haskeline/0.6.4.7.nix
diff --git a/pkgs/development/libraries/haskell/haskeline/0.7.0.3.nix b/pkgs/development/libraries/haskell/haskeline/0.7.0.3.nix
new file mode 100644
index 000000000000..3d51d396c7f5
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskeline/0.7.0.3.nix
@@ -0,0 +1,16 @@
+{ cabal, filepath, terminfo, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "haskeline";
+  version = "0.7.0.3";
+  sha256 = "10xc229ddk4g87i78vgjbfr7sii28fx00qwnggb5x7sfigfca8sg";
+  buildDepends = [ filepath terminfo transformers ];
+  configureFlags = "-fterminfo";
+  meta = {
+    homepage = "http://trac.haskell.org/haskeline";
+    description = "A command-line interface for user input, written in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/haskell-src-exts/1.13.3.nix b/pkgs/development/libraries/haskell/haskell-src-exts/1.13.5.nix
index d4cb1d97bb77..16f6d6362a1e 100644
--- a/pkgs/development/libraries/haskell/haskell-src-exts/1.13.3.nix
+++ b/pkgs/development/libraries/haskell/haskell-src-exts/1.13.5.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "haskell-src-exts";
-  version = "1.13.3";
-  sha256 = "0z2vs6ji0dgm3c11jwcq5jcnjr8a6pawrkn3c8a3a5p612v8d495";
+  version = "1.13.5";
+  sha256 = "03bzhfp7l9f5hh61qdrr83331nbfgj3jfsfylwmnmcknpisdqnkw";
   buildDepends = [ cpphs ];
   buildTools = [ happy ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/haskell-src-meta/default.nix b/pkgs/development/libraries/haskell/haskell-src-meta/default.nix
index 2300d6e80cad..1d9bba47b4b1 100644
--- a/pkgs/development/libraries/haskell/haskell-src-meta/default.nix
+++ b/pkgs/development/libraries/haskell/haskell-src-meta/default.nix
@@ -1,10 +1,10 @@
-{ cabal, haskellSrcExts, syb, thLift, uniplate }:
+{ cabal, haskellSrcExts, syb, thOrphans, uniplate }:
 
 cabal.mkDerivation (self: {
   pname = "haskell-src-meta";
-  version = "0.5.1.2";
-  sha256 = "09if8423dwf4jcr6p7d8j4r9i2n8jc7xxvjn1p1mwjp0ajzk8g9s";
-  buildDepends = [ haskellSrcExts syb thLift uniplate ];
+  version = "0.6.0.1";
+  sha256 = "181xjajvppipzgknmbhbb1i2r8rimbr5vzn6gf1ksddgw12sargd";
+  buildDepends = [ haskellSrcExts syb thOrphans uniplate ];
   meta = {
     description = "Parse source to template-haskell abstract syntax";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/hastache/default.nix b/pkgs/development/libraries/haskell/hastache/default.nix
index 54decaa5ecb8..f37badde96da 100644
--- a/pkgs/development/libraries/haskell/hastache/default.nix
+++ b/pkgs/development/libraries/haskell/hastache/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hastache";
-  version = "0.4.1";
-  sha256 = "1d6d3bmmfx1jh38hhmvaq1ncdxlfjc0mc7jvbxqgr00dg73wfgdk";
+  version = "0.4.2";
+  sha256 = "1ad691qxnnx0a6ik0cjdzd8aw7z88p06zckbb3cb1r8pk6m0g7vi";
   buildDepends = [
     blazeBuilder filepath ieee754 mtl syb text utf8String
   ];
diff --git a/pkgs/development/libraries/haskell/heist/default.nix b/pkgs/development/libraries/haskell/heist/default.nix
new file mode 100644
index 000000000000..44ba8ba15ee5
--- /dev/null
+++ b/pkgs/development/libraries/haskell/heist/default.nix
@@ -0,0 +1,21 @@
+{ cabal, aeson, attoparsec, blazeBuilder, blazeHtml, directoryTree
+, filepath, MonadCatchIOTransformers, mtl, random, text, time
+, transformers, unorderedContainers, vector, xmlhtml
+}:
+
+cabal.mkDerivation (self: {
+  pname = "heist";
+  version = "0.8.1.1";
+  sha256 = "0ad56izskafpc1dx2nq0a8w71ayppwx8dc7kdaw1by972kh3nflh";
+  buildDepends = [
+    aeson attoparsec blazeBuilder blazeHtml directoryTree filepath
+    MonadCatchIOTransformers mtl random text time transformers
+    unorderedContainers vector xmlhtml
+  ];
+  meta = {
+    homepage = "http://snapframework.com/";
+    description = "An (x)html templating system";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hfuse/default.nix b/pkgs/development/libraries/haskell/hfuse/default.nix
index 8ff4f7fd2757..64943d5e1c1c 100644
--- a/pkgs/development/libraries/haskell/hfuse/default.nix
+++ b/pkgs/development/libraries/haskell/hfuse/default.nix
@@ -17,7 +17,6 @@ cabal.mkDerivation (self: {
     platforms = self.ghc.meta.platforms;
     maintainers = [
       self.stdenv.lib.maintainers.andres
-      self.stdenv.lib.maintainers.simons
     ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/highlighting-kate/default.nix b/pkgs/development/libraries/haskell/highlighting-kate/default.nix
index d92d15d2a16f..21497f3252a2 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.1";
-  sha256 = "0l0g71rg7cs9rm4i04h88fm20868s0kf2da89297xlrm58zfv0jj";
+  version = "0.5.3.2";
+  sha256 = "09yvqxvjzahz0y6yhsfgkx5xm39a74arv294w14sgmhay1wnlwvj";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ blazeHtml filepath mtl parsec regexPcreBuiltin ];
diff --git a/pkgs/development/libraries/haskell/hledger-lib/default.nix b/pkgs/development/libraries/haskell/hledger-lib/default.nix
index ef244bcb7689..af230b2e6448 100644
--- a/pkgs/development/libraries/haskell/hledger-lib/default.nix
+++ b/pkgs/development/libraries/haskell/hledger-lib/default.nix
@@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
     cmdargs csv filepath HUnit mtl parsec regexpr safe shakespeareText
     split time transformers utf8String
   ];
+  jailbreak = true;
   meta = {
     homepage = "http://hledger.org";
     description = "Core data types, parsers and utilities for the hledger accounting tool";
diff --git a/pkgs/development/libraries/haskell/hledger/default.nix b/pkgs/development/libraries/haskell/hledger/default.nix
index 815ca1b87fd9..46ae378d738c 100644
--- a/pkgs/development/libraries/haskell/hledger/default.nix
+++ b/pkgs/development/libraries/haskell/hledger/default.nix
@@ -13,6 +13,7 @@ cabal.mkDerivation (self: {
     cabalFileTh cmdargs filepath haskeline hledgerLib HUnit mtl parsec
     regexpr safe shakespeareText split text time utf8String
   ];
+  jailbreak = true;
   meta = {
     homepage = "http://hledger.org";
     description = "The main command-line interface for the hledger accounting tool";
diff --git a/pkgs/development/libraries/haskell/hmatrix/default.nix b/pkgs/development/libraries/haskell/hmatrix/default.nix
index 398299872d5a..2542e2005865 100644
--- a/pkgs/development/libraries/haskell/hmatrix/default.nix
+++ b/pkgs/development/libraries/haskell/hmatrix/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hmatrix";
-  version = "0.14.0.1";
-  sha256 = "057ii711qsh5307bp3jqpvlhwp2iacr83whhjm5053b5psinj4z5";
+  version = "0.14.1.0";
+  sha256 = "10fvbk3k2fgac46a86mc8g0s5gsw1p1bz4k57gn6dzgwh73mxjx7";
   buildDepends = [ binary random storableComplex vector ];
   extraLibraries = [ blas gsl liblapack ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/hoauth/default.nix b/pkgs/development/libraries/haskell/hoauth/default.nix
index e118f7650979..c568b292c3c1 100644
--- a/pkgs/development/libraries/haskell/hoauth/default.nix
+++ b/pkgs/development/libraries/haskell/hoauth/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hoauth";
-  version = "0.3.4";
-  sha256 = "0a8a77smzhxmynfi0ayvsgibpw9aav2f7pi9j3dxjas14zg9qv2k";
+  version = "0.3.5";
+  sha256 = "06vk3dv2dby7wadxg4qq2bzy10hl8ix2x4vpxggwd13xy3kpzjqp";
   buildDepends = [
     binary cryptoPubkeyTypes curl dataenc entropy mtl random RSA SHA
     time utf8String
diff --git a/pkgs/development/libraries/haskell/hoogle/default.nix b/pkgs/development/libraries/haskell/hoogle/default.nix
index 9db10b33b1d7..e13ab47beaac 100644
--- a/pkgs/development/libraries/haskell/hoogle/default.nix
+++ b/pkgs/development/libraries/haskell/hoogle/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hoogle";
-  version = "4.2.11";
-  sha256 = "0m708qlj3q8s9vywg51gj7bwwasz5nxqxqhqh8f0k96iawqd9gid";
+  version = "4.2.13";
+  sha256 = "0asw9lr22d8jxr58b7w2j5hgllxhw2w8kllh5aq5jjs272hjiy9i";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/hopenssl/default.nix b/pkgs/development/libraries/haskell/hopenssl/default.nix
index 5c62cbf3fe08..fec3f5dccf49 100644
--- a/pkgs/development/libraries/haskell/hopenssl/default.nix
+++ b/pkgs/development/libraries/haskell/hopenssl/default.nix
@@ -11,6 +11,9 @@ cabal.mkDerivation (self: {
     description = "FFI bindings to OpenSSL's EVP digest interface";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hscolour/default.nix b/pkgs/development/libraries/haskell/hscolour/default.nix
index 2c2aa5be7e60..d8bc08b4b33c 100644
--- a/pkgs/development/libraries/haskell/hscolour/default.nix
+++ b/pkgs/development/libraries/haskell/hscolour/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hscolour";
-  version = "1.20.2";
-  sha256 = "0jl2m2bpsqg2hnf9mmwwrpa7af8wqwaajfp2h3nnnmy5qks10ad5";
+  version = "1.20.3";
+  sha256 = "15ix93sw4p7g5ln2halcgqppdc0i0vmkzcjzxvqzkk9yp9pq3nrs";
   isLibrary = true;
   isExecutable = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/hsdns/default.nix b/pkgs/development/libraries/haskell/hsdns/default.nix
index aab6530fcc99..2a83df47f090 100644
--- a/pkgs/development/libraries/haskell/hsdns/default.nix
+++ b/pkgs/development/libraries/haskell/hsdns/default.nix
@@ -12,6 +12,9 @@ cabal.mkDerivation (self: {
     description = "Asynchronous DNS Resolver";
     license = "LGPL";
     platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hsemail/default.nix b/pkgs/development/libraries/haskell/hsemail/default.nix
index 36a320dbe687..f69789772ace 100644
--- a/pkgs/development/libraries/haskell/hsemail/default.nix
+++ b/pkgs/development/libraries/haskell/hsemail/default.nix
@@ -10,6 +10,9 @@ cabal.mkDerivation (self: {
     description = "Internet Message Parsers";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hspec-expectations/default.nix b/pkgs/development/libraries/haskell/hspec-expectations/default.nix
new file mode 100644
index 000000000000..bd2d4d290eef
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hspec-expectations/default.nix
@@ -0,0 +1,14 @@
+{ cabal, HUnit }:
+
+cabal.mkDerivation (self: {
+  pname = "hspec-expectations";
+  version = "0.3.0.2";
+  sha256 = "1jwwi4pbv0pc88vdg5y0ljjq41sha4v4y5qaxi6qms7rl6cp4qkr";
+  buildDepends = [ HUnit ];
+  meta = {
+    homepage = "https://github.com/sol/hspec-expectations#readme";
+    description = "Catchy combinators for HUnit";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hspec/default.nix b/pkgs/development/libraries/haskell/hspec/default.nix
new file mode 100644
index 000000000000..1a22ff5df0d1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hspec/default.nix
@@ -0,0 +1,21 @@
+{ cabal, ansiTerminal, filepath, hspecExpectations, HUnit
+, QuickCheck, silently, time, transformers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "hspec";
+  version = "1.3.0";
+  sha256 = "0kl9mdksy8bifb37dfb9y8mnnjlq0x1h970cgzv9idq61gafii4n";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    ansiTerminal filepath hspecExpectations HUnit QuickCheck silently
+    time transformers
+  ];
+  meta = {
+    homepage = "http://hspec.github.com/";
+    description = "Behavior Driven Development for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/html-conduit/default.nix b/pkgs/development/libraries/haskell/html-conduit/default.nix
new file mode 100644
index 000000000000..b3482292b041
--- /dev/null
+++ b/pkgs/development/libraries/haskell/html-conduit/default.nix
@@ -0,0 +1,19 @@
+{ cabal, conduit, filesystemConduit, resourcet, systemFilepath
+, tagstreamConduit, text, transformers, xmlConduit, xmlTypes
+}:
+
+cabal.mkDerivation (self: {
+  pname = "html-conduit";
+  version = "0.1.0.2";
+  sha256 = "0r9bnzz6r5q2fgichg8vfjgwyig33diqvj5pxchk97m3m5rqj5k4";
+  buildDepends = [
+    conduit filesystemConduit resourcet systemFilepath tagstreamConduit
+    text transformers xmlConduit xmlTypes
+  ];
+  meta = {
+    homepage = "https://github.com/snoyberg/xml";
+    description = "Parse HTML documents using xml-conduit datatypes";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/http-conduit/default.nix b/pkgs/development/libraries/haskell/http-conduit/default.nix
index 224e5ff6e967..3597204eda6f 100644
--- a/pkgs/development/libraries/haskell/http-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/http-conduit/default.nix
@@ -8,8 +8,8 @@
 
 cabal.mkDerivation (self: {
   pname = "http-conduit";
-  version = "1.4.1.10";
-  sha256 = "0a2014bzh4vvm3qx5yarxgirzlngzy2xrwpi3bvnz1h3q0hggq01";
+  version = "1.6.0.4";
+  sha256 = "1gnr65nkgn99cvll71zka6wrpg9ihhn38mg89841q1w2y0xf1mb0";
   buildDepends = [
     asn1Data attoparsec attoparsecConduit base64Bytestring blazeBuilder
     blazeBuilderConduit caseInsensitive certificate conduit cookie
diff --git a/pkgs/development/libraries/haskell/http-types/default.nix b/pkgs/development/libraries/haskell/http-types/default.nix
index b3ae70bbb368..242f73e9b21a 100644
--- a/pkgs/development/libraries/haskell/http-types/default.nix
+++ b/pkgs/development/libraries/haskell/http-types/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "http-types";
-  version = "0.6.11";
-  sha256 = "1waxhicqwp0nmvmpmfadpq9gdldbcx9wh6jz717ghi6y9l485vhf";
+  version = "0.7.3.0.1";
+  sha256 = "1s2dh75jpf2yllw503hjw0x2anhc4c71vz5yylri8nxzx1zs18rq";
   buildDepends = [ blazeBuilder caseInsensitive text ];
   meta = {
     homepage = "https://github.com/aristidb/http-types";
diff --git a/pkgs/development/libraries/haskell/instant-generics/default.nix b/pkgs/development/libraries/haskell/instant-generics/default.nix
index 648dfd7c3157..edbf96128dab 100644
--- a/pkgs/development/libraries/haskell/instant-generics/default.nix
+++ b/pkgs/development/libraries/haskell/instant-generics/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "instant-generics";
-  version = "0.3.4";
-  sha256 = "0j3sfbw3j0izwmhvwcl8nxxvlrpfla5rngxx2yvl6w5i87wyhswi";
+  version = "0.3.6";
+  sha256 = "0rwxj30p4s8imwfsrrrb26dvxax74cr77yzrm5s9yj7hc7hr0c5p";
   buildDepends = [ syb ];
   meta = {
     homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/InstantGenerics";
diff --git a/pkgs/development/libraries/haskell/io-choice/default.nix b/pkgs/development/libraries/haskell/io-choice/default.nix
index 85e49f5a67f1..f8b1f1d51a42 100644
--- a/pkgs/development/libraries/haskell/io-choice/default.nix
+++ b/pkgs/development/libraries/haskell/io-choice/default.nix
@@ -3,8 +3,8 @@
 
 cabal.mkDerivation (self: {
   pname = "io-choice";
-  version = "0.0.1";
-  sha256 = "0jwxqs65g88q9l0w4xzllj7svz3qr2zgiaq2fyq5jmh33lz74r63";
+  version = "0.0.2";
+  sha256 = "0kxn357cc31gvaajg41h6xwpivq049dl1zd551xfvrvzndvy061f";
   buildDepends = [
     liftedBase monadControl transformers transformersBase
   ];
diff --git a/pkgs/development/libraries/haskell/irc/default.nix b/pkgs/development/libraries/haskell/irc/default.nix
index 613f03c80c16..89d277d1f406 100644
--- a/pkgs/development/libraries/haskell/irc/default.nix
+++ b/pkgs/development/libraries/haskell/irc/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "irc";
-  version = "0.5.0.0";
-  sha256 = "0bid9iqgrppkl7hl1cd2m1pvvk5qva53fqfl0v5ld52j904c50sr";
+  version = "0.5.1.0";
+  sha256 = "1xkgqcjxlxqg60qlv26ypmvf9x288sjz1n47rb7zfvjhdimws8gj";
   buildDepends = [ parsec ];
   meta = {
     description = "A small library for parsing IRC messages";
diff --git a/pkgs/development/libraries/haskell/iteratee/default.nix b/pkgs/development/libraries/haskell/iteratee/default.nix
index 14c125121bde..ee9026bae493 100644
--- a/pkgs/development/libraries/haskell/iteratee/default.nix
+++ b/pkgs/development/libraries/haskell/iteratee/default.nix
@@ -4,10 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "iteratee";
-  version = "0.8.9.1";
-  sha256 = "1yk7jvabmabf0qjcd00imbg7vx84yjf71h7x3zbv4a51ykfy5hax";
-  isLibrary = true;
-  isExecutable = true;
+  version = "0.8.9.4";
+  sha256 = "0j8q5i3kf1ld7630z65hj55p2jlhl23f6qjag4zwrhrh38bfr531";
   buildDepends = [
     ListLike MonadCatchIOTransformers monadControl parallel
     transformers transformersBase
diff --git a/pkgs/development/libraries/haskell/json/default.nix b/pkgs/development/libraries/haskell/json/default.nix
index 5bfbb59d83f4..09ebeb847b9d 100644
--- a/pkgs/development/libraries/haskell/json/default.nix
+++ b/pkgs/development/libraries/haskell/json/default.nix
@@ -2,17 +2,13 @@
 
 cabal.mkDerivation (self: {
   pname = "json";
-  version = "0.5";
-  sha256 = "12jbvq0lp7z5q6g94pv8s5455yydfyh9h2xlr76wqzfh3myvy6fl";
+  version = "0.6";
+  sha256 = "1f5l1992r2gm8fivqfljhgs3nix4qf7h3rji78rsq1kf3r9shz32";
   buildDepends = [ mtl parsec syb ];
-  patchPhase = "sed -i json.cabal -e '1iExtensions: FlexibleInstances'";
   meta = {
     description = "Support for serialising Haskell to and from JSON";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    maintainers = [
-      self.stdenv.lib.maintainers.andres
-      self.stdenv.lib.maintainers.simons
-    ];
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/language-c-quote/default.nix b/pkgs/development/libraries/haskell/language-c-quote/default.nix
index a765b015a314..3f8353838313 100644
--- a/pkgs/development/libraries/haskell/language-c-quote/default.nix
+++ b/pkgs/development/libraries/haskell/language-c-quote/default.nix
@@ -4,13 +4,14 @@
 
 cabal.mkDerivation (self: {
   pname = "language-c-quote";
-  version = "0.3.2";
-  sha256 = "1pxrag9ws93rsqrsxcyxg07pvp2qw0f19yj2b40ynwzk112nkd16";
+  version = "0.4.1";
+  sha256 = "1graq6nfmzd2lj6fh1rwyaikfrlzn05pgd347dzrfq5ch35fgg10";
   buildDepends = [
     exceptionMtl exceptionTransformers filepath haskellSrcMeta
     mainlandPretty mtl srcloc syb symbol
   ];
   buildTools = [ alex happy ];
+  jailbreak = true;
   meta = {
     homepage = "http://www.eecs.harvard.edu/~mainland/";
     description = "C/CUDA/OpenCL quasiquoting library";
diff --git a/pkgs/development/libraries/haskell/largeword/default.nix b/pkgs/development/libraries/haskell/largeword/default.nix
index 7f01336f281d..67159c2bcbf7 100644
--- a/pkgs/development/libraries/haskell/largeword/default.nix
+++ b/pkgs/development/libraries/haskell/largeword/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "largeword";
-  version = "1.0.2";
-  sha256 = "0ylbl9rffhqw9ahasn23n00h7v5yqmghmqkrq446zdr72bq23hk2";
+  version = "1.0.3";
+  sha256 = "18b6nhq1cww4wdbrfq0cb828kncxzcsibgs5dbgxa66y6iw93vkg";
   meta = {
     homepage = "http://trac.haskell.org/largeword/wiki";
     description = "Provides Word128, Word192 and Word256 and a way of producing other large words if required";
diff --git a/pkgs/development/libraries/haskell/liblastfm/default.nix b/pkgs/development/libraries/haskell/liblastfm/default.nix
new file mode 100644
index 000000000000..17489b157a2b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/liblastfm/default.nix
@@ -0,0 +1,15 @@
+{ cabal, aeson, curl, mtl, pureMD5, urlencoded, utf8String, xml }:
+
+cabal.mkDerivation (self: {
+  pname = "liblastfm";
+  version = "0.0.3.6";
+  sha256 = "0xmrciv489dvksgpg9g83kna34x1amsx45wvpngcpnx4m44fcp4w";
+  buildDepends = [
+    aeson curl mtl pureMD5 urlencoded utf8String xml
+  ];
+  meta = {
+    description = "Wrapper to Lastfm API";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/lifted-base/default.nix b/pkgs/development/libraries/haskell/lifted-base/default.nix
index ba5e580ada06..09264ab57f44 100644
--- a/pkgs/development/libraries/haskell/lifted-base/default.nix
+++ b/pkgs/development/libraries/haskell/lifted-base/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "lifted-base";
-  version = "0.1.1.1";
-  sha256 = "1cfk3n12qhyrrfvw410gfydbgmb7r9y65fsjp2r3c4ilcyd5li70";
+  version = "0.1.2";
+  sha256 = "0js94dlfy2wjl026jcj2l399ly4zgw0cgxkmil6lsm34gcy9vrvq";
   buildDepends = [
     baseUnicodeSymbols monadControl transformersBase
   ];
diff --git a/pkgs/development/libraries/haskell/logict/default.nix b/pkgs/development/libraries/haskell/logict/default.nix
index 4e67e4ffb4c8..a603b4fe6449 100644
--- a/pkgs/development/libraries/haskell/logict/default.nix
+++ b/pkgs/development/libraries/haskell/logict/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "logict";
-  version = "0.5.0.1";
-  sha256 = "0k3acw6fwhqz4qaz7k85fx5b43hwc926il0mljc69gjrgw0c8nzv";
+  version = "0.5.0.2";
+  sha256 = "0m0a55l061vbxdqw9h1780g893amdxs7glza4jd5jncjsv823s1z";
   buildDepends = [ mtl ];
   meta = {
     homepage = "http://code.haskell.org/~dolio/logict";
diff --git a/pkgs/development/libraries/haskell/lrucache/default.nix b/pkgs/development/libraries/haskell/lrucache/default.nix
new file mode 100644
index 000000000000..d92bd8203487
--- /dev/null
+++ b/pkgs/development/libraries/haskell/lrucache/default.nix
@@ -0,0 +1,13 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "lrucache";
+  version = "1.1.1";
+  sha256 = "05y0b2dbbp017hkbr0pz943956dm31g5xhma4bqnh49yd4lyn5l9";
+  meta = {
+    homepage = "http://github.com/chowells79/lrucache";
+    description = "a simple, pure LRU cache";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/mainland-pretty/default.nix b/pkgs/development/libraries/haskell/mainland-pretty/default.nix
index d64a6c761800..e22e0b053e6a 100644
--- a/pkgs/development/libraries/haskell/mainland-pretty/default.nix
+++ b/pkgs/development/libraries/haskell/mainland-pretty/default.nix
@@ -1,10 +1,10 @@
-{ cabal, srcloc, symbol }:
+{ cabal, srcloc, text }:
 
 cabal.mkDerivation (self: {
   pname = "mainland-pretty";
-  version = "0.1.3.0";
-  sha256 = "1grfsn066z11737dxdk1bdhyvz9vjxxn6krfgx9bc8jin6n9h6aq";
-  buildDepends = [ srcloc symbol ];
+  version = "0.2.2";
+  sha256 = "0kvn67g2ic46ybgyxpgpzjapwiww9848m9dv8y3xkkl7jd8anpb2";
+  buildDepends = [ srcloc text ];
   meta = {
     homepage = "http://www.eecs.harvard.edu/~mainland/";
     description = "Pretty printing designed for printing source code";
diff --git a/pkgs/development/libraries/haskell/math-functions/default.nix b/pkgs/development/libraries/haskell/math-functions/default.nix
index fda06d718eda..127e888d1104 100644
--- a/pkgs/development/libraries/haskell/math-functions/default.nix
+++ b/pkgs/development/libraries/haskell/math-functions/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "math-functions";
-  version = "0.1.1.1";
-  sha256 = "1256fyd80z6yf61a5a90b3lad7hj0n59cyn741nkdh8p6hqrsi7z";
+  version = "0.1.1.2";
+  sha256 = "09q9647zxvvg7wi81r14qhhy64d1mwgy8kg0zkhdvg4rzw9j669v";
   buildDepends = [ erf vector ];
   meta = {
     homepage = "https://github.com/bos/math-functions";
diff --git a/pkgs/development/libraries/haskell/mime-mail/default.nix b/pkgs/development/libraries/haskell/mime-mail/default.nix
index 37e76284919b..d24bf5719bde 100644
--- a/pkgs/development/libraries/haskell/mime-mail/default.nix
+++ b/pkgs/development/libraries/haskell/mime-mail/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "mime-mail";
-  version = "0.4.1.1";
-  sha256 = "01dshc6ysjkab9hl851948l6k0lwgm1fqmyk97zy7wckb252w6y4";
+  version = "0.4.1.2";
+  sha256 = "01dw9zvgxmwg0jslw14a9kjrmyjvwla8bw40w2426ifdwwxb3ywy";
   buildDepends = [
     base64Bytestring blazeBuilder filepath random text
   ];
diff --git a/pkgs/development/libraries/haskell/monad-logger/default.nix b/pkgs/development/libraries/haskell/monad-logger/default.nix
new file mode 100644
index 000000000000..0a5f52512c69
--- /dev/null
+++ b/pkgs/development/libraries/haskell/monad-logger/default.nix
@@ -0,0 +1,14 @@
+{ cabal, fastLogger, resourcet, text, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "monad-logger";
+  version = "0.2.1";
+  sha256 = "00ssh60rxw7dg1dcfh8kr4mg9p7pvvvmjf9xd8kvxbrb9s3nkc4s";
+  buildDepends = [ fastLogger resourcet text transformers ];
+  meta = {
+    homepage = "https://github.com/kazu-yamamoto/logger";
+    description = "A class of monads which can log messages";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/monads-tf/default.nix b/pkgs/development/libraries/haskell/monads-tf/default.nix
index 53c0a2cad8e9..f51fd8c840ae 100644
--- a/pkgs/development/libraries/haskell/monads-tf/default.nix
+++ b/pkgs/development/libraries/haskell/monads-tf/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "monads-tf";
-  version = "0.1.0.0";
-  sha256 = "1d38rddm9h8crs96zhzj87a3ygix0ipyxy0qcyas88k60fgavg5i";
+  version = "0.1.0.1";
+  sha256 = "19za12iazwrbqwpxy6lkj01dwm921386ryxgdqvcqisn8cj6jm1v";
   buildDepends = [ transformers ];
   meta = {
     description = "Monad classes, using type families";
diff --git a/pkgs/development/libraries/haskell/multiplate/default.nix b/pkgs/development/libraries/haskell/multiplate/default.nix
index ac572b7c59ac..14310f50ef6f 100644
--- a/pkgs/development/libraries/haskell/multiplate/default.nix
+++ b/pkgs/development/libraries/haskell/multiplate/default.nix
@@ -2,12 +2,9 @@
 
 cabal.mkDerivation (self: {
   pname = "multiplate";
-  version = "0.0.1.1";
-  sha256 = "00rxgkvgx1rfvk15gjyyg00vqyg4j24d8d19q6rj07j2mgfvdxw6";
+  version = "0.0.2";
+  sha256 = "02pqfkdcv4fn0pmxphg19b3fiazn4hpphfj8xgp77vpy2lczndsw";
   buildDepends = [ transformers ];
-  patchPhase = ''
-    sed -i -e 's|transformers >= 0.2 && < 0.3|transformers|' multiplate.cabal
-  '';
   meta = {
     homepage = "http://haskell.org/haskellwiki/Multiplate";
     description = "Lightweight generic library for mutually recursive data types";
diff --git a/pkgs/development/libraries/haskell/multirec/default.nix b/pkgs/development/libraries/haskell/multirec/default.nix
index 4f73ffa98aec..a7d7459b4558 100644
--- a/pkgs/development/libraries/haskell/multirec/default.nix
+++ b/pkgs/development/libraries/haskell/multirec/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "multirec";
-  version = "0.7.2";
-  sha256 = "1f715h27x8gz73d2irgl1gw74zd5lyda80nzk9xxwihqqkzvbhsm";
+  version = "0.7.3";
+  sha256 = "0k1wbjsvkl08nwjikflc8yyalk654mf8bvi1rhm28i4na52myi5y";
   noHaddock = true;
   meta = {
     homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/Multirec";
diff --git a/pkgs/development/libraries/haskell/murmur-hash/default.nix b/pkgs/development/libraries/haskell/murmur-hash/default.nix
index 8f1ee9fa6a38..0c4058eb1119 100644
--- a/pkgs/development/libraries/haskell/murmur-hash/default.nix
+++ b/pkgs/development/libraries/haskell/murmur-hash/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "murmur-hash";
-  version = "0.1.0.5";
-  sha256 = "1m7rm57bxkrl4i9fbvmx5m29axyxddrs4ss7plbd19pw3wsvgmr0";
+  version = "0.1.0.6";
+  sha256 = "0wnkwl3a9x0f4rvsj4wf129n03vpw8qk4kzx6vmrapwwb4r80npz";
   meta = {
     homepage = "http://github.com/nominolo/murmur-hash";
     description = "MurmurHash2 implementation for Haskell";
diff --git a/pkgs/development/libraries/haskell/mwc-random/default.nix b/pkgs/development/libraries/haskell/mwc-random/default.nix
index 27dabe57f322..1e2d56147c33 100644
--- a/pkgs/development/libraries/haskell/mwc-random/default.nix
+++ b/pkgs/development/libraries/haskell/mwc-random/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "mwc-random";
-  version = "0.12.0.0";
-  sha256 = "0c1gzf5nkcbfi2zlhh7ly8b4g2gcr0c1b76awk38g9as9qibgivr";
+  version = "0.12.0.1";
+  sha256 = "1sq4yxi231ka8rzwsihqziibs7amvl27ycr018wymm3yz36vsy7c";
   buildDepends = [ primitive time vector ];
   meta = {
     homepage = "https://github.com/bos/mwc-random";
diff --git a/pkgs/development/libraries/haskell/network-conduit/default.nix b/pkgs/development/libraries/haskell/network-conduit/default.nix
index 2c1fc014ade3..d5c04d8e2b8a 100644
--- a/pkgs/development/libraries/haskell/network-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/network-conduit/default.nix
@@ -3,8 +3,8 @@
 
 cabal.mkDerivation (self: {
   pname = "network-conduit";
-  version = "0.4.0.1";
-  sha256 = "0xmfhar4knyn01xyigrp4lymb1vcsahd9v12i6rrqzi10mdcz6bl";
+  version = "0.5.0.2";
+  sha256 = "0ragnwhc8szh680iyzyz6fbprqd3drr8sb970h1p2l4i22srkm39";
   buildDepends = [
     conduit liftedBase monadControl network transformers
   ];
diff --git a/pkgs/development/libraries/haskell/network/2.3.0.14.nix b/pkgs/development/libraries/haskell/network/2.4.0.1.nix
index bbc43abc42bf..e0aa44c38bde 100644
--- a/pkgs/development/libraries/haskell/network/2.3.0.14.nix
+++ b/pkgs/development/libraries/haskell/network/2.4.0.1.nix
@@ -2,11 +2,11 @@
 
 cabal.mkDerivation (self: {
   pname = "network";
-  version = "2.3.0.14";
-  sha256 = "0naqg7ai50m3p093mi342w2z0flaagarf9n9smkn1dqvq8jg75x5";
+  version = "2.4.0.1";
+  sha256 = "00jj3pf2gchkx5wmipm2ijxcmhy37g86ggnp6pb92i5nmb93h1iw";
   buildDepends = [ parsec ];
   meta = {
-    homepage = "http://github.com/haskell/network";
+    homepage = "https://github.com/haskell/network";
     description = "Low-level networking interface";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/newtype/default.nix b/pkgs/development/libraries/haskell/newtype/default.nix
new file mode 100644
index 000000000000..40354c9472ce
--- /dev/null
+++ b/pkgs/development/libraries/haskell/newtype/default.nix
@@ -0,0 +1,12 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "newtype";
+  version = "0.2";
+  sha256 = "0ng4i5r73256gzwl6bw57h0abqixj783c3ggph1hk2wsplx0655p";
+  meta = {
+    description = "A typeclass and set of functions for working with newtypes";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/pandoc/default.nix b/pkgs/development/libraries/haskell/pandoc/default.nix
index c1aabed388b5..a3c1ce94d33a 100644
--- a/pkgs/development/libraries/haskell/pandoc/default.nix
+++ b/pkgs/development/libraries/haskell/pandoc/default.nix
@@ -1,4 +1,4 @@
-{ cabal, base64Bytestring, blazeHtml, citeprocHs
+{ cabal, base64Bytestring, blazeHtml, blazeMarkup, citeprocHs
 , extensibleExceptions, filepath, highlightingKate, HTTP, json, mtl
 , network, pandocTypes, parsec, random, syb, tagsoup, temporary
 , texmath, time, utf8String, xml, zipArchive, zlib
@@ -11,10 +11,13 @@ cabal.mkDerivation (self: {
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    base64Bytestring blazeHtml citeprocHs extensibleExceptions filepath
-    highlightingKate HTTP json mtl network pandocTypes parsec random
-    syb tagsoup temporary texmath time utf8String xml zipArchive zlib
+    base64Bytestring blazeHtml blazeMarkup citeprocHs
+    extensibleExceptions filepath highlightingKate HTTP json mtl
+    network pandocTypes parsec random syb tagsoup temporary texmath
+    time utf8String xml zipArchive zlib
   ];
+  configureFlags = "-fblaze_html_0_5";
+  jailbreak = true;
   meta = {
     homepage = "http://johnmacfarlane.net/pandoc";
     description = "Conversion between markup formats";
diff --git a/pkgs/development/libraries/haskell/path-pieces/default.nix b/pkgs/development/libraries/haskell/path-pieces/default.nix
index d4f52aef58e9..5abc63091464 100644
--- a/pkgs/development/libraries/haskell/path-pieces/default.nix
+++ b/pkgs/development/libraries/haskell/path-pieces/default.nix
@@ -2,11 +2,10 @@
 
 cabal.mkDerivation (self: {
   pname = "path-pieces";
-  version = "0.1.1";
-  sha256 = "17ymk2azgz2c1hwnzqd9xy77hh51mvrgz4zs7lz4ik6rnvvihraz";
+  version = "0.1.2";
+  sha256 = "1cxsa8lq1f2jf86iv6f17nraiav8k2vzjxln1y7z45qhcp1sbbaa";
   buildDepends = [ text time ];
   meta = {
-    homepage = "http://github.com/snoyberg/path-pieces";
     description = "Components of paths";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/pathtype/default.nix b/pkgs/development/libraries/haskell/pathtype/default.nix
index f08ded729689..f0be81e64ae3 100644
--- a/pkgs/development/libraries/haskell/pathtype/default.nix
+++ b/pkgs/development/libraries/haskell/pathtype/default.nix
@@ -1,10 +1,10 @@
-{ cabal, QuickCheck }:
+{ cabal, QuickCheck, time }:
 
 cabal.mkDerivation (self: {
   pname = "pathtype";
-  version = "0.5.2";
-  sha256 = "0rbmq6kzz2l07q9a5k888scpn62hnw2hmzz4ysprhfgdnn5b2cvi";
-  buildDepends = [ QuickCheck ];
+  version = "0.5.3";
+  sha256 = "11plb7xw4j8vjziw1q0ymx33p6185cxd2hqrxw2hgsfzf2b9dvqg";
+  buildDepends = [ QuickCheck time ];
   meta = {
     homepage = "http://code.haskell.org/pathtype";
     description = "Type-safe replacement for System.FilePath etc";
diff --git a/pkgs/development/libraries/haskell/persistent-postgresql/default.nix b/pkgs/development/libraries/haskell/persistent-postgresql/default.nix
index c1022e137491..9b545ad15242 100644
--- a/pkgs/development/libraries/haskell/persistent-postgresql/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-postgresql/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "persistent-postgresql";
-  version = "0.9.1";
-  sha256 = "0kzw4lq4i6lj149aws4ca4z43jmwvcbjr5gf5lk0pwcmzp6chr32";
+  version = "1.0.0";
+  sha256 = "149vv6wd0a85gphwrqcyd66ivdzyy7yc37c99ngq7377fdnszzhn";
   buildDepends = [
     aeson conduit monadControl persistent postgresqlLibpq
     postgresqlSimple text time transformers
diff --git a/pkgs/development/libraries/haskell/persistent-sqlite/default.nix b/pkgs/development/libraries/haskell/persistent-sqlite/default.nix
index 1482eec87e4e..5b3ecd5ebc41 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 = "0.9.0.2";
-  sha256 = "19wmz13k3qbpam2siykczgacgaj48yw4p7iz3y6v8a2z8wha73zb";
+  version = "1.0.0";
+  sha256 = "0ak9x6w9566mjc0ggsqxr69x4w5w7igdxkq6wwm6ysy5cvs8fwc8";
   buildDepends = [
     aeson conduit monadControl persistent text transformers
   ];
diff --git a/pkgs/development/libraries/haskell/persistent-template/default.nix b/pkgs/development/libraries/haskell/persistent-template/default.nix
index a4bbb10a5ddb..8d09c5931708 100644
--- a/pkgs/development/libraries/haskell/persistent-template/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-template/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "persistent-template";
-  version = "0.9.0.2";
-  sha256 = "1x3xn5dxv41hbadb0riss046lcr3k0h4rg6cvk60x8zxblrswabw";
+  version = "1.0.0.2";
+  sha256 = "0skd1gfrxq8mpa2g56b2wn83zw4zca5q2dxyjf6d7k6sh9sc9iz8";
   buildDepends = [ aeson monadControl persistent text transformers ];
   meta = {
     homepage = "http://www.yesodweb.com/book/persistent";
diff --git a/pkgs/development/libraries/haskell/persistent/default.nix b/pkgs/development/libraries/haskell/persistent/default.nix
index 27b7db94fd24..b4010959d770 100644
--- a/pkgs/development/libraries/haskell/persistent/default.nix
+++ b/pkgs/development/libraries/haskell/persistent/default.nix
@@ -1,17 +1,18 @@
 { cabal, aeson, attoparsec, base64Bytestring, blazeHtml
-, blazeMarkup, conduit, liftedBase, monadControl, pathPieces
-, poolConduit, resourcet, sqlite, text, time, transformers
-, transformersBase, unorderedContainers, vector
+, blazeMarkup, conduit, liftedBase, monadControl, monadLogger
+, pathPieces, poolConduit, resourcet, sqlite, text, time
+, transformers, transformersBase, unorderedContainers, vector
 }:
 
 cabal.mkDerivation (self: {
   pname = "persistent";
-  version = "0.9.0.4";
-  sha256 = "1igml2hmc8ga9871dfq4mxqvy639vvlgl3cs48j3b27ci3qwd9jr";
+  version = "1.0.1.2";
+  sha256 = "0gw635mhbn6w8aswiw9j41rdpi7rhnnhay2qgvlc8103s0g5lp9j";
   buildDepends = [
     aeson attoparsec base64Bytestring blazeHtml blazeMarkup conduit
-    liftedBase monadControl pathPieces poolConduit resourcet text time
-    transformers transformersBase unorderedContainers vector
+    liftedBase monadControl monadLogger pathPieces poolConduit
+    resourcet text time transformers transformersBase
+    unorderedContainers vector
   ];
   extraLibraries = [ sqlite ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/pool-conduit/default.nix b/pkgs/development/libraries/haskell/pool-conduit/default.nix
index 73966514e49a..b951b0d435f0 100644
--- a/pkgs/development/libraries/haskell/pool-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/pool-conduit/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "pool-conduit";
-  version = "0.1.0.2";
-  sha256 = "1fs2kskvsvck9n011f2pv0s3mxd2hh71p61dxrskz79mfvks5yky";
+  version = "0.1.0.3";
+  sha256 = "0q95b4770xfd9ancbzbisslqax3pcvg1yf3kkplnvp335ffxbax9";
   buildDepends = [ resourcePool resourcet transformers ];
   meta = {
     homepage = "http://www.yesodweb.com/book/persistent";
diff --git a/pkgs/development/libraries/haskell/postgresql-libpq/default.nix b/pkgs/development/libraries/haskell/postgresql-libpq/default.nix
index 19f729a56414..040c931d1f61 100644
--- a/pkgs/development/libraries/haskell/postgresql-libpq/default.nix
+++ b/pkgs/development/libraries/haskell/postgresql-libpq/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "postgresql-libpq";
-  version = "0.8.2";
-  sha256 = "10i3yc5fxlmnrb8j9p2a9w7h49p3ain36qpshlb34chdk9xh3l7g";
+  version = "0.8.2.1";
+  sha256 = "0fjy451gc9lg3kcglq4s5s3hja8ni3adh4jmxd01kfyvyhwggv4d";
   extraLibraries = [ postgresql ];
   meta = {
     homepage = "http://github.com/lpsmith/postgresql-libpq";
diff --git a/pkgs/development/libraries/haskell/postgresql-simple/default.nix b/pkgs/development/libraries/haskell/postgresql-simple/default.nix
index a142abdbceb8..3e3a1b7dbfd6 100644
--- a/pkgs/development/libraries/haskell/postgresql-simple/default.nix
+++ b/pkgs/development/libraries/haskell/postgresql-simple/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "postgresql-simple";
-  version = "0.1.4.3";
-  sha256 = "0q0mkkd22hji7ns25i86shy1504d0d4mc3fqljpfffm6m36855kc";
+  version = "0.2.4.1";
+  sha256 = "09yszkiahfyidaq9yfk4mda5sf1m8bcqqag51vasybln9k9hhws3";
   buildDepends = [
     attoparsec blazeBuilder blazeTextual postgresqlLibpq text time
     transformers vector
diff --git a/pkgs/development/libraries/haskell/process-extras/default.nix b/pkgs/development/libraries/haskell/process-extras/default.nix
index 16c1b96f0425..1d9cb4f80620 100644
--- a/pkgs/development/libraries/haskell/process-extras/default.nix
+++ b/pkgs/development/libraries/haskell/process-extras/default.nix
@@ -1,10 +1,10 @@
-{ cabal, text }:
+{ cabal, deepseq, text }:
 
 cabal.mkDerivation (self: {
   pname = "process-extras";
-  version = "0.1.0";
-  sha256 = "0bq8nz2iapmngmkx2vlyk4ffw20b34yw5q7h7j6r3zrjzq42prsp";
-  buildDepends = [ text ];
+  version = "0.2.0";
+  sha256 = "0mr4f2v19qz6d6jhffz9gky0ykdqwl8c11adbdm04wm2a3xsvf7g";
+  buildDepends = [ deepseq text ];
   meta = {
     homepage = "https://github.com/davidlazar/process-extras";
     description = "Process extras";
diff --git a/pkgs/development/libraries/haskell/pureMD5/default.nix b/pkgs/development/libraries/haskell/pureMD5/default.nix
index 9501c7ffff1b..8e66b2c3c037 100644
--- a/pkgs/development/libraries/haskell/pureMD5/default.nix
+++ b/pkgs/development/libraries/haskell/pureMD5/default.nix
@@ -2,10 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "pureMD5";
-  version = "2.1.0.3";
-  sha256 = "0whlsb6zq4zcp3wq0bd6pgcsl0namr8b2s6i4l5aykq8v7fx40ii";
-  isLibrary = true;
-  isExecutable = true;
+  version = "2.1.2.1";
+  sha256 = "1zsn949qk95bwx1fbyv84q0lhb4k18bgixl7nivfzsnmhr31fs37";
   buildDepends = [ binary cereal cryptoApi tagged ];
   meta = {
     description = "A Haskell-only implementation of the MD5 digest (hash) algorithm";
diff --git a/pkgs/development/libraries/haskell/pwstore-fast/default.nix b/pkgs/development/libraries/haskell/pwstore-fast/default.nix
index add66a0bed2a..d75823d6025e 100644
--- a/pkgs/development/libraries/haskell/pwstore-fast/default.nix
+++ b/pkgs/development/libraries/haskell/pwstore-fast/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "pwstore-fast";
-  version = "2.2";
-  sha256 = "03b9vr5j6cadvi6w3lr8b9km4jq6jh0vzcmkxzq9qvvly89lx96a";
+  version = "2.3";
+  sha256 = "014l4n00lpg5037fkdwnxnv7xjfc3vlz1dphr7hfbqnjwf1z9ibw";
   buildDepends = [ base64Bytestring cryptohash random ];
   meta = {
     homepage = "https://github.com/PeterScott/pwstore";
diff --git a/pkgs/development/libraries/haskell/reactive-banana-wx/default.nix b/pkgs/development/libraries/haskell/reactive-banana-wx/default.nix
index 702e3383d340..2d46992ddab4 100644
--- a/pkgs/development/libraries/haskell/reactive-banana-wx/default.nix
+++ b/pkgs/development/libraries/haskell/reactive-banana-wx/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "reactive-banana-wx";
-  version = "0.6.0.1";
-  sha256 = "1i674jy8fwirq267vwwdyqa4whxfx3r689rxjbrh9hyicqwcrl24";
+  version = "0.7.0.0";
+  sha256 = "06qln09d57l084nvh1js3k6074vl8yzih5kwfpp43gsy8in2dspx";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ cabalMacosx reactiveBanana wx wxcore ];
diff --git a/pkgs/development/libraries/haskell/reactive-banana/default.nix b/pkgs/development/libraries/haskell/reactive-banana/default.nix
index 1c5cb92d47bd..a80e911eefa7 100644
--- a/pkgs/development/libraries/haskell/reactive-banana/default.nix
+++ b/pkgs/development/libraries/haskell/reactive-banana/default.nix
@@ -1,13 +1,13 @@
-{ cabal, fclabels, hashable, QuickCheck, transformers
-, unorderedContainers, vault
+{ cabal, hashable, QuickCheck, transformers, unorderedContainers
+, vault
 }:
 
 cabal.mkDerivation (self: {
   pname = "reactive-banana";
-  version = "0.6.0.0";
-  sha256 = "1s0ymkqrjnzylxdwqfslf87g7sjqk135hnvgdkzy4dbvvpplq113";
+  version = "0.7.0.1";
+  sha256 = "0nd6j2782x7i12xw480qgk42jkya9qi0xdas15ik6cmg4c9z1dyk";
   buildDepends = [
-    fclabels hashable QuickCheck transformers unorderedContainers vault
+    hashable QuickCheck transformers unorderedContainers vault
   ];
   meta = {
     homepage = "http://haskell.org/haskellwiki/Reactive-banana";
diff --git a/pkgs/development/libraries/haskell/readline/default.nix b/pkgs/development/libraries/haskell/readline/default.nix
index 898b005c4da8..0e65740b47e8 100644
--- a/pkgs/development/libraries/haskell/readline/default.nix
+++ b/pkgs/development/libraries/haskell/readline/default.nix
@@ -16,7 +16,6 @@ cabal.mkDerivation (self : {
     platforms = self.ghc.meta.platforms;
     maintainers = [
       self.stdenv.lib.maintainers.andres
-      self.stdenv.lib.maintainers.simons
     ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/regular/default.nix b/pkgs/development/libraries/haskell/regular/default.nix
index c37c54e8bfa9..8a3e740491cb 100644
--- a/pkgs/development/libraries/haskell/regular/default.nix
+++ b/pkgs/development/libraries/haskell/regular/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "regular";
-  version = "0.3.4";
-  sha256 = "10gfid99xcqv3i9rp4x8hykk91qq3h7b7lxzsl7ii58vmifa4kgq";
+  version = "0.3.4.2";
+  sha256 = "0fshjpbgabdcsa9a4cjmvfrzy7db4s679rprdbrhhfwf5xiszs2s";
   meta = {
     description = "Generic programming library for regular datatypes";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/repa-algorithms/default.nix b/pkgs/development/libraries/haskell/repa-algorithms/default.nix
index d8a1e61c5d71..2385066116a7 100644
--- a/pkgs/development/libraries/haskell/repa-algorithms/default.nix
+++ b/pkgs/development/libraries/haskell/repa-algorithms/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "repa-algorithms";
-  version = "3.2.1.1";
-  sha256 = "19gc2vbkqxysnm0argksn8c3cv7vf30hkdycgv8fdfn0yc95xz0v";
+  version = "3.2.2.1";
+  sha256 = "1g6cf70bmkglx0b92kxazaaap75s55fqpp1g7qiskbj2vzvppsg3";
   buildDepends = [ repa vector ];
   extraLibraries = [ llvm ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/repa-examples/default.nix b/pkgs/development/libraries/haskell/repa-examples/default.nix
index 1f3e66e5e08c..6d87b10f429c 100644
--- a/pkgs/development/libraries/haskell/repa-examples/default.nix
+++ b/pkgs/development/libraries/haskell/repa-examples/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "repa-examples";
-  version = "3.2.1.1";
-  sha256 = "0nbdp3vwg7ha9vhz7f2kys3jxdlwiihxz031cfpkv2si5ci3gy1b";
+  version = "3.2.2.1";
+  sha256 = "17v7ay33fwxjm0ip09jhh979rc6hzfxrrj1hkwj7x4x9gkd79yn7";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [ random repa repaAlgorithms repaIo vector ];
diff --git a/pkgs/development/libraries/haskell/repa-io/default.nix b/pkgs/development/libraries/haskell/repa-io/default.nix
index 293a7bc6d58c..98111abcc149 100644
--- a/pkgs/development/libraries/haskell/repa-io/default.nix
+++ b/pkgs/development/libraries/haskell/repa-io/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "repa-io";
-  version = "3.2.1.1";
-  sha256 = "156amnlqsxhwalnc4nypcd66znv2f8c71d5xi8ja5g8d9f1yg02g";
+  version = "3.2.2.1";
+  sha256 = "0wcg4a8z6qf7jg353b89ci4pzqvb7pnzgb6ml3av6l54n9rg4vsp";
   buildDepends = [ binary bmp repa vector ];
   meta = {
     homepage = "http://repa.ouroborus.net";
diff --git a/pkgs/development/libraries/haskell/repa/default.nix b/pkgs/development/libraries/haskell/repa/default.nix
index b6102d45572b..e0a8e591a5bd 100644
--- a/pkgs/development/libraries/haskell/repa/default.nix
+++ b/pkgs/development/libraries/haskell/repa/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "repa";
-  version = "3.2.1.1";
-  sha256 = "0jzcy3xdlwmcjq1mpfqh0axcgbj3i03nxg7blw2sly8qrgfl0ri1";
+  version = "3.2.2.1";
+  sha256 = "0k8i4gm74gc19kfmg2790x1i6im58nqfblq2fq2bilh6rsj8hxh0";
   buildDepends = [ QuickCheck vector ];
   meta = {
     homepage = "http://repa.ouroborus.net";
diff --git a/pkgs/development/libraries/haskell/repr/default.nix b/pkgs/development/libraries/haskell/repr/default.nix
index 2558f4fbd314..c44735eda00b 100644
--- a/pkgs/development/libraries/haskell/repr/default.nix
+++ b/pkgs/development/libraries/haskell/repr/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "repr";
-  version = "0.4.1.2";
-  sha256 = "09rv23p1hvvfw5wnhiawgrpqgqa4i0d00skyj9z1jj6bfxk5avjs";
+  version = "0.4.1.3";
+  sha256 = "1y1zl81yjc9jrci83bm6bn8hrfqf6x25vxzkhrkydhhwcwqfqaj5";
   buildDepends = [
     baseUnicodeSymbols dstring random stringCombinators
   ];
diff --git a/pkgs/development/libraries/haskell/resource-pool/default.nix b/pkgs/development/libraries/haskell/resource-pool/default.nix
index 7ed81b8d9867..77bc91051937 100644
--- a/pkgs/development/libraries/haskell/resource-pool/default.nix
+++ b/pkgs/development/libraries/haskell/resource-pool/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "resource-pool";
-  version = "0.2.1.0";
-  sha256 = "12akfi906l1nm7h3wvjkzl9bxn74dbv17xw2c1mqgl6sg470d587";
+  version = "0.2.1.1";
+  sha256 = "1ypyzy7mkmpab6rghsizrx6raam3l2acwxm56x7jmcv8s2algi1g";
   buildDepends = [
     hashable monadControl stm time transformers transformersBase vector
   ];
diff --git a/pkgs/development/libraries/haskell/resourcet/default.nix b/pkgs/development/libraries/haskell/resourcet/default.nix
index 7531008d8548..e3190749f1cb 100644
--- a/pkgs/development/libraries/haskell/resourcet/default.nix
+++ b/pkgs/development/libraries/haskell/resourcet/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "resourcet";
-  version = "0.3.3.1";
-  sha256 = "164r2p08j3im4wz5jkadl5pvb0qj02k4f2s3v08lm39a51kygjdl";
+  version = "0.4.0.1";
+  sha256 = "0idyb2xvjk9cbz9gy1gr6sw1mz6v9d8fgk0kw778n6k3h488dw9x";
   buildDepends = [
     liftedBase monadControl mtl transformers transformersBase
   ];
diff --git a/pkgs/development/libraries/haskell/semigroupoids/default.nix b/pkgs/development/libraries/haskell/semigroupoids/default.nix
new file mode 100644
index 000000000000..4ffc3c2badce
--- /dev/null
+++ b/pkgs/development/libraries/haskell/semigroupoids/default.nix
@@ -0,0 +1,14 @@
+{ cabal, comonad, contravariant, semigroups, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "semigroupoids";
+  version = "3.0";
+  sha256 = "0wsax14ck363nby0xrhcpvdzf0pzspayl7gsm0br0lr6ipmpcrag";
+  buildDepends = [ comonad contravariant semigroups transformers ];
+  meta = {
+    homepage = "http://github.com/ekmett/semigroupoids";
+    description = "Haskell 98 semigroupoids: Category sans id";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/semigroups/default.nix b/pkgs/development/libraries/haskell/semigroups/default.nix
index 8ca726c7eff3..240062493e30 100644
--- a/pkgs/development/libraries/haskell/semigroups/default.nix
+++ b/pkgs/development/libraries/haskell/semigroups/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "semigroups";
-  version = "0.8.3.2";
-  sha256 = "0g433l4rinc6r2yr91jnl6wh5b2kn5vsrp08cmznkgaz45lb7n7c";
+  version = "0.8.4.1";
+  sha256 = "05wv5amgg3nqr1if936zl330sv1k4i9p8xzdmgxsmchp4lshyr6n";
   meta = {
     homepage = "http://github.com/ekmett/semigroups/";
     description = "Haskell 98 semigroups";
diff --git a/pkgs/development/libraries/haskell/shakespeare-css/default.nix b/pkgs/development/libraries/haskell/shakespeare-css/default.nix
index 1fd00e5e08a4..54bc170f0691 100644
--- a/pkgs/development/libraries/haskell/shakespeare-css/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare-css/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shakespeare-css";
-  version = "1.0.1.2";
-  sha256 = "055nzffn5zlbwilm8624iaqzxchi247rwpca8adbxai1n2ja9fh7";
+  version = "1.0.1.5";
+  sha256 = "0arfc64wsyn0af34blbjgxxr9xxk9k61p7zy4b7m3ynnpxqh2hzn";
   buildDepends = [ parsec shakespeare text ];
   meta = {
     homepage = "http://www.yesodweb.com/book/shakespearean-templates";
diff --git a/pkgs/development/libraries/haskell/shakespeare-js/default.nix b/pkgs/development/libraries/haskell/shakespeare-js/default.nix
index aa759a240c7c..bed71a7c14ec 100644
--- a/pkgs/development/libraries/haskell/shakespeare-js/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare-js/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shakespeare-js";
-  version = "1.0.0.3";
-  sha256 = "00x5xvjlaivl42q75cvbwbh055kgvk9i8s4y3xcmk4h7lnpfyzd6";
+  version = "1.0.0.6";
+  sha256 = "0ilzg5g2pvq36cv5fhyv9sqz3nnj9gscrc2y4vlqkm6f1ks3gyg8";
   buildDepends = [ shakespeare text ];
   meta = {
     homepage = "http://www.yesodweb.com/book/shakespearean-templates";
diff --git a/pkgs/development/libraries/haskell/shakespeare-text/default.nix b/pkgs/development/libraries/haskell/shakespeare-text/default.nix
index 04f9a1006198..4e9516d107cb 100644
--- a/pkgs/development/libraries/haskell/shakespeare-text/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare-text/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shakespeare-text";
-  version = "1.0.0.2";
-  sha256 = "1dnw6aipx68cd832vs5rwxv2hr7kfk1y83mzd1xl2b3am1g0izfc";
+  version = "1.0.0.5";
+  sha256 = "176yzx43sh0fnxpszn8kximd6i96yf2s374z55kvc1kspf7jk736";
   buildDepends = [ shakespeare text ];
   meta = {
     homepage = "http://www.yesodweb.com/book/shakespearean-templates";
diff --git a/pkgs/development/libraries/haskell/shakespeare/default.nix b/pkgs/development/libraries/haskell/shakespeare/default.nix
index c5fd290f08de..fca3d04a3055 100644
--- a/pkgs/development/libraries/haskell/shakespeare/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shakespeare";
-  version = "1.0.0.2";
-  sha256 = "04nk9l7c5wk3rbkk57s5as30zvsa7wzrsmhdak59i6v30ww22c9f";
+  version = "1.0.1.4";
+  sha256 = "01gw31g75v8r8hjvkv7mxvx7736ib9x9nqpxavpbrfplyxgk2y31";
   buildDepends = [ parsec text ];
   meta = {
     homepage = "http://www.yesodweb.com/book/shakespearean-templates";
diff --git a/pkgs/development/libraries/haskell/shelly/default.nix b/pkgs/development/libraries/haskell/shelly/default.nix
index 2d2b3ca495d2..838e6c30faf4 100644
--- a/pkgs/development/libraries/haskell/shelly/default.nix
+++ b/pkgs/development/libraries/haskell/shelly/default.nix
@@ -3,11 +3,12 @@
 
 cabal.mkDerivation (self: {
   pname = "shelly";
-  version = "0.13.0.1";
-  sha256 = "1iw2hbnr9pwfvz6hhmnmg4h2h58ggppbjy3vs0i08hc33nms1lvy";
+  version = "0.14.1";
+  sha256 = "1cvfak5siysnpms1znra6dk762zp0gv1sam3xfdp67a7ir0hpcpp";
   buildDepends = [
     mtl systemFileio systemFilepath text time unixCompat
   ];
+  jailbreak = true;
   meta = {
     homepage = "https://github.com/yesodweb/Shelly.hs";
     description = "shell-like (systems) programming in Haskell";
diff --git a/pkgs/development/libraries/haskell/silently/default.nix b/pkgs/development/libraries/haskell/silently/default.nix
new file mode 100644
index 000000000000..4fb4323bd170
--- /dev/null
+++ b/pkgs/development/libraries/haskell/silently/default.nix
@@ -0,0 +1,14 @@
+{ cabal, deepseq }:
+
+cabal.mkDerivation (self: {
+  pname = "silently";
+  version = "1.2.0.2";
+  sha256 = "0qcprbjnh351hc9v12gww478qd4pw7wgpyjj1gmkx4mr80w0qmm1";
+  buildDepends = [ deepseq ];
+  meta = {
+    homepage = "https://github.com/trystan/silently";
+    description = "Prevent or capture writing to stdout and other handles";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/simple-sendfile/default.nix b/pkgs/development/libraries/haskell/simple-sendfile/default.nix
index 766e1ef96171..d99762df2b24 100644
--- a/pkgs/development/libraries/haskell/simple-sendfile/default.nix
+++ b/pkgs/development/libraries/haskell/simple-sendfile/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "simple-sendfile";
-  version = "0.2.5";
-  sha256 = "1g9plryh86lc03rf1s8m36wyc2yqp4y6f02viq9c4g1k85rkbs53";
+  version = "0.2.7";
+  sha256 = "0chjcn6j5irzjqid3nhh2ya395aqavcar3ygzd01z96ha1nl4dbw";
   buildDepends = [ network ];
   meta = {
     description = "Cross platform library for the sendfile system call";
diff --git a/pkgs/development/libraries/haskell/skein/default.nix b/pkgs/development/libraries/haskell/skein/default.nix
index 143bf530d097..d6719c7a4517 100644
--- a/pkgs/development/libraries/haskell/skein/default.nix
+++ b/pkgs/development/libraries/haskell/skein/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "skein";
-  version = "0.1.0.7";
-  sha256 = "13yhbp17iq30cjh9fid3l0wkyvpj0f1b1bak9s7gfj96basg9ig2";
+  version = "0.1.0.9";
+  sha256 = "06hx064cpfcd397rmrmfbm7ph38pnxcsn6wij8fcfsx9wq5yq1k1";
   buildDepends = [ cereal cryptoApi tagged ];
   meta = {
     homepage = "https://github.com/meteficha/skein";
diff --git a/pkgs/development/libraries/haskell/snap/core.nix b/pkgs/development/libraries/haskell/snap/core.nix
index 1d51b9d99330..a39442aef07d 100644
--- a/pkgs/development/libraries/haskell/snap/core.nix
+++ b/pkgs/development/libraries/haskell/snap/core.nix
@@ -1,20 +1,18 @@
-{ cabal, attoparsec, attoparsecEnumerator, base16Bytestring
-, blazeBuilder, blazeBuilderEnumerator, bytestringMmap
-, bytestringNums, caseInsensitive, deepseq, dlist, enumerator
-, filepath, HUnit, MonadCatchIOTransformers, mtl, mwcRandom
-, regexPosix, text, time, transformers, unixCompat
+{ cabal, attoparsec, attoparsecEnumerator, blazeBuilder
+, blazeBuilderEnumerator, bytestringMmap, caseInsensitive, deepseq
+, enumerator, filepath, HUnit, MonadCatchIOTransformers, mtl
+, random, regexPosix, text, time, transformers, unixCompat
 , unorderedContainers, vector, zlibEnum
 }:
 
 cabal.mkDerivation (self: {
   pname = "snap-core";
-  version = "0.9.0";
-  sha256 = "1fsjamv9sl19in2ws97v246sbvlnj05rm9dljc0pz7kasawyqsb7";
+  version = "0.9.2.1";
+  sha256 = "18i0hfzc37q12nyp7g4sc87s4xcqz1crjwpnhh4y5fw66glzmq3q";
   buildDepends = [
-    attoparsec attoparsecEnumerator base16Bytestring blazeBuilder
-    blazeBuilderEnumerator bytestringMmap bytestringNums
-    caseInsensitive deepseq dlist enumerator filepath HUnit
-    MonadCatchIOTransformers mtl mwcRandom regexPosix text time
+    attoparsec attoparsecEnumerator blazeBuilder blazeBuilderEnumerator
+    bytestringMmap caseInsensitive deepseq enumerator filepath HUnit
+    MonadCatchIOTransformers mtl random regexPosix text time
     transformers unixCompat unorderedContainers vector zlibEnum
   ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/snap/loader-dynamic.nix b/pkgs/development/libraries/haskell/snap/loader-dynamic.nix
new file mode 100644
index 000000000000..5815496695cc
--- /dev/null
+++ b/pkgs/development/libraries/haskell/snap/loader-dynamic.nix
@@ -0,0 +1,14 @@
+{ cabal, directoryTree, hint, mtl, snapCore, time }:
+
+cabal.mkDerivation (self: {
+  pname = "snap-loader-dynamic";
+  version = "0.9.0";
+  sha256 = "1pbpvi20an077klvha1dflnlxpfb6m81n9d50hjhidf6430cmmhm";
+  buildDepends = [ directoryTree hint mtl snapCore time ];
+  meta = {
+    homepage = "http://snapframework.com/";
+    description = "Snap: A Haskell Web Framework: dynamic loader";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/snap/loader-static.nix b/pkgs/development/libraries/haskell/snap/loader-static.nix
new file mode 100644
index 000000000000..a9dcbf10810e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/snap/loader-static.nix
@@ -0,0 +1,13 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "snap-loader-static";
+  version = "0.9.0";
+  sha256 = "1blchmg0qfng7bw235z1gqkwyi764j78bc29vd5p6xxhmq111ys7";
+  meta = {
+    homepage = "http://snapframework.com/";
+    description = "Snap: A Haskell Web Framework: static loader";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/snap/server.nix b/pkgs/development/libraries/haskell/snap/server.nix
index 20a6af0ba90c..4971fec3b1d8 100644
--- a/pkgs/development/libraries/haskell/snap/server.nix
+++ b/pkgs/development/libraries/haskell/snap/server.nix
@@ -1,19 +1,18 @@
 { cabal, attoparsec, attoparsecEnumerator, binary, blazeBuilder
-, blazeBuilderEnumerator, bytestringNums, caseInsensitive
-, directoryTree, enumerator, filepath, MonadCatchIOTransformers
-, mtl, murmurHash, network, snapCore, text, time, transformers
-, unixCompat, vector, vectorAlgorithms
+, blazeBuilderEnumerator, caseInsensitive, directoryTree
+, enumerator, filepath, MonadCatchIOTransformers, mtl, network
+, snapCore, text, time, transformers, unixCompat
 }:
 
 cabal.mkDerivation (self: {
   pname = "snap-server";
-  version = "0.9.0";
-  sha256 = "12mjy1w6gsnw93bcpsnxnw7kc2v73dfps7gk542iw73lldfhh3va";
+  version = "0.9.2.3";
+  sha256 = "0wl7clzwrd34d32sikd6vkj3pla9yni26mmdsnrjw1s3lq412yqd";
   buildDepends = [
     attoparsec attoparsecEnumerator binary blazeBuilder
-    blazeBuilderEnumerator bytestringNums caseInsensitive directoryTree
-    enumerator filepath MonadCatchIOTransformers mtl murmurHash network
-    snapCore text time transformers unixCompat vector vectorAlgorithms
+    blazeBuilderEnumerator caseInsensitive directoryTree enumerator
+    filepath MonadCatchIOTransformers mtl network snapCore text time
+    transformers unixCompat
   ];
   meta = {
     homepage = "http://snapframework.com/";
diff --git a/pkgs/development/libraries/haskell/snap/snap.nix b/pkgs/development/libraries/haskell/snap/snap.nix
new file mode 100644
index 000000000000..9ff0bceb3c37
--- /dev/null
+++ b/pkgs/development/libraries/haskell/snap/snap.nix
@@ -0,0 +1,28 @@
+{ cabal, aeson, attoparsec, cereal, clientsession, configurator
+, dataLens, dataLensTemplate, directoryTree, filepath, hashable
+, heist, logict, MonadCatchIOTransformers, mtl, mwcRandom
+, pwstoreFast, snapCore, snapServer, stm, syb, text, time
+, transformers, unorderedContainers, utf8String, vector
+, vectorAlgorithms, xmlhtml
+}:
+
+cabal.mkDerivation (self: {
+  pname = "snap";
+  version = "0.9.2.1";
+  sha256 = "0gxnkr6icx2g16w3ab54cqy4x15xj6y9cs6qv8dg0xamm7kyyfhl";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    aeson attoparsec cereal clientsession configurator dataLens
+    dataLensTemplate directoryTree filepath hashable heist logict
+    MonadCatchIOTransformers mtl mwcRandom pwstoreFast snapCore
+    snapServer stm syb text time transformers unorderedContainers
+    utf8String vector vectorAlgorithms xmlhtml
+  ];
+  meta = {
+    homepage = "http://snapframework.com/";
+    description = "Top-level package for the Snap Web Framework";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/socks/default.nix b/pkgs/development/libraries/haskell/socks/default.nix
index eca78fc90df8..d1b4494090cb 100644
--- a/pkgs/development/libraries/haskell/socks/default.nix
+++ b/pkgs/development/libraries/haskell/socks/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "socks";
-  version = "0.4.1";
-  sha256 = "0kapic4rf1cwbqy5f229b69kr1mg9blpr5p5jna8sx5ds2b8jdjn";
+  version = "0.4.2";
+  sha256 = "1nbhx2jjij5kjqa0l68s401ach4yziq6w8mvcv589fcscw212w8r";
   buildDepends = [ cereal network ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-socks";
diff --git a/pkgs/development/libraries/haskell/split/default.nix b/pkgs/development/libraries/haskell/split/default.nix
index 33f927e3d576..e106b2687f53 100644
--- a/pkgs/development/libraries/haskell/split/default.nix
+++ b/pkgs/development/libraries/haskell/split/default.nix
@@ -2,10 +2,9 @@
 
 cabal.mkDerivation (self: {
   pname = "split";
-  version = "0.1.4.3";
-  sha256 = "1i9vmb0zvmhqj6qcbnsapsk9lhsyzznz336c8s7v4sz20s99hsby";
+  version = "0.2.1.1";
+  sha256 = "1zzp4dwf846s74a4lhw2gf4awsk9iblhl5zcg2zccgv1lr4w2dmz";
   meta = {
-    homepage = "http://code.haskell.org/~byorgey/code/split";
     description = "Combinator library for splitting lists";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/srcloc/default.nix b/pkgs/development/libraries/haskell/srcloc/default.nix
index d76309bc7956..2ca9e373101e 100644
--- a/pkgs/development/libraries/haskell/srcloc/default.nix
+++ b/pkgs/development/libraries/haskell/srcloc/default.nix
@@ -1,10 +1,11 @@
-{ cabal, syb, symbol }:
+{ cabal, syb }:
 
 cabal.mkDerivation (self: {
   pname = "srcloc";
-  version = "0.1.2";
-  sha256 = "08awipz6al7jk7d974am5v9fkp87i5dy6d457mx1rv7lczlyhws9";
-  buildDepends = [ syb symbol ];
+  version = "0.2.1";
+  sha256 = "03b0ra5g7mqcjjfnhm84mv4ph454j08pb9dwxrv9zfwk1kiqb2ss";
+  buildDepends = [ syb ];
+  noHaddock = true;
   meta = {
     homepage = "http://www.eecs.harvard.edu/~mainland/";
     description = "Data types for managing source code locations";
diff --git a/pkgs/development/libraries/haskell/statistics/default.nix b/pkgs/development/libraries/haskell/statistics/default.nix
index d977fabb92c8..de1fd4533ef4 100644
--- a/pkgs/development/libraries/haskell/statistics/default.nix
+++ b/pkgs/development/libraries/haskell/statistics/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "statistics";
-  version = "0.10.1.0";
-  sha256 = "0fnpwnhcwxjcm81b9daqdy07cw5qgqa7m2bj6fxxwicpvawcyabc";
+  version = "0.10.2.0";
+  sha256 = "1sv0fhbi52maq9c4ni109m0051a1nndi3ncz9v29mkxqzyckrp9x";
   buildDepends = [
     deepseq erf mathFunctions monadPar mwcRandom primitive vector
     vectorAlgorithms
diff --git a/pkgs/development/libraries/haskell/streamproc/default.nix b/pkgs/development/libraries/haskell/streamproc/default.nix
index 36080e9044e6..fef81d92212f 100644
--- a/pkgs/development/libraries/haskell/streamproc/default.nix
+++ b/pkgs/development/libraries/haskell/streamproc/default.nix
@@ -9,6 +9,9 @@ cabal.mkDerivation (self: {
     description = "Stream Processer Arrow";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/string-combinators/default.nix b/pkgs/development/libraries/haskell/string-combinators/default.nix
index 03587d24d024..bfc38fb07e89 100644
--- a/pkgs/development/libraries/haskell/string-combinators/default.nix
+++ b/pkgs/development/libraries/haskell/string-combinators/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "string-combinators";
-  version = "0.6.0.3";
-  sha256 = "18jawxqvcj7zpvb0wf1zln12s03mp6nglhv5ccywrkb5x0r0557j";
+  version = "0.6.0.4";
+  sha256 = "0r1za5ypx9fz073h1yljjdkxmz0h77vg94bk827ndwkfgzgpzvh7";
   buildDepends = [ baseUnicodeSymbols ];
   meta = {
     homepage = "https://github.com/basvandijk/string-combinators";
diff --git a/pkgs/development/libraries/haskell/strptime/default.nix b/pkgs/development/libraries/haskell/strptime/default.nix
new file mode 100644
index 000000000000..bb30fe71cc37
--- /dev/null
+++ b/pkgs/development/libraries/haskell/strptime/default.nix
@@ -0,0 +1,13 @@
+{ cabal, time }:
+
+cabal.mkDerivation (self: {
+  pname = "strptime";
+  version = "1.0.8";
+  sha256 = "0cd4wzrg9zpnwrfpp6lxs1ib06h0fcsdqd3idsw663wr5lllfgdq";
+  buildDepends = [ time ];
+  meta = {
+    description = "Efficient parsing of LocalTime using a binding to C's strptime, with some extra features (i.e. fractional seconds)";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/stylish-haskell/default.nix b/pkgs/development/libraries/haskell/stylish-haskell/default.nix
new file mode 100644
index 000000000000..f2ebed7cc6a6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/stylish-haskell/default.nix
@@ -0,0 +1,20 @@
+{ cabal, aeson, cmdargs, filepath, haskellSrcExts, mtl, strict, syb
+, yaml
+}:
+
+cabal.mkDerivation (self: {
+  pname = "stylish-haskell";
+  version = "0.5.1.0";
+  sha256 = "0vriwgx7z8azqmci9lq7xlvn0v12p5nj9s6i4jvxsjam538qll94";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    aeson cmdargs filepath haskellSrcExts mtl strict syb yaml
+  ];
+  meta = {
+    homepage = "https://github.com/jaspervdj/stylish-haskell";
+    description = "Haskell code prettifier";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/syb/syb-with-class.nix b/pkgs/development/libraries/haskell/syb/syb-with-class.nix
index 10f9f226f697..c6a85e27df15 100644
--- a/pkgs/development/libraries/haskell/syb/syb-with-class.nix
+++ b/pkgs/development/libraries/haskell/syb/syb-with-class.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "syb-with-class";
-  version = "0.6.1.3";
-  sha256 = "0dmj9ah7az5lckamvm46pff0595p6v4pvzdv0lqq97gjs5i59y9d";
+  version = "0.6.1.4";
+  sha256 = "0fi6m1a4017422kdmj1vvvzbks79jkcldp20h2nb7jsf8zvimfkc";
   meta = {
     description = "Scrap Your Boilerplate With Class";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/system-fileio/default.nix b/pkgs/development/libraries/haskell/system-fileio/default.nix
index 7534ce4a1d13..7b1f7d7bcfd5 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.9";
-  sha256 = "0mfmijwnkp92s58jb51lk0p1p3418f6qskr95phc1zp40yrcw8nx";
+  version = "0.3.10";
+  sha256 = "1f8si6m62nxzj71jgyhxl38szmw8wr3frvgih596vfjxwdhqpkq4";
   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 d4ffbf82d2af..851b28baafea 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.6";
-  sha256 = "0p8lf10b5zn2gw5klpjc397q892cydvnl677srj9rk3lhmsm5jjl";
+  version = "0.4.7";
+  sha256 = "108bmgz6rynkyabr4pws07smdh31syqvzry9cshrw3zd07c3mn89";
   buildDepends = [ deepseq text ];
   meta = {
     homepage = "https://john-millikin.com/software/haskell-filesystem/";
diff --git a/pkgs/development/libraries/haskell/tagged/default.nix b/pkgs/development/libraries/haskell/tagged/default.nix
index dde949686bd2..e435671fe227 100644
--- a/pkgs/development/libraries/haskell/tagged/default.nix
+++ b/pkgs/development/libraries/haskell/tagged/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "tagged";
-  version = "0.4.2.1";
-  sha256 = "0acd0wyyl6nx8i6r5h6smb7apmnmic6kn7ks9pc8nfmhlzhgfk57";
+  version = "0.4.4";
+  sha256 = "0bc88q33pyz4sx429awhxmnjzvmsg7vwwsqi2w7yf8lrmz5ph08x";
   meta = {
     homepage = "http://github.com/ekmett/tagged";
     description = "Haskell 98 phantom types to avoid unsafely passing dummy arguments";
diff --git a/pkgs/development/libraries/haskell/tagsoup/0.10.1nix b/pkgs/development/libraries/haskell/tagsoup/0.10.1nix
deleted file mode 100644
index 462ee658fd25..000000000000
--- a/pkgs/development/libraries/haskell/tagsoup/0.10.1nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ cabal, mtl, network }:
-
-cabal.mkDerivation (self: {
-  pname = "tagsoup";
-  version = "0.10.1";
-  sha256 = "0bssfj5r790yj33q23i0lbj83xahzd9rf4jhqs21vgrpn9fqsynl";
-  isLibrary = true;
-  isExecutable = true;
-  buildDepends = [ mtl network ];
-  meta = {
-    homepage = "http://community.haskell.org/~ndm/tagsoup/";
-    description = "Parsing and extracting information from (possibly malformed) HTML/XML documents";
-    license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
-  };
-})
diff --git a/pkgs/development/libraries/haskell/tagsoup/default.nix b/pkgs/development/libraries/haskell/tagsoup/default.nix
index f6d2dd29dbf0..3258267f0120 100644
--- a/pkgs/development/libraries/haskell/tagsoup/default.nix
+++ b/pkgs/development/libraries/haskell/tagsoup/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "tagsoup";
-  version = "0.12.6";
-  sha256 = "1q1dzsaj131fcvibka72i7si1i0gxkz5d9zl0akd8mbapy5mmlv5";
+  version = "0.12.8";
+  sha256 = "05cm9h80qmxvk7xhlgly9zcmpbsajagspaa8p6k4ddch6q9lj7m3";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ text ];
diff --git a/pkgs/development/libraries/haskell/tagstream-conduit/default.nix b/pkgs/development/libraries/haskell/tagstream-conduit/default.nix
new file mode 100644
index 000000000000..84187bb4c1f4
--- /dev/null
+++ b/pkgs/development/libraries/haskell/tagstream-conduit/default.nix
@@ -0,0 +1,18 @@
+{ cabal, attoparsec, blazeBuilder, blazeBuilderConduit, conduit
+, text
+}:
+
+cabal.mkDerivation (self: {
+  pname = "tagstream-conduit";
+  version = "0.5.3";
+  sha256 = "08g34dbb59mrpj0lym5a0zlygvj7in57nkhbk84kxvggrhl0jndl";
+  buildDepends = [
+    attoparsec blazeBuilder blazeBuilderConduit conduit text
+  ];
+  meta = {
+    homepage = "http://github.com/yihuang/tagstream-conduit";
+    description = "streamlined html tag parser";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/terminfo/default.nix b/pkgs/development/libraries/haskell/terminfo/default.nix
index ea105935cea6..24221912025a 100644
--- a/pkgs/development/libraries/haskell/terminfo/default.nix
+++ b/pkgs/development/libraries/haskell/terminfo/default.nix
@@ -1,10 +1,9 @@
-{ cabal, extensibleExceptions, ncurses }:
+{ cabal, ncurses }:
 
 cabal.mkDerivation (self: {
   pname = "terminfo";
-  version = "0.3.2.3";
-  sha256 = "06y2vx7d4hl55p3p1c7yj2lx8yaw14c5h2qclj8m5xg2wkifnf5f";
-  buildDepends = [ extensibleExceptions ];
+  version = "0.3.2.5";
+  sha256 = "1hadb1gv28c43xq78scalb4zzvbs6im2s0hq7ycrbsdgm6iryhbg";
   extraLibraries = [ ncurses ];
   meta = {
     homepage = "http://code.haskell.org/terminfo";
diff --git a/pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix b/pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix
index 1f1a45d42450..e0615469ab75 100644
--- a/pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix
+++ b/pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "test-framework-quickcheck2";
-  version = "0.2.12.2";
-  sha256 = "08m8y78qy23imcwyqdqla7syxdf91iqrb0j8g6g7gwsg5asjq6ip";
+  version = "0.2.12.3";
+  sha256 = "17pj6b1cclihy203zpb75rkx2djldc9kcj10wqkf5fjmf9vvi0ks";
   buildDepends = [
     extensibleExceptions QuickCheck random testFramework
   ];
diff --git a/pkgs/development/libraries/haskell/test-framework/0.5.nix b/pkgs/development/libraries/haskell/test-framework/0.5.nix
deleted file mode 100644
index d69bd131774a..000000000000
--- a/pkgs/development/libraries/haskell/test-framework/0.5.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ cabal, ansiTerminal, ansiWlPprint, extensibleExceptions, hostname
-, random, regexPosix, time, xml
-}:
-
-cabal.mkDerivation (self: {
-  pname = "test-framework";
-  version = "0.5";
-  sha256 = "19zm9xdhyjhqi2ryd2gkwi7m92s88mmiw1b6b91hjfhfw3c1qlzz";
-  isLibrary = true;
-  isExecutable = true;
-  buildDepends = [
-    ansiTerminal ansiWlPprint extensibleExceptions hostname random
-    regexPosix time xml
-  ];
-  meta = {
-    homepage = "http://batterseapower.github.com/test-framework/";
-    description = "Framework for running and organising tests, with HUnit and QuickCheck support";
-    license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
-  };
-})
diff --git a/pkgs/development/libraries/haskell/test-framework/0.6.nix b/pkgs/development/libraries/haskell/test-framework/default.nix
index 940548945687..14fb53a5a09e 100644
--- a/pkgs/development/libraries/haskell/test-framework/0.6.nix
+++ b/pkgs/development/libraries/haskell/test-framework/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "test-framework";
-  version = "0.6";
-  sha256 = "1ah5q3fwd5dmh2zb4rphdpz7hs39m4g1khvxjjwfzwyd9pxiz723";
+  version = "0.6.1";
+  sha256 = "1rx2c3yckw50vrydswb61ngvp27yxcimm5q6jcyqpn16fpkvxijw";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/texmath/0.4.nix b/pkgs/development/libraries/haskell/texmath/0.4.nix
deleted file mode 100644
index 9d9a4f07586c..000000000000
--- a/pkgs/development/libraries/haskell/texmath/0.4.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ cabal, parsec, syb, xml }:
-
-cabal.mkDerivation (self: {
-  pname = "texmath";
-  version = "0.4";
-  sha256 = "1rvnhqljxkljy8ncpaj8p7b14nvvm6zmiixv13m1zxlcr457j2ai";
-  isLibrary = true;
-  isExecutable = true;
-  buildDepends = [ parsec syb xml ];
-  meta = {
-    homepage = "http://github.com/jgm/texmath";
-    description = "Conversion of LaTeX math formulas to MathML";
-    license = "GPL";
-    platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
-  };
-})
diff --git a/pkgs/development/libraries/haskell/texmath/default.nix b/pkgs/development/libraries/haskell/texmath/default.nix
index 6820b2ed2473..65d9da1548fd 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.0.6";
-  sha256 = "0wxpz9vsgi4lfgjz5w96pn2r2jdflkvb4yd06nxshimxdr51974k";
+  version = "0.6.1.1";
+  sha256 = "06yk19jvpj7di1njybk1hdc7hp6c9h3yb4gvi7ljna6wqrh6zqaz";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ parsec syb xml ];
diff --git a/pkgs/development/libraries/haskell/text/0.11.2.2.nix b/pkgs/development/libraries/haskell/text/0.11.2.3.nix
index a4dc9f882773..e1f0c6ea72d3 100644
--- a/pkgs/development/libraries/haskell/text/0.11.2.2.nix
+++ b/pkgs/development/libraries/haskell/text/0.11.2.3.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "text";
-  version = "0.11.2.2";
-  sha256 = "0ch0fiwjwkpiwamfxxbcka2gp6lbwpqcv7pmik6qm850163f4i33";
+  version = "0.11.2.3";
+  sha256 = "0jrl3qbi91gkcnws9crsa59jsmmbjy91fwvl07qka9m48nq3f9rm";
   buildDepends = [ deepseq ];
   meta = {
     homepage = "https://github.com/bos/text";
diff --git a/pkgs/development/libraries/haskell/th-orphans/default.nix b/pkgs/development/libraries/haskell/th-orphans/default.nix
new file mode 100644
index 000000000000..da14adfe339b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/th-orphans/default.nix
@@ -0,0 +1,14 @@
+{ cabal, thLift }:
+
+cabal.mkDerivation (self: {
+  pname = "th-orphans";
+  version = "0.6";
+  sha256 = "1ablf4c8vp9kzvr75ngl5yz3ip5klk6zmq7bcqcvks758b9c6qgj";
+  buildDepends = [ thLift ];
+  noHaddock = true;
+  meta = {
+    description = "Orphan instances for TH datatypes";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/threadmanager/default.nix b/pkgs/development/libraries/haskell/threadmanager/default.nix
index 776a2422265a..dc058844247d 100644
--- a/pkgs/development/libraries/haskell/threadmanager/default.nix
+++ b/pkgs/development/libraries/haskell/threadmanager/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "threadmanager";
-  version = "0.1.4";
-  sha256 = "0p35ihdc9k9svzbwiszll5i53km09rvw5mqshph273fby7nvni9i";
+  version = "0.1.5";
+  sha256 = "0jdr0rrpx7frnh0a2vibg0170w48wvn6gv8imkiqiz6y6481ny5p";
   meta = {
     homepage = "http://github.com/bsl/threadmanager";
     description = "Simple thread management";
diff --git a/pkgs/development/libraries/haskell/threads/default.nix b/pkgs/development/libraries/haskell/threads/default.nix
new file mode 100644
index 000000000000..8f5008032f6b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/threads/default.nix
@@ -0,0 +1,14 @@
+{ cabal, baseUnicodeSymbols, stm }:
+
+cabal.mkDerivation (self: {
+  pname = "threads";
+  version = "0.5.0.1";
+  sha256 = "0amyaxa70q6v021nab6v3cfqc40mwj5dr2fwla9d4bm6ppmq6lyy";
+  buildDepends = [ baseUnicodeSymbols stm ];
+  meta = {
+    homepage = "https://github.com/basvandijk/threads";
+    description = "Fork threads and wait for their result";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/tls/default.nix b/pkgs/development/libraries/haskell/tls/default.nix
index 9a89c082959d..5f5452044df6 100644
--- a/pkgs/development/libraries/haskell/tls/default.nix
+++ b/pkgs/development/libraries/haskell/tls/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "tls";
-  version = "0.9.6";
-  sha256 = "0bcmq7pvdbgnc8ls949m3x9sxj5svsrdpagjns1iq575jg38jx3g";
+  version = "0.9.11";
+  sha256 = "1a0kfwhmlwl581yr63g2plw9680ry0030rqm3bxhvnjbb2xac3k9";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/unbound/default.nix b/pkgs/development/libraries/haskell/unbound/default.nix
index 466285d3e55e..a90381202e1a 100644
--- a/pkgs/development/libraries/haskell/unbound/default.nix
+++ b/pkgs/development/libraries/haskell/unbound/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "unbound";
-  version = "0.4.1";
-  sha256 = "1fryjs5byyqha945qy8vyfpq4fzjmnh0jc01wzvk6ri292qipsyn";
+  version = "0.4.1.1";
+  sha256 = "0niv8mm4zjkndj0g32dgr32177dfp647hi32hqzwiis77vcfvdzb";
   buildDepends = [ mtl RepLib transformers ];
   meta = {
     homepage = "http://code.google.com/p/replib/";
diff --git a/pkgs/development/libraries/haskell/unix-compat/default.nix b/pkgs/development/libraries/haskell/unix-compat/default.nix
index 85e6bb815337..7c5cb6c63c4f 100644
--- a/pkgs/development/libraries/haskell/unix-compat/default.nix
+++ b/pkgs/development/libraries/haskell/unix-compat/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "unix-compat";
-  version = "0.3.0.1";
-  sha256 = "09y2iih741l4jpi83c15zap94phfms4mavzg04r9rjgbav0ns2c4";
+  version = "0.4.0.0";
+  sha256 = "0xhhvqdjcmcyavf0g2q2sjghj2h4si1ijg4nc4s8kidbd957z9r8";
   meta = {
     homepage = "http://github.com/jystic/unix-compat";
     description = "Portable POSIX-compatibility layer";
diff --git a/pkgs/development/libraries/haskell/unix-time/default.nix b/pkgs/development/libraries/haskell/unix-time/default.nix
new file mode 100644
index 000000000000..61d8f86189d9
--- /dev/null
+++ b/pkgs/development/libraries/haskell/unix-time/default.nix
@@ -0,0 +1,12 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "unix-time";
+  version = "0.1.2";
+  sha256 = "146m4b93bla0pbf76bmff6f3aq9zx60cwy58mkqa0a4dyndd3pid";
+  meta = {
+    description = "Unix time parser/formatter and utilities";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/unordered-containers/default.nix b/pkgs/development/libraries/haskell/unordered-containers/default.nix
index 21ec0c92b06f..8ac2372d1c0d 100644
--- a/pkgs/development/libraries/haskell/unordered-containers/default.nix
+++ b/pkgs/development/libraries/haskell/unordered-containers/default.nix
@@ -2,10 +2,11 @@
 
 cabal.mkDerivation (self: {
   pname = "unordered-containers";
-  version = "0.2.1.0";
-  sha256 = "0zk2ip32h6faqa1pfmiw242fdarr63lds4j828ix7qhrjifwiw4p";
+  version = "0.2.2.1";
+  sha256 = "0ny8w7xw0ch3yp0fnskzygz61b72ln5s5ccsdlcqpp29cvfar6zy";
   buildDepends = [ deepseq hashable ];
   meta = {
+    homepage = "https://github.com/tibbe/unordered-containers";
     description = "Efficient hashing-based container types";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/urlencoded/default.nix b/pkgs/development/libraries/haskell/urlencoded/default.nix
new file mode 100644
index 000000000000..45891bb45b12
--- /dev/null
+++ b/pkgs/development/libraries/haskell/urlencoded/default.nix
@@ -0,0 +1,17 @@
+{ cabal, mtl, network, split }:
+
+cabal.mkDerivation (self: {
+  pname = "urlencoded";
+  version = "0.3.0.1";
+  sha256 = "1i6r05d5libcilngsa6illcazfv6g4rhibzgk8c2jsjq9cg53ihz";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ mtl network split ];
+  jailbreak = true;
+  meta = {
+    homepage = "https://github.com/pheaver/urlencoded";
+    description = "Generate or process x-www-urlencoded data";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/uu-parsinglib/default.nix b/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
index 8e2ad732aa27..1bb3cb76dac9 100644
--- a/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
+++ b/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "uu-parsinglib";
-  version = "2.7.3.2";
-  sha256 = "0z53s9wvk57g3d9x3iswjydwm7nw5vfrj7k08v75fw6rwldkal60";
+  version = "2.7.3.4";
+  sha256 = "1f582cr17qxwrhxx6pdv503ldm4ccbnbv9pcksibgparfyc25bnv";
   buildDepends = [ ListLike time ];
   meta = {
     homepage = "http://www.cs.uu.nl/wiki/bin/view/HUT/ParserCombinators";
diff --git a/pkgs/development/libraries/haskell/vacuum/default.nix b/pkgs/development/libraries/haskell/vacuum/default.nix
index 764a55402e7e..8506e5805022 100644
--- a/pkgs/development/libraries/haskell/vacuum/default.nix
+++ b/pkgs/development/libraries/haskell/vacuum/default.nix
@@ -2,13 +2,13 @@
 
 cabal.mkDerivation (self: {
   pname = "vacuum";
-  version = "1.0.0.2";
-  sha256 = "1amlzd89952fvw1sbajf9kv3f2s2i6xbqs1zjxw442achg465y7i";
+  version = "2.1.0.1";
+  sha256 = "0gzh5v9mr0mgz9hxjnm8n3jcl2702wad7qaqaar1zc95lkabpf65";
   extraLibraries = [ ghcPaths ];
   meta = {
-    homepage = "http://web.archive.org/web/20100410115820/http://moonpatio.com/vacuum/";
-    description = "Extract graph representations of ghc heap values";
-    license = "LGPL";
+    homepage = "http://thoughtpolice.github.com/vacuum";
+    description = "Graph representation of the GHC heap";
+    license = self.stdenv.lib.licenses.gpl3;
     platforms = self.ghc.meta.platforms;
     maintainers = [ self.stdenv.lib.maintainers.andres ];
   };
diff --git a/pkgs/development/libraries/haskell/vault/default.nix b/pkgs/development/libraries/haskell/vault/default.nix
index 84fd27a36426..4d74884a1a7f 100644
--- a/pkgs/development/libraries/haskell/vault/default.nix
+++ b/pkgs/development/libraries/haskell/vault/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "vault";
-  version = "0.2.0.0";
-  sha256 = "1hv87kvi2bwf9ff8mhjzdf8rvqhk1xpschzs1x3swadj1kc9f1sv";
+  version = "0.2.0.1";
+  sha256 = "027wgbnmdnp98f0wvc9xsfh175n7rq8m2j9i7j1c5vxwgi61dqxq";
   buildDepends = [ hashable unorderedContainers ];
   meta = {
     homepage = "https://github.com/HeinrichApfelmus/vault";
diff --git a/pkgs/development/libraries/haskell/vcs-revision/default.nix b/pkgs/development/libraries/haskell/vcs-revision/default.nix
new file mode 100644
index 000000000000..a1cd2783931f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/vcs-revision/default.nix
@@ -0,0 +1,12 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "vcs-revision";
+  version = "0.0.1";
+  sha256 = "1zfv9b02ml8622kz755azhi4ajyxrqniiachd92znfrry4n8z1mn";
+  meta = {
+    description = "Facilities for accessing the version control revision of the current directory";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/vector-algorithms/default.nix b/pkgs/development/libraries/haskell/vector-algorithms/default.nix
index f98cc09918a5..2704942b3609 100644
--- a/pkgs/development/libraries/haskell/vector-algorithms/default.nix
+++ b/pkgs/development/libraries/haskell/vector-algorithms/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "vector-algorithms";
-  version = "0.5.4";
-  sha256 = "0j16jmnmgksbzsq2vvxjmciywi91clak77i6zjjghvn9dpmnsmv2";
+  version = "0.5.4.1";
+  sha256 = "00dikjmy1pyyn3mmq7sjnmd91xcg7q3n3yiil3dqi1fgr0787xng";
   buildDepends = [ primitive vector ];
   meta = {
     homepage = "http://code.haskell.org/~dolio/";
diff --git a/pkgs/development/libraries/haskell/vector-space-points/default.nix b/pkgs/development/libraries/haskell/vector-space-points/default.nix
new file mode 100644
index 000000000000..1debf3f0f713
--- /dev/null
+++ b/pkgs/development/libraries/haskell/vector-space-points/default.nix
@@ -0,0 +1,13 @@
+{ cabal, newtype, vectorSpace }:
+
+cabal.mkDerivation (self: {
+  pname = "vector-space-points";
+  version = "0.1.2.0";
+  sha256 = "19azl6g14rsxs0qbik6x637qw9jv4xl01w65xd0xh7833mypmj6d";
+  buildDepends = [ newtype vectorSpace ];
+  meta = {
+    description = "A type for points, as distinct from vectors";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/vector-space/default.nix b/pkgs/development/libraries/haskell/vector-space/default.nix
index d24dc536da1f..2957959f005b 100644
--- a/pkgs/development/libraries/haskell/vector-space/default.nix
+++ b/pkgs/development/libraries/haskell/vector-space/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "vector-space";
-  version = "0.8.1";
-  sha256 = "0khbi46i9q585nhxhf842wsdifcj1i1dqm84hj0r36474rfh55z5";
+  version = "0.8.2";
+  sha256 = "09gndxxscyc9w85fih370gag8yd1xbfg94nxkwdvhzvbkns9k2ad";
   buildDepends = [ Boolean MemoTrie NumInstances ];
   meta = {
     homepage = "http://haskell.org/haskellwiki/vector-space";
diff --git a/pkgs/development/libraries/haskell/void/default.nix b/pkgs/development/libraries/haskell/void/default.nix
index 8c129568479d..e19a0450c027 100644
--- a/pkgs/development/libraries/haskell/void/default.nix
+++ b/pkgs/development/libraries/haskell/void/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "void";
-  version = "0.5.6";
-  sha256 = "168xp4jxrlhxdw47y3xyr3hi57xharsrll8521a1phh8vzrbpi4z";
+  version = "0.5.8";
+  sha256 = "1iqwndpc77i4i1977z7lxj20viplr2f5pwxwa2kibyhy556bs27z";
   buildDepends = [ semigroups ];
   meta = {
     homepage = "http://github.com/ekmett/void";
diff --git a/pkgs/development/libraries/haskell/wai-app-static/default.nix b/pkgs/development/libraries/haskell/wai-app-static/default.nix
index 0653352d87e7..f7f858b17f2d 100644
--- a/pkgs/development/libraries/haskell/wai-app-static/default.nix
+++ b/pkgs/development/libraries/haskell/wai-app-static/default.nix
@@ -1,15 +1,17 @@
-{ cabal, base64Bytestring, blazeBuilder, blazeHtml, cryptohash
-, fileEmbed, httpDate, httpTypes, text, time, transformers
+{ cabal, base64Bytestring, blazeBuilder, blazeHtml, blazeMarkup
+, cereal, cryptoConduit, cryptohash, fileEmbed, httpDate, httpTypes
+, mimeTypes, systemFileio, systemFilepath, text, time, transformers
 , unixCompat, wai
 }:
 
 cabal.mkDerivation (self: {
   pname = "wai-app-static";
-  version = "1.2.0.4";
-  sha256 = "06j9k93kzzzqznp61kwclvnnfas77jry4x93r5jn5n22198szcyi";
+  version = "1.3.0.2";
+  sha256 = "0z49s4kc365q3brfkgdnja964h3h3yc3wypccnkj71dl11n040zq";
   buildDepends = [
-    base64Bytestring blazeBuilder blazeHtml cryptohash fileEmbed
-    httpDate httpTypes text time transformers unixCompat wai
+    base64Bytestring blazeBuilder blazeHtml blazeMarkup cereal
+    cryptoConduit cryptohash fileEmbed httpDate httpTypes mimeTypes
+    systemFileio systemFilepath text time transformers unixCompat wai
   ];
   meta = {
     homepage = "http://www.yesodweb.com/book/wai";
diff --git a/pkgs/development/libraries/haskell/wai-extra/default.nix b/pkgs/development/libraries/haskell/wai-extra/default.nix
index 3c808dd430b7..7c460681fcbd 100644
--- a/pkgs/development/libraries/haskell/wai-extra/default.nix
+++ b/pkgs/development/libraries/haskell/wai-extra/default.nix
@@ -1,17 +1,18 @@
 { cabal, ansiTerminal, blazeBuilder, blazeBuilderConduit
-, caseInsensitive, conduit, dataDefault, fastLogger, httpTypes
-, network, resourcet, stringsearch, text, time, transformers, wai
-, zlibConduit
+, caseInsensitive, conduit, dataDefault, dateCache, fastLogger
+, httpTypes, network, resourcet, stringsearch, text, time
+, transformers, void, wai, waiLogger, zlibConduit
 }:
 
 cabal.mkDerivation (self: {
   pname = "wai-extra";
-  version = "1.2.0.5";
-  sha256 = "0m9zdn6cdh2j7bwsf17225rdn7jwj7iy97khbd9g7p9rv1lpdain";
+  version = "1.3.0.2";
+  sha256 = "0w69wjfbzgg523n0rcs700qx0gsdhvlr0qjvqg1hppvi188llpwl";
   buildDepends = [
     ansiTerminal blazeBuilder blazeBuilderConduit caseInsensitive
-    conduit dataDefault fastLogger httpTypes network resourcet
-    stringsearch text time transformers wai zlibConduit
+    conduit dataDefault dateCache fastLogger httpTypes network
+    resourcet stringsearch text time transformers void wai waiLogger
+    zlibConduit
   ];
   meta = {
     homepage = "http://github.com/yesodweb/wai";
diff --git a/pkgs/development/libraries/haskell/wai-logger/default.nix b/pkgs/development/libraries/haskell/wai-logger/default.nix
index d943e2495e6a..16f02f877462 100644
--- a/pkgs/development/libraries/haskell/wai-logger/default.nix
+++ b/pkgs/development/libraries/haskell/wai-logger/default.nix
@@ -1,14 +1,14 @@
-{ cabal, blazeBuilder, byteorder, caseInsensitive, fastLogger
-, httpTypes, network, time, wai
+{ cabal, blazeBuilder, byteorder, caseInsensitive, dateCache
+, fastLogger, httpTypes, network, wai
 }:
 
 cabal.mkDerivation (self: {
   pname = "wai-logger";
-  version = "0.1.4";
-  sha256 = "1rvcqq4jlkcjavy8a3vf61jclwpnjmj6cp3whrzwvay9b1qfsck3";
+  version = "0.3.0";
+  sha256 = "132jcjyqr7bxcfi7v9mapvx8dci0lz8rv91mgnrzgvpac542c2yq";
   buildDepends = [
-    blazeBuilder byteorder caseInsensitive fastLogger httpTypes network
-    time wai
+    blazeBuilder byteorder caseInsensitive dateCache fastLogger
+    httpTypes network wai
   ];
   meta = {
     description = "A logging system for WAI";
diff --git a/pkgs/development/libraries/haskell/wai-test/default.nix b/pkgs/development/libraries/haskell/wai-test/default.nix
new file mode 100644
index 000000000000..0c9b8eb2eb81
--- /dev/null
+++ b/pkgs/development/libraries/haskell/wai-test/default.nix
@@ -0,0 +1,19 @@
+{ cabal, blazeBuilder, blazeBuilderConduit, caseInsensitive
+, conduit, cookie, httpTypes, HUnit, text, transformers, wai
+}:
+
+cabal.mkDerivation (self: {
+  pname = "wai-test";
+  version = "1.3.0";
+  sha256 = "15y0aw5c4sh1mns4ss39l0wsxrd1b6yq6m5r638x23zl6y7d9j40";
+  buildDepends = [
+    blazeBuilder blazeBuilderConduit caseInsensitive conduit cookie
+    httpTypes HUnit text transformers wai
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/book/wai";
+    description = "Unit test framework (built on HUnit) for WAI applications";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/wai/default.nix b/pkgs/development/libraries/haskell/wai/default.nix
index 2e0f723aba0d..56421b213d5b 100644
--- a/pkgs/development/libraries/haskell/wai/default.nix
+++ b/pkgs/development/libraries/haskell/wai/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "wai";
-  version = "1.2.0.3";
-  sha256 = "0pl6zc29z58vpvsn37siiyr89mxc4khsnmzv2408i5vhlv2ks01p";
+  version = "1.3.0.1";
+  sha256 = "0z6byx71awhjb7fycz1ixsyzzlsrv1i69qwjrfzh9y5wnbchj9yl";
   buildDepends = [
     blazeBuilder conduit httpTypes network text transformers vault
   ];
diff --git a/pkgs/development/libraries/haskell/warp/default.nix b/pkgs/development/libraries/haskell/warp/default.nix
index 0a3791a7f8df..b0c3c7205b3a 100644
--- a/pkgs/development/libraries/haskell/warp/default.nix
+++ b/pkgs/development/libraries/haskell/warp/default.nix
@@ -1,16 +1,16 @@
 { cabal, blazeBuilder, blazeBuilderConduit, caseInsensitive
-, conduit, httpTypes, liftedBase, network, networkConduit
-, simpleSendfile, transformers, unixCompat, wai
+, conduit, hashable, httpTypes, liftedBase, network, networkConduit
+, simpleSendfile, transformers, unixCompat, void, wai
 }:
 
 cabal.mkDerivation (self: {
   pname = "warp";
-  version = "1.2.2";
-  sha256 = "0jja9fjjd0f54awbx2p865w1mxj75qxy17skj1sc83i5ck32n6f0";
+  version = "1.3.1.2";
+  sha256 = "11y1dwzvfhr4fhlh5j2ydwj4d3r92qm55rn9xwbfxmr0vmvm78b5";
   buildDepends = [
-    blazeBuilder blazeBuilderConduit caseInsensitive conduit httpTypes
-    liftedBase network networkConduit simpleSendfile transformers
-    unixCompat wai
+    blazeBuilder blazeBuilderConduit caseInsensitive conduit hashable
+    httpTypes liftedBase network networkConduit simpleSendfile
+    transformers unixCompat void wai
   ];
   meta = {
     homepage = "http://github.com/yesodweb/wai";
diff --git a/pkgs/development/libraries/haskell/wl-pprint-text/default.nix b/pkgs/development/libraries/haskell/wl-pprint-text/default.nix
index 0db3ef08060b..083f269255a0 100644
--- a/pkgs/development/libraries/haskell/wl-pprint-text/default.nix
+++ b/pkgs/development/libraries/haskell/wl-pprint-text/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "wl-pprint-text";
-  version = "1.0.0.0";
-  sha256 = "1zvjsbn98g0lja2jj00d7mvqjq4rik7v7wsy5655wibmy0hbll90";
+  version = "1.1.0.0";
+  sha256 = "18xgsrxg20sk18m9dwds6161vl4hgdp052qbb0cg9jqy50vhddis";
   buildDepends = [ text ];
   meta = {
     description = "A Wadler/Leijen Pretty Printer for Text values";
diff --git a/pkgs/development/libraries/haskell/xml-conduit/default.nix b/pkgs/development/libraries/haskell/xml-conduit/default.nix
index 9e2d0c59a522..3f2e6e6af4fa 100644
--- a/pkgs/development/libraries/haskell/xml-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/xml-conduit/default.nix
@@ -1,16 +1,17 @@
 { cabal, attoparsec, attoparsecConduit, blazeBuilder
-, blazeBuilderConduit, conduit, dataDefault, failure, monadControl
-, resourcet, systemFilepath, text, transformers, xmlTypes
+, blazeBuilderConduit, blazeHtml, blazeMarkup, conduit, dataDefault
+, failure, monadControl, resourcet, systemFilepath, text
+, transformers, xmlTypes
 }:
 
 cabal.mkDerivation (self: {
   pname = "xml-conduit";
-  version = "0.7.0.3";
-  sha256 = "143cd8mjxckknlza327cmn63prw89ypnw32bk762s72vbqm1xvvv";
+  version = "1.0.3.1";
+  sha256 = "1000gbdwfp98s44kkp793lmqrdm046phwxcvlik20b2485ml8yrj";
   buildDepends = [
     attoparsec attoparsecConduit blazeBuilder blazeBuilderConduit
-    conduit dataDefault failure monadControl resourcet systemFilepath
-    text transformers xmlTypes
+    blazeHtml blazeMarkup conduit dataDefault failure monadControl
+    resourcet systemFilepath text transformers xmlTypes
   ];
   meta = {
     homepage = "http://github.com/snoyberg/xml";
diff --git a/pkgs/development/libraries/haskell/xml-types/default.nix b/pkgs/development/libraries/haskell/xml-types/default.nix
index 080096b6f333..48bd32b7c897 100644
--- a/pkgs/development/libraries/haskell/xml-types/default.nix
+++ b/pkgs/development/libraries/haskell/xml-types/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "xml-types";
-  version = "0.3.2";
-  sha256 = "1aihs1n6hxq6frvxdqjqxsfwi2w2c2qx4bjypimjpjxf6d6n1396";
+  version = "0.3.3";
+  sha256 = "0jvchgzmqsnc0dax73nh7wa7x6n07qnl4wr1d58v21rlbqcklgcn";
   buildDepends = [ text ];
   meta = {
     homepage = "https://john-millikin.com/software/haskell-xml/";
diff --git a/pkgs/development/libraries/haskell/xmlhtml/default.nix b/pkgs/development/libraries/haskell/xmlhtml/default.nix
new file mode 100644
index 000000000000..adbf68655caf
--- /dev/null
+++ b/pkgs/development/libraries/haskell/xmlhtml/default.nix
@@ -0,0 +1,17 @@
+{ cabal, blazeBuilder, blazeHtml, blazeMarkup, parsec, text
+, unorderedContainers
+}:
+
+cabal.mkDerivation (self: {
+  pname = "xmlhtml";
+  version = "0.2.0.3";
+  sha256 = "03bwsm3dazc01cwndlm92nr35a4fllsxx17rp72d2vnf1571a1vb";
+  buildDepends = [
+    blazeBuilder blazeHtml blazeMarkup parsec text unorderedContainers
+  ];
+  meta = {
+    description = "XML parser and renderer with HTML 5 quirks mode";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yaml/default.nix b/pkgs/development/libraries/haskell/yaml/default.nix
index e3228d039c11..52460c8246be 100644
--- a/pkgs/development/libraries/haskell/yaml/default.nix
+++ b/pkgs/development/libraries/haskell/yaml/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yaml";
-  version = "0.7.0.3";
-  sha256 = "1w9xsg48np3wi859jdg5vm3dxihbdrbvd1i364lsfblbmry964mr";
+  version = "0.8.0.2";
+  sha256 = "14blcsylbf9wx4yw8fsk8ddjvg844x97xfc1h7r4ls9l9ar7k95j";
   buildDepends = [
     aeson attoparsec conduit resourcet text transformers
     unorderedContainers vector
diff --git a/pkgs/development/libraries/haskell/yesod-auth/default.nix b/pkgs/development/libraries/haskell/yesod-auth/default.nix
index 3b92570989e8..ac5c87d76132 100644
--- a/pkgs/development/libraries/haskell/yesod-auth/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-auth/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-auth";
-  version = "1.0.2.1";
-  sha256 = "0fkk9vyb8z9hr77d771f74ka6s95fbzk5zw359cx8m2d5rc9fqvr";
+  version = "1.1.1.1";
+  sha256 = "1ryq3jxcgb55ijjmcv0j234n9nay2ianifb59gz9akyv0sc3zcl9";
   buildDepends = [
     aeson authenticate blazeHtml blazeMarkup hamlet httpConduit
     liftedBase mimeMail persistent persistentTemplate pureMD5
diff --git a/pkgs/development/libraries/haskell/yesod-core/default.nix b/pkgs/development/libraries/haskell/yesod-core/default.nix
index 17d3eb4427e0..c0bef5018ba0 100644
--- a/pkgs/development/libraries/haskell/yesod-core/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-core/default.nix
@@ -1,21 +1,22 @@
 { cabal, aeson, blazeBuilder, blazeHtml, blazeMarkup
 , caseInsensitive, cereal, clientsession, conduit, cookie, failure
-, fastLogger, hamlet, httpTypes, liftedBase, monadControl, parsec
-, pathPieces, random, resourcet, shakespeare, shakespeareCss
-, shakespeareI18n, shakespeareJs, text, time, transformers
-, transformersBase, vector, wai, waiExtra, waiLogger, yesodRoutes
+, fastLogger, hamlet, httpTypes, liftedBase, monadControl
+, monadLogger, parsec, pathPieces, random, resourcet, shakespeare
+, shakespeareCss, shakespeareI18n, shakespeareJs, text, time
+, transformers, transformersBase, vector, wai, waiExtra
+, yesodRoutes
 }:
 
 cabal.mkDerivation (self: {
   pname = "yesod-core";
-  version = "1.0.1.3";
-  sha256 = "1rdj622zi12v9d7cxkn8w4q43k8c6gfz8wrpmvya76gqmg6h2gil";
+  version = "1.1.2";
+  sha256 = "1pgwqghj9kc9kh90515nswz5ssbmm2y6miw5j6sx4dha0xncqvgs";
   buildDepends = [
     aeson blazeBuilder blazeHtml blazeMarkup caseInsensitive cereal
     clientsession conduit cookie failure fastLogger hamlet httpTypes
-    liftedBase monadControl parsec pathPieces random resourcet
-    shakespeare shakespeareCss shakespeareI18n shakespeareJs text time
-    transformers transformersBase vector wai waiExtra waiLogger
+    liftedBase monadControl monadLogger parsec pathPieces random
+    resourcet shakespeare shakespeareCss shakespeareI18n shakespeareJs
+    text time transformers transformersBase vector wai waiExtra
     yesodRoutes
   ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/yesod-default/default.nix b/pkgs/development/libraries/haskell/yesod-default/default.nix
index d801d36e9c41..c3dce8ca7d38 100644
--- a/pkgs/development/libraries/haskell/yesod-default/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-default/default.nix
@@ -1,15 +1,15 @@
-{ cabal, networkConduit, shakespeareCss, shakespeareJs, text
-, transformers, unorderedContainers, wai, waiExtra, warp, yaml
-, yesodCore
+{ cabal, dataDefault, hamlet, networkConduit, shakespeareCss
+, shakespeareJs, text, transformers, unorderedContainers, wai
+, waiExtra, warp, yaml, yesodCore
 }:
 
 cabal.mkDerivation (self: {
   pname = "yesod-default";
-  version = "1.0.1.1";
-  sha256 = "0jv7fxrgh2x93saz0vrba0mzafq3wmq85b3idcsny4d8mgj6ngv0";
+  version = "1.1.0";
+  sha256 = "124407a0in474l71jja04ds0xh84ac5i3jv62iswxlcp1y9f52bq";
   buildDepends = [
-    networkConduit shakespeareCss shakespeareJs text transformers
-    unorderedContainers wai waiExtra warp yaml yesodCore
+    dataDefault hamlet networkConduit shakespeareCss shakespeareJs text
+    transformers unorderedContainers wai waiExtra warp yaml yesodCore
   ];
   meta = {
     homepage = "http://www.yesodweb.com/";
diff --git a/pkgs/development/libraries/haskell/yesod-form/default.nix b/pkgs/development/libraries/haskell/yesod-form/default.nix
index 512c0ca1b6d1..a562897cf146 100644
--- a/pkgs/development/libraries/haskell/yesod-form/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-form/default.nix
@@ -1,18 +1,20 @@
-{ cabal, blazeBuilder, blazeHtml, blazeMarkup, dataDefault
-, emailValidate, hamlet, network, persistent, shakespeareCss
-, shakespeareJs, text, time, transformers, wai, xssSanitize
-, yesodCore, yesodPersistent
+{ cabal, attoparsec, blazeBuilder, blazeHtml, blazeMarkup
+, cryptoApi, dataDefault, emailValidate, hamlet, network
+, persistent, shakespeareCss, shakespeareJs, text, time
+, transformers, wai, xssSanitize, yesodCore, yesodPersistent
 }:
 
 cabal.mkDerivation (self: {
   pname = "yesod-form";
-  version = "1.0.0.4";
-  sha256 = "1wc7nrsf7r9zs24q2amy1zij5sfycs1arnrf8g769c7gihjhdqfd";
+  version = "1.1.3";
+  sha256 = "1af1wdzwbw1a2bf991pgx52d9dap3cqpsr5h4yy4mid6p980slrb";
   buildDepends = [
-    blazeBuilder blazeHtml blazeMarkup dataDefault emailValidate hamlet
-    network persistent shakespeareCss shakespeareJs text time
-    transformers wai xssSanitize yesodCore yesodPersistent
+    attoparsec blazeBuilder blazeHtml blazeMarkup cryptoApi dataDefault
+    emailValidate hamlet network persistent shakespeareCss
+    shakespeareJs text time transformers wai xssSanitize yesodCore
+    yesodPersistent
   ];
+  noHaddock = true;
   meta = {
     homepage = "http://www.yesodweb.com/";
     description = "Form handling support for Yesod Web Framework";
diff --git a/pkgs/development/libraries/haskell/yesod-json/default.nix b/pkgs/development/libraries/haskell/yesod-json/default.nix
index b91ca879afad..4a2a2346a873 100644
--- a/pkgs/development/libraries/haskell/yesod-json/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-json/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-json";
-  version = "1.0.1.0";
-  sha256 = "0baxyy4mddgpfzm4scfizz8pi6y7a135kjwfhss51m6xx36s84zl";
+  version = "1.1.0";
+  sha256 = "13dbajs51nyrvch13xz05h6jrnhc097s0iykw5z43x05a6xwj20n";
   buildDepends = [
     aeson attoparsecConduit blazeBuilder conduit safe shakespeareJs
     text transformers vector wai waiExtra yesodCore yesodRoutes
diff --git a/pkgs/development/libraries/haskell/yesod-persistent/default.nix b/pkgs/development/libraries/haskell/yesod-persistent/default.nix
index c6cf7f22159a..a094f4722336 100644
--- a/pkgs/development/libraries/haskell/yesod-persistent/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-persistent/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-persistent";
-  version = "1.0.0.1";
-  sha256 = "1v4ip4g9x2a5byl0a9a1raad3aba7hs618vx7fnc5n2ajjji84mx";
+  version = "1.1.0";
+  sha256 = "0c8cvc2gy9ixa0h79ycnyi86indny2i86g5xcg30a2rvc4mjbaaj";
   buildDepends = [
     persistent persistentTemplate transformers yesodCore
   ];
diff --git a/pkgs/development/libraries/haskell/yesod-routes/default.nix b/pkgs/development/libraries/haskell/yesod-routes/default.nix
index 8b3a685105a7..9a801d62df83 100644
--- a/pkgs/development/libraries/haskell/yesod-routes/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-routes/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-routes";
-  version = "1.0.1.2";
-  sha256 = "15ar99ywxrsd6pgqwmql7vg801n53l3jw0s2iynddq9jjl4yqpf7";
+  version = "1.1.0";
+  sha256 = "0r0a3s1dngqp2vcq0cdsbqf1lsyhygj2x4a93csr2iyn244zgxnx";
   buildDepends = [ pathPieces text vector ];
   meta = {
     homepage = "http://www.yesodweb.com/";
diff --git a/pkgs/development/libraries/haskell/yesod-static/default.nix b/pkgs/development/libraries/haskell/yesod-static/default.nix
index 72a1fed8db95..ddd0f24d9af4 100644
--- a/pkgs/development/libraries/haskell/yesod-static/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-static/default.nix
@@ -1,15 +1,16 @@
 { cabal, base64Bytestring, cereal, conduit, cryptoConduit
-, cryptohash, fileEmbed, httpTypes, text, transformers, unixCompat
-, wai, waiAppStatic, yesodCore
+, cryptohash, fileEmbed, httpTypes, systemFilepath, text
+, transformers, unixCompat, wai, waiAppStatic, yesodCore
 }:
 
 cabal.mkDerivation (self: {
   pname = "yesod-static";
-  version = "1.0.0.3";
-  sha256 = "1nl7cf8yw5akldlrkamnkbypwnj7g1pjkx7nkmlc38jbx58izf5d";
+  version = "1.1.0.1";
+  sha256 = "1hlg32bhmhc5npd0bm317mssrddf7jzhwr0z3ns0dpiynz9mh0vy";
   buildDepends = [
     base64Bytestring cereal conduit cryptoConduit cryptohash fileEmbed
-    httpTypes text transformers unixCompat wai waiAppStatic yesodCore
+    httpTypes systemFilepath text transformers unixCompat wai
+    waiAppStatic yesodCore
   ];
   meta = {
     homepage = "http://www.yesodweb.com/";
diff --git a/pkgs/development/libraries/haskell/yesod-test/default.nix b/pkgs/development/libraries/haskell/yesod-test/default.nix
new file mode 100644
index 000000000000..5c88b652f868
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yesod-test/default.nix
@@ -0,0 +1,22 @@
+{ cabal, attoparsec, blazeHtml, blazeMarkup, caseInsensitive, hspec
+, htmlConduit, httpTypes, HUnit, monadControl, network, persistent
+, poolConduit, text, transformers, wai, waiTest, xmlConduit
+, xmlTypes
+}:
+
+cabal.mkDerivation (self: {
+  pname = "yesod-test";
+  version = "0.3.0.1";
+  sha256 = "0dfdvhk3mspqhqicjapqvjzmi0hpd2641zb1899fk6mank8yfz0m";
+  buildDepends = [
+    attoparsec blazeHtml blazeMarkup caseInsensitive hspec htmlConduit
+    httpTypes HUnit monadControl network persistent poolConduit text
+    transformers wai waiTest xmlConduit xmlTypes
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com";
+    description = "integration testing for WAI/Yesod Applications";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yesod/default.nix b/pkgs/development/libraries/haskell/yesod/default.nix
index 256c398cfe4c..10d8013f1b31 100644
--- a/pkgs/development/libraries/haskell/yesod/default.nix
+++ b/pkgs/development/libraries/haskell/yesod/default.nix
@@ -1,23 +1,25 @@
 { cabal, attoparsec, blazeBuilder, blazeHtml, blazeMarkup, Cabal
-, fastLogger, filepath, hamlet, httpTypes, monadControl, parsec
-, shakespeareCss, shakespeareJs, shakespeareText, text, time
-, transformers, unixCompat, wai, waiExtra, waiLogger, warp
-, yesodAuth, yesodCore, yesodForm, yesodJson, yesodPersistent
+, filepath, hamlet, httpTypes, monadControl, parsec, shakespeareCss
+, shakespeareJs, shakespeareText, systemFileio, systemFilepath, tar
+, text, time, transformers, unixCompat, unorderedContainers, wai
+, waiExtra, warp, yaml, yesodAuth, yesodCore, yesodForm, yesodJson
+, yesodPersistent, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "yesod";
-  version = "1.0.1.6";
-  sha256 = "0w5k5bcv50fjpyja6ydknk78dk50swx6b0myhizj8rcf851xga43";
+  version = "1.1.1";
+  sha256 = "0666g2ap6ignqif9vwis2bnsb45jb19llw9z20nsfs0q3wj8ykn3";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
-    attoparsec blazeBuilder blazeHtml blazeMarkup Cabal fastLogger
-    filepath hamlet httpTypes monadControl parsec shakespeareCss
-    shakespeareJs shakespeareText text time transformers unixCompat wai
-    waiExtra waiLogger warp yesodAuth yesodCore yesodForm yesodJson
-    yesodPersistent
+    attoparsec blazeBuilder blazeHtml blazeMarkup Cabal filepath hamlet
+    httpTypes monadControl parsec shakespeareCss shakespeareJs
+    shakespeareText systemFileio systemFilepath tar text time
+    transformers unixCompat unorderedContainers wai waiExtra warp yaml
+    yesodAuth yesodCore yesodForm yesodJson yesodPersistent zlib
   ];
+  jailbreak = true;
   meta = {
     homepage = "http://www.yesodweb.com/";
     description = "Creation of type-safe, RESTful web applications";
diff --git a/pkgs/development/libraries/haskell/zipper/default.nix b/pkgs/development/libraries/haskell/zipper/default.nix
index bf27fa78162a..5ff1da422efa 100644
--- a/pkgs/development/libraries/haskell/zipper/default.nix
+++ b/pkgs/development/libraries/haskell/zipper/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "zipper";
-  version = "0.4.1";
-  sha256 = "19xgvqznf200akzf19mp40fg75c0gzpp38wq3n671nm90r08lgvi";
+  version = "0.4.2";
+  sha256 = "1r8092amq5w9gl5szycl1r7wx87xnmkcapdzcwfa4c3pvxrhjy44";
   buildDepends = [ multirec ];
   meta = {
     homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/Multirec";
diff --git a/pkgs/development/libraries/haskell/zlib-bindings/default.nix b/pkgs/development/libraries/haskell/zlib-bindings/default.nix
index d5557eae3906..c78ca3f68ee9 100644
--- a/pkgs/development/libraries/haskell/zlib-bindings/default.nix
+++ b/pkgs/development/libraries/haskell/zlib-bindings/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "zlib-bindings";
-  version = "0.1.0.1";
-  sha256 = "0r1hjmmxb9kz5fvfrjvzjd0pnhb87vyldqvb73yjq35s16bj4vlc";
+  version = "0.1.1.1";
+  sha256 = "1r502gskbm36smd5nj0f53ildv9rkm3k79zmwdmrskg6z1n7jmfh";
   buildDepends = [ zlib ];
   meta = {
     homepage = "http://github.com/snoyberg/zlib-bindings";
diff --git a/pkgs/development/libraries/haskell/zlib-conduit/default.nix b/pkgs/development/libraries/haskell/zlib-conduit/default.nix
index e8b635643220..728d2d202f1a 100644
--- a/pkgs/development/libraries/haskell/zlib-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/zlib-conduit/default.nix
@@ -1,10 +1,10 @@
-{ cabal, conduit, transformers, zlibBindings }:
+{ cabal, conduit, transformers, void, zlibBindings }:
 
 cabal.mkDerivation (self: {
   pname = "zlib-conduit";
-  version = "0.4.0.2";
-  sha256 = "1pwgyawc308rm1xcvzfz96ar11mngx79any7lragffj6f132qlm7";
-  buildDepends = [ conduit transformers zlibBindings ];
+  version = "0.5.0.1";
+  sha256 = "138wag9fjq3hx48nzr0nvvclcyjwcd0ykjbbgms2h9msmz9vflk5";
+  buildDepends = [ conduit transformers void zlibBindings ];
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
     description = "Streaming compression/decompression via conduits";
diff --git a/pkgs/development/libraries/haskell/zlib-enum/default.nix b/pkgs/development/libraries/haskell/zlib-enum/default.nix
index d4ec47410fc8..f799194c0f69 100644
--- a/pkgs/development/libraries/haskell/zlib-enum/default.nix
+++ b/pkgs/development/libraries/haskell/zlib-enum/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "zlib-enum";
-  version = "0.2.2.1";
-  sha256 = "02ava6h40bqfmby33683nxasfw5fmrgfvbx6kqgz1gqz5921gjx9";
+  version = "0.2.3";
+  sha256 = "0lr72h4wlclav0p0j5wwaxifq97lw7rh3612lva73fg45akl9di1";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ enumerator transformers zlibBindings ];
diff --git a/pkgs/development/libraries/haskell/zlib/0.5.3.3.nix b/pkgs/development/libraries/haskell/zlib/0.5.3.3.nix
index a151a45c0e71..bba9e1a13fe4 100644
--- a/pkgs/development/libraries/haskell/zlib/0.5.3.3.nix
+++ b/pkgs/development/libraries/haskell/zlib/0.5.3.3.nix
@@ -5,6 +5,7 @@ cabal.mkDerivation (self: {
   version = "0.5.3.3";
   sha256 = "1hrq34w9y8m7nahvrdpnkh9rdb4jycpcpv9ix6qrxijvbz2vdbg2";
   extraLibraries = [ zlib ];
+  jailbreak = true;
   meta = {
     description = "Compression and decompression in the gzip and zlib formats";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/zlib/0.5.4.0.nix b/pkgs/development/libraries/haskell/zlib/0.5.4.0.nix
new file mode 100644
index 000000000000..abeed295e035
--- /dev/null
+++ b/pkgs/development/libraries/haskell/zlib/0.5.4.0.nix
@@ -0,0 +1,14 @@
+{ cabal, zlib }:
+
+cabal.mkDerivation (self: {
+  pname = "zlib";
+  version = "0.5.4.0";
+  sha256 = "18hc4wr8brzbl9qapjbjyb9kyqrznv2xbw7rv1a6k8i3392ilxv1";
+  extraLibraries = [ zlib ];
+  meta = {
+    description = "Compression and decompression in the gzip and zlib formats";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/libraries/hunspell/default.nix b/pkgs/development/libraries/hunspell/default.nix
index 9f3650c21558..c5243bc63930 100644
--- a/pkgs/development/libraries/hunspell/default.nix
+++ b/pkgs/development/libraries/hunspell/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, ncurses, readline }:
 
 stdenv.mkDerivation rec {
-  name = "hunspell-1.2.12";
+  name = "hunspell-1.3.2";
 
   src = fetchurl {
     url = "mirror://sf/hunspell/${name}.tar.gz";
-    sha256 = "0s8fh8zanhks6bgkb7dzwscy97fb6wl4ymvjqz7188fz29qjlnaz";
+    sha256 = "1gfxdajnqk2civkshkfjx5ldg7kjdgj76m5khpsbjk4lxsjd9vdl";
   };
 
   propagatedBuildInputs = [ ncurses readline ];
diff --git a/pkgs/development/libraries/java/rhino/default.nix b/pkgs/development/libraries/java/rhino/default.nix
index 800ae7ba7185..3e666c9fa234 100644
--- a/pkgs/development/libraries/java/rhino/default.nix
+++ b/pkgs/development/libraries/java/rhino/default.nix
@@ -5,7 +5,7 @@ let
   options = "-Dbuild.compiler=gcj";   # FIXME: We assume GCJ here.
 
   xbeans  = fetchurl {
-    url = "http://www.apache.org/dist/xmlbeans/binaries/xmlbeans-2.2.0.zip";
+    url = "http://archive.apache.org/dist/xmlbeans/binaries/xmlbeans-2.2.0.zip";
     sha256 = "1pb08d9j81d0wz5wj31idz198iwhqb7mch872n08jh1354rjlqwk";
   };
 in
diff --git a/pkgs/development/libraries/kdevplatform/default.nix b/pkgs/development/libraries/kdevplatform/default.nix
index 10aa4c02028b..367987d5dee4 100644
--- a/pkgs/development/libraries/kdevplatform/default.nix
+++ b/pkgs/development/libraries/kdevplatform/default.nix
@@ -2,11 +2,11 @@
   gettext, pkgconfig, apr, aprutil, boost, qjson }:
 
 stdenv.mkDerivation rec {
-  name = "kdevplatform-1.3.0";
+  name = "kdevplatform-1.3.1";
 
   src = fetchurl {
-    url = "mirror://kde/stable/kdevelop/4.3.0/src/${name}.tar.bz2";
-    sha256 = "0afka8999csyj8hbgmcsbn8h2by04v7n8k4mrwkl0b79crdvwbcd";
+    url = "mirror://kde/stable/kdevelop/4.3.1/src/${name}.tar.bz2";
+    sha256 = "1fiqwabw5ilhw1jwvvr743dym12y3kxrs3zlqahz57yncdsglcl6";
   };
 
   propagatedBuildInputs = [ kdelibs qt4 phonon ];
diff --git a/pkgs/development/libraries/libcdr/default.nix b/pkgs/development/libraries/libcdr/default.nix
new file mode 100644
index 000000000000..823a4839e80d
--- /dev/null
+++ b/pkgs/development/libraries/libcdr/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, libwpg, libwpd, lcms2, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "libcdr-0.0.8";
+
+  src = fetchurl {
+    url = "http://dev-www.libreoffice.org/src/${name}.tar.xz";
+    sha256 = "117a8gp29xs3kin6kaisb3frsx8dwrsjgs4wq4y5hjqprzy6lwz0";
+  };
+
+  buildInputs = [ libwpg libwpd lcms2 ];
+
+  buildNativeInputs = [ pkgconfig ];
+
+  CXXFLAGS="--std=gnu++0x"; # For c++11 constants in lcms2.h
+
+  meta = {
+    description = "A library providing ability to interpret and import Corel Draw drawings into various applications";
+    homepage = http://www.freedesktop.org/wiki/Software/libcdr;
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/libextractor/default.nix b/pkgs/development/libraries/libextractor/default.nix
index d2cbdf841b00..a6b670eedb62 100644
--- a/pkgs/development/libraries/libextractor/default.nix
+++ b/pkgs/development/libraries/libextractor/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
      libgsf rpm
      pkgconfig
    ] ++ stdenv.lib.optionals gtkSupport [ glib gtk ]
-     ++ stdenv.lib.optionals videoSupport [ ffmpeg gtkSupport ];
+     ++ stdenv.lib.optionals videoSupport [ ffmpeg libmpeg2 ];
 
   configureFlags = "--disable-ltdl-install "
     + "--with-ltdl-include=${libtool}/include "
diff --git a/pkgs/development/libraries/libexttextcat/default.nix b/pkgs/development/libraries/libexttextcat/default.nix
new file mode 100644
index 000000000000..a75fada7484a
--- /dev/null
+++ b/pkgs/development/libraries/libexttextcat/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "libexttextcat-3.3.1";
+
+  src = fetchurl {
+    url = "http://dev-www.libreoffice.org/src/libexttextcat/${name}.tar.xz";
+    sha256 = "1a7ablpipfbiyhl6wsraj5z8pj3qkqgnrms73wzsqhpbyww334h4";
+  };
+
+  patches = [ ./memory-leaks.patch ];
+
+  meta = {
+    description = "An N-Gram-Based Text Categorization library primarily intended for language guessing";
+    homepage = http://www.freedesktop.org/wiki/Software/libexttextcat;
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/libexttextcat/memory-leaks.patch b/pkgs/development/libraries/libexttextcat/memory-leaks.patch
new file mode 100644
index 000000000000..0be4ffdc93a7
--- /dev/null
+++ b/pkgs/development/libraries/libexttextcat/memory-leaks.patch
@@ -0,0 +1,37 @@
+Combined upstream commits 980592386f23db8b0dc84c434805cb167d0cc091 and
+5ef4ad86ec934282cba891922ec2d13784da3354.
+diff -u b/src/textcat.c b/src/textcat.c
+--- b/src/textcat.c
++++ b/src/textcat.c
+@@ -212,8 +212,6 @@
+                                 sizeof(char) * (tmp_size + 1));
+             if (tmp == NULL)
+             {
+-                free(finger_print_file_name);
+-                finger_print_file_name_size = 0;
+                 goto BAILOUT;
+             }
+             else
+@@ -226,10 +224,7 @@
+         strcat(finger_print_file_name, segment[0]);
+ 
+         if (fp_Read(h->fprint[h->size], finger_print_file_name, 400) == 0)
+-        {
+-            textcat_Done(h);
+             goto BAILOUT;
+-        }
+         h->fprint_disable[h->size] = 0xF0;  /* 0xF0 is the code for enabled
+                                                languages, 0x0F is for disabled 
+                                              */
+@@ -242,9 +237,10 @@
+     return h;
+ 
+   BAILOUT:
++    free(finger_print_file_name);
+     fclose(fp);
++    textcat_Done(h);
+     return NULL;
+-
+ }
+ 
+ extern candidate_t *textcat_GetClassifyFullOutput(void *handle)
diff --git a/pkgs/development/libraries/libgpg-error/default.nix b/pkgs/development/libraries/libgpg-error/default.nix
index 255057b5134a..f7052b90b42c 100644
--- a/pkgs/development/libraries/libgpg-error/default.nix
+++ b/pkgs/development/libraries/libgpg-error/default.nix
@@ -1,6 +1,6 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl, bash }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   name = "libgpg-error-1.10";
 
   src = fetchurl {
@@ -26,3 +26,16 @@ stdenv.mkDerivation rec {
     platforms = stdenv.lib.platforms.all;
   };
 }
+
+//
+
+(stdenv.lib.optionalAttrs stdenv.isSunOS {
+  # For some reason, /bin/sh on OpenIndiana leads to this at the end of the
+  # `config.status' run:
+  #   ./config.status[1401]: shift: (null): bad number
+  # (See <http://hydra.nixos.org/build/2931046/nixlog/1/raw>.)
+  # Thus, re-run it with Bash.
+  postConfigure =
+    '' ${bash}/bin/sh config.status
+    '';
+}))
diff --git a/pkgs/development/libraries/libical/default.nix b/pkgs/development/libraries/libical/default.nix
index 54dfc1aecc62..80f3a1b8e71f 100644
--- a/pkgs/development/libraries/libical/default.nix
+++ b/pkgs/development/libraries/libical/default.nix
@@ -1,10 +1,13 @@
-{stdenv, fetchurl, perl}:
+{stdenv, fetchsvn, perl, cmake}:
 
 stdenv.mkDerivation rec {
-  name = "libical-0.48";
-  src = fetchurl {
-    url = "mirror://sourceforge/freeassociation/${name}.tar.gz";
-    sha256 = "1w6znkh0xxhbcm717mbzfva9ycrqs2lajhng391i7pghaw3qprra";
+  name = "libical-0.48-p20120623";
+  src = fetchsvn {
+    url = "https://freeassociation.svn.sourceforge.net/svnroot/freeassociation/trunk/libical";
+    rev = "1130";
+    sha256 = "56caf19abdf44807fda75a67ef0886319551e53c4e4ece4da4fc862e34c64e1a";
   };
-  buildNativeInputs = [ perl ];
+  buildNativeInputs = [ perl cmake ];
+
+  patches = [ ./respect-env-tzdir.patch ];
 }
diff --git a/pkgs/development/libraries/libical/respect-env-tzdir.patch b/pkgs/development/libraries/libical/respect-env-tzdir.patch
new file mode 100644
index 000000000000..12da8d41c7b5
--- /dev/null
+++ b/pkgs/development/libraries/libical/respect-env-tzdir.patch
@@ -0,0 +1,32 @@
+* Remove /usr/*/zoneinfo from the default search path
+* Respect $TZDIR
+diff --git a/src/libical/icaltz-util.c b/src/libical/icaltz-util.c
+index adf7598..d2fd5c8 100644
+--- a/src/libical/icaltz-util.c
++++ b/src/libical/icaltz-util.c
+@@ -108,7 +108,7 @@ typedef struct
+ 
+ static int r_pos [] = {1, 2, 3, -2, -1};
+ 
+-static char *search_paths [] = {"/usr/share/zoneinfo","/usr/lib/zoneinfo","/etc/zoneinfo","/usr/share/lib/zoneinfo"};
++static char *search_paths [] = {"/etc/zoneinfo"};
+ static char *zdir = NULL;
+ 
+ #define NUM_SEARCH_PATHS (sizeof (search_paths)/ sizeof (search_paths [0]))
+@@ -195,6 +195,16 @@ set_zonedir (void)
+ 	const char *fname = ZONES_TAB_SYSTEM_FILENAME;
+ 	int i;	
+ 
++	const char *env_tzdir = strdup (getenv ("TZDIR"));
++	if (env_tzdir) {
++		sprintf (file_path, "%s/%s", env_tzdir, fname);
++		if (!access (file_path, F_OK|R_OK)) {
++			zdir = env_tzdir;
++			return;
++		}
++		free (env_tzdir);
++	}
++
+ 	for (i = 0;i < NUM_SEARCH_PATHS; i++) {
+ 		sprintf (file_path, "%s/%s", search_paths [i], fname);
+ 		if (!access (file_path, F_OK|R_OK)) {
diff --git a/pkgs/development/libraries/libjpeg-turbo/default.nix b/pkgs/development/libraries/libjpeg-turbo/default.nix
index f7135e4018d8..eb86a1d3ff23 100644
--- a/pkgs/development/libraries/libjpeg-turbo/default.nix
+++ b/pkgs/development/libraries/libjpeg-turbo/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, nasm }: 
+{ stdenv, fetchurl, nasm }:
+
+stdenv.mkDerivation rec {
+  name = "libjpeg-turbo-1.2.1";
 
-stdenv.mkDerivation {
-  name = "libjpeg-turbo-1.1.1";
-  
   src = fetchurl {
-    url = mirror://sourceforge/libjpeg-turbo/libjpeg-turbo-1.1.1.tar.gz;
-    sha256 = "553b1f5a968fb9efc089623ed99be2aa6bc21586be92eb04848489c91a63f1e2";
+    url = "mirror://sourceforge/libjpeg-turbo/${name}.tar.gz";
+    sha256 = "0w1pj3j7hkx6irkrxlcmz53l94s6im0wml1v36nysb50akq26cyb";
   };
 
   buildInputs = [ nasm ];
-  
+
   meta = {
     homepage = http://libjpeg-turbo.virtualgl.org/;
     description = "A faster (using SIMD) libjpeg implementation";
diff --git a/pkgs/development/libraries/libktorrent/default.nix b/pkgs/development/libraries/libktorrent/default.nix
index 1f50f1b976bf..083fbf13c817 100644
--- a/pkgs/development/libraries/libktorrent/default.nix
+++ b/pkgs/development/libraries/libktorrent/default.nix
@@ -2,8 +2,8 @@
 , phonon, libgcrypt }:
 
 let
-  mp_ = "1.3";
-  version = "1.${mp_}";
+  mp_ = "2.1";
+  version = "1.${mp_}-2";
   version4 = "4.${mp_}";
 in
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://ktorrent.org/downloads/${version4}/${name}.tar.bz2";
-    sha256 = "0mvvx6mdfy0pyhk6lwwmmbd3pd2ai6n2rf5kdjqhpkm9wbrck85n";
+    sha256 = "1b4ibkba27ivvjsh5s93xwlcgzvvwsgl6mcd8g96d1al05n2ccw9";
   };
 
   buildNativeInputs = [ cmake automoc4 gettext ];
diff --git a/pkgs/development/libraries/liblockfile/default.nix b/pkgs/development/libraries/liblockfile/default.nix
new file mode 100644
index 000000000000..2db90845f699
--- /dev/null
+++ b/pkgs/development/libraries/liblockfile/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  _name   = "liblockfile";
+  version = "1.09";
+  name    = "${_name}-${version}";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/libl/${_name}/${_name}_${version}.orig.tar.gz";
+    sha256 = "0zqvbxls1632wqfhv4v3q2djzlz9391h0wdgsvhnaqrr0nx9x5qn";
+  };
+
+  preConfigure = ''
+    sed -i -e 's/install -g [^ ]* /install /' Makefile.in
+  '';
+
+  preInstall = ''
+    mkdir -p $out/{bin,lib,include,man} $out/man/man{1,3}
+  '';
+
+
+  meta = {
+    description = "Liblockfile is a shared library with NFS-safe locking functions.";
+    homepage = http://packages.debian.org/unstable/libs/liblockfile1;
+    license = "GPLv2+";
+
+    maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/libopus/default.nix b/pkgs/development/libraries/libopus/default.nix
new file mode 100644
index 000000000000..d4c90ee33fbe
--- /dev/null
+++ b/pkgs/development/libraries/libopus/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, fixedPoint ? false }:
+
+stdenv.mkDerivation rec {
+  name = "libopus-1.0.1";
+  
+  src = fetchurl {
+    url = "http://downloads.xiph.org/releases/opus/opus-1.0.1.tar.gz";
+    sha256 = "1vs133z6c03xi1a7b8bkqxlb6ipwchawwb52z1lgvh1amwy5ryl0";
+  };
+
+  configureFlags = stdenv.lib.optionalString fixedPoint "--enable-fixed-point";
+
+  meta = {
+    description = "Open, royalty-free, highly versatile audio codec";
+    license = "BSD";
+    homepage = http://www.opus-codec.org/;
+  };
+}
diff --git a/pkgs/development/libraries/libre/default.nix b/pkgs/development/libraries/libre/default.nix
new file mode 100644
index 000000000000..cc9139d664ea
--- /dev/null
+++ b/pkgs/development/libraries/libre/default.nix
@@ -0,0 +1,23 @@
+{stdenv, fetchurl, zlib, openssl}:
+stdenv.mkDerivation rec {
+  version = "0.4.2";
+  name = "libre-${version}";
+  src=fetchurl {
+    url = "http://www.creytiv.com/pub/re-${version}.tar.gz";
+    sha256 = "1c99ygs46qhd4a0ardxhdyjaw5p8clhzmsm8jydqxnmbakwy518m";
+  };
+  buildInputs = [zlib openssl];
+  makeFlags = [
+    "USE_ZLIB=1" "USE_OPENSSL=1" 
+    ''PREFIX=$(out)''
+  ]
+  ++ stdenv.lib.optional (stdenv.gcc.gcc != null) "SYSROOT_ALT=${stdenv.gcc.gcc}"
+  ++ stdenv.lib.optional (stdenv.gcc.libc != null) "SYSROOT=${stdenv.gcc.libc}"
+  ;
+  meta = {
+    homepage = "http://www.creytiv.com/re.html";
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    license = with stdenv.lib.licenses; bsd3;
+  };
+}
diff --git a/pkgs/development/libraries/librem/default.nix b/pkgs/development/libraries/librem/default.nix
new file mode 100644
index 000000000000..04f3cc97bf33
--- /dev/null
+++ b/pkgs/development/libraries/librem/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, zlib, openssl, libre}:
+stdenv.mkDerivation rec {
+  version = "0.4.2";
+  name = "librem-${version}";
+  src=fetchurl {
+    url = "http://www.creytiv.com/pub/rem-${version}.tar.gz";
+    sha256 = "55c66118e3026c5ed42d8b9e0c668149baefe83f1aa76394cddba2d72f45d5c7";
+  };
+  buildInputs = [zlib openssl libre];
+  makeFlags = [
+    "LIBRE_MK=${libre}/share/re/re.mk"
+    "LIBRE_INC=${libre}/include/re"
+    ''PREFIX=$(out)''
+  ]
+  ++ stdenv.lib.optional (stdenv.gcc.gcc != null) "SYSROOT_ALT=${stdenv.gcc.gcc}"
+  ++ stdenv.lib.optional (stdenv.gcc.libc != null) "SYSROOT=${stdenv.gcc.libc}"
+  ;
+  meta = {
+    homepage = "http://www.creytiv.com/rem.html";
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    license = with stdenv.lib.licenses; bsd3;
+  };
+}
diff --git a/pkgs/development/libraries/libspectre/0001-Fix-a-crash-with-documents-containing-an-invalid-Pag.patch b/pkgs/development/libraries/libspectre/0001-Fix-a-crash-with-documents-containing-an-invalid-Pag.patch
new file mode 100644
index 000000000000..3e232ee5ac50
--- /dev/null
+++ b/pkgs/development/libraries/libspectre/0001-Fix-a-crash-with-documents-containing-an-invalid-Pag.patch
@@ -0,0 +1,29 @@
+From 7500e4d1ae85ecf9f61b1446e07ebb887118757c Mon Sep 17 00:00:00 2001
+From: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Sat, 30 Oct 2010 15:55:18 +0200
+Subject: [PATCH 1/2] Fix a crash with documents containing an invalid
+ %%Pages: comment
+
+When failed to allocate memory for pages because of invalid %%Pages:
+comment, set maxpages to 0 to ignore the comment. Problem spotted
+by Marek Kasik. Fixes bug #30867.
+---
+ libspectre/ps.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/libspectre/ps.c b/libspectre/ps.c
+index 6c7cfce..4578cec 100644
+--- a/libspectre/ps.c
++++ b/libspectre/ps.c
+@@ -597,6 +597,8 @@ psscan(const char *filename, int scanstyle)
+ 			if (maxpages > 0) {
+ 			    doc->pages = (struct page *) PS_calloc(maxpages,
+ 							   sizeof(struct page));
++                            if (!doc->pages)
++                                maxpages = 0;
+                             CHECK_MALLOCED(doc->pages);
+ 			}
+ 		}
+-- 
+1.7.11
+
diff --git a/pkgs/development/libraries/libspectre/0002-Allocate-at-least-1-page-in-doc-pages.patch b/pkgs/development/libraries/libspectre/0002-Allocate-at-least-1-page-in-doc-pages.patch
new file mode 100644
index 000000000000..09ab9e11c16f
--- /dev/null
+++ b/pkgs/development/libraries/libspectre/0002-Allocate-at-least-1-page-in-doc-pages.patch
@@ -0,0 +1,38 @@
+From 8ffd9185f81cb8337cece4c8e3672d0e6a97e935 Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik@redhat.com>
+Date: Wed, 24 Nov 2010 15:54:14 +0100
+Subject: [PATCH 2/2] Allocate at least 1 page in doc->pages
+
+Allocate at least 1 page if there are no %%Pages: or %%Page: comments
+in the PS file (#31512).
+---
+ libspectre/ps.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/libspectre/ps.c b/libspectre/ps.c
+index 4578cec..0130fb4 100644
+--- a/libspectre/ps.c
++++ b/libspectre/ps.c
+@@ -1004,14 +1004,14 @@ psscan(const char *filename, int scanstyle)
+ 	section_len += line_len;
+     }
+ 
++    if (maxpages == 0) {
++	maxpages = 1;
++	doc->pages = (struct page *) PS_calloc(maxpages, sizeof(struct page));
++	CHECK_MALLOCED(doc->pages);
++    }
+ 
+ newpage:
+     while (DSCcomment(line) && iscomment(line+2, "Page:")) {
+-	if (maxpages == 0) {
+-	    maxpages = 1;
+-	    doc->pages = (struct page *) PS_calloc(maxpages, sizeof(struct page));
+-            CHECK_MALLOCED(doc->pages);
+-	}
+ 	label = ps_gettext(line+length("%%Page:"), &next_char);
+ 	if (sscanf(next_char, "%u", &thispage) != 1) thispage = 0;
+ 	if (nextpage == 1) {
+-- 
+1.7.11
+
diff --git a/pkgs/development/libraries/libspectre/default.nix b/pkgs/development/libraries/libspectre/default.nix
index 0be6ac5f4efe..379727aec5c9 100644
--- a/pkgs/development/libraries/libspectre/default.nix
+++ b/pkgs/development/libraries/libspectre/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
     ghostscript
   ];
 
+  patches = [ ./0001-Fix-a-crash-with-documents-containing-an-invalid-Pag.patch ./0002-Allocate-at-least-1-page-in-doc-pages.patch ];
+
   doCheck = true;
 
   meta = {
diff --git a/pkgs/development/libraries/libvisio/default.nix b/pkgs/development/libraries/libvisio/default.nix
new file mode 100644
index 000000000000..99146cd02cc4
--- /dev/null
+++ b/pkgs/development/libraries/libvisio/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, boost, libwpd, libwpg, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "libvisio-0.0.19";
+
+  src = fetchurl {
+    url = "http://dev-www.libreoffice.org/src/${name}.tar.xz";
+    sha256 = "1iqkz280mi066bdccyxagkqm41i270nx01cacvgjq2pflgd3njd1";
+  };
+
+  buildNativeInputs = [ pkgconfig ];
+  buildInputs = [ boost libwpd libwpg ];
+
+  configureFlags = "--disable-werror";
+
+  meta = {
+    description = "A library providing ability to interpret and import visio diagrams into various applications";
+    homepage = http://www.freedesktop.org/wiki/Software/libvisio;
+    platforms = stdenv.lib.platforms.gnu; # random choice
+  };
+}
diff --git a/pkgs/development/libraries/mdds/default.nix b/pkgs/development/libraries/mdds/default.nix
new file mode 100644
index 000000000000..484f878a55ef
--- /dev/null
+++ b/pkgs/development/libraries/mdds/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "mdds-0.6.0";
+
+  src = fetchurl {
+    url = http://multidimalgorithm.googlecode.com/files/mdds_0.6.0.tar.bz2;
+    sha256 = "0yx6cx2cxk9wpmfpv6k3agkr1sjzxdgxrm3zfj34zwyxr3sh0ql4";
+  };
+
+  meta = {
+    homepage = https://code.google.com/p/multidimalgorithm/;
+    description = "A collection of multi-dimensional data structure and indexing algorithm";
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/mpich2/default.nix b/pkgs/development/libraries/mpich2/default.nix
index 967abe500e26..0ad2d4e47490 100644
--- a/pkgs/development/libraries/mpich2/default.nix
+++ b/pkgs/development/libraries/mpich2/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
   configureFlags = "--enable-shared --enable-sharedlib";
 
   buildInputs = [ python perl gfortran ];
-  propagatedBuildInputs = stdenv.lib.optional (stdenv ? glibc) [ stdenv.glibc ];
+  propagatedBuildInputs = stdenv.lib.optional (stdenv ? glibc) stdenv.glibc;
 
   patchPhase =
     '' for i in $(find -type f -not -name Makefile.\*)
diff --git a/pkgs/development/libraries/mythes/default.nix b/pkgs/development/libraries/mythes/default.nix
new file mode 100644
index 000000000000..ff06f2a00506
--- /dev/null
+++ b/pkgs/development/libraries/mythes/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, hunspell, pkgconfig, perl }:
+
+stdenv.mkDerivation rec {
+  name = "mythes-1.2.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/hunspell/${name}.tar.gz";
+    sha256 = "0f5q7yiwg9bw4a5zxg0dapqdfc2grfb4ss34ifir3mhhy4q3jf4j";
+  };
+
+  buildInputs = [ hunspell ];
+  buildNativeInputs = [ pkgconfig perl ];
+
+  meta = {
+    homepage = http://hunspell.sourceforge.net/;
+    description = "Thesaurus library from Hunspell project";
+    inherit (hunspell.meta) platforms;
+  };
+}
diff --git a/pkgs/development/libraries/nettle/default.nix b/pkgs/development/libraries/nettle/default.nix
index 22c2fb14acab..6c7383435a8a 100644
--- a/pkgs/development/libraries/nettle/default.nix
+++ b/pkgs/development/libraries/nettle/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, stdenv, gmp, gnum4 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   name = "nettle-2.4";
 
   src = fetchurl {
@@ -51,3 +51,13 @@ stdenv.mkDerivation rec {
      platforms = stdenv.lib.platforms.all;
   };
 }
+
+//
+
+stdenv.lib.optionalAttrs stdenv.isSunOS {
+  # Make sure the right <gmp.h> is found, and not the incompatible
+  # /usr/include/mp.h from OpenSolaris.  See
+  # <https://lists.gnu.org/archive/html/hydra-users/2012-08/msg00000.html>
+  # for details.
+  configureFlags = [ "--with-include-path=${gmp}/include" ];
+})
diff --git a/pkgs/development/libraries/nspr/default.nix b/pkgs/development/libraries/nspr/default.nix
index c570688de210..2b8a327e2d5a 100644
--- a/pkgs/development/libraries/nspr/default.nix
+++ b/pkgs/development/libraries/nspr/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl }:
 
-let version = "4.9.1"; in
+let version = "4.9.2"; in
 
 stdenv.mkDerivation {
   name = "nspr-${version}";
 
   src = fetchurl {
     url = "http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${version}/src/nspr-${version}.tar.gz";
-    sha1 = "1d52282668f2f8f5aabf7a5a3e7f6ba9a5df9710";
+    sha1 = "455eab365f8fd732a4b014ca0af685f3c2dec598";
   };
 
   preConfigure = "cd mozilla/nsprpub";
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
     '';
 
   enableParallelBuilding = true;
-    
+
   meta = {
     homepage = http://www.mozilla.org/projects/nspr/;
     description = "Netscape Portable Runtime, a platform-neutral API for system-level and libc-like functions";
diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix
index 3b4d10eaa089..a9629def8a38 100644
--- a/pkgs/development/libraries/nss/default.nix
+++ b/pkgs/development/libraries/nss/default.nix
@@ -1,82 +1,85 @@
-{ stdenv, fetchurl, nspr, perl, zlib, includeTools ? false}:
+{ stdenv, fetchurl, fetchgit, nspr, perl, zlib, sqlite
+, includeTools ? false
+}:
 
 let
 
-  nssConfig = fetchurl {
-    url = "http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/dev-libs/nss/files/3.12-nss-config.in?rev=1.2";
-    sha256 = "1ck9q68fxkjq16nflixbqi4xc6bmylmj994h3f1j42g8mp0xf0vd";
+  nssPEM = fetchgit {
+    url = "git://git.fedorahosted.org/git/nss-pem.git";
+    rev = "07a683505d4a0a1113c4085c1ce117425d0afd80";
+    sha256 = "e4a9396d90e50e8b3cceff45f312eda9aaf356423f4eddd354a0e1afbbfd4cf8";
   };
 
-in
+  secLoadPatch = fetchurl {
+    name = "security_load.patch";
+    urls = [
+      "http://patch-tracker.debian.org/patch/series/dl/nss/2:3.13.6-1/85_security_load.patch"
+      "http://anonscm.debian.org/gitweb/?p=pkg-mozilla/nss.git;a=blob_plain;f=debian/patches/85_security_load.patch;hb=HEAD"
+    ];
+    sha256 = "8a8d0ae4ebbd7c389973fa5d26d8bc5f473046c6cb1d8283cb9a3c1f4c565c47";
+  };
 
-stdenv.mkDerivation {
-  name = "nss-3.13.3";
+in stdenv.mkDerivation rec {
+  name = "nss-${version}";
+  version = "3.13.6";
 
-  src = fetchurl {
-    url = http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_13_3_RTM/src/nss-3.13.3.tar.gz;
-    sha256 = "efa10f2c70da4bddabf1a6081964969bb23359b93d6eadbf4739274a77bc3587";
+  src = let
+    uscoreVersion = stdenv.lib.replaceChars ["."] ["_"] version;
+    releasePath = "releases/NSS_${uscoreVersion}_RTM/src/nss-${version}.tar.gz";
+  in fetchurl {
+    url = "http://ftp.mozilla.org/pub/mozilla.org/security/nss/${releasePath}";
+    sha256 = "f7e90727e0ecc1c29de10da39a79bc9c53b814ccfbf40720e053b29c683d43a0";
   };
 
-  buildInputs = [nspr perl zlib];
+  buildInputs = [ nspr perl zlib sqlite ];
 
-  patches = [ ./nss-3.12.5-gentoo-fixups.diff ];
+  postUnpack = ''
+    cp -rdv "${nssPEM}/mozilla/security/nss/lib/ckfw/pem" \
+            "$sourceRoot/mozilla/security/nss/lib/ckfw/"
+    chmod -R u+w "$sourceRoot/mozilla/security/nss/lib/ckfw/pem"
+  '';
 
-  # Based on the build instructions at
-  # http://www.mozilla.org/projects/security/pki/nss/nss-3.11.4/nss-3.11.4-build.html
+  patches = [
+    ./nss-3.12.5-gentoo-fixups.diff
+    secLoadPatch
+    ./nix_secload_fixup.patch
+  ];
 
   postPatch = ''
+    sed -i -e 's/^DIRS.*$/& pem/' mozilla/security/nss/lib/ckfw/manifest.mn
     sed -i -e "/^PREFIX =/s:= /usr:= $out:" mozilla/security/nss/config/Makefile
   '';
 
   preConfigure = "cd mozilla/security/nss";
 
-  BUILD_OPT = "1";
-
-  makeFlags =
-    [ "NSPR_CONFIG_STATUS=" "NSDISTMODE=copy" "BUILD_OPT=1" "SOURCE_PREFIX=\$(out)"
-      "NSS_ENABLE_ECC=1"
-    ]
-    ++ stdenv.lib.optional stdenv.is64bit "USE_64=1";
-
-  buildFlags = "nss_build_all";
-
-  NIX_CFLAGS_COMPILE = "-I${nspr}/include/nspr";
-
-  preBuild =
-    ''
-      # Fool it into thinking NSPR has already been built.
-      touch build_nspr
-
-      # Hack to make -lz dependencies work.
-      touch cmd/signtool/-lz cmd/modutil/-lz
-    '';
-
-  postInstall =
-    ''
-      #find $out -name "*.a" | xargs rm
-      rm -rf $out/private
-      mv $out/public $out/include
-      mv $out/*.OBJ/* $out/
-      rmdir $out/*.OBJ
-      ${if includeTools then "" else "rm -rf $out/bin"}
-
-      # Borrowed from Gentoo.  Firefox expects an nss-config script,
-      # but NSS doesn't provide it.
-
-      NSS_VMAJOR=`cat lib/nss/nss.h | grep "#define.*NSS_VMAJOR" | awk '{print $3}'`
-      NSS_VMINOR=`cat lib/nss/nss.h | grep "#define.*NSS_VMINOR" | awk '{print $3}'`
-      NSS_VPATCH=`cat lib/nss/nss.h | grep "#define.*NSS_VPATCH" | awk '{print $3}'`
+  makeFlags = [
+    "NSPR_INCLUDE_DIR=${nspr}/include/nspr"
+    "NSPR_LIB_DIR=${nspr}/lib"
+    "NSDISTMODE=copy"
+    "BUILD_OPT=1"
+    "SOURCE_PREFIX=\$(out)"
+    "NSS_ENABLE_ECC=1"
+    "NSS_USE_SYSTEM_SQLITE=1"
+  ] ++ stdenv.lib.optional stdenv.is64bit "USE_64=1";
+
+  buildFlags = [ "build_coreconf" "build_dbm" "all" ];
+
+  postInstall = ''
+    rm -rf $out/private
+    mv $out/public $out/include
+    mv $out/*.OBJ/* $out/
+    rmdir $out/*.OBJ
+
+    cp -av config/nss-config $out/bin/nss-config
+  '';
 
-      ${if includeTools then "" else "mkdir $out/bin"}
-      cp ${nssConfig} $out/bin/nss-config
-      chmod u+x $out/bin/nss-config
-      substituteInPlace $out/bin/nss-config \
-        --subst-var-by MOD_MAJOR_VERSION $NSS_VMAJOR \
-        --subst-var-by MOD_MINOR_VERSION $NSS_VMINOR \
-        --subst-var-by MOD_PATCH_VERSION $NSS_VPATCH \
-        --subst-var-by prefix $out \
-        --subst-var-by exec_prefix $out \
-        --subst-var-by includedir $out/include/nss \
-        --subst-var-by libdir $out/lib
-    ''; # */
+  postFixup = ''
+    for libname in freebl3 nssdbm3 softokn3
+    do
+      libfile="$out/lib/lib$libname.so"
+      LD_LIBRARY_PATH=$out/lib $out/bin/shlibsign -v -i "$libfile"
+    done
+  '' + stdenv.lib.optionalString (!includeTools) ''
+    find $out/bin -type f \( -name nss-config -o -delete \)
+  '';
 }
diff --git a/pkgs/development/libraries/nss/nix_secload_fixup.patch b/pkgs/development/libraries/nss/nix_secload_fixup.patch
new file mode 100644
index 000000000000..960fe0ef7a75
--- /dev/null
+++ b/pkgs/development/libraries/nss/nix_secload_fixup.patch
@@ -0,0 +1,50 @@
+diff --git a/mozilla/security/coreconf/config.mk b/mozilla/security/coreconf/config.mk
+index 72557c6..bdcbf88 100644
+--- a/mozilla/security/coreconf/config.mk
++++ b/mozilla/security/coreconf/config.mk
+@@ -207,3 +207,5 @@ endif
+ DEFINES += -DUSE_UTIL_DIRECTLY
+ USE_UTIL_DIRECTLY = 1
+ 
++# nix specific stuff:
++DEFINES += -DNIX_NSS_LIBDIR=\"$(out)/lib/\"
+diff --git a/mozilla/security/nss/cmd/shlibsign/shlibsign.c b/mozilla/security/nss/cmd/shlibsign/shlibsign.c
+index 5ce626e..e1e8039 100644
+--- a/mozilla/security/nss/cmd/shlibsign/shlibsign.c
++++ b/mozilla/security/nss/cmd/shlibsign/shlibsign.c
+@@ -770,7 +770,7 @@ int main(int argc, char **argv)
+     assert(libname != NULL);
+     lib = PR_LoadLibrary(libname);
+     if (!lib)
+-        lib = PR_LoadLibrary("/usr/lib/nss/libsoftokn3.so");
++        lib = PR_LoadLibrary(NIX_NSS_LIBDIR"libsoftokn3.so");
+     assert(lib != NULL);
+     PR_FreeLibraryName(libname);
+ 
+diff --git a/mozilla/security/nss/lib/util/secload.c b/mozilla/security/nss/lib/util/secload.c
+index 7d6fc22..0b7759b 100644
+--- a/mozilla/security/nss/lib/util/secload.c
++++ b/mozilla/security/nss/lib/util/secload.c
+@@ -105,9 +105,9 @@ loader_LoadLibInReferenceDir(const char *referencePath, const char *name)
+     /* Remove the trailing filename from referencePath and add the new one */
+     c = strrchr(referencePath, PR_GetDirectorySeparator());
+     if (!c) { /* referencePath doesn't contain a / means that dladdr gave us argv[0]
+-               * and program was called from $PATH. Hack to get libs from /usr/lib */
+-        referencePath = "/usr/lib/";
+-        c = &referencePath[8]; /* last / */
++               * and program was called from $PATH. Hack to get libs from NIX_NSS_LIBDIR */
++        referencePath = NIX_NSS_LIBDIR;
++        c = &referencePath[sizeof(NIX_NSS_LIBDIR) - 1]; /* last / */
+     }
+     if (c) {
+         size_t referencePathSize = 1 + c - referencePath;
+@@ -125,8 +125,7 @@ loader_LoadLibInReferenceDir(const char *referencePath, const char *name)
+                 (strncmp(fullName + referencePathSize - 4, "bin", 3) == 0)) {
+                 memcpy(fullName + referencePathSize -4, "lib", 3);
+             }
+-            strcpy(fullName + referencePathSize, "nss/");
+-            strcpy(fullName + referencePathSize + 4, name);
++            strcpy(fullName + referencePathSize, name);
+             dlh = PR_LoadLibraryWithFlags(libSpec, PR_LD_NOW | PR_LD_LOCAL
+ #ifdef PR_LD_ALT_SEARCH_PATH
+             /* allow library's dependencies to be found in the same directory
diff --git a/pkgs/development/libraries/opencv/default.nix b/pkgs/development/libraries/opencv/default.nix
index 009935e14c07..d40b253df2f4 100644
--- a/pkgs/development/libraries/opencv/default.nix
+++ b/pkgs/development/libraries/opencv/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, cmake, gtk, libjpeg, libpng, libtiff, jasper, ffmpeg
 , pkgconfig, gstreamer, xineLib, glib }:
 
-let v = "2.4.1"; in
+let v = "2.4.2"; in
 
 stdenv.mkDerivation rec {
   name = "opencv-${v}";
 
   src = fetchurl {
     url = "mirror://sourceforge/opencvlibrary/OpenCV-${v}.tar.bz2";
-    sha256 = "1wxijbz1jfsg4695fls83825ppiacxfn5x07al0qkkx5rm7spdi9";
+    sha256 = "0a1c4ys78k670dsk1fapylpf8hwfyzy944r9jvwivqh33s0j6039";
   };
 
   buildInputs = [ gtk glib libjpeg libpng libtiff jasper ffmpeg xineLib gstreamer ];
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index cd164b13f8e3..48574a332c8d 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, perl }:
+{ stdenv, fetchurl, perl
+, withCryptodev ? false, cryptodevHeaders }:
 
 let
   name = "openssl-1.0.0i";
@@ -23,6 +24,11 @@ let
            ./gnu.patch                # submitted upstream
          ]
 
+    ++ stdenv.lib.optionals (stdenv.system == "x86_64-kfreebsd-gnu")
+        [ ./gnu.patch
+          ./kfreebsd-gnu.patch
+        ]
+
     ++ stdenv.lib.optional stdenv.isDarwin ./darwin-arch.patch;
   
 in
@@ -40,6 +46,8 @@ stdenv.mkDerivation {
 
   patches = patchesCross false;
 
+  buildInputs = stdenv.lib.optional withCryptodev cryptodevHeaders;
+
   buildNativeInputs = [ perl ];
 
   # On x86_64-darwin, "./config" misdetects the system as
@@ -47,7 +55,8 @@ stdenv.mkDerivation {
   configureScript =
     if stdenv.system == "x86_64-darwin" then "./Configure darwin64-x86_64-cc" else "./config";
 
-  configureFlags = "shared --libdir=lib";
+  configureFlags = "shared --libdir=lib" +
+    stdenv.lib.optionalString withCryptodev " -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS";
 
   makeFlags = "MANDIR=$(out)/share/man";
 
diff --git a/pkgs/development/libraries/openssl/kfreebsd-gnu.patch b/pkgs/development/libraries/openssl/kfreebsd-gnu.patch
new file mode 100644
index 000000000000..66cedf746ba5
--- /dev/null
+++ b/pkgs/development/libraries/openssl/kfreebsd-gnu.patch
@@ -0,0 +1,36 @@
+Allow compilation on GNU/kFreeBSD.  Ideally, there'd be a single way to process
+all glibc-based system, but the build system is soooo broken.
+
+--- openssl-1.0.0i/config
++++ openssl-1.0.0i/config
+@@ -170,6 +170,10 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${
+ 	echo "${MACHINE}-whatever-linux1"; exit 0
+ 	;;
+ 
++    GNU/kFreeBSD*)
++    	echo "kfreebsd-gnu"; exit 0;
++    	;;
++
+     GNU*)
+ 	echo "hurd-x86"; exit 0;
+ 	;;
+@@ -810,6 +814,7 @@ case "$GUESSOS" in
+   beos-*) OUT="$GUESSOS" ;;
+   x86pc-*-qnx6) OUT="QNX6-i386" ;;
+   *-*-qnx6) OUT="QNX6" ;;
++  kfreebsd-gnu) OUT="kfreebsd-gnu";;
+   *) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;;
+ esac
+ 
+
+--- openssl-1.0.0i/Configure
++++ openssl-1.0.0i/Configure
+@@ -565,6 +565,9 @@ my %table=(
+ ##### GNU Hurd
+ "hurd-x86",  "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC",
+ 
++##### GNU/kFreeBSD on x86_64, copied from "linux-x86_64"
++"kfreebsd-gnu",	"gcc:-m64 -DL_ENDIAN -DTERMIOS -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
++
+ ##### OS/2 EMX
+ "OS2-EMX", "gcc::::::::",
diff --git a/pkgs/development/libraries/pcre/8.30.nix b/pkgs/development/libraries/pcre/8.30.nix
new file mode 100644
index 000000000000..2f636492eb61
--- /dev/null
+++ b/pkgs/development/libraries/pcre/8.30.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, unicodeSupport ? true, cplusplusSupport ? true }:
+
+stdenv.mkDerivation rec {
+  name = "pcre-8.30";
+
+  src = fetchurl {
+    url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${name}.tar.bz2";
+    sha256 = "c1113fd7db934e97ad8b3917d432e5b642e9eb9afd127eb797804937c965f4ac";
+  };
+
+  # The compiler on Darwin crashes with an internal error while building the
+  # C++ interface. Disabling optimizations on that platform remedies the
+  # problem. In case we ever update the Darwin GCC version, the exception for
+  # that platform ought to be removed.
+  configureFlags = ''
+    ${if unicodeSupport then "--enable-unicode-properties" else ""}
+    ${if !cplusplusSupport then "--disable-cpp" else ""}
+  '' + stdenv.lib.optionalString stdenv.isDarwin "CXXFLAGS=-O0";
+
+  doCheck = !stdenv.isCygwin;                   # XXX: test failure on Cygwin
+
+  meta = {
+    homepage = "http://www.pcre.org/";
+    description = "A library for Perl Compatible Regular Expressions";
+    license = "BSD-3";
+
+    longDescription = ''
+      The PCRE library is a set of functions that implement regular
+      expression pattern matching using the same syntax and semantics as
+      Perl 5. PCRE has its own native API, as well as a set of wrapper
+      functions that correspond to the POSIX regular expression API. The
+      PCRE library is free, even for building proprietary software.
+    '';
+
+    platforms = stdenv.lib.platforms.all;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/development/libraries/polkit/default.nix b/pkgs/development/libraries/polkit/default.nix
index dd83d7dfd8f1..88daab5ff92f 100644
--- a/pkgs/development/libraries/polkit/default.nix
+++ b/pkgs/development/libraries/polkit/default.nix
@@ -1,29 +1,31 @@
 { stdenv, fetchurl, pkgconfig, glib, expat, pam, intltool, gettext
-, gobjectIntrospection }:
+, gobjectIntrospection
+, useSystemd ? false, systemd ? null }:
 
 let
 
   system = "/var/run/current-system/sw";
-  
+
   foolVars = {
     LOCALSTATE = "/var";
     SYSCONF = "/etc";
     LIB = "${system}/lib";
     DATA = "${system}/share";
   };
-  
+
 in
 
 stdenv.mkDerivation rec {
-  name = "polkit-0.104";
+  name = "polkit-0.105";
 
   src = fetchurl {
-    url = "http://hal.freedesktop.org/releases/${name}.tar.gz";
-    sha256 = "1yf7307svs8qk76qdlgww1bhgdcia5cm92n16xz7njhy73c162kb";
+    url = "http://www.freedesktop.org/software/polkit/releases/${name}.tar.gz";
+    sha256 = "1pz1hn4z0f1wk4f7w8q1g6ygwan1b6kxmfad3b7gql27pb47rp4g";
   };
 
   buildInputs =
-    [ pkgconfig glib expat pam intltool gobjectIntrospection ];
+    [ pkgconfig glib expat pam intltool gobjectIntrospection ]
+    ++ stdenv.lib.optional useSystemd systemd;
 
   configureFlags = "--libexecdir=$(out)/libexec/polkit-1";
 
@@ -47,7 +49,7 @@ stdenv.mkDerivation rec {
       INTROSPECTION_GIRDIR=$(out)/share/gir-1.0
       INTROSPECTION_TYPELIBDIR=$(out)lib/girepository-1.0
     '';
-        
+
   postInstall =
     ''
       # Allow some files with paranoid permissions to be stripped in
@@ -56,7 +58,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with stdenv.lib; {
-    homepage = http://www.freedesktop.org/wiki/Software/PolicyKit;
+    homepage = http://www.freedesktop.org/wiki/Software/polkit;
     description = "A toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes";
     platforms = platforms.linux;
     maintainers = [ maintainers.urkud ];
diff --git a/pkgs/development/libraries/protobufc/default.nix b/pkgs/development/libraries/protobufc/default.nix
new file mode 100644
index 000000000000..58c639ee604c
--- /dev/null
+++ b/pkgs/development/libraries/protobufc/default.nix
@@ -0,0 +1,22 @@
+{ fetchurl, stdenv, zlib, protobuf }:
+
+stdenv.mkDerivation rec {
+  name = "protobuf-c-0.15";
+
+  src = fetchurl {
+    url = "http://protobuf-c.googlecode.com/files/${name}.tar.gz";
+    sha256 = "0dh0180lzqk6n1r0qk38kgdy4x15mpkg5j4g2r31qhx52f757jwg";
+  };
+
+  buildInputs = [ protobuf ];
+
+  doCheck = true;
+
+  meta = {
+    description = "C bindings for Google's Protocol Buffers";
+
+    license = "BSD";
+
+    homepage = http://code.google.com/p/protobuf-c/;
+  };
+}
diff --git a/pkgs/development/libraries/qoauth/default.nix b/pkgs/development/libraries/qoauth/default.nix
new file mode 100644
index 000000000000..f93e4479e71e
--- /dev/null
+++ b/pkgs/development/libraries/qoauth/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, qt4, qca2 }:
+
+stdenv.mkDerivation {
+  name = "qoauth-1.0.1";
+
+  src = fetchurl {
+    url = https://github.com/ayoy/qoauth/tarball/v1.0.1;
+    name = "qoauth-1.0.1.tar.gz";
+    sha256 = "1ax0g4dd49a3a1699ams13bkhz690xfwqg8rxp1capbdpf2aa8cp";
+  };
+
+  configurePhase = "qmake PREFIX=$prefix";
+  patchPhase = "sed -e 's/lib64/lib/g' -i src/src.pro";
+
+  buildInputs = [ qt4 qca2 ];
+
+  NIX_CFLAGS_COMPILE="-I${qca2}/include/QtCrypto";
+  NIX_LDFLAGS = "-lqca";
+
+  meta = {
+    description = "Qt library for OAuth authentication";
+    inherit (qt4.meta) platforms;
+    maintainers = [ stdenv.lib.maintainers.urkud ];
+  };
+}
diff --git a/pkgs/development/libraries/readline/readline-6.2-patches.nix b/pkgs/development/libraries/readline/readline-6.2-patches.nix
index 4e0ff2135271..719face21355 100644
--- a/pkgs/development/libraries/readline/readline-6.2-patches.nix
+++ b/pkgs/development/libraries/readline/readline-6.2-patches.nix
@@ -3,4 +3,6 @@
 patch: [
 (patch "001" "1qxl74f4n0hv4a807byrgbk4ixd8m50apj3922q2ss9pfi0nra1q")
 (patch "002" "1m670g2xzib6r81315q9r24nh9brmxkpq07acch1fwxmih94jqqy")
+(patch "003" "0x13c9wir4r44v2vdg96y0ahn8kl3wcmb5y0xn15yvid6pzk28fb")
+(patch "004" "0xjlkxfssfsd6jwbqhfjs4hybcps0b9zgz8v86vbhnzag4j39g89")
 ]
diff --git a/pkgs/development/libraries/sbc/default.nix b/pkgs/development/libraries/sbc/default.nix
new file mode 100644
index 000000000000..d621eed67285
--- /dev/null
+++ b/pkgs/development/libraries/sbc/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, libsndfile, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "sbc-1.0";
+
+  src = fetchurl {
+    url = "http://www.kernel.org/pub/linux/bluetooth/${name}.tar.xz";
+    sha256 = "10mq2rmh3h90bwq5cdcmizf93zf8f2br8gds0jxr9i962ai0m5xz";
+  };
+
+  buildInputs = [ pkgconfig libsndfile ];
+
+  meta = {
+    description = "SubBand Codec Library";
+
+    homepage = http://www.bluez.org/;
+
+    licenses = stdenv.lib.licenses.gpl2;
+
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+  };
+}
diff --git a/pkgs/development/libraries/science/math/liblapack/default.nix b/pkgs/development/libraries/science/math/liblapack/default.nix
index e2b43b6b0531..9f25011b76f8 100644
--- a/pkgs/development/libraries/science/math/liblapack/default.nix
+++ b/pkgs/development/libraries/science/math/liblapack/default.nix
@@ -4,10 +4,10 @@ let
   usedLibExtension = if shared then ".so" else ".a";
 in
 stdenv.mkDerivation {
-  name = "liblapack-3.4.0";
+  name = "liblapack-3.4.1";
   src = fetchurl {
-    url = "http://www.netlib.org/lapack/lapack-3.4.0.tgz";
-    sha256 = "1sf30v1ps5icg67dvw5sbx5yhypx13am470gqg2f7l04f3wrw4x7";
+    url = "http://www.netlib.org/lapack/lapack-3.4.1.tgz";
+    sha256 = "93b910f94f6091a2e71b59809c4db4a14655db527cfc5821ade2e8c8ab75380f";
   };
 
   propagatedBuildInputs = [ atlasMaybeShared ];
diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix
new file mode 100644
index 000000000000..4d30671c4880
--- /dev/null
+++ b/pkgs/development/libraries/science/math/openblas/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, gfortran, perl }:
+
+stdenv.mkDerivation rec {
+  version = "0.2.2";
+  lapack_version = "3.4.1";
+  lapack_src = fetchurl {
+    url = "http://www.netlib.org/lapack/lapack-${lapack_version}.tgz";
+    sha256 = "93b910f94f6091a2e71b59809c4db4a14655db527cfc5821ade2e8c8ab75380f";
+  };
+
+  name = "openblas-${version}";
+  src = fetchurl {
+    url = "https://github.com/xianyi/OpenBLAS/tarball/v${version}";
+    sha256 = "13kdx3knff5ajnmgn419g0dnh83plin07p7akwamr3v7z5qfrzqr";
+    name = "openblas-${version}.tar.gz";
+  };
+
+  preBuild = "cp ${lapack_src} lapack-${lapack_version}.tgz";
+
+  buildInputs = [gfortran perl];
+
+  cpu = builtins.head (stdenv.lib.splitString "-" stdenv.system);
+
+  target = if cpu == "i686" then "P6" else 
+    if cpu == "x86_64" then "CORE2" else
+     # allow autodetect
+      "";
+
+  makeFlags = "${if target != "" then "TARGET=" else ""}${target} FC=gfortran CC=cc PREFIX=\"\$(out)\"";
+
+  meta = {
+    description = "Basic Linear Algebra Subprograms";
+    license = stdenv.lib.licenses.bsd3;
+    homepage = "https://github.com/xianyi/OpenBLAS";
+  };
+}
diff --git a/pkgs/development/libraries/soprano/default.nix b/pkgs/development/libraries/soprano/default.nix
index 54e40efe65e8..7705ee1893d9 100644
--- a/pkgs/development/libraries/soprano/default.nix
+++ b/pkgs/development/libraries/soprano/default.nix
@@ -2,11 +2,11 @@
 , pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "soprano-2.7.6";
+  name = "soprano-2.8.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/soprano/${name}.tar.bz2";
-    sha256 = "0cnprxc8wykl96aphsh2d3711h7cals7gnibbxpsmsqyqbnhbp98";
+    sha256 = "1israssklrb4mhx2dgkfnabh21ll1jyis1c5c42rc9gi23mkb7ah";
   };
 
   patches = [ ./find-virtuoso.patch ];
diff --git a/pkgs/development/libraries/spandsp/default.nix b/pkgs/development/libraries/spandsp/default.nix
new file mode 100644
index 000000000000..f88ab48e027e
--- /dev/null
+++ b/pkgs/development/libraries/spandsp/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, audiofile, libtiff}:
+stdenv.mkDerivation rec {
+  version = "0.0.5";
+  name = "spandsp-${version}";
+  src=fetchurl {
+    url = "http://www.soft-switch.org/downloads/spandsp/spandsp-${version}.tgz";
+    sha256 = "07f42a237c77b08fa765c3a148c83cdfa267bf24c0ab681d80b90d30dd0b3dbf";
+  };
+  buildInputs = [];
+  propagatedBuildInputs = [audiofile libtiff];
+  meta = {
+    homepage = "http://www.creytiv.com/baresip.html";
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    license = with stdenv.lib.licenses; gpl2;
+  };
+}
+
diff --git a/pkgs/development/libraries/spice-protocol/default.nix b/pkgs/development/libraries/spice-protocol/default.nix
new file mode 100644
index 000000000000..c1b6d0e67e7f
--- /dev/null
+++ b/pkgs/development/libraries/spice-protocol/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "spice-protocol-0.10.1";
+
+  src = fetchurl {
+    url = "http://www.spice-space.org/download/releases/${name}.tar.bz2";
+    sha256 = "0drmy2ws7qwmvjxfynhssbvh1y954rfik99hnl789g7yg6vcpxp5";
+  };
+
+  meta = {
+    description = "Protocol headers for the SPICE protocol.";
+    homepage = http://www.spice-space.org;
+    license = stdenv.lib.licenses.bsd3;
+
+    maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/spice/default.nix b/pkgs/development/libraries/spice/default.nix
new file mode 100644
index 000000000000..52726f017abf
--- /dev/null
+++ b/pkgs/development/libraries/spice/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, pkgconfig, pixman, celt, alsaLib, openssl
+, libXrandr, libXfixes, libXext, libXrender, libXinerama, libjpeg, zlib
+, spice_protocol }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "spice-0.10.1";
+
+  src = fetchurl {
+    url = "http://www.spice-space.org/download/releases/${name}.tar.bz2";
+    sha256 = "105p5fh6hhhzvz0fh1x52lzi41rpvajf390xbbw3da4417lf5pqk";
+  };
+
+  buildInputs = [ pixman celt alsaLib openssl libjpeg zlib
+                  libXrandr libXfixes libXrender libXext libXinerama
+                ];
+
+  buildNativeInputs = [ pkgconfig spice_protocol ];
+
+  # NIX_CFLAGS_COMPILE = "-fno-stack-protector";
+
+  configureFlags = [
+    "--with-sasl=no"
+  ];
+
+  postInstall = ''
+    ln -s spice-server $out/include/spice
+  '';
+
+  meta = {
+    description = "Complete open source solution for interaction with virtualized desktop devices";
+    longDescription = ''
+      The Spice project aims to provide a complete open source solution for interaction
+      with virtualized desktop devices.The Spice project deals with both the virtualized
+      devices and the front-end. Interaction between front-end and back-end is done using
+      VD-Interfaces. The VD-Interfaces (VDI) enable both ends of the solution to be easily
+      utilized by a third-party component.
+    '';
+    homepage = http://www.spice-space.org/;
+    license = licenses.lgpl21;
+
+    maintainers = [ maintainers.bluescreen303 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index de154964fe57..6b3c5e498fed 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -3,15 +3,15 @@
 assert readline != null -> ncurses != null;
 
 stdenv.mkDerivation {
-  name = "sqlite-3.7.13";
+  name = "sqlite-3.7.14";
 
   src = fetchurl {
-    url = http://www.sqlite.org/sqlite-autoconf-3071300.tar.gz;
-    sha1 = "d3833b6ad68db8505d1044f761dd962f415cd302";
+    url = http://www.sqlite.org/sqlite-autoconf-3071400.tar.gz;
+    sha1 = "7b429809918201555f4c0fa639183a1c663d3fe0";
   };
 
   buildInputs = [ readline ncurses ];
-  
+
   configureFlags = "--enable-threadsafe";
 
   CFLAGS = "-DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_SECURE_DELETE=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1";
diff --git a/pkgs/development/libraries/srtp/default.nix b/pkgs/development/libraries/srtp/default.nix
index 887c0c7c1a3c..1b8b654ca808 100644
--- a/pkgs/development/libraries/srtp/default.nix
+++ b/pkgs/development/libraries/srtp/default.nix
@@ -27,8 +27,12 @@ rec {
   inherit buildInputs;
 
   /* doConfigure should be removed if not needed */
-  phaseNames = ["doConfigure" "doMakeInstall"];
-      
+  phaseNames = ["setVars" "doConfigure" "doMakeInstall"];
+
+  setVars = a.fullDepEntry ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fPIC"
+  '' ["minInit"];
+
   meta = {
     description = "Secure RTP";
     maintainers = with a.lib.maintainers;
diff --git a/pkgs/development/libraries/suitesparse/default.nix b/pkgs/development/libraries/suitesparse/default.nix
index b3fe6db059ac..e3a7fbb5a086 100644
--- a/pkgs/development/libraries/suitesparse/default.nix
+++ b/pkgs/development/libraries/suitesparse/default.nix
@@ -1,9 +1,10 @@
 { stdenv, fetchurl, blas, liblapack, gfortran } :
-stdenv.mkDerivation {
-  name = "suitesparse";
+stdenv.mkDerivation rec {
+  version = "4.0.0";
+  name = "suitesparse-${version}";
   src = fetchurl {
-    url = http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-3.5.0.tar.gz ;
-    sha256 = "0npn7c1j5qag5m2r0cmh3bwc42c1jk8k2yg2cfyxlcrp0h7wn4rc";  			
+    url = "http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-${version}.tar.gz" ;
+    sha256 = "1nvbdw10wa6654k8sa2vhr607q6fflcywyji5xd767cqpwag4v5j";  			
   };
   buildInputs = [blas liblapack gfortran] ;
   patches = [./disable-metis.patch];
@@ -14,6 +15,8 @@ stdenv.mkDerivation {
     mkdir -p $out/include
   '';
 
+  makeFlags = ''PREFIX=\"$(out)\" INSTALL_LIB=$(out)/lib INSTALL_INCLUDE=$(out)/include'';
+
   NIX_CFLAGS = "-fPIC";
 
 }
diff --git a/pkgs/development/libraries/suitesparse/disable-metis.patch b/pkgs/development/libraries/suitesparse/disable-metis.patch
index 68fd22bc6433..5b735eb7d3c9 100644
--- a/pkgs/development/libraries/suitesparse/disable-metis.patch
+++ b/pkgs/development/libraries/suitesparse/disable-metis.patch
@@ -1,140 +1,18 @@
-diff -Nrc SuiteSparse/UFconfig/Makefile SuiteSparse-new/UFconfig/Makefile
-*** SuiteSparse/UFconfig/Makefile	2009-11-11 20:59:08.000000000 +0100
---- SuiteSparse-new/UFconfig/Makefile	2010-08-02 13:14:04.000000000 +0200
-***************
-*** 25,31 ****
-  
-  # install UFconfig
-  install:
-! 	$(CP) Lib/libufconfig.a $(INSTALL_LIB)/libufconfig.$(VERSION).a
-  	( cd $(INSTALL_LIB) ; ln -s libufconfig.$(VERSION).a libufconfig.a )
-  	$(CP) UFconfig.h $(INSTALL_INCLUDE)
-  
---- 25,31 ----
-  
-  # install UFconfig
-  install:
-! 	$(CP) libufconfig.a $(INSTALL_LIB)/libufconfig.$(VERSION).a
-  	( cd $(INSTALL_LIB) ; ln -s libufconfig.$(VERSION).a libufconfig.a )
-  	$(CP) UFconfig.h $(INSTALL_INCLUDE)
-  
-diff -Nrc SuiteSparse/UFconfig/UFconfig.mk SuiteSparse-new/UFconfig/UFconfig.mk
-*** SuiteSparse/UFconfig/UFconfig.mk	2010-06-02 17:40:42.000000000 +0200
---- SuiteSparse-new/UFconfig/UFconfig.mk	2010-08-02 14:55:27.000000000 +0200
-***************
-*** 34,40 ****
-  # performance.  You should select the optimization parameters that are best
-  # for your system.  On Linux, use "CFLAGS = -O3 -fexceptions" for example.
-  CC = cc
-! CFLAGS = -O3 -fexceptions
-  
-  # C++ compiler (also uses CFLAGS)
-  CPLUSPLUS = g++
---- 34,40 ----
-  # performance.  You should select the optimization parameters that are best
-  # for your system.  On Linux, use "CFLAGS = -O3 -fexceptions" for example.
-  CC = cc
-! CFLAGS = -O3 -fexceptions -fPIC
-  
-  # C++ compiler (also uses CFLAGS)
-  CPLUSPLUS = g++
-***************
-*** 71,78 ****
-  # MAKE = gmake
-  
-  # For "make install"
-! INSTALL_LIB = /usr/local/lib
-! INSTALL_INCLUDE = /usr/local/include
-  
-  #------------------------------------------------------------------------------
-  # BLAS and LAPACK configuration:
---- 71,78 ----
-  # MAKE = gmake
-  
-  # For "make install"
-! INSTALL_LIB = $(out)/lib
-! INSTALL_INCLUDE = $(out)/include
-  
-  #------------------------------------------------------------------------------
-  # BLAS and LAPACK configuration:
-***************
-*** 127,134 ****
-  # The path is relative to where it is used, in CHOLMOD/Lib, CHOLMOD/MATLAB, etc.
-  # You may wish to use an absolute path.  METIS is optional.  Compile
-  # CHOLMOD with -DNPARTITION if you do not wish to use METIS.
-! METIS_PATH = ../../metis-4.0
-! METIS = ../../metis-4.0/libmetis.a
-  
-  # If you use CHOLMOD_CONFIG = -DNPARTITION then you must use the following
-  # options:
---- 127,134 ----
-  # The path is relative to where it is used, in CHOLMOD/Lib, CHOLMOD/MATLAB, etc.
-  # You may wish to use an absolute path.  METIS is optional.  Compile
-  # CHOLMOD with -DNPARTITION if you do not wish to use METIS.
-! #METIS_PATH = ../../metis-4.0
-! #METIS = 
-  
-  # If you use CHOLMOD_CONFIG = -DNPARTITION then you must use the following
-  # options:
-***************
-*** 189,195 ****
-  # -DNSUNPERF	    for Solaris only.  If defined, do not use the Sun
-  #			Performance Library
-  
-! CHOLMOD_CONFIG =
-  
-  #------------------------------------------------------------------------------
-  # SuiteSparseQR configuration:
---- 189,195 ----
-  # -DNSUNPERF	    for Solaris only.  If defined, do not use the Sun
-  #			Performance Library
-  
-! CHOLMOD_CONFIG = -DNPARTITION
-  
-  #------------------------------------------------------------------------------
-  # SuiteSparseQR configuration:
-***************
-*** 203,209 ****
-  # -DHAVE_TBB        enable the use of Intel's Threading Building Blocks (TBB)
-  
-  # default, without timing, without TBB:
-! SPQR_CONFIG =
-  # with timing and TBB:
-  # SPQR_CONFIG = -DTIMING -DHAVE_TBB
-  # with timing
---- 203,209 ----
-  # -DHAVE_TBB        enable the use of Intel's Threading Building Blocks (TBB)
-  
-  # default, without timing, without TBB:
-! SPQR_CONFIG = -DNPARTITION
-  # with timing and TBB:
-  # SPQR_CONFIG = -DTIMING -DHAVE_TBB
-  # with timing
 diff -Nrc SuiteSparse/UMFPACK/Demo/Makefile SuiteSparse-new/UMFPACK/Demo/Makefile
 *** SuiteSparse/UMFPACK/Demo/Makefile	2009-11-11 21:09:45.000000000 +0100
 --- SuiteSparse-new/UMFPACK/Demo/Makefile	2010-08-02 12:53:16.000000000 +0200
 ***************
-*** 40,51 ****
+*** 40,46 ****
   ../../CAMD/Lib/libcamd.a:
   	( cd ../../CAMD ; $(MAKE) library )
   
-- ../../metis-4.0/libmetis.a:
-- 	( cd ../../metis-4.0/Lib ; $(MAKE) )
+- $(METIS):
+- 	( cd $(METIS_PATH) && $(MAKE) )
   
   UMFPACK = ../Lib/libumfpack.a ../../AMD/Lib/libamd.a \
-      ../../CHOLMOD/Lib/libcholmod.a ../../COLAMD/Lib/libcolamd.a \
-!     ../../CAMD/Lib/libcamd.a ../../metis-4.0/libmetis.a \
-      ../../CCOLAMD/Lib/libccolamd.a
-  
-  libs: $(UMFPACK)
---- 40,49 ----
+--- 40,44 ----
   ../../CAMD/Lib/libcamd.a:
   	( cd ../../CAMD ; $(MAKE) library )
   
   
   UMFPACK = ../Lib/libumfpack.a ../../AMD/Lib/libamd.a \
-      ../../CHOLMOD/Lib/libcholmod.a ../../COLAMD/Lib/libcolamd.a \
-!     ../../CAMD/Lib/libcamd.a \
-      ../../CCOLAMD/Lib/libccolamd.a
-  
-  libs: $(UMFPACK)
diff --git a/pkgs/development/libraries/tclgpg/default.nix b/pkgs/development/libraries/tclgpg/default.nix
new file mode 100644
index 000000000000..d8bea7f14e3e
--- /dev/null
+++ b/pkgs/development/libraries/tclgpg/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchsvn, autoconf, automake, tcl, tcllib, gnupg }:
+
+stdenv.mkDerivation rec {
+  name = "tclgpg-${version}";
+  version = "1.0pre";
+
+  src = fetchsvn {
+    url = "http://tclgpg.googlecode.com/svn/trunk";
+    rev = 74;
+    sha256 = "5207b1d246fea6d4527e8c044579dae45a2e31eeaa5633f4f97c7e7b54ec27c5";
+  };
+
+  configureFlags = "--with-tcl=" + tcl + "/lib "
+                 + "--with-tclinclude=" + tcl + "/include ";
+
+  preConfigure = ''
+    configureFlags="--exec_prefix=$prefix $configureFlags"
+    sed -i -e 's|dtplite|TCLLIBPATH="${tcllib}/lib/tcllib${tcllib.version}" &|' Makefile.in
+    autoreconf -vfi
+  '';
+
+  prePatch = ''
+    sed -i -e 's|\[auto_execok gpg\]|"${gnupg}/bin/gpg2"|' tclgpg.tcl
+  '';
+
+  passthru = {
+    libPrefix = "gpg1.0";
+  };
+
+  buildInputs = [ autoconf automake tcl tcllib ];
+
+  meta = {
+    homepage = http://code.google.com/p/tclgpg/;
+    description = "A Tcl interface to GNU Privacy Guard";
+    license = stdenv.lib.licenses.bsd2;
+  };
+}
diff --git a/pkgs/development/libraries/tcllib/default.nix b/pkgs/development/libraries/tcllib/default.nix
index fcfbbe19d949..12bbe0914e0e 100644
--- a/pkgs/development/libraries/tcllib/default.nix
+++ b/pkgs/development/libraries/tcllib/default.nix
@@ -9,5 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "11052fgfmv9vyswzjjgfvh3pi0k3fnfnl9ri6nl4vc6f6z5ry56x";
   };
 
-  buildInputs = [tcl];
+  passthru = {
+    libPrefix = "tcllib${version}";
+  };
+
+  buildInputs = [ tcl ];
+
+  meta = {
+    homepage = "http://tcl.activestate.com/software/tcllib/";
+    description = "Tcl-only library of standard routines for Tcl";
+    license = stdenv.lib.licenses.tcltk;
+  };
 }
diff --git a/pkgs/development/libraries/tcltls/default.nix b/pkgs/development/libraries/tcltls/default.nix
index dbbfc3d38556..278fed375145 100644
--- a/pkgs/development/libraries/tcltls/default.nix
+++ b/pkgs/development/libraries/tcltls/default.nix
@@ -17,5 +17,15 @@ stdenv.mkDerivation rec {
     sha256 = "adec50143a9ad634a671d24f7c7bbf2455487eb5f12d290f41797c32a98b93f3";
   };
 
-  buildInputs = [tcl openssl];
+  passthru = {
+    libPrefix = "tls${version}";
+  };
+
+  buildInputs = [ tcl openssl ];
+
+  meta = {
+    homepage = "http://tls.sourceforge.net/";
+    description = "An OpenSSL / RSA-bsafe Tcl extension";
+    license = stdenv.lib.licenses.tcltk;
+  };
 }
diff --git a/pkgs/development/libraries/v8/default.nix b/pkgs/development/libraries/v8/default.nix
index a7630ee5d692..5cd083a7e330 100644
--- a/pkgs/development/libraries/v8/default.nix
+++ b/pkgs/development/libraries/v8/default.nix
@@ -1,36 +1,43 @@
-{ stdenv, fetchsvn, python, scons, readline, makeWrapper }:
+{ stdenv, fetchsvn, gyp, readline, python, which }:
 
 assert readline != null;
 
 let
   system = stdenv.system;
   arch = if system == "i686-linux" then "ia32" else if system == "x86_64-linux" || system == "x86_64-darwin" then "x64" else "";
-  version = "3.6.6.25";
+  version = "3.11.10.22";
 in
+
 assert arch != "";
+
 stdenv.mkDerivation rec {
     name = "v8-${version}";
     src = fetchsvn {
       url = "http://v8.googlecode.com/svn/tags/${version}";
-      sha256 = "2a097cbea29a8488419840245bf7bf85513941ceb22c5ef0a3825bfe5edaa045";
+      sha256 = "1bm3hg4pa17xvs8s895bwklxpaihl3f3vzghdg55s1wd0y4dj96j";
     };
 
-    buildInputs = [python scons readline makeWrapper];
-
-    buildPhase = ''
-      export CXX=`type -p g++`
-      export CPPPATH=${readline}/include
-      export LIBPATH=${readline}/lib
-      scons snapshot=on console=readline library=shared importenv=PATH arch=${arch} library d8
+    configurePhase = ''
+      mkdir build/gyp
+      ln -sv ${gyp}/bin/gyp build/gyp/gyp
     '';
 
+    buildNativeInputs = stdenv.lib.optional (system == "i686-linux") which;
+    buildInputs = [ readline python ];
+
+    buildFlags = [
+      "library=shared"
+      "console=readline"
+      "${arch}.release"
+    ];
+
+    enableParallelBuilding = true;
+
     installPhase = ''
       mkdir -p $out/bin
       mkdir -p $out/lib
-
-      cp -v libv8.* $out/lib
-      cp -v d8 $out/bin/d8
-      cp -vR include $out/
-      wrapProgram $out/bin/d8 --set ${if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"} $out/lib
+      mv -v out/${arch}.release/d8 $out/bin
+      mv -v out/${arch}.release/lib.target/libv8.so $out/lib
+      mv -v include $out/
     '';
 }
diff --git a/pkgs/development/libraries/webkit/gtk2.nix b/pkgs/development/libraries/webkit/gtk2.nix
index 76a9b90b411c..5c755c193a52 100644
--- a/pkgs/development/libraries/webkit/gtk2.nix
+++ b/pkgs/development/libraries/webkit/gtk2.nix
@@ -13,8 +13,8 @@ rec {
   buildInputs = [gtk glib atk cairo curl fontconfig freetype
     gettext libjpeg libpng libtiff libxml2 libxslt pango
     sqlite icu gperf bison flex autoconf automake libtool 
-    perl intltool pkgconfig libsoup gtkdoc libXt libproxy
-    enchant python ruby which renderproto libXrender geoclue
+    intltool pkgconfig libsoup gtkdoc libXt libproxy
+    enchant python ruby which renderproto libXrender geoclue perl
     ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/ocaml-modules/extlib/default.nix b/pkgs/development/ocaml-modules/extlib/default.nix
index 55e1c8418305..a520f8196d8a 100644
--- a/pkgs/development/ocaml-modules/extlib/default.nix
+++ b/pkgs/development/ocaml-modules/extlib/default.nix
@@ -8,6 +8,7 @@ stdenv.mkDerivation {
     sha256 = "ca6d69adeba4242ce41c02a23746ba1e464c0bbec66e2d16b02c3c6e85dc10aa";
   };
 
+  patches = [ ./hashtable-ocaml4-compat.patch ];
   buildInputs = [ocaml findlib];
 
   createFindlibDestdir = true;
diff --git a/pkgs/development/ocaml-modules/extlib/hashtable-ocaml4-compat.patch b/pkgs/development/ocaml-modules/extlib/hashtable-ocaml4-compat.patch
new file mode 100644
index 000000000000..c587f2b6cd3b
--- /dev/null
+++ b/pkgs/development/ocaml-modules/extlib/hashtable-ocaml4-compat.patch
@@ -0,0 +1,12 @@
+Revision 396 from the official extlib repository.
+
+--- extlib/extHashtbl.ml	(revision 395)
++++ extlib/extHashtbl.ml	(working copy)
+@@ -32,6 +32,7 @@
+ 	}
+ 
+ 	include Hashtbl
++	let create n = Hashtbl.create (* no seed *) n
+ 
+ 	external h_conv : ('a, 'b) t -> ('a, 'b) h_t = "%identity"
+ 	external h_make : ('a, 'b) h_t -> ('a, 'b) t = "%identity"
\ No newline at end of file
diff --git a/pkgs/development/ocaml-modules/ocamlgraph/default.nix b/pkgs/development/ocaml-modules/ocamlgraph/default.nix
index 92a465731174..2e109f1d6210 100644
--- a/pkgs/development/ocaml-modules/ocamlgraph/default.nix
+++ b/pkgs/development/ocaml-modules/ocamlgraph/default.nix
@@ -1,8 +1,8 @@
-{stdenv, fetchurl, ocaml, findlib }:
+{stdenv, fetchurl, ocaml, findlib, ocamlPackages }:
 
 let
   ocaml_version = (builtins.parseDrvName ocaml.name).version;
-  version = "1.8.1";
+  version = "1.8.2";
 in
 
 stdenv.mkDerivation {
@@ -10,15 +10,21 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://ocamlgraph.lri.fr/download/ocamlgraph-${version}.tar.gz";
-    sha256 = "0hrba69wvw9b42irkvjf6q7zzw12v5nyyc33yaq3jlf1qbzqhqxs";
+    sha256 = "e54ae60cd977a032854166dad56348d0fb76c6cd8e03e960af455268f0c8b5a6";
   };
 
-  buildInputs = [ ocaml findlib ];
+  buildInputs = [ ocaml findlib ocamlPackages.lablgtk ];
 
   patches = ./destdir.patch;
 
+  # some patching is required so that the lablgtk2 library is taken into account. It
+  # does not reside in a subdirectory of the default library path, hence:
+  # * configure looked in the wrong path
+  # * ocaml needs that directory and the stubs directory as -I flag
   postPatch = ''
     sed -i 's@$(DESTDIR)$(OCAMLLIB)/ocamlgraph@$(DESTDIR)/lib/ocaml/${ocaml_version}/site-lib/ocamlgraph@' Makefile.in
+    sed -i 's@$OCAMLLIB/lablgtk2@${ocamlPackages.lablgtk}/lib/ocaml/${ocaml_version}/site-lib/lablgtk2@' configure Makefile.in
+    sed -i 's@-I +lablgtk2@-I ${ocamlPackages.lablgtk}/lib/ocaml/${ocaml_version}/site-lib/lablgtk2 -I ${ocamlPackages.lablgtk}/lib/ocaml/${ocaml_version}/site-lib/stublibs@' configure Makefile.in editor/Makefile
   '';
 
   createFindlibDestdir = true;
diff --git a/pkgs/development/ocaml-modules/ocamlmake/default.nix b/pkgs/development/ocaml-modules/ocamlmake/default.nix
index 23858576efd5..0170119d94e0 100644
--- a/pkgs/development/ocaml-modules/ocamlmake/default.nix
+++ b/pkgs/development/ocaml-modules/ocamlmake/default.nix
@@ -2,14 +2,14 @@
 
 let
 
-  version = "6.36.0";
-  sha256 = "7c9a771d79bf945050dc7530957f4b61669976177818185e64c002cbfd75e3a2";
+  version = "6.37.0";
+  sha256 = "99ff58080ed154cc4bd70f915fe4760dffb026a1c0447caa0b3bdb982b24b0a8";
 
 in stdenv.mkDerivation {
   name = "ocaml-make-${version}";
 
   src = fetchurl {
-    url = "http://hg.ocaml.info/release/ocaml-make/archive/release-${version}.tar.bz2";
+    url = "http://bitbucket.org/mmottl/ocaml-makefile/downloads/ocaml-makefile-${version}.tar.gz";
     inherit sha256;
   };
 
diff --git a/pkgs/development/ocaml-modules/sexplib/default.nix b/pkgs/development/ocaml-modules/sexplib/default.nix
index d999dc471bdb..32d5c842dc8c 100644
--- a/pkgs/development/ocaml-modules/sexplib/default.nix
+++ b/pkgs/development/ocaml-modules/sexplib/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "b1022da052254581aae51fb634345920364439f715a2c786abcd0b828c2ce697";
   };
 
-  patches = [ ./sexp-3.10-compat.patch ];
+  patches = [ ./sexp-3.10-compat.patch ./sexplib-7.0.5-patch-ocamlbuild-ocaml4.patch ];
   buildInputs = [ocaml findlib ocaml_typeconv ];
 
   createFindlibDestdir = true;
diff --git a/pkgs/development/ocaml-modules/sexplib/sexplib-7.0.5-patch-ocamlbuild-ocaml4.patch b/pkgs/development/ocaml-modules/sexplib/sexplib-7.0.5-patch-ocamlbuild-ocaml4.patch
new file mode 100644
index 000000000000..02e13e39445a
--- /dev/null
+++ b/pkgs/development/ocaml-modules/sexplib/sexplib-7.0.5-patch-ocamlbuild-ocaml4.patch
@@ -0,0 +1,29 @@
+Patch from the fedora repository.
+
+--- sexplib-7.0.5.old/myocamlbuild.ml	2012-03-20 16:41:54.000000000 +0000
++++ sexplib-7.0.5/myocamlbuild.ml	2012-07-30 11:38:21.829869635 +0100
+@@ -438,7 +438,13 @@
+                    BaseEnvLight.var_choose cond_specs env
+                  in
+                    flag tags & spec)
+-              t.flags
++              t.flags;
++
++            flag ["ocaml"; "compile"; "byte"; "use_toploop"] (S[A"-I"; A"+compiler-libs"]);
++            flag ["ocaml"; "link"; "byte"; "use_toploop"] (S[A"-I"; A"+compiler-libs"; A"+compiler-libs/ocamltoplevel.cma"]);
++            flag ["ocaml"; "compile"; "native"; "use_toploop"] (S[A"-I"; A"+compiler-libs"]);
++            flag ["ocaml"; "link"; "native"; "use_toploop"] (S[A"-I"; A"+compiler-libs"; A"+compiler-libs/ocamltoplevel.cmxa"]);
++
+         | _ -> 
+             ()
+   
+--- sexplib-7.0.5.old/_tags	2012-03-20 16:41:54.000000000 +0000
++++ sexplib-7.0.5/_tags	2012-07-30 11:37:01.749255839 +0100
+@@ -49,6 +49,7 @@
+ <lib_test/*.ml{,i}>: pkg_camlp4.extend
+ # Library sexplib_top
+ "top": include
++<top/*.ml{,i}>: use_toploop
+ # Executable sexp_test
+ "lib_test/sexp_test.byte": use_sexplib
+ "lib_test/sexp_test.byte": pkg_unix
diff --git a/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix b/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
index 4aa8b4ad8123..c2c7b5f83631 100644
--- a/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
+++ b/pkgs/development/perl-modules/Compress-Raw-Zlib/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, buildPerlPackage, zlib }:
+{ fetchurl, buildPerlPackage, zlib, stdenv }:
 
 buildPerlPackage rec {
   name = "Compress-Raw-Zlib-2.051";
@@ -17,4 +17,6 @@ buildPerlPackage rec {
       GZIP_OS_CODE = AUTO_DETECT
     EOF
   '';
+
+  doCheck = !stdenv.isDarwin;
 }
diff --git a/pkgs/development/perl-modules/DBD-Pg/default.nix b/pkgs/development/perl-modules/DBD-Pg/default.nix
index 29a1da9c7acb..0d0cb1accc5b 100644
--- a/pkgs/development/perl-modules/DBD-Pg/default.nix
+++ b/pkgs/development/perl-modules/DBD-Pg/default.nix
@@ -1,15 +1,17 @@
-{ fetchurl, buildPerlPackage, DBI, postgresql }:
+{ stdenv, fetchurl, buildPerlPackage, DBI, postgresql }:
 
 buildPerlPackage rec {
-  name = "DBD-Pg-2.18.1";
-  
+  name = "DBD-Pg-2.19.2";
+
   src = fetchurl {
     url = "mirror://cpan/modules/by-module/DBD/${name}.tar.gz";
-    sha256 = "10nrmi0hgc9h8c0jbpd9bbbzkdb1riymnlk7a86537c0d4gfqcpm";
+    sha256 = "0scnhbp0lfclbppbsfzmcyw32z8jhb9calvbg9q3gk4kli1119j9";
   };
-  
-  buildInputs = [postgresql] ;
-  propagatedBuildInputs = [DBI];
-  
+
+  buildInputs = [ postgresql ];
+  propagatedBuildInputs = [ DBI ];
+
   makeMakerFlags = "POSTGRES_HOME=${postgresql}";
+
+  meta.platforms = stdenv.lib.platforms.linux;
 }
diff --git a/pkgs/development/perl-modules/DBD-SQLite/default.nix b/pkgs/development/perl-modules/DBD-SQLite/default.nix
index 8e1faf900a06..5afa889f5433 100644
--- a/pkgs/development/perl-modules/DBD-SQLite/default.nix
+++ b/pkgs/development/perl-modules/DBD-SQLite/default.nix
@@ -1,15 +1,15 @@
-{fetchurl, buildPerlPackage, DBI, sqlite}:
+{ stdenv, fetchurl, buildPerlPackage, DBI, sqlite }:
 
 buildPerlPackage rec {
   name = "DBD-SQLite-1.35";
-  
+
   src = fetchurl {
     url = "mirror://cpan/authors/id/A/AD/ADAMK/${name}.tar.gz";
     sha256 = "0zdwnj0jmkaqb2grkh451g1jc8nsdy4sf6lhn8xd0my0a3pd227z";
   };
-  
+
   propagatedBuildInputs = [ DBI ];
-  
+
   makeMakerFlags = "SQLITE_LOCATION=${sqlite}";
 
   patches = [
@@ -17,10 +17,23 @@ buildPerlPackage rec {
     ./external-sqlite.patch
   ];
 
-  # Prevent warnings from `strip'.
-  postInstall = "chmod -R u+w $out";
+  preBuild =
+    ''
+      substituteInPlace Makefile --replace -L/usr/lib ""
+    '';
+
+  postInstall =
+    ''
+      # Prevent warnings from `strip'.
+      chmod -R u+w $out
+
+      # Get rid of a pointless copy of the SQLite sources.
+      rm -rf $out/lib/perl5/site_perl/*/*/auto/share
+    '';
 
   # Disabled because the tests can randomly fail due to timeouts
   # (e.g. "database is locked(5) at dbdimp.c line 402 at t/07busy.t").
   doCheck = false;
+
+  meta.platforms = stdenv.lib.platforms.linux;
 }
diff --git a/pkgs/development/perl-modules/DB_File/default.nix b/pkgs/development/perl-modules/DB_File/default.nix
index 858d459f5ca1..f6396af8b652 100644
--- a/pkgs/development/perl-modules/DB_File/default.nix
+++ b/pkgs/development/perl-modules/DB_File/default.nix
@@ -1,11 +1,11 @@
 {fetchurl, buildPerlPackage, db4}:
 
-buildPerlPackage {
-  name = "DB_File-1.820";
-  
+buildPerlPackage rec {
+  name = "DB_File-1.826";
+
   src = fetchurl {
-    url = mirror://cpan/authors/id/P/PM/PMQS/DB_File-1.820.tar.gz;
-    sha256 = "0jnz5lsrad67j42sdw5bqpkmgiyj45rpiqgkff3i21252k9d5s7a";
+    url = "mirror://cpan/authors/id/P/PM/PMQS/${name}.tar.gz";
+    sha256 = "c39828ef3cfecff8197ff057cb1c6127b87107c051d182b87c6b9ac79d23f09c";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/python-modules/pyopenssl/default.nix b/pkgs/development/python-modules/pyopenssl/default.nix
index 0e282cf71f3f..1d4fe53117ce 100644
--- a/pkgs/development/python-modules/pyopenssl/default.nix
+++ b/pkgs/development/python-modules/pyopenssl/default.nix
@@ -2,15 +2,15 @@ a :
 let
   fetchurl = a.fetchurl;
 
-  version = a.lib.attrByPath ["version"] "0.10" a;
+  version = a.lib.attrByPath ["version"] "0.13" a;
   propagatedBuildInputs = with a; [
     openssl python
   ];
 in
 rec {
   src = fetchurl {
-    url = "http://pypi.python.org/packages/source/p/pyOpenSSL/pyOpenSSL-0.10.tar.gz";
-    sha256 = "4514f8960389042ca2587f9cb801a13f7990387753fc678680b0c084719b5b60";
+    url = "http://pypi.python.org/packages/source/p/pyOpenSSL/pyOpenSSL-${version}.tar.gz";
+    sha256 = "21e12b03abaa0e04ecc8cd9c251598f71bae11c9f385304234e4ea5618c6163b";
   };
 
   inherit propagatedBuildInputs;
diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix
index a625de6ffdce..a5042ffc7d46 100644
--- a/pkgs/development/tools/analysis/valgrind/default.nix
+++ b/pkgs/development/tools/analysis/valgrind/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl, gdb }:
 
 stdenv.mkDerivation (rec {
-  name = "valgrind-3.7.0";
+  name = "valgrind-3.8.0";
 
   src = fetchurl {
     url = "http://valgrind.org/downloads/${name}.tar.bz2";
-    sha256 = "1xnb4jiimscwriw3jd1lkk0m9x4glqpijj9jb4ngx08l1wrw0qjx";
+    sha256 = "1310lxmzidrbv0l3hrf45ampkf61gv2vb8msnqm684lp41gmh5px";
   };
 
   # Perl is needed for `cg_annotate'.
diff --git a/pkgs/development/tools/boomerang/default.nix b/pkgs/development/tools/boomerang/default.nix
new file mode 100644
index 000000000000..eadeb51d1b39
--- /dev/null
+++ b/pkgs/development/tools/boomerang/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, cmake, boehmgc, expat, cppunit }:
+
+stdenv.mkDerivation {
+  name = "boomerang-1.0pre";
+
+  buildInputs = [ cmake boehmgc expat cppunit ];
+
+  installPhase = ''
+    for loaderfile in loader/*.so
+    do
+      install -vD "$loaderfile" "$out/lib/$(basename "$loaderfile")"
+    done
+
+    install -vD boomerang "$out/bin/boomerang"
+  '';
+
+  patches = [ ./dlopen_path.patch ];
+
+  src = fetchgit {
+    url = "git://github.com/aszlig/boomerang.git";
+    rev = "d0b147a5dfc915a5fa8fe6c517e66a049a37bf22";
+    sha256 = "6cfd95a3539ff45c18b17de76407568b0d0c17fde4e45dda54486c7eac113969";
+  };
+
+  meta = {
+    homepage = http://boomerang.sourceforge.net/;
+    license = stdenv.lib.licenses.bsd3;
+    description = "A general, open source, retargetable decompiler";
+  };
+}
diff --git a/pkgs/development/tools/boomerang/dlopen_path.patch b/pkgs/development/tools/boomerang/dlopen_path.patch
new file mode 100644
index 000000000000..1e4bf3c75a30
--- /dev/null
+++ b/pkgs/development/tools/boomerang/dlopen_path.patch
@@ -0,0 +1,13 @@
+diff --git a/loader/BinaryFileFactory.cpp b/loader/BinaryFileFactory.cpp
+index 889a4ed..ca86765 100644
+--- a/loader/BinaryFileFactory.cpp
++++ b/loader/BinaryFileFactory.cpp
+@@ -109,7 +109,7 @@ BinaryFile* BinaryFileFactory::getInstanceFor( const char *sName ) {
+ 	
+ // Load the specific loader library
+ #ifndef _WIN32		// Cygwin, Unix/Linux
+-	libName = std::string("lib/lib") + libName;
++	libName = std::string("lib") + libName;
+ #ifdef	__CYGWIN__
+ 	libName += ".dll";		// Cygwin wants .dll, but is otherwise like Unix
+ #else
diff --git a/pkgs/development/tools/documentation/haddock/2.11.0.nix b/pkgs/development/tools/documentation/haddock/2.11.0.nix
new file mode 100644
index 000000000000..92dccbf05a6b
--- /dev/null
+++ b/pkgs/development/tools/documentation/haddock/2.11.0.nix
@@ -0,0 +1,18 @@
+{ cabal, alex, Cabal, filepath, ghcPaths, happy, xhtml }:
+
+cabal.mkDerivation (self: {
+  pname = "haddock";
+  version = "2.11.0";
+  sha256 = "0a29n6y9lmk5w78f6j8s7pg0m0k3wm7bx5r2lhk7bnzkr5f7rkcd";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ Cabal filepath ghcPaths xhtml ];
+  buildTools = [ alex happy ];
+  meta = {
+    homepage = "http://www.haskell.org/haddock/";
+    description = "A documentation-generation tool for Haskell libraries";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/tools/documentation/haddock/2.12.0.nix b/pkgs/development/tools/documentation/haddock/2.12.0.nix
new file mode 100644
index 000000000000..39610f9a08c2
--- /dev/null
+++ b/pkgs/development/tools/documentation/haddock/2.12.0.nix
@@ -0,0 +1,18 @@
+{ cabal, alex, Cabal, deepseq, filepath, ghcPaths, happy, xhtml }:
+
+cabal.mkDerivation (self: {
+  pname = "haddock";
+  version = "2.12.0";
+  sha256 = "00kdmpa6vhn6x790641ln40v3pn7aj4ws6pq854n1iyg5ly3ridn";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ Cabal deepseq filepath ghcPaths xhtml ];
+  buildTools = [ alex happy ];
+  meta = {
+    homepage = "http://www.haskell.org/haddock/";
+    description = "A documentation-generation tool for Haskell libraries";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/tools/documentation/haddock/2.7.2.nix b/pkgs/development/tools/documentation/haddock/2.7.2.nix
index c94b3e43b7e1..0c744d624191 100644
--- a/pkgs/development/tools/documentation/haddock/2.7.2.nix
+++ b/pkgs/development/tools/documentation/haddock/2.7.2.nix
@@ -17,9 +17,6 @@ cabal.mkDerivation (self : {
     description = "A documentation-generation tool for Haskell libraries";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    maintainers = [
-      self.stdenv.lib.maintainers.andres
-      self.stdenv.lib.maintainers.simons
-    ];
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
   };
 })
diff --git a/pkgs/development/tools/documentation/haddock/2.9.2.nix b/pkgs/development/tools/documentation/haddock/2.9.2.nix
index c6543936ab31..8e5b79cd5194 100644
--- a/pkgs/development/tools/documentation/haddock/2.9.2.nix
+++ b/pkgs/development/tools/documentation/haddock/2.9.2.nix
@@ -19,7 +19,6 @@ cabal.mkDerivation (self : {
     platforms = self.ghc.meta.platforms;
     maintainers = [
       self.stdenv.lib.maintainers.andres
-      self.stdenv.lib.maintainers.simons
     ];
   };
 })
diff --git a/pkgs/development/tools/haskell/SourceGraph/default.nix b/pkgs/development/tools/haskell/SourceGraph/default.nix
index 731722126ca1..382a940408f4 100644
--- a/pkgs/development/tools/haskell/SourceGraph/default.nix
+++ b/pkgs/development/tools/haskell/SourceGraph/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "SourceGraph";
-  version = "0.7.0.2";
-  sha256 = "0cdspzsz15r83fjry9467z67h6vvnjh31fip6gf64k74gdjkfisl";
+  version = "0.7.0.3";
+  sha256 = "04bx7przxha38n9vckcxz3mbcxcws5ifbc1xfm0rg6bn8rym78yb";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/haskell/cabal2nix/default.nix b/pkgs/development/tools/haskell/cabal2nix/default.nix
index 091417cb8a39..72c032342d91 100644
--- a/pkgs/development/tools/haskell/cabal2nix/default.nix
+++ b/pkgs/development/tools/haskell/cabal2nix/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal2nix";
-  version = "1.37";
-  sha256 = "0gd20nzr3bqscd4pn0j3vsmnhxiypbv5ppncmi0ck5n4ii8c6m94";
+  version = "1.39";
+  sha256 = "0q2kgzjbcrqxml12hncsrkjdwjiq52dp00v6i3qdgiyj460iy60d";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [ Cabal filepath hackageDb HTTP mtl regexPosix ];
diff --git a/pkgs/development/tools/haskell/hlint/default.nix b/pkgs/development/tools/haskell/hlint/default.nix
index 471b22a5825d..bb61bbaa7dcc 100644
--- a/pkgs/development/tools/haskell/hlint/default.nix
+++ b/pkgs/development/tools/haskell/hlint/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hlint";
-  version = "1.8.30";
-  sha256 = "1c52h7pi759dnqzfq46nyckp75aswpqkf2n7aag2np955ky7rd05";
+  version = "1.8.31";
+  sha256 = "0d7m7viqf1cawbafiy4nj67hkavlxkv537qypy2vlhr502fispa4";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/haskell/hslogger/default.nix b/pkgs/development/tools/haskell/hslogger/default.nix
index 4128f6b7d098..4443637def47 100644
--- a/pkgs/development/tools/haskell/hslogger/default.nix
+++ b/pkgs/development/tools/haskell/hslogger/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hslogger";
-  version = "1.2.0";
-  sha256 = "17ipnz7zd403x2gi2086chrgcnk76304hdxr5mv4phg4rm8w226y";
+  version = "1.2.1";
+  sha256 = "1vfdf7i6fd4mb3rn57z3wn7bhw4z5g47f4vggb4sms5rg4zqqly5";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ mtl network time ];
diff --git a/pkgs/development/tools/haskell/jailbreak-cabal/default.nix b/pkgs/development/tools/haskell/jailbreak-cabal/default.nix
new file mode 100644
index 000000000000..303e7ceb2c30
--- /dev/null
+++ b/pkgs/development/tools/haskell/jailbreak-cabal/default.nix
@@ -0,0 +1,17 @@
+{ cabal, Cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "jailbreak-cabal";
+  version = "1.0";
+  sha256 = "10vq592fx1i3fdqiij7daf3dmqq5c8c29ihr2y1rn2pjhkyiy4kk";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ Cabal ];
+  meta = {
+    homepage = "http://github.com/peti/jailbreak-cabal";
+    description = "Strip version restrictions from build dependencies in Cabal files";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.simons ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/splot/default.nix b/pkgs/development/tools/haskell/splot/default.nix
new file mode 100644
index 000000000000..4541bece0048
--- /dev/null
+++ b/pkgs/development/tools/haskell/splot/default.nix
@@ -0,0 +1,21 @@
+{ cabal, bytestringLexing, cairo, Chart, colour, HUnit, mtl
+, strptime, time, vcsRevision
+}:
+
+cabal.mkDerivation (self: {
+  pname = "splot";
+  version = "0.3.4";
+  sha256 = "1qfi8vqm4zliz0lmi6njicm8xha6w8w55il09k0d1w5akwi93x5j";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [
+    bytestringLexing cairo Chart colour HUnit mtl strptime time
+    vcsRevision
+  ];
+  meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Splot";
+    description = "A tool for visualizing the lifecycle of many concurrent multi-staged processes";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/tools/haskell/timeplot/default.nix b/pkgs/development/tools/haskell/timeplot/default.nix
new file mode 100644
index 000000000000..4e4834e22413
--- /dev/null
+++ b/pkgs/development/tools/haskell/timeplot/default.nix
@@ -0,0 +1,23 @@
+{ cabal, bytestringLexing, cairo, Chart, colour, dataAccessor
+, dataAccessorTemplate, regexTdfa, strptime, time, transformers
+, vcsRevision
+}:
+
+cabal.mkDerivation (self: {
+  pname = "timeplot";
+  version = "1.0.11";
+  sha256 = "08lgs96wi0issnjwb6w41v3z1bbb6g08hrlbkw7h60rjqkg48svs";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [
+    bytestringLexing cairo Chart colour dataAccessor
+    dataAccessorTemplate regexTdfa strptime time transformers
+    vcsRevision
+  ];
+  meta = {
+    homepage = "http://haskell.org/haskellwiki/Timeplot";
+    description = "A tool for visualizing time series from log files";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/tools/misc/autobuild/default.nix b/pkgs/development/tools/misc/autobuild/default.nix
index 872dcb6c84cd..f8497b5deced 100644
--- a/pkgs/development/tools/misc/autobuild/default.nix
+++ b/pkgs/development/tools/misc/autobuild/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   name = "autobuild-3.5";
 
   src = fetchurl {
-    url = "http://josefsson.org/autobuild/releases/${name}.tar.gz";
+    url = "http://savannah.spinellicreations.com/autobuild/${name}.tar.gz";
     sha256 = "0ik13913x1yj8lsaf65chpiw13brl3q6kx7s1fa41a7s2krl1xvi";
   };
 
diff --git a/pkgs/development/tools/misc/coccinelle/default.nix b/pkgs/development/tools/misc/coccinelle/default.nix
index 0b5fa4b8d611..d31e2ec5f3bc 100644
--- a/pkgs/development/tools/misc/coccinelle/default.nix
+++ b/pkgs/development/tools/misc/coccinelle/default.nix
@@ -1,9 +1,9 @@
-{ fetchurl, stdenv, python, ncurses, ocamlPackages, makeWrapper }:
+{ fetchurl, stdenv, python, ncurses, ocamlPackages, pkgconfig, makeWrapper }:
 
 let
 
-  name = "coccinelle-1.0.0-rc12";
-  sha256 = "03b8930a53623ec79dc2486e9b6a569e373958cf46074c5f1d0028c70708498d";
+  name = "coccinelle-1.0.0-rc15";
+  sha256 = "07fab4e17512925b958890bb13c0809797074f2e44a1107b0074bdcc156b9596";
 
 in stdenv.mkDerivation {
   inherit name;
@@ -15,12 +15,15 @@ in stdenv.mkDerivation {
 
   buildInputs = with ocamlPackages; [
     ocaml findlib menhir
-    ocaml_pcre ocaml_sexplib pycaml
-    python ncurses makeWrapper
+    ocaml_pcre pycaml
+    python ncurses pkgconfig
+    makeWrapper
   ];
 
-  configureFlagsArray = [ "--enable-release" ];
-
+  # TODO: is the generation of this wrapper truly/still needed?
+  # I don't have a non-NixOS system, so I cannot verify this, but shouldn't
+  # libpython know where to find its modules? (the path is for example in
+  # its Sys-module).
   postInstall =
     # On non-NixOS systems, Coccinelle would end up looking up Python modules
     # in the wrong directory.
@@ -31,6 +34,8 @@ in stdenv.mkDerivation {
        done
     '';
 
+  configureFlags = "--enable-release";
+
   meta = {
     description = "Coccinelle, a program to apply C code semantic patches";
 
diff --git a/pkgs/development/tools/misc/cscope/default.nix b/pkgs/development/tools/misc/cscope/default.nix
index 3cba5cd2e76a..b9d2c10f5371 100644
--- a/pkgs/development/tools/misc/cscope/default.nix
+++ b/pkgs/development/tools/misc/cscope/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, ncurses, pkgconfig, emacs}:
 
 stdenv.mkDerivation rec {
-  name = "cscope-15.7a";
+  name = "cscope-15.8a";
 
   src = fetchurl {
-    url = "mirror://sourceforge/cscope/${name}.tar.bz2";
-    sha256 = "0dv0r66x31y2xxvad54x0wal8yb1krwbx3gjc82qpg4hlz5qnqq2";
+    url = "mirror://sourceforge/cscope/${name}.tar.gz";
+    sha256 = "07jdhxvp3dv7acvp0pwsdab1g2ncxjlcf838lj7vxgjs1p26lwzb";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/tools/misc/frama-c/0007-Port-to-OCamlgraph-1.8.2.patch b/pkgs/development/tools/misc/frama-c/0007-Port-to-OCamlgraph-1.8.2.patch
new file mode 100644
index 000000000000..1c16e1794abc
--- /dev/null
+++ b/pkgs/development/tools/misc/frama-c/0007-Port-to-OCamlgraph-1.8.2.patch
@@ -0,0 +1,64 @@
+From: Mehdi Dogguy <mehdi@debian.org>
+Date: Wed, 16 May 2012 14:48:40 +0200
+Subject: Port to OCamlgraph 1.8.2
+
+ o Graph.Topological: as of OCamlgraph 1.8.2, the input graph must
+   implement Sig.COMPARABLE instead of Sig.HASHABLE
+---
+ src/misc/service_graph.ml           |    2 +-
+ src/misc/service_graph.mli          |    2 +-
+ src/semantic_callgraph/register.ml  |    1 +
+ src/syntactic_callgraph/register.ml |    1 +
+ 4 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/misc/service_graph.ml b/src/misc/service_graph.ml
+index f30a1be..567698f 100644
+--- a/src/misc/service_graph.ml
++++ b/src/misc/service_graph.ml
+@@ -24,7 +24,7 @@ module Make
+   (G: sig
+      type t
+      module V: sig
+-       include Graph.Sig.HASHABLE
++       include Graph.Sig.COMPARABLE
+        val id: t -> int
+        val name: t -> string
+        val attributes: t -> Graph.Graphviz.DotAttributes.vertex list
+diff --git a/src/misc/service_graph.mli b/src/misc/service_graph.mli
+index 5ebb570..8006977 100644
+--- a/src/misc/service_graph.mli
++++ b/src/misc/service_graph.mli
+@@ -28,7 +28,7 @@ module Make
+   (G: sig
+      type t
+      module V: sig
+-       include Graph.Sig.HASHABLE
++       include Graph.Sig.COMPARABLE
+        val id: t -> int
+          (** assume is >= 0 and unique for each vertices of the graph *)
+        val name: t -> string
+diff --git a/src/semantic_callgraph/register.ml b/src/semantic_callgraph/register.ml
+index 0b3b4df..064dca8 100644
+--- a/src/semantic_callgraph/register.ml
++++ b/src/semantic_callgraph/register.ml
+@@ -107,6 +107,7 @@ module Service =
+                (if Kernel_function.is_definition v then `Bold
+                 else `Dotted) ]
+          let equal = Kernel_function.equal
++         let compare v1 v2 = Datatype.Int.compare (id v1) (id v2)
+          let hash = Kernel_function.hash
+          let entry_point () =
+            try Some (fst (Globals.entry_point ()))
+diff --git a/src/syntactic_callgraph/register.ml b/src/syntactic_callgraph/register.ml
+index 4efb594..d9d78b9 100644
+--- a/src/syntactic_callgraph/register.ml
++++ b/src/syntactic_callgraph/register.ml
+@@ -41,6 +41,7 @@ module Service =
+              | NIVar (_,b) when not !b -> `Style `Dotted
+              | _ -> `Style `Bold ]
+          let equal v1 v2 = id v1 = id v2
++         let compare v1 v2 = Datatype.Int.compare (id v1) (id v2)
+          let hash = id
+          let entry_point () = !entry_point_ref
+        end
+-- 
diff --git a/pkgs/development/tools/misc/frama-c/default.nix b/pkgs/development/tools/misc/frama-c/default.nix
new file mode 100644
index 000000000000..ede316b4b7b8
--- /dev/null
+++ b/pkgs/development/tools/misc/frama-c/default.nix
@@ -0,0 +1,67 @@
+# Note on a potential dependency-bloat:
+# Frama-c ships with several plugins that have dependencies on other
+# software. Not providing the dependencies has as effect that certain
+# plugins will not be available.
+# I've included the dependencies that are well-supported by nixpkgs
+# and seem useful in general. Not included are:
+#   alt-ergo, ltl2ba, otags, why-dp
+
+{ stdenv, fetchurl, ncurses, ocamlPackages, coq, graphviz }:
+
+let
+
+  version = "20111001";
+  sha256 = "8afad848321c958fab265045cd152482e77ce7c175ee7c9af2d4bec57a1bc671";
+
+in stdenv.mkDerivation {
+  name = "frama-c-${version}";
+
+  src = fetchurl {
+    url = "http://frama-c.com/download/frama-c-Nitrogen-${version}.tar.gz";
+    inherit sha256;
+  };
+
+  buildInputs = with ocamlPackages; [
+    ncurses ocaml findlib ocamlgraph
+    lablgtk coq graphviz  # optional dependencies
+  ];
+
+  patches = [
+    # this patch comes from the debian frama-c package, and was
+    # posted on the frama-c issue tracker.
+    ./0007-Port-to-OCamlgraph-1.8.2.patch
+  ];
+
+  postPatch = ''
+    # strip absolute paths to /usr/bin
+    for file in ./configure ./share/Makefile.common ./src/*/configure; do
+      substituteInPlace $file  --replace '/usr/bin/' ""
+    done
+
+    # find library paths
+    OCAMLGRAPH_HOME=`ocamlfind query ocamlgraph`
+    LABLGTK_HOME=`ocamlfind query lablgtk2`
+
+    # patch search paths
+    # ensure that the tests against the ocamlgraph version succeeds
+    # filter out the additional search paths from ocamldep
+    substituteInPlace ./configure \
+      --replace '$OCAMLLIB/ocamlgraph' "$OCAMLGRAPH_HOME" \
+      --replace '$OCAMLLIB/lablgtk2' "$LABLGTK_HOME" \
+      --replace '+ocamlgraph' "$OCAMLGRAPH_HOME" \
+      --replace '1.8)' '*)'
+    substituteInPlace ./Makefile --replace '+lablgtk2' "$LABLGTK_HOME" \
+      --replace '$(patsubst +%,.,$(INCLUDES) $(GUI_INCLUDES))' \
+                '$(patsubst /%,.,$(patsubst +%,.,$(INCLUDES) $(GUI_INCLUDES)))'
+  '';
+
+  meta = {
+    description = "Frama-C is an extensible tool for source-code analysis of C software";
+
+    homepage = http://frama-c.com/;
+    license = "GPLv2";
+
+    maintainers = [ stdenv.lib.maintainers.amiddelk ];
+    platforms = stdenv.lib.platforms.gnu;
+  };
+}
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index 1bc908185be4..08fde14eb53a 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -8,7 +8,7 @@
 
 let
 
-  basename = "gdb-7.4.1";
+  basename = "gdb-7.5";
 
   # Whether (cross-)building for GNU/Hurd.  This is an approximation since
   # having `stdenv ? cross' doesn't tell us if we're building `hostDrv' and
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnu/gdb/${basename}.tar.bz2";
-    md5 = "8854d34691087ec127d934692639855f";
+    md5 = "24a6779a9fe0260667710de1b082ef61";
   };
 
   # I think python is not a native input, but I leave it
diff --git a/pkgs/development/tools/misc/gdb/pstack.nix b/pkgs/development/tools/misc/gdb/pstack.nix
new file mode 100644
index 000000000000..12cdc6542609
--- /dev/null
+++ b/pkgs/development/tools/misc/gdb/pstack.nix
@@ -0,0 +1,11 @@
+{ stdenv, gdb }:
+stdenv.mkDerivation {
+  name = "pstack-20120823";
+  buildCommand = ''
+    mkdir -p $out/bin
+    cat > $out/bin/pstack <<EOF
+    ${gdb}/bin/gdb -ex "set pagination 0" -ex "thread apply all bt" --batch -p \$1
+    EOF
+    chmod a+x $out/bin/pstack
+  '';
+}
diff --git a/pkgs/development/tools/misc/patchelf/unstable.nix b/pkgs/development/tools/misc/patchelf/unstable.nix
new file mode 100644
index 000000000000..aa8418496eaa
--- /dev/null
+++ b/pkgs/development/tools/misc/patchelf/unstable.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "patchelf-0.7pre160_1c057cd";
+
+  src = fetchurl {
+    url = http://hydra.nixos.org/build/2961500/download/2/patchelf-0.7pre160_1c057cd.tar.bz2;
+    sha256 = "bbc46169f6b6803410e0072cf57e631481e3d5f1dde234f4eacbccb6562c5f4f";
+  };
+
+  meta = {
+    homepage = http://nixos.org/patchelf.html;
+    license = "GPL";
+    description = "A small utility to modify the dynamic linker and RPATH of ELF executables";
+  };
+}
diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix
index b3cf2fcbddae..3589ffb5a070 100644
--- a/pkgs/development/tools/misc/strace/default.nix
+++ b/pkgs/development/tools/misc/strace/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl }:
 
 stdenv.mkDerivation rec {
-  name = "strace-4.6";
+  name = "strace-4.7";
 
   src = fetchurl {
     url = "mirror://sourceforge/strace/${name}.tar.xz";
-    sha256 = "12n2faqq7whmszpjhv2lcb06r7900j53p0zl7vipi18inr0smycy";
+    sha256 = "158iwk0pl2mfw93m1843xb7a2zb8p6lh0qim07rca6f1ff4dk764";
   };
 
   buildNativeInputs = [ perl ];
diff --git a/pkgs/development/tools/ocaml/findlib/default.nix b/pkgs/development/tools/ocaml/findlib/default.nix
index c89af03097d7..3170712b9baf 100644
--- a/pkgs/development/tools/ocaml/findlib/default.nix
+++ b/pkgs/development/tools/ocaml/findlib/default.nix
@@ -5,11 +5,11 @@ let
 in
 
 stdenv.mkDerivation {
-  name = "ocaml-findlib-1.2.7";
+  name = "ocaml-findlib-1.3.3";
 
   src = fetchurl {
-    url = http://download.camlcity.org/download/findlib-1.2.7.tar.gz;
-    sha256 = "16q2avr48hd7vwz3bwvjw39dva86mdwa05drcwz32fwbwhlv2869";
+    url = http://download.camlcity.org/download/findlib-1.3.3.tar.gz;
+    sha256 = "981f5c67118a2be015efa79f3af3cb0063376b93123b5d695e7cb5c586b1d45c";
   };
 
   buildInputs = [m4 ncurses ocaml];
diff --git a/pkgs/development/tools/parsing/Ebnf2ps/default.nix b/pkgs/development/tools/parsing/Ebnf2ps/default.nix
index 81815500c618..f1964e815f67 100644
--- a/pkgs/development/tools/parsing/Ebnf2ps/default.nix
+++ b/pkgs/development/tools/parsing/Ebnf2ps/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Ebnf2ps";
-  version = "1.0.10";
-  sha256 = "0xim32bnfapfs53lvmdz2af08rqd15lp5b0rh6yjqm7n1g2061zs";
+  version = "1.0.11";
+  sha256 = "0n0maihalnrks3l7ay1i16p6i7f69xv33jxhlsyshzck0v64qivb";
   isLibrary = false;
   isExecutable = true;
   buildTools = [ happy ];
diff --git a/pkgs/development/tools/parsing/bison/bison-2.6.nix b/pkgs/development/tools/parsing/bison/bison-2.6.nix
new file mode 100644
index 000000000000..ea43d30410e3
--- /dev/null
+++ b/pkgs/development/tools/parsing/bison/bison-2.6.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, m4, perl }:
+
+stdenv.mkDerivation rec {
+  name = "bison-2.6.2";
+
+  src = fetchurl {
+    url = "mirror://gnu/bison/${name}.tar.xz";
+    sha256 = "79503f80397c30ac81b62eca5ffeaccaed72fdfeddb76257efcf8c3ca24be03d";
+  };
+
+  buildNativeInputs = [ m4 ] ++ stdenv.lib.optional doCheck perl;
+  propagatedBuildInputs = [ m4 ];
+
+  doCheck = true;
+  # M4 = "${m4}/bin/m4";
+
+  meta = {
+    homepage = "http://www.gnu.org/software/bison/";
+    description = "GNU Bison, a Yacc-compatible parser generator";
+    license = "GPLv3+";
+
+    longDescription = ''
+      Bison is a general-purpose parser generator that converts an
+      annotated context-free grammar into an LALR(1) or GLR parser for
+      that grammar.  Once you are proficient with Bison, you can use
+      it to develop a wide range of language parsers, from those used
+      in simple desk calculators to complex programming languages.
+
+      Bison is upward compatible with Yacc: all properly-written Yacc
+      grammars ought to work with Bison with no change.  Anyone
+      familiar with Yacc should be able to use Bison with little
+      trouble.  You need to be fluent in C or C++ programming in order
+      to use Bison.
+    '';
+
+    maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.simons ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+
+  passthru = { glrSupport = true; };
+}
diff --git a/pkgs/development/tools/parsing/happy/1.18.10.nix b/pkgs/development/tools/parsing/happy/1.18.10.nix
new file mode 100644
index 000000000000..d342d3381c82
--- /dev/null
+++ b/pkgs/development/tools/parsing/happy/1.18.10.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl, perl }:
+
+cabal.mkDerivation (self: {
+  pname = "happy";
+  version = "1.18.10";
+  sha256 = "0jq6p5vvdh4wbam80q2d6j2fa6bmbgnbmqk1w9904x06g7vj1jf1";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ mtl ];
+  buildTools = [ perl ];
+  meta = {
+    homepage = "http://www.haskell.org/happy/";
+    description = "Happy is a parser generator for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/web/nodejs/build-node-package.nix b/pkgs/development/web/nodejs/build-node-package.nix
new file mode 100644
index 000000000000..95d10db167f1
--- /dev/null
+++ b/pkgs/development/web/nodejs/build-node-package.nix
@@ -0,0 +1,50 @@
+{ stdenv, runCommand, nodejs, neededNatives}:
+
+args @ { src, deps ? [], flags ? [], ... }:
+
+with stdenv.lib;
+
+let npmFlags = concatStringsSep " " (map (v: "--${v}") flags);
+    sources = runCommand "node-sources" {} ''
+      tar xf ${nodejs.src}
+      mv *node* $out
+    '';
+
+in
+stdenv.mkDerivation ({
+  unpackPhase = "true";
+
+  configurePhase = ''
+    runHook preConfigure
+    mkdir node_modules
+    ${stdenv.lib.concatStrings (map (dep: ''
+      ln -sv ${dep}/node_modules/${(builtins.parseDrvName dep.name).name} node_modules/
+    '') deps)}
+    export HOME=$(pwd)
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    ${nodejs}/bin/npm --registry http://www.example.com --nodedir=${sources} install ${src} ${npmFlags}
+    runHook postBuild
+  '';
+
+  buildNativeInputs = neededNatives;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir $out
+    mv node_modules $out
+    if [ -d "$out/node_modules/.bin" ]; then
+      ln -sv node_modules/.bin $out/bin
+      find -L $out/node_modules/.bin/* -type f -print0 | \
+        xargs -0 sed --follow-symlinks -i 's@#!/usr/bin/env node@#!${nodejs}/bin/node@'
+    fi
+    runHook postInstall
+  '';
+
+  preFixup = ''
+    find $out -type f -print0 | xargs -0 sed -i 's|${src}|${src.name}|g'
+  '';
+} // args)
diff --git a/pkgs/development/web/nodejs/default.nix b/pkgs/development/web/nodejs/default.nix
index ef45825a5848..af2fd780b61d 100644
--- a/pkgs/development/web/nodejs/default.nix
+++ b/pkgs/development/web/nodejs/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, openssl, python, zlib, v8, linkV8Headers ? false }:
+{ stdenv, fetchurl, openssl, python, zlib, v8, utillinux }:
 
 stdenv.mkDerivation rec {
-  version = "0.6.19";
+  version = "0.8.9";
   name = "nodejs-${version}";
 
   src = fetchurl {
     url = "http://nodejs.org/dist/v${version}/node-v${version}.tar.gz";
-    sha256 = "1frgnl7i111b8x3fr43lh3zybwsszn0daa661gszq7dhfwj2jcsf";
+    sha256 = "1finh64yra4lqy5jzqif3hhq8hzjvkbc8xkw8364sjsygj3hc3rj";
   };
 
   configureFlags = [
@@ -20,18 +20,17 @@ stdenv.mkDerivation rec {
   patches = stdenv.lib.optional stdenv.isDarwin ./no-arch-flag.patch;
 
   prePatch = ''
-    sed -e 's|^#!/usr/bin/env python$|#!${python}/bin/python|g' -i tools/{*.py,waf-light,node-waf}
+    sed -e 's|^#!/usr/bin/env python$|#!${python}/bin/python|g' -i tools/{*.py,waf-light,node-waf} configure
   '';
 
   postInstall = ''
+
     sed -e 's|^#!/usr/bin/env node$|#!'$out'/bin/node|' -i $out/lib/node_modules/npm/bin/npm-cli.js
-  '' + stdenv.lib.optionalString linkV8Headers '' # helps binary npms
-    ln -s ${v8}/include/* $out/include
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
     install_name_tool -change libv8.dylib ${v8}/lib/libv8.dylib $out/bin/node
   '';
 
-  buildInputs = [ python openssl v8 zlib ];
+  buildInputs = [ python openssl v8 zlib ] ++ stdenv.lib.optional stdenv.isLinux utillinux;
 
   meta = with stdenv.lib; {
     description = "Event-driven I/O framework for the V8 JavaScript engine";
diff --git a/pkgs/games/fsg/default.nix b/pkgs/games/fsg/default.nix
index ba6b65d602b4..b2210141f574 100644
--- a/pkgs/games/fsg/default.nix
+++ b/pkgs/games/fsg/default.nix
@@ -4,7 +4,8 @@ stdenv.mkDerivation {
   name = "fsg-4.4";
 
   src = fetchurl {
-    url = http://www.piettes.com/fallingsandgame/fsg-src-4.4.tar.gz;
+    #url = http://www.piettes.com/fallingsandgame/fsg-src-4.4.tar.gz;
+    url = http://www.sourcefiles.org/Games/Simulation/Other/fsg-src-4.4.tar.gz;
     sha256 = "1756y01rkvd3f1pkj88jqh83fqcfl2fy0c48mcq53pjzln9ycv8c";
   };
 
diff --git a/pkgs/games/minecraft/default.nix b/pkgs/games/minecraft/default.nix
index 171e73896c65..3281f07335b0 100644
--- a/pkgs/games/minecraft/default.nix
+++ b/pkgs/games/minecraft/default.nix
@@ -2,11 +2,11 @@
 , mesa, openal}:
 
 stdenv.mkDerivation {
-  name = "minecraft-1.2.5";
+  name = "minecraft-1.3.1";
 
   src = fetchurl {
     url = "https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft.jar";
-    sha256 = "0yp3wgy93wm746dkv6kbljhmzdqbcg4qhwkvnaaq4ml84mvvjp38";
+    sha256 = "0j8a889w174vwgcxl4yqgp2kbqqha3x505fn7izz38srlx59gnwj";
   };
 
   phases = "installPhase";
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
   meta = {
       description = "A sandbox-building game";
       homepage = http://www.minecraft.net;
-      maintainers = [ "Carles Pagès <page@cubata.homelinux.net>" stdenv.lib.maintainers.shlevy ];
+      maintainers = [ stdenv.lib.maintainers.page stdenv.lib.maintainers.shlevy ];
       license = "unfree-redistributable";
   };
 }
diff --git a/pkgs/games/oilrush/default.nix b/pkgs/games/oilrush/default.nix
index 4605f04e3ae5..339c3bbd1a84 100644
--- a/pkgs/games/oilrush/default.nix
+++ b/pkgs/games/oilrush/default.nix
@@ -1,11 +1,12 @@
-{ stdenv, getConfig, fetchurl, libX11, libXext, libXinerama, libXrandr
+{ stdenv, config, fetchurl, libX11, libXext, libXinerama, libXrandr
 , libXrender, fontconfig, freetype, openal }:
+
 stdenv.mkDerivation {
   name = "oilrush";
   src = 
   let
-    url = getConfig [ "oilrush" "url" ] null;
-    sha256 = getConfig [ "oilrush" "sha256" ] null;
+    url = config.oilrush.url or null;
+    sha256 = config.oilrush.sha256 or null;
   in
     assert url != null && sha256 != null;
     fetchurl { inherit url sha256; };
diff --git a/pkgs/games/warsow/default.nix b/pkgs/games/warsow/default.nix
index c584319bdc9b..66c33842b89e 100644
--- a/pkgs/games/warsow/default.nix
+++ b/pkgs/games/warsow/default.nix
@@ -1,32 +1,33 @@
-{ stdenv, fetchurl, unzip, pkgconfig, zlib, curl, libjpeg, libvorbis
-, libXxf86dga, libXxf86vm, libXinerama, SDL, mesa, openal
+{ stdenv, fetchurl, unzip, pkgconfig, zlib, curl, libjpeg, libpng, libvorbis
+, libtheora, libXxf86dga, libXxf86vm, libXinerama, SDL, mesa, openal
 }:
 stdenv.mkDerivation rec {
   name = "warsow-${version}";
-  version = "0.62";
-  mversion = "0.61";  # sometimes only engine is updated
+  version = "1.0";
+  mversion = "1.0";  # sometimes only engine is updated
   src1 = fetchurl {
-    url = "http://www.zcdn.org/dl/warsow_${version}_sdk.zip";
-    sha256 = "0nb1z55lzmwarnn71dcyg9b3k7r7wxagqxks8a7rnlq7acsnra71";
+    url = "http://www.warsow.net/download?dl=sdk";
+    name = "warsow_${version}_sdk.tar.gz";
+    sha256 = "08hfhx3ggb8v8lsb62ki5rhdhscg8j9sndlnllinf85da1f4nf9f";
   };
   src2 = fetchurl {
-    url = "http://www.zcdn.org/dl/warsow_${mversion}_unified.zip";
-    sha256 = "1b5bv4dsly7i7c4fqlkckv4da1knxl9m3kg8nlgkgr8waczgvazv";
+    url = "http://www.warsow.net/download?dl=linux";
+    name = "warsow_${mversion}_unified.tar.gz";
+    sha256 = "1v455v4lpqda7lf2yviasdrlibvb6bsyxcadgl8bd4jcvr8x4czr";
   };
   unpackPhase = ''
-    mkdir warsow_${version}_sdk
+    tar xf "$src1"
     cd warsow_${version}_sdk
-    unzip $src1
-    unzip $src2
+    tar xf "$src2"
     mkdir -p source/release/
-    mv warsow_${mversion}_unified/basewsw source/release/
+    mv warsow_${mversion}/basewsw source/release/
     cd source
   '';
   patchPhase = ''
     substituteInPlace snd_openal/snd_main.c --replace libopenal.so.1 ${openal}/lib/libopenal.so.1
   '';
-  buildInputs = [ unzip pkgconfig zlib curl libjpeg libvorbis libXxf86dga
-                  libXxf86vm libXinerama SDL mesa openal ];
+  buildInputs = [ unzip pkgconfig zlib curl libjpeg libpng libvorbis libtheora
+                  libXxf86dga libXxf86vm libXinerama SDL mesa openal ];
   installPhase = ''
     dest=$out/opt/warsow
     cd release
diff --git a/pkgs/lib/attrsets.nix b/pkgs/lib/attrsets.nix
index 5e4e9df37110..63448847a150 100644
--- a/pkgs/lib/attrsets.nix
+++ b/pkgs/lib/attrsets.nix
@@ -5,12 +5,12 @@ with {
   inherit (import ./trivial.nix) or;
   inherit (import ./default.nix) fold;
   inherit (import ./strings.nix) concatStringsSep;
-  inherit (import ./lists.nix) concatMap;
-  inherit (import ./misc.nix) eqStrict;
+  inherit (import ./lists.nix) concatMap concatLists all;
+  inherit (import ./misc.nix) maybeAttr;
 };
 
 rec {
-  inherit (builtins) attrNames listToAttrs hasAttr isAttrs;
+  inherit (builtins) attrNames listToAttrs hasAttr isAttrs getAttr;
 
 
   /* Return an attribute from nested attribute sets.  For instance
@@ -33,15 +33,6 @@ rec {
       nameValuePair (head attrPath) (setAttrByPath (tail attrPath) value)
     )];
 
-      
-  /* Backwards compatibility hack: lib.attrByPath used to be called
-     lib.getAttr, which was confusing given that there was also a
-     builtins.getAttr.  Eventually we'll drop this hack and
-     lib.getAttr will just be an alias for builtins.getAttr. */
-  getAttr = a: b: if isString a
-    then builtins.getAttr a b
-    else c: builtins.trace "Deprecated use of lib.getAttr!" (attrByPath a b c);
-
 
   getAttrFromPath = attrPath: set:
     let errorMsg = "cannot find attribute `" + concatStringsSep "." attrPath + "'";
@@ -75,7 +66,7 @@ rec {
        catAttrs "a" [{a = 1;} {b = 0;} {a = 2;}]
        => [1 2]
   */
-  catAttrs = attr: l: fold (s: l: if hasAttr attr s then [(getAttr attr s)] ++ l else l) [] l;
+  catAttrs = attr: l: concatLists (map (s: if hasAttr attr s then [(getAttr attr s)] else []) l);
 
 
   /* Filter an attribute set by removing all attributes for which the
@@ -88,6 +79,16 @@ rec {
   filterAttrs = pred: set:
     listToAttrs (fold (n: ys: let v = getAttr n set; in if pred n v then [(nameValuePair n v)] ++ ys else ys) [] (attrNames set));
 
+  /* foldAttrs: apply fold functions to values grouped by key. Eg accumulate values as list:
+     foldAttrs (n: a: [n] ++ a) [] [{ a = 2; } { a = 3; }]
+     => { a = [ 2 3 ]; }
+  */
+  foldAttrs = op: nul: list_of_attrs:
+    fold (n: a:
+        fold (name: o:
+          o // (listToAttrs [{inherit name; value = op (getAttr name n) (maybeAttr name nul a); }])
+        ) a (attrNames n)
+    ) {} list_of_attrs;
 
   /* Recursively collect sets that verify a given predicate named `pred'
      from the set `attrs'.  The recursion is stopped when the predicate is
@@ -301,9 +302,9 @@ rec {
   matchAttrs = pattern: attrs:
     fold or false (attrValues (zipAttrsWithNames (attrNames pattern) (n: values:
       let pat = head values; val = head (tail values); in
-      if tail values == [] then false
+      if length values == 1 then false
       else if isAttrs pat then isAttrs val && matchAttrs head values
-      else eqStrict pat val
+      else pat == val
     ) [pattern attrs]));
 
   # override only the attributes that are already present in the old set
diff --git a/pkgs/lib/debug.nix b/pkgs/lib/debug.nix
index e452151add6b..b78f946c5d44 100644
--- a/pkgs/lib/debug.nix
+++ b/pkgs/lib/debug.nix
@@ -66,7 +66,7 @@ rec {
     let testsToRun = if tests ? tests then tests.tests else [];
     in if (substring 0 4 name == "test" ||  elem name testsToRun)
        && ((testsToRun == []) || elem name tests.tests)
-       && (!lib.eqStrict test.expr test.expected)
+       && (test.expr != test.expected)
 
       then [ { inherit name; expected = test.expected; result = test.expr; } ]
       else [] ) tests));
diff --git a/pkgs/lib/licenses.nix b/pkgs/lib/licenses.nix
index dc88f887cc79..87f9298706ed 100644
--- a/pkgs/lib/licenses.nix
+++ b/pkgs/lib/licenses.nix
@@ -175,6 +175,12 @@
     shortName = "Proprietary";
     fullName = "Proprietary (non redistributable) license";
   };
+
+  tcltk = {
+    shortName = "Tcl/Tk";
+    fullName = "Tcl/Tk license";
+    url = http://www.tcl.tk/software/tcltk/license.html;
+  };
   
   zlib = {
     shortName = "zlib";
diff --git a/pkgs/lib/lists.nix b/pkgs/lib/lists.nix
index 67b0add50dcb..b9eba9ab4785 100644
--- a/pkgs/lib/lists.nix
+++ b/pkgs/lib/lists.nix
@@ -1,33 +1,59 @@
 # General list operations.
 
 rec {
-  inherit (builtins) head tail length isList;
+  inherit (builtins) head tail length isList add sub lessThan;
 
 
   # Create a list consisting of a single element.  `singleton x' is
   # sometimes more convenient with respect to indentation than `[x]'
   # when x spans multiple lines.
   singleton = x: [x];
-  
+
 
   # "Fold" a binary function `op' between successive elements of
   # `list' with `nul' as the starting value, i.e., `fold op nul [x_1
   # x_2 ... x_n] == op x_1 (op x_2 ... (op x_n nul))'.  (This is
   # Haskell's foldr).
-  fold = op: nul: list:
-    if list == []
-    then nul
-    else op (head list) (fold op nul (tail list));
+  fold =
+    if builtins ? elemAt
+    then op: nul: list:
+      let
+        len = length list;
+        fold' = n:
+          if n == len
+          then nul
+          else op (builtins.elemAt list n) (fold' (add n 1));
+      in fold' 0
+    else op: nul:
+      let fold' = list:
+        if list == []
+        then nul
+        else op (head list) (fold' (tail list));
+      in fold';
 
     
   # Left fold: `fold op nul [x_1 x_2 ... x_n] == op (... (op (op nul
   # x_1) x_2) ... x_n)'.
-  foldl = op: nul: list:
-    if list == []
-    then nul
-    else foldl op (op nul (head list)) (tail list);
+  foldl =
+    if builtins ? elemAt
+    then op: nul: list:
+      let
+        len = length list;
+        foldl' = n:
+          if n == minus1
+          then nul
+          else op (foldl' (sub n 1)) (builtins.elemAt list n);
+      in foldl' (sub (length list) 1)
+    else op:
+      let foldl' = nul: list:
+        if list == []
+        then nul
+        else foldl' (op nul (head list)) (tail list);
+      in foldl';
+
+  minus1 = sub 0 1;
+
 
-    
   # map with index: `imap (i: v: "${v}-${toString i}") ["a" "b"] ==
   # ["a-1" "b-2"]'
   imap = f: list:
@@ -35,7 +61,7 @@ rec {
 
     
   # Concatenate a list of lists.
-  concatLists = fold (x: y: x ++ y) [];
+  concatLists = builtins.concatLists or (fold (x: y: x ++ y) []);
 
 
   # Map and concatenate the result.
@@ -53,20 +79,24 @@ rec {
     
   # Filter a list using a predicate; that is, return a list containing
   # every element from `list' for which `pred' returns true.
-  filter = pred: list:
-    fold (x: y: if pred x then [x] ++ y else y) [] list;
+  filter =
+    builtins.filter or
+    (pred: list:
+      fold (x: y: if pred x then [x] ++ y else y) [] list);
 
     
-  # Remove elements 'e' from a list. Useful for buildInputs
+  # Remove elements equal to 'e' from a list.  Useful for buildInputs.
   remove = e: filter (x: x != e);
 
   
   # Given two lists, removes all elements of the first list from the second list
   removeList = l: filter (x: elem x l);
 
-  
-  # Return true if `list' has an element `x':
-  elem = x: list: fold (a: bs: x == a || bs) false list;
+
+  # Return true if `list' has an element `x'.
+  elem =
+    builtins.elem or
+    (x: list: fold (a: bs: x == a || bs) false list);
 
 
   # Find the sole element in the list matching the specified
@@ -88,27 +118,14 @@ rec {
 
   # Return true iff function `pred' returns true for at least element
   # of `list'.
-  any = pred: list:
-    if list == [] then false
-    else if pred (head list) then true
-    else any pred (tail list);
+  any = pred: fold (x: y: if pred x then true else y) false;
 
 
   # Return true iff function `pred' returns true for all elements of
   # `list'.
-  all = pred: list:
-    if list == [] then true
-    else if pred (head list) then all pred (tail list)
-    else false;
-
+  all = pred: fold (x: y: if pred x then y else false) true;
 
-  # Return true if each element of a list is equal, false otherwise.
-  eqLists = xs: ys:
-    if xs == [] && ys == [] then true
-    else if xs == [] || ys == [] then false
-    else head xs == head ys && eqLists (tail xs) (tail ys);
 
-    
   # Return a singleton list or an empty list, depending on a boolean
   # value.  Useful when building lists with optional elements
   # (e.g. `++ optional (system == "i686-linux") flashplayer').
@@ -165,11 +182,11 @@ rec {
   # order.  The implementation does a quick-sort.
   sort = strictLess: list:
     let
-      # This implementation only have one element lists on the left hand
+      # This implementation only has one element list on the left hand
       # side of the concatenation operator.
       qs = l: concat:
         if l == [] then concat
-        else if tail l == [] then l ++ concat
+        else if length l == 1 then l ++ concat
         else let
           part = partition (strictLess (head l)) (tail l);
         in
@@ -195,7 +212,7 @@ rec {
     let loop = l: if tail l == [] then head l else loop (tail l); in
     loop list;
 
-    
+
   # Zip two lists together.
   zipTwoLists = xs: ys:
     if xs != [] && ys != [] then
diff --git a/pkgs/lib/misc.nix b/pkgs/lib/misc.nix
index dbf3381f0f4e..39a3ad258b04 100644
--- a/pkgs/lib/misc.nix
+++ b/pkgs/lib/misc.nix
@@ -322,10 +322,6 @@ rec {
     // listToAttrs (map (n : nameValuePair n (a: b: "${a}\n${b}") ) [ "preConfigure" "postInstall" ])
   ;
 
-  # returns atribute values as a list 
-  flattenAttrs = set : map ( attr : builtins.getAttr attr set) (attrNames set);
-  mapIf = cond : f :  fold ( x : l : if (cond x) then [(f x)] ++ l else l) [];
-
   # prepareDerivationArgs tries to make writing configurable derivations easier
   # example:
   #  prepareDerivationArgs {
@@ -365,7 +361,7 @@ rec {
         flagName = name : "${name}Support";
         cfgWithDefaults = (listToAttrs (map (n : nameValuePair (flagName n) false) (attrNames args2.flags)))
                           // args2.cfg;
-        opts = flattenAttrs (mapAttrs (a : v :
+        opts = attrValues (mapAttrs (a : v :
                 let v2 = if (v ? set || v ? unset) then v else { set = v; };
                     n = if (getAttr (flagName a) cfgWithDefaults) then "set" else "unset";
                     attr = maybeAttr n {} v2; in
@@ -390,18 +386,4 @@ rec {
       else if isInt x then "int"
       else "string";
 
-  # deep, strict equality testing. This should be implemented as primop
-  eqStrict = a : b :
-    let eqListStrict = a : b :
-      if (a == []) != (b == []) then false
-      else if a == [] then true
-      else eqStrict (head a) (head b) && eqListStrict (tail a) (tail b);
-    in
-    if nixType a != nixType b then false
-      else if isList a then eqListStrict a b
-        else if isAttrs a then
-          (eqListStrict (attrNames a) (attrNames b))
-          && (eqListStrict (lib.attrValues a) (lib.attrValues b))
-        else a == b; # FIXME !
-
 }
diff --git a/pkgs/lib/modules.nix b/pkgs/lib/modules.nix
index eb528f141fe2..25cb956a0ea4 100644
--- a/pkgs/lib/modules.nix
+++ b/pkgs/lib/modules.nix
@@ -2,7 +2,7 @@
 
 let lib = import ./default.nix; in
 
-with { inherit (builtins) head tail; };
+with { inherit (builtins) head; };
 with import ./trivial.nix;
 with import ./lists.nix;
 with import ./misc.nix;
@@ -44,9 +44,9 @@ rec {
       delayedModule = delayProperties m;
       getImports =
         if m ? config || m ? options then
-          attrByPath ["imports"] [] m
+          m.imports or []
         else
-          toList (rmProperties (attrByPath ["require"] [] delayedModule));
+          toList (rmProperties (delayedModule.require or []));
 
       getImportedPaths = filter isPath getImports;
       getImportedSets = filter (x: !isPath x) getImports;
@@ -64,7 +64,7 @@ rec {
           config = getConfig;
         } // (
           if getImportedSets != [] then
-            assert tail getImportedSets == [];
+            assert length getImportedSets == 1;
             { options = head getImportedSets; }
           else
             {}
@@ -92,7 +92,7 @@ rec {
             else newModuleName origin index;
         };
 
-      getImports = m: attrByPath ["imports"] [] m;
+      getImports = m: m.imports or [];
 
       newModuleName = origin: index:
         "${origin.key}:<import-${toString index}>";
@@ -110,8 +110,8 @@ rec {
   selectDeclsAndDefs = modules:
     lib.concatMap (m:
       if m ? config || m ? options then
-         [ (attrByPath ["options"] {} m) ]
-      ++ [ (attrByPath ["config"] {} m) ]
+         [ (m.options or {}) ]
+      ++ [ (m.config or {}) ]
       else
         [ m ]
     ) modules;
diff --git a/pkgs/lib/options.nix b/pkgs/lib/options.nix
index cd60b8f3b88c..59bda41a623f 100644
--- a/pkgs/lib/options.nix
+++ b/pkgs/lib/options.nix
@@ -2,7 +2,7 @@
 
 let lib = import ./default.nix; in
 
-with { inherit (builtins) head tail; };
+with { inherit (builtins) head length; };
 with import ./trivial.nix;
 with import ./lists.nix;
 with import ./misc.nix;
@@ -133,7 +133,7 @@ rec {
   # separate the merge & apply fields from the interface.
   mergeOptionDecls = opts:
     if opts == [] then {}
-    else if tail opts == [] then
+    else if length opts == 1 then
       let opt = head opts; in
       if opt ? options then
         opt // { options = toList opt.options; }
@@ -152,13 +152,11 @@ rec {
         opt1 // opt2
         // optionalAttrs (opt1 ? options || opt2 ? options) {
             options =
-               (toList (attrByPath ["options"] [] opt1))
-            ++ (toList (attrByPath ["options"] [] opt2));
+               (toList (opt1.options or []))
+            ++ (toList (opt2.options or []));
           }
         // optionalAttrs (opt1 ? extraConfigs || opt2 ? extraConfigs) {
-            extraConfigs =
-               (attrByPath ["extraConfigs"] [] opt1)
-            ++ (attrByPath ["extraConfigs"] [] opt2);
+            extraConfigs = opt1.extraConfigs or [] ++ opt2.extraConfigs or [];
           }
       )) {} opts;
 
@@ -189,7 +187,7 @@ rec {
     ) (attrNames defs));
 
   mergeDefaultOption = list:
-    if list != [] && tail list == [] then head list
+    if length list == 1 then head list
     else if all builtins.isFunction list then x: mergeDefaultOption (map (f: f x) list)
     else if all isList list then concatLists list
     else if all isAttrs list then fold lib.mergeAttrs {} list
@@ -214,7 +212,7 @@ rec {
 
   mergeOneOption = list:
     if list == [] then abort "This case should never happen."
-    else if tail list != [] then throw "Multiple definitions. Only one is allowed for this option."
+    else if length list != 1 then throw "Multiple definitions. Only one is allowed for this option."
     else head list;
 
 
diff --git a/pkgs/lib/strings.nix b/pkgs/lib/strings.nix
index 071bb2c995b3..4bd7a5bebde3 100644
--- a/pkgs/lib/strings.nix
+++ b/pkgs/lib/strings.nix
@@ -2,12 +2,12 @@
 
 let lib = import ./default.nix;
 
-inherit (builtins) add sub lessThan;
+inherit (builtins) add sub lessThan length;
 
 in
 
 rec {
-  inherit (builtins) stringLength substring head tail lessThan sub;
+  inherit (builtins) stringLength substring head tail;
 
 
   # Concatenate a list of strings.
@@ -22,7 +22,7 @@ rec {
   # Place an element between each element of a list, e.g.,
   # `intersperse "," ["a" "b" "c"]' returns ["a" "," "b" "," "c"].
   intersperse = separator: list:
-    if list == [] || tail list == []
+    if list == [] || length list == 1
     then list
     else [(head list) separator]
          ++ (intersperse separator (tail list));
@@ -155,4 +155,14 @@ rec {
   # Return true iff string v1 denotes a version older than v2.
   versionOlder = v1: v2: builtins.compareVersions v2 v1 == 1;
 
+  # Extract name with version from URL. Ask for separator which is 
+  # supposed to start extension
+  nameFromURL = url: sep: let
+    components = splitString "/" url;
+    filename = lib.last components;
+    name = builtins.head (splitString sep filename);
+  in
+  assert ! eqStrings name filename;
+  name;
+
 }
diff --git a/pkgs/lib/tests.nix b/pkgs/lib/tests.nix
index 646de7c0e49b..04acb7632eab 100644
--- a/pkgs/lib/tests.nix
+++ b/pkgs/lib/tests.nix
@@ -50,19 +50,6 @@ runTests {
     expected = 5050;
   };
 
-  testEqStrict = {
-    expr = all id [
-      (eqStrict 2 2)
-      (!eqStrict 3 2)
-      (eqStrict [2 1] [2 1])
-      (!eqStrict [1 3] [1 2])
-      (eqStrict {a = 7; b = 20;} {b= 20; a = 7;})
-      (eqStrict [{a = 7; b = 20;}] [{b= 20; a = 7;}])
-      (eqStrict {a = [7 8]; b = 20;} {b= 20; a = [7 8];})
-    ];
-    expected = true;
-  };
-
   testTake = testAllTrue [
     ([] == (take 0 [  1 2 3 ]))
     ([1] == (take 1 [  1 2 3 ]))
@@ -71,6 +58,13 @@ runTests {
     ([ 1 2 3 ] == (take 4 [  1 2 3 ]))
   ];
 
+  testFoldAttrs = {
+    expr = foldAttrs (n: a: [n] ++ a) [] [
+    { a = 2; b = 7; }
+    { a = 3;        c = 8; }
+    ];
+    expected = { a = [ 2 3 ]; b = [7]; c = [8];};
+  };
 
   testOverridableDelayableArgsTest = {
     expr = 
@@ -99,14 +93,14 @@ runTests {
                 in (y.merge) { b = 10; };
           strip = attrs : removeAttrs attrs ["merge" "replace"];
       in all id
-        [ (eqStrict (strip res1) { })
-          (eqStrict (strip res2) { a = 7; })
-          (eqStrict (strip res3) { a = 7; b = 10; })
-          (eqStrict (strip res4) { a = 7; b = 10; })
-          (eqStrict (strip res5) { a = 10; })
-          (eqStrict (strip res6) { a = 17; })
-          (eqStrict (strip resRem7) {})
-          (eqStrict (strip resFixed1) { a = 7; b = 10; c =10; name = "name-10"; })
+        [ ((strip res1) == { })
+          ((strip res2) == { a = 7; })
+          ((strip res3) == { a = 7; b = 10; })
+          ((strip res4) == { a = 7; b = 10; })
+          ((strip res5) == { a = 10; })
+          ((strip res6) == { a = 17; })
+          ((strip resRem7) == {})
+          ((strip resFixed1) == { a = 7; b = 10; c =10; name = "name-10"; })
         ];
     expected = true;
   };
diff --git a/pkgs/lib/types.nix b/pkgs/lib/types.nix
index 956368138aa2..38ae7b43630a 100644
--- a/pkgs/lib/types.nix
+++ b/pkgs/lib/types.nix
@@ -157,7 +157,7 @@ rec {
     uniq = elemType: mkOptionType {
       inherit (elemType) name check iter fold docPath hasOptions;
       merge = list:
-        if tail list == [] then
+        if length list == 1 then
           head list
         else
           throw "Multiple definitions. Only one is allowed for this option.";
diff --git a/pkgs/misc/emulators/wine/default.nix b/pkgs/misc/emulators/wine/default.nix
index acfe794dc4f8..b35660daf5e2 100644
--- a/pkgs/misc/emulators/wine/default.nix
+++ b/pkgs/misc/emulators/wine/default.nix
@@ -7,11 +7,11 @@ assert stdenv.isLinux;
 assert stdenv.gcc.gcc != null;
 
 stdenv.mkDerivation rec {
-  name = "wine-1.5.5";
+  name = "wine-1.5.10";
 
   src = fetchurl {
     url = "mirror://sourceforge/wine/${name}.tar.bz2";
-    sha256 = "e7d5ba716d2ac47193fa31eff66cc179145ddcb453c6923eaea70596a82b084e";
+    sha256 = "04wydwc8q49bw8brlklx2nbgr453lx7bbfass5zn88xbz997lppk";
   };
 
   gecko = fetchurl {
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index 0a028660f7ff..ac171b2ff814 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -9,7 +9,7 @@ assert cupsSupport -> cups != null;
 
 let
   meta = {
-    homepage = http://www.gnu.org/software/ghostscript/;
+    homepage = "http://www.gnu.org/software/ghostscript/";
     description = "GNU Ghostscript, a PostScript interpreter";
 
     longDescription = ''
@@ -27,7 +27,7 @@ let
     maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.viric ];
   };
 
-  gnuForkData = rec {
+  gnuForkSrc = rec {
     name = "ghostscript-9.04.1";
     src = fetchurl {
       url = "mirror://gnu/ghostscript/gnu-${name}.tar.bz2";
@@ -38,14 +38,14 @@ let
     patches = [ ./purity.patch ];
   };
 
-  mainlineData = {
+  mainlineSrc = {
     name = "ghostscript-9.05";
     src = fetchurl {
-      url = http://downloads.ghostscript.com/public/ghostscript-9.05.tar.bz2;
+      url = "http://downloads.ghostscript.com/public/ghostscript-9.05.tar.bz2";
       sha256 = "1b6fi76x6pn9dmr9k9lh8kimn968dmh91k824fmm59d5ycm22h8g";
     };
     meta = meta // {
-      homepage = http://www.ghostscript.com/;
+      homepage = "http://www.ghostscript.com/";
       description = "GPL Ghostscript, a PostScript interpreter";
     };
 
@@ -55,7 +55,7 @@ let
     patches = [ ./purity-9.05.patch ];
   };
 
-  variant = if gnuFork then gnuForkData else mainlineData;
+  variant = if gnuFork then gnuForkSrc else mainlineSrc;
 
 in
 
@@ -64,11 +64,11 @@ stdenv.mkDerivation rec {
 
   fonts = [
     (fetchurl {
-      url = mirror://gnu/ghostscript/gnu-gs-fonts-std-6.0.tar.gz;
+      url = "mirror://gnu/ghostscript/gnu-gs-fonts-std-6.0.tar.gz";
       sha256 = "1lxr1y52r26qjif8kdqkfhsb5llakdcx3f5b9ppdyn59bb83ivsc";
     })
     (fetchurl {
-      url = mirror://gnu/ghostscript/gnu-gs-fonts-other-6.0.tar.gz;
+      url = "mirror://gnu/ghostscript/gnu-gs-fonts-other-6.0.tar.gz";
       sha256 = "1cxaah3r52qq152bbkiyj2f7dx1rf38vsihlhjmrvzlr8v6cqil1";
     })
     # ... add other fonts here
diff --git a/pkgs/misc/lilypond/default.nix b/pkgs/misc/lilypond/default.nix
index b3a9bec29725..65575af4c392 100644
--- a/pkgs/misc/lilypond/default.nix
+++ b/pkgs/misc/lilypond/default.nix
@@ -1,24 +1,36 @@
 { stdenv, fetchurl, ghostscript, texinfo, imagemagick, texi2html, guile
-, python, gettext, flex, perl, bison, pkgconfig, texLive
-, fontconfig, freetype, pango, fontforge, help2man }:
+, python, gettext, flex, perl, bison, pkgconfig, texLive, dblatex
+, fontconfig, freetype, pango, fontforge, help2man, zip, netpbm, groff 
+, fetchsvn }:
 
 stdenv.mkDerivation rec{
-  majorVersion="2.13";
-  minorVersion="46";
+  majorVersion="2.14";
+  minorVersion="2";
   version="${majorVersion}.${minorVersion}";
   name = "lilypond-${version}";
 
+  urwfonts = fetchsvn {
+    url = "http://svn.ghostscript.com/ghostscript/tags/urw-fonts-1.0.7pre44";
+    sha256 = "0al5vdsb66db6yzwi0qgs1dnd1i1fb77cigdjxg8zxhhwf6hhwpn";
+  };
+
   src = fetchurl {
     url = "http://download.linuxaudio.org/lilypond/sources/v${majorVersion}/lilypond-${version}.tar.gz";
-    sha256 = "370f59d10a3fc74c5790111f7a69e04304eda5384513c95838dda3cc087904e6";
+    # 2.15.42
+    # sha256 = "0cm2fq1cr9d24w5xkz6ik6qnby516dfahz4cw47xx8mb5qsa4drd";
+    sha256 = "15i6k3fjc29wvchayn31khxhpppzd4g6ivbk7l43fakj8lw6nfi4";
   };
 
-  configureFlags = [ "--disable-documentation" "--with-ncsb-dir=${ghostscript}/share/ghostscript/fonts"];
+  preConfigure=''
+    sed -e "s@mem=mf2pt1@mem=$PWD/mf/mf2pt1@" -i scripts/build/mf2pt1.pl
+  '';
+
+  configureFlags = [ "--disable-documentation" "--with-ncsb-dir=${urwfonts}"];
 
   buildInputs =
-    [ ghostscript texinfo imagemagick texi2html guile
+    [ ghostscript texinfo imagemagick texi2html guile dblatex zip netpbm
       python gettext flex perl bison pkgconfig texLive fontconfig freetype pango
-      fontforge help2man
+      fontforge help2man groff
     ];
 
   meta = { 
diff --git a/pkgs/misc/maven/3.0.nix b/pkgs/misc/maven/3.0.nix
deleted file mode 100644
index 3d14a064a94f..000000000000
--- a/pkgs/misc/maven/3.0.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{stdenv, fetchurl, jdk, makeWrapper}:
-
-assert jdk != null;
-
-stdenv.mkDerivation {
-	name = "apache-maven-3.0.3";
-	builder = ./builder.sh;
-	src = fetchurl {
-		url = mirror://apache/maven/binaries/apache-maven-3.0.3-bin.tar.gz;
-		sha256 = "b845479bd5d6d821210d3530c65da628a118abedd176492741e1d9bc5e400e2a";
-	};
-	
-        buildInputs = [makeWrapper]; 
-	inherit jdk;
-}
diff --git a/pkgs/misc/maven/default.nix b/pkgs/misc/maven/default.nix
index 857949016504..ec2b57e222a0 100644
--- a/pkgs/misc/maven/default.nix
+++ b/pkgs/misc/maven/default.nix
@@ -3,11 +3,11 @@
 assert jdk != null;
 
 stdenv.mkDerivation {
-	name = "apache-maven-2.2.1";
+	name = "apache-maven-3.0.4";
 	builder = ./builder.sh;
 	src = fetchurl {
-		url = mirror://apache/maven/binaries/apache-maven-2.2.1-bin.tar.gz;
-		sha256 = "0xnk08ndf1jx458sr5dfr8rh7wi92kyn887vqyzjm1ka91cnb8xr";
+		url = mirror://apache/maven/binaries/apache-maven-3.0.4-bin.tar.gz;
+		sha256 = "0bxa7x8ifm8590nxifhsh3sxzm6aicbczyx21vibg3606ih8fnnk";
 	};
 	
         buildInputs = [makeWrapper]; 
diff --git a/pkgs/misc/maven/maven-1.0.nix b/pkgs/misc/maven/maven-1.0.nix
deleted file mode 100644
index 48058081f0c3..000000000000
--- a/pkgs/misc/maven/maven-1.0.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{stdenv, fetchurl, jdk, makeWrapper}:
-
-assert jdk != null;
-
-stdenv.mkDerivation {
-	name = "maven-1.0.2";
-        mavenBinary = "maven";
-	builder = ./builder.sh;
-	src = fetchurl {
-		url = http://apache.cs.uu.nl/dist/maven/binaries/maven-1.0.2.tar.bz2;
-		md5 = "81a6b4393e550635efe19e95cea38718";
-	};
-	
-	inherit jdk makeWrapper;
-}
diff --git a/pkgs/os-specific/linux/acpi-call/default.nix b/pkgs/os-specific/linux/acpi-call/default.nix
index 301a8054557c..0689663832e4 100644
--- a/pkgs/os-specific/linux/acpi-call/default.nix
+++ b/pkgs/os-specific/linux/acpi-call/default.nix
@@ -5,21 +5,22 @@ stdenv.mkDerivation {
 
   src = fetchgit {
     url = "git://github.com/mkottman/acpi_call.git";
-    rev = "4f71ce83392bc52b3497";
-    sha256 = "1f20516dc7d42bc7d9d71eaa54f48f38cd56b8683062f81d6f3857990056bdd3";
+    rev = "b570c3b6c7016174107558464e864391d8bbd176";
+    sha256 = "a89c62d391b721bb87a094f81cefc77d9c80de4bb314bb6ea449c3ef2decad5e";
   };
   
   preBuild = ''
     sed -e 's/break/true/' -i test_off.sh
     sed -e 's@/bin/bash@.bin/sh@' -i test_off.sh
-    sed -e "s@/lib/modules/\$(.*)@${kernel}/lib/modules/${kernel.version}@" -i Makefile
+    sed -e "s@/lib/modules/\$(.*)@${kernel}/lib/modules/${kernel.modDirVersion}@" -i Makefile
   '';
  
   installPhase = ''
-    mkdir -p $out/lib/modules/${kernel.version}/misc
-    cp acpi_call.ko $out/lib/modules/${kernel.version}/misc
+    mkdir -p $out/lib/modules/${kernel.modDirVersion}/misc
+    cp acpi_call.ko $out/lib/modules/${kernel.modDirVersion}/misc
     mkdir -p $out/bin
     cp test_off.sh $out/bin/test_discrete_video_off.sh
+    chmod a+x $out/bin/test_discrete_video_off.sh
   '';
 
   meta = {
diff --git a/pkgs/os-specific/linux/alsa-utils/default.nix b/pkgs/os-specific/linux/alsa-utils/default.nix
index ca3a45bddfd1..7e4a97a1ab1a 100644
--- a/pkgs/os-specific/linux/alsa-utils/default.nix
+++ b/pkgs/os-specific/linux/alsa-utils/default.nix
@@ -1,16 +1,17 @@
 {stdenv, fetchurl, alsaLib, gettext, ncurses}:
 
 stdenv.mkDerivation rec {
-  name = "alsa-utils-1.0.25";
-  
+  name = "alsa-utils-1.0.26";
+
   src = fetchurl {
-    url = "ftp://ftp.alsa-project.org/pub/utils/${name}.tar.bz2";
-    sha256 = "0b1hbdq1bdkbz72zdfy5cgp75jqpysb0mqb0n9wy5gsbccpnlrrf";
+    # url = "ftp://ftp.alsa-project.org/pub/utils/${name}.tar.bz2";
+    url = "http://alsa.cybermirror.org/utils/${name}.tar.bz2";
+    sha256 = "1rw1n3w8syqky9i7kwy5xd2rzfdbihxas32vwfxpb177lqx2lpzq";
   };
-  
+
   buildInputs = [ alsaLib ncurses ];
   buildNativeInputs = [ gettext ];
-  
+
   configureFlags = "--disable-xmlto --with-udev-rules-dir=$(out)/lib/udev/rules.d";
 
   installFlags = "ASOUND_STATE_DIR=$(TMPDIR)/dummy";
diff --git a/pkgs/os-specific/linux/atop/default.nix b/pkgs/os-specific/linux/atop/default.nix
new file mode 100644
index 000000000000..0e2df1e25fb0
--- /dev/null
+++ b/pkgs/os-specific/linux/atop/default.nix
@@ -0,0 +1,39 @@
+{stdenv, fetchurl, zlib, ncurses}:
+
+stdenv.mkDerivation rec {
+  version = "1.27-3";
+  name = "atop-${version}";
+
+  src = fetchurl {
+    url = "http://www.atoptool.nl/download/atop-${version}.tar.gz";
+    sha256 = "bce36e0b50f0e03995d86d25dbc9ab4a289f6755ce3558844f96d41b0bba563f";
+  };
+
+  buildInputs = [zlib ncurses];
+
+  makeFlags = [
+    ''SCRPATH=$out/etc/atop''
+    ''LOGPATH=/var/log/atop''
+    ''INIPATH=$out/etc/rc.d/init.d''
+    ''CRNPATH=$out/etc/cron.d''
+    ''ROTPATH=$out/etc/logrotate.d''
+  ];
+
+  preConfigure = ''
+    sed -e "s@/usr/@$out/@g" -i $(find . -type f )
+    sed -e "/mkdir.*LOGPATH/s@mkdir@echo missing dir @" -i Makefile
+    sed -e "/touch.*LOGPATH/s@touch@echo should have created @" -i Makefile
+    sed -e 's/chown/true/g' -i Makefile
+    sed -e '/chkconfig/d' -i Makefile
+  '';
+
+  meta = {
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    description = ''Console system performance monitor'';
+
+    longDescription = ''
+      Atop is an ASCII full-screen performance monitor that is capable of reporting the activity of all processes (even if processes have finished during the interval), daily logging of system and process activity for long-term analysis, highlighting overloaded system resources by using colors, etc. At regular intervals, it shows system-level activity related to the CPU, memory, swap, disks and network layers, and for every active process it shows the CPU utilization, memory growth, disk utilization, priority, username, state, and exit code.
+    '';
+  };
+}
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
index ff21b5d5254b..041141cdad25 100644
--- a/pkgs/os-specific/linux/broadcom-sta/default.nix
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -7,7 +7,7 @@ in
 
 stdenv.mkDerivation {
   name = "broadcom-sta-${version}-${kernel.version}";
-  
+
   src = fetchurl {
     url = "http://www.broadcom.com/docs/linux_sta/hybrid-portsrc_x86_${bits}-v${version}.tar.gz";
     sha256 = if bits == "32"
@@ -16,12 +16,10 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ kernel ];
-  patches = [ ./makefile.patch ./linux-2.6.39.patch ./linux-3.2.patch ];
-    #++ stdenv.lib.optional
-    #(! builtins.lessThan (builtins.compareVersions kernel.version "2.6.37") 0)
-      #[ ./mutex-sema.patch ];
-
-  NIX_CFLAGS_COMPILE = "-I${kernel}/lib/modules/${kernel.modDirVersion}/build/include/generated";
+  patches =
+    [ ./makefile.patch ./linux-2.6.39.patch ./linux-3.2.patch
+      ./linux-3.4.patch ./license.patch
+    ];
 
   makeFlags = "KDIR=${kernel}/lib/modules/${kernel.modDirVersion}/build";
 
diff --git a/pkgs/os-specific/linux/broadcom-sta/license.patch b/pkgs/os-specific/linux/broadcom-sta/license.patch
new file mode 100644
index 000000000000..b320d977e8b0
--- /dev/null
+++ b/pkgs/os-specific/linux/broadcom-sta/license.patch
@@ -0,0 +1,12 @@
+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 @@
+ 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 }, 
diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-3.4.patch b/pkgs/os-specific/linux/broadcom-sta/linux-3.4.patch
new file mode 100644
index 000000000000..854131c641b2
--- /dev/null
+++ b/pkgs/os-specific/linux/broadcom-sta/linux-3.4.patch
@@ -0,0 +1,12 @@
+--- 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/mutex-sema.patch b/pkgs/os-specific/linux/broadcom-sta/mutex-sema.patch
deleted file mode 100644
index 922c8f2d22dd..000000000000
--- a/pkgs/os-specific/linux/broadcom-sta/mutex-sema.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -aur old/src/wl/sys/wl_linux.c new/src/wl/sys/wl_linux.c
---- old/src/wl/sys/wl_linux.c	2010-12-25 18:17:33.333343048 +0100
-+++ new/src/wl/sys/wl_linux.c	2010-12-25 18:21:05.856676376 +0100
-@@ -483,7 +483,7 @@
- #ifdef WL_ALL_PASSIVE
- 		spin_lock_init(&wl->txq_lock);
- #endif 
--		init_MUTEX(&wl->sem);
-+		sema_init(&wl->sem, 1);
- 	}
- 
- 	if (!(wl->wlc = wlc_attach((void *) wl, vendor, device, unit, wl->piomode,
diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix
index ab0873e7ddca..0848cb332534 100644
--- a/pkgs/os-specific/linux/busybox/default.nix
+++ b/pkgs/os-specific/linux/busybox/default.nix
@@ -37,11 +37,11 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "busybox-1.20.1";
+  name = "busybox-1.20.2";
 
   src = fetchurl {
     url = "http://busybox.net/downloads/${name}.tar.bz2";
-    sha256 = "1jb8xh9a0mc73nmnjz7g5k7ym39vrg7grp7zmgmq71gxps55sl9y";
+    sha256 = "10k8kgrprll9hxfm9gc3jl7kkq79g6l2pygn5snqwqg5v80zy4zb";
   };
 
   configurePhase = ''
diff --git a/pkgs/os-specific/linux/cifs-utils/default.nix b/pkgs/os-specific/linux/cifs-utils/default.nix
index 63eafb93e304..9e761b90a05c 100644
--- a/pkgs/os-specific/linux/cifs-utils/default.nix
+++ b/pkgs/os-specific/linux/cifs-utils/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
-   
+
 stdenv.mkDerivation rec {
-  name = "cifs-utils-5.3";
-   
+  name = "cifs-utils-5.6";
+
   src = fetchurl {
     url = "ftp://ftp.samba.org/pub/linux-cifs/cifs-utils/${name}.tar.bz2";
-    sha256 = "68e969c4107a872e2848992732dc11eafc7bdf084bec894c0ba677572de49b32";
+    sha256 = "0f619nw1163bcmfc83mmqj31qdkl68wfm81vynx3d8q0m0k1ll7i";
   };
 
   makeFlags = "root_sbindir=$(out)/sbin";
@@ -13,6 +13,6 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://www.samba.org/linux-cifs/cifs-utils/;
     description = "Tools for managing Linux CIFS client filesystems";
-    platforms = stdenv.lib.platforms.linux;    
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/conky/curl-types-h.patch b/pkgs/os-specific/linux/conky/curl-types-h.patch
deleted file mode 100644
index ba99da23b46c..000000000000
--- a/pkgs/os-specific/linux/conky/curl-types-h.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-curl removed <curl/types.h> header
-diff --git a/src/ccurl_thread.c b/src/ccurl_thread.c
-index 10e73a6..9bea299 100644
---- a/src/ccurl_thread.c
-+++ b/src/ccurl_thread.c
-@@ -33,7 +33,6 @@
- #endif /* DEBUG */
- 
- #include <curl/curl.h>
--#include <curl/types.h>
- #include <curl/easy.h>
- 
- /*
-diff --git a/src/eve.c b/src/eve.c
-index dc07264..f62a5f6 100644
---- a/src/eve.c
-+++ b/src/eve.c
-@@ -37,7 +37,6 @@
- #include <libxml/xmlwriter.h>
- 
- #include <curl/curl.h>
--#include <curl/types.h>
- #include <curl/easy.h>
- 
- #include <time.h>
diff --git a/pkgs/os-specific/linux/conky/default.nix b/pkgs/os-specific/linux/conky/default.nix
index fda361d6c742..086b792b4cd4 100644
--- a/pkgs/os-specific/linux/conky/default.nix
+++ b/pkgs/os-specific/linux/conky/default.nix
@@ -1,24 +1,26 @@
-{stdenv, fetchurl, pkgconfig, libxml2, curl, wirelesstools, glib, openssl}:
+{ stdenv, fetchurl, pkgconfig, libxml2, curl, wirelesstools, glib, openssl
+, ncurses }:
 
 stdenv.mkDerivation rec {
-  name = "conky-1.8.1";
+  name = "conky-1.9.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/conky/${name}.tar.bz2";
-    sha256 = "0hsybra4qzaqzny6n66m7768vbwkikajcvcbsqgnnnb9527jfnpq";
+    sha256 = "0vxvjmi3cdvnp994sv5zcdyncfn0mlxa71p2wm9zpyrmy58bbwds";
   };
 
-  buildInputs = [ pkgconfig libxml2 curl wirelesstools glib openssl ];
-  configureFlags =
-    (map (x: "--disable-${x}") [ "x11" "xdamage" "own-window" "xft" "lua" "ncurses" ])
-    ++ (map (x: "--enable-${x}") [ "mpd" "double-buffer" "wlan" "rss" ]);
+  patches = [ ./stdbool.patch ];
 
-  patches = [ ./curl-types-h.patch ];
+  buildInputs = [ pkgconfig libxml2 curl wirelesstools glib openssl ncurses ];
+  configureFlags =
+    (map (x: "--disable-${x}") [ "x11" "xdamage" "own-window" "xft" "lua" ])
+    ++ (map (x: "--enable-${x}") [ "mpd" "double-buffer" "wlan" "rss"
+                                   "weather-metar" "weather-xoap" ]);
 
   meta = {
     homepage = http://conky.sourceforge.net/;
     description = "Conky is an advanced, highly configurable system monitor complied without X based on torsmo";
     maintainers = [ stdenv.lib.maintainers.guibert ];
+    license = stdenv.lib.licenses.gpl3Plus;
   };
 }
-
diff --git a/pkgs/os-specific/linux/conky/stdbool.patch b/pkgs/os-specific/linux/conky/stdbool.patch
new file mode 100644
index 000000000000..3f0b714a1f0c
--- /dev/null
+++ b/pkgs/os-specific/linux/conky/stdbool.patch
@@ -0,0 +1,12 @@
+diff --git a/src/conky.c b/src/conky.c
+index 5848b61..69a3d45 100644
+--- a/src/conky.c
++++ b/src/conky.c
+@@ -34,6 +34,7 @@
+ #include "common.h"
+ #include "timed_thread.h"
+ #include <stdarg.h>
++#include <stdbool.h>
+ #include <math.h>
+ #include <time.h>
+ #include <locale.h>
diff --git a/pkgs/os-specific/linux/cryptodev/default.nix b/pkgs/os-specific/linux/cryptodev/default.nix
new file mode 100644
index 000000000000..c64d47d0d4d6
--- /dev/null
+++ b/pkgs/os-specific/linux/cryptodev/default.nix
@@ -0,0 +1,29 @@
+{ fetchurl, stdenv, kernel, onlyHeaders ? false }:
+
+stdenv.mkDerivation rec {
+  name = "cryptodev-linux-1.5";
+
+  src = fetchurl {
+    url = "http://download.gna.org/cryptodev-linux/${name}.tar.gz";
+    sha256 = "13hybl5p0ck0vgi2gxmiwa2810gcfk78kdy17ai8nczj8il15mn0";
+  };
+
+  buildPhase = if (!onlyHeaders) then ''
+    make -C ${kernel}/lib/modules/${kernel.modDirVersion}/build \
+      SUBDIRS=`pwd` INSTALL_PATH=$out
+  '' else ":";
+
+  installPhase = stdenv.lib.optionalString (!onlyHeaders) ''
+    make -C ${kernel}/lib/modules/${kernel.modDirVersion}/build \
+      INSTALL_MOD_PATH=$out SUBDIRS=`pwd` modules_install
+  '' + ''
+    mkdir -p $out/include/crypto
+    cp crypto/cryptodev.h $out/include/crypto
+  '';
+
+  meta = {
+    description = "Device that allows access to Linux kernel cryptographic drivers";
+    homepage = http://home.gna.org/cryptodev-linux/;
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/os-specific/linux/cryptsetup/default.nix b/pkgs/os-specific/linux/cryptsetup/default.nix
index 89a9d2b8506c..9e762f649041 100644
--- a/pkgs/os-specific/linux/cryptsetup/default.nix
+++ b/pkgs/os-specific/linux/cryptsetup/default.nix
@@ -1,13 +1,15 @@
-{ stdenv, fetchurl, devicemapper, libgcrypt, libuuid, pkgconfig, popt, udev }:
+{ stdenv, fetchurl, devicemapper, libgcrypt, libuuid, pkgconfig, popt }:
 
 stdenv.mkDerivation rec {
-  name = "cryptsetup-1.4.2";
-  
+  name = "cryptsetup-1.5.0";
+
   src = fetchurl {
     url = "http://cryptsetup.googlecode.com/files/${name}.tar.bz2";
-    sha256 = "1ryzc36wfbfqi69c3xzx2x6jr7l5xp7xwip4s9jkyjyj35xhvs0z";
+    sha256 = "1l7qcmaq092k28k8sbw845hs6jwn0f05h68rmb7iwh52232m8wa0";
   };
 
+  configureFlags = "--enable-cryptsetup-reencrypt";
+
   buildInputs = [ devicemapper libgcrypt libuuid pkgconfig popt ];
 
   meta = {
diff --git a/pkgs/os-specific/linux/dstat/default.nix b/pkgs/os-specific/linux/dstat/default.nix
new file mode 100644
index 000000000000..fb454c78788b
--- /dev/null
+++ b/pkgs/os-specific/linux/dstat/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, python }:
+
+stdenv.mkDerivation rec {
+  name = "dstat-0.7.2";
+
+  src = fetchurl {
+    url = "http://dag.wieers.com/home-made/dstat/${name}.tar.bz2";
+    sha256 = "1bivnciwlamnl9q6i5ygr7jhs8pp833z2bkbrffvsa60szcqda9l";
+  };
+
+  buildInputs = [ ];
+
+  patchPhase = ''
+    sed -i -e 's|/usr/bin/env python|${python}/bin/python|' \
+           -e "s|/usr/share/dstat|$out/share/dstat|" dstat
+  '';
+
+  makeFlags = "prefix=$(out)";
+
+  meta = {
+    homepage = http://dag.wieers.com/home-made/dstat/;
+    description = "Versatile resource statistics tool.";
+    license = "GPLv2";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ ];
+  };
+}
diff --git a/pkgs/os-specific/linux/firmware/amd-ucode/default.nix b/pkgs/os-specific/linux/firmware/amd-ucode/default.nix
index 685b44a16512..dc5959d400d1 100644
--- a/pkgs/os-specific/linux/firmware/amd-ucode/default.nix
+++ b/pkgs/os-specific/linux/firmware/amd-ucode/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
 
-  name = "amd-ucode-2012-01-17";
+  name = "amd-ucode-2012-09-10";
 
   src = fetchurl {
     url = "http://www.amd64.org/pub/microcode/${name}.tar";
-    sha256 = "0mqnbs87khv6p874cbyf9nb8i4gc592ws67lyzhc4chmwvc9ln47";
+    sha256 = "065phvhx5hx5ssdd1x2p5m1yv26ak7l5aaw6yk6h95x9mxn5r111";
   };
 
   installPhase = ''
diff --git a/pkgs/os-specific/linux/firmware/ipw2100/default.nix b/pkgs/os-specific/linux/firmware/ipw2100/default.nix
index 617a6cc38dda..abc6bf08dac9 100644
--- a/pkgs/os-specific/linux/firmware/ipw2100/default.nix
+++ b/pkgs/os-specific/linux/firmware/ipw2100/default.nix
@@ -1,7 +1,8 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
 
 stdenv.mkDerivation {
   name = "ipw2100-fw-1.3";
+  
   src = fetchurl {
     url = http://pkgs.fedoraproject.org/repo/pkgs/ipw2100-firmware/ipw2100-fw-1.3.tgz/46aa75bcda1a00efa841f9707bbbd113/ipw2100-fw-1.3.tgz;
     sha256 = "18m7wgd062qwfdr6y0kjrvf1715wjcjn4yml2sk29ls8br2pq471";
@@ -13,7 +14,7 @@ stdenv.mkDerivation {
   # says: "Your rights to redistribute the Software shall be
   # contingent upon your installation of this Agreement in its
   # entirety in the same directory as the Software."
-  installPhase = "mkdir -p $out; cp * $out";
+  installPhase = "mkdir -p $out; cp ipw* LICENSE $out";
   
   meta = {
     # "... you may transfer a copy of the Software ... provided such
diff --git a/pkgs/os-specific/linux/firmware/ipw2200/default.nix b/pkgs/os-specific/linux/firmware/ipw2200/default.nix
index ec1607ff2f73..5c4989b878a6 100644
--- a/pkgs/os-specific/linux/firmware/ipw2200/default.nix
+++ b/pkgs/os-specific/linux/firmware/ipw2200/default.nix
@@ -1,7 +1,8 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl }:
 
 stdenv.mkDerivation {
   name = "ipw2200-fw-3.1";
+  
   src = fetchurl {
     url = http://pkgs.fedoraproject.org/repo/pkgs/ipw2200-firmware/ipw2200-fw-3.1.tgz/eaba788643c7cc7483dd67ace70f6e99/ipw2200-fw-3.1.tgz;
     sha256 = "1gaqc8d827d6ji7zhhkpbr4fzznqpar68gzqbzak1h4cq48qr0f6";
diff --git a/pkgs/os-specific/linux/firmware/iwlwifi-2030-ucode/default.nix b/pkgs/os-specific/linux/firmware/iwlwifi-2030-ucode/default.nix
new file mode 100644
index 000000000000..162423dbc05e
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/iwlwifi-2030-ucode/default.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "iwlwifi-2030-ucode-18.168.6.1";
+
+  src = fetchurl {
+    url = "http://intellinuxwireless.org/iwlwifi/downloads/${name}.tgz";
+    sha256 = "0b69jpb46fk63ybyyb8lbh99j1d29ayp8fl98l18iqy3q7mx4ry8";
+  };
+
+  buildPhase = "true";
+
+  installPhase = ''
+    mkdir -p "$out"
+    chmod -x *
+    cp * "$out"
+  '';
+
+  meta = {
+    description = "Firmware for the Intel 2030 Series wireless card";
+
+    longDescription = ''
+      This package provides the Intel 2030 Series wireless card
+      firmware. It contains the `iwlwifi-2030-6.ucode' file.
+    '';
+
+    homepage = http://intellinuxwireless.org/;
+  };
+}
diff --git a/pkgs/os-specific/linux/firmware/rt73/default.nix b/pkgs/os-specific/linux/firmware/rt73/default.nix
deleted file mode 100644
index 953931001394..000000000000
--- a/pkgs/os-specific/linux/firmware/rt73/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{stdenv, fetchurl, unzip}:
-
-stdenv.mkDerivation rec {
-  name = "rt73-fw-1.8";
-  src = fetchurl {
-    url = "http://www.ralinktech.com/download.php?t=U0wyRnpjMlYwY3k4eU1EQTVMekF6THpNeEwyUnZkMjVzYjJGa056YzVPVE13TmpZMk9TNTZhWEE5UFQxU1ZEY3hWMTlHYVhKdGQyRnlaVjlXTVM0NEM%3D";
-    name = "rt73-fw-1.8.zip";
-    sha256 = "1gskm6wqp8nnz3qk44rmab6h81pkarzzphqvag4y05a8mwdarlz2";
-  };
-
-  buildInputs = [ unzip ];
-  
-  buildPhase = "true";
-
-  # Installation copies the firmware AND the license.  The license
-  # says: "Your rights to redistribute the Software shall be
-  # contingent upon your installation of this Agreement in its
-  # entirety in the same directory as the Software."
-  installPhase = "mkdir -p $out/${name}; cp *.bin $out; cp *.txt $out/${name}";
-  
-  meta = {
-    description = "Firmware for the Ralink RT73 wireless card";
-    homepage = http://www.ralinktech.com/;
-    license = "non-free";
-  };
-}
diff --git a/pkgs/os-specific/linux/gogoclient/default.nix b/pkgs/os-specific/linux/gogoclient/default.nix
index d1a4bf9feb65..4328eb36b6dc 100644
--- a/pkgs/os-specific/linux/gogoclient/default.nix
+++ b/pkgs/os-specific/linux/gogoclient/default.nix
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
   name = "${baseName}-${version}";
 
   src = fetchurl {
-    url = http://gogo6.com/downloads/gogoc-1_2-RELEASE.tar.gz;
+    #url = http://gogo6.com/downloads/gogoc-1_2-RELEASE.tar.gz;
+    url = http://pkgs.fedoraproject.org/repo/pkgs/gogoc/gogoc-1_2-RELEASE.tar.gz/41177ed683cf511cc206c7782c37baa9/gogoc-1_2-RELEASE.tar.gz;
     sha256 = "a0ef45c0bd1fc9964dc8ac059b7d78c12674bf67ef641740554e166fa99a2f49";
   };
   patches = [./gcc46-include-fix.patch ./config-paths.patch ];
@@ -28,6 +29,7 @@ stdenv.mkDerivation rec {
       --replace "/sbin/route"    "${nettools}/sbin/route" \
       --replace "/sbin/ip"       "${iproute}/sbin/ip" \
       --replace "/sbin/sysctl"   "${procps}/sbin/sysctl"
+    sed -i -e 's/^.*Exec \$route -A.*$/& metric 128/' $out/template/linux.sh
   '';
 
   meta = {
diff --git a/pkgs/os-specific/linux/hostapd/default.nix b/pkgs/os-specific/linux/hostapd/default.nix
index 39f92d99b7f6..f13a1033f8ba 100644
--- a/pkgs/os-specific/linux/hostapd/default.nix
+++ b/pkgs/os-specific/linux/hostapd/default.nix
@@ -1,21 +1,22 @@
-{ stdenv, fetchurl, libnl1, openssl }:
+{ stdenv, fetchurl, libnl, openssl, pkgconfig }:
 stdenv.mkDerivation rec {
 
   name = "hostapd-${version}";
-  version = "0.7.3";
+  version = "1.0";
 
   src = fetchurl {
-    url = http://w1.fi/releases/hostapd-0.7.3.tar.gz;
-    sha256 = "0rqmjs4k50qjp2d0k71lg5vsh34w07w985cxjqklq6kyyf0jgsri";
+    url = "http://w1.fi/releases/${name}.tar.gz";
+    sha256 = "1k6z2g0g324593a7ybd76bywvj0gnf9cybqaj2sq5ks6gv5rsbh0";
   };
 
-  buildInputs = [ libnl1 openssl ];
+  buildInputs = [ libnl openssl pkgconfig ];
 
   configurePhase = ''
     cd hostapd
-    substituteInPlace defconfig --replace "#CONFIG_DRIVER_NL80211" "CONFIG_DRIVER_NL80211"
-    substituteInPlace Makefile --replace "/usr/local/bin/" "$out/bin/"
+    substituteInPlace Makefile --replace "/usr/local/bin" "$out/bin"
     mv defconfig .config
+    echo CONFIG_LIBNL32=y | tee -a .config
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags libnl-3.0)"
   '';
   preInstall = "mkdir -p $out/bin";
 
diff --git a/pkgs/os-specific/linux/iw/default.nix b/pkgs/os-specific/linux/iw/default.nix
new file mode 100644
index 000000000000..7110754357c1
--- /dev/null
+++ b/pkgs/os-specific/linux/iw/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, libnl, pkgconfig}:
+
+stdenv.mkDerivation {
+  name = "iw-3.6";
+
+  src = fetchurl {
+    url = http://wireless.kernel.org/download/iw/iw-3.6.tar.bz2;
+    sha256 = "0my8nv6liya0b15nqn8wq2kxwjy7x6k65a9x1121zwqxq5m064fz";
+  };
+
+  buildInputs = [ libnl pkgconfig ];
+
+  preBuild = "
+    makeFlagsArray=(PREFIX=$out)
+  ";
+
+  meta = {
+    description = "Tool to use nl80211";
+    homepage = http://wireless.kernel.org/en/users/Documentation/iw;
+    license = "BSD";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/kbd/default.nix b/pkgs/os-specific/linux/kbd/default.nix
index da45b39cee1e..4d04b75b3b02 100644
--- a/pkgs/os-specific/linux/kbd/default.nix
+++ b/pkgs/os-specific/linux/kbd/default.nix
@@ -1,25 +1,28 @@
-{ stdenv, fetchurl, bison, flex, autoconf, automake }:
+{ stdenv, fetchurl, gzip, bzip2 }:
 
 stdenv.mkDerivation rec {
-  name = "kbd-1.15.2";
+  name = "kbd-1.15.3";
 
   src = fetchurl {
     url = "ftp://ftp.altlinux.org/pub/people/legion/kbd/${name}.tar.gz";
-    sha256 = "0ff674y6d3b6ix08b9l2yzv8igns768biyp5y92vip7iz4xv2p2j";
+    sha256 = "1vcl2791xshjdpi4w88iy87gkb7zv0dbvi83f98v30dvqc9mfl46";
   };
 
-  buildNativeInputs = [ bison flex autoconf automake ];
+  configureFlags = "--disable-nls";  
 
-  # We get a warning in armv5tel-linux and the fuloong2f,
-  # so we disable -Werror in it
-  patchPhase = if (stdenv.isArm ||
-    stdenv.system == "mips64el-linux")
-    then ''
-      sed -i s/-Werror// src/Makefile.am
-    '' else "";
-
-  # Grrr, kbd 1.15.1 doesn't include a configure script.
-  preConfigure = "autoreconf";
+  patchPhase =
+    ''
+      # Fix the path to gzip/bzip2.
+      substituteInPlace src/findfile.c \
+        --replace gzip ${gzip}/bin/gzip \
+        --replace bzip2 ${bzip2}/bin/bzip2 \
+    
+      # We get a warning in armv5tel-linux and the fuloong2f, so we
+      # disable -Werror in it.
+      ${stdenv.lib.optionalString (stdenv.isArm || stdenv.system == "mips64el-linux") ''
+        sed -i s/-Werror// src/Makefile.am
+      ''}
+    '';
 
   makeFlags = "setowner= ";
 
diff --git a/pkgs/os-specific/linux/kernel/builder.sh b/pkgs/os-specific/linux/kernel/builder.sh
index 4c095bf8bbc9..14d8108ba16b 100644
--- a/pkgs/os-specific/linux/kernel/builder.sh
+++ b/pkgs/os-specific/linux/kernel/builder.sh
@@ -140,6 +140,10 @@ installPhase() {
         (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
 
diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix
index 9e8ee74acb17..48f050f98cc2 100644
--- a/pkgs/os-specific/linux/kernel/generic.nix
+++ b/pkgs/os-specific/linux/kernel/generic.nix
@@ -27,9 +27,6 @@
   # optionally be compressed with gzip or bzip2.
   kernelPatches ? []
 
-, # Whether to build a User-Mode Linux kernel.
-  userModeLinux ? false
-
 , # Allows you to set your own kernel version suffix (e.g.,
   # "-my-kernel").
   localVersion ? ""
@@ -63,7 +60,7 @@ let
 in
 
 stdenv.mkDerivation {
-  name = if userModeLinux then "user-mode-linux-${version}" else "linux-${version}";
+  name = "linux-${version}";
 
   enableParallelBuilding = true;
 
@@ -84,7 +81,7 @@ stdenv.mkDerivation {
   kernelConfig = kernelConfigFun config;
 
   # For UML and non-PC, just ignore all options that don't apply (We are lazy).
-  ignoreConfigErrors = (userModeLinux || stdenv.platform.name != "pc");
+  ignoreConfigErrors = stdenv.platform.name != "pc";
 
   buildNativeInputs = [ perl mktemp ];
   buildInputs = lib.optional (stdenv.platform.uboot != null)
@@ -98,7 +95,6 @@ stdenv.mkDerivation {
   # Should we trust platform.kernelArch? We can only do
   # that once we differentiate i686/x86_64 in platforms.
   arch =
-    if userModeLinux then "um" else
     if stdenv.system == "i686-linux" then "i386" else
     if stdenv.system == "x86_64-linux" then "x86_64" else
     if stdenv.isArm then "arm" else
@@ -129,10 +125,7 @@ stdenv.mkDerivation {
 
   meta = {
     description =
-      (if userModeLinux then
-        "User-Mode Linux"
-       else
-        "The Linux kernel") +
+      "The Linux kernel" +
       (if kernelPatches == [] then "" else
         " (with patches: "
         + lib.concatStrings (lib.intersperse ", " (map (x: x.name) kernelPatches))
diff --git a/pkgs/os-specific/linux/kernel/linux-3.0.nix b/pkgs/os-specific/linux/kernel/linux-3.0.nix
index e2ed7fc8c5df..def318a1f3a5 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.0.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.0.nix
@@ -1,4 +1,4 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+args @ { stdenv, fetchurl, extraConfig ? ""
 , perl, mktemp, module_init_tools
 , ... }:
 
@@ -230,15 +230,15 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.0.31";
-  
+    version = "3.0.43";
+
     preConfigure = ''
       substituteInPlace scripts/depmod.sh --replace '-b "$INSTALL_MOD_PATH"' ""
     '';
 
     src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.bz2";
-      sha256 = "1b5ix1fc55m6vsr28dh5xi89fphl3m3kmvaniq9div5rj8f6kv0f";
+      url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
+      sha256 = "1mrsdqsphkixvd5x97nz465r490hr679rq6f98jbyr0g5m4fyc29";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.1.nix b/pkgs/os-specific/linux/kernel/linux-3.1.nix
index 76e2942c6a37..0ec50303ee2a 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.1.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.1.nix
@@ -1,4 +1,4 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+args @ { stdenv, fetchurl, extraConfig ? ""
 , perl, mktemp, module_init_tools
 , ... }:
 
diff --git a/pkgs/os-specific/linux/kernel/linux-3.2.nix b/pkgs/os-specific/linux/kernel/linux-3.2.nix
index ab1ec38ba523..2f36792d3536 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.2.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.2.nix
@@ -1,4 +1,4 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+args @ { stdenv, fetchurl, extraConfig ? ""
 , perl, mktemp, module_init_tools
 , ... }:
 
@@ -237,7 +237,7 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.2.23";
+    version = "3.2.30";
     testing = false;
 
     modDirVersion = version;
@@ -248,7 +248,7 @@ import ./generic.nix (
 
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v3.0/${if testing then "testing/" else ""}linux-${version}.tar.xz";
-      sha256 = "1fmxr9qdz239aqf63j1648rvfngysqqk8qzwb1wjsn5hzrahsxmw";
+      sha256 = "1yg353alkk7vddd8b2d7dlgpwaxjigk8i9qq1xifln3i842zinvw";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.3.nix b/pkgs/os-specific/linux/kernel/linux-3.3.nix
index 956e55014e58..395b93e9f3fd 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.3.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.3.nix
@@ -1,4 +1,4 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+args @ { stdenv, fetchurl, extraConfig ? ""
 , perl, mktemp, module_init_tools
 , ... }:
 
@@ -236,7 +236,7 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.3.6";
+    version = "3.3.8";
     testing = false;
 
     preConfigure = ''
@@ -245,7 +245,7 @@ import ./generic.nix (
 
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v3.x/${if testing then "testing/" else ""}linux-${version}.tar.xz";
-      sha256 = "04hplilmy9ks6nxi4292mcqwil6b5vinx90w23m41bll1x32gbq8";
+      sha256 = "0bgppngf711mlxp0jcsnv5xc0xxc8vs5rzc1czkv2igrfb1kvrnz";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.4.nix b/pkgs/os-specific/linux/kernel/linux-3.4.nix
index 5cbde5651538..dbff9bba07e1 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.4.nix
@@ -1,4 +1,4 @@
-args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+args @ { stdenv, fetchurl, extraConfig ? ""
 , perl, mktemp, module_init_tools
 , ... }:
 
@@ -239,7 +239,7 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.4.5";
+    version = "3.4.11";
     testing = false;
 
     preConfigure = ''
@@ -248,7 +248,7 @@ import ./generic.nix (
 
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v3.x/${if testing then "testing/" else ""}linux-${version}.tar.xz";
-      sha256 = "17m58d2mc2mgr49hlwhic03s0z1mjyp7lhfvfmpqi3qszrz3xij3";
+      sha256 = "0fda9z5dxvn8sbgr1c143ly8ixm0grymwm4r94nryby9i03s03a2";
     };
 
     config = configWithPlatform stdenv.platform;
@@ -256,6 +256,7 @@ import ./generic.nix (
 
     features.iwlwifi = true;
     features.efiBootStub = true;
+    features.needsCifsUtils = true;
   }
 
   // removeAttrs args ["extraConfig"]
diff --git a/pkgs/os-specific/linux/kernel/linux-3.5.nix b/pkgs/os-specific/linux/kernel/linux-3.5.nix
new file mode 100644
index 000000000000..9bcc6514f497
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-3.5.nix
@@ -0,0 +1,264 @@
+args @ { stdenv, fetchurl, extraConfig ? ""
+, perl, mktemp, module_init_tools
+, ... }:
+
+let
+  configWithPlatform = kernelPlatform :
+    ''
+      # Power management and debugging for powertop.
+      DEBUG_KERNEL y
+      PM_ADVANCED_DEBUG y
+      PM_RUNTIME y
+      TIMER_STATS y
+      USB_SUSPEND y
+      BACKTRACE_SELF_TEST n
+      CPU_NOTIFIER_ERROR_INJECT? n
+      DEBUG_DEVRES n
+      DEBUG_NX_TEST n
+      DEBUG_STACK_USAGE n
+      DEBUG_STACKOVERFLOW n
+      RCU_TORTURE_TEST n
+      SCHEDSTATS n
+
+      # Support drivers that need external firmware.
+      STANDALONE n
+
+      # Make /proc/config.gz available.
+      IKCONFIG_PROC y
+
+      # Optimize with -O2, not -Os.
+      CC_OPTIMIZE_FOR_SIZE n
+
+      # Enable the kernel's built-in memory tester.
+      MEMTEST y
+
+      # Include the CFQ I/O scheduler in the kernel, rather than as a
+      # module, so that the initrd gets a good I/O scheduler.
+      IOSCHED_CFQ y
+      BLK_CGROUP y # required by CFQ
+
+      # Enable NUMA.
+      NUMA? y
+
+      # Disable some expensive (?) features.
+      FTRACE n
+      KPROBES n
+      PM_TRACE_RTC n
+
+      # Enable various subsystems.
+      ACCESSIBILITY y # Accessibility support
+      AUXDISPLAY y # Auxiliary Display support
+      DONGLE y # Serial dongle support
+      HIPPI? y
+      MTD_COMPLEX_MAPPINGS y # needed for many devices
+      SCSI_LOWLEVEL y # enable lots of SCSI devices
+      SCSI_LOWLEVEL_PCMCIA y
+      SPI y # needed for many devices
+      SPI_MASTER y
+      WAN y
+
+      # Networking options.
+      IP_PNP n
+      IPV6_PRIVACY y
+      NETFILTER_ADVANCED y
+      IP_VS_PROTO_TCP y
+      IP_VS_PROTO_UDP y
+      IP_VS_PROTO_ESP y
+      IP_VS_PROTO_AH y
+      IP_DCCP_CCID3 n # experimental
+      CLS_U32_PERF y
+      CLS_U32_MARK y
+
+      # Wireless networking.
+      IPW2100_MONITOR y # support promiscuous mode
+      IPW2200_MONITOR y # support promiscuous mode
+      HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
+      HOSTAP_FIRMWARE_NVRAM y
+      ATH9K_PCI y # Detect Atheros AR9xxx cards on PCI(e) bus
+      ATH9K_AHB y # Ditto, AHB bus
+      B43_PHY_HT y
+      BCMA_HOST_PCI y
+
+      # Some settings to make sure that fbcondecor works - in particular,
+      # disable tileblitting and the drivers that need it.
+
+      # Enable various FB devices.
+      FB y
+      FB_EFI y
+      FB_NVIDIA_I2C y # Enable DDC Support
+      FB_RIVA_I2C y
+      FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
+      FB_ATY_GX y # Mach64 GX support
+      FB_SAVAGE_I2C y
+      FB_SAVAGE_ACCEL y
+      FB_SIS_300 y
+      FB_SIS_315 y
+      FB_3DFX_ACCEL y
+      FB_GEODE y
+
+      # Video configuration
+      # Enable KMS for devices whose X.org driver supports it.
+      DRM_I915_KMS y
+      DRM_RADEON_KMS y
+      # Hybrid graphics support
+      VGA_SWITCHEROO y
+
+      # Sound.
+      SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
+      SND_HDA_INPUT_BEEP y # Support digital beep via input layer
+      SND_USB_CAIAQ_INPUT y
+      PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
+
+      # USB serial devices.
+      USB_SERIAL_GENERIC y # USB Generic Serial Driver
+      USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
+      USB_SERIAL_KEYSPAN_USA28 y
+      USB_SERIAL_KEYSPAN_USA28X y
+      USB_SERIAL_KEYSPAN_USA28XA y
+      USB_SERIAL_KEYSPAN_USA28XB y
+      USB_SERIAL_KEYSPAN_USA19 y
+      USB_SERIAL_KEYSPAN_USA18X y
+      USB_SERIAL_KEYSPAN_USA19W y
+      USB_SERIAL_KEYSPAN_USA19QW y
+      USB_SERIAL_KEYSPAN_USA19QI y
+      USB_SERIAL_KEYSPAN_USA49W y
+      USB_SERIAL_KEYSPAN_USA49WLC y
+
+      # Filesystem options - in particular, enable extended attributes and
+      # ACLs for all filesystems that support them.
+      EXT2_FS_XATTR y # Ext2 extended attributes
+      EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
+      EXT2_FS_SECURITY y # Ext2 Security Labels
+      EXT2_FS_XIP y # Ext2 execute in place support
+      EXT4_FS_POSIX_ACL y
+      EXT4_FS_SECURITY y
+      REISERFS_FS_XATTR y
+      REISERFS_FS_POSIX_ACL y
+      REISERFS_FS_SECURITY y
+      JFS_POSIX_ACL y
+      JFS_SECURITY y
+      XFS_QUOTA y
+      XFS_POSIX_ACL y
+      XFS_RT y # XFS Realtime subvolume support
+      OCFS2_DEBUG_MASKLOG n
+      BTRFS_FS_POSIX_ACL y
+      UBIFS_FS_XATTR? y
+      UBIFS_FS_ADVANCED_COMPR y
+      NFSD_V2_ACL y
+      NFSD_V3 y
+      NFSD_V3_ACL y
+      NFSD_V4 y
+      CIFS_XATTR y
+      CIFS_POSIX y
+
+      # Security related features.
+      STRICT_DEVMEM y # Filter access to /dev/mem
+      SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
+
+      # Misc. options.
+      8139TOO_8129 y
+      8139TOO_PIO n # PIO is slower
+      AIC79XX_DEBUG_ENABLE n
+      AIC7XXX_DEBUG_ENABLE n
+      AIC94XX_DEBUG n
+      B43_PCMCIA y
+      BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
+      BLK_DEV_IDEACPI y # IDE ACPI support
+      BLK_DEV_INTEGRITY y
+      BSD_PROCESS_ACCT_V3 y
+      BT_HCIUART_BCSP y
+      BT_HCIUART_H4 y # UART (H4) protocol support
+      BT_HCIUART_LL y
+      BT_RFCOMM m
+      BT_RFCOMM_TTY y # RFCOMM TTY support
+      CRASH_DUMP n
+      DMAR? n # experimental
+      DVB_DYNAMIC_MINORS y # we use udev
+      EFI_STUB y # EFI bootloader in the bzImage itself
+      FUSION y # Fusion MPT device support
+      IDE_GD_ATAPI y # ATAPI floppy support
+      IRDA_ULTRA y # Ultra (connectionless) protocol
+      JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
+      JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
+      JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
+      JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
+      LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
+      LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
+      LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
+      LOGO n # not needed
+      MEDIA_ATTACH y
+      MEGARAID_NEWGEN y
+      MICROCODE_AMD y
+      MODVERSIONS y
+      MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
+      MTRR_SANITIZER y
+      NET_FC y # Fibre Channel driver support
+      PPP_MULTILINK y # PPP multilink support
+      REGULATOR y # Voltage and Current Regulator Support
+      SCSI_LOGGING y # SCSI logging facility
+      SERIAL_8250 y # 8250/16550 and compatible serial support
+      SLIP_COMPRESSED y # CSLIP compressed headers
+      SLIP_SMART y
+      THERMAL_HWMON y # Hardware monitoring support
+      USB_DEBUG n
+      USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
+      USB_EHCI_TT_NEWSCHED y # Improved transaction translator scheduling
+      X86_CHECK_BIOS_CORRUPTION y
+      X86_MCE y
+      XEN_DOM0 y
+
+      # Linux Containers
+      RT_GROUP_SCHED? y
+      CGROUP_DEVICE? y
+      CGROUP_MEM_RES_CTLR? y
+      CGROUP_MEM_RES_CTLR_SWAP? y
+      DEVPTS_MULTIPLE_INSTANCES? y
+
+      # Enable staging drivers.  These are somewhat experimental, but
+      # they generally don't hurt.
+      STAGING y
+
+      # PROC_EVENTS requires that the netlink connector is not built
+      # as a module.  This is required by libcgroup's cgrulesengd.
+      CONNECTOR y
+      PROC_EVENTS y
+
+      # Tracing
+      FTRACE y
+      FUNCTION_TRACER y
+      FTRACE_SYSCALLS y
+      SCHED_TRACER y
+
+      # Devtmpfs support.
+      DEVTMPFS y
+
+      ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
+      ${extraConfig}
+    '';
+in
+
+import ./generic.nix (
+
+  rec {
+    version = "3.5.4";
+    testing = false;
+
+    preConfigure = ''
+      substituteInPlace scripts/depmod.sh --replace '-b "$INSTALL_MOD_PATH"' ""
+    '';
+
+    src = fetchurl {
+      url = "mirror://kernel/linux/kernel/v3.x/${if testing then "testing/" else ""}linux-${version}.tar.xz";
+      sha256 = "09pi00sk55rpl4mbhd27mnfajgy22bm0zwcgi68iyilc5wir1m12";
+    };
+
+    config = configWithPlatform stdenv.platform;
+    configCross = configWithPlatform stdenv.cross.platform;
+
+    features.iwlwifi = true;
+    features.efiBootStub = true;
+    features.needsCifsUtils = true;
+  }
+
+  // removeAttrs args ["extraConfig"]
+)
diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix
new file mode 100644
index 000000000000..52e284827d02
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/manual-config.nix
@@ -0,0 +1,167 @@
+{ stdenv, runCommand, nettools, perl, kmod, writeTextFile }:
+
+with stdenv.lib;
+
+let
+
+  # Function to parse the config file into a nix expression
+  readConfig = configFile:
+    let
+      configAttrs = import "${runCommand "config.nix" {} ''
+        (. ${configFile}
+        echo "{"
+        for var in `set`; do
+            if [[ "$var" =~ ^CONFIG_ ]]; then
+                IFS="="
+                set -- $var
+                echo "\"$1\" = \"''${*:2}\";"
+            fi
+        done
+        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
+
+{
+  # The kernel version
+  version,
+  # The version of the kernel module directory
+  modDirVersion ? version,
+  # The kernel source (tarball, git checkout, etc.)
+  src,
+  # Any patches
+  kernelPatches ? [],
+  # The kernel .config file
+  configfile,
+  # Manually specified nixexpr representing the config
+  # If unspecified, this will be autodetected from the .config
+  config ? optionalAttrs allowImportFromDerivation (readConfig configfile),
+  # 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";
+
+  installsFirmware = (config.isEnabled "FW_LOADER") &&
+    (isModular || (config.isDisabled "FIRMWARE_IN_KERNEL"));
+
+  commonMakeFlags = [
+    "O=$(buildRoot)"
+    "INSTALL_PATH=$(out)"
+  ] ++ (optional isModular "INSTALL_MOD_PATH=$(out)")
+  ++ optional installsFirmware "INSTALL_FW_PATH=$(out)/lib/firmware";
+in
+
+stdenv.mkDerivation {
+  name = "linux-${version}";
+
+  enableParallelBuilding = true;
+
+  passthru = {
+    inherit version modDirVersion config kernelPatches src;
+  };
+
+  sourceRoot = stdenv.mkDerivation {
+    name = "linux-${version}-source";
+
+    inherit src;
+
+    patches = map (p: p.patch) kernelPatches;
+
+    phases = [ "unpackPhase" "patchPhase" "installPhase" ]; 
+
+    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|'
+    '';
+
+    installPhase = ''
+      cd ..
+      mv $sourceRoot $out
+    '';
+  };
+
+  unpackPhase = ''
+    mkdir build
+    export buildRoot="$(pwd)/build"
+    ln -sv ${configfile} $buildRoot/.config
+    cd $sourceRoot
+  '';
+
+  configurePhase = ''
+    runHook preConfigure
+    make $makeFlags "''${makeFlagsArray[@]}" oldconfig
+    runHook postConfigure
+  '';
+
+  buildNativeInputs = [ perl nettools ];
+
+  makeFlags = commonMakeFlags ++ [
+   "INSTALLKERNEL=${installkernel stdenv.platform.kernelTarget}"
+  ];
+
+  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
+    mv $buildRoot $out/lib/modules/${modDirVersion}/build
+  '' else optionalString installsFirmware ''
+    make firmware_install $makeFlags "''${makeFlagsArray[@]}" \
+      $installFlags "''${installFlagsArray[@]}"
+  '');
+
+  postFixup = optionalString isModular ''
+    if [ -z "$dontStrip" ]; then
+        find $out -name "*.ko" -print0 | xargs -0 -r strip -S
+    fi
+  '';
+
+  meta = {
+    description = "The Linux kernel";
+    license = "GPLv2";
+    homepage = http://www.kernel.org/;
+    maintainers = [
+      maintainers.shlevy
+    ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index 65cd9b3d8301..a7f737d65e73 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -107,13 +107,13 @@ rec {
 
   aufs3_0 = rec {
     name = "aufs3.0";
-    version = "3.0";
-    utilRev = "cabe3601001ab3838215116c32715c9de9412e62";
-    utilHash = "7fc6cfe1e69a0b2438eaee056e15d42a2d6be396a637fcfb1b89858fcecc832f";
+    version = "3.0.20120827";
+    utilRev = "91af15f977d12e02165759620005f6ce1a4d7602";
+    utilHash = "dda4df89828dcf0e4012d88b4aa3eda8c30af69d6530ff5fedc2411de872c996";
     patch = makeAufs3StandalonePatch {
       inherit version;
-      rev = "517b27621cdfb793959acac849dae9888338526a";
-      sha256 = "8085200ac78d0c1e082d4c721a09f4a4c1d96ae86e307075836d09c3e7d502df";
+      rev = "4bd8efe495832ec43c26cb31ddcab3bae56485da";
+      sha256 = "496113f0eae1a24ae0c1998d1c73fc7c13961579c8e694b3651a8080eae7b74e";
     };
     features.aufsBase = true;
     features.aufs3 = true;
@@ -121,13 +121,13 @@ rec {
 
   aufs3_1 = rec {
     name = "aufs3.1";
-    version = "3.1";
-    utilRev = "cabe3601001ab3838215116c32715c9de9412e62";
-    utilHash = "7fc6cfe1e69a0b2438eaee056e15d42a2d6be396a637fcfb1b89858fcecc832f";
+    version = "3.1.20120827";
+    utilRev = "91af15f977d12e02165759620005f6ce1a4d7602";
+    utilHash = "dda4df89828dcf0e4012d88b4aa3eda8c30af69d6530ff5fedc2411de872c996";
     patch = makeAufs3StandalonePatch {
       inherit version;
-      rev = "7386b57432ec5e73632a5375804239b02b6c00f0";
-      sha256 = "af4e9ad890e1b72d14170c97d8ead53291f09e275db600932724e6181530be2d";
+      rev = "9be47f1ff7c86976b0baa7847f22d75983e53922";
+      sha256 = "0cd239b9aad396750a26a5cd7b0d54146f21db63fb13d3fa03c4f73b7ebce77e";
     };
     features.aufsBase = true;
     features.aufs3 = true;
@@ -135,13 +135,13 @@ rec {
 
   aufs3_2 = rec {
     name = "aufs3.2";
-    version = "3.2";
-    utilRev = "a953b0218667e06b722f4c41df29edacd8dc8e1f";
-    utilHash = "28ac4c1a07b2c30fb61a6facc9cedcf67b14f303baedf1b121aeb6293ea49eb4";
+    version = "3.2.20120827";
+    utilRev = "91af15f977d12e02165759620005f6ce1a4d7602";
+    utilHash = "dda4df89828dcf0e4012d88b4aa3eda8c30af69d6530ff5fedc2411de872c996";
     patch = makeAufs3StandalonePatch {
       inherit version;
-      rev = "9c4bbeb58f0ecc235ea820ae320efa2c0006e033";
-      sha256 = "5363a7f5fbadaef9457e743a5781f2525332c4bbb91693ca2596ab2d8f7860ea";
+      rev = "267cb1138b4724ee028ec64ace556abdf993c9f4";
+      sha256 = "61f69264806cf06a05548166e2bc8fd121de9a3e524385f725d76abab22b8a0d";
     };
     features.aufsBase = true;
     features.aufs3 = true;
@@ -149,13 +149,13 @@ rec {
 
   aufs3_3 = rec {
     name = "aufs3.3";
-    version = "3.3";
+    version = "3.3.20120827";
     utilRev = "91af15f977d12e02165759620005f6ce1a4d7602";
     utilHash = "dda4df89828dcf0e4012d88b4aa3eda8c30af69d6530ff5fedc2411de872c996";
     patch = makeAufs3StandalonePatch {
       inherit version;
-      rev = "91c3d8c80172db05575ee82c931f3541947a6aff";
-      sha256 = "8fe54993b6a7a290649c193aab5a4f7f2dcecaedb5422d951f898d03753b83fb";
+      rev = "ef302b8a8a2862b622cf4826d08b1e076ee6acb7";
+      sha256 = "7f78783685cc3e4eb825cd5dd8dabc82bb16c275493a850e8b7955ac69048d98";
     };
     features.aufsBase = true;
     features.aufs3 = true;
@@ -163,13 +163,27 @@ rec {
 
   aufs3_4 = rec {
     name = "aufs3.4";
-    version = "3.4";
+    version = "3.4.20120827";
     utilRev = "91af15f977d12e02165759620005f6ce1a4d7602";
     utilHash = "dda4df89828dcf0e4012d88b4aa3eda8c30af69d6530ff5fedc2411de872c996";
     patch = makeAufs3StandalonePatch {
       inherit version;
-      rev = "a5f7df8e59d57d6d9d749d49adc7e5a37ce2e342";
-      sha256 = "20a8f113bb654f92231726de8177eb51d7be1b900fd42c2b5f48726a7d5d3ce6";
+      rev = "79d8207b22c38420757adf7eec86ee2dcec7443c";
+      sha256 = "bc148aa251c6e63edca70c516c0548dc9b3e48653039df4cf693aa2bcc1b9bb0";
+    };
+    features.aufsBase = true;
+    features.aufs3 = true;
+  };
+
+  aufs3_5 = rec {
+    name = "aufs3.5";
+    version = "3.5.20120827";
+    utilRev = "91af15f977d12e02165759620005f6ce1a4d7602";
+    utilHash = "dda4df89828dcf0e4012d88b4aa3eda8c30af69d6530ff5fedc2411de872c996";
+    patch = makeAufs3StandalonePatch {
+      inherit version;
+      rev = "18e455787597579fe144cdb2f18aa6a0a32c46a4";
+      sha256 = "9649a4cb00e41e2b2e3aa57c3869c33faf90ecbd845a3ac0119922655e80a030";
     };
     features.aufsBase = true;
     features.aufs3 = true;
@@ -212,6 +226,11 @@ rec {
       patch = ./dell-rfkill.patch;
     };
 
+  perf3_5 =
+    { name = "perf-3.5";
+      patch = ./perf-3.5.patch;
+    };
+
   sheevaplug_modules_2_6_35 =
     { name = "sheevaplug_modules-2.6.35";
       patch = ./sheevaplug_modules-2.6.35.patch;
diff --git a/pkgs/os-specific/linux/kernel/perf-3.5.patch b/pkgs/os-specific/linux/kernel/perf-3.5.patch
new file mode 100644
index 000000000000..6d62a1db80e7
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/perf-3.5.patch
@@ -0,0 +1,17 @@
+http://permalink.gmane.org/gmane.linux.kernel.perf.user/960
+
+Fix to build perf.
+
+diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
+index 9f6cebd..d5491f1 100644
+--- a/tools/perf/util/evsel.c
++++ b/tools/perf/util/evsel.c
+@@ -15,7 +15,7 @@
+ #include "cpumap.h"
+ #include "thread_map.h"
+ #include "target.h"
+-#include "../../include/linux/perf_event.h"
++#include "../../../include/linux/perf_event.h"
+
+ #define FD(e, x, y) (*(int *)xyarray__entry(e->fd, x, y))
+ #define GROUP_FD(group_fd, cpu) (*(int *)xyarray__entry(group_fd, cpu, 0))
diff --git a/pkgs/os-specific/linux/kernel/perf.nix b/pkgs/os-specific/linux/kernel/perf.nix
index 669f61556fc2..01d989e75b10 100644
--- a/pkgs/os-specific/linux/kernel/perf.nix
+++ b/pkgs/os-specific/linux/kernel/perf.nix
@@ -7,7 +7,7 @@ assert withGtk -> gtk != null;
 stdenv.mkDerivation {
   name = "perf-linux-${kernel.version}";
 
-  inherit (kernel) src;
+  inherit (kernel) src patches;
 
   preConfigure = ''
     cd tools/perf
diff --git a/pkgs/os-specific/linux/kmod/default.nix b/pkgs/os-specific/linux/kmod/default.nix
index 89d4c463cc70..afa19491ce5e 100644
--- a/pkgs/os-specific/linux/kmod/default.nix
+++ b/pkgs/os-specific/linux/kmod/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, xz, zlib, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  name = "kmod-8";
+  name = "kmod-9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/kernel/kmod/${name}.tar.xz";
-    sha256 = "0kbkjzcyhkwgcplwa29n0f03ccwpg4df83pdl5nkvsk2rzgx3xrm";
+    sha256 = "1kyfplx0gygzxp5dn81yk3cn8zzraqm497vis04r1g1dnry2c1q6";
   };
 
   # Disable xz/zlib support to prevent needing them in the initrd.
diff --git a/pkgs/os-specific/linux/libcap/default.nix b/pkgs/os-specific/linux/libcap/default.nix
index c279393d7a40..667fe63bba78 100644
--- a/pkgs/os-specific/linux/libcap/default.nix
+++ b/pkgs/os-specific/linux/libcap/default.nix
@@ -1,18 +1,18 @@
-{stdenv, fetchurl, attr, perl}:
+{ stdenv, fetchurl, attr, perl }:
 
 assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
   name = "libcap-${version}";
-  version = "2.19";
+  version = "2.22";
   
   src = fetchurl {
-    url = "mirror://kernel/linux/libs/security/linux-privs/kernel-2.6/${name}.tar.gz";
-    sha256 = "0fdsz9j741npvh222f8p1y6l516z9liibiwdpdr3a4zg53m0pw45";
+    url = "mirror://gentoo/distfiles/${name}.tar.bz2";
+    sha256 = "03q50j6bg65cc501q87qh328ncav1i8qw2bjig99vxmmfx4bvsvk";
   };
   
-  buildNativeInputs = [perl];
-  propagatedBuildInputs = [attr];
+  buildNativeInputs = [ perl ];
+  propagatedBuildInputs = [ attr ];
 
   preConfigure = "cd libcap";
 
@@ -26,4 +26,9 @@ stdenv.mkDerivation rec {
   };
 
   postInstall = passthru.postinst name;
+
+  meta = {
+    description = "Library for working with POSIX capabilities";
+    platforms = stdenv.lib.platforms.linux;
+  };
 }
diff --git a/pkgs/os-specific/linux/libcap/pam.nix b/pkgs/os-specific/linux/libcap/pam.nix
index 4cefa825c8a7..b78f32dccbb4 100644
--- a/pkgs/os-specific/linux/libcap/pam.nix
+++ b/pkgs/os-specific/linux/libcap/pam.nix
@@ -3,7 +3,7 @@
 assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
-  name = "cap_pam.so-${libcap.version}";
+  name = "libcap-pam-${libcap.version}";
 
   inherit (libcap) src;
 
diff --git a/pkgs/os-specific/linux/libcap/progs.nix b/pkgs/os-specific/linux/libcap/progs.nix
index 1b38848e77ef..1902b4acb1a4 100644
--- a/pkgs/os-specific/linux/libcap/progs.nix
+++ b/pkgs/os-specific/linux/libcap/progs.nix
@@ -11,5 +11,7 @@ stdenv.mkDerivation rec {
 
   preConfigure = "cd progs";
 
+  installFlags = "RAISE_SETFCAP=no";
+
   postInstall = libcap.postinst name;
 }
diff --git a/pkgs/os-specific/linux/libcgroup/default.nix b/pkgs/os-specific/linux/libcgroup/default.nix
index aa73867122f1..0246f6729b10 100644
--- a/pkgs/os-specific/linux/libcgroup/default.nix
+++ b/pkgs/os-specific/linux/libcgroup/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchurl, pam, yacc, flex }:
 
 stdenv.mkDerivation rec {
-  name = "libcgroup-0.37.1";
+  name = "libcgroup-0.38";
 
   src = fetchurl {
     url = "mirror://sourceforge/libcg/${name}.tar.bz2";
-    sha256 = "03awrn49bb84a9vaha1kjdbpwdnrfwmd08mlajjilr6kwlnn620b";
+    sha256 = "0zw6144jlvzx0hasl4b07vjfa4lm12jaax6zzkljzxlmifjd2djx";
   };
 
   buildInputs = [ pam ];
 
   buildNativeInputs = [ yacc flex ];
-  
+
   meta = {
     description = "Library and tools to manage Linux's cgroup resource management system";
     homepage = http://libcg.sourceforge.net/;
diff --git a/pkgs/os-specific/linux/libnl/default.nix b/pkgs/os-specific/linux/libnl/default.nix
index 35f05e9d0092..6fe31c631788 100644
--- a/pkgs/os-specific/linux/libnl/default.nix
+++ b/pkgs/os-specific/linux/libnl/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, bison, flex}:
 
 stdenv.mkDerivation rec {
-  name = "libnl-3.0";
+  name = "libnl-3.2.13";
 
   src = fetchurl {
     url = "${meta.homepage}files/${name}.tar.gz";
-    sha256 = "1vac10m3w0m5lsypjcrhs2dzwng82nkbzqz8g8kyzkxb3qz5ql3s";
+    sha256 = "1ydw42lsd572qwrfgws97n76hyvjdpanwrxm03lysnhfxkna1ssd";
   };
 
   buildInputs = [ bison flex ];
diff --git a/pkgs/os-specific/linux/lvm2/default.nix b/pkgs/os-specific/linux/lvm2/default.nix
index 3411bc83d8a0..1ebebfd634b7 100644
--- a/pkgs/os-specific/linux/lvm2/default.nix
+++ b/pkgs/os-specific/linux/lvm2/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, fetchurl, pkgconfig, udev }:
+{ stdenv, fetchurl, pkgconfig, udev, utillinux, coreutils }:
 
 let
-  v = "2.02.95";
+  v = "2.02.97";
 in
 
 stdenv.mkDerivation {
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "ftp://sources.redhat.com/pub/lvm2/old/LVM2.${v}.tgz";
-    sha256 = "09cixpdrbzjybf8k8f0rsgkriyvbaj2acmfsg1bzxnjil4vayd83";
+    sha256 = "0azwa555dgvixbdw055yj8cj1q6kd0a36nms005iz7la5q0q5npd";
   };
 
   configureFlags =
@@ -17,11 +17,28 @@ stdenv.mkDerivation {
 
   buildInputs = [ pkgconfig udev ];
 
-  patches = [ ./purity.patch ];
+  preConfigure =
+    ''
+      substituteInPlace scripts/lvmdump.sh \
+        --replace /usr/bin/tr ${coreutils}/bin/tr
+      substituteInPlace scripts/lvm2_activation_generator_systemd_red_hat.c \
+        --replace /usr/sbin/lvm $out/sbin/lvm
+    '';
+
+  #patches = [ ./purity.patch ];
 
   # To prevent make install from failing.
   preInstall = "installFlags=\"OWNER= GROUP= confdir=$out/etc\"";
 
+  # Install systemd stuff.
+  #installTargets = "install install_systemd_generators install_systemd_units install_tmpfiles_configuration";
+
+  postInstall =
+    ''
+      substituteInPlace $out/lib/udev/rules.d/13-dm-disk.rules \
+        --replace $out/sbin/blkid ${utillinux}/sbin/blkid
+    '';
+
   meta = {
     homepage = http://sourceware.org/lvm2/;
     descriptions = "Tools to support Logical Volume Management (LVM) on Linux";
diff --git a/pkgs/os-specific/linux/microcode/converter.nix b/pkgs/os-specific/linux/microcode/converter.nix
index ea00c7a6ae42..7b1ff08be0c3 100644
--- a/pkgs/os-specific/linux/microcode/converter.nix
+++ b/pkgs/os-specific/linux/microcode/converter.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation {
   name = "microcode2ucode-20120205";
   src = fetchurl {
-    url = "http://gentoo-overlays.zugaina.org/gentoo/portage/sys-apps/microcode-data/files/intel-microcode2ucode.c";
+    url = "sources.gentoo.org/sys-apps/microcode-data/files/intel-microcode2ucode.c";
     sha256 = "c51b1b1d8b4b28e7d5d007917c1e444af1a2ff04a9408aa9067c0e57d70164de";
   };
 
@@ -26,4 +26,4 @@ stdenv.mkDerivation {
     homepage = http://www.intel.com;
     description = "Microcode converter for Intel .dat files";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/os-specific/linux/microcode/intel.nix b/pkgs/os-specific/linux/microcode/intel.nix
index d17663b7a65a..e85ab29078b2 100644
--- a/pkgs/os-specific/linux/microcode/intel.nix
+++ b/pkgs/os-specific/linux/microcode/intel.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, microcode2ucode }:
 
-let version = "20111110";
-    num = "20728";
+let version = "20120606";
+    num = "21385";
 in stdenv.mkDerivation {
   name = "microcode-intel-${version}";
   src = fetchurl {
     url = "http://downloadmirror.intel.com/${num}/eng/microcode-${version}.tgz";
-    sha256 = "16f532cdf9cce03e01e714619ad9406a465aa965bbd1288035398db79921cbc1";
+    sha256 = "0hs95lj24zx3jscc64zg3hf8xc95vrnsyqlid66h453ib0wf8fg1";
   };
 
   buildInputs = [ microcode2ucode ];
@@ -25,4 +25,4 @@ in stdenv.mkDerivation {
     homepage = http://www.intel.com/;
     description = "Microcode for Intel processors";
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index 99e5ebe7be7b..94a48e0f1796 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -8,23 +8,23 @@
 
 with stdenv.lib;
 
-let versionNumber = "295.53"; in
+let versionNumber = "304.43"; in
 
 stdenv.mkDerivation {
   name = "nvidia-x11-${versionNumber}${optionalString (!libsOnly) "-${kernel.version}"}";
-  
+
   builder = ./builder.sh;
-  
+
   src =
     if stdenv.system == "i686-linux" then
       fetchurl {
         url = "http://us.download.nvidia.com/XFree86/Linux-x86/${versionNumber}/NVIDIA-Linux-x86-${versionNumber}.run";
-        sha256 = "185hy1d4yixc9drz4r3wgya30zbqcyh2949wfjaqcvxc2ri0jh00";
+        sha256 = "0k1csg547n6h3vb7phfhfcxnvqgqad55l7zgp0lai9d008rlhzvw";
       }
     else if stdenv.system == "x86_64-linux" then
       fetchurl {
         url = "http://us.download.nvidia.com/XFree86/Linux-x86_64/${versionNumber}/NVIDIA-Linux-x86_64-${versionNumber}-no-compat32.run";
-        sha256 = "06fdx3iwqcscwkl14rdb5n1wzscm0gvdxfywr5bzf7y591w4yl7y";
+        sha256 = "0m6dxlhpg6705qrg6czk98gn14zic3xgbxr02czwmhyppgsi3f9i";
       }
     else throw "nvidia-x11 does not support platform ${stdenv.system}";
 
diff --git a/pkgs/os-specific/linux/nvidia-x11/legacy173.nix b/pkgs/os-specific/linux/nvidia-x11/legacy173.nix
index 4b30137f5b64..0112270f3bf3 100644
--- a/pkgs/os-specific/linux/nvidia-x11/legacy173.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/legacy173.nix
@@ -1,8 +1,8 @@
-{stdenv, fetchurl, kernel, xlibs, zlib, gtk, atk, pango, glib}:
+{stdenv, fetchurl, kernel, xlibs, zlib, gtk, atk, pango, glib, gdk_pixbuf}:
 
 let 
 
-  versionNumber = "173.14.31";
+  versionNumber = "173.14.35";
 
 in
 
@@ -15,12 +15,12 @@ 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 = "090rkl1psmcsx3mxb6lnirqipka8vp78y2j7pzqyzl592qpscmg8";
+        sha256 = "16kjxj2bn78cgyb4xq39zajjv1hx1z5dw50n9r17w14ifq7i09id";
       }
     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 = "0hs4fd61iha7b2936wj5w5fj3rxmw60jnkgf6l1pl3va7sfw30d2";
+        sha256 = "0mk7pj7in090dx2v5yzkd7qkaf0qvz3jv4cmpiflpmzmg9p15x8n";
       }
     else throw "nvidia-x11 does not support platform ${stdenv.system}";
 
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
 
   cudaPath = stdenv.lib.makeLibraryPath [zlib stdenv.gcc.gcc];
 
-  programPath = stdenv.lib.makeLibraryPath [ gtk atk pango glib xlibs.libXv ];
+  programPath = stdenv.lib.makeLibraryPath [ gtk atk pango glib gdk_pixbuf xlibs.libXv ];
 
   meta = {
     homepage = http://www.nvidia.com/object/unix.html;
diff --git a/pkgs/os-specific/linux/pmtools/default.nix b/pkgs/os-specific/linux/pmtools/default.nix
new file mode 100644
index 000000000000..1cb2220a3bdc
--- /dev/null
+++ b/pkgs/os-specific/linux/pmtools/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "pmtools-20071116";
+
+  src = fetchurl {
+    url = "www.lesswatts.org/patches/linux_acpi/${name}.tar.gz";
+    sha256 = "91751774976e39f6237efd0326eb35196a9346220b92ad35894a33283e872748";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/pmtools
+    cp acpidump/acpidump acpixtract/acpixtract madt/madt $out/bin/
+    cp README $out/share/pmtools/
+  '';
+
+  meta = {
+    homepage = "http://www.lesswatts.org/projects/acpi/utilities.php";
+    description = "Linux ACPI utilities";
+    license = "GPLv2";
+
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/os-specific/linux/powertop/default.nix b/pkgs/os-specific/linux/powertop/default.nix
index d175c5f0478d..68075d115a48 100644
--- a/pkgs/os-specific/linux/powertop/default.nix
+++ b/pkgs/os-specific/linux/powertop/default.nix
@@ -1,13 +1,13 @@
-{ stdenv, fetchurl, gettext, libnl1, ncurses, pciutils, pkgconfig, zlib }:
+{ stdenv, fetchurl, gettext, libnl, ncurses, pciutils, pkgconfig, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "powertop-2.0";
+  name = "powertop-2.1";
   src = fetchurl {
-    url = "https://01.org/powertop/sites/default/files/downloads/${name}.tar.bz2";
-    sha256 = "7af51d320856b3446bcc314c9414385f3b05b9360f650883b0210cd3b12c5c1c";
+    url = "https://01.org/powertop/sites/default/files/downloads/${name}.tar.gz";
+    sha256 = "16161nlah4i4hq8vyx7ds1vq7icdzwm7gmyjg0xhcrs1r9n83m1x";
   };
 
-  buildInputs = [ gettext libnl1 ncurses pciutils pkgconfig zlib ];
+  buildInputs = [ gettext libnl ncurses pciutils pkgconfig zlib ];
 
   meta = {
     description = "Analyze power consumption on Intel-based laptops";
diff --git a/pkgs/os-specific/linux/qemu-kvm/default.nix b/pkgs/os-specific/linux/qemu-kvm/default.nix
index f6709bb439f4..9223b7af917c 100644
--- a/pkgs/os-specific/linux/qemu-kvm/default.nix
+++ b/pkgs/os-specific/linux/qemu-kvm/default.nix
@@ -1,41 +1,45 @@
 { stdenv, fetchurl, attr, zlib, SDL, alsaLib, pkgconfig, pciutils, libuuid, vde2
-, libjpeg, libpng, ncurses, python, glib, libaio, mesa }:
+, libjpeg, libpng, ncurses, python, glib, libaio, mesa
+, spice, spice_protocol, spiceSupport ? false }:
 
 assert stdenv.isLinux;
 
-let version = "1.0.1"; in
+let version = "1.2.0"; in
 
 stdenv.mkDerivation rec {
   name = "qemu-kvm-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/kvm/qemu-kvm/${version}/${name}.tar.gz";
-    sha256 = "0kxzwaw8h71mqcm46angpyx8gd58ascrxnr861k068xg89ix5g2p";
+    sha256 = "018vb5nmk2fsm143bs2bl2wirhasd4b10d7jchl32zik4inbk2p9";
   };
 
-  patches = [ ./smb-tmpdir.patch ./qemu-img-fix-corrupt-vdi.patch ];
-
   postPatch =
-    '' for i in $(find kvm -type f)
+    '' for i in $(find . -type f)
        do
          sed -i "$i" \
              -e 's|/bin/bash|/bin/sh|g ;
                  s|/usr/bin/python|${python}/bin/python|g ;
                  s|/bin/rm|rm|g'
        done
+    '' + stdenv.lib.optionalString spiceSupport ''
+       for i in configure spice-qemu-char.c ui/spice-input.c ui/spice-core.c ui/qemu-spice.h
+       do
+         substituteInPlace $i --replace '#include <spice.h>' '#include <spice/spice.h>'
+       done
     '';
 
   configureFlags =
     [ "--audio-drv-list=alsa"
       "--smbd=smbd"                               # use `smbd' from $PATH
-    ];
+    ] ++ stdenv.lib.optional spiceSupport "--enable-spice";
 
   enableParallelBuilding = true;
 
   buildInputs =
     [ attr zlib SDL alsaLib pkgconfig pciutils libuuid vde2 libjpeg libpng
       ncurses python glib libaio mesa
-    ];
+    ] ++ stdenv.lib.optionals spiceSupport [ spice_protocol spice ];
 
   postInstall =
     ''
diff --git a/pkgs/os-specific/linux/qemu-kvm/qemu-img-fix-corrupt-vdi.patch b/pkgs/os-specific/linux/qemu-kvm/qemu-img-fix-corrupt-vdi.patch
deleted file mode 100644
index 446a69a146b0..000000000000
--- a/pkgs/os-specific/linux/qemu-kvm/qemu-img-fix-corrupt-vdi.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From http://patchwork.ozlabs.org/patch/137186/
-
-diff -ru qemu-kvm-0.15.1-orig/block/vdi.c qemu-kvm-0.15.1/block/vdi.c
---- qemu-kvm-0.15.1-orig/block/vdi.c	2011-10-19 15:54:48.000000000 +0200
-+++ qemu-kvm-0.15.1/block/vdi.c	2012-02-25 18:15:36.114574574 +0100
-@@ -1,7 +1,7 @@
- /*
-  * Block driver for the Virtual Disk Image (VDI) format
-  *
-- * Copyright (c) 2009 Stefan Weil
-+ * Copyright (c) 2009, 2012 Stefan Weil
-  *
-  * This program is free software: you can redistribute it and/or modify
-  * it under the terms of the GNU General Public License as published by
-@@ -767,8 +767,12 @@
-             acb->header_modified = 1;
-         }
-         acb->bmap_last = block_index;
-+        /* Copy data to be written to new block and zero unused parts. */
-+        memset(block, 0, sector_in_block * SECTOR_SIZE);
-         memcpy(block + sector_in_block * SECTOR_SIZE,
-                acb->buf, n_sectors * SECTOR_SIZE);
-+        memset(block + (sector_in_block + n_sectors) * SECTOR_SIZE, 0,
-+               (s->block_sectors - n_sectors - sector_in_block) * SECTOR_SIZE);
-         acb->hd_iov.iov_base = (void *)block;
-         acb->hd_iov.iov_len = s->block_size;
-         qemu_iovec_init_external(&acb->hd_qiov, &acb->hd_iov, 1);
diff --git a/pkgs/os-specific/linux/qemu-kvm/smb-tmpdir.patch b/pkgs/os-specific/linux/qemu-kvm/smb-tmpdir.patch
deleted file mode 100644
index 6d6c7831d15e..000000000000
--- a/pkgs/os-specific/linux/qemu-kvm/smb-tmpdir.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Honour $TMPDIR for the qemu-smb temporary directory.
-
-diff -rc -x '*~' qemu-kvm-0.12.2-orig/net/slirp.c qemu-kvm-0.12.2/net/slirp.c
-*** qemu-kvm-0.12.2-orig/net/slirp.c	2010-02-01 19:05:24.000000000 +0100
---- qemu-kvm-0.12.2/net/slirp.c	2010-02-01 19:05:54.000000000 +0100
-***************
-*** 476,486 ****
-                       struct in_addr vserver_addr)
-  {
-      static int instance;
-!     char smb_conf[128];
-!     char smb_cmdline[128];
-      FILE *f;
-  
-!     snprintf(s->smb_dir, sizeof(s->smb_dir), "/tmp/qemu-smb.%ld-%d",
-               (long)getpid(), instance++);
-      if (mkdir(s->smb_dir, 0700) < 0) {
-          qemu_error("could not create samba server dir '%s'\n", s->smb_dir);
---- 476,489 ----
-                       struct in_addr vserver_addr)
-  {
-      static int instance;
-!     char smb_conf[1024];
-!     char smb_cmdline[1024];
-      FILE *f;
-  
-!     char *tmpdir = getenv("TMPDIR");
-! 
-!     snprintf(s->smb_dir, sizeof(s->smb_dir), "%s/qemu-smb.%ld-%d",
-!              tmpdir ? tmpdir : "/tmp",
-               (long)getpid(), instance++);
-      if (mkdir(s->smb_dir, 0700) < 0) {
-          qemu_error("could not create samba server dir '%s'\n", s->smb_dir);
diff --git a/pkgs/os-specific/linux/shadow/default.nix b/pkgs/os-specific/linux/shadow/default.nix
index f14b249d5144..1055fccd8aa3 100644
--- a/pkgs/os-specific/linux/shadow/default.nix
+++ b/pkgs/os-specific/linux/shadow/default.nix
@@ -1,21 +1,30 @@
 { stdenv, fetchurl, pam ? null, glibcCross ? null }:
 
 let
-  glibc = if stdenv ? cross
-          then glibcCross
-          else assert stdenv ? glibc; stdenv.glibc;
+
+  glibc =
+    if stdenv ? cross
+    then glibcCross
+    else assert stdenv ? glibc; stdenv.glibc;
+
+  dots_in_usernames = fetchurl {
+    url = http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-apps/shadow/files/shadow-4.1.3-dots-in-usernames.patch;
+    sha256 = "1fj3rg6x3jppm5jvi9y7fhd2djbi4nc5pgwisw00xlh4qapgz692";
+  };
+
 in
+
 stdenv.mkDerivation rec {
-  name = "shadow-4.1.4.2";
+  name = "shadow-4.1.5.1";
 
   src = fetchurl {
     url = "http://pkg-shadow.alioth.debian.org/releases/${name}.tar.bz2";
-    sha256 = "1449ny7pdnwkavg92wvibapnkgdq5pas38nvl1m5xa37g5m7z64p";
+    sha256 = "1yvqx57vzih0jdy3grir8vfbkxp0cl0myql37bnmi2yn90vk6cma";
   };
 
   buildInputs = stdenv.lib.optional (pam != null && stdenv.isLinux) pam;
 
-  patches = [ ./no-sanitize-env.patch ./su-name.patch ./keep-path.patch ];
+  patches = [ ./keep-path.patch dots_in_usernames ];
 
   # Assume System V `setpgrp (void)', which is the default on GNU variants
   # (`AC_FUNC_SETPGRP' is not cross-compilation capable.)
@@ -26,6 +35,12 @@ stdenv.mkDerivation rec {
       substituteInPlace lib/nscd.c --replace /usr/sbin/nscd ${glibc}/sbin/nscd
     '';
 
+  # Don't install ‘groups’, since coreutils already provides it.
+  postInstall =
+    ''
+      rm $out/bin/groups $out/share/man/man1/groups.*
+    '';
+
   meta = {
     homepage = http://pkg-shadow.alioth.debian.org/;
     description = "Suite containing authentication-related tools such as passwd and su";
diff --git a/pkgs/os-specific/linux/shadow/keep-path.patch b/pkgs/os-specific/linux/shadow/keep-path.patch
index 4b8406b53b08..99fd17c27bc9 100644
--- a/pkgs/os-specific/linux/shadow/keep-path.patch
+++ b/pkgs/os-specific/linux/shadow/keep-path.patch
@@ -1,18 +1,15 @@
-Don't reset $PATH to /bin:/usr/bin.  This is consistent with `su' in
-coreutils and important on NixOS.
-
-diff -ru -x '*~' shadow-4.1.4.2-orig/src/su.c shadow-4.1.4.2/src/su.c
---- shadow-4.1.4.2-orig/src/su.c	2009-07-23 22:38:56.000000000 +0200
-+++ shadow-4.1.4.2/src/su.c	2010-06-04 13:23:11.000000000 +0200
-@@ -827,6 +827,7 @@
- 	(void) signal (SIGINT, SIG_DFL);
- 	(void) signal (SIGQUIT, SIG_DFL);
+diff -ru shadow-4.1.5.1-orig/src/su.c shadow-4.1.5.1/src/su.c
+--- shadow-4.1.5.1-orig/src/su.c	2012-05-25 07:51:55.000000000 -0400
++++ shadow-4.1.5.1/src/su.c	2012-07-25 17:22:57.013547930 -0400
+@@ -879,6 +879,7 @@
+ 		}
+ 	}
  
 +#if 0
- 	cp = getdef_str ((pwent.pw_uid == 0) ? "ENV_SUPATH" : "ENV_PATH");
+ 	cp = getdef_str ((pw->pw_uid == 0) ? "ENV_SUPATH" : "ENV_PATH");
  	if (NULL == cp) {
- 		addenv ("PATH=/bin:/usr/bin", NULL);
-@@ -835,6 +836,7 @@
+ 		addenv ((pw->pw_uid == 0) ? "PATH=/sbin:/bin:/usr/sbin:/usr/bin" : "PATH=/bin:/usr/bin", NULL);
+@@ -887,6 +888,7 @@
  	} else {
  		addenv ("PATH", cp);
  	}
diff --git a/pkgs/os-specific/linux/shadow/no-sanitize-env.patch b/pkgs/os-specific/linux/shadow/no-sanitize-env.patch
deleted file mode 100644
index 902706d137eb..000000000000
--- a/pkgs/os-specific/linux/shadow/no-sanitize-env.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Don't remove environment variables such as PATH or SHELL.
-
-http://bugs.gentoo.org/show_bug.cgi?id=301957
-https://alioth.debian.org/scm/browser.php?group_id=30580
-
---- a/src/su.c
-+++ b/src/su.c
-@@ -342,7 +342,7 @@
- #endif
- #endif				/* !USE_PAM */
- 
--	sanitize_env ();
-+	/* sanitize_env (); */
- 
- 	(void) setlocale (LC_ALL, "");
- 	(void) bindtextdomain (PACKAGE, LOCALEDIR);
diff --git a/pkgs/os-specific/linux/shadow/su-name.patch b/pkgs/os-specific/linux/shadow/su-name.patch
deleted file mode 100644
index 5873c9342748..000000000000
--- a/pkgs/os-specific/linux/shadow/su-name.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-When su is invoked with command line arguments for the shell (e.g. "su
-- -c 'cmd'"), set argv[0] in the shell to "-su" or "-<basename>" (as
-determined by the SU_NAME option in /etc/login.defs).  This is
-necessary to make Bash compiled with the NON_INTERACTIVE_LOGIN_SHELLS
-option to read startup files.  It is also consistent with the
-behaviour of `su' in coreutils, and with the case where there are no
-arguments ("su -").
-
-diff -ru -x '*~' shadow-4.1.4.2-orig/src/su.c shadow-4.1.4.2/src/su.c
---- shadow-4.1.4.2-orig/src/su.c	2009-07-23 22:38:56.000000000 +0200
-+++ shadow-4.1.4.2/src/su.c	2010-06-04 13:02:24.000000000 +0200
-@@ -983,7 +983,7 @@
- 		 * Use the shell and create an argv
- 		 * with the rest of the command line included.
- 		 */
--		argv[-1] = shellstr;
-+		argv[-1] = cp;
- #ifndef USE_PAM
- 		execve_shell (shellstr, &argv[-1], environ);
- 		err = errno;
diff --git a/pkgs/os-specific/linux/sysklogd/builder.sh b/pkgs/os-specific/linux/sysklogd/builder.sh
deleted file mode 100644
index d466f075652c..000000000000
--- a/pkgs/os-specific/linux/sysklogd/builder.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-source $stdenv/setup
-
-prefix=$out
-export prefix
-
-installFlags="BINDIR=$out/sbin MANDIR=$out/share/man INSTALL=install"
-patchPhase="sed -e 's@-o \${MAN_USER} -g \${MAN_GROUP} -m \${MAN_PERMS} @@' -i Makefile"
-
-mkdir -p "$out/share/man/man8/"
-mkdir -p "$out/share/man/man5/"
-mkdir -p "$out/sbin"
-
-genericBuild
diff --git a/pkgs/os-specific/linux/sysklogd/default.nix b/pkgs/os-specific/linux/sysklogd/default.nix
index 2fe27add5bfb..979bfa1d0bf3 100644
--- a/pkgs/os-specific/linux/sysklogd/default.nix
+++ b/pkgs/os-specific/linux/sysklogd/default.nix
@@ -2,9 +2,24 @@
 
 stdenv.mkDerivation {
   name = "sysklogd-1.5";
-  builder = ./builder.sh;
+
   src = fetchurl {
     url = http://www.infodrom.org/projects/sysklogd/download/sysklogd-1.5.tar.gz;
     sha256 = "0wxpkrznqwz4dy11k90s2sqszwp7d4mlc0ag8288wa193plvhsb1";
   };
+
+  patches = [ ./systemd.patch ];
+
+  installFlags = "BINDIR=$(out)/sbin MANDIR=$(out)/share/man INSTALL=install";
+
+  preConfigure =
+    ''
+      sed -e 's@-o \''${MAN_USER} -g \''${MAN_GROUP} -m \''${MAN_PERMS} @@' -i Makefile
+    '';
+
+  preInstall = "mkdir -p $out/share/man/man5/ $out/share/man/man8/ $out/sbin";
+
+  meta = {
+    description = "A system logging daemon";
+  };
 }
diff --git a/pkgs/os-specific/linux/sysklogd/systemd.patch b/pkgs/os-specific/linux/sysklogd/systemd.patch
new file mode 100644
index 000000000000..ecdf2b57ebf2
--- /dev/null
+++ b/pkgs/os-specific/linux/sysklogd/systemd.patch
@@ -0,0 +1,850 @@
+Based on http://ftp.free.org/mirrors/rsync.frugalware.org/frugalware-testing/source/apps-extra/sysklogd/sysklogd-1.5-systemd.diff
+
+diff --git a/Makefile b/Makefile
+index 9a114b8..aef1fd6 100644
+--- a/Makefile
++++ b/Makefile
+@@ -20,7 +20,7 @@
+ CC= gcc
+ #SKFLAGS= -g -DSYSV -Wall
+ #LDFLAGS= -g
+-SKFLAGS= $(RPM_OPT_FLAGS) -O3 -DSYSV -fomit-frame-pointer -Wall -fno-strength-reduce
++SKFLAGS= $(RPM_OPT_FLAGS) -O3 -DSYSV -fomit-frame-pointer -Wall -fno-strength-reduce -I.
+ # -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
+ # -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
+ # $(shell getconf LFS_SKFLAGS)
+@@ -79,8 +79,8 @@ test: syslog_tst ksym oops.ko tsyslogd
+ 
+ install: install_man install_exec
+ 
+-syslogd: syslogd.o pidfile.o
+-	${CC} ${LDFLAGS} -o syslogd syslogd.o pidfile.o ${LIBS}
++syslogd: syslogd.o pidfile.o sd-daemon.o
++	${CC} ${LDFLAGS} -o syslogd syslogd.o pidfile.o sd-daemon.o ${LIBS}
+ 
+ klogd:	klogd.o syslog.o pidfile.o ksym.o ksym_mod.o
+ 	${CC} ${LDFLAGS} -o klogd klogd.o syslog.o pidfile.o ksym.o \
+@@ -101,6 +101,9 @@ syslogd.o: syslogd.c version.h
+ syslog.o: syslog.c
+ 	${CC} ${SKFLAGS} ${SYSLOG_FLAGS} -c syslog.c
+ 
++sd-daemon.o: sd-daemon.c sd-daemon.h
++	${CC} ${SKFLAGS} ${SYSLOG_FLAGS} -c sd-daemon.c
++
+ klogd.o: klogd.c klogd.h version.h
+ 	${CC} ${SKFLAGS} ${KLOGD_FLAGS} $(DEB) -c klogd.c
+ 
+diff --git a/sd-daemon.c b/sd-daemon.c
+new file mode 100644
+index 0000000..6d1eebf
+--- /dev/null
++++ b/sd-daemon.c
+@@ -0,0 +1,436 @@
++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
++
++/***
++  Copyright 2010 Lennart Poettering
++
++  Permission is hereby granted, free of charge, to any person
++  obtaining a copy of this software and associated documentation files
++  (the "Software"), to deal in the Software without restriction,
++  including without limitation the rights to use, copy, modify, merge,
++  publish, distribute, sublicense, and/or sell copies of the Software,
++  and to permit persons to whom the Software is furnished to do so,
++  subject to the following conditions:
++
++  The above copyright notice and this permission notice shall be
++  included in all copies or substantial portions of the Software.
++
++  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
++  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
++  ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++  SOFTWARE.
++***/
++
++#ifndef _GNU_SOURCE
++#define _GNU_SOURCE
++#endif
++
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <sys/socket.h>
++#include <sys/un.h>
++#include <sys/fcntl.h>
++#include <netinet/in.h>
++#include <stdlib.h>
++#include <errno.h>
++#include <unistd.h>
++#include <string.h>
++#include <stdarg.h>
++#include <stdio.h>
++#include <stddef.h>
++
++#include "sd-daemon.h"
++
++int sd_listen_fds(int unset_environment) {
++
++#if defined(DISABLE_SYSTEMD) || !defined(__linux__)
++        return 0;
++#else
++        int r, fd;
++        const char *e;
++        char *p = NULL;
++        unsigned long l;
++
++        if (!(e = getenv("LISTEN_PID"))) {
++                r = 0;
++                goto finish;
++        }
++
++        errno = 0;
++        l = strtoul(e, &p, 10);
++
++        if (errno != 0) {
++                r = -errno;
++                goto finish;
++        }
++
++        if (!p || *p || l <= 0) {
++                r = -EINVAL;
++                goto finish;
++        }
++
++        /* Is this for us? */
++        if (getpid() != (pid_t) l) {
++                r = 0;
++                goto finish;
++        }
++
++        if (!(e = getenv("LISTEN_FDS"))) {
++                r = 0;
++                goto finish;
++        }
++
++        errno = 0;
++        l = strtoul(e, &p, 10);
++
++        if (errno != 0) {
++                r = -errno;
++                goto finish;
++        }
++
++        if (!p || *p) {
++                r = -EINVAL;
++                goto finish;
++        }
++
++        for (fd = SD_LISTEN_FDS_START; fd < SD_LISTEN_FDS_START + (int) l; fd ++) {
++                int flags;
++
++                if ((flags = fcntl(fd, F_GETFD)) < 0) {
++                        r = -errno;
++                        goto finish;
++                }
++
++                if (flags & FD_CLOEXEC)
++                        continue;
++
++                if (fcntl(fd, F_SETFD, flags | FD_CLOEXEC) < 0) {
++                        r = -errno;
++                        goto finish;
++                }
++        }
++
++        r = (int) l;
++
++finish:
++        if (unset_environment) {
++                unsetenv("LISTEN_PID");
++                unsetenv("LISTEN_FDS");
++        }
++
++        return r;
++#endif
++}
++
++int sd_is_fifo(int fd, const char *path) {
++        struct stat st_fd;
++
++        if (fd < 0)
++                return -EINVAL;
++
++        memset(&st_fd, 0, sizeof(st_fd));
++        if (fstat(fd, &st_fd) < 0)
++                return -errno;
++
++        if (!S_ISFIFO(st_fd.st_mode))
++                return 0;
++
++        if (path) {
++                struct stat st_path;
++
++                memset(&st_path, 0, sizeof(st_path));
++                if (stat(path, &st_path) < 0) {
++
++                        if (errno == ENOENT || errno == ENOTDIR)
++                                return 0;
++
++                        return -errno;
++                }
++
++                return
++                        st_path.st_dev == st_fd.st_dev &&
++                        st_path.st_ino == st_fd.st_ino;
++        }
++
++        return 1;
++}
++
++static int sd_is_socket_internal(int fd, int type, int listening) {
++        struct stat st_fd;
++
++        if (fd < 0 || type < 0)
++                return -EINVAL;
++
++        if (fstat(fd, &st_fd) < 0)
++                return -errno;
++
++        if (!S_ISSOCK(st_fd.st_mode))
++                return 0;
++
++        if (type != 0) {
++                int other_type = 0;
++                socklen_t l = sizeof(other_type);
++
++                if (getsockopt(fd, SOL_SOCKET, SO_TYPE, &other_type, &l) < 0)
++                        return -errno;
++
++                if (l != sizeof(other_type))
++                        return -EINVAL;
++
++                if (other_type != type)
++                        return 0;
++        }
++
++        if (listening >= 0) {
++                int accepting = 0;
++                socklen_t l = sizeof(accepting);
++
++                if (getsockopt(fd, SOL_SOCKET, SO_ACCEPTCONN, &accepting, &l) < 0)
++                        return -errno;
++
++                if (l != sizeof(accepting))
++                        return -EINVAL;
++
++                if (!accepting != !listening)
++                        return 0;
++        }
++
++        return 1;
++}
++
++union sockaddr_union {
++        struct sockaddr sa;
++        struct sockaddr_in in4;
++        struct sockaddr_in6 in6;
++        struct sockaddr_un un;
++        struct sockaddr_storage storage;
++};
++
++int sd_is_socket(int fd, int family, int type, int listening) {
++        int r;
++
++        if (family < 0)
++                return -EINVAL;
++
++        if ((r = sd_is_socket_internal(fd, type, listening)) <= 0)
++                return r;
++
++        if (family > 0) {
++                union sockaddr_union sockaddr;
++                socklen_t l;
++
++                memset(&sockaddr, 0, sizeof(sockaddr));
++                l = sizeof(sockaddr);
++
++                if (getsockname(fd, &sockaddr.sa, &l) < 0)
++                        return -errno;
++
++                if (l < sizeof(sa_family_t))
++                        return -EINVAL;
++
++                return sockaddr.sa.sa_family == family;
++        }
++
++        return 1;
++}
++
++int sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port) {
++        union sockaddr_union sockaddr;
++        socklen_t l;
++        int r;
++
++        if (family != 0 && family != AF_INET && family != AF_INET6)
++                return -EINVAL;
++
++        if ((r = sd_is_socket_internal(fd, type, listening)) <= 0)
++                return r;
++
++        memset(&sockaddr, 0, sizeof(sockaddr));
++        l = sizeof(sockaddr);
++
++        if (getsockname(fd, &sockaddr.sa, &l) < 0)
++                return -errno;
++
++        if (l < sizeof(sa_family_t))
++                return -EINVAL;
++
++        if (sockaddr.sa.sa_family != AF_INET &&
++            sockaddr.sa.sa_family != AF_INET6)
++                return 0;
++
++        if (family > 0)
++                if (sockaddr.sa.sa_family != family)
++                        return 0;
++
++        if (port > 0) {
++                if (sockaddr.sa.sa_family == AF_INET) {
++                        if (l < sizeof(struct sockaddr_in))
++                                return -EINVAL;
++
++                        return htons(port) == sockaddr.in4.sin_port;
++                } else {
++                        if (l < sizeof(struct sockaddr_in6))
++                                return -EINVAL;
++
++                        return htons(port) == sockaddr.in6.sin6_port;
++                }
++        }
++
++        return 1;
++}
++
++int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length) {
++        union sockaddr_union sockaddr;
++        socklen_t l;
++        int r;
++
++        if ((r = sd_is_socket_internal(fd, type, listening)) <= 0)
++                return r;
++
++        memset(&sockaddr, 0, sizeof(sockaddr));
++        l = sizeof(sockaddr);
++
++        if (getsockname(fd, &sockaddr.sa, &l) < 0)
++                return -errno;
++
++        if (l < sizeof(sa_family_t))
++                return -EINVAL;
++
++        if (sockaddr.sa.sa_family != AF_UNIX)
++                return 0;
++
++        if (path) {
++                if (length <= 0)
++                        length = strlen(path);
++
++                if (length <= 0)
++                        /* Unnamed socket */
++                        return l == offsetof(struct sockaddr_un, sun_path);
++
++                if (path[0])
++                        /* Normal path socket */
++                        return
++                                (l >= offsetof(struct sockaddr_un, sun_path) + length + 1) &&
++                                memcmp(path, sockaddr.un.sun_path, length+1) == 0;
++                else
++                        /* Abstract namespace socket */
++                        return
++                                (l == offsetof(struct sockaddr_un, sun_path) + length) &&
++                                memcmp(path, sockaddr.un.sun_path, length) == 0;
++        }
++
++        return 1;
++}
++
++int sd_notify(int unset_environment, const char *state) {
++#if defined(DISABLE_SYSTEMD) || !defined(__linux__) || !defined(SOCK_CLOEXEC)
++        return 0;
++#else
++        int fd = -1, r;
++        struct msghdr msghdr;
++        struct iovec iovec;
++        union sockaddr_union sockaddr;
++        const char *e;
++
++        if (!state) {
++                r = -EINVAL;
++                goto finish;
++        }
++
++        if (!(e = getenv("NOTIFY_SOCKET")))
++                return 0;
++
++        /* Must be an abstract socket, or an absolute path */
++        if ((e[0] != '@' && e[0] != '/') || e[1] == 0) {
++                r = -EINVAL;
++                goto finish;
++        }
++
++        if ((fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0)) < 0) {
++                r = -errno;
++                goto finish;
++        }
++
++        memset(&sockaddr, 0, sizeof(sockaddr));
++        sockaddr.sa.sa_family = AF_UNIX;
++        strncpy(sockaddr.un.sun_path, e, sizeof(sockaddr.un.sun_path));
++
++        if (sockaddr.un.sun_path[0] == '@')
++                sockaddr.un.sun_path[0] = 0;
++
++        memset(&iovec, 0, sizeof(iovec));
++        iovec.iov_base = (char*) state;
++        iovec.iov_len = strlen(state);
++
++        memset(&msghdr, 0, sizeof(msghdr));
++        msghdr.msg_name = &sockaddr;
++        msghdr.msg_namelen = offsetof(struct sockaddr_un, sun_path) + strlen(e);
++
++        if (msghdr.msg_namelen > sizeof(struct sockaddr_un))
++                msghdr.msg_namelen = sizeof(struct sockaddr_un);
++
++        msghdr.msg_iov = &iovec;
++        msghdr.msg_iovlen = 1;
++
++        if (sendmsg(fd, &msghdr, MSG_NOSIGNAL) < 0) {
++                r = -errno;
++                goto finish;
++        }
++
++        r = 1;
++
++finish:
++        if (unset_environment)
++                unsetenv("NOTIFY_SOCKET");
++
++        if (fd >= 0)
++                close(fd);
++
++        return r;
++#endif
++}
++
++int sd_notifyf(int unset_environment, const char *format, ...) {
++#if defined(DISABLE_SYSTEMD) || !defined(__linux__)
++        return 0;
++#else
++        va_list ap;
++        char *p = NULL;
++        int r;
++
++        va_start(ap, format);
++        r = vasprintf(&p, format, ap);
++        va_end(ap);
++
++        if (r < 0 || !p)
++                return -ENOMEM;
++
++        r = sd_notify(unset_environment, p);
++        free(p);
++
++        return r;
++#endif
++}
++
++int sd_booted(void) {
++#if defined(DISABLE_SYSTEMD) || !defined(__linux__)
++        return 0;
++#else
++
++        struct stat a, b;
++
++        /* We simply test whether the systemd cgroup hierarchy is
++         * mounted */
++
++        if (lstat("/sys/fs/cgroup", &a) < 0)
++                return 0;
++
++        if (lstat("/sys/fs/cgroup/systemd", &b) < 0)
++                return 0;
++
++        return a.st_dev != b.st_dev;
++#endif
++}
+diff --git a/sd-daemon.h b/sd-daemon.h
+new file mode 100644
+index 0000000..d0a0a94
+--- /dev/null
++++ b/sd-daemon.h
+@@ -0,0 +1,265 @@
++/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
++
++#ifndef foosddaemonhfoo
++#define foosddaemonhfoo
++
++/***
++  Copyright 2010 Lennart Poettering
++
++  Permission is hereby granted, free of charge, to any person
++  obtaining a copy of this software and associated documentation files
++  (the "Software"), to deal in the Software without restriction,
++  including without limitation the rights to use, copy, modify, merge,
++  publish, distribute, sublicense, and/or sell copies of the Software,
++  and to permit persons to whom the Software is furnished to do so,
++  subject to the following conditions:
++
++  The above copyright notice and this permission notice shall be
++  included in all copies or substantial portions of the Software.
++
++  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
++  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
++  ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++  SOFTWARE.
++***/
++
++#include <sys/types.h>
++#include <inttypes.h>
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++/*
++  Reference implementation of a few systemd related interfaces for
++  writing daemons. These interfaces are trivial to implement. To
++  simplify porting we provide this reference implementation.
++  Applications are welcome to reimplement the algorithms described
++  here if they do not want to include these two source files.
++
++  The following functionality is provided:
++
++  - Support for logging with log levels on stderr
++  - File descriptor passing for socket-based activation
++  - Daemon startup and status notification
++  - Detection of systemd boots
++
++  You may compile this with -DDISABLE_SYSTEMD to disable systemd
++  support. This makes all those calls NOPs that are directly related to
++  systemd (i.e. only sd_is_xxx() will stay useful).
++
++  Since this is drop-in code we don't want any of our symbols to be
++  exported in any case. Hence we declare hidden visibility for all of
++  them.
++
++  You may find an up-to-date version of these source files online:
++
++  http://cgit.freedesktop.org/systemd/plain/src/sd-daemon.h
++  http://cgit.freedesktop.org/systemd/plain/src/sd-daemon.c
++
++  This should compile on non-Linux systems, too, but with the
++  exception of the sd_is_xxx() calls all functions will become NOPs.
++
++  See sd-daemon(7) for more information.
++*/
++
++#ifndef _sd_printf_attr_
++#if __GNUC__ >= 4
++#define _sd_printf_attr_(a,b) __attribute__ ((format (printf, a, b)))
++#else
++#define _sd_printf_attr_(a,b)
++#endif
++#endif
++
++#ifndef _sd_hidden_
++#if (__GNUC__ >= 4) && !defined(SD_EXPORT_SYMBOLS)
++#define _sd_hidden_ __attribute__ ((visibility("hidden")))
++#else
++#define _sd_hidden_
++#endif
++#endif
++
++/*
++  Log levels for usage on stderr:
++
++          fprintf(stderr, SD_NOTICE "Hello World!\n");
++
++  This is similar to printk() usage in the kernel.
++*/
++#define SD_EMERG   "<0>"  /* system is unusable */
++#define SD_ALERT   "<1>"  /* action must be taken immediately */
++#define SD_CRIT    "<2>"  /* critical conditions */
++#define SD_ERR     "<3>"  /* error conditions */
++#define SD_WARNING "<4>"  /* warning conditions */
++#define SD_NOTICE  "<5>"  /* normal but significant condition */
++#define SD_INFO    "<6>"  /* informational */
++#define SD_DEBUG   "<7>"  /* debug-level messages */
++
++/* The first passed file descriptor is fd 3 */
++#define SD_LISTEN_FDS_START 3
++
++/*
++  Returns how many file descriptors have been passed, or a negative
++  errno code on failure. Optionally, removes the $LISTEN_FDS and
++  $LISTEN_PID file descriptors from the environment (recommended, but
++  problematic in threaded environments). If r is the return value of
++  this function you'll find the file descriptors passed as fds
++  SD_LISTEN_FDS_START to SD_LISTEN_FDS_START+r-1. Returns a negative
++  errno style error code on failure. This function call ensures that
++  the FD_CLOEXEC flag is set for the passed file descriptors, to make
++  sure they are not passed on to child processes. If FD_CLOEXEC shall
++  not be set, the caller needs to unset it after this call for all file
++  descriptors that are used.
++
++  See sd_listen_fds(3) for more information.
++*/
++int sd_listen_fds(int unset_environment) _sd_hidden_;
++
++/*
++  Helper call for identifying a passed file descriptor. Returns 1 if
++  the file descriptor is a FIFO in the file system stored under the
++  specified path, 0 otherwise. If path is NULL a path name check will
++  not be done and the call only verifies if the file descriptor
++  refers to a FIFO. Returns a negative errno style error code on
++  failure.
++
++  See sd_is_fifo(3) for more information.
++*/
++int sd_is_fifo(int fd, const char *path) _sd_hidden_;
++
++/*
++  Helper call for identifying a passed file descriptor. Returns 1 if
++  the file descriptor is a socket of the specified family (AF_INET,
++  ...) and type (SOCK_DGRAM, SOCK_STREAM, ...), 0 otherwise. If
++  family is 0 a socket family check will not be done. If type is 0 a
++  socket type check will not be done and the call only verifies if
++  the file descriptor refers to a socket. If listening is > 0 it is
++  verified that the socket is in listening mode. (i.e. listen() has
++  been called) If listening is == 0 it is verified that the socket is
++  not in listening mode. If listening is < 0 no listening mode check
++  is done. Returns a negative errno style error code on failure.
++
++  See sd_is_socket(3) for more information.
++*/
++int sd_is_socket(int fd, int family, int type, int listening) _sd_hidden_;
++
++/*
++  Helper call for identifying a passed file descriptor. Returns 1 if
++  the file descriptor is an Internet socket, of the specified family
++  (either AF_INET or AF_INET6) and the specified type (SOCK_DGRAM,
++  SOCK_STREAM, ...), 0 otherwise. If version is 0 a protocol version
++  check is not done. If type is 0 a socket type check will not be
++  done. If port is 0 a socket port check will not be done. The
++  listening flag is used the same way as in sd_is_socket(). Returns a
++  negative errno style error code on failure.
++
++  See sd_is_socket_inet(3) for more information.
++*/
++int sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port) _sd_hidden_;
++
++/*
++  Helper call for identifying a passed file descriptor. Returns 1 if
++  the file descriptor is an AF_UNIX socket of the specified type
++  (SOCK_DGRAM, SOCK_STREAM, ...) and path, 0 otherwise. If type is 0
++  a socket type check will not be done. If path is NULL a socket path
++  check will not be done. For normal AF_UNIX sockets set length to
++  0. For abstract namespace sockets set length to the length of the
++  socket name (including the initial 0 byte), and pass the full
++  socket path in path (including the initial 0 byte). The listening
++  flag is used the same way as in sd_is_socket(). Returns a negative
++  errno style error code on failure.
++
++  See sd_is_socket_unix(3) for more information.
++*/
++int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length) _sd_hidden_;
++
++/*
++  Informs systemd about changed daemon state. This takes a number of
++  newline separated environment-style variable assignments in a
++  string. The following variables are known:
++
++     READY=1      Tells systemd that daemon startup is finished (only
++                  relevant for services of Type=notify). The passed
++                  argument is a boolean "1" or "0". Since there is
++                  little value in signalling non-readiness the only
++                  value daemons should send is "READY=1".
++
++     STATUS=...   Passes a single-line status string back to systemd
++                  that describes the daemon state. This is free-from
++                  and can be used for various purposes: general state
++                  feedback, fsck-like programs could pass completion
++                  percentages and failing programs could pass a human
++                  readable error message. Example: "STATUS=Completed
++                  66% of file system check..."
++
++     ERRNO=...    If a daemon fails, the errno-style error code,
++                  formatted as string. Example: "ERRNO=2" for ENOENT.
++
++     BUSERROR=... If a daemon fails, the D-Bus error-style error
++                  code. Example: "BUSERROR=org.freedesktop.DBus.Error.TimedOut"
++
++     MAINPID=...  The main pid of a daemon, in case systemd did not
++                  fork off the process itself. Example: "MAINPID=4711"
++
++  Daemons can choose to send additional variables. However, it is
++  recommened to prefix variable names not listed above with X_.
++
++  Returns a negative errno-style error code on failure. Returns > 0
++  if systemd could be notified, 0 if it couldn't possibly because
++  systemd is not running.
++
++  Example: When a daemon finished starting up, it could issue this
++  call to notify systemd about it:
++
++     sd_notify(0, "READY=1");
++
++  See sd_notifyf() for more complete examples.
++
++  See sd_notify(3) for more information.
++*/
++int sd_notify(int unset_environment, const char *state) _sd_hidden_;
++
++/*
++  Similar to sd_notify() but takes a format string.
++
++  Example 1: A daemon could send the following after initialization:
++
++     sd_notifyf(0, "READY=1\n"
++                   "STATUS=Processing requests...\n"
++                   "MAINPID=%lu",
++                   (unsigned long) getpid());
++
++  Example 2: A daemon could send the following shortly before
++  exiting, on failure:
++
++     sd_notifyf(0, "STATUS=Failed to start up: %s\n"
++                   "ERRNO=%i",
++                   strerror(errno),
++                   errno);
++
++  See sd_notifyf(3) for more information.
++*/
++int sd_notifyf(int unset_environment, const char *format, ...) _sd_printf_attr_(2,3) _sd_hidden_;
++
++/*
++  Returns > 0 if the system was booted with systemd. Returns < 0 on
++  error. Returns 0 if the system was not booted with systemd. Note
++  that all of the functions above handle non-systemd boots just
++  fine. You should NOT protect them with a call to this function. Also
++  note that this function checks whether the system, not the user
++  session is controlled by systemd. However the functions above work
++  for both user and system services.
++
++  See sd_booted(3) for more information.
++*/
++int sd_booted(void) _sd_hidden_;
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif
+diff --git a/syslogd.c b/syslogd.c
+index acfd8f1..9bfa8c7 100644
+--- a/syslogd.c
++++ b/syslogd.c
+@@ -551,6 +551,7 @@ static char sccsid[] = "@(#)syslogd.c	5.27 (Berkeley) 10/10/88";
+ 
+ #if defined(__linux__)
+ #include <paths.h>
++#include <sd-daemon.h>
+ #endif
+ 
+ #ifndef UTMP_FILE
+@@ -965,8 +966,11 @@ int main(argc, argv)
+ 			}
+ 			signal (SIGTERM, SIG_DFL);
+ 			num_fds = getdtablesize();
+-			for (i= 0; i < num_fds; i++)
+-				(void) close(i);
++#if defined(__linux__)
++			if (sd_listen_fds(0) <= 0)
++#endif
++				for (i = 0; i < num_fds; i++)
++					(void) close(i);
+ 			untty();
+ 		}
+ 		else
+@@ -1253,6 +1257,60 @@ static int create_unix_socket(const char *path)
+ 	if (path[0] == '\0')
+ 		return -1;
+ 
++#if defined(__linux__)
++	if (strcmp(path, _PATH_LOG) == 0) {
++		int r;
++ 
++		/* Check whether an FD was passed in from systemd. If
++		 * so, it's the /dev/log socket, so use it. */
++ 
++		r = sd_listen_fds(0);
++		if (r < 0) {
++			logerror("Failed to acquire systemd socket");
++#ifndef SYSV
++			dienow();
++#else
++			return -1;
++#endif
++		}
++
++ 
++		if (r > 1) {
++			logerror("Wrong number of systemd sockets passed");
++#ifndef SYSV
++			dienow();
++#else
++			return -1;
++#endif
++		}
++ 
++		if (r == 1) {
++			fd = SD_LISTEN_FDS_START;
++			r = sd_is_socket_unix(fd, SOCK_DGRAM, -1, "/run/systemd/journal/syslog", 0);
++			if (r < 0) {
++				logerror("Failed to verify systemd socket type");
++#ifndef SYSV
++				dienow();
++#else
++				return -1;
++#endif
++			}
++ 
++			if (!r) {
++				logerror("Passed systemd socket of wrong type");
++#ifndef SYSV
++				dienow();
++#else
++				return -1;
++#endif
++			}
++ 
++		        dprintf("Using systemd socket (%d).\n", fd);
++			return fd;
++		}
++	}
++#endif
++
+ 	(void) unlink(path);
+ 
+ 	memset(&sunx, 0, sizeof(sunx));
+@@ -2254,7 +2311,12 @@ void die(sig)
+ 	if (InetInuse) close(inetm);
+ 
+ 	/* Clean-up files. */
+-        for (i = 0; i < nfunix; i++)
++	i = 0;
++#if defined(__linux__)
++	if (sd_listen_fds(0) > 0)
++		i = 1;
++#endif
++	for (; i < nfunix; i++)
+ 		if (funixn[i] && funix[i] != -1)
+ 			(void)unlink(funixn[i]);
+ #ifndef TESTING
diff --git a/pkgs/os-specific/linux/sysstat/default.nix b/pkgs/os-specific/linux/sysstat/default.nix
index 3f464dbd6560..2b4888f89cdf 100644
--- a/pkgs/os-specific/linux/sysstat/default.nix
+++ b/pkgs/os-specific/linux/sysstat/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, gettext }:
    
 stdenv.mkDerivation rec {
-  name = "sysstat-10.0.3";
+  name = "sysstat-10.1.1";
    
   src = fetchurl {
     url = "http://perso.orange.fr/sebastien.godard/${name}.tar.bz2";
-    sha256 = "0z7zr1b4xg9k8rbk2rnghjcycdfi0vb55f117d46ygcdym9ks0i2";
+    sha256 = "1ig6k4yjkkazddjr90hykiapl30s9r9c1gy1h8hqzn2c3xgkm7p3";
   };
 
   buildInputs = [ gettext ];
@@ -13,9 +13,11 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     export PATH_CP=$(type -tp cp)
     export PATH_CHKCONFIG=/no-such-program
-    makeFlagsArray=(SA_DIR=$out/var/log/sa SYSCONFIG_DIR=$out/etc CHOWN=true IGNORE_MAN_GROUP=y)
+    makeFlagsArray=(SA_DIR=/var/log/sa SYSCONFIG_DIR=$out/etc CHOWN=true IGNORE_MAN_GROUP=y)
   '';
 
+  patches = [ ./no-install-statedir.patch ];
+
   meta = {
     homepage = http://sebastien.godard.pagesperso-orange.fr/;
     description = "A collection of performance monitoring tools for Linux (such as sar, iostat and pidstat)";
diff --git a/pkgs/os-specific/linux/sysstat/no-install-statedir.patch b/pkgs/os-specific/linux/sysstat/no-install-statedir.patch
new file mode 100644
index 000000000000..ef81f97217fa
--- /dev/null
+++ b/pkgs/os-specific/linux/sysstat/no-install-statedir.patch
@@ -0,0 +1,37 @@
+diff -rc sysstat-10.1.1/Makefile.in sysstat-10.1.1-new/Makefile.in
+*** sysstat-10.1.1/Makefile.in	2012-01-02 14:36:00.000000000 +0100
+--- sysstat-10.1.1-new/Makefile.in	2012-08-14 14:11:17.676124739 +0200
+***************
+*** 309,315 ****
+  install_base: all sa1 sa2 sysstat.sysconfig install_man install_nls \
+  	contrib/isag/isag
+  	mkdir -p $(DESTDIR)$(SA_LIB_DIR)
+! 	mkdir -p $(DESTDIR)$(SA_DIR)
+  ifeq ($(CLEAN_SA_DIR),y)
+  	find $(DESTDIR)$(SA_DIR) \( -name 'sar??' -o -name 'sa??' -o -name 'sar??.gz' -o -name 'sa??.gz' \) \
+  		-exec rm -f {} \;
+--- 309,315 ----
+  install_base: all sa1 sa2 sysstat.sysconfig install_man install_nls \
+  	contrib/isag/isag
+  	mkdir -p $(DESTDIR)$(SA_LIB_DIR)
+! 	#mkdir -p $(DESTDIR)$(SA_DIR)
+  ifeq ($(CLEAN_SA_DIR),y)
+  	find $(DESTDIR)$(SA_DIR) \( -name 'sar??' -o -name 'sa??' -o -name 'sar??.gz' -o -name 'sa??.gz' \) \
+  		-exec rm -f {} \;
+***************
+*** 344,350 ****
+  
+  install_all: install_base cron/crontab sysstat \
+  	cron/sysstat.crond cron/sysstat.cron.daily cron/sysstat.cron.hourly
+! 	$(CHOWN) $(CRON_OWNER) $(DESTDIR)$(SA_DIR)
+  	if [ -d $(DESTDIR)/etc/cron.d ]; then \
+  	   $(INSTALL_DATA) cron/sysstat.crond $(DESTDIR)/etc/cron.d/sysstat; \
+  	elif [ -d $(DESTDIR)/etc/cron.hourly -a -d $(DESTDIR)/etc/cron.daily ]; then \
+--- 344,350 ----
+  
+  install_all: install_base cron/crontab sysstat \
+  	cron/sysstat.crond cron/sysstat.cron.daily cron/sysstat.cron.hourly
+! 	#$(CHOWN) $(CRON_OWNER) $(DESTDIR)$(SA_DIR)
+  	if [ -d $(DESTDIR)/etc/cron.d ]; then \
+  	   $(INSTALL_DATA) cron/sysstat.crond $(DESTDIR)/etc/cron.d/sysstat; \
+  	elif [ -d $(DESTDIR)/etc/cron.hourly -a -d $(DESTDIR)/etc/cron.daily ]; then \
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index 80ce415ca80f..e5858d06b300 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -1,19 +1,29 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gperf, libcap, udev, dbus, kmod
+{ stdenv, fetchurl, pkgconfig, intltool, gperf, libcap, dbus, kmod
 , xz, pam, acl, cryptsetup, libuuid, m4, utillinux, usbutils, pciutils
-, glib, kbd
+, glib, kbd, libxslt
 }:
 
+assert stdenv.gcc.libc or null != null;
+
 stdenv.mkDerivation rec {
-  name = "systemd-186";
+  name = "systemd-192";
 
   src = fetchurl {
     url = "http://www.freedesktop.org/software/systemd/${name}.tar.xz";
-    sha256 = "0zmj8r7a1xb5f3lvyfgw7095rq3yvr0ibw1730j54blm07sh3hmj";
+    sha256 = "03y3y1w3x7bx67jvdxryhns3h1g6nrllln46gqipp35n99alki2m";
   };
 
+  patches = [ ./reexec.patch ] ++
+            # Remove this patch after the next update.
+            stdenv.lib.optional (stdenv.system == "i686-linux") (fetchurl {
+              url = "https://bugs.freedesktop.org/attachment.cgi?id=67621";
+              name = "fix-32-bit-build.patch";
+              sha256 = "1i4xn6lc6iapaasd2lz717b1zrq5ds5g18i7m509fgfwy7w7x95l";
+            });
+
   buildInputs =
-    [ pkgconfig intltool gperf libcap udev dbus kmod xz pam acl
-      cryptsetup libuuid m4 usbutils pciutils glib
+    [ pkgconfig intltool gperf libcap dbus kmod xz pam acl
+      /* cryptsetup */ libuuid m4 usbutils pciutils glib libxslt
     ];
 
   configureFlags =
@@ -45,7 +55,16 @@ stdenv.mkDerivation rec {
       done
     '';
 
-  NIX_CFLAGS_COMPILE = "-DKBD_LOADKEYS=\"${kbd}/bin/loadkeys\" -DKBD_SETFONT=\"${kbd}/bin/setfont\"";
+  NIX_CFLAGS_COMPILE =
+    [ "-DKBD_LOADKEYS=\"${kbd}/bin/loadkeys\""
+      "-DKBD_SETFONT=\"${kbd}/bin/setfont\""
+      # Can't say ${polkit}/bin/pkttyagent here because that would
+      # lead to a cyclic dependency.
+      "-DPOLKIT_AGENT_BINARY_PATH=\"/run/current-system/sw/bin/pkttyagent\""
+      "-fno-stack-protector"
+    ];
+
+  makeFlags = "CPPFLAGS=-I${stdenv.gcc.libc}/include";
 
   installFlags = "localstatedir=$(TMPDIR)/var sysconfdir=$(out)/etc";
 
@@ -60,14 +79,23 @@ stdenv.mkDerivation rec {
       mkdir -p $out/sbin
       ln -s $out/lib/systemd/systemd $out/sbin/telinit
       for i in init halt poweroff runlevel reboot shutdown; do
-        ln -s $out/bin/systemctl $out/sbin/$i 
+        ln -s $out/bin/systemctl $out/sbin/$i
       done
     '';
 
   enableParallelBuilding = true;
-  
+
+  # The interface version prevents NixOS from switching to an
+  # incompatible systemd at runtime.  (Switching across reboots is
+  # fine, of course.)  It should be increased whenever systemd changes
+  # in a backwards-incompatible way.  If the interface version of two
+  # systemd builds is the same, then we can switch between them at
+  # runtime; otherwise we can't and we need to reboot.
+  passthru.interfaceVersion = 2;
+
   meta = {
     homepage = http://www.freedesktop.org/wiki/Software/systemd;
     description = "A system and service manager for Linux";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/systemd/reexec.patch b/pkgs/os-specific/linux/systemd/reexec.patch
new file mode 100644
index 000000000000..ff13a44ca0b2
--- /dev/null
+++ b/pkgs/os-specific/linux/systemd/reexec.patch
@@ -0,0 +1,15 @@
+Make "systemctl daemon-reexec" do the right thing on NixOS.
+
+diff --git a/src/core/main.c b/src/core/main.c
+index 04fc0b3..0f5b0e9 100644
+--- a/src/core/main.c
++++ b/src/core/main.c
+@@ -1819,7 +1819,7 @@ finish:
+                         char_array_0(sfd);
+ 
+                         i = 0;
+-                        args[i++] = SYSTEMD_BINARY_PATH;
++                        args[i++] = "/run/current-system/systemd/lib/systemd/systemd";
+                         if (switch_root_dir)
+                                 args[i++] = "--switched-root";
+                         args[i++] = arg_running_as == SYSTEMD_SYSTEM ? "--system" : "--user";
diff --git a/pkgs/os-specific/linux/sysvinit/default.nix b/pkgs/os-specific/linux/sysvinit/default.nix
index c088d3c5b1b2..7b3ea62ea2df 100644
--- a/pkgs/os-specific/linux/sysvinit/default.nix
+++ b/pkgs/os-specific/linux/sysvinit/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation {
       rm -rf $out/include
       rm -rf $out/share/man/man5
       rm $(for i in $out/share/man/man8/*; do echo $i; done | grep -v 'pidof\|killall5')
+      rm $out/bin/{mountpoint,wall} $out/share/man/man1/{mountpoint.1,wall.1}
     '';
     
   meta = {
diff --git a/pkgs/os-specific/linux/uml-utilities/builder.sh b/pkgs/os-specific/linux/uml-utilities/builder.sh
deleted file mode 100644
index 00b40278889a..000000000000
--- a/pkgs/os-specific/linux/uml-utilities/builder.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-buildinputs=""
-source $stdenv/setup
-
-tar xvfj $src
-cd tools
-[ -n "$tunctl" ] && sed -e '1s/.*/TUNCTL = tunctl/' -i Makefile
-[ -z "$mconsole" ] && sed -e 's/mconsole//' -i Makefile
-
-mkdir $out
-mkdir $out/bin
-mkdir $out/lib
-mkdir $out/lib/uml
-make BIN_DIR=$out/bin LIB_DIR=$out/lib/uml
-make BIN_DIR=$out/bin LIB_DIR=$out/lib/uml install
-ln -s $out/lib/uml/port-helper $out/bin/port-helper
-[ -z "$tunctl" ] || [ -f $out/bin/tunctl ] || fail_no_tunctl
-[ -z "$mconsole" ] || [ -f $out/bin/uml_mconsole ] || fail_no_mconsole
diff --git a/pkgs/os-specific/linux/uml-utilities/default.nix b/pkgs/os-specific/linux/uml-utilities/default.nix
deleted file mode 100644
index 4ed7c6e8a3ad..000000000000
--- a/pkgs/os-specific/linux/uml-utilities/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{lib, stdenv, fetchurl, linuxHeaders , readline, tunctl ? false, mconsole ? false}:
-
-stdenv.mkDerivation {
-  inherit tunctl mconsole;
-  buildInputs = lib.optional tunctl linuxHeaders
-            ++ lib.optional mconsole readline;
-  name = "uml-utilities-20040114";
-  builder = ./builder.sh;
-  src = fetchurl {
-    url = http://nixos.org/tarballs/uml_utilities_20040114.tar.bz2;
-    md5 = "1fd5b791ef32c6a3ed4ae42c4a53a316";
-  };
-}
diff --git a/pkgs/os-specific/linux/upower/default.nix b/pkgs/os-specific/linux/upower/default.nix
index 4a8cfbdbc515..2f870e5d9994 100644
--- a/pkgs/os-specific/linux/upower/default.nix
+++ b/pkgs/os-specific/linux/upower/default.nix
@@ -1,27 +1,39 @@
-{ stdenv, fetchurl, pkgconfig, glib, dbus, dbus_glib, polkit
-, intltool, libxslt, docbook_xsl, udev, libusb1, pmutils }:
+{ stdenv, fetchurl, pkgconfig, glib, dbus, dbus_glib, dbus_tools, polkit
+, intltool, libxslt, docbook_xsl, udev, libusb1, pmutils
+, useSystemd ? false, systemd ? null
+}:
 
 assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
-  name = "upower-0.9.16";
+  name = "upower-0.9.18";
 
   src = fetchurl {
     url = "http://upower.freedesktop.org/releases/${name}.tar.xz";
-    sha256 = "eb9a3d39a8cb62970fd612e333bc7a43437ab0e7890303578b0a7e3c67c8c212";
+    sha256 = "13q6cw2d45qp077g3bjng4yhrvm6g1y9347dkf53kscm5xfm18d1";
   };
 
-  buildInputs = [ dbus_glib polkit intltool libxslt docbook_xsl udev libusb1 ];
+  buildInputs =
+    [ dbus_glib polkit intltool libxslt docbook_xsl udev libusb1 ]
+    ++ stdenv.lib.optional useSystemd systemd;
 
   buildNativeInputs = [ pkgconfig ];
 
-  configureFlags = "--with-backend=linux --localstatedir=/var";
+  configureFlags =
+    [ "--with-backend=linux" "--localstatedir=/var" ]
+    ++ stdenv.lib.optional useSystemd
+    [ "--enable-systemd"
+      "--with-systemdsystemunitdir=$(out)/etc/systemd/system"
+      "--with-systemdutildir=$(out)/lib/systemd/system-sleep"
+    ];
 
   preConfigure =
     ''
       substituteInPlace src/linux/up-backend.c \
         --replace /usr/bin/pm- ${pmutils}/bin/pm- \
         --replace /usr/sbin/pm- ${pmutils}/sbin/pm-
+      substituteInPlace src/notify-upower.sh \
+        --replace /usr/bin/dbus-send ${dbus_tools}/bin/dbus-send
     '';
 
   installFlags = "historydir=$(TMPDIR)/foo";
diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix
index 522478ed5b77..f947bc9a1e73 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/default.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, openssl, dbus_libs, pkgconfig, libnl1 }:
+{ stdenv, fetchurl, openssl, dbus_libs, pkgconfig, libnl }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.3";
-  
+  version = "1.0";
+
   name = "wpa_supplicant-${version}";
 
   src = fetchurl {
-    url = "http://hostap.epitest.fi/releases/wpa_supplicant-${version}.tar.gz";
-    sha256 = "0hwlsn512q2ps8wxxjmkjfdg3vjqqb9mxnnwfv1wqijkm3551kfh";
+    url = "http://hostap.epitest.fi/releases/${name}.tar.gz";
+    sha256 = "171b9027rbzy64zaal4832ix9i3mm6ypwmynbpia5bss793ivm4i";
   };
-  
+
   preBuild = ''
     cd wpa_supplicant
     cp -v defconfig .config
@@ -18,26 +18,19 @@ stdenv.mkDerivation rec {
     echo CONFIG_CTRL_IFACE_DBUS_NEW=y | tee -a .config
     echo CONFIG_CTRL_IFACE_DBUS_INTRO=y | tee -a .config
     echo CONFIG_DRIVER_NL80211=y | tee -a .config
+    echo CONFIG_LIBNL32=y | tee -a .config
     substituteInPlace Makefile --replace /usr/local $out
   '';
 
-  buildInputs = [ openssl dbus_libs libnl1 ];
+  buildInputs = [ openssl dbus_libs libnl ];
 
   buildNativeInputs = [ pkgconfig ];
 
   patches =
-    [ # Upstream patch required for NetworkManager-0.9
-      (fetchurl {
-        url = "http://w1.fi/gitweb/gitweb.cgi?p=hostap-07.git;a=commitdiff_plain;h=b80b5639935d37b95d00f86b57f2844a9c775f57";
-        name = "wpa_supplicant-nm-0.9.patch";
-        sha256 = "1pqba0l4rfhba5qafvvbywi9x1qmphs944p704bh1flnx7cz6ya8";
-      })
-      # wpa_supplicant crashes when controlled through dbus (wicd/nm)
-      # see: https://bugzilla.redhat.com/show_bug.cgi?id=678625
-      (fetchurl {
-        url = "https://bugzilla.redhat.com/attachment.cgi?id=491018";
-        name = "dbus-assertion-fix.patch";
-        sha256 = "6206d79bcd800d56cae73e2a01a27ac2bee961512f77e5d62a59256a9919077a";
+    [ (fetchurl {
+        url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/hostap_allow-linking-with-libnl-3.2.patch?h=packages/wpa_supplicant";
+        name = "hostap_allow-linking-with-libnl-3.2.patch";
+        sha256 = "0iwvjq0apc6mv1r03k5pnyjgda3q47yx36c4lqvv8i8q1vn7kbf2";
       })
     ];
 
diff --git a/pkgs/servers/http/apache-modules/mod_evasive/default.nix b/pkgs/servers/http/apache-modules/mod_evasive/default.nix
new file mode 100644
index 000000000000..22e0fabf832c
--- /dev/null
+++ b/pkgs/servers/http/apache-modules/mod_evasive/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, apacheHttpd }:
+
+stdenv.mkDerivation {
+  name = "mod_evasive_1.10.1";
+
+  src = fetchurl {
+    url = http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz;
+    sha256 = "0rsnx50rjv6xygbp9r0gyss7xqdkcb0hy3wh9949jf1im8wm3i07";
+  };
+
+  buildInputs = [ apacheHttpd ];
+
+  buildPhase = ''
+    export APACHE_LIBEXECDIR=$out/modules
+    export makeFlagsArray=(APACHE_LIBEXECDIR=$out/modules)
+    apxs -ca mod_evasive20.c
+  '';
+
+  installPhase = ''
+    mkdir -p $out/modules
+    cp .libs/mod_evasive20.so $out/modules
+  '';
+
+  meta = {
+    homepage = "http://www.zdziarski.com/blog/?page_id=442";
+    description = "mod_evasive is an evasive maneuvers module for Apache to provide evasive action in the event of an HTTP DoS or DDoS attack or brute force attack.";
+
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/servers/mail/dovecot/1.1.1.nix b/pkgs/servers/mail/dovecot/1.1.1.nix
deleted file mode 100644
index 103f79652fd8..000000000000
--- a/pkgs/servers/mail/dovecot/1.1.1.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{stdenv, fetchurl
-  , openssl
-  , pam
-}:
-
-let 
-  version = "1.1.1"; 
-in
-
-stdenv.mkDerivation {
-  name = "dovecot-${version}";
-
-  buildInputs = [openssl pam];
-
-  src = fetchurl {
-    url = "http://dovecot.org/releases/1.1/dovecot-${version}.tar.gz";
-    sha256 = "0plzrzz07k0cylk9323gs9fzlv176y6nd6am660b6dch4p884sck";
-  };
-  
-}
diff --git a/pkgs/servers/mail/dovecot/2.x.nix b/pkgs/servers/mail/dovecot/2.x.nix
deleted file mode 100644
index 294a58b4f24b..000000000000
--- a/pkgs/servers/mail/dovecot/2.x.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{stdenv, fetchurl, openssl, pam, bzip2, zlib}:
-
-stdenv.mkDerivation rec {
-  name = "dovecot-2.1.7";
-
-  buildInputs = [openssl pam bzip2 zlib];
-
-  src = fetchurl {
-    url = "http://dovecot.org/releases/2.1/${name}.tar.gz";
-    sha256 = "0lpldhs0nvy6rxabqkp14wzcwf1cx4jvnbp1xcm74izrzxhvrdym";
-  };
-
-  # It will hardcode this for /var/lib/dovecot.
-  # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=626211
-  configureFlags = [ "--localstatedir=/var" ];
-
-  meta = {
-    homepage = http://dovecot.org/;
-    description = "Open source IMAP and POP3 email server written with security primarily in mind";
-    maintainers = with stdenv.lib.maintainers; [viric];
-    platforms = with stdenv.lib.platforms; linux;
-  };
-  
-}
diff --git a/pkgs/servers/mail/dovecot/default.nix b/pkgs/servers/mail/dovecot/default.nix
index 70e84fa51b03..cb29c9ebc896 100644
--- a/pkgs/servers/mail/dovecot/default.nix
+++ b/pkgs/servers/mail/dovecot/default.nix
@@ -1,16 +1,27 @@
-{stdenv, fetchurl
-  , openssl
-  , pam
-}:
+{stdenv, fetchurl, openssl, pam, bzip2, zlib, inotifyTools, openldap}:
 
-stdenv.mkDerivation {
-  name = "dovecot-1.0.3";
+stdenv.mkDerivation rec {
+  name = "dovecot-2.1.8";
 
-  buildInputs = [openssl pam];
+  buildInputs = [openssl pam bzip2 zlib inotifyTools openldap];
 
   src = fetchurl {
-    url = http://dovecot.org/releases/1.0/dovecot-1.0.3.tar.gz;
-    sha256 = "14b3sbvj9xpm5mjwfavwrcwmzfdgian51ncspl8j83cd8j01jdjz";
+    url = "http://dovecot.org/releases/2.1/${name}.tar.gz";
+    sha256 = "03801f4agcwdpqyg6dfxlga3750pnhk4gaf8m7sjq1qmz2277028";
   };
-  
+
+  # It will hardcode this for /var/lib/dovecot.
+  # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=626211
+  configureFlags = [
+    "--localstatedir=/var"
+    "--with-ldap"
+  ];
+
+  meta = {
+    homepage = "http://dovecot.org/";
+    description = "Open source IMAP and POP3 email server written with security primarily in mind";
+    maintainers = with stdenv.lib.maintainers; [viric simons];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+
 }
diff --git a/pkgs/servers/mail/popa3d/default.nix b/pkgs/servers/mail/popa3d/default.nix
new file mode 100644
index 000000000000..25ac0d5f9e3d
--- /dev/null
+++ b/pkgs/servers/mail/popa3d/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl,  openssl }:
+
+stdenv.mkDerivation rec {
+
+  name = "popa3d-1.0.2";
+
+  src = fetchurl {
+    url = "http://www.openwall.com/popa3d/${name}.tar.gz";
+    sha256 = "0zvspgnlrx4jhhkb5b1p280nsf9d558jijgpvwfyvdp4q4v460z7";
+  };
+
+  buildInputs = [ openssl ];
+
+  patches = [
+    ./fix-mail-spool-path.patch
+    ./use-openssl.patch
+    ./use-glibc-crypt.patch
+    ./enable-standalone-mode.patch
+  ];
+
+  configurePhase = ''makeFlags="PREFIX=$out MANDIR=$out/share/man"'';
+
+  meta = {
+    homepage = "http://www.openwall.com/popa3d/";
+    description = "tiny POP3 daemon with security as the primary goal";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
+}
diff --git a/pkgs/servers/mail/popa3d/enable-standalone-mode.patch b/pkgs/servers/mail/popa3d/enable-standalone-mode.patch
new file mode 100644
index 000000000000..763ede102f25
--- /dev/null
+++ b/pkgs/servers/mail/popa3d/enable-standalone-mode.patch
@@ -0,0 +1,12 @@
+diff -ubr popa3d-1.0.2-orig/params.h popa3d-1.0.2/params.h
+--- popa3d-1.0.2-orig/params.h	2012-09-19 01:19:56.698098130 +0200
++++ popa3d-1.0.2/params.h	2012-09-19 01:37:06.749130665 +0200
+@@ -13,7 +13,7 @@
+ /*
+  * Are we going to be a standalone server or start via an inetd clone?
+  */
+-#define POP_STANDALONE			0
++#define POP_STANDALONE			1
+ 
+ #if POP_STANDALONE
+ 
diff --git a/pkgs/servers/mail/popa3d/fix-mail-spool-path.patch b/pkgs/servers/mail/popa3d/fix-mail-spool-path.patch
new file mode 100644
index 000000000000..4f440ae59663
--- /dev/null
+++ b/pkgs/servers/mail/popa3d/fix-mail-spool-path.patch
@@ -0,0 +1,12 @@
+diff -ubr popa3d-1.0.2-orig/params.h popa3d-1.0.2/params.h
+--- popa3d-1.0.2-orig/params.h	2012-09-19 01:19:56.698098130 +0200
++++ popa3d-1.0.2/params.h	2012-09-19 01:21:13.748065132 +0200
+@@ -191,7 +191,7 @@
+  *
+  * #undef this for qmail-style $HOME/Mailbox mailboxes.
+  */
+-#define MAIL_SPOOL_PATH			"/var/mail"
++#define MAIL_SPOOL_PATH			"/var/spool/mail"
+ 
+ #ifndef MAIL_SPOOL_PATH
+ /*
diff --git a/pkgs/servers/mail/popa3d/use-glibc-crypt.patch b/pkgs/servers/mail/popa3d/use-glibc-crypt.patch
new file mode 100644
index 000000000000..35843a38bb31
--- /dev/null
+++ b/pkgs/servers/mail/popa3d/use-glibc-crypt.patch
@@ -0,0 +1,12 @@
+diff -ubr popa3d-1.0.2-orig/Makefile popa3d-1.0.2/Makefile
+--- popa3d-1.0.2-orig/Makefile	2012-09-19 01:19:56.698098130 +0200
++++ popa3d-1.0.2/Makefile	2012-09-19 01:24:33.871750473 +0200
+@@ -9,7 +9,7 @@
+ LDFLAGS = -s
+ LIBS =
+ # Linux with glibc, FreeBSD, NetBSD
+-#LIBS += -lcrypt
++LIBS += -lcrypt
+ # HP-UX trusted system
+ #LIBS += -lsec
+ # Solaris (POP_STANDALONE, POP_VIRTUAL)
diff --git a/pkgs/servers/mail/popa3d/use-openssl.patch b/pkgs/servers/mail/popa3d/use-openssl.patch
new file mode 100644
index 000000000000..54301dd873b9
--- /dev/null
+++ b/pkgs/servers/mail/popa3d/use-openssl.patch
@@ -0,0 +1,21 @@
+diff -ubr popa3d-1.0.2-orig/Makefile popa3d-1.0.2/Makefile
+--- popa3d-1.0.2-orig/Makefile	2012-09-19 01:19:56.698098130 +0200
++++ popa3d-1.0.2/Makefile	2012-09-19 01:23:00.309636423 +0200
+@@ -5,7 +5,7 @@
+ INSTALL = install -c
+ CFLAGS = -Wall -O2 -fomit-frame-pointer
+ # You may use OpenSSL's MD5 routines instead of the ones supplied here
+-#CFLAGS += -DHAVE_OPENSSL
++CFLAGS += -DHAVE_OPENSSL
+ LDFLAGS = -s
+ LIBS =
+ # Linux with glibc, FreeBSD, NetBSD
+@@ -21,7 +21,7 @@
+ # libwrap may also want this
+ #LIBS += -lnsl
+ # OpenSSL (-DHAVE_OPENSSL)
+-#LIBS += -lcrypto
++LIBS += -lcrypto
+ 
+ DESTDIR =
+ PREFIX = /usr/local
diff --git a/pkgs/servers/mail/postfix/default.nix b/pkgs/servers/mail/postfix/default.nix
index 16d9127e5561..a435eea86639 100644
--- a/pkgs/servers/mail/postfix/default.nix
+++ b/pkgs/servers/mail/postfix/default.nix
@@ -4,31 +4,22 @@
 
 assert stdenv.isLinux;
 
-stdenv.mkDerivation {
-  name = "postfix-2.8.6";
-  
+stdenv.mkDerivation rec {
+  name = "postfix-2.8.12";
+
   src = fetchurl {
-    url = ftp://ftp.cs.uu.nl/mirror/postfix/postfix-release/official/postfix-2.8.6.tar.gz;
-    sha256 = "1rfsfhna5hy5lc6hkg1zc2862pdc5c1y9z6aiy8rinlmzrfplhlb";
+    url = "ftp://ftp.cs.uu.nl/mirror/postfix/postfix-release/official/${name}.tar.gz";
+    sha256 = "11z07mjy53l1fnl7k4101yk4ilibgqr1164628mqcbmmr8bh2szl";
   };
 
-  installTargets = ["non-interactive-package"];
-  
-  installFlags = [" install_root=$out "];
-  
-  preInstall = ''
-    sed -e '/^PATH=/d' -i postfix-install
-  '';
-  
-  postInstall = ''
-    mkdir -p $out
-    mv ut/$out/* $out/
+  buildInputs = [db4 openssl cyrus_sasl bison perl];
 
-    mkdir $out/share/postfix/conf
-    cp conf/* $out/share/postfix/conf
-    sed -e 's@PATH=.*@PATH=${coreutils}/bin:${findutils}/bin:${gnused}/bin:${gnugrep}/bin:'$out'/sbin@' -i $out/share/postfix/conf/post-install $out/libexec/postfix/post-install
-    sed -e '2aPATH=${coreutils}/bin:${findutils}/bin:${gnused}/bin:${gnugrep}/bin:'$out'/sbin' -i $out/share/postfix/conf/postfix-script $out/libexec/postfix/postfix-script
-    chmod a+x $out/share/postfix/conf/{postfix-script,post-install}
+  patches = [ ./postfix-2.2.9-db.patch  ./postfix-2.2.9-lib.patch ./db-linux3.patch ];
+
+  postPatch = ''
+    sed -i -e s,/usr/bin,/var/run/current-system/sw/bin, \
+      -e s,/usr/sbin,/var/run/current-system/sw/sbin, \
+      -e s,:/sbin,, src/util/sys_defs.h
   '';
 
   preBuild = ''
@@ -46,15 +37,29 @@ stdenv.mkDerivation {
     make makefiles CCARGS='-DUSE_TLS -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I${cyrus_sasl}/include/sasl' AUXLIBS='-lssl -lcrypto -lsasl2 -ldb -lnsl'
   '';
 
-  buildInputs = [db4 openssl cyrus_sasl bison perl];
-  
-  patches = [ ./postfix-2.2.9-db.patch  ./postfix-2.2.9-lib.patch ./db-linux3.patch ];
+  installPhase = ''
+    sed -e '/^PATH=/d' -i postfix-install
+    $SHELL postfix-install install_root=out -non-interactive -package
 
-  postPatch = ''
-    sed -i -e s,/usr/bin,/var/run/current-system/sw/bin, \
-      -e s,/usr/sbin,/var/run/current-system/sw/sbin, \
-      -e s,:/sbin,, src/util/sys_defs.h
+    mkdir -p $out
+    mv -v "out$out/"* $out/
+
+    mkdir -p $out/share/postfix
+    mv conf $out/share/postfix/
+    mv LICENSE TLS_LICENSE $out/share/postfix/
+
+    sed -e 's@^PATH=.*@PATH=${coreutils}/bin:${findutils}/bin:${gnused}/bin:${gnugrep}/bin:'$out'/sbin@' -i $out/share/postfix/conf/post-install $out/libexec/postfix/post-install
+    sed -e '2aPATH=${coreutils}/bin:${findutils}/bin:${gnused}/bin:${gnugrep}/bin:'$out'/sbin' -i $out/share/postfix/conf/postfix-script $out/libexec/postfix/postfix-script
+    chmod a+x $out/share/postfix/conf/{postfix-script,post-install}
   '';
-  
+
   inherit glibc;
+
+  meta = {
+    homepage = "http://www.postfix.org/";
+    description = "a fast, easy to administer, and secure mail server";
+    license = stdenv.lib.licenses.bsdOriginal;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.simons ];
+  };
 }
diff --git a/pkgs/servers/mail/spamassassin/default.nix b/pkgs/servers/mail/spamassassin/default.nix
index 8f22d08b7592..0f5cefb84c25 100644
--- a/pkgs/servers/mail/spamassassin/default.nix
+++ b/pkgs/servers/mail/spamassassin/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, buildPerlPackage, perl, HTMLParser, NetDNS, NetAddrIP, DBFile
-, HTTPDate, MailDKIM
+, HTTPDate, MailDKIM, makeWrapper
 }:
 
 # TODO:
@@ -20,13 +20,21 @@ buildPerlPackage rec {
     sha256 = "01d2jcpy423zfnhg123wlhzysih1hmb93nxfspiaajzh9r5rn8y7";
   };
 
-  propagatedBuildInputs = [ HTMLParser NetDNS NetAddrIP DBFile
-    HTTPDate MailDKIM ];
+  buildInputs = [ makeWrapper HTMLParser NetDNS NetAddrIP DBFile HTTPDate
+    MailDKIM ];
 
-  makeFlags = "PERL_BIN=${perl}/bin/perl";
+  # Enabling 'taint' mode is desirable, but that flag disables support
+  # for the PERL5LIB environment variable. Needs further investigation.
+  makeFlags = "PERL_BIN=${perl}/bin/perl PERL_TAINT=no";
 
   doCheck = false;
 
+  postInstall = ''
+    for n in "$out/bin/"*; do
+      wrapProgram "$n" --prefix PERL5LIB : "$PERL5LIB"
+    done
+  '';
+
   meta = {
     homepage = "http://spamassassin.apache.org/";
     description = "Open-Source Spam Filter";
diff --git a/pkgs/servers/nosql/mongodb/default.nix b/pkgs/servers/nosql/mongodb/default.nix
index 685aeb05ce7c..ce664972037e 100644
--- a/pkgs/servers/nosql/mongodb/default.nix
+++ b/pkgs/servers/nosql/mongodb/default.nix
@@ -1,39 +1,42 @@
-{ stdenv, fetchurl, scons, which, boost, gnutar, v8 ? null, useV8 ? false}:
-
-assert useV8 -> v8 != null;
+{ stdenv, fetchurl, scons, which, v8, useV8 ? false}:
 
 with stdenv.lib;
 
+let installerPatch = fetchurl {
+      url = "https://jira.mongodb.org/secure/attachment/18160/SConscript.client.patch";
+      sha256 = "0n60fh2r8i7m6g113k0iw4adc8jv2by4ahrd780kxg47kzfgw06a";
+    };
+
+in
 stdenv.mkDerivation rec {
-  name = "mongodb-2.0.6";
+  name = "mongodb-2.2.0";
 
   src = fetchurl {
-    url = "http://downloads.mongodb.org/src/mongodb-src-r2.0.6.tar.gz";
-    sha256 = "0kiiz8crx318sdn0wd9d88pzx9s1c6ak2dhd0zw7kl63gmd74wm9";
+    url = http://downloads.mongodb.org/src/mongodb-src-r2.2.0.tar.gz;
+    sha256 = "12v0cpq9j2gmagr9pbw08karqwqgl4j9r223w7x7sx5cfvj2cih8";
   };
 
-  buildInputs = [scons which boost] ++ stdenv.lib.optional useV8 v8;
+  buildNativeInputs = [ scons which ];
+
+  patches = [ installerPatch ];
 
   enableParallelBuilding = true;
 
-  patchPhase = ''
-    substituteInPlace SConstruct --replace "Environment( MSVS_ARCH=msarch , tools = [\"default\", \"gch\"], toolpath = '.' )" "Environment( MSVS_ARCH=msarch , tools = [\"default\", \"gch\"], toolpath = '.', ENV = os.environ )"
-    substituteInPlace SConstruct --replace "../v8" "${v8}"
-    substituteInPlace SConstruct --replace "LIBPATH=[\"${v8}/\"]" "LIBPATH=[\"${v8}/lib\"]"
+  postPatch = ''
+    substituteInPlace SConstruct --replace "Environment( BUILD_DIR" "Environment( ENV = os.environ, BUILD_DIR"
+  '' + optionalString useV8 ''
+    substituteInPlace SConstruct --replace "#/../v8" "${v8}" \
+                                 --replace "[\"${v8}/\"]" "[\"${v8}/lib\"]"
   '';
 
   buildPhase = ''
-    export TERM=""
-    scons all --cc=`which gcc` --cxx=`which g++` --libpath=${boost}/lib --cpppath=${boost}/include \
-              ${optionalString useV8 "--usev8"}
+    echo $PATH
+    scons all --cc=`which gcc` --cxx=`which g++` ${optionalString useV8 "--usev8"}
   '';
 
   installPhase = ''
-    scons install --cc=`which gcc` --cxx=`which g++` --libpath=${boost}/lib --cpppath=${boost}/include \
-                  ${optionalString useV8 "--usev8"} --full --prefix=$out
-    if [ -d $out/lib64 ]; then
-      mv $out/lib64 $out/lib
-    fi
+    scons install --cc=`which gcc` --cxx=`which g++` ${optionalString useV8 "--usev8"} --full --prefix=$out
+    rm -rf $out/lib64 # exact same files as installed in $out/lib
   '';
 
   meta = {
@@ -42,7 +45,6 @@ stdenv.mkDerivation rec {
     license = "AGPLv3";
 
     maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
-
diff --git a/pkgs/servers/restund/default.nix b/pkgs/servers/restund/default.nix
new file mode 100644
index 000000000000..e817151e778d
--- /dev/null
+++ b/pkgs/servers/restund/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, zlib, openssl, libre, librem, mysql}:
+stdenv.mkDerivation rec {
+  version = "0.4.2";
+  name = "restund-${version}";
+  src=fetchurl {
+    url = "http://www.creytiv.com/pub/restund-${version}.tar.gz";
+    sha256 = "db5260939d40cb2ce531075bef02b9d6431067bdd52f3168a6f25246bdf7b9f2";
+  };
+  buildInputs = [zlib openssl libre librem mysql];
+  makeFlags = [
+    "LIBRE_MK=${libre}/share/re/re.mk"
+    "LIBRE_INC=${libre}/include/re"
+    "LIBRE_SO=${libre}/lib"
+    "LIBREM_PATH=${librem}"
+    ''PREFIX=$(out)''
+    "USE_MYSQL=1"
+  ]
+  ++ stdenv.lib.optional (stdenv.gcc.gcc != null) "SYSROOT_ALT=${stdenv.gcc.gcc}"
+  ++ stdenv.lib.optional (stdenv.gcc.libc != null) "SYSROOT=${stdenv.gcc.libc}"
+  ;
+  NIX_LDFLAGS='' -L${mysql}/lib/mysql '';
+  meta = {
+    homepage = "http://www.creytiv.com/restund.html";
+    platforms = with stdenv.lib.platforms; linux;
+    maintainers = with stdenv.lib.maintainers; [raskin];
+    license = with stdenv.lib.licenses; bsd3;
+  };
+}
diff --git a/pkgs/servers/samba/default.nix b/pkgs/servers/samba/default.nix
index 3a3051e29bff..7a73a0417982 100644
--- a/pkgs/servers/samba/default.nix
+++ b/pkgs/servers/samba/default.nix
@@ -18,16 +18,15 @@
 assert useKerberos -> kerberos != null;
 
 stdenv.mkDerivation rec {
-  name = "samba-3.6.5";
+  name = "samba-3.6.7";
 
   src = fetchurl {
     url = "http://us3.samba.org/samba/ftp/stable/${name}.tar.gz";
-    sha256 = "1i40mf5rvz055zp7fy5rqp1lwlsm65g8k6n8jxw5w5f1p3rmzxla";
+    sha256 = "1jnl9v6axz30ymh6in1fwan7zjy9n5n7x70vi1afazxs27qa0n5q";
   };
 
   patches =
-    [
-      # Allow cross-builds for GNU/Hurd.
+    [ # Allow cross-builds for GNU/Hurd.
       ./libnss-wins-pthread.patch
     ];
 
diff --git a/pkgs/servers/sip/sipwitch/default.nix b/pkgs/servers/sip/sipwitch/default.nix
index 7fa9a62e5e3f..097dde325f19 100644
--- a/pkgs/servers/sip/sipwitch/default.nix
+++ b/pkgs/servers/sip/sipwitch/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, pkgconfig, ucommon, libosip, libexosip, gnutls, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "sipwitch-1.2.3";
+  name = "sipwitch-1.2.4";
 
   src = fetchurl {
     url = "mirror://gnu/sipwitch/${name}.tar.gz";
-    sha256 = "0vc7x061m2jdj8hwpw56yiz8ij07x058vm1rm1dz7w98slpkcj6d";
+    sha256 = "1c826832xi9p85l7c9va33xx8hx01m3jq49s0d1xl4c8kvri7bsj";
   };
 
   buildInputs = [ pkgconfig ucommon libosip libexosip gnutls zlib ];
diff --git a/pkgs/servers/sql/postgresql/8.3.x.nix b/pkgs/servers/sql/postgresql/8.3.x.nix
index fb4c8302d812..d4ddb36d4feb 100644
--- a/pkgs/servers/sql/postgresql/8.3.x.nix
+++ b/pkgs/servers/sql/postgresql/8.3.x.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, zlib, ncurses, readline }:
 
-let version = "8.3.19"; in
+let version = "8.3.20"; in
 
 stdenv.mkDerivation rec {
   name = "postgresql-${version}";
-  
+
   src = fetchurl {
     url = "mirror://postgresql/source/v${version}/${name}.tar.bz2";
-    sha256 = "1maq1gjnd111jn45d7k58av1dm273vypvwhhsbhknqywgr5hsvwq";
+    sha256 = "0qqic4wx59lgbyfmdfcgip9nrcpk10zdb91bw9b96wr1vijn2awj";
   };
 
   buildInputs = [ zlib ncurses readline ];
diff --git a/pkgs/servers/sql/postgresql/8.4.x.nix b/pkgs/servers/sql/postgresql/8.4.x.nix
index 14e948d3d4ef..e1150543f362 100644
--- a/pkgs/servers/sql/postgresql/8.4.x.nix
+++ b/pkgs/servers/sql/postgresql/8.4.x.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, zlib, ncurses, readline }:
 
-let version = "8.4.12"; in
+let version = "8.4.13"; in
 
 stdenv.mkDerivation rec {
   name = "postgresql-${version}";
-  
+
   src = fetchurl {
     url = "mirror://postgresql/source/v${version}/${name}.tar.bz2";
-    sha256 = "0xqgzi6qrx4g7g8f38hp02qj8grrfnvc33kyijc2hf0qxhqb7dwr";
+    sha256 = "1fccqkni64vg1pi4zzcl67bm9g2brrlzjn1vh6qlyfpsld139p90";
   };
 
   buildInputs = [ zlib ncurses readline ];
diff --git a/pkgs/servers/sql/postgresql/9.0.x.nix b/pkgs/servers/sql/postgresql/9.0.x.nix
index a4896d02a3a4..a28e5c337791 100644
--- a/pkgs/servers/sql/postgresql/9.0.x.nix
+++ b/pkgs/servers/sql/postgresql/9.0.x.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, zlib, readline }:
 
-let version = "9.0.8"; in
+let version = "9.0.9"; in
 
 stdenv.mkDerivation rec {
   name = "postgresql-${version}";
-  
+
   src = fetchurl {
     url = "mirror://postgresql/source/v${version}/${name}.tar.bz2";
-    sha256 = "1hhb9kaayrs3bqm1afg8g4p9mr3mc8hskrgy24hnwfablsl1p652";
+    sha256 = "12nslml1mg3lyvrhmdvv5g15n7vj5fk1blx1dfllylqg38c7shc7";
   };
 
   buildInputs = [ zlib readline ];
diff --git a/pkgs/servers/sql/postgresql/9.1.x.nix b/pkgs/servers/sql/postgresql/9.1.x.nix
index 8dbaf93df8fd..14488d4649e0 100644
--- a/pkgs/servers/sql/postgresql/9.1.x.nix
+++ b/pkgs/servers/sql/postgresql/9.1.x.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, zlib, readline }:
 
-let version = "9.1.4"; in
+let version = "9.1.5"; in
 
 stdenv.mkDerivation rec {
   name = "postgresql-${version}";
-  
+
   src = fetchurl {
     url = "mirror://postgresql/source/v${version}/${name}.tar.bz2";
-    sha256 = "04lp7hfh8z2n8gzib6b9j1fq70h1s91z2fxn2hlilbdfnf75lyd0";
+    sha256 = "0i6fssldjp65xfxz9dcmkhz6bk4rpw9g26zbqbc6iz164h9rr20b";
   };
 
   buildInputs = [ zlib readline ];
diff --git a/pkgs/servers/sql/postgresql/jdbc/default.nix b/pkgs/servers/sql/postgresql/jdbc/default.nix
index e173a270e882..e490a14bea61 100644
--- a/pkgs/servers/sql/postgresql/jdbc/default.nix
+++ b/pkgs/servers/sql/postgresql/jdbc/default.nix
@@ -1,13 +1,19 @@
-{stdenv, fetchurl, ant}:
+{ stdenv, fetchurl, ant }:
 
-stdenv.mkDerivation {
-  name = "postgresql-jdbc-8.2";
+stdenv.mkDerivation rec {
+  name = "postgresql-jdbc-9.1-902";
   builder = ./builder.sh;
 
   src = fetchurl {
-    url = http://jdbc.postgresql.org/download/postgresql-jdbc-8.2-504.src.tar.gz;
-    sha256 = "1fkza5j4b9pzm69cw1zv35bqk062d92l4l0zhz3qn0g64r08ccm4";
+    url = "http://jdbc.postgresql.org/download/${name}.src.tar.gz";
+    sha256 = "0sgwbiw5vfxcl0g1yzsndgxdha74cr8ag6y65i0jhgg5g8qc56bz";
   };
 
   buildInputs = [ant];
+
+  meta = {
+    homepage = http://jdbc.postgresql.org/;
+    description = "JDBC driver for PostgreSQL allowing Java programs to connect to a PostgreSQL database";
+    license = "bsd";
+  };
 }
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index a4a38d8ac38c..912308647e2d 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -232,6 +232,7 @@ in
   };
 
   xorgserver = attrs: attrs // {
+    configureFlags = "--enable-xcsecurity"; # enable SECURITY extension
     patches = [./xorgserver-dri-path.patch ./xorgserver-xkbcomp-path.patch];
     buildInputs = attrs.buildInputs ++
       [ args.zlib args.udev args.mesa args.dbus.libs
diff --git a/pkgs/shells/bash-completion/default.nix b/pkgs/shells/bash-completion/default.nix
index 916c7600dfd0..d79c9774569b 100644
--- a/pkgs/shells/bash-completion/default.nix
+++ b/pkgs/shells/bash-completion/default.nix
@@ -1,22 +1,23 @@
 { stdenv, fetchurl }:
 
 let
-  version = "1.3";
+  version = "2.0";
 in
 stdenv.mkDerivation {
   name = "bash-completion-${version}";
 
   src = fetchurl {
     url = "http://bash-completion.alioth.debian.org/files/bash-completion-${version}.tar.bz2";
-    sha256 = "8ebe30579f0f3e1a521013bcdd183193605dab353d7a244ff2582fb3a36f7bec";
+    sha256 = "e5a490a4301dfb228361bdca2ffca597958e47dd6056005ef9393a5852af5804";
   };
 
   postInstall = ''
-    rm $out/etc/profile.d/bash_completion.sh
-    rmdir $out/etc/profile.d
-    sed -i -e "s|/etc/bash_completion|$out/etc/bash_completion|g" $out/etc/bash_completion
+    sed -i "$out/share/bash-completion/bash_completion" \
+        -e 's|: .{BASH_COMPLETION_COMPAT_DIR:=.*}|BASH_COMPLETION_COMPAT_DIR="$HOME/.nix-profile/etc/bash_completion.d"|'
   '';
 
+  doCheck = true;
+
   meta = {
     homepage = "http://bash-completion.alioth.debian.org/";
     description = "Programmable completion for the bash shell";
diff --git a/pkgs/shells/ipython/default.nix b/pkgs/shells/ipython/default.nix
index 8e430df52904..a64c20520561 100644
--- a/pkgs/shells/ipython/default.nix
+++ b/pkgs/shells/ipython/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, buildPythonPackage, pythonPackages }:
 
 buildPythonPackage rec {
-  name = "ipython-0.11";
+  name = "ipython-0.13";
   namePrefix = "";
 
   src = fetchurl {
     url = "http://pypi.python.org/packages/source/i/ipython/${name}.tar.gz";
-    md5 = "efc899e752a4a4a67a99575cea1719ef";
+    sha256 = "1m4m0zf3llnicfgrbnl2h08p3662px7v2pzbhq4fq24vnyz6x5w2";
   };
 
   propagatedBuildInputs = [ pythonPackages.readline pythonPackages.sqlite3 ];
diff --git a/pkgs/shells/tcsh/default.nix b/pkgs/shells/tcsh/default.nix
index 9e5fa7dae0f3..be182f87f1ee 100644
--- a/pkgs/shells/tcsh/default.nix
+++ b/pkgs/shells/tcsh/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, ncurses}:
 
-stdenv.mkDerivation {
-  name = "tcsh-6.16.00";
+stdenv.mkDerivation rec {
+  name = "tcsh-6.18.01";
   
   src = fetchurl {
-    url = ftp://ftp.funet.fi/pub/unix/shells/tcsh/tcsh-6.16.00.tar.gz;
-    sha256 = "1m0p8lqqna3vpf2k4x3hia3rlrz38av67x7hb4qsiq2kfpbbh0vn";
+    url = "ftp://ftp.funet.fi/pub/unix/shells/tcsh/${name}.tar.gz";
+    sha256 = "1a4z9kwgx1iqqzvv64si34m60gj34p7lp6rrcrb59s7ka5wa476q";
   };
   
   buildInputs = [ncurses];
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index 749de01deff6..9197ff8314b4 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -10,6 +10,8 @@ let
 
   lib = import ../../lib;
 
+  disallowUnfree = builtins.getEnv "HYDRA_DISALLOW_UNFREE" == "1";
+
   stdenvGenerator = setupScript: rec {
 
     # The stdenv that we are producing.
@@ -30,7 +32,7 @@ let
           lib.filter lib.isDerivation initialPath;
       }
 
-      // {
+      // rec {
 
         meta = {
           description = "The default build environment for Unix packages in Nixpkgs";
@@ -39,33 +41,29 @@ let
         # Add a utility function to produce derivations that use this
         # stdenv and its shell.
         mkDerivation = attrs:
+          if disallowUnfree && attrs.meta.license or "" == "unfree" then
+            throw "package ‘${attrs.name}’ has an unfree license, refusing to evaluate"
+          else
           (derivation (
             (removeAttrs attrs ["meta" "passthru" "crossAttrs"])
             // (let
-                buildInputs = if attrs ? buildInputs then attrs.buildInputs
-                    else [];
-                buildNativeInputs = if attrs ? buildNativeInputs then
-                    attrs.buildNativeInputs else [];
-                propagatedBuildInputs = if attrs ? propagatedBuildInputs then
-                    attrs.propagatedBuildInputs else [];
-                propagatedBuildNativeInputs = if attrs ?
-                    propagatedBuildNativeInputs then
-                    attrs.propagatedBuildNativeInputs else [];
-                crossConfig = if (attrs ? crossConfig) then attrs.crossConfig else
-                   null;
+              buildInputs = attrs.buildInputs or [];
+              buildNativeInputs = attrs.buildNativeInputs or [];
+              propagatedBuildInputs = attrs.propagatedBuildInputs or [];
+              propagatedBuildNativeInputs = attrs.propagatedBuildNativeInputs or [];
+              crossConfig = attrs.crossConfig or null;
             in
             {
-              builder = if attrs ? realBuilder then attrs.realBuilder else shell;
-              args = if attrs ? args then attrs.args else
-                ["-e" (if attrs ? builder then attrs.builder else ./default-builder.sh)];
+              builder = attrs.realBuilder or shell;
+              args = attrs.args or ["-e" (attrs.builder or ./default-builder.sh)];
               stdenv = result;
               system = result.system;
 
-              # That build by the cross compiler
+              # Inputs built by the cross compiler.
               buildInputs = lib.optionals (crossConfig != null) buildInputs;
               propagatedBuildInputs = lib.optionals (crossConfig != null)
                   propagatedBuildInputs;
-              # That build by the usual native compiler
+              # Inputs built by the usual native compiler.
               buildNativeInputs = buildNativeInputs ++ lib.optionals
                 (crossConfig == null) buildInputs;
               propagatedBuildNativeInputs = propagatedBuildNativeInputs ++
@@ -77,13 +75,11 @@ let
           # passed to the builder and is not a dependency.  But since we
           # include it in the result, it *is* available to nix-env for
           # queries.
-          //
-          { meta = if attrs ? meta then attrs.meta else {}; }
+          // { meta = attrs.meta or {}; }
           # Pass through extra attributes that are not inputs, but
           # should be made available to Nix expressions using the
           # derivation (e.g., in assertions).
-          //
-          (if attrs ? passthru then attrs.passthru else {});
+          // (attrs.passthru or {});
 
         # Utility flags to test the type of platform.
         isDarwin = result.system == "i686-darwin"
@@ -96,6 +92,9 @@ let
                || result.system == "armv7l-linux"
                || result.system == "mips64el-linux";
         isGNU = result.system == "i686-gnu";      # GNU/Hurd
+        isGlibc = isGNU                           # useful for `stdenvNative'
+               || isLinux
+               || result.system == "x86_64-kfreebsd-gnu";
         isSunOS = result.system == "i686-solaris"
                || result.system == "x86_64-solaris";
         isCygwin = result.system == "i686-cygwin";
diff --git a/pkgs/tools/archivers/atool/default.nix b/pkgs/tools/archivers/atool/default.nix
new file mode 100644
index 000000000000..d376f75a552c
--- /dev/null
+++ b/pkgs/tools/archivers/atool/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, perl}:
+
+stdenv.mkDerivation rec {
+  name = "atool-0.39";
+  src = fetchurl {
+    url = http://savannah.nongnu.org/download/atool/atool-0.39.0.tar.gz;
+    sha256 = "aaf60095884abb872e25f8e919a8a63d0dabaeca46faeba87d12812d6efc703b";
+  };
+
+  buildInputs = [ perl ];
+
+  meta = {
+    homepage = http://www.nongnu.org/atool;
+    description = "Archive command line helper";
+    platforms = stdenv.lib.platforms.all;
+  };
+}
+
diff --git a/pkgs/tools/backup/btar/default.nix b/pkgs/tools/backup/btar/default.nix
index 919b814f60ad..0258edb8a194 100644
--- a/pkgs/tools/backup/btar/default.nix
+++ b/pkgs/tools/backup/btar/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, librsync }:
 
 stdenv.mkDerivation rec {
-  name = "btar-1.0.1";
+  name = "btar-1.1.1";
   src = fetchurl {
     url = "http://vicerveza.homeunix.net/~viric/soft/btar/${name}.tar.gz";
-    sha256 = "141mqrghqmms6zpbwn9bw98q4rkxfyly950jh8hajq9d2fk5qyn1";
+    sha256 = "0miklk4bqblpyzh1bni4x6lqn88fa8fjn15x1k1n8bxkx60nlymd";
   };
 
   buildInputs = [ librsync ];
diff --git a/pkgs/tools/backup/bup/default.nix b/pkgs/tools/backup/bup/default.nix
index e08ea1e03f4b..586fc514ba65 100644
--- a/pkgs/tools/backup/bup/default.nix
+++ b/pkgs/tools/backup/bup/default.nix
@@ -1,23 +1,47 @@
-{ stdenv, fetchurl, python, unzip, perl }:
+{ stdenv, fetchgit, python, pyxattr, pylibacl, setuptools, fuse, git, perl, pandoc, makeWrapper }:
+
+with stdenv.lib;
 
 stdenv.mkDerivation {
-  name = "bup-0.24b";
-  src = fetchurl {
-    url = "https://github.com/apenwarr/bup/zipball/bup-0.24b";
-    sha256 = "0l50i8mrg43ahd8fn1n6pwa0xslxr07pvkh0r4qyywv55172ip8v";
-    name = "bup-0.24b.zip";
+  name = "bup-0.25git20120722";
+
+  src = fetchgit {
+    url = "https://github.com/apenwarr/bup.git";
+    sha256 = "3ad232d7f23071ed34f920bd4c3137583f1adffbe23c022896289bc0a03fe7aa";
+    rev = "02bd2b566ea5eec2fd656e0ae572b4c7b6b9550a";
   };
-  buildInputs = [ unzip python perl ];
+
+  buildNativeInputs = [ pandoc perl makeWrapper ];
+
+  buildInputs = [ python git ];
+
+  postInstall = optionalString (elem stdenv.system platforms.linux) ''
+    wrapProgram $out/bin/bup --prefix PYTHONPATH : \
+      ${stdenv.lib.concatStringsSep ":"
+          (map (path: "$(toPythonPath ${path})") [ pyxattr pylibacl setuptools fuse ])}
+  '';
+
   patchPhase = ''
     for f in cmd/* lib/tornado/* lib/tornado/test/* t/* wvtest.py main.py; do
       substituteInPlace $f --replace "/usr/bin/env python" "${python}/bin/python"
     done
     substituteInPlace Makefile --replace "./format-subst.pl" "perl ./format-subst.pl"
-    substituteInPlace lib/bup/csetup.py --replace "'bupsplit.c'])" "'bupsplit.c'], library_dirs=['${python}/lib'])"
+    substituteInPlace lib/bup/csetup.py \
+      --replace "'bupsplit.c'])" "'bupsplit.c'], library_dirs=['${python}/lib'])"
   '';
-  makeFlags = "MANDIR=$(out)/man DOCDIR=$(out)/share/doc/bup BINDIR=$(out)/bin LIBDIR=$(out)/lib/bup";
+
+  makeFlags = [
+    "MANDIR=$(out)/share/man"
+    "DOCDIR=$(out)/share/doc/bup"
+    "BINDIR=$(out)/bin"
+    "LIBDIR=$(out)/lib/bup"
+  ];
+
   meta = {
-    description = "Highly efficient file backup system based on the git packfile format. Capable of doing *fast* incremental backups of virtual machine images.";
+    description = ''
+      Highly efficient file backup system based on the git packfile format.
+      Capable of doing *fast* incremental backups of virtual machine images.
+    '';
     homepage = "https://github.com/apenwarr/bup";
   };
 }
diff --git a/pkgs/tools/backup/rdiff-backup/default.nix b/pkgs/tools/backup/rdiff-backup/default.nix
index 2460573310c6..f108e6a50634 100644
--- a/pkgs/tools/backup/rdiff-backup/default.nix
+++ b/pkgs/tools/backup/rdiff-backup/default.nix
@@ -1,18 +1,18 @@
 {stdenv, fetchurl, python, librsync, gnused }:
 
 stdenv.mkDerivation {
-  name = "rdiff-backup-1.1.14";
+  name = "rdiff-backup-1.2.8";
 
   src = fetchurl {
-    url = http://savannah.nongnu.org/download/rdiff-backup/rdiff-backup-1.1.14.tar.gz;
-    sha256 = "0sh2kz90z47yfa9786dyn3q9ba1xcmjvd65rykvm7mg5apnrg27h";
+    url = http://savannah.nongnu.org/download/rdiff-backup/rdiff-backup-1.2.8.tar.gz;
+    sha256 = "1nwmmh816f96h0ff1jxk95ad38ilbhbdl5dgibx1d4cl81dsi48d";
   };
 
   phases = "unpackPhase installPhase";
   installPhase = ''
     python ./setup.py install --prefix=$out
     sed -i $out/bin/rdiff-backup -e \
-      "/import sys/ asys.path += [ \"$out/lib/python2.4/site-packages/\" ]"
+      "/import sys/ asys.path += [ \"$out/lib/python2.7/site-packages/\" ]"
   '';
 
   buildInputs = [python librsync gnused ];
diff --git a/pkgs/tools/filesystems/ciopfs/default.nix b/pkgs/tools/filesystems/ciopfs/default.nix
new file mode 100644
index 000000000000..f944e591a126
--- /dev/null
+++ b/pkgs/tools/filesystems/ciopfs/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, fuse, glib, attr }:
+
+stdenv.mkDerivation rec {
+  name = "ciopfs-0.4";
+
+  src = fetchurl {
+    url = "http://www.brain-dump.org/projects/ciopfs/${name}.tar.gz";
+    sha256 = "0sr9i9b3qfwbfvzvk00yrrg3x2xqk1njadbldkvn7hwwa4z5bm9l";
+  };
+
+  buildInputs = [ pkgconfig fuse glib attr ];
+
+  makeFlags = "DESTDIR=$(out) PREFIX=";
+
+  meta = {
+    homepage = http://www.brain-dump.org/projects/ciopfs/;
+    description = "A case-insensitive filesystem layered on top of any other filesystem";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/tools/filesystems/davfs2/default.nix b/pkgs/tools/filesystems/davfs2/default.nix
index 8cc212deee47..ce4421f9ca7f 100644
--- a/pkgs/tools/filesystems/davfs2/default.nix
+++ b/pkgs/tools/filesystems/davfs2/default.nix
@@ -1,16 +1,21 @@
-{ stdenv, fetchurl, neon, zlib }:
+{ stdenv, fetchurl, neon, zlib, noDavsUser ? false}:
 
 stdenv.mkDerivation rec {
-  name = "davfs2-1.4.5";
+  name = "davfs2-1.4.7";
 
   src = fetchurl {
     url = "mirror://savannah/davfs2/${name}.tar.gz";
-    sha256 = "1pkl2braggp2qg4c68dwfv399l9jz7cvi7gkm4xbj6mgvl0cxw18";
+    sha256 = "0i7hrwlfzisb4l2mza1kjj9q9xxixggjplsjm339zl7828mfxh2h";
   };
 
+  prePatch = stdenv.lib.optional noDavsUser ''
+    echo "dav_user root" >> etc/davfs2.conf
+    echo "dav_group root" >> etc/davfs2.conf
+  '';
+
   buildInputs = [ neon zlib ];
-  
-  patches = [ ./davfs2-install.patch ./isdir.patch ]; 
+
+  patches = [ ./davfs2-install.patch ./isdir.patch ];
 
   meta = {
     longDescription = "Web Distributed Authoring and Versioning (WebDAV), an extension to the HTTP-protocol, allows authoring of resources on a remote web server. davfs2 provides the ability to access such resources like a typical filesystem, allowing for use by standard applications with no built-in support for WebDAV.";
diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix
index bd697d761e01..4f4d235008bf 100644
--- a/pkgs/tools/filesystems/e2fsprogs/default.nix
+++ b/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libuuid }:
 
 stdenv.mkDerivation rec {
-  name = "e2fsprogs-1.42.4";
+  name = "e2fsprogs-1.42.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/e2fsprogs/${name}.tar.gz";
-    sha256 = "0plhvcjynyy5ifih5jr8p2fjymqyl8fj6vj74cmqjyrahi3z6iir";
+    sha256 = "1kki3367961377wz2n6kva8q0wjjk6qhxmhp2dp3ar3lxgcamvbn";
   };
 
   buildInputs = [ pkgconfig libuuid ];
@@ -20,9 +20,9 @@ stdenv.mkDerivation rec {
   configureFlags = "--enable-elf-shlibs --disable-libuuid --disable-libblkid --disable-uuidd --disable-fsck";
 
   preInstall = "installFlagsArray=('LN=ln -s')";
-  
+
   postInstall = "make install-libs";
-  
+
   meta = {
     homepage = http://e2fsprogs.sourceforge.net/;
     description = "Tools for creating and checking ext2/ext3/ext4 filesystems";
diff --git a/pkgs/tools/filesystems/grive/default.nix b/pkgs/tools/filesystems/grive/default.nix
index a2a8bc572c0d..67c6d2f85819 100644
--- a/pkgs/tools/filesystems/grive/default.nix
+++ b/pkgs/tools/filesystems/grive/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchgit, cmake, libgcrypt, json_c, curl, expat, boost, binutils }:
 
 stdenv.mkDerivation rec {
-  name = "grive-0.2.0";
+  name = "grive-0.3.0";
 
   src = fetchgit {
     url = "https://github.com/Grive/grive.git";
-    rev = "34cb3705288aa83283b370118776ac89393ae5fc";
-    sha256 = "a30ea886bdc159e1004d1207fcac30c277f1177a3b846bdd82326eebff7a0bbe";
+    rev = "51e42914f3666ee6e0bc16a4c78f60b117265c24";
+    sha256 = "f2b978cc93a2d16262c7b78c62019b2a58044eaef4ca95feaa74dfd4dfcbfa36";
   };
 
   buildInputs = [cmake libgcrypt json_c curl expat stdenv binutils boost];
diff --git a/pkgs/tools/filesystems/mtdutils/default.nix b/pkgs/tools/filesystems/mtdutils/default.nix
index 9e7e3a16e01c..4cb09d53adcf 100644
--- a/pkgs/tools/filesystems/mtdutils/default.nix
+++ b/pkgs/tools/filesystems/mtdutils/default.nix
@@ -1,22 +1,19 @@
 {stdenv, fetchgit, libuuid, lzo, zlib, acl}:
 
 let
-  version = "1.3.1";
+  version = "1.5.0";
 in
 stdenv.mkDerivation {
   name = "mtd-utils-${version}";
 
   src = fetchgit {
     url = git://git.infradead.org/mtd-utils.git;
-    rev = "v" + version;
-    sha256 = "0pjjs9x03bgvphqwlw99c2cpkpjsx0vkqi79vjl7fcb9pyrghgd1";
+    rev = "refs/tags/v" + version;
+    sha256 = "cc645c0ec28083431b11f3b38f9f7759378d89e11047a883529f703e1b6c1cce";
   };
 
   patchPhase = ''
     sed -i -e s,/usr/local,, -e s,/usr,$out, common.mk
-
-    # gcc 4.5.1 issues a warning where 4.4.3 did not
-    sed -i -e s/-Werror// ubi-utils/old-utils/Makefile
   '';
 
   buildInputs = [ libuuid lzo zlib acl ];
diff --git a/pkgs/tools/filesystems/ntfs-3g/default.nix b/pkgs/tools/filesystems/ntfs-3g/default.nix
index 2a8bef6c6edd..cedb8df39d14 100644
--- a/pkgs/tools/filesystems/ntfs-3g/default.nix
+++ b/pkgs/tools/filesystems/ntfs-3g/default.nix
@@ -3,7 +3,7 @@
 
 stdenv.mkDerivation rec {
   pname = "ntfs-3g_ntfsprogs";
-  version = "2011.4.12";
+  version = "2012.1.15";
   name = "${pname}-${version}";
 
   buildInputs = [libuuid] ++ stdenv.lib.optionals crypto [gnutls libgcrypt];
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://tuxera.com/opensource/${name}.tgz";
-    sha256 = "01gfn94f4fdrl1rjhhxjvjbarr1mipdi4pmhhwirp0gy1dzp935a";
+    sha256 = "09gvfgvqm4dswzxmwvg3r23bv39cp8y8b6qs2jcwmrqd032i25kg";
   };
 
   patchPhase = ''
diff --git a/pkgs/tools/graphics/asymptote/default.nix b/pkgs/tools/graphics/asymptote/default.nix
index bdde709c2c22..e9baac43cbdd 100644
--- a/pkgs/tools/graphics/asymptote/default.nix
+++ b/pkgs/tools/graphics/asymptote/default.nix
@@ -3,11 +3,11 @@ a @ {
   boehmgc,mesa,ncurses,readline,gsl,libsigsegv,
   python,zlib, perl, texLive, texinfo, lzma,
 
-  noDepEntry, fullDepEntry, fetchUrlFromSrcInfo, 
+  noDepEntry, fullDepEntry, fetchUrlFromSrcInfo,
   lib,
 
   ...}:
-let 
+let
   s = import ./src-for-default.nix;
   buildInputs = with a; [
     freeglut ghostscriptX imagemagick fftw boehmgc
@@ -54,8 +54,9 @@ rec {
     description = "A tool for programming graphics intended to replace Metapost";
     maintainers = [
       a.lib.maintainers.raskin
+      a.lib.maintainers.simons
     ];
-    platforms = with a.lib.platforms; 
+    platforms = with a.lib.platforms;
       linux;
   };
 }
diff --git a/pkgs/tools/graphics/asymptote/src-for-default.nix b/pkgs/tools/graphics/asymptote/src-for-default.nix
index e9d822904afc..ddd0860ccd19 100644
--- a/pkgs/tools/graphics/asymptote/src-for-default.nix
+++ b/pkgs/tools/graphics/asymptote/src-for-default.nix
@@ -1,7 +1,7 @@
 rec {
-   version="2.16";
-   name="asymptote-2.16";
-   hash="1yj8dx320s1ypqbpb2116y4kkc8lwg5q4d49n992ds3g59w98djj";
+   version="2.18";
+   name="asymptote-2.18";
+   hash="0i7jm12lzj983gvpa95a85wxb4v4ksk3cxb0cq359x2kka0b6g5m";
    url="http://downloads.sourceforge.net/project/asymptote/${version}/asymptote-${version}.src.tgz";
-   advertisedUrl="http://downloads.sourceforge.net/project/asymptote/2.16/asymptote-2.16.src.tgz";
+   advertisedUrl="http://downloads.sourceforge.net/project/asymptote/2.18/asymptote-2.18.src.tgz";
 }
diff --git a/pkgs/tools/misc/desktop-file-utils/default.nix b/pkgs/tools/misc/desktop-file-utils/default.nix
index 4266f4ab768d..285160e50d61 100644
--- a/pkgs/tools/misc/desktop-file-utils/default.nix
+++ b/pkgs/tools/misc/desktop-file-utils/default.nix
@@ -13,5 +13,6 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://www.freedesktop.org/wiki/Software/desktop-file-utils;
     description = "Command line utilities for working with .desktop files";
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/gnokii/src-for-default.nix b/pkgs/tools/misc/gnokii/src-for-default.nix
index 360f98de7584..3ea6f1a3b667 100644
--- a/pkgs/tools/misc/gnokii/src-for-default.nix
+++ b/pkgs/tools/misc/gnokii/src-for-default.nix
@@ -2,7 +2,7 @@ rec {
    version="0.6.30";
    name="gnokii-0.6.30";
    hash="0k14dymifk7dx3z58cqrc4mgxrm17s4jk12chwdfjhjarz390x8p";
-   url="http://www.gnokii.org/download/gnokii/gnokii-${version}.tar.gz";
+   url="http://www.gnokii.org/download/gnokii/0.6.x/gnokii-${version}.tar.gz";
    advertisedUrl="http://www.gnokii.org/download/gnokii/gnokii-0.6.30.tar.gz";
   
   
diff --git a/pkgs/tools/misc/grub/1.9x.nix b/pkgs/tools/misc/grub/2.0x.nix
index 49cc4884e636..4186a4405353 100644
--- a/pkgs/tools/misc/grub/1.9x.nix
+++ b/pkgs/tools/misc/grub/2.0x.nix
@@ -1,13 +1,17 @@
 { fetchurl, stdenv, flex, bison, gettext, ncurses, libusb, freetype, qemu
-, EFIsupport ? false }:
+, devicemapper, EFIsupport ? false }:
 
 let
-    prefix = "grub${if EFIsupport then "-efi" else ""}";
-    version = "1.99";
-    unifont_bdf = fetchurl {
-      url = "http://unifoundry.com/unifont-5.1.20080820.bdf.gz";
-      sha256 = "0s0qfff6n6282q28nwwblp5x295zd6n71kl43xj40vgvdqxv0fxx";
-    };
+
+  prefix = "grub${if EFIsupport then "-efi" else ""}";
+  
+  version = "2.00";
+  
+  unifont_bdf = fetchurl {
+    url = "http://unifoundry.com/unifont-5.1.20080820.bdf.gz";
+    sha256 = "0s0qfff6n6282q28nwwblp5x295zd6n71kl43xj40vgvdqxv0fxx";
+  };
+  
 in
 
 stdenv.mkDerivation rec {
@@ -15,11 +19,11 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnu/grub/grub-${version}.tar.xz";
-    sha256 = "06q2a7bg1mbsms604a89fkdnwrc1jg9hr2mmfdmg3il39j6i827k";
+    sha256 = "0n64hpmsccvicagvr0c6v0kgp2yw0kgnd3jvsyd26cnwgs7c6kkq";
   };
 
   buildNativeInputs = [ flex bison ];
-  buildInputs = [ ncurses libusb freetype gettext ]
+  buildInputs = [ ncurses libusb freetype gettext devicemapper ]
     ++ stdenv.lib.optional doCheck qemu;
 
   preConfigure =
diff --git a/pkgs/tools/misc/lockfile-progs/default.nix b/pkgs/tools/misc/lockfile-progs/default.nix
new file mode 100644
index 000000000000..41fca2121581
--- /dev/null
+++ b/pkgs/tools/misc/lockfile-progs/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, liblockfile }:
+
+stdenv.mkDerivation rec {
+  _name   = "lockfile-progs";
+  version = "0.1.16";
+  name    = "${_name}-${version}";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/l/${_name}/${_name}_${version}.tar.gz";
+    sha256 = "0sca19mg0lk68ms6idy4vfp8dyjpcbq9f143v9qzjyk86bb34lgr";
+  };
+
+  buildInputs = [ liblockfile ];
+
+  installPhase = ''
+    mkdir -p $out/bin $out/man/man1
+    install -s bin/* $out/bin
+    install man/*.1 $out/man/man1
+  '';
+
+  meta = {
+    description = "Programs for locking and unlocking files and mailboxes";
+    homepage = http://packages.debian.org/sid/lockfile-progs;
+    license = "GPLv2";
+
+    maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/misc/mmv/default.nix b/pkgs/tools/misc/mmv/default.nix
new file mode 100644
index 000000000000..e6e7eb505bfc
--- /dev/null
+++ b/pkgs/tools/misc/mmv/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "mmv-${version}";
+  version = "1.01b";
+
+  src = fetchurl {
+    url = "http://ftp.debian.org/debian/pool/main/m/mmv/mmv_${version}.orig.tar.gz";
+    sha256 = "0399c027ea1e51fd607266c1e33573866d4db89f64a74be8b4a1d2d1ff1fdeef";
+  };
+
+  patches = [
+    # Use Debian patched version, as upstream is no longer maintained and it
+    # contains a _lot_ of fixes.
+    (fetchurl {
+      url = "http://ftp.debian.org/debian/pool/main/m/mmv/mmv_${version}-15.diff.gz";
+      sha256 = "9ad3e3d47510f816b4a18bae04ea75913588eec92248182f85dd09bc5ad2df13";
+    })
+  ];
+
+  postPatch = ''
+    sed -i \
+      -e 's/^\s*LDFLAGS\s*=\s*-s\s*-N/LDFLAGS = -s/' \
+      -e "s|/usr/bin|$out/bin|" \
+      -e "s|/usr/man|$out/share/man|" \
+      Makefile
+  '';
+
+  preInstall = ''
+    mkdir -p "$out/bin" "$out/share/man/man1"
+  '';
+
+  postInstall = ''
+    for variant in mcp mad mln
+    do
+      ln -s mmv "$out/bin/$variant"
+      ln -s mmv.1 "$out/share/man/man1/$variant.1"
+    done
+  '';
+
+  meta = {
+    homepage = "http://linux.maruhn.com/sec/mmv.html";
+    description = "Utility for wildcard renaming, copying, etc";
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/pkgs/tools/misc/ncdu/default.nix b/pkgs/tools/misc/ncdu/default.nix
new file mode 100644
index 000000000000..944b6ea77e1e
--- /dev/null
+++ b/pkgs/tools/misc/ncdu/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  name = "ncdu-${version}";
+  version = "1.8";
+
+  src = fetchurl {
+    url = "http://dev.yorhel.nl/download/${name}.tar.gz";
+    sha256 = "42aaf0418c05e725b39b220166a9c604a9c54c0fbf7692c9c119b36d0ed5d099";
+  };
+
+  buildInputs = [ ncurses ];
+
+  meta = {
+    description = "An ncurses disk usage analyzer.";
+    homepage = http://dev.yorhel.nl/ncdu;
+    license = stdenv.lib.licenses.mit;
+  };
+}
diff --git a/pkgs/tools/misc/picocom/default.nix b/pkgs/tools/misc/picocom/default.nix
new file mode 100644
index 000000000000..bb08091ad57a
--- /dev/null
+++ b/pkgs/tools/misc/picocom/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "picocom-1.7";
+
+  src = fetchurl {
+    url = "http://picocom.googlecode.com/files/${name}.tar.gz";
+    sha256 = "17hjq713naq02xar711aw24qqd52p591mj1h5n97cni1ga7irwyh";
+  };
+
+  installPhase = ''
+    ensureDir $out/bin $out/share/man/man8
+    cp picocom $out/bin
+    cp picocom.8 $out/share/man/man8
+  '';
+
+  meta = {
+    description = "Minimal dumb-terminal emulation program";
+    homepage = http://code.google.com/p/picocom/;
+    license = "GPLv2+";
+    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+  };
+}
diff --git a/pkgs/tools/misc/plowshare/default.nix b/pkgs/tools/misc/plowshare/default.nix
new file mode 100644
index 000000000000..5e684cfa377f
--- /dev/null
+++ b/pkgs/tools/misc/plowshare/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, makeWrapper, curl }:
+
+let
+
+  v  = "20120807";
+
+in stdenv.mkDerivation {
+
+  name = "plowshare-git${v}";
+
+  src = fetchurl {
+    url = "http://plowshare.googlecode.com/files/plowshare-snapshot-git${v}.tar.gz";
+    sha256 = "0clryfssaa4rjvsy760p51ppq1275lwvhm9jh3g4mi973xv4n8si";
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  phases = [ "unpackPhase" "installPhase" "fixupPhase" ];
+
+  installPhase = ''
+    make PREFIX="$out" install
+
+    for fn in plow{del,down,list,up}; do
+      wrapProgram "$out/bin/$fn" --prefix PATH : "${curl}/bin"
+    done
+  '';
+
+  meta = {
+    description = ''
+      A command-line download/upload tool for popular file sharing websites
+    '';
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = [ stdenv.lib.maintainers.aforemny ];
+  };
+}
diff --git a/pkgs/tools/misc/pv/default.nix b/pkgs/tools/misc/pv/default.nix
index 8150e7118dc7..444408fec41d 100644
--- a/pkgs/tools/misc/pv/default.nix
+++ b/pkgs/tools/misc/pv/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl } :
 
 stdenv.mkDerivation rec {
-  name = "pv-1.3.1";
+  name = "pv-1.3.4";
 
   src = fetchurl {
     url = "http://www.ivarch.com/programs/sources/${name}.tar.bz2";
-    sha256 = "1fwvdj663g3jf3rcxi788pv1l7s86sxna78xi2nl5qimng05y8jl";
+    sha256 = "114b730pghgg4gv9d798817n3am88p2b0xgdavch1vhklzh33c16";
   };
 
   meta = {
diff --git a/pkgs/tools/misc/xclip/default.nix b/pkgs/tools/misc/xclip/default.nix
index ae9fed671173..1014f11453b9 100644
--- a/pkgs/tools/misc/xclip/default.nix
+++ b/pkgs/tools/misc/xclip/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, x11, libXmu }:
 
-stdenv.mkDerivation {
-  name = "xclip-0.11";
+stdenv.mkDerivation rec {
+  name = "xclip-0.12";
 
   src = fetchurl {
-    url = "mirror://sourceforge/xclip/xclip-0.11.tar.gz";
-    sha256 = "0ipwxkfqz66fz6jlln1v46sd2kr6bkqzq6j5hkzn6pb3grmzsacg";
+    url = "mirror://sourceforge/xclip/${name}.tar.gz";
+    sha256 = "0ibcf46rldnv0r424qcnai1fa5iq3lm5q5rdd7snsi5sb78gmixp";
   };
 
   buildInputs = [ x11 libXmu ];
diff --git a/pkgs/tools/misc/xvfb-run/default.nix b/pkgs/tools/misc/xvfb-run/default.nix
new file mode 100644
index 000000000000..162fb73b3f00
--- /dev/null
+++ b/pkgs/tools/misc/xvfb-run/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, makeWrapper, xkbcomp, xorgserver, getopt, xkeyboard_config, xauth, utillinux, which, fontsConf}:
+let
+  xvfb_run = fetchurl {
+    url = https://projects.archlinux.org/svntogit/packages.git/plain/trunk/xvfb-run?h=packages/xorg-server;
+    sha256 = "1f9mrhqy0l72i3674n98bqlq9a10h0rh9qfjiwvivz3hjhq5c0gz";
+  };
+in
+stdenv.mkDerivation {
+  name = "xvfb-run";
+  buildInputs = [makeWrapper];
+  buildCommand = ''
+    mkdir -p $out/bin
+    cp ${xvfb_run} $out/bin/xvfb-run
+    sed -i 's|XVFBARGS="|XVFBARGS="-xkbdir ${xkeyboard_config}/etc/X11/xkb |' $out/bin/xvfb-run
+
+    chmod a+x $out/bin/xvfb-run
+    wrapProgram $out/bin/xvfb-run \
+      --set XKB_BINDIR "${xkbcomp}/bin" \
+      --set FONTCONFIG_FILE "${fontsConf}" \
+      --prefix PATH : ${getopt}/bin:${xorgserver}/bin:${xauth}/bin:${which}/bin:${utillinux}/bin
+  '';
+}
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 0422383ed3bc..a810001d0ccf 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchgit, python}:
 
 let pkgname = "youtube-dl";
-    pkgver  = "2011.12.08";
+    pkgver  = "2012.02.27";
     
 in
 stdenv.mkDerivation {
@@ -9,8 +9,8 @@ stdenv.mkDerivation {
 
   src = fetchgit {
     url = "git://github.com/rg3/${pkgname}";
-    rev = "661a807c65a154eccdddb875b45e4782ca86132c";
-    sha256 = "32fd193b867b122400e9d5d32f6dfaf15704f837a9dc2ff809e1ce06712857ba";
+    rev = "refs/tags/${pkgver}";
+    sha256 = "17270ba14f42e8f2813bc6a0eb3674e51592eede69612e156e7d99a96fd147ce";
   };
 
   buildInputs = [python];
diff --git a/pkgs/tools/networking/aircrack-ng/default.nix b/pkgs/tools/networking/aircrack-ng/default.nix
index 394022c2d08e..9ecaf183f1f6 100644
--- a/pkgs/tools/networking/aircrack-ng/default.nix
+++ b/pkgs/tools/networking/aircrack-ng/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchsvn, libpcap, openssl, zlib, wirelesstools}:
 
 let
-  rev = "1859";
+  rev = "2178";
 in
 stdenv.mkDerivation rec {
   name = "aircrack-ng-1.1-${rev}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   src = fetchsvn {
     url = "http://trac.aircrack-ng.org/svn/trunk";
     inherit rev;
-    sha256 = "6ca98321ef3f14af9c78b2fe25091c4e79e3c28679f240b80f8aeda71b84ab4a";
+    sha256 = "0rwj2nk4nyy0l9dg6rpg2h5gpvcygs5irj4i6fdcsr8xf0blq7yw";
   };
 
   buildInputs = [libpcap openssl zlib];
diff --git a/pkgs/tools/networking/autossh/default.nix b/pkgs/tools/networking/autossh/default.nix
index 2cf17f296031..0c32b1c12400 100644
--- a/pkgs/tools/networking/autossh/default.nix
+++ b/pkgs/tools/networking/autossh/default.nix
@@ -1,23 +1,28 @@
 {stdenv, fetchurl, openssh}:
 
 stdenv.mkDerivation {
-	name="autossh-1.4b";
-	src = fetchurl {
-		url = "http://www.harding.motd.ca/autossh/autossh-1.4b.tgz";
-		md5 = "8f9aa006f6f69e912d3c2f504622d6f7";
-	};
-	buildInputs = [ openssh ];
-	installPhase = ''
-install -D -m755 autossh      $out/bin/autossh                          || return 1
-install -D -m644 CHANGES      $out/share/doc/autossh/CHANGES            || return 1
-install -D -m644 README       $out/share/doc/autossh/README             || return 1
-install -D -m644 autossh.host $out/share/autossh/examples/autossh.host  || return 1
-install -D -m644 rscreen      $out/share/autossh/examples/rscreen       || return 1
-install -D -m644 autossh.1    $out/man/man1/autossh.1                   || return 1
-	'';
-	meta = {
-		homepage = http://www.harding.motd.ca/autossh/;
-		description = "Automatically restart SSH sessions and tunnels";
-	};
+  name = "autossh-1.4b";
+  
+  src = fetchurl {
+    url = "http://www.harding.motd.ca/autossh/autossh-1.4b.tgz";
+    md5 = "8f9aa006f6f69e912d3c2f504622d6f7";
+  };
+  
+  buildInputs = [ openssh ];
+  
+  installPhase =
+    ''
+      install -D -m755 autossh      $out/bin/autossh                          || return 1
+      install -D -m644 CHANGES      $out/share/doc/autossh/CHANGES            || return 1
+      install -D -m644 README       $out/share/doc/autossh/README             || return 1
+      install -D -m644 autossh.host $out/share/autossh/examples/autossh.host  || return 1
+      install -D -m644 rscreen      $out/share/autossh/examples/rscreen       || return 1
+      install -D -m644 autossh.1    $out/man/man1/autossh.1                   || return 1
+    '';
+    
+  meta = {
+    homepage = http://www.harding.motd.ca/autossh/;
+    description = "Automatically restart SSH sessions and tunnels";
+    platforms = stdenv.lib.platforms.linux;
+  };
 }
-
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index 4dcab442119d..ad08065e2eb6 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -10,11 +10,11 @@ assert sslSupport -> openssl != null;
 assert scpSupport -> libssh2 != null;
 
 stdenv.mkDerivation rec {
-  name = "curl-7.26.0";
+  name = "curl-7.27.0";
 
   src = fetchurl {
     url = "http://curl.haxx.se/download/${name}.tar.bz2";
-    sha256 = "0snj41knvy4xbfirr88l9gq5zjzz0mwlmq0mxbfgqszb2qpjdvgw";
+    sha256 = "164k2vw8v4ppsgqgk4gwhl26h70c8x3rgnl4c2s711626lhmi9db";
   };
 
   # Zlib and OpenSSL must be propagated because `libcurl.la' contains
diff --git a/pkgs/tools/networking/dhcp/default.nix b/pkgs/tools/networking/dhcp/default.nix
index 7fa1fce66a5e..2dac54577b8b 100644
--- a/pkgs/tools/networking/dhcp/default.nix
+++ b/pkgs/tools/networking/dhcp/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, nettools, iputils, iproute, makeWrapper, coreutils, gnused }:
 
 stdenv.mkDerivation rec {
-  name = "dhcp-4.1.2-P1";
+  name = "dhcp-4.1-ESV-R6";
   
   src = fetchurl {
-    url = "http://ftp.isc.org/isc/dhcp/${name}.tar.gz";
-    sha256 = "1kcdsylyx0ai0wlmc6rc6b1qi2fsndqh1pvgvddd3i4hmbhi6vmz";
+    url = http://ftp.isc.org/isc/dhcp/4.1-ESV-R6/dhcp-4.1-ESV-R6.tar.gz;
+    sha256 = "17md1vml07szl9dx4875gfg4sgnb3z73glpbq1si7p82mfhnddny";
   };
 
   patches =
diff --git a/pkgs/tools/networking/miniupnpc/default.nix b/pkgs/tools/networking/miniupnpc/default.nix
index 34ec8eed90ea..3cd35073be6e 100644
--- a/pkgs/tools/networking/miniupnpc/default.nix
+++ b/pkgs/tools/networking/miniupnpc/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "miniupnpc-1.6";
+  name = "miniupnpc-1.7";
 
   src = fetchurl {
     url = "http://miniupnp.free.fr/files/download.php?file=${name}.tar.gz";
-    sha256 = "151rh46axl44y7bbflb43pnj52gvlfnkxfgrn2jvai5gwrbbgmmv";
+    sha256 = "0dv3mz4yikngmlnrnmh747mlgbbpijryw03wcs8g4jwvprb29p8n";
   };
 
   installFlags = "PREFIX=$(out) INSTALLPREFIX=$(out)";
diff --git a/pkgs/tools/networking/modemmanager/default.nix b/pkgs/tools/networking/modemmanager/default.nix
index c9c975d557c6..d3198cee32c7 100644
--- a/pkgs/tools/networking/modemmanager/default.nix
+++ b/pkgs/tools/networking/modemmanager/default.nix
@@ -5,8 +5,8 @@ stdenv.mkDerivation rec {
 
   src = fetchurl_gnome {
     project = "ModemManager";
-    major = "0"; minor = "5"; extension = "xz";
-    sha256 = "0zvwrni4l21d856nq28khigrhwgrq5cc7nh45zidwjj8q7bsxiz7";
+    major = "0"; minor = "5"; patchlevel = "4.0"; extension = "xz";
+    sha256 = "1fdf5d5cc494825afe9f551248e00a2d91e220e88435b47f109ca2a707a40f1f";
   };
 
   buildNativeInputs = [ intltool pkgconfig ];
diff --git a/pkgs/tools/networking/mosh/default.nix b/pkgs/tools/networking/mosh/default.nix
index 60a9e5cab871..e5d9a656494e 100644
--- a/pkgs/tools/networking/mosh/default.nix
+++ b/pkgs/tools/networking/mosh/default.nix
@@ -2,11 +2,11 @@
 , makeWrapper, perl }:
 
 stdenv.mkDerivation rec {
-  name = "mosh-1.1.3";
+  name = "mosh-1.2.2";
 
   src = fetchurl {
     url = "https://github.com/downloads/keithw/mosh/${name}.tar.gz";
-    sha256 = "1vkf7h8mcmfn9dgcwrww05mdijrl7321xv9wlhf7j99nwmklc8sk";
+    sha256 = "1763s6f398hmdgy73brpknwahnys28zk3pm37n66sr8iyz2cq8xp";
   };
 
   buildInputs = [ boost protobuf ncurses zlib pkgconfig IOTty makeWrapper perl ];
diff --git a/pkgs/tools/networking/nbd/default.nix b/pkgs/tools/networking/nbd/default.nix
index 97ef0080de21..9e2d14c64ff5 100644
--- a/pkgs/tools/networking/nbd/default.nix
+++ b/pkgs/tools/networking/nbd/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, pkgconfig, glib }:
 
 let
-  name = "nbd-3.1.1";
+  name = "nbd-3.2";
 in
 stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
     url = "mirror://sourceforge/nbd/${name}.tar.bz2";
-    sha256 = "5cd150b874f966aacf4a9dfe1e9de9b2139b295241ce89bae9f70f9aa844220b";
+    sha256 = "e297c1883133f04a55d8e9527a2e4344e577a54046cf81694ffabe13f73793db";
   };
 
   buildInputs = [ pkgconfig glib ] ++ stdenv.lib.optional (stdenv ? glibc) stdenv.glibc.kernelHeaders;
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
     cp README "$out/share/doc/${name}/README"
   '';
 
-  # The test suite doesn't succeed on Hydra.
+  # The test suite doesn't succeed in chroot builds.
   doCheck = false;
 
   # Glib calls `clock_gettime', which is in librt. Linking that library
diff --git a/pkgs/tools/networking/netrw/default.nix b/pkgs/tools/networking/netrw/default.nix
new file mode 100644
index 000000000000..23ff6ddba55a
--- /dev/null
+++ b/pkgs/tools/networking/netrw/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl
+, checksumType ? "built-in"
+, libmhash ? null
+, openssl ? null
+}:
+
+assert checksumType == "mhash" -> libmhash != null;
+assert checksumType == "openssl" -> openssl != null;
+
+stdenv.mkDerivation rec {
+  name = "netrw-${version}";
+  version = "1.3.2";
+
+  configureFlags = [
+    "--with-checksum=${checksumType}"
+  ];
+
+  buildInputs = stdenv.lib.optional (checksumType == "mhash") libmhash
+             ++ stdenv.lib.optional (checksumType == "openssl") openssl;
+
+  src = fetchurl {
+    urls = [
+      "http://mamuti.net/files/netrw/netrw-${version}.tar.bz2"
+      "http://www.sourcefiles.org/Networking/FTP/Other/netrw-${version}.tar.bz2"
+    ];
+    sha256 = "1gnl80i5zkyj2lpnb4g0q0r5npba1x6cnafl2jb3i3pzlfz1bndr";
+  };
+
+  meta = {
+    description = "A simple tool for transporting data over the network.";
+    license = stdenv.lib.licenses.gpl2;
+    homepage = "http://mamuti.net/netrw/index.en.html";
+  };
+}
diff --git a/pkgs/tools/networking/network-manager-applet/default.nix b/pkgs/tools/networking/network-manager-applet/default.nix
index d22d5f50988f..1a9b94857495 100644
--- a/pkgs/tools/networking/network-manager-applet/default.nix
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, intltool, pkgconfig, gtk, glib, libglade
-, networkmanager, GConf, libnotify, libgnome_keyring, dbus_glib
-, polkit, isocodes }:
+{ stdenv, fetchurl, intltool, pkgconfig, gtk, libglade, networkmanager, GConf
+, libnotify, libgnome_keyring, dbus_glib, polkit, isocodes
+, mobile_broadband_provider_info }:
 
 let
   pn = "network-manager-applet";
   major = "0.9";
-  version = "${major}.2.0";
+  version = "${major}.4.1";
 in
 
 stdenv.mkDerivation rec {
@@ -13,19 +13,25 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pn}/${major}/${name}.tar.xz";
-    sha256 = "ebe725d0140f658c6a3f384674c72fba7a7c417df3be0e84ee8f45e6dfc219de";
+    sha256 = "b6b6de75e28d1fbcdfdbb51c0e40fcd6bc0ec0385bfecd16c457260491cd2ff7";
   };
 
-  buildInputs = [ gtk libglade networkmanager GConf libnotify libgnome_keyring
-    polkit isocodes ];
+  buildInputs = [
+    gtk libglade networkmanager GConf libnotify libgnome_keyring dbus_glib
+    polkit isocodes 
+  ];
 
   buildNativeInputs = [ intltool pkgconfig ];
 
+  makeFlags = [
+    ''CFLAGS=-DMOBILE_BROADBAND_PROVIDER_INFO=\"${mobile_broadband_provider_info}/share/mobile-broadband-provider-info/serviceproviders.xml\"''
+  ];
+
   meta = with stdenv.lib; {
     homepage = http://projects.gnome.org/NetworkManager/;
     description = "NetworkManager control applet for GNOME";
     license = licenses.gpl2;
-    maintainers = [ maintainers.phreedom maintainers.urkud ];
+    maintainers = with maintainers; [ phreedom urkud rickynils ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index e5bd2ab77e38..eec7361f6a29 100644
--- a/pkgs/tools/networking/network-manager/default.nix
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, intltool, wirelesstools, pkgconfig, dbus_glib, xz
-, udev, libnl1, libuuid, polkit, gnutls, ppp, dhcp, dhcpcd, iptables
+, udev, libnl, libuuid, polkit, gnutls, ppp, dhcp, dhcpcd, iptables
 , libgcrypt, dnsmasq, avahi, bind, perl, substituteAll }:
 
 stdenv.mkDerivation rec {
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     "--with-dbus-sys-dir=\${out}/etc/dbus-1/system.d"
     "--with-crypto=gnutls" "--disable-more-warnings" ];
 
-  buildInputs = [ wirelesstools udev libnl1 libuuid polkit ppp xz ];
+  buildInputs = [ wirelesstools udev libnl libuuid polkit ppp xz ];
 
   propagatedBuildInputs = [ dbus_glib gnutls libgcrypt ];
 
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
     homepage = http://projects.gnome.org/NetworkManager/;
     description = "Network configuration and management in an easy way. Desktop environment independent.";
     license = licenses.gpl2Plus;
-    maintainers = [ maintainers.phreedom maintainers.urkud ];
+    maintainers = with maintainers; [ phreedom urkud rickynils ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/network-manager/pptp-purity.patch b/pkgs/tools/networking/network-manager/pptp-purity.patch
new file mode 100644
index 000000000000..55ade68dd41c
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/pptp-purity.patch
@@ -0,0 +1,26 @@
+diff --git a/src/nm-pptp-service.c b/src/nm-pptp-service.c
+index 68a5759..568bbfe 100644
+--- a/src/nm-pptp-service.c
++++ b/src/nm-pptp-service.c
+@@ -729,9 +729,7 @@ nm_find_pppd (void)
+ {
+ 	static const char *pppd_binary_paths[] =
+ 		{
+-			"/sbin/pppd",
+-			"/usr/sbin/pppd",
+-			"/usr/local/sbin/pppd",
++			"@ppp@/sbin/pppd",
+ 			NULL
+ 		};
+ 
+@@ -751,9 +749,7 @@ nm_find_pptp (void)
+ {
+ 	static const char *pptp_binary_paths[] =
+ 		{
+-			"/sbin/pptp",
+-			"/usr/sbin/pptp",
+-			"/usr/local/sbin/pptp",
++			"@pptp@/sbin/pptp",
+ 			NULL
+ 		};
+ 
diff --git a/pkgs/tools/networking/network-manager/pptp.nix b/pkgs/tools/networking/network-manager/pptp.nix
index dc3c1643ebcc..8d2acfe9b316 100644
--- a/pkgs/tools/networking/network-manager/pptp.nix
+++ b/pkgs/tools/networking/network-manager/pptp.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl, networkmanager, pptp, ppp, intltool, pkgconfig
+{ stdenv, fetchurl, networkmanager, pptp, ppp, intltool, pkgconfig, substituteAll
 , withGnome ? false, gtk, libgnome_keyring }:
 
 stdenv.mkDerivation rec {
   name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
   pname = "NetworkManager-pptp";
-  version = "0.9.2.0";
+  version = "0.9.4.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/0.9/${pname}-${version}.tar.xz";
-    sha256 = "1fj2v8pjc17m9calckgc2jm8wbimwga8if4r21walf9xysvhsd1b";
+    sha256 = "0p93in5dn8m6dp9qs2ppfmazwqlklp5hwp9pjqr7jwvjbac75dvg";
   };
 
   buildInputs = [ networkmanager pptp ppp ]
@@ -19,6 +19,13 @@ stdenv.mkDerivation rec {
   configureFlags =
     if withGnome then "--with-gnome --with-gtkver=2" else "--without-gnome";
 
+  patches =
+    [ ( substituteAll {
+        src = ./pptp-purity.patch;
+        inherit ppp pptp;
+      })
+    ];
+
   meta = {
     description = "PPtP plugin for NetworkManager";
     inherit (networkmanager.meta) maintainers platforms;
diff --git a/pkgs/tools/networking/networkmanagement/default.nix b/pkgs/tools/networking/networkmanagement/default.nix
index 682b78f2bae3..1919186586a6 100644
--- a/pkgs/tools/networking/networkmanagement/default.nix
+++ b/pkgs/tools/networking/networkmanagement/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "networkmanagement";
-  version = "0.9.0";
+  version = "0.9.0.4";
   name = "${pname}-${version}";
 in
 stdenv.mkDerivation {
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://kde/unstable/${pname}/${version}/src/${name}.tar.bz2";
-    sha256 = "0bxb5hzygf4szv01903zirzxjb3r2nzza9ya3rag4lkxxpwaynpd";
+    sha256 = "0mp2jai6f2qpywjwgvxcl1nh27idgy740vwiahfamq8w2y90a3aj";
   };
 
   buildInputs = [ kdelibs kde_workspace networkmanager ];
diff --git a/pkgs/tools/networking/nss-pam-ldapd/default.nix b/pkgs/tools/networking/nss-pam-ldapd/default.nix
new file mode 100644
index 000000000000..9abfcbbe42a1
--- /dev/null
+++ b/pkgs/tools/networking/nss-pam-ldapd/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, pkgconfig, openldap, python, pam, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "nss-pam-ldapd-${version}";
+  version = "0.8.10";
+  
+  src = fetchurl {
+    url = "http://arthurdejong.org/nss-pam-ldapd/${name}.tar.gz";
+    sha256 = "673a5e235a40fd9aac74082bc64d2ac2280fc155fb00b21092650d2c963e79cc";
+  };
+  
+  buildInputs = [ makeWrapper pkgconfig python openldap pam ];
+
+  preConfigure = ''
+    substituteInPlace Makefile.in --replace "install-data-local: " "# install-data-local: "
+  '';
+
+  configureFlags = [
+    "--with-bindpw-file=/run/nslcd/bindpw"
+    "--with-nslcd-socket=/run/nslcd/socket"
+    "--with-nslcd-pidfile=/run/nslcd/nslcd.pid"
+    "--with-pam-seclib-dir=$(out)/lib/security"
+  ];
+
+  postInstall = ''
+    wrapProgram $out/sbin/nslcd --prefix LD_LIBRARY_PATH ":" $out/lib
+  '';
+
+  meta = {
+    description = "LDAP identity and authentication for NSS/PAM";
+    homepage = http://arthurdejong.org/nss-pam-ldapd/;
+    license = [ "GPLv21" ];
+  };
+}
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index f708ede2f69f..c1504697a186 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -13,11 +13,11 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "openssh-6.0p1";
+  name = "openssh-6.1p1";
 
   src = fetchurl {
     url = "ftp://ftp.nl.uu.net/pub/OpenBSD/OpenSSH/portable/${name}.tar.gz";
-    sha1 = "f691e53ef83417031a2854b8b1b661c9c08e4422";
+    sha1 = "751c92c912310c3aa9cadc113e14458f843fc7b3";
   };
 
   prePatch = stdenv.lib.optionalString hpnSupport
diff --git a/pkgs/tools/networking/pptp/default.nix b/pkgs/tools/networking/pptp/default.nix
index adb22a8d9c66..88f1a86a2edc 100644
--- a/pkgs/tools/networking/pptp/default.nix
+++ b/pkgs/tools/networking/pptp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, ppp }:
+{ stdenv, fetchurl, perl, ppp, iproute }:
 
 stdenv.mkDerivation rec {
   name = "pptp-1.7.2";
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
   patchPhase =
     ''
       sed -e 's/install -o root/install/' -i Makefile
+      sed -e 's,/bin/ip,${iproute}/sbin/ip,' -i routing.c
     '';
   preConfigure =
     ''
diff --git a/pkgs/tools/networking/stunnel/default.nix b/pkgs/tools/networking/stunnel/default.nix
index fa225877b403..d16d9bfb0896 100644
--- a/pkgs/tools/networking/stunnel/default.nix
+++ b/pkgs/tools/networking/stunnel/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl }:
 
 stdenv.mkDerivation {
-  name = "stunnel-4.26";
+  name = "stunnel-4.53";
   
   src = fetchurl {
-    url = http://www.stunnel.org/download/stunnel/src/stunnel-4.26.tar.gz;
-    sha256 = "1lvbd25krcz1sqk5pj2fv3r32h0160qdxrbzlqqs0kz8f987krp9";
+    url = http://www.stunnel.org/downloads/stunnel-4.53.tar.gz;
+    sha256 = "3e640aa4c96861d10addba758b66e99e7c5aec8697764f2a59ca2268901b8e57";
   };
 
   buildInputs = [openssl];
diff --git a/pkgs/tools/networking/surfraw/default.nix b/pkgs/tools/networking/surfraw/default.nix
new file mode 100644
index 000000000000..6fcc031aab4b
--- /dev/null
+++ b/pkgs/tools/networking/surfraw/default.nix
@@ -0,0 +1,22 @@
+{stdenv, fetchurl, perl}:
+
+stdenv.mkDerivation rec {
+  name = "surfraw-2.2.8";
+
+  src = fetchurl {
+    url = "http://surfraw.alioth.debian.org/dist/surfraw-2.2.8.tar.gz";
+    sha256 = "925075e05637e39458b00e859193aacde306aafd9a962f44f5114f81713539ec";
+  };
+
+  configureFlags = [
+    "--disable-opensearch"
+  ];
+
+  buildNativeInputs = [ perl ];
+
+  meta = {
+    description = "Provides a fast unix command line interface to a variety of popular WWW search engines and other artifacts of power";
+    homepage = "http://surfraw.alioth.debian.org";
+    maintainers = [];
+  };
+}
diff --git a/pkgs/tools/package-management/cabal-install/0.14.0.nix b/pkgs/tools/package-management/cabal-install/0.14.0.nix
index ecbd46de52c2..15fe5f1e22ce 100644
--- a/pkgs/tools/package-management/cabal-install/0.14.0.nix
+++ b/pkgs/tools/package-management/cabal-install/0.14.0.nix
@@ -9,6 +9,10 @@ cabal.mkDerivation (self: {
   buildDepends = [
     Cabal filepath HTTP mtl network random time zlib
   ];
+  postInstall = ''
+    mkdir $out/etc
+    mv bash-completion $out/etc/bash_completion.d
+  '';
   meta = {
     homepage = "http://www.haskell.org/cabal/";
     description = "The command-line interface for Cabal and Hackage";
diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix
index 1ed19bb9b259..dfe6e491c37e 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.1pre2749_ccc52ad";
+  name = "nix-1.2pre2910_b674665";
 
   src = fetchurl {
-    url = "http://hydra.nixos.org/build/2841643/download/4/${name}.tar.bz2";
-    sha256 = "eae2135dd70d2734080ee644a597e131f60e71991dbabdabf67ab0818ff1f6fc";
+    url = "http://hydra.nixos.org/build/3031673/download/4/${name}.tar.bz2";
+    sha256 = "fa9849f69a262547856190fe1a24e6d6bd15344fe2ef0a0e54c35ab172074a22";
   };
 
   buildNativeInputs = [ perl pkgconfig ];
@@ -27,8 +27,9 @@ stdenv.mkDerivation rec {
   configureFlags =
     ''
       --with-store-dir=${storeDir} --localstatedir=${stateDir}
-      --with-dbi=${perlPackages.DBI}/lib/perl5/site_perl
-      --with-dbd-sqlite=${perlPackages.DBDSQLite}/lib/perl5/site_perl
+      --with-dbi=${perlPackages.DBI}/${perl.libPrefix}
+      --with-dbd-sqlite=${perlPackages.DBDSQLite}/${perl.libPrefix}
+      --with-www-curl=${perlPackages.WWWCurl}/${perl.libPrefix}
       --disable-init-state
       --enable-gc
       CFLAGS=-O3 CXXFLAGS=-O3
@@ -45,15 +46,16 @@ stdenv.mkDerivation rec {
     configureFlags =
       ''
         --with-store-dir=${storeDir} --localstatedir=${stateDir}
-        --with-dbi=${perlPackages.DBI}/lib/perl5/site_perl
-        --with-dbd-sqlite=${perlPackages.DBDSQLite}/lib/perl5/site_perl
+        --with-dbi=${perlPackages.DBI}/${perl.libPrefix}
+        --with-dbd-sqlite=${perlPackages.DBDSQLite}/${perl.libPrefix}
+        --with-www-curl=${perlPackages.WWWCurl}/${perl.libPrefix}
         --disable-init-state
         --enable-gc
         CFLAGS=-O3 CXXFLAGS=-O3
       '' + stdenv.lib.optionalString (
           stdenv.cross ? nix && stdenv.cross.nix ? system
       ) ''--with-system=${stdenv.cross.nix.system}'';
-      
+
     doInstallCheck = false;
   };
 
diff --git a/pkgs/tools/security/clamav/default.nix b/pkgs/tools/security/clamav/default.nix
new file mode 100644
index 000000000000..bccf0cc77c5b
--- /dev/null
+++ b/pkgs/tools/security/clamav/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, zlib, bzip2, libiconv }:
+stdenv.mkDerivation rec {
+  name = "clamav-${version}";
+  version = "0.97.5";
+
+  src = fetchurl {
+    url = "http://tenet.dl.sourceforge.net/project/clamav/clamav/${version}/clamav-${version}.tar.gz";
+    sha256 = "039wm64wl2sx7k019g5ll5dkdlsq64fnd0ng0s00pjn8bqd5wv6v";
+  };
+
+  buildInputs = [ zlib bzip2 libiconv ];
+
+  configureFlags = [
+    "--with-zlib=${zlib}"
+    "--with-libbz2-prefix=${bzip2}"
+    "--with-iconv-dir=${libiconv}"
+    "--disable-clamav" ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.clamav.net;
+    description = "an open source (GPL) antivirus engine designed for detecting Trojans, viruses, malware and other malicious threats.";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.phreedom ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/security/fprot/default.nix b/pkgs/tools/security/fprot/default.nix
new file mode 100644
index 000000000000..95f7140b9180
--- /dev/null
+++ b/pkgs/tools/security/fprot/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl }:
+stdenv.mkDerivation rec {
+
+  name = "f-prot-${version}";
+  version = "6.2.1";
+
+  src = fetchurl {
+    url = http://files.f-prot.com/files/unix-trial/fp-Linux.x86.32-ws.tar.gz;
+    sha256 = "0qlsrkanf0inplwv1i6hqbimdg91syf5ggd1vahsm9lhivmnr0v5";
+  };
+
+  installPhase = ''
+    ensureDir $out/bin
+    cp fpscan $out/bin
+
+    ensureDir $out/opt/f-prot
+    cp fpupdate $out/opt/f-prot
+    cp product.data.default $out/opt/f-prot/product.data
+    cp license.key $out/opt/f-prot/
+    cp f-prot.conf.default $out/opt/f-prot/f-prot.conf
+    ln -s $out/opt/f-prot/fpupdate $out/bin/fpupdate
+
+    patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" $out/opt/f-prot/fpupdate
+
+    ensureDir $out/share/man/
+    ensureDir $out/share/man/man1
+    cp doc/man/fpscan.1 $out/share/man/man1
+    ensureDir $out/share/man/man5
+    cp doc/man/f-prot.conf.5 $out/share/man/man5
+    ensureDir $out/share/man/man8
+    cp doc/man/fpupdate.8 $out/share/man/man8
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.f-prot.com;
+    description = "a popular proprietary antivirus, Linux workstation edition.";
+    license = licenses.proprietary;
+    maintainers = [ maintainers.phreedom ];
+    platforms = platforms.linux;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/tools/system/gptfdisk/default.nix b/pkgs/tools/system/gptfdisk/default.nix
index f82c94c0a726..9db39411854b 100644
--- a/pkgs/tools/system/gptfdisk/default.nix
+++ b/pkgs/tools/system/gptfdisk/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, libuuid, popt, icu, ncurses }:
 
 stdenv.mkDerivation rec {
-  name = "gptfdisk-0.8.0";
+  name = "gptfdisk-0.8.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/gptfdisk/${name}.tar.gz";
-    sha256 = "096qmlqcsvjklihggwphdmd0y78jz4ghf7gf4fvjnskp7mg4ng31";
+    sha256 = "1yaax2mga7n847x1ihbgvv4drzvndgnn4mii0mz1ab1150gnkk0m";
   };
 
   buildInputs = [ libuuid popt icu ncurses ];
diff --git a/pkgs/tools/system/hardlink/default.nix b/pkgs/tools/system/hardlink/default.nix
index 1655fdba6f47..192f7d871a1f 100644
--- a/pkgs/tools/system/hardlink/default.nix
+++ b/pkgs/tools/system/hardlink/default.nix
@@ -1,33 +1,27 @@
-{ fetchurl, stdenv }:
+{ fetchurl, stdenv, unzip }:
 
 let
-  rev = "269cc6";
-
-  src = fetchurl {
-    url = "http://pkgs.fedoraproject.org/gitweb/?p=hardlink.git;a=blob_plain;f=hardlink.c;hb=${rev}";
-    sha256 = "721c54e653772e11bf0d30fb02aa21b96b147a1b68c0acb4f05cb87e7718bc12";
-    name = "hardlink.c";
-  };
-
-  man =  fetchurl {
-    url = "pkgs.fedoraproject.org/gitweb/?p=hardlink.git;a=blob_plain;f=hardlink.1;hb=${rev}";
-    sha256 = "2f7e18a0259a2ceae316592e8b18bee525eb7e83fe3bb6b881e5dafa24747f2d";
-    name = "hardlink.1";
-  };
+  rev = "3ec908d539";
 in
 stdenv.mkDerivation {
-  name = "hardlink-2010.1.${rev}";
+  name = "hardlink-2012.9.${rev}";
 
-  phases = ["buildPhase"];
+  src = fetchurl {
+    url = "pkgs.fedoraproject.org/cgit/hardlink.git/snapshot/hardlink-${rev}.zip";
+    sha256 = "fea1803170b538d5fecf6a8d312ded1d25d516e9386a3797441a247487551647";
+    name = "hardlink-${rev}.zip";
+  };
 
-  buildPhase = ''
+  installPhase = ''
     mkdir -p $out/bin $out/share/man/man1
-    gcc -O2 ${src} -o $out/bin/hardlink
-    install -m 444 ${man} $out/share/man/man1/hardlink.1
+    gcc -O2 hardlink.c -o $out/bin/hardlink
+    mv hardlink.1 $out/share/man/man1/hardlink.1
   '';
 
+  buildInputs = [ unzip ];
+
   meta = {
-    homepage = "http://pkgs.fedoraproject.org/gitweb/?p=hardlink.git;a=summary";
+    homepage = "http://pkgs.fedoraproject.org/cgit/hardlink.git/";
     description = "consolidate duplicate files via hardlinks";
     license = stdenv.lib.licenses.gpl2Plus;
 
diff --git a/pkgs/tools/system/logcheck/default.nix b/pkgs/tools/system/logcheck/default.nix
new file mode 100644
index 000000000000..1c57711940bf
--- /dev/null
+++ b/pkgs/tools/system/logcheck/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, lockfileProgs, perl, mimeConstruct }:
+
+stdenv.mkDerivation rec {
+  _name   = "logcheck";
+  version = "1.3.15";
+  name    = "${_name}-${version}";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/l/${_name}/${_name}_${version}.tar.gz";
+    sha256 = "1rdrs12hkm5i5yyz89a6cwhf4fzjkbcd4q4zy6sk148aji9lg6xj";
+  };
+
+  preConfigure = ''
+    substituteInPlace src/logtail --replace "/usr/bin/perl" "${perl}/bin/perl"
+    substituteInPlace src/logtail2 --replace "/usr/bin/perl" "${perl}/bin/perl"
+
+    sed -i -e 's|! -f /usr/bin/lockfile|! -f ${lockfileProgs}/bin/lockfile|' \
+           -e 's|^\([ \t]*\)lockfile-|\1${lockfileProgs}/bin/lockfile-|' \
+           -e "s|/usr/sbin/logtail2|$out/sbin/logtail2|" \
+           -e 's|mime-construct|${mimeConstruct}/bin/mime-construct|' \
+           -e 's|\$(run-parts --list "\$dir")|"$dir"/*|' src/logcheck
+  '';
+
+  makeFlags = [
+    "DESTDIR=$(out)"
+    "SBINDIR=sbin"
+    "BINDIR=bin"
+    "SHAREDIR=share/logtail/detectrotate"
+ ];
+
+  meta = {
+    description = "Mails anomalies in the system logfiles to the administrator.";
+    longDescription = ''
+      Mails anomalies in the system logfiles to the administrator.
+
+      Logcheck helps spot problems and security violations in your logfiles automatically and will send the results to you by e-mail.
+      Logcheck was part of the Abacus Project of security tools, but this version has been rewritten.
+    '';
+    homepage = http://logcheck.org;
+    license = "GPLv2";
+
+    maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/system/smartmontools/default.nix b/pkgs/tools/system/smartmontools/default.nix
index eee0b0de571d..b79e92b52370 100644
--- a/pkgs/tools/system/smartmontools/default.nix
+++ b/pkgs/tools/system/smartmontools/default.nix
@@ -1,5 +1,11 @@
 { stdenv, fetchurl }:
 
+let
+  driverdb = fetchurl {
+    url = "http://smartmontools.svn.sourceforge.net/viewvc/smartmontools/branches/RELEASE_5_43_DRIVEDB/smartmontools/drivedb.h?revision=3605";
+    sha256 = "1kibx5aal903hcpy6mjmfik6n9j142i3q3vvrcp1wmz10mfsqj8f";
+  };
+in
 stdenv.mkDerivation rec {
   name = "smartmontools-5.43";
 
@@ -8,6 +14,8 @@ stdenv.mkDerivation rec {
     sha256 = "d845187d1500b87ef8d2c43772bd0218a59114fe58474a903c56777c9175351e";
   };
 
+  patchPhase = "cp ${driverdb} drivedb.h";
+
   meta = {
     description = "Tools for monitoring the health of hard drivers";
     homepage = "http://smartmontools.sourceforge.net/";
diff --git a/pkgs/tools/text/enca/default.nix b/pkgs/tools/text/enca/default.nix
new file mode 100644
index 000000000000..ce1c7401a4e0
--- /dev/null
+++ b/pkgs/tools/text/enca/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, libiconv ? null }:
+
+stdenv.mkDerivation rec {
+  name = "enca-1.13";
+
+  src = fetchurl {
+    url = "http://dl.cihar.com/enca/${name}.tar.bz2";
+    sha256 = "6c091455d524b3ddae3533fe9bb375092f60ad6fe252e0777c873bd7869c7432";
+  };
+
+  buildInputs = (stdenv.lib.optional (libiconv != null) libiconv);
+
+  meta = {
+    homepage = http://freecode.com/projects/enca;
+    description = "Detects the encoding of text files and reencodes them";
+
+    longDescription = ''
+        Enca detects the encoding of text files, on the basis of knowledge
+        of their language. It can also convert them to other encodings,
+        allowing you to recode files without knowing their current encoding.
+        It supports most of Central and East European languages, and a few
+        Unicode variants, independently on language.
+    '';
+
+    license = "GPLv2";
+
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/text/wgetpaste/default.nix b/pkgs/tools/text/wgetpaste/default.nix
index 8cfc26d70cc3..63313872ede9 100644
--- a/pkgs/tools/text/wgetpaste/default.nix
+++ b/pkgs/tools/text/wgetpaste/default.nix
@@ -1,10 +1,10 @@
 {stdenv, fetchurl, wget, bash, coreutils}:
   stdenv.mkDerivation rec {
-    version = "2.19";
+    version = "2.20";
     name = "wgetpaste-${version}";
       src = fetchurl {
         url = "http://wgetpaste.zlin.dk/${name}.tar.bz2";
-        sha256 = "bb832557fca3be838838a87d790cb535974ea70bd2393818201676212f0f3b5a";
+        sha256 = "7a53836d02e07cefc3c2978bb129a037fa1e1222ba0e275c4e818230a6d6fb9e";
     };
     # currently zsh-autocompletion support is not installed
 
diff --git a/pkgs/tools/typesetting/lhs2tex/default.nix b/pkgs/tools/typesetting/lhs2tex/default.nix
index 5ac339e92ece..2b96ae526c40 100644
--- a/pkgs/tools/typesetting/lhs2tex/default.nix
+++ b/pkgs/tools/typesetting/lhs2tex/default.nix
@@ -2,9 +2,9 @@
 
 cabal.mkDerivation (self: {
   pname = "lhs2tex";
-  version = "1.17";
+  version = "1.18.1";
   name = self.fname;
-  sha256 = "1x49316m5xm4f6hw5q7kia9rpfpygxhk5gnifd54ai0zjmdlkxrc";
+  sha256 = "0j4n7vkabsggn94gbwixy1vmckdck2nggdiqvk6n9nx164if5jnw";
   extraBuildInputs = [regexCompat texLive];
 
   postInstall = ''
diff --git a/pkgs/tools/typesetting/tex/texlive/beamer.nix b/pkgs/tools/typesetting/tex/texlive/beamer.nix
index 851ad0707a1d..bf9079ab1046 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-2007";
+  name = "texlive-beamer-2012";
   src = fetchurl {
-    url = mirror://debian/pool/main/l/latex-beamer/latex-beamer_3.07.orig.tar.gz;
-    sha256 = "07ldhg5f0hcnhjgzg5g8ailqacn8zhqc8nl2jkxc43c2qxbvswbv";
+    url = mirror://debian/pool/main/l/latex-beamer/latex-beamer_3.10.orig.tar.gz;
+    sha256 = "1vk7nr1lxinyj941nz5xzcpzircd60s8sgmq7jd2gqmf5ynd27nx";
   };
 
   buildInputs = [texLive];
diff --git a/pkgs/tools/typesetting/tex/texlive/moderncv.nix b/pkgs/tools/typesetting/tex/texlive/moderncv.nix
index a3dde11d5ae7..2d422385bd55 100644
--- a/pkgs/tools/typesetting/tex/texlive/moderncv.nix
+++ b/pkgs/tools/typesetting/tex/texlive/moderncv.nix
@@ -1,9 +1,10 @@
 args: with args;
 rec {
-  name = "moderncv-1.0";
+  version = "1.1.1";
+  name = "moderncv-${version}";
   src = fetchurl {
-    url = "http://mirror.ctan.org/macros/latex/contrib/moderncv.zip";
-    sha256 = "0yq0ss3qnwk71rcxvch7r5phxfx00s3v80ddpbpc0a0rkh124w53";
+    url = "https://launchpad.net/moderncv/trunk/${version}/+download/moderncv-${version}.zip";
+    sha256 = "929c118eff339a5c59ed58cc961ddee787e9a5933d12ec8801613fd2e2500e9f";
   };
 
   buildInputs = [texLive unzip];
diff --git a/pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix b/pkgs/tools/virtualization/ec2-ami-tools/default.nix
index b05596ed50ac..1420ab5eeeb0 100644
--- a/pkgs/tools/virtualization/amazon-ec2-ami-tools/default.nix
+++ b/pkgs/tools/virtualization/ec2-ami-tools/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, unzip, ruby, openssl, makeWrapper }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "ec2-ami-tools-1.4.0.7";
   
   buildInputs = [ unzip makeWrapper ];
   
   src = fetchurl {
-    url = http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip;
+    url = "http://nixos.org/tarballs/${name}.zip";
     sha256 = "0l8c623i1w30bh9k622cdjj5f57rlfc1zs0i01ya016ijyr08qip";
   };
 
diff --git a/pkgs/tools/virtualization/amazon-ec2-ami-tools/writable.patch b/pkgs/tools/virtualization/ec2-ami-tools/writable.patch
index 54c2228911eb..54c2228911eb 100644
--- a/pkgs/tools/virtualization/amazon-ec2-ami-tools/writable.patch
+++ b/pkgs/tools/virtualization/ec2-ami-tools/writable.patch
diff --git a/pkgs/tools/virtualization/amazon-ec2-api-tools/default.nix b/pkgs/tools/virtualization/ec2-api-tools/default.nix
index a85d4223b714..22669c67b121 100644
--- a/pkgs/tools/virtualization/amazon-ec2-api-tools/default.nix
+++ b/pkgs/tools/virtualization/ec2-api-tools/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, unzip, makeWrapper, jre }:
 
-stdenv.mkDerivation {
-  name = "ec2-api-tools-1.5.3.0";
+stdenv.mkDerivation rec {
+  name = "ec2-api-tools-1.6.0.0";
   
   src = fetchurl {
-    url = http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip;
-    sha256 = "15mxjay8pr6cvlmp9hdsg5z7zc15bicjrc30f27rknq72zyhxi8h";
+    url = "http://nixos.org/tarballs/${name}.zip";
+    sha256 = "1j9isvi6g68zhk7zxs29yad2d0rpnbqx8fz25yn5paqx9c8pzqcl";
   };
 
   buildInputs = [ unzip makeWrapper ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 965c9a7ad24d..2e090fd0c979 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -21,10 +21,12 @@
   # null, the default standard environment is used.
   bootStdenv ? null
 
-, # Darwin is an "impure" platform, with its libc outside of the store.
-  # Thus, GCC, GFortran, & co. must always look for files in standard system
-  # directories (/usr/include, etc.)
-  noSysDirs ? (system != "x86_64-darwin" && system != "i686-darwin")
+, # Non-GNU/Linux OSes are currently "impure" platforms, with their libc
+  # outside of the store.  Thus, GCC, GFortran, & co. must always look for
+  # files in standard system directories (/usr/include, etc.)
+  noSysDirs ? (system != "x86_64-darwin" && system != "i686-darwin"
+               && system != "x86_64-freebsd" && system != "i686-freebsd"
+               && system != "x86_64-kfreebsd-gnu")
 
   # More flags for the bootstrapping of stdenv.
 , gccWithCC ? true
@@ -76,11 +78,7 @@ let
 
   # Allow setting the platform in the config file. Otherwise, let's use a reasonable default (pc)
   platform = if platform_ != null then platform_
-    else getConfig [ "platform" ] (import ./platforms.nix).pc;
-
-  # Return an attribute from the Nixpkgs configuration file, or
-  # a default value if the attribute doesn't exist.
-  getConfig = attrPath: default: lib.attrByPath attrPath default config;
+    else config.platform or (import ./platforms.nix).pc;
 
 
   # Helper functions that are exported through `pkgs'.
@@ -99,7 +97,7 @@ let
   # (un-overriden) set of packages, allowing packageOverrides
   # attributes to refer to the original attributes (e.g. "foo =
   # ... pkgs.foo ...").
-  pkgs = applyGlobalOverrides (getConfig ["packageOverrides"] (pkgs: {}));
+  pkgs = applyGlobalOverrides (config.packageOverrides or (pkgs: {}));
 
 
   # Return the complete set of packages, after applying the overrides
@@ -131,7 +129,7 @@ let
   # `__overrides' is a magic attribute that causes the attributes in
   # its value to be added to the surrounding `rec'.  We'll remove this
   # eventually.
-  inherit __overrides;
+  inherit __overrides pkgs;
 
 
   # We use `callPackage' to be able to omit function arguments that
@@ -176,7 +174,7 @@ let
   ### Helper functions.
 
 
-  inherit lib config getConfig stdenvAdapters;
+  inherit lib config stdenvAdapters;
 
   inherit (lib) lowPrio hiPrio appendToName makeOverridable;
 
@@ -204,8 +202,7 @@ let
 
   defaultStdenv = allStdenvs.stdenv // { inherit platform; };
 
-  stdenvCross = makeStdenvCross defaultStdenv crossSystem binutilsCross
-    gccCrossStageFinal;
+  stdenvCross = lowPrio (makeStdenvCross defaultStdenv crossSystem binutilsCross gccCrossStageFinal);
 
   stdenv =
     if bootStdenv != null then (bootStdenv // {inherit platform;}) else
@@ -213,7 +210,7 @@ let
         stdenvCross
       else
         let
-            changer = getConfig ["replaceStdenv"] null;
+            changer = config.replaceStdenv or null;
         in if changer != null then
           changer {
             # We import again all-packages to avoid recursivities.
@@ -231,11 +228,11 @@ let
   # A stdenv capable of building 32-bit binaries.  On x86_64-linux,
   # it uses GCC compiled with multilib support; on i686-linux, it's
   # just the plain stdenv.
-  stdenv_32bit =
+  stdenv_32bit = lowPrio (
     if system == "x86_64-linux" then
       overrideGCC stdenv gcc43_multi
     else
-      stdenv;
+      stdenv);
 
 
   ### BUILD SUPPORT
@@ -280,7 +277,7 @@ let
 
   fetchgitrevision = import ../build-support/fetchgitrevision runCommand git;
 
-  fetchmtn = callPackage ../build-support/fetchmtn (getConfig ["fetchmtn"] {});
+  fetchmtn = callPackage ../build-support/fetchmtn (config.fetchmtn or {});
 
   fetchsvn = import ../build-support/fetchsvn {
     inherit stdenv subversion openssh;
@@ -387,9 +384,9 @@ let
     };
   };
 
-  ec2apitools = callPackage ../tools/virtualization/amazon-ec2-api-tools { };
+  ec2_api_tools = callPackage ../tools/virtualization/ec2-api-tools { };
 
-  ec2amitools = callPackage ../tools/virtualization/amazon-ec2-ami-tools { };
+  ec2_ami_tools = callPackage ../tools/virtualization/ec2-ami-tools { };
 
   altermime = callPackage ../tools/networking/altermime {};
 
@@ -420,7 +417,7 @@ let
   autojump = callPackage ../tools/misc/autojump { };
 
   avahi = callPackage ../development/libraries/avahi {
-    qt4Support = getConfig [ "avahi" "qt4Support" ] false;
+    qt4Support = config.avahi.qt4Support or false;
   };
 
   aws = callPackage ../tools/virtualization/aws { };
@@ -441,6 +438,8 @@ let
 
   bfr = callPackage ../tools/misc/bfr { };
 
+  boomerang = callPackage ../development/tools/boomerang { };
+
   bootchart = callPackage ../tools/system/bootchart { };
 
   bsod = callPackage ../misc/emulators/bsod { };
@@ -451,6 +450,8 @@ let
 
   eggdrop = callPackage ../tools/networking/eggdrop { };
 
+  enca = callPackage ../tools/text/enca { };
+
   mcrl = callPackage ../tools/misc/mcrl { };
 
   mcrl2 = callPackage ../tools/misc/mcrl2 { };
@@ -491,7 +492,12 @@ let
 
   btar = callPackage ../tools/backup/btar { };
 
-  bup = callPackage ../tools/backup/bup { };
+  bup = callPackage ../tools/backup/bup {
+    inherit (pythonPackages) pyxattr pylibacl setuptools fuse;
+    inherit (haskellPackages) pandoc;
+  };
+
+  atool = callPackage ../tools/archivers/atool { };
 
   bzip2 = callPackage ../tools/compression/bzip2 { };
 
@@ -521,6 +527,8 @@ let
 
   cksfv = callPackage ../tools/networking/cksfv { };
 
+  ciopfs = callPackage ../tools/filesystems/ciopfs { };
+
   colordiff = callPackage ../tools/text/colordiff { };
 
   convertlit = callPackage ../tools/text/convertlit { };
@@ -531,6 +539,8 @@ let
 
   usb_modeswitch = callPackage ../development/tools/misc/usb-modeswitch { };
 
+  clamav = callPackage ../tools/security/clamav { };
+
   cloog = callPackage ../development/libraries/cloog { };
 
   cloogppl = callPackage ../development/libraries/cloog-ppl { };
@@ -718,6 +728,8 @@ let
 
   fortune = callPackage ../tools/misc/fortune { };
 
+  fprot = callPackage ../tools/security/fprot { };
+
   freeipmi = callPackage ../tools/system/freeipmi {};
 
   freetalk = callPackage ../applications/networking/instant-messengers/freetalk {
@@ -825,14 +837,12 @@ let
   };
 
   grub = callPackage_i686 ../tools/misc/grub {
-    buggyBiosCDSupport = getConfig ["grub" "buggyBiosCDSupport"] true;
+    buggyBiosCDSupport = config.grub.buggyBiosCDSupport or true;
   };
 
-  grub19x = callPackage ../tools/misc/grub/1.9x.nix { };
-
-  grub2 = grub19x;
+  grub2 = callPackage ../tools/misc/grub/2.0x.nix { };
 
-  grub2_efi = callPackage ../tools/misc/grub/1.9x.nix { EFIsupport = true; };
+  grub2_efi = grub2.override { EFIsupport = true; };
 
   gssdp = callPackage ../development/libraries/gssdp {
     inherit (gnome) libsoup;
@@ -959,12 +969,16 @@ let
 
   less = callPackage ../tools/misc/less { };
 
+  lockfileProgs = callPackage ../tools/misc/lockfile-progs { };
+
   logstash = callPackage ../tools/misc/logstash { };
 
   klavaro = callPackage ../games/klavaro {};
 
   minidlna = callPackage ../tools/networking/minidlna { };
 
+  mmv = callPackage ../tools/misc/mmv { };
+
   most = callPackage ../tools/misc/most { };
 
   netperf = callPackage ../applications/networking/netperf { };
@@ -973,6 +987,11 @@ let
 
   nodejs = callPackage ../development/web/nodejs {};
 
+  nodePackages = recurseIntoAttrs (import ./node-packages.nix {
+    inherit pkgs stdenv nodejs fetchurl;
+    neededNatives = [python] ++ lib.optional (lib.elem system lib.platforms.linux) utillinux;
+  });
+
   ldns = callPackage ../development/libraries/ldns { };
 
   lftp = callPackage ../tools/networking/lftp { };
@@ -983,6 +1002,10 @@ let
 
   libtorrent = callPackage ../tools/networking/p2p/libtorrent { };
 
+  logcheck = callPackage ../tools/system/logcheck {
+    inherit (perlPackages) mimeConstruct;
+  };
+
   logrotate = callPackage ../tools/system/logrotate { };
 
   logstalgica = callPackage ../tools/graphics/logstalgica {};
@@ -1047,8 +1070,6 @@ let
 
   mktemp = callPackage ../tools/security/mktemp { };
 
-  mldonkey = callPackage ../applications/networking/p2p/mldonkey { };
-
   modemmanager = callPackage ../tools/networking/modemmanager {};
 
   monit = builderDefsPackage ../tools/system/monit {
@@ -1122,6 +1143,8 @@ let
 
   netpbm = callPackage ../tools/graphics/netpbm { };
 
+  netrw = callPackage ../tools/networking/netrw { };
+
   netselect = callPackage ../tools/networking/netselect { };
 
   networkmanager = callPackage ../tools/networking/network-manager { };
@@ -1142,6 +1165,8 @@ let
     inherit (pythonPackages) pysqlite;
   };
 
+  nss_pam_ldapd = callPackage ../tools/networking/nss-pam-ldapd {};
+
   ntfs3g = callPackage ../tools/filesystems/ntfs-3g { };
 
   # ntfsprogs are merged into ntfs-3g
@@ -1282,6 +1307,8 @@ let
 
   plotutils = callPackage ../tools/graphics/plotutils { };
 
+  plowshare = callPackage ../tools/misc/plowshare { };
+
   pngcrush = callPackage ../tools/graphics/pngcrush { };
 
   pngnq = callPackage ../tools/graphics/pngnq { };
@@ -1398,10 +1425,14 @@ let
 
   s3cmd = callPackage ../tools/networking/s3cmd { };
 
-  s3sync = callPackage ../tools/networking/s3sync { };
+  s3sync = callPackage ../tools/networking/s3sync {
+    ruby = ruby18;
+  };
 
   sablotron = callPackage ../tools/text/xml/sablotron { };
 
+  salut_a_toi = callPackage ../applications/networking/instant-messengers/salut-a-toi {};
+
   screen = callPackage ../tools/misc/screen { };
 
   scrot = callPackage ../tools/graphics/scrot { };
@@ -1472,6 +1503,8 @@ let
 
   su = shadow;
 
+  surfraw = callPackage ../tools/networking/surfraw { };
+
   swec = callPackage ../tools/networking/swec {
     inherit (perlPackages) LWP URI HTMLParser HTTPServerSimple Parent;
   };
@@ -1600,7 +1633,7 @@ let
   };
 
   truecrypt = callPackage ../applications/misc/truecrypt {
-    wxGUI = getConfig [ "truecrypt" "wxGUI" ] true;
+    wxGUI = config.truecrypt.wxGUI or true;
   };
 
   ttmkfdir = callPackage ../tools/misc/ttmkfdir { };
@@ -1723,6 +1756,8 @@ let
 
   xtreemfs = callPackage ../tools/filesystems/xtreemfs {};
 
+  xvfb_run = callPackage ../tools/misc/xvfb-run { inherit (texFunctions) fontsConf; };
+
   youtubeDL = callPackage ../tools/misc/youtube-dl { };
 
   zbar = callPackage ../tools/graphics/zbar {};
@@ -1783,7 +1818,7 @@ let
   clang = wrapClang clangUnwrapped;
 
   #Use this instead of stdenv to build with clang
-  clangStdenv = stdenvAdapters.overrideGCC stdenv clang;
+  clangStdenv = lowPrio (stdenvAdapters.overrideGCC stdenv clang);
 
   clean = callPackage ../development/compilers/clean { };
 
@@ -1874,6 +1909,8 @@ let
 
   gcc46 = gcc46_real;
 
+  gcc47 = gcc47_real;
+
   gcc45_realCross = lib.addMetaAttrs { platforms = []; }
     (makeOverridable (import ../development/compilers/gcc/4.5) {
       inherit fetchurl stdenv texinfo gmp mpfr mpc libelf zlib
@@ -2010,20 +2047,31 @@ let
     binutilsCross = null;
   }));
 
-  gcc47 = lowPrio (wrapGCC (lib.overrideDerivation gcc46_debug.gcc (a: {
-    name = "gcc-debug-4.7.1";
-    src = fetchurl {
-      url = "mirror://gnu/gcc/gcc-4.7.1/gcc-4.7.1.tar.bz2";
-      sha256 = "0vs0v89zzgkngkw2p8kdynyk7j8ky4wf6zyrg3rsschpl1pky28n";
-    };
+  gcc47_real = lowPrio (wrapGCC (callPackage ../development/compilers/gcc/4.7 {
+    inherit noSysDirs;
+    # I'm not sure if profiling with enableParallelBuilding helps a lot.
+    # We can enable it back some day. This makes the *gcc* builds faster now.
+    profiledCompiler = false;
 
-    configureFlags = a.configureFlags
-      # This flag replaces `no-sys-dirs.patch'.
-      + (lib.optionalString (stdenv ? glibc)
-          " --with-native-system-header-dir=${stdenv.glibc}/include");
+    # When building `gcc.hostDrv' (a "Canadian cross", with host == target
+    # and host != build), `cross' must be null but the cross-libc must still
+    # be passed.
+    cross = null;
+    libcCross = if crossSystem != null then libcCross else null;
+    libpthreadCross =
+      if crossSystem != null && crossSystem.config == "i586-pc-gnu"
+      then gnu.libpthreadCross
+      else null;
+  }));
 
-    patches = [];
-  })));
+  gcc47_debug = lowPrio (wrapGCC (callPackage ../development/compilers/gcc/4.7 {
+    stripped = false;
+
+    inherit noSysDirs;
+    cross = null;
+    libcCross = null;
+    binutilsCross = null;
+  }));
 
   gccApple =
     wrapGCC (makeOverridable
@@ -2188,11 +2236,12 @@ let
     inherit fetchurl stdenv;
   });
 
-  gccgo = gccgo46;
+  # gccgo46 does not work. I set 4.7 then.
+  gccgo = gccgo47;
 
-  gccgo46 = wrapGCC (gcc46_real.gcc.override {
+  gccgo47 = wrapGCC (gcc47_real.gcc.override {
     name = "gccgo";
-    langCC = true; #required for go
+    langCC = true; #required for go.
     langC = true;
     langGo = true;
   });
@@ -2271,8 +2320,8 @@ let
   haskellPackages_ghc741_no_profiling = recurseIntoAttrs (haskell.packages_ghc741.noProfiling);
   haskellPackages_ghc741_profiling    = recurseIntoAttrs (haskell.packages_ghc741.profiling);
   haskellPackages_ghc741              = recurseIntoAttrs (haskell.packages_ghc741.highPrio);
-  # Stable branch snapshot.
   haskellPackages_ghc742              = recurseIntoAttrs (haskell.packages_ghc742);
+  haskellPackages_ghc761              = recurseIntoAttrs (haskell.packages_ghc761);
   # Reasonably current HEAD snapshot.
   haskellPackages_ghcHEAD             =                   haskell.packages_ghcHEAD;
 
@@ -2305,37 +2354,38 @@ let
 
   path64 = callPackage ../development/compilers/path64 { };
 
+  openjdkBootstrap = callPackage ../development/compilers/openjdk/bootstrap.nix {};
+
   openjdk =
     if stdenv.isDarwin then
       callPackage ../development/compilers/openjdk-darwin { }
     else
-      callPackage ../development/compilers/openjdk { };
+      callPackage ../development/compilers/openjdk {
+        jdk = pkgs.openjdkBootstrap;
+        ant = pkgs.ant.override { jdk = pkgs.openjdkBootstrap; };
+      };
 
   openjre = callPackage ../development/compilers/openjdk {
     jreOnly = true;
   };
 
-  j2sdk14x = (
-    assert system == "i686-linux";
-    import ../development/compilers/jdk/default-1.4.nix {
-      inherit fetchurl stdenv;
-    });
+  jdk = if (stdenv.isDarwin || stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux")
+    then openjdk
+    else jdkdistro true false;
+  jre = if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux")
+    then openjre
+    else jdkdistro false false;
 
-  jdk5 = (
-    assert system == "i686-linux" || system == "x86_64-linux";
-    callPackage ../development/compilers/jdk/default-5.nix { });
+  oraclejdk = jdkdistro true false;
 
-  jdk       = if stdenv.isDarwin then openjdk else jdkdistro true false;
-  jre       = jdkdistro false false;
+  oraclejre = jdkdistro false false;
 
-  jdkPlugin = lowPrio (jdkdistro true true);
   jrePlugin = lowPrio (jdkdistro false true);
 
   supportsJDK =
     system == "i686-linux" ||
     system == "x86_64-linux" ||
-    system == "i686-cygwin" ||
-    system == "powerpc-linux";
+    system == "i686-cygwin";
 
   jdkdistro = installjdk: pluginSupport:
        (assert supportsJDK;
@@ -2345,7 +2395,13 @@ let
 
   jikes = callPackage ../development/compilers/jikes { };
 
-  julia = callPackage ../development/compilers/julia { };
+  julia = callPackage ../development/compilers/julia {
+    llvm = llvm_3_1;
+    pcre = pcre_8_30;
+    liblapack = liblapack.override {shared = true;};
+    fftw = fftw.override {pthreads = true;};
+    fftwSinglePrec = fftwSinglePrec.override {pthreads = true;};
+  };
 
   lazarus = builderDefsPackage (import ../development/compilers/fpc/lazarus.nix) {
     inherit makeWrapper gtk glib pango atk gdk_pixbuf;
@@ -2382,6 +2438,8 @@ let
 
   ocaml_3_12_1 = callPackage ../development/compilers/ocaml/3.12.1.nix { };
 
+  ocaml_4_00_0 = callPackage ../development/compilers/ocaml/4.00.0.nix { };
+
   metaocaml_3_09 = callPackage ../development/compilers/ocaml/metaocaml-3.09.nix { };
 
   ber_metaocaml_003 = callPackage ../development/compilers/ocaml/ber-metaocaml-003.nix { };
@@ -2428,6 +2486,8 @@ let
 
     menhir = callPackage ../development/ocaml-modules/menhir { };
 
+    mldonkey = callPackage ../applications/networking/p2p/mldonkey { };
+
     ocaml_batteries = callPackage ../development/ocaml-modules/batteries {
       camomile = camomile_0_8_2;
     };
@@ -2477,6 +2537,7 @@ let
   ocamlPackages_3_10_0 = mkOcamlPackages ocaml_3_10_0 pkgs.ocamlPackages_3_10_0;
   ocamlPackages_3_11_2 = mkOcamlPackages ocaml_3_11_2 pkgs.ocamlPackages_3_11_2;
   ocamlPackages_3_12_1 = mkOcamlPackages ocaml_3_12_1 pkgs.ocamlPackages_3_12_1;
+  ocamlPackages_4_00_0 = mkOcamlPackages ocaml_4_00_0 pkgs.ocamlPackages_4_00_0;
 
   ocaml_make = callPackage ../development/ocaml-modules/ocamlmake { };
 
@@ -2638,6 +2699,8 @@ let
 
   guile = guile_2_0;
 
+  hadoop = callPackage ../applications/networking/cluster/hadoop { };
+
   io = callPackage ../development/interpreters/io { };
 
   j = callPackage ../development/interpreters/j {};
@@ -2681,14 +2744,14 @@ let
     inherit
       stdenv fetchurl lib composableDerivation autoconf automake
       flex bison apacheHttpd mysql libxml2 readline
-      zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
+      zlib curl gd postgresql openssl pkgconfig sqlite config libiconv libjpeg libpng;
   };
 
   php5_3 = makeOverridable (import ../development/interpreters/php/5.3.nix) {
     inherit
       stdenv fetchurl lib composableDerivation autoconf automake
       flex bison apacheHttpd mysql libxml2 readline
-      zlib curl gd postgresql openssl pkgconfig sqlite getConfig libiconv libjpeg libpng;
+      zlib curl gd postgresql openssl pkgconfig sqlite config libiconv libjpeg libpng;
   };
 
   php_apc = callPackage ../development/libraries/php-apc { };
@@ -2758,7 +2821,7 @@ let
   rubySqlite3 = callPackage ../development/ruby-modules/sqlite3 { };
 
   rLang = callPackage ../development/interpreters/r-lang {
-    withBioconductor = getConfig ["rLang" "withBioconductor"] false;
+    withBioconductor = config.rLang.withBioconductor or false;
   };
 
   rubygemsFun = ruby: builderDefsPackage (import ../development/interpreters/ruby/rubygems.nix) {
@@ -2796,7 +2859,7 @@ let
   */
 
   sourceFromHead = import ../build-support/source-from-head-fun.nix {
-    inherit getConfig;
+    inherit config;
   };
 
   ecj = callPackage ../development/eclipse/ecj { };
@@ -2834,8 +2897,7 @@ let
   apacheAnt = callPackage ../development/tools/build-managers/apache-ant { };
 
   apacheAntOpenJDK = apacheAnt.override { jdk = openjdk; };
-
-  apacheAnt14 = apacheAnt.override { jdk = j2sdk14x; };
+  apacheAntOracleJDK = ant.override { jdk = pkgs.oraclejdk; };
 
   apacheAntGcj = callPackage ../development/tools/build-managers/apache-ant/from-source.nix {
     # must be either pre-built or built with GCJ *alone*
@@ -2855,7 +2917,7 @@ let
   automake110x = callPackage ../development/tools/misc/automake/automake-1.10.x.nix { };
 
   automake111x = callPackage ../development/tools/misc/automake/automake-1.11.x.nix {
-    doCheck = !stdenv.isArm && !stdenv.isCygwin
+    doCheck = !stdenv.isArm && !stdenv.isCygwin && !stdenv.isMips
       # Some of the parallel tests seem to hang on `i386-pc-solaris2.11'.
       && stdenv.system != "i686-solaris"
 
@@ -2864,7 +2926,7 @@ let
   };
 
   automake112x = callPackage ../development/tools/misc/automake/automake-1.12.x.nix {
-    doCheck = !stdenv.isArm && !stdenv.isCygwin
+    doCheck = !stdenv.isArm && !stdenv.isCygwin && !stdenv.isMips
       # Some of the parallel tests seem to hang on `i386-pc-solaris2.11'.
       && stdenv.system != "i686-solaris";
   };
@@ -2900,6 +2962,8 @@ let
 
   bison25 = callPackage ../development/tools/parsing/bison/bison-2.5.nix { };
 
+  bison26 = callPackage ../development/tools/parsing/bison/bison-2.6.nix { };
+
   buildbot = callPackage ../development/tools/build-managers/buildbot {
     inherit (pythonPackages) twisted;
   };
@@ -2926,7 +2990,7 @@ let
   #
   ccacheWrapper = makeOverridable ({ extraConfig ? "" }:
      wrapGCC (ccache.links extraConfig)) {};
-  ccacheStdenv = overrideGCC stdenv ccacheWrapper;
+  ccacheStdenv = lowPrio (overrideGCC stdenv ccacheWrapper);
 
   cgdb = callPackage ../development/tools/misc/cgdb { };
 
@@ -2948,6 +3012,8 @@ let
 
   coccinelle = callPackage ../development/tools/misc/coccinelle { };
 
+  framac = callPackage ../development/tools/misc/frama-c { };
+
   cppi = callPackage ../development/tools/misc/cppi { };
 
   cproto = callPackage ../development/tools/misc/cproto { };
@@ -3087,6 +3153,8 @@ let
 
   patchelf = callPackage ../development/tools/misc/patchelf { };
 
+  patchelfUnstable = callPackage ../development/tools/misc/patchelf/unstable.nix { };
+
   peg = callPackage ../development/tools/parsing/peg { };
 
   pmccabe = callPackage ../development/tools/misc/pmccabe { };
@@ -3102,13 +3170,15 @@ let
 
   premake = callPackage ../development/tools/misc/premake { };
 
+  pstack = callPackage ../development/tools/misc/gdb/pstack.nix { };
+
   radare = callPackage ../development/tools/analysis/radare {
     inherit (gnome) vte;
     lua = lua5;
-    useX11 = getConfig ["radare" "useX11"] false;
-    pythonBindings = getConfig ["radare" "pythonBindings"] false;
-    rubyBindings = getConfig ["radare" "rubyBindings"] false;
-    luaBindings = getConfig ["radare" "luaBindings"] false;
+    useX11 = config.radare.useX11 or false;
+    pythonBindings = config.radare.pythonBindings or false;
+    rubyBindings = config.radare.rubyBindings or false;
+    luaBindings = config.radare.luaBindings or false;
   };
 
   ragel = callPackage ../development/tools/parsing/ragel { };
@@ -3233,6 +3303,8 @@ let
 
   axis = callPackage ../development/libraries/axis { };
 
+  babl_0_0_22 = callPackage ../development/libraries/babl/0_0_22.nix { };
+
   babl = callPackage ../development/libraries/babl { };
 
   beecrypt = callPackage ../development/libraries/beecrypt { };
@@ -3245,12 +3317,12 @@ let
   boost146 = callPackage ../development/libraries/boost/1.46.nix { };
   boost147 = callPackage ../development/libraries/boost/1.47.nix { };
   boost149 = callPackage ../development/libraries/boost/1.49.nix { };
-  boost150 = callPackage ../development/libraries/boost/1.50.nix { };
-  boost = boost150;
+  boost151 = callPackage ../development/libraries/boost/1.51.nix { };
+  boost = boost151;
 
   boostHeaders149 = callPackage ../development/libraries/boost/1.49-headers.nix { };
-  boostHeaders150 = callPackage ../development/libraries/boost/1.50-headers.nix { };
-  boostHeaders = boostHeaders150;
+  boostHeaders151 = callPackage ../development/libraries/boost/1.51-headers.nix { };
+  boostHeaders = boostHeaders151;
 
   botan = callPackage ../development/libraries/botan { };
 
@@ -3272,6 +3344,7 @@ let
 
   celt = callPackage ../development/libraries/celt {};
   celt_0_7 = callPackage ../development/libraries/celt/0.7.nix {};
+  celt_0_5_1 = callPackage ../development/libraries/celt/0.5.1.nix {};
 
   cgal = callPackage ../development/libraries/CGAL {};
 
@@ -3308,6 +3381,8 @@ let
 
   clppcre = builderDefsPackage (import ../development/libraries/cl-ppcre) { };
 
+  clucene_core_2 = callPackage ../development/libraries/clucene-core/2.x.nix { };
+
   clucene_core = callPackage ../development/libraries/clucene-core { };
 
   cluceneCore = clucene_core; # !!! remove this
@@ -3383,6 +3458,8 @@ let
 
   dragonegg = callPackage ../development/compilers/llvm/dragonegg.nix { };
 
+  dxflib = callPackage ../development/libraries/dxflib {};
+
   eigen = callPackage ../development/libraries/eigen {};
 
   enchant = callPackage ../development/libraries/enchant { };
@@ -3486,6 +3563,9 @@ let
     #  avocodec avformat librsvg
   };
 
+  gegl_0_0_22 = callPackage ../development/libraries/gegl/0_0_22.nix {
+    #  avocodec avformat librsvg
+  };
   geoclue = callPackage ../development/libraries/geoclue {};
 
   geoip = builderDefsPackage ../development/libraries/geoip {
@@ -3529,19 +3609,19 @@ let
 
   glibc29 = callPackage ../development/libraries/glibc/2.9 {
     kernelHeaders = linuxHeaders;
-    installLocales = getConfig [ "glibc" "locales" ] false;
+    installLocales = config.glibc.locales or false;
   };
 
   glibc29Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc/2.9) {
     inherit stdenv fetchurl;
     gccCross = gccCrossStageStatic;
     kernelHeaders = linuxHeadersCross;
-    installLocales = getConfig [ "glibc" "locales" ] false;
+    installLocales = config.glibc.locales or false;
   });
 
   glibc213 = (callPackage ../development/libraries/glibc/2.13 {
     kernelHeaders = linuxHeaders;
-    installLocales = getConfig [ "glibc" "locales" ] false;
+    installLocales = config.glibc.locales or false;
     machHeaders = null;
     hurdHeaders = null;
     gccCross = null;
@@ -3553,7 +3633,7 @@ let
        inherit stdenv fetchurl;
        gccCross = gccCrossStageStatic;
        kernelHeaders = if crossGNU then gnu.hurdHeaders else linuxHeadersCross;
-       installLocales = getConfig [ "glibc" "locales" ] false;
+       installLocales = config.glibc.locales or false;
      }
      // lib.optionalAttrs crossGNU {
         inherit (gnu) machHeaders hurdHeaders libpthreadHeaders mig;
@@ -3562,7 +3642,7 @@ let
 
   glibc214 = (callPackage ../development/libraries/glibc/2.14 {
     kernelHeaders = linuxHeaders;
-    installLocales = getConfig [ "glibc" "locales" ] false;
+    installLocales = config.glibc.locales or false;
     machHeaders = null;
     hurdHeaders = null;
     gccCross = null;
@@ -3574,7 +3654,7 @@ let
        inherit stdenv fetchurl;
        gccCross = gccCrossStageStatic;
        kernelHeaders = if crossGNU then gnu.hurdHeaders else linuxHeadersCross;
-       installLocales = getConfig [ "glibc" "locales" ] false;
+       installLocales = config.glibc.locales or false;
      }
      // lib.optionalAttrs crossGNU {
         inherit (gnu) machHeaders hurdHeaders libpthreadHeaders mig;
@@ -3593,7 +3673,7 @@ let
 
   eglibc = callPackage ../development/libraries/eglibc {
     kernelHeaders = linuxHeaders;
-    installLocales = getConfig [ "glibc" "locales" ] false;
+    installLocales = config.glibc.locales or false;
   };
 
   glibcLocales = callPackage ../development/libraries/glibc/2.13/locales.nix { };
@@ -3701,11 +3781,11 @@ let
   };
 
   gnutls = callPackage ../development/libraries/gnutls {
-    guileBindings = getConfig ["gnutls" "guile"] true;
+    guileBindings = config.gnutls.guile or true;
   };
 
   gnutls2 = callPackage ../development/libraries/gnutls/2.12.nix {
-    guileBindings = getConfig ["gnutls" "guile"] true;
+    guileBindings = config.gnutls.guile or true;
   };
 
   gnutls_without_guile = gnutls.override { guileBindings = false; };
@@ -3894,7 +3974,7 @@ let
   libaal = callPackage ../development/libraries/libaal { };
 
   libao = callPackage ../development/libraries/libao {
-    usePulseAudio = getConfig [ "pulseaudio" ] true;
+    usePulseAudio = config.pulseaudio or true;
   };
 
   libarchive = callPackage ../development/libraries/libarchive { };
@@ -3925,6 +4005,8 @@ let
 
   libcdio = callPackage ../development/libraries/libcdio { };
 
+  libcdr = callPackage ../development/libraries/libcdr { };
+
   libchamplain = callPackage ../development/libraries/libchamplain {
     inherit (gnome) libsoup;
   };
@@ -4028,6 +4110,8 @@ let
     libmpeg2 = mpeg2dec;
   };
 
+  libexttextcat = callPackage ../development/libraries/libexttextcat {};
+
   libf2c = callPackage ../development/libraries/libf2c {};
 
   libfixposix = callPackage ../development/libraries/libfixposix {};
@@ -4061,7 +4145,7 @@ let
   libimobiledevice = callPackage ../development/libraries/libimobiledevice { };
 
   libiodbc = callPackage ../development/libraries/libiodbc {
-    useGTK = getConfig [ "libiodbc" "gtk" ] false;
+    useGTK = config.libiodbc.gtk or false;
   };
 
   liblastfmSF = callPackage ../development/libraries/liblastfmSF { };
@@ -4070,6 +4154,8 @@ let
 
   liblqr1 = callPackage ../development/libraries/liblqr-1 { };
 
+  liblockfile = callPackage ../development/libraries/liblockfile { };
+
   libmhash = callPackage ../development/libraries/libmhash {};
 
   libmtp = callPackage ../development/libraries/libmtp { };
@@ -4084,6 +4170,9 @@ let
 
   libQGLViewer = callPackage ../development/libraries/libqglviewer { };
 
+  libre = callPackage ../development/libraries/libre {};
+  librem = callPackage ../development/libraries/librem {};
+
   libsamplerate = callPackage ../development/libraries/libsamplerate { };
 
   libspectre = callPackage ../development/libraries/libspectre { };
@@ -4094,9 +4183,12 @@ let
 
   libiconv = callPackage ../development/libraries/libiconv { };
 
-  libiconvOrEmpty = if (libiconvOrNull == null) then [] else libiconv;
+  libiconvOrEmpty = if (libiconvOrNull == null) then [] else [libiconv];
 
-  libiconvOrNull = if gcc ? libc then null else libiconv;
+  libiconvOrNull =
+    if ((gcc ? libc && (gcc.libc != null)) || stdenv.isGlibc)
+    then null
+    else libiconv;
 
   libiconvOrLibc = if (libiconvOrNull == null) then gcc.libc else libiconv;
 
@@ -4182,6 +4274,8 @@ let
 
   liboop = callPackage ../development/libraries/liboop { };
 
+  libopus = callPackage ../development/libraries/libopus { };
+
   libosip = callPackage ../development/libraries/osip {};
 
   libotr = callPackage ../development/libraries/libotr { };
@@ -4265,6 +4359,8 @@ let
 
   libvirt = callPackage ../development/libraries/libvirt { };
 
+  libvisio = callPackage ../development/libraries/libvisio { };
+
   libvncserver = builderDefsPackage (import ../development/libraries/libvncserver) {
     inherit libtool libjpeg openssl zlib;
     inherit (xlibs) xproto libX11 damageproto libXdamage
@@ -4351,6 +4447,8 @@ let
 
   lzo = callPackage ../development/libraries/lzo { };
 
+  mdds = callPackage ../development/libraries/mdds { };
+
   # failed to build
   mediastreamer = callPackage ../development/libraries/mediastreamer { };
 
@@ -4407,6 +4505,8 @@ let
 
   mysocketw = callPackage ../development/libraries/mysocketw { };
 
+  mythes = callPackage ../development/libraries/mythes { };
+
   ncurses = makeOverridable (import ../development/libraries/ncurses) {
     inherit fetchurl;
     unicode = system != "i686-cygwin";
@@ -4469,6 +4569,7 @@ let
   openbabel = callPackage ../development/libraries/openbabel { };
 
   opencascade = callPackage ../development/libraries/opencascade {
+    automake = automake111x;
     ftgl = ftgl212;
   };
 
@@ -4512,6 +4613,10 @@ let
 
   openssl = callPackage ../development/libraries/openssl {
     fetchurl = fetchurlBoot;
+    cryptodevHeaders = linuxPackages.cryptodev.override {
+      fetchurl = fetchurlBoot;
+      onlyHeaders = true;
+    };
   };
 
   ortp = callPackage ../development/libraries/ortp { };
@@ -4521,7 +4626,12 @@ let
   pangoxsl = callPackage ../development/libraries/pangoxsl { };
 
   pcre = callPackage ../development/libraries/pcre {
-    unicodeSupport = getConfig ["pcre" "unicode"] true;
+    unicodeSupport = config.pcre.unicode or true;
+    cplusplusSupport = !stdenv ? isDietLibC;
+  };
+
+  pcre_8_30 = callPackage ../development/libraries/pcre/8.30.nix {
+    unicodeSupport = config.pcre.unicode or true;
     cplusplusSupport = !stdenv ? isDietLibC;
   };
 
@@ -4570,6 +4680,8 @@ let
 
   protobuf = callPackage ../development/libraries/protobuf { };
 
+  protobufc = callPackage ../development/libraries/protobufc { };
+
   pth = callPackage ../development/libraries/pth { };
 
   ptlib = callPackage ../development/libraries/ptlib {};
@@ -4582,6 +4694,8 @@ let
 
   qjson = callPackage ../development/libraries/qjson { };
 
+  qoauth = callPackage ../development/libraries/qoauth { };
+
   qt3 = callPackage ../development/libraries/qt-3 {
     openglSupport = mesaSupported;
   };
@@ -4658,6 +4772,8 @@ let
     inherit (vamp) vampSDK;
   };
 
+  sbc = callPackage ../development/libraries/sbc { };
+
   schroedinger = callPackage ../development/libraries/schroedinger { };
 
   SDL = callPackage ../development/libraries/SDL {
@@ -4707,6 +4823,8 @@ let
 
   sord = callPackage ../development/libraries/sord {};
 
+  spandsp = callPackage ../development/libraries/spandsp {};
+
   speechd = callPackage ../development/libraries/speechd { };
 
   speech_tools = callPackage ../development/libraries/speech-tools {};
@@ -4715,6 +4833,13 @@ let
 
   sphinxbase = callPackage ../development/libraries/sphinxbase { };
 
+  spice = callPackage ../development/libraries/spice {
+    celt = celt_0_5_1;
+    inherit (xlibs) libXrandr libXfixes libXext libXrender libXinerama;
+  };
+
+  spice_protocol = callPackage ../development/libraries/spice-protocol { };
+
   sratom = callPackage ../development/libraries/audio/sratom { };
 
   srtp = callPackage ../development/libraries/srtp {};
@@ -4759,6 +4884,8 @@ let
 
   tclap = callPackage ../development/libraries/tclap {};
 
+  tclgpg = callPackage ../development/libraries/tclgpg { };
+
   tcllib = callPackage ../development/libraries/tcllib { };
 
   tcltls = callPackage ../development/libraries/tcltls { };
@@ -4968,9 +5095,7 @@ let
 
   javasvn = callPackage ../development/libraries/java/javasvn { };
 
-  jclasslib = callPackage ../development/tools/java/jclasslib {
-    ant = apacheAnt14;
-  };
+  jclasslib = callPackage ../development/tools/java/jclasslib { };
 
   jdom = callPackage ../development/libraries/java/jdom { };
 
@@ -5000,7 +5125,7 @@ let
     inherit (gnome) libsoup;
   };
 
-  v8 = callPackage ../development/libraries/v8 { };
+  v8 = callPackage ../development/libraries/v8 { inherit (pythonPackages) gyp; };
 
   xalanj = xalanJava;
   xalanJava = callPackage ../development/libraries/java/xalanj {
@@ -5016,7 +5141,6 @@ let
 
   jquery_ui = callPackage ../development/libraries/javascript/jquery-ui { };
 
-
   ### DEVELOPMENT / PERL MODULES
 
   buildPerlPackage = import ../development/perl-modules/generic perl;
@@ -5160,9 +5284,6 @@ let
   };
 
   dovecot = callPackage ../servers/mail/dovecot { };
-  dovecot_1_1_1 = callPackage ../servers/mail/dovecot/1.1.1.nix { };
-  dovecot_2 = callPackage ../servers/mail/dovecot/2.x.nix { };
-  dovecot_2_0 = pkgs.dovecot_2; # Actually, 2.1
 
   ejabberd = callPackage ../servers/xmpp/ejabberd { };
 
@@ -5204,6 +5325,8 @@ let
 
   memcached = callPackage ../servers/memcached {};
 
+  mod_evasive = callPackage ../servers/http/apache-modules/mod_evasive { };
+
   mod_python = callPackage ../servers/http/apache-modules/mod_python { };
 
   mod_fastcgi = callPackage ../servers/http/apache-modules/mod_fastcgi { };
@@ -5219,6 +5342,8 @@ let
 
   nginx = callPackage ../servers/http/nginx { };
 
+  popa3d = callPackage ../servers/mail/popa3d { };
+
   postfix = callPackage ../servers/mail/postfix { };
 
   pulseaudio = callPackage ../servers/pulseaudio {
@@ -5238,11 +5363,10 @@ let
 
   rpcbind = callPackage ../servers/rpcbind { };
 
-  monetdb = callPackage ../servers/sql/monetdb { };
+  #monetdb = callPackage ../servers/sql/monetdb { };
 
   mongodb = callPackage ../servers/nosql/mongodb {
-    boost = boost149;
-    useV8 = (getConfig ["mongodb" "useV8"] false);
+    useV8 = (config.mongodb.useV8 or false);
   };
 
   mysql4 = import ../servers/sql/mysql {
@@ -5308,6 +5432,8 @@ let
 
   redstore = callPackage ../servers/http/redstore { };
 
+  restund = callPackage ../servers/restund {};
+
   spamassassin = callPackage ../servers/mail/spamassassin {
     inherit (perlPackages) HTMLParser NetDNS NetAddrIP DBFile
       HTTPDate MailDKIM;
@@ -5405,6 +5531,8 @@ let
     inherit (perlPackages) LocaleGettext TermReadKey RpcXML;
   };
 
+  atop = callPackage ../os-specific/linux/atop { };
+
   b43Firmware_5_1_138 = callPackage ../os-specific/linux/firmware/b43-firmware/5.1.138.nix { };
 
   b43FirmwareCutter = callPackage ../os-specific/linux/firmware/b43-firmware-cutter { };
@@ -5453,6 +5581,8 @@ let
 
   drbd = callPackage ../os-specific/linux/drbd { };
 
+  dstat = callPackage ../os-specific/linux/dstat { };
+
   libuuid =
     if crossSystem != null && crossSystem.config == "i586-pc-gnu"
     then (utillinux // {
@@ -5531,8 +5661,12 @@ let
 
   ipw2200fw = callPackage ../os-specific/linux/firmware/ipw2200 { };
 
+  iw = callPackage ../os-specific/linux/iw { };
+
   iwlwifi1000ucode = callPackage ../os-specific/linux/firmware/iwlwifi-1000-ucode { };
 
+  iwlwifi2030ucode = callPackage ../os-specific/linux/firmware/iwlwifi-2030-ucode { };
+
   iwlwifi3945ucode = callPackage ../os-specific/linux/firmware/iwlwifi-3945-ucode { };
 
   iwlwifi4965ucodeV1 = callPackage ../os-specific/linux/firmware/iwlwifi-4965-ucode { };
@@ -5565,10 +5699,6 @@ let
 
   libnl = callPackage ../os-specific/linux/libnl { };
 
-  libnl2 = callPackage ../os-specific/linux/libnl/v2.nix { };
-
-  libnl1 = callPackage ../os-specific/linux/libnl/v1.nix { };
-
   linuxHeaders = callPackage ../os-specific/linux/kernel-headers { };
 
   linuxHeaders33 = callPackage ../os-specific/linux/kernel-headers/3.3.5.nix { };
@@ -5705,6 +5835,19 @@ let
       ];
   };
 
+  linux_3_5 = makeOverridable (import ../os-specific/linux/kernel/linux-3.5.nix) {
+    inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
+    kernelPatches =
+      [
+        kernelPatches.sec_perm_2_6_24
+        kernelPatches.aufs3_5
+        kernelPatches.perf3_5
+      ] ++ lib.optionals (platform.kernelArch == "mips")
+      [ kernelPatches.mips_fpureg_emu
+        kernelPatches.mips_fpu_sigill
+      ];
+  };
+
   /* Linux kernel modules are inherently tied to a specific kernel.  So
      rather than provide specific instances of those packages for a
      specific kernel, we have a function that builds those packages
@@ -5741,6 +5884,8 @@ let
 
     blcr = callPackage ../os-specific/linux/blcr { };
 
+    cryptodev = callPackage ../os-specific/linux/cryptodev { };
+
     e1000e = callPackage ../os-specific/linux/e1000e {};
 
     exmap = callPackage ../os-specific/linux/exmap { };
@@ -5780,8 +5925,10 @@ let
       linuxHeaders = glibc.kernelHeaders;
     };
 
-    splashutils =
-      if kernel.features ? fbConDecor then pkgs.splashutils else null;
+    splashutils = let hasFbConDecor = if kernel ? features
+      then kernel.features ? fbConDecor
+      else kernel.config.isEnabled "FB_CON_DECOR";
+    in if hasFbConDecor then pkgs.splashutils else null;
 
     /* compiles but has to be integrated into the kernel somehow
       Let's have it uncommented and finish it..
@@ -5825,11 +5972,17 @@ let
   linuxPackages_3_2_xen = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_2_xen pkgs.linuxPackages_3_2_xen);
   linuxPackages_3_3 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_3 pkgs.linuxPackages_3_3);
   linuxPackages_3_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_4 pkgs.linuxPackages_3_4);
+  linuxPackages_3_5 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_5 pkgs.linuxPackages_3_5);
 
   # The current default kernel / kernel modules.
   linux = linuxPackages.kernel;
   linuxPackages = linuxPackages_3_2;
 
+  # A function to build a manually-configured kernel
+  linuxManualConfig = import ../os-specific/linux/kernel/manual-config.nix {
+    inherit (pkgs) stdenv runCommand nettools perl kmod writeTextFile;
+  };
+
   keyutils = callPackage ../os-specific/linux/keyutils { };
 
   libselinux = callPackage ../os-specific/linux/libselinux { };
@@ -5932,8 +6085,8 @@ let
   pam_usb = callPackage ../os-specific/linux/pam_usb { };
 
   pcmciaUtils = callPackage ../os-specific/linux/pcmciautils {
-    firmware = getConfig ["pcmciaUtils" "firmware"] [];
-    config = getConfig ["pcmciaUtils" "config"] null;
+    firmware = config.pcmciaUtils.firmware or [];
+    config = config.pcmciaUtils.config or null;
   };
 
   phat = callPackage ../development/libraries/phat {
@@ -5944,6 +6097,8 @@ let
 
   pmutils = callPackage ../os-specific/linux/pm-utils { };
 
+  pmtools = callPackage ../os-specific/linux/pmtools { };
+
   policycoreutils = callPackage ../os-specific/linux/policycoreutils { };
 
   powertop = callPackage ../os-specific/linux/powertop { };
@@ -5976,8 +6131,6 @@ let
 
   rt2870fw = callPackage ../os-specific/linux/firmware/rt2870 { };
 
-  rt73fw = callPackage ../os-specific/linux/firmware/rt73 { };
-
   rtkit = callPackage ../os-specific/linux/rtkit { };
 
   rtl8192cfw = callPackage ../os-specific/linux/firmware/rtl8192c { };
@@ -6038,7 +6191,7 @@ let
 
   uclibc = callPackage ../os-specific/linux/uclibc { };
 
-  uclibcCross = import ../os-specific/linux/uclibc {
+  uclibcCross = callPackage ../os-specific/linux/uclibc {
     inherit fetchurl stdenv libiconv;
     linuxHeaders = linuxHeadersCross;
     gccCross = gccCrossStageStatic;
@@ -6051,14 +6204,6 @@ let
 
   udisks = callPackage ../os-specific/linux/udisks { };
 
-  uml = linux.override {
-    userModeLinux = true;
-  };
-
-  umlutilities = callPackage ../os-specific/linux/uml-utilities {
-    tunctl = true; mconsole = true;
-  };
-
   untie = callPackage ../os-specific/linux/untie { };
 
   upower = callPackage ../os-specific/linux/upower { };
@@ -6245,6 +6390,8 @@ let
     inherit fontforge;
   };
 
+  lmmath = callPackage ../data/fonts/lmodern/lmmath.nix {};
+
   lmodern = callPackage ../data/fonts/lmodern { };
 
   manpages = callPackage ../data/documentation/man-pages { };
@@ -6291,6 +6438,8 @@ let
 
   ttf_bitstream_vera = callPackage ../data/fonts/ttf-bitstream-vera { };
 
+  tzdata = callPackage ../data/misc/tzdata { };
+
   ubuntu_font_family = callPackage ../data/fonts/ubuntu-font-family { };
 
   ucsFonts = callPackage ../data/fonts/ucs-fonts { };
@@ -6332,6 +6481,8 @@ let
 
   adobeReader = callPackage_i686 ../applications/misc/adobe-reader { };
 
+  aewan = callPackage ../applications/editors/aewan { };
+
   amsn = callPackage ../applications/networking/instant-messengers/amsn { };
 
   antiword = callPackage ../applications/office/antiword {};
@@ -6367,6 +6518,8 @@ let
     cairo = cairo.override { xcbSupport = true; };
   };
 
+  baresip = callPackage ../applications/networking/instant-messengers/baresip {};
+
   batik = callPackage ../applications/graphics/batik { };
 
   bazaar = callPackage ../applications/version-management/bazaar { };
@@ -6519,7 +6672,7 @@ let
   dvswitch = callPackage ../applications/video/dvswitch { };
 
   dwm = callPackage ../applications/window-managers/dwm {
-    patches = getConfig [ "dwm" "patches" ] [];
+    patches = config.dwm.patches or [];
   };
 
   eaglemode = callPackage ../applications/misc/eaglemode { };
@@ -6552,8 +6705,8 @@ let
          literal backslashes have changed.  */
       else overrideGCC stdenv gcc44;
 
-    xaw3dSupport = getConfig [ "emacs" "xaw3dSupport" ] false;
-    gtkGUI = getConfig [ "emacs" "gtkSupport" ] true;
+    xaw3dSupport = config.emacs.xaw3dSupport or false;
+    gtkGUI = config.emacs.gtkSupport or true;
   };
 
   emacs23 = callPackage ../applications/editors/emacs-23 {
@@ -6587,12 +6740,18 @@ let
   emacsPackages = emacs: self: let callPackage = newScope self; in rec {
     inherit emacs;
 
+    autoComplete = callPackage ../applications/editors/emacs-modes/auto-complete { };
+
     bbdb = callPackage ../applications/editors/emacs-modes/bbdb { };
 
     cedet = callPackage ../applications/editors/emacs-modes/cedet { };
 
     calfw = callPackage ../applications/editors/emacs-modes/calfw { };
 
+    coffee = callPackage ../applications/editors/emacs-modes/coffee { };
+
+    colorTheme = callPackage ../applications/editors/emacs-modes/color-theme { };
+
     cua = callPackage ../applications/editors/emacs-modes/cua { };
 
     ecb = callPackage ../applications/editors/emacs-modes/ecb { };
@@ -6605,6 +6764,14 @@ let
 
     emms = callPackage ../applications/editors/emacs-modes/emms { };
 
+    flymakeCursor = callPackage ../applications/editors/emacs-modes/flymake-cursor { };
+
+    gh = callPackage ../applications/editors/emacs-modes/gh { };
+
+    gist = callPackage ../applications/editors/emacs-modes/gist { };
+
+    jade = callPackage ../applications/editors/emacs-modes/jade { };
+
     jdee = callPackage ../applications/editors/emacs-modes/jdee {
       # Requires Emacs 23, for `avl-tree'.
     };
@@ -6621,6 +6788,10 @@ let
 
     htmlize = callPackage ../applications/editors/emacs-modes/htmlize { };
 
+    logito = callPackage ../applications/editors/emacs-modes/logito { };
+
+    loremIpsum = callPackage ../applications/editors/emacs-modes/lorem-ipsum { };
+
     magit = callPackage ../applications/editors/emacs-modes/magit { };
 
     maudeMode = callPackage ../applications/editors/emacs-modes/maude { };
@@ -6633,6 +6804,10 @@ let
     # we want it to have higher precedence.
     org = hiPrio (callPackage ../applications/editors/emacs-modes/org { });
 
+    org2blog = callPackage ../applications/editors/emacs-modes/org2blog { };
+
+    pcache = callPackage ../applications/editors/emacs-modes/pcache { };
+
     phpMode = callPackage ../applications/editors/emacs-modes/php { };
 
     prologMode = callPackage ../applications/editors/emacs-modes/prolog { };
@@ -6645,11 +6820,17 @@ let
 
     quack = callPackage ../applications/editors/emacs-modes/quack { };
 
+    rectMark = callPackage ../applications/editors/emacs-modes/rect-mark { };
+
     remember = callPackage ../applications/editors/emacs-modes/remember { };
 
     rudel = callPackage ../applications/editors/emacs-modes/rudel { };
 
     scalaMode = callPackage ../applications/editors/emacs-modes/scala-mode { };
+
+    sunriseCommander = callPackage ../applications/editors/emacs-modes/sunrise-commander { };
+
+    xmlRpc = callPackage ../applications/editors/emacs-modes/xml-rpc { };
   };
 
   emacs22Packages = emacsPackages emacs22 pkgs.emacs22Packages;
@@ -6660,6 +6841,8 @@ let
 
   espeak = callPackage ../applications/audio/espeak { };
 
+  espeakedit = callPackage ../applications/audio/espeak/edit.nix { };
+
   esniper = callPackage ../applications/networking/esniper { };
 
   etherape = callPackage ../applications/networking/sniffers/etherape {
@@ -6699,7 +6882,7 @@ let
   grass = import ../applications/misc/grass {
     inherit (xlibs) libXmu libXext libXp libX11 libXt libSM libICE libXpm
       libXaw libXrender;
-    inherit getConfig composableDerivation stdenv fetchurl
+    inherit config composableDerivation stdenv fetchurl
       lib flex bison cairo fontconfig
       gdal zlib ncurses gdbm proj pkgconfig swig
       blas liblapack libjpeg libpng mysql unixODBC mesa postgresql python
@@ -6750,6 +6933,13 @@ let
 
   firefox13Wrapper = lowPrio (wrapFirefox { browser = firefox13Pkgs.firefox; });
 
+  firefox15Pkgs = callPackage ../applications/networking/browsers/firefox/15.0.nix {
+    inherit (gnome) libIDL;
+    inherit (pythonPackages) pysqlite;
+  };
+
+  firefox15Wrapper = lowPrio (wrapFirefox { browser = firefox15Pkgs.firefox; });
+
   flac = callPackage ../applications/audio/flac { };
 
   flashplayer = flashplayer11;
@@ -6757,11 +6947,11 @@ let
   flashplayer9 = callPackage ../applications/networking/browsers/mozilla-plugins/flashplayer-9 { };
 
   flashplayer10 = callPackage ../applications/networking/browsers/mozilla-plugins/flashplayer-10 {
-    debug = getConfig ["flashplayer" "debug"] false;
+    debug = config.flashplayer.debug or false;
   };
 
   flashplayer11 = callPackage ../applications/networking/browsers/mozilla-plugins/flashplayer-11 {
-    debug = getConfig ["flashplayer" "debug"] false;
+    debug = config.flashplayer.debug or false;
     # !!! Fix the dependency on two different builds of nss.
   };
 
@@ -6790,7 +6980,7 @@ let
 
   get_iplayer = callPackage ../applications/misc/get_iplayer {};
 
-  gimp = callPackage ../applications/graphics/gimp {
+  gimp_2_6 = callPackage ../applications/graphics/gimp {
     inherit (gnome) libart_lgpl;
   };
 
@@ -6798,6 +6988,8 @@ let
     inherit (gnome) libart_lgpl;
   };
 
+  gimp = gimp_2_6;
+
   gimpPlugins = recurseIntoAttrs (import ../applications/graphics/gimp/plugins {
     inherit pkgs gimp;
   });
@@ -6824,6 +7016,8 @@ let
 
   libquvi = callPackage ../applications/video/quvi/library.nix { };
 
+  praat = callPackage ../applications/audio/praat { };
+
   quvi = callPackage ../applications/video/quvi/tool.nix { };
 
   quvi_scripts = callPackage ../applications/video/quvi/scripts.nix { };
@@ -6851,7 +7045,7 @@ let
   gnunet08 = callPackage ../applications/networking/p2p/gnunet/0.8.nix {
     inherit (gnome) libglade;
     guile = guile_1_8;
-    gtkSupport = getConfig [ "gnunet" "gtkSupport" ] true;
+    gtkSupport = config.gnunet.gtkSupport or true;
   };
 
   gnunet = callPackage ../applications/networking/p2p/gnunet { };
@@ -6926,6 +7120,8 @@ let
 
   hello = callPackage ../applications/misc/hello/ex-2 { };
 
+  hexedit = callPackage ../applications/editors/hexedit { };
+
   homebank = callPackage ../applications/office/homebank { };
 
   htmldoc = callPackage ../applications/misc/htmldoc {
@@ -6970,10 +7166,13 @@ let
 
   id3v2 = callPackage ../applications/audio/id3v2 { };
 
+  ii = callPackage ../applications/networking/irc/ii { };
+
   ikiwiki = callPackage ../applications/misc/ikiwiki {
     inherit (perlPackages) TextMarkdown URI HTMLParser HTMLScrubber
       HTMLTemplate TimeDate CGISession DBFile CGIFormBuilder LocaleGettext
-      RpcXML XMLSimple PerlMagick YAML YAMLLibYAML HTMLTree Filechdir;
+      RpcXML XMLSimple PerlMagick YAML YAMLLibYAML HTMLTree Filechdir
+      AuthenPassphrase NetOpenIDConsumer LWPxParanoidAgent CryptSSLeay;
   };
 
   imagemagick = callPackage ../applications/graphics/ImageMagick {
@@ -7003,6 +7202,8 @@ let
 
   bip = callPackage ../applications/networking/irc/bip { };
 
+  jack_capture = callPackage ../applications/audio/jack-capture { };
+
   jackmeter = callPackage ../applications/audio/jackmeter { };
 
   jedit = callPackage ../applications/editors/jedit { };
@@ -7043,6 +7244,8 @@ let
     fftw = fftwSinglePrec;
   };
 
+  lastwatch = callPackage ../applications/audio/lastwatch { };
+
   lci = callPackage ../applications/science/logic/lci {};
 
   ldcpp = callPackage ../applications/networking/p2p/ldcpp {
@@ -7056,6 +7259,7 @@ let
     inherit (gnome) GConf ORBit2 gnome_vfs;
     zip = zip.override { enableNLS = false; };
     boost = boost149;
+    jdk = openjdk;
     fontsConf = makeFontsConf {
       fontDirectories = [
         freefont_ttf xorg.fontmiscmisc xorg.fontbhttf
@@ -7088,9 +7292,7 @@ let
 
   lynx = callPackage ../applications/networking/browsers/lynx { };
 
-  lyx = callPackage ../applications/misc/lyx {
-   qt = qt4;
-  };
+  lyx = callPackage ../applications/misc/lyx { };
 
   makeself = callPackage ../applications/misc/makeself { };
 
@@ -7204,7 +7406,7 @@ let
     avahi = avahi.override {
       withLibdnssdCompat = true;
     };
-    jackSupport = getConfig [ "mumble" "jackSupport" ] false;
+    jackSupport = config.mumble.jackSupport or false;
   };
 
   mutt = callPackage ../applications/networking/mailreaders/mutt { };
@@ -7227,6 +7429,8 @@ let
 
   navit = callPackage ../applications/misc/navit { };
 
+  ncdu = callPackage ../tools/misc/ncdu { };
+
   nedit = callPackage ../applications/editors/nedit {
       motif = lesstif;
   };
@@ -7271,6 +7475,8 @@ let
     inherit (pkgs.kde4) kdelibs;
   };
 
+  opusTools = callPackage ../applications/audio/opus-tools { };
+
   pan = callPackage ../applications/networking/newsreaders/pan {
     spellChecking = false;
   };
@@ -7291,10 +7497,14 @@ let
 
   pianobooster = callPackage ../applications/audio/pianobooster { };
 
+  picard = callPackage ../applications/audio/picard { };
+
+  picocom = callPackage ../tools/misc/picocom { };
+
   pidgin = callPackage ../applications/networking/instant-messengers/pidgin {
-    openssl = if (getConfig ["pidgin" "openssl"] true) then openssl else null;
-    gnutls = if (getConfig ["pidgin" "gnutls"] false) then gnutls else null;
-    libgcrypt = if (getConfig ["pidgin" "gnutls"] false) then libgcrypt else null;
+    openssl = if (config.pidgin.openssl or true) then openssl else null;
+    gnutls = if (config.pidgin.gnutls or false) then gnutls else null;
+    libgcrypt = if (config.pidgin.gnutls or false) then libgcrypt else null;
     inherit (gnome) startupnotification;
   };
 
@@ -7359,6 +7569,8 @@ let
     fltk = fltk13;
   };
 
+  rapcad = callPackage ../applications/graphics/rapcad {};
+
   rapidsvn = callPackage ../applications/version-management/rapidsvn { };
 
   ratpoison = callPackage ../applications/window-managers/ratpoison { };
@@ -7369,7 +7581,7 @@ let
 
   rdesktop = callPackage ../applications/networking/remote/rdesktop { };
 
-  RealPlayer = callPackage ../applications/video/RealPlayer {
+  RealPlayer = callPackage_i686 ../applications/video/RealPlayer {
     libstdcpp5 = gcc33.gcc;
   };
 
@@ -7381,7 +7593,7 @@ let
 
   rsync = callPackage ../applications/networking/sync/rsync {
     enableACLs = !(stdenv.isDarwin || stdenv.isSunOS);
-    enableCopyDevicesPatch = (getConfig ["rsync" "enableCopyDevicesPatch"] false);
+    enableCopyDevicesPatch = (config.rsync.enableCopyDevicesPatch or false);
   };
 
   rxvt = callPackage ../applications/misc/rxvt { };
@@ -7399,7 +7611,6 @@ let
 
   scribus = callPackage ../applications/office/scribus {
     inherit (gnome) libart_lgpl;
-    qt = qt4;
   };
 
   seeks = callPackage ../tools/networking/p2p/seeks {
@@ -7415,9 +7626,11 @@ let
   siproxd = callPackage ../applications/networking/siproxd { };
 
   skype_linux = callPackage_i686 ../applications/networking/instant-messengers/skype {
-    usePulseAudio = getConfig [ "pulseaudio" ] false; # disabled by default (the 100% cpu bug)
+    usePulseAudio = config.pulseaudio or false; # disabled by default (the 100% cpu bug)
   };
 
+  st = callPackage ../applications/misc/st { };
+
   dropbox = callPackage ../applications/networking/dropbox { };
 
   slim = callPackage ../applications/display-managers/slim { };
@@ -7474,6 +7687,7 @@ let
 
   surf = callPackage ../applications/misc/surf {
     libsoup = gnome.libsoup;
+    webkit = webkit_gtk2;
   };
 
   svk = perlPackages.SVK;
@@ -7507,7 +7721,7 @@ let
   taskjuggler = callPackage ../applications/misc/taskjuggler {
     # KDE support is not working yet.
     inherit (kde3) kdelibs kdebase;
-    withKde = getConfig [ "taskJuggler" "kde" ] false;
+    withKde = config.taskJuggler.kde or false;
   };
 
   taskwarrior = callPackage ../applications/misc/taskwarrior { };
@@ -7534,6 +7748,8 @@ let
     inherit (gnome) libIDL;
   };
 
+  tig = gitAndTools.tig;
+
   timidity = callPackage ../tools/misc/timidity { };
 
   tkcvs = callPackage ../applications/version-management/tkcvs { };
@@ -7559,9 +7775,11 @@ let
     libzrtpcpp = libzrtpcpp_1_6;
   };
 
+  umurmur = callPackage ../applications/networking/umurmur { };
+
   unison = callPackage ../applications/networking/sync/unison {
     inherit (ocamlPackages) lablgtk;
-    enableX11 = getConfig [ "unison" "enableX11" ] true;
+    enableX11 = config.unison.enableX11 or true;
   };
 
   uucp = callPackage ../tools/misc/uucp { };
@@ -7591,25 +7809,24 @@ let
   vimHugeX = vim_configurable;
 
   vim_configurable = import ../applications/editors/vim/configurable.nix {
-    inherit (pkgs) fetchurl stdenv ncurses pkgconfig gettext composableDerivation lib
-      getConfig;
-    inherit (pkgs.xlibs) libX11 libXext libSM libXpm
-        libXt libXaw libXau libXmu libICE;
+    inherit (pkgs) fetchurl stdenv ncurses pkgconfig gettext composableDerivation lib config;
+    inherit (pkgs.xlibs) libX11 libXext libSM libXpm libXt libXaw libXau libXmu libICE;
     inherit (pkgs) glib gtk;
     features = "huge"; # one of  tiny, small, normal, big or huge
     # optional features by passing
     # python
     # TODO mzschemeinterp perlinterp
     inherit (pkgs) python perl tcl ruby /*x11*/;
-
     lua = pkgs.lua5;
-
     # optional features by flags
     flags = [ "X11" ]; # only flag "X11" by now
   };
 
   virtviewer = callPackage ../applications/virtualization/virt-viewer {};
-  virtmanager = callPackage ../applications/virtualization/virt-manager {};
+  virtmanager = callPackage ../applications/virtualization/virt-manager {
+    inherit (gnome) gnome_python;
+  };
+
   virtinst = callPackage ../applications/virtualization/virtinst {};
 
   virtualgl = callPackage ../tools/X11/virtualgl { };
@@ -7649,7 +7866,7 @@ let
     libixp = libixp_for_wmii;
     inherit fetchurl /* fetchhg */ stdenv gawk;
     inherit (xlibs) libX11 xextproto libXt libXext;
-    includeUnpack = getConfig ["stdenv" "includeUnpack"] false;
+    includeUnpack = config.stdenv.includeUnpack or false;
   };
 
   wordnet = callPackage ../applications/misc/wordnet { };
@@ -7661,23 +7878,23 @@ let
       inherit stdenv makeWrapper makeDesktopItem browser browserName desktopName nameSuffix icon;
       plugins =
         let
-          enableAdobeFlash = getConfig [ browserName "enableAdobeFlash" ] true;
-          enableGnash = getConfig [ browserName "enableGnash" ] false;
+          enableAdobeFlash = config.browserNameenableAdobeFlash or true;
+          enableGnash = config.browserNameenableGnash or false;
         in
          assert !(enableGnash && enableAdobeFlash);
          ([ ]
           ++ lib.optional enableGnash gnash
           ++ lib.optional enableAdobeFlash flashplayer
           # RealPlayer is disabled by default for legal reasons.
-          ++ lib.optional (system != "i686-linux" && getConfig [browserName "enableRealPlayer"] false) RealPlayer
-          ++ lib.optional (getConfig [browserName "enableDjvu"] false) (djview4)
-          ++ lib.optional (getConfig [browserName "enableMPlayer"] false) (MPlayerPlugin browser)
-          ++ lib.optional (getConfig [browserName "enableGeckoMediaPlayer"] false) gecko_mediaplayer
-          ++ lib.optional (supportsJDK && getConfig [browserName "jre"] false && jrePlugin ? mozillaPlugin) jrePlugin
-          ++ lib.optional (getConfig [browserName "enableGoogleTalkPlugin"] false) google_talk_plugin
+          ++ lib.optional (system != "i686-linux" && config.browserNameenableRealPlayer or false) RealPlayer
+          ++ lib.optional (config.browserNameenableDjvu or false) (djview4)
+          ++ lib.optional (config.browserNameenableMPlayer or false) (MPlayerPlugin browser)
+          ++ lib.optional (config.browserNameenableGeckoMediaPlayer or false) gecko_mediaplayer
+          ++ lib.optional (supportsJDK && config.browserNamejre or false && jrePlugin ? mozillaPlugin) jrePlugin
+          ++ lib.optional (config.browserNameenableGoogleTalkPlugin or false) google_talk_plugin
          );
       libs =
-        if getConfig [ browserName "enableQuakeLive" ] false
+        if config.browserNameenableQuakeLive or false
         then with xlibs; [ stdenv.gcc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ]
         else [ ];
     };
@@ -7720,10 +7937,16 @@ let
 
   xineUI = callPackage ../applications/video/xine-ui { };
 
-  xneur = callPackage ../applications/misc/xneur { };
+  xneur_0_13 = callPackage ../applications/misc/xneur { };
 
   xneur_0_8 = callPackage ../applications/misc/xneur/0.8.nix { };
 
+  xneur = xneur_0_13;
+
+  gxneur = callPackage ../applications/misc/gxneur  {
+    inherit (gnome) libglade GConf;
+  };
+
   xournal = callPackage ../applications/graphics/xournal {
     inherit (gnome) libgnomeprint libgnomeprintui libgnomecanvas;
   };
@@ -7773,7 +7996,13 @@ let
     fltk = fltk13;
   };
 
-  zathura = callPackage ../applications/misc/zathura { };
+  zathuraCollection = recurseIntoAttrs
+    (let callPackage = newScope pkgs.zathuraCollection; in
+      import ../applications/misc/zathura { inherit callPackage pkgs; });
+
+  zathura = zathuraCollection.zathuraWrapper;
+
+  girara = callPackage ../applications/misc/girara { };
 
   zgrviewer = callPackage ../applications/graphics/zgrviewer {};
 
@@ -8223,10 +8452,6 @@ let
 
   xfce = xfce48;
 
-  xfce46 = recurseIntoAttrs
-    (let callPackage = newScope pkgs.xfce46; in
-     import ../desktops/xfce-4.6 { inherit callPackage pkgs; });
-
   xfce48 = recurseIntoAttrs
     (let callPackage = newScope pkgs.xfce48; in
      import ../desktops/xfce-4.8 { inherit callPackage pkgs; });
@@ -8307,6 +8532,7 @@ let
 
   liblapack = callPackage ../development/libraries/science/math/liblapack { };
 
+  openblas = callPackage ../development/libraries/science/math/openblas { };
 
   ### SCIENCE/LOGIC
 
@@ -8315,6 +8541,11 @@ let
     camlp5 = ocamlPackages.camlp5_transitional;
   };
 
+  coq_8_3 = callPackage ../applications/science/logic/coq/8.3.nix {
+    inherit (ocamlPackages) findlib lablgtk;
+    camlp5 = ocamlPackages.camlp5_transitional;
+  };
+
   cvc3 = callPackage ../applications/science/logic/cvc3 {};
 
   eprover = callPackage ../applications/science/logic/eProver {
@@ -8475,11 +8706,12 @@ let
   gajim = builderDefsPackage (import ../applications/networking/instant-messengers/gajim) {
     inherit perl intltool pyGtkGlade gettext pkgconfig makeWrapper pygobject
       pyopenssl gtkspell libsexy pycrypto aspell pythonDBus pythonSexy
-      docutils gtk;
+      docutils gtk farstream gst_plugins_bad gstreamer gst_ffmpeg gst_python;
     dbus = dbus.libs;
     inherit (gnome) libglade;
     inherit (xlibs) libXScrnSaver libXt xproto libXext xextproto libX11
       scrnsaverproto;
+    inherit (pythonPackages) pyasn1;
     python = pythonFull;
   };
 
@@ -8487,8 +8719,8 @@ let
 
   ghostscript = callPackage ../misc/ghostscript {
     x11Support = false;
-    cupsSupport = getConfig [ "ghostscript" "cups" ] true;
-    gnuFork = getConfig [ "ghostscript" "gnu" ] false;
+    cupsSupport = config.ghostscript.cups or true;
+    gnuFork = config.ghostscript.gnu or false;
   };
 
   ghostscriptX = appendToName "with-X" (ghostscript.override {
@@ -8508,15 +8740,12 @@ let
 
   lazylist = callPackage ../tools/typesetting/tex/lazylist { };
 
-  lilypond = callPackage ../misc/lilypond {
-    guile = guile_1_8;
-  };
+  lilypond = callPackage ../misc/lilypond { };
 
   martyr = callPackage ../development/libraries/martyr { };
 
-  maven = callPackage ../misc/maven/maven-1.0.nix { };
-  maven2 = callPackage ../misc/maven { };
-  maven3 = callPackage ../misc/maven/3.0.nix { };
+  maven = maven3;
+  maven3 = callPackage ../misc/maven { jdk = openjdk; };
 
   mess = callPackage ../misc/emulators/mess {
     inherit (pkgs.gnome) GConf;
@@ -8527,18 +8756,14 @@ let
   nix = nixStable;
 
   nixStable = callPackage ../tools/package-management/nix {
-    storeDir = getConfig [ "nix" "storeDir" ] "/nix/store";
-    stateDir = getConfig [ "nix" "stateDir" ] "/nix/var";
+    storeDir = config.nix.storeDir or "/nix/store";
+    stateDir = config.nix.stateDir or "/nix/var";
   };
 
-  nixUnstable = nix;
-
-  /*
   nixUnstable = callPackage ../tools/package-management/nix/unstable.nix {
-    storeDir = getConfig [ "nix" "storeDir" ] "/nix/store";
-    stateDir = getConfig [ "nix" "stateDir" ] "/nix/var";
+    storeDir = config.nix.storeDir or "/nix/store";
+    stateDir = config.nix.stateDir or "/nix/var";
   };
-  */
 
   nixCustomFun = src: preConfigure: enableScripts: configureFlags:
     import ../tools/package-management/nix/custom.nix {
@@ -8557,13 +8782,13 @@ let
   disnix = callPackage ../tools/package-management/disnix { };
 
   disnix_activation_scripts = callPackage ../tools/package-management/disnix/activation-scripts {
-    enableApacheWebApplication = getConfig ["disnix" "enableApacheWebApplication"] false;
-    enableAxis2WebService = getConfig ["disnix" "enableAxis2WebService"] false;
-    enableEjabberdDump = getConfig ["disnix" "enableEjabberdDump"] false;
-    enableMySQLDatabase = getConfig ["disnix" "enableMySQLDatabase"] false;
-    enablePostgreSQLDatabase = getConfig ["disnix" "enablePostgreSQLDatabase"] false;
-    enableSubversionRepository = getConfig ["disnix" "enableSubversionRepository"] false;
-    enableTomcatWebApplication = getConfig ["disnix" "enableTomcatWebApplication"] false;
+    enableApacheWebApplication = config.disnix.enableApacheWebApplication or false;
+    enableAxis2WebService = config.disnix.enableAxis2WebService or false;
+    enableEjabberdDump = config.disnix.enableEjabberdDump or false;
+    enableMySQLDatabase = config.disnix.enableMySQLDatabase or false;
+    enablePostgreSQLDatabase = config.disnix.enablePostgreSQLDatabase or false;
+    enableSubversionRepository = config.disnix.enableSubversionRepository or false;
+    enableTomcatWebApplication = config.disnix.enableTomcatWebApplication or false;
   };
 
   disnixos = callPackage ../tools/package-management/disnix/disnixos { };
@@ -8608,12 +8833,12 @@ let
   xlockmore = callPackage ../misc/screensavers/xlockmore { };
 
   saneBackends = callPackage ../misc/sane-backends {
-    gt68xxFirmware = getConfig ["sane" "gt68xxFirmware"] null;
-    hotplugSupport = getConfig ["sane" "hotplugSupport"] true;
+    gt68xxFirmware = config.sane.gt68xxFirmware or null;
+    hotplugSupport = config.sane.hotplugSupport or true;
   };
 
   saneBackendsSnapshot = callPackage ../misc/sane-backends/snapshot.nix {
-    gt68xxFirmware = getConfig ["sane" "gt68xxFirmware"] null;
+    gt68xxFirmware = config.sane.gt68xxFirmware or null;
   };
 
   saneFrontends = callPackage ../misc/sane-front { };
diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix
index 64291854a03e..4b2f5fc46136 100644
--- a/pkgs/top-level/haskell-defaults.nix
+++ b/pkgs/top-level/haskell-defaults.nix
@@ -8,7 +8,7 @@
 # The actual Haskell packages are composed in haskell-packages.nix. There is
 # more documentation in there.
 
-{ makeOverridable, lowPrio, stdenv, pkgs, newScope, getConfig, callPackage } : rec {
+{ makeOverridable, lowPrio, stdenv, pkgs, newScope, config, callPackage } : rec {
 
   # Preferences functions.
   #
@@ -19,6 +19,8 @@
     self : self.haskellPlatformArgs_future self // {
       haskellPlatform = null;
       binary = null; # now a core package
+      extensibleExceptions = self.extensibleExceptions_0_1_1_4;
+      regexCompat = self.regexCompat_0_95_1.override { regexPosix = self.regexPosix_0_95_2; };
     };
 
   ghc741Prefs =
@@ -27,24 +29,29 @@
       binary = null; # now a core package
     };
 
-  ghc722Prefs = ghc741Prefs;
+  ghc722Prefs =
+    self : self.haskellPlatformArgs_2012_2_0_0 self // {
+      haskellPlatform = self.haskellPlatform_2012_2_0_0;
+      binary = null; # a core package
+      deepseq = self.deepseq_1_3_0_0;
+    };
 
-  ghc721Prefs = ghc741Prefs;
+  ghc721Prefs = ghc722Prefs;
 
   ghc704Prefs =
     self : self.haskellPlatformArgs_2011_4_0_0 self // {
       haskellPlatform = self.haskellPlatform_2011_4_0_0;
-      repaExamples = null;      # don't pick this version of 'repa-examples' during nix-env -u
       cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; };
       monadPar = self.monadPar_0_1_0_3;
+      jailbreakCabal = self.jailbreakCabal.override { Cabal = self.Cabal_1_14_0; };
     };
 
   ghc703Prefs =
     self : self.haskellPlatformArgs_2011_2_0_1 self // {
       haskellPlatform = self.haskellPlatform_2011_2_0_1;
-      repaExamples = null;      # don't pick this version of 'repa-examples' during nix-env -u
       cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; };
       monadPar = self.monadPar_0_1_0_3;
+      jailbreakCabal = self.jailbreakCabal.override { Cabal = self.Cabal_1_14_0; };
     };
 
   ghc702Prefs = ghc701Prefs;
@@ -52,9 +59,9 @@
   ghc701Prefs =
     self : self.haskellPlatformArgs_2011_2_0_0 self // {
       haskellPlatform = self.haskellPlatform_2011_2_0_0;
-      repaExamples = null;      # don't pick this version of 'repa-examples' during nix-env -u
       cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; };
       monadPar = self.monadPar_0_1_0_3;
+      jailbreakCabal = self.jailbreakCabal.override { Cabal = self.Cabal_1_14_0; };
     };
 
   ghc6123Prefs = ghc6122Prefs;
@@ -63,11 +70,11 @@
     self : self.haskellPlatformArgs_2010_2_0_0 self // {
       haskellPlatform = self.haskellPlatform_2010_2_0_0;
       mtl1 = self.mtl_1_1_0_2;
-      repaExamples = null;      # don't pick this version of 'repa-examples' during nix-env -u
       cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; };
       monadPar = self.monadPar_0_1_0_3;
       deepseq = self.deepseq_1_1_0_2;
       # deviating from Haskell platform here, to make some packages (notably statistics) compile
+      jailbreakCabal = self.jailbreakCabal.override { Cabal = self.Cabal_1_14_0; };
     };
 
   ghc6121Prefs =
@@ -75,9 +82,9 @@
       haskellPlatform = self.haskellPlatform_2010_1_0_0;
       mtl1 = self.mtl_1_1_0_2;
       extensibleExceptions = self.extensibleExceptions_0_1_1_0;
-      repaExamples = null;      # don't pick this version of 'repa-examples' during nix-env -u
       deepseq = self.deepseq_1_1_0_2;
       monadPar = self.monadPar_0_1_0_3;
+      jailbreakCabal = self.jailbreakCabal.override { Cabal = self.Cabal_1_14_0; };
       # deviating from Haskell platform here, to make some packages (notably statistics) compile
     };
 
@@ -88,10 +95,10 @@
       mtl1 = self.mtl_1_1_0_2;
       extensibleExceptions = self.extensibleExceptions_0_1_1_0;
       text = self.text_0_11_0_6;
-      repaExamples = null;      # don't pick this version of 'repa-examples' during nix-env -u
       cabalInstall_0_14_0 = self.cabalInstall_0_14_0.override { Cabal = self.Cabal_1_14_0; zlib = self.zlib_0_5_3_3; };
       deepseq = self.deepseq_1_1_0_2;
       monadPar = self.monadPar_0_1_0_3;
+      jailbreakCabal = self.jailbreakCabal.override { Cabal = self.Cabal_1_14_0; };
       # deviating from Haskell platform here, to make some packages (notably statistics) compile
     };
 
@@ -110,13 +117,13 @@
         # prefFun = self : super : self;
         enableLibraryProfiling =
           if profExplicit then profDefault
-                          else getConfig [ "cabal" "libraryProfiling" ] profDefault;
+                          else config.cabal.libraryProfiling or profDefault;
         ghc = callPackage ghcPath { ghc = ghcBinary; };
       });
 
   defaultVersionPrioFun =
     profDefault :
-    if getConfig [ "cabal" "libraryProfiling" ] false == profDefault
+    if config.cabal.libraryProfiling or false == profDefault
       then (x : x)
       else lowPrio;
 
@@ -161,6 +168,10 @@
     gmp = pkgs.gmp4;
   });
 
+  ghc742Binary = lowPrio (callPackage ../development/compilers/ghc/7.4.2-binary.nix {
+    gmp = pkgs.gmp4;
+  });
+
   ghc6101BinaryDarwin = if stdenv.isDarwin then ghc704Binary else ghc6101Binary;
   ghc6121BinaryDarwin = if stdenv.isDarwin then ghc704Binary else ghc6121Binary;
 
@@ -251,10 +262,16 @@
                prefFun = ghc741Prefs;
              };
 
+  packages_ghc761 =
+    packages { ghcPath = ../development/compilers/ghc/7.6.1.nix;
+               ghcBinary = ghc704Binary;
+               prefFun = ghcHEADPrefs;
+             };
+
   # Reasonably current HEAD snapshot. Should *always* be lowPrio.
   packages_ghcHEAD =
     packages { ghcPath = ../development/compilers/ghc/head.nix;
-               ghcBinary = ghc704Binary;
+               ghcBinary = ghc742Binary;
                prefFun = ghcHEADPrefs;
              };
 
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 34144c3237da..e7157bc507b2 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -120,33 +120,33 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   haskellPlatformArgs_future = self : {
     inherit (self) cabal ghc;
-    cgi          = self.cgi_3001_1_7_4;         # 7.5 fail
-    fgl          = self.fgl_5_4_2_4;            # 7.5 ok
-    GLUT         = self.GLUT_2_1_2_1;           # 7.5 fail
-    haskellSrc   = self.haskellSrc_1_0_1_5;     # 7.5 ok
-    html         = self.html_1_0_1_2;           # 7.5 ok
-    HTTP         = self.HTTP_4000_2_3;          # 7.5 ok
-    HUnit        = self.HUnit_1_2_5_0;          # 7.5 ok
-    mtl          = self.mtl_2_1_2;              # 7.5 ok
-    network      = self.network_2_3_0_14;       # 7.5 ok
-    OpenGL       = self.OpenGL_2_2_3_1;         # 7.5 fail
-    parallel     = self.parallel_3_2_0_2;       # 7.5 fail
-    parsec       = self.parsec_3_1_3;           # 7.5 ok
-    QuickCheck   = self.QuickCheck_2_5;         # 7.5 fail
-    random       = self.random_1_0_1_1;         # 7.5 ok
-    regexBase    = self.regexBase_0_93_2;       # 7.5 ok
-    regexCompat  = self.regexCompat_0_95_1;     # 7.5 fail
-    regexPosix   = self.regexPosix_0_95_1;      # 7.5 fail
-    stm          = self.stm_2_4;                # 7.5 ok
-    syb          = self.syb_0_3_7;              # 7.5 ok
-    text         = self.text_0_11_2_2;          # 7.5 ok
-    transformers = self.transformers_0_3_0_0;   # 7.5 ok
-    xhtml        = self.xhtml_3000_2_1;         # 7.5 ok
-    zlib         = self.zlib_0_5_3_3;           # 7.5 fail
-    cabalInstall = self.cabalInstall_0_14_0;    # 7.5 ok
-    alex         = self.alex_3_0_1;             # 7.5 ok
-    haddock      = self.haddock_2_10_0;         # 7.5 ok
-    happy        = self.happy_1_18_9;           # 7.5 ok
+    cgi          = self.cgi_3001_1_8_3;         # 7.6 ok
+    fgl          = self.fgl_5_4_2_4;            # 7.6 ok
+    GLUT         = self.GLUT_2_3_0_0;           # 7.6 ok
+    haskellSrc   = self.haskellSrc_1_0_1_5;     # 7.6 ok
+    html         = self.html_1_0_1_2;           # 7.6 ok
+    HTTP         = self.HTTP_4000_2_5;          # 7.6 ok
+    HUnit        = self.HUnit_1_2_5_1;          # 7.6 ok
+    mtl          = self.mtl_2_1_2;              # 7.6 ok
+    network      = self.network_2_4_0_1;        # 7.6 ok
+    OpenGL       = self.OpenGL_2_5_0_0;         # 7.6 ok
+    parallel     = self.parallel_3_2_0_3;       # 7.6 ok
+    parsec       = self.parsec_3_1_3;           # 7.6 ok
+    QuickCheck   = self.QuickCheck_2_5_1_1;     # 7.6 ok
+    random       = self.random_1_0_1_1;         # 7.6 ok
+    regexBase    = self.regexBase_0_93_2;       # 7.6 ok
+    regexCompat  = self.regexCompat_0_95_1;     # 7.6 ok
+    regexPosix   = self.regexPosix_0_95_2;      # 7.6 ok
+    stm          = self.stm_2_4;                # 7.6 ok
+    syb          = self.syb_0_3_7;              # 7.6 ok
+    text         = self.text_0_11_2_3;          # 7.6 ok
+    transformers = self.transformers_0_3_0_0;   # 7.6 ok
+    xhtml        = self.xhtml_3000_2_1;         # 7.6 ok
+    zlib         = self.zlib_0_5_4_0;           # 7.6 ok
+    cabalInstall = self.cabalInstall_0_14_0;    # 7.6 ok
+    alex         = self.alex_3_0_1;             # 7.6 ok
+    haddock      = self.haddock_2_12_0;         # 7.6 ok
+    happy        = self.happy_1_18_10;          # 7.6 ok
   };
 
   haskellPlatformArgs_2012_2_0_0 = self : {
@@ -386,6 +386,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   Agda = callPackage ../development/libraries/haskell/Agda {
     haskellSrcExts = self.haskellSrcExts_1_11_1;
+    haskeline = self.haskeline_0_6_4_7;
   };
 
   accelerate = callPackage ../development/libraries/haskell/accelerate {};
@@ -396,6 +397,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   accelerateIo = callPackage ../development/libraries/haskell/accelerate-io {};
 
+  active = callPackage ../development/libraries/haskell/active {};
+
   ACVector = callPackage ../development/libraries/haskell/AC-Vector {};
 
   abstractDeque = callPackage ../development/libraries/haskell/abstract-deque {};
@@ -422,6 +425,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   attoparsec = callPackage ../development/libraries/haskell/attoparsec {};
 
+  attoparsecBinary = callPackage ../development/libraries/haskell/attoparsec-binary {};
+
   attoparsecConduit = callPackage ../development/libraries/haskell/attoparsec-conduit {};
 
   attoparsecEnumerator = callPackage ../development/libraries/haskell/attoparsec/enumerator.nix {};
@@ -492,6 +497,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   };
 
   Cabal_1_14_0 = callPackage ../development/libraries/haskell/Cabal/1.14.0.nix { cabal = self.cabal.override { Cabal = null; }; };
+  Cabal_1_16_0 = callPackage ../development/libraries/haskell/Cabal/1.16.0.nix { cabal = self.cabal.override { Cabal = null; }; };
   Cabal = null; # core package in GHC
 
   cabalFileTh = callPackage ../development/libraries/haskell/cabal-file-th {};
@@ -515,13 +521,15 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   cgi_3001_1_7_2 = callPackage ../development/libraries/haskell/cgi/3001.1.7.2.nix {};
   cgi_3001_1_7_3 = callPackage ../development/libraries/haskell/cgi/3001.1.7.3.nix {};
   cgi_3001_1_7_4 = callPackage ../development/libraries/haskell/cgi/3001.1.7.4.nix {};
-  cgi_3001_1_8_2 = callPackage ../development/libraries/haskell/cgi/3001.1.8.2.nix {};
-  cgi = self.cgi_3001_1_8_2;
+  cgi_3001_1_8_3 = callPackage ../development/libraries/haskell/cgi/3001.1.8.3.nix {};
+  cgi = self.cgi_3001_1_8_3;
 
   Chart = callPackage ../development/libraries/haskell/Chart {};
 
   citeprocHs = callPackage ../development/libraries/haskell/citeproc-hs {};
 
+  cipherAes = callPackage ../development/libraries/haskell/cipher-aes {};
+
   clientsession = callPackage ../development/libraries/haskell/clientsession {};
 
   cmdargs = callPackage ../development/libraries/haskell/cmdargs {};
@@ -532,18 +540,26 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   colour = callPackage ../development/libraries/haskell/colour {};
 
+  comonad = callPackage ../development/libraries/haskell/comonad {};
+
+  comonadTransformers = callPackage ../development/libraries/haskell/comonad-transformers {};
+
   compactStringFix = callPackage ../development/libraries/haskell/compact-string-fix {};
 
   conduit = callPackage ../development/libraries/haskell/conduit {};
 
   ConfigFile = callPackage ../development/libraries/haskell/ConfigFile {};
 
+  configurator = callPackage ../development/libraries/haskell/configurator {};
+
   convertible = callPackage ../development/libraries/haskell/convertible {
     time = self.time_1_1_3;
   };
 
   continuedFractions = callPackage ../development/libraries/haskell/continued-fractions {};
 
+  contravariant = callPackage ../development/libraries/haskell/contravariant {};
+
   converge = callPackage ../development/libraries/haskell/converge {};
 
   cookie = callPackage ../development/libraries/haskell/cookie {};
@@ -588,16 +604,22 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   dataInttrie = callPackage ../development/libraries/haskell/data-inttrie {};
 
+  dataLens = callPackage ../development/libraries/haskell/data-lens {};
+
+  dataLensTemplate = callPackage ../development/libraries/haskell/data-lens-template {};
+
   dataMemocombinators = callPackage ../development/libraries/haskell/data-memocombinators {};
 
   dataReify = callPackage ../development/libraries/haskell/data-reify {};
 
+  dateCache = callPackage ../development/libraries/haskell/date-cache {};
+
   datetime = callPackage ../development/libraries/haskell/datetime {};
 
   deepseq_1_1_0_0 = callPackage ../development/libraries/haskell/deepseq/1.1.0.0.nix {};
   deepseq_1_1_0_2 = callPackage ../development/libraries/haskell/deepseq/1.1.0.2.nix {};
   deepseq_1_2_0_1 = callPackage ../development/libraries/haskell/deepseq/1.2.0.1.nix {};
-  deepseq_1_3_0_0 = callPackage ../development/libraries/haskell/deepseq/1.3.0.0.nix {};
+  deepseq_1_3_0_1 = callPackage ../development/libraries/haskell/deepseq/1.3.0.1.nix {};
   deepseq = null; # a core package in recent GHCs
 
   deepseqTh = callPackage ../development/libraries/haskell/deepseq-th {};
@@ -606,16 +628,32 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   derp = callPackage ../development/libraries/haskell/derp {};
 
+  diagrams = callPackage ../development/libraries/haskell/diagrams/diagrams.nix {};
+
+  diagramsCairo = callPackage ../development/libraries/haskell/diagrams/cairo.nix {};
+
+  diagramsCore = callPackage ../development/libraries/haskell/diagrams/core.nix {};
+
+  diagramsLib = callPackage ../development/libraries/haskell/diagrams/lib.nix {};
+
   Diff = callPackage ../development/libraries/haskell/Diff {};
 
   digest = callPackage ../development/libraries/haskell/digest {
     inherit (pkgs) zlib;
   };
 
+  digestiveFunctors = callPackage ../development/libraries/haskell/digestive-functors {};
+
+  digestiveFunctorsHeist = callPackage ../development/libraries/haskell/digestive-functors-heist {};
+
+  digestiveFunctorsSnap = callPackage ../development/libraries/haskell/digestive-functors-snap {};
+
   dimensional = callPackage ../development/libraries/haskell/dimensional {};
 
   directoryTree = callPackage ../development/libraries/haskell/directory-tree {};
 
+  distributive = callPackage ../development/libraries/haskell/distributive {};
+
   dlist = callPackage ../development/libraries/haskell/dlist {};
 
   dotgen = callPackage ../development/libraries/haskell/dotgen {};
@@ -677,6 +715,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   filestore = callPackage ../development/libraries/haskell/filestore {};
 
+  filesystemConduit = callPackage ../development/libraries/haskell/filesystem-conduit {};
+
   fgl_5_4_2_2 = callPackage ../development/libraries/haskell/fgl/5.4.2.2.nix {};
   fgl_5_4_2_3 = callPackage ../development/libraries/haskell/fgl/5.4.2.3.nix {};
   fgl_5_4_2_4 = callPackage ../development/libraries/haskell/fgl/5.4.2.4.nix {};
@@ -789,7 +829,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   hashtables = callPackage ../development/libraries/haskell/hashtables {};
 
-  haskeline = callPackage ../development/libraries/haskell/haskeline {};
+  haskeline_0_6_4_7 = callPackage ../development/libraries/haskell/haskeline/0.6.4.7.nix {};
+  haskeline_0_7_0_3 = callPackage ../development/libraries/haskell/haskeline/0.7.0.3.nix {};
+  haskeline = self.haskeline_0_7_0_3;
 
   haskelineClass = callPackage ../development/libraries/haskell/haskeline-class {};
 
@@ -805,8 +847,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   haskellSrc = self.haskellSrc_1_0_1_5;
 
   haskellSrcExts_1_11_1 = callPackage ../development/libraries/haskell/haskell-src-exts/1.11.1.nix {};
-  haskellSrcExts_1_13_3 = callPackage ../development/libraries/haskell/haskell-src-exts/1.13.3.nix {};
-  haskellSrcExts = self.haskellSrcExts_1_13_3;
+  haskellSrcExts_1_13_5 = callPackage ../development/libraries/haskell/haskell-src-exts/1.13.5.nix {};
+  haskellSrcExts = self.haskellSrcExts_1_13_5;
 
   haskellSrcMeta = callPackage ../development/libraries/haskell/haskell-src-meta {};
 
@@ -819,7 +861,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   HTTP_4000_2_1 = callPackage ../development/libraries/haskell/HTTP/4000.2.1.nix {};
   HTTP_4000_2_2 = callPackage ../development/libraries/haskell/HTTP/4000.2.2.nix {};
   HTTP_4000_2_3 = callPackage ../development/libraries/haskell/HTTP/4000.2.3.nix {};
-  HTTP = self.HTTP_4000_2_3;
+  HTTP_4000_2_5 = callPackage ../development/libraries/haskell/HTTP/4000.2.5.nix {};
+  HTTP = self.HTTP_4000_2_5;
 
   hackageDb = callPackage ../development/libraries/haskell/hackage-db {};
 
@@ -841,6 +884,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   HDBCSqlite = callPackage ../development/libraries/haskell/HDBC/HDBC-sqlite3.nix {};
 
+  heist = callPackage ../development/libraries/haskell/heist {};
+
   HFuse = callPackage ../development/libraries/haskell/hfuse {};
 
   HGL = callPackage ../development/libraries/haskell/HGL {};
@@ -855,7 +900,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   hjsmin = callPackage ../development/libraries/haskell/hjsmin {};
 
-  hledger = callPackage ../development/libraries/haskell/hledger {};
+  hledger = callPackage ../development/libraries/haskell/hledger {
+    haskeline = self.haskeline_0_6_4_7;
+  };
   hledgerLib = callPackage ../development/libraries/haskell/hledger-lib {};
   hledgerInterest = callPackage ../applications/office/hledger-interest {};
   hledgerWeb = callPackage ../development/libraries/haskell/hledger-web {};
@@ -898,11 +945,17 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   hsloggerTemplate = callPackage ../development/libraries/haskell/hslogger-template {};
 
+  hspec = callPackage ../development/libraries/haskell/hspec {};
+
+  hspecExpectations = callPackage ../development/libraries/haskell/hspec-expectations {};
+
   hsyslog = callPackage ../development/libraries/haskell/hsyslog {};
 
   html_1_0_1_2 = callPackage ../development/libraries/haskell/html/1.0.1.2.nix {};
   html = self.html_1_0_1_2;
 
+  htmlConduit = callPackage ../development/libraries/haskell/html-conduit {};
+
   httpConduit = callPackage ../development/libraries/haskell/http-conduit {};
 
   httpdShed = callPackage ../development/libraries/haskell/httpd-shed {};
@@ -916,8 +969,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   HUnit_1_2_2_3 = callPackage ../development/libraries/haskell/HUnit/1.2.2.3.nix {};
   HUnit_1_2_4_2 = callPackage ../development/libraries/haskell/HUnit/1.2.4.2.nix {};
   HUnit_1_2_4_3 = callPackage ../development/libraries/haskell/HUnit/1.2.4.3.nix {};
-  HUnit_1_2_5_0 = callPackage ../development/libraries/haskell/HUnit/1.2.5.0.nix {};
-  HUnit = self.HUnit_1_2_5_0;
+  HUnit_1_2_5_1 = callPackage ../development/libraries/haskell/HUnit/1.2.5.1.nix {};
+  HUnit = self.HUnit_1_2_5_1;
 
   hxt = callPackage ../development/libraries/haskell/hxt {};
 
@@ -984,10 +1037,14 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   libmpd = callPackage ../development/libraries/haskell/libmpd {};
 
+  liblastfm = callPackage ../development/libraries/haskell/liblastfm {};
+
   liftedBase = callPackage ../development/libraries/haskell/lifted-base {};
 
   ListLike = callPackage ../development/libraries/haskell/ListLike {};
 
+  lrucache = callPackage ../development/libraries/haskell/lrucache {};
+
   ltk = callPackage ../development/libraries/haskell/ltk {};
 
   logfloat = callPackage ../development/libraries/haskell/logfloat {};
@@ -1024,6 +1081,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   monadLoops = callPackage ../development/libraries/haskell/monad-loops {};
 
+  monadLogger = callPackage ../development/libraries/haskell/monad-logger {};
+
   monadPar_0_1_0_3 = callPackage ../development/libraries/haskell/monad-par/0.1.0.3.nix {};
   monadPar_0_3 = callPackage ../development/libraries/haskell/monad-par/0.3.nix {};
   monadPar = self.monadPar_0_3;
@@ -1074,11 +1133,13 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   network_2_3_0_2 = callPackage ../development/libraries/haskell/network/2.3.0.2.nix {};
   network_2_3_0_5 = callPackage ../development/libraries/haskell/network/2.3.0.5.nix {};
   network_2_3_0_13 = callPackage ../development/libraries/haskell/network/2.3.0.13.nix {};
-  network_2_3_0_14 = callPackage ../development/libraries/haskell/network/2.3.0.14.nix {};
-  network = self.network_2_3_0_14;
+  network_2_4_0_1 = callPackage ../development/libraries/haskell/network/2.4.0.1.nix {};
+  network = self.network_2_4_0_1;
 
   networkConduit = callPackage ../development/libraries/haskell/network-conduit {};
 
+  newtype = callPackage ../development/libraries/haskell/newtype {};
+
   nonNegative = callPackage ../development/libraries/haskell/non-negative {};
 
   numericPrelude = callPackage ../development/libraries/haskell/numeric-prelude {};
@@ -1200,9 +1261,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   QuickCheck_2_4_0_1 = callPackage ../development/libraries/haskell/QuickCheck/2.4.0.1.nix {};
   QuickCheck_2_4_1_1 = callPackage ../development/libraries/haskell/QuickCheck/2.4.1.1.nix {};
   QuickCheck_2_4_2 = callPackage ../development/libraries/haskell/QuickCheck/2.4.2.nix {};
-  QuickCheck_2_5 = callPackage ../development/libraries/haskell/QuickCheck/2.5.nix {};
+  QuickCheck_2_5_1_1 = callPackage ../development/libraries/haskell/QuickCheck/2.5.1.1.nix {};
   QuickCheck1 = self.QuickCheck_1_2_0_1;
-  QuickCheck2 = self.QuickCheck_2_5;
+  QuickCheck2 = self.QuickCheck_2_5_1_1;
   QuickCheck  = self.QuickCheck2;
 
   RangedSets = callPackage ../development/libraries/haskell/Ranged-sets {};
@@ -1291,16 +1352,26 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   semigroups = callPackage ../development/libraries/haskell/semigroups {};
 
+  semigroupoids = callPackage ../development/libraries/haskell/semigroupoids {};
+
   shelly = callPackage ../development/libraries/haskell/shelly {};
 
   simpleSendfile = callPackage ../development/libraries/haskell/simple-sendfile {};
 
+  silently = callPackage ../development/libraries/haskell/silently {};
+
   skein = callPackage ../development/libraries/haskell/skein {};
 
   smallcheck = callPackage ../development/libraries/haskell/smallcheck {};
 
+  snap = callPackage ../development/libraries/haskell/snap/snap.nix {};
+
   snapCore = callPackage ../development/libraries/haskell/snap/core.nix {};
 
+  snapLoaderDynamic = callPackage ../development/libraries/haskell/snap/loader-dynamic.nix {};
+
+  snapLoaderStatic = callPackage ../development/libraries/haskell/snap/loader-static.nix {};
+
   snapServer = callPackage ../development/libraries/haskell/snap/server.nix {};
 
   socks = callPackage ../development/libraries/haskell/socks {};
@@ -1321,6 +1392,10 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   stringsearch = callPackage ../development/libraries/haskell/stringsearch {};
 
+  strptime = callPackage ../development/libraries/haskell/strptime {};
+
+  stylishHaskell = callPackage ../development/libraries/haskell/stylish-haskell {};
+
   syb_0_2_2 = callPackage ../development/libraries/haskell/syb/0.2.2.nix {};
   syb_0_3 = callPackage ../development/libraries/haskell/syb/0.3.nix {};
   syb_0_3_3 = callPackage ../development/libraries/haskell/syb/0.3.3.nix {};
@@ -1358,10 +1433,6 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   Shellac = callPackage ../development/libraries/haskell/Shellac/Shellac.nix {};
 
-  ShellacHaskeline = callPackage ../development/libraries/haskell/Shellac/Shellac-haskeline.nix {};
-
-  ShellacReadline = callPackage ../development/libraries/haskell/Shellac/Shellac-readline.nix {};
-
   show = callPackage ../development/libraries/haskell/show {};
 
   SMTPClient = callPackage ../development/libraries/haskell/SMTPClient {};
@@ -1403,7 +1474,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   tagsoup = callPackage ../development/libraries/haskell/tagsoup {};
 
-  tagsoup_0_10_1 = callPackage ../development/libraries/haskell/tagsoup/0.10.1nix {};
+  tagstreamConduit = callPackage ../development/libraries/haskell/tagstream-conduit {};
 
   temporary = callPackage ../development/libraries/haskell/temporary {};
 
@@ -1411,9 +1482,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   terminfo = callPackage ../development/libraries/haskell/terminfo {};
 
-  testFramework_0_6 = callPackage ../development/libraries/haskell/test-framework/0.6.nix {};
-  testFramework_0_5 = callPackage ../development/libraries/haskell/test-framework/0.5.nix {};
-  testFramework = self.testFramework_0_6;
+  testFramework = callPackage ../development/libraries/haskell/test-framework {};
 
   testFrameworkHunit = callPackage ../development/libraries/haskell/test-framework-hunit {};
 
@@ -1434,8 +1503,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   text_0_11_1_5 = callPackage ../development/libraries/haskell/text/0.11.1.5.nix {};
   text_0_11_1_13 = callPackage ../development/libraries/haskell/text/0.11.1.13.nix {};
   text_0_11_2_0 = callPackage ../development/libraries/haskell/text/0.11.2.0.nix {};
-  text_0_11_2_2 = callPackage ../development/libraries/haskell/text/0.11.2.2.nix {};
-  text = self.text_0_11_2_2;
+  text_0_11_2_3 = callPackage ../development/libraries/haskell/text/0.11.2.3.nix {};
+  text = self.text_0_11_2_3;
 
   thespian = callPackage ../development/libraries/haskell/thespian {};
 
@@ -1443,8 +1512,12 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   thLift = callPackage ../development/libraries/haskell/th-lift {};
 
+  thOrphans = callPackage ../development/libraries/haskell/th-orphans {};
+
   threadmanager = callPackage ../development/libraries/haskell/threadmanager {};
 
+  threads = callPackage ../development/libraries/haskell/threads {};
+
   time_1_1_2_4 = callPackage ../development/libraries/haskell/time/1.1.2.4.nix {};
   time_1_1_3   = callPackage ../development/libraries/haskell/time/1.1.3.nix {};
   time_1_2_0_3 = callPackage ../development/libraries/haskell/time/1.2.0.3.nix {};
@@ -1476,12 +1549,16 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   unixCompat = callPackage ../development/libraries/haskell/unix-compat {};
 
+  unixTime = callPackage ../development/libraries/haskell/unix-time {};
+
   unlambda = callPackage ../development/libraries/haskell/unlambda {};
 
   unorderedContainers = callPackage ../development/libraries/haskell/unordered-containers {};
 
   url = callPackage ../development/libraries/haskell/url {};
 
+  urlencoded = callPackage ../development/libraries/haskell/urlencoded {};
+
   utf8Light = callPackage ../development/libraries/haskell/utf8-light {};
 
   utf8String = callPackage ../development/libraries/haskell/utf8-string {};
@@ -1498,6 +1575,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   vault = callPackage ../development/libraries/haskell/vault {};
 
+  vcsRevision = callPackage ../development/libraries/haskell/vcs-revision {};
+
   Vec = callPackage ../development/libraries/haskell/Vec {};
 
   vector = callPackage ../development/libraries/haskell/vector {};
@@ -1506,6 +1585,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   vectorSpace = callPackage ../development/libraries/haskell/vector-space {};
 
+  vectorSpacePoints = callPackage ../development/libraries/haskell/vector-space-points {};
+
   void = callPackage ../development/libraries/haskell/void {};
 
   vty = callPackage ../development/libraries/haskell/vty {};
@@ -1518,6 +1599,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   waiLogger = callPackage ../development/libraries/haskell/wai-logger {};
 
+  waiTest = callPackage ../development/libraries/haskell/wai-test {};
+
   warp = callPackage ../development/libraries/haskell/warp {};
 
   WebBits_1_0 = callPackage ../development/libraries/haskell/WebBits/1.0.nix {
@@ -1556,8 +1639,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   };
 
   X11_1_5_0_1 = callPackage ../development/libraries/haskell/X11/1.5.0.1.nix {};
-  X11_1_6_0 = callPackage ../development/libraries/haskell/X11/1.6.0.nix {};
-  X11 = self.X11_1_6_0;
+  X11_1_6_0_2 = callPackage ../development/libraries/haskell/X11/1.6.0.2.nix {};
+  X11 = self.X11_1_6_0_2;
 
   X11Xft = callPackage ../development/libraries/haskell/X11-xft {};
 
@@ -1571,6 +1654,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   xmlConduit = callPackage ../development/libraries/haskell/xml-conduit {};
 
+  xmlhtml = callPackage ../development/libraries/haskell/xmlhtml {};
+
   xmlTypes = callPackage ../development/libraries/haskell/xml-types {};
 
   xssSanitize = callPackage ../development/libraries/haskell/xss-sanitize {};
@@ -1597,6 +1682,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   yesodStatic = callPackage ../development/libraries/haskell/yesod-static {};
 
+  yesodTest = callPackage ../development/libraries/haskell/yesod-test {};
+
   yst = callPackage ../development/libraries/haskell/yst {};
 
   zeromqHaskell = callPackage ../development/libraries/haskell/zeromq-haskell {};
@@ -1617,7 +1704,10 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   zlib_0_5_3_3 = callPackage ../development/libraries/haskell/zlib/0.5.3.3.nix {
     inherit (pkgs) zlib;
   };
-  zlib = self.zlib_0_5_3_3;
+  zlib_0_5_4_0 = callPackage ../development/libraries/haskell/zlib/0.5.4.0.nix {
+    inherit (pkgs) zlib;
+  };
+  zlib = self.zlib_0_5_4_0;
 
   zlibBindings = callPackage ../development/libraries/haskell/zlib-bindings {};
 
@@ -1666,14 +1756,17 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   haddock_2_9_2 = callPackage ../development/tools/documentation/haddock/2.9.2.nix {};
   haddock_2_9_4 = callPackage ../development/tools/documentation/haddock/2.9.4.nix {};
   haddock_2_10_0 = callPackage ../development/tools/documentation/haddock/2.10.0.nix {};
-  haddock = self.haddock_2_10_0;
+  haddock_2_11_0 = callPackage ../development/tools/documentation/haddock/2.11.0.nix {};
+  haddock_2_12_0 = callPackage ../development/tools/documentation/haddock/2.12.0.nix {};
+  haddock = self.haddock_2_12_0;
 
   happy_1_18_4 = callPackage ../development/tools/parsing/happy/1.18.4.nix {};
   happy_1_18_5 = callPackage ../development/tools/parsing/happy/1.18.5.nix {};
   happy_1_18_6 = callPackage ../development/tools/parsing/happy/1.18.6.nix {};
   happy_1_18_8 = callPackage ../development/tools/parsing/happy/1.18.8.nix {};
   happy_1_18_9 = callPackage ../development/tools/parsing/happy/1.18.9.nix {};
-  happy = self.happy_1_18_9;
+  happy_1_18_10 = callPackage ../development/tools/parsing/happy/1.18.10.nix {};
+  happy = self.happy_1_18_10;
 
   happyMeta = callPackage ../development/tools/haskell/happy-meta {};
 
@@ -1705,19 +1798,13 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   darcs = callPackage ../applications/version-management/darcs {
     tar = self.tar_0_3_2_0;
+    haskeline = self.haskeline_0_6_4_7;
   };
 
   leksah = callPackage ../applications/editors/leksah {
     QuickCheck = self.QuickCheck2;
   };
 
-  mathblog = callPackage ../applications/misc/mathblog {
-    testFramework = self.testFramework_0_5;
-    testFrameworkHunit = self.testFrameworkHunit.override {
-      testFramework = self.testFramework_0_5;
-    };
-  };
-
   xmobar = callPackage ../applications/misc/xmobar {
     stm = self.stm_2_3;
   };
@@ -1748,10 +1835,16 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   cabalInstall_0_14_0 = callPackage ../tools/package-management/cabal-install/0.14.0.nix {};
   cabalInstall = self.cabalInstall_0_14_0;
 
+  jailbreakCabal = callPackage ../development/tools/haskell/jailbreak-cabal {};
+
   lhs2tex = callPackage ../tools/typesetting/lhs2tex {};
 
   myhasktags = callPackage ../tools/misc/myhasktags {};
 
+  splot = callPackage ../development/tools/haskell/splot {};
+
+  timeplot = callPackage ../development/tools/haskell/timeplot {};
+
   # Games.
 
   LambdaHack = callPackage ../games/LambdaHack {};
diff --git a/pkgs/top-level/node-packages.nix b/pkgs/top-level/node-packages.nix
new file mode 100644
index 000000000000..5c6301ed2e01
--- /dev/null
+++ b/pkgs/top-level/node-packages.nix
@@ -0,0 +1,1100 @@
+{ pkgs, stdenv, nodejs, fetchurl, neededNatives }:
+
+let self = {
+  buildNodePackage = import ../development/web/nodejs/build-node-package.nix {
+    inherit stdenv nodejs neededNatives;
+    inherit (pkgs) runCommand;
+  };
+
+  patchLatest = srcAttrs:
+                  let src = fetchurl srcAttrs; in
+                  pkgs.runCommand src.name {} ''
+                    tar xf ${src}
+                    sed -i -e "s/: \"latest\"/: \"*\"/" package/package.json
+                    tar cf $out package
+                  '';
+
+  "abbrev" = self."abbrev-1";
+
+  "abbrev-1" = self.buildNodePackage rec {
+    name = "abbrev-1.0.3";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/abbrev/-/${name}.tgz";
+      sha256 = "d444c07f411418828a5e81ac85569afe638e6441a562086faa0209ec7bdf55f2";
+    };
+    deps = [
+
+    ];
+  };
+
+  "active-x-obfuscator" = self."active-x-obfuscator-0.0.1";
+
+  "active-x-obfuscator-0.0.1" = self.buildNodePackage rec {
+    name = "active-x-obfuscator-0.0.1";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/active-x-obfuscator/-/${name}.tgz";
+      sha256 = "069cc18a0e7790ec106b267d28b47c691220f119a8daec925dd47f06866ce1c6";
+    };
+    deps = [
+      self."zeparser-0.0.5"
+    ];
+  };
+
+  "ansi" = self."ansi-~0.1.2";
+
+  "ansi-~0.1.2" = self.buildNodePackage rec {
+    name = "ansi-0.1.2";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/ansi/-/${name}.tgz";
+      sha256 = "6f2288b1db642eb822578f4ee70bf26bf97173cc7d3f10f496070fb96250006b";
+    };
+    deps = [
+
+    ];
+  };
+
+  "backbone" = self."backbone-0.9.2";
+
+  "backbone-0.9.2" = self.buildNodePackage rec {
+    name = "backbone-0.9.2";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/backbone/-/${name}.tgz";
+      sha256 = "0a5ebc8d32949ea2870a684e8430a8b4dec75a163ecf2740eb5fb4865393bb32";
+    };
+    deps = [
+      self."underscore->=1.3.1"
+    ];
+  };
+
+  "bindings" = self."bindings-1";
+
+  "bindings-1" = self.buildNodePackage rec {
+    name = "bindings-1.0.0";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/bindings/-/${name}.tgz";
+      sha256 = "cb211ac856d135af5ee864762fae9e554225a613ea1fd815c20b8fdd1679c9ed";
+    };
+    deps = [
+
+    ];
+  };
+
+  "block-stream" = self."block-stream-*";
+
+  "block-stream-*" = self.buildNodePackage rec {
+    name = "block-stream-0.0.6";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/block-stream/-/${name}.tgz";
+      sha256 = "2fc365b42b8601c8ee150d453f6cc762a01054b7fb28bdfcfcbce7c97e93601b";
+    };
+    deps = [
+      self."inherits-~1.0.0"
+    ];
+  };
+
+  "browserchannel" = self."browserchannel-0.4.1";
+
+  "browserchannel-0.4.1" = self.buildNodePackage rec {
+    name = "browserchannel-0.4.1";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/browserchannel/-/${name}.tgz";
+      sha256 = "f5d038347cee6802bb6f30f53bcf2adf196d241505b77ffca3d5f8a76a109c5f";
+    };
+    deps = [
+      self."coffee-script-~1"
+      self."hat"
+      self."connect-~1.7"
+      self."timerstub"
+      self."request-~2"
+    ];
+  };
+
+  "bson" = self."bson-0.1.3";
+
+  "bson-0.1.3" = self.buildNodePackage rec {
+    name = "bson-0.1.3";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/bson/-/${name}.tgz";
+      sha256 = "86ed2b1465e30a4089c8c88dee3d97fafcd7deb60edc3819c00a0604c84d5040";
+    };
+    flags = [ "mongodb:native" ];
+    deps = [
+
+    ];
+  };
+
+  "bytes" = self."bytes-0.1.0";
+
+  "bytes-0.1.0" = self.buildNodePackage rec {
+    name = "bytes-0.1.0";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/bytes/-/${name}.tgz";
+      sha256 = "32954618600f6566ecd95aec0ea0ae3318a1b4a29bf6a7970462c29a843bf701";
+    };
+    deps = [
+
+    ];
+  };
+
+  "cipher-block-size" = self."cipher-block-size-0.0.0";
+
+  "cipher-block-size-0.0.0" = self.buildNodePackage rec {
+    name = "cipher-block-size-0.0.0";
+    src = fetchurl {
+      url = https://bitbucket.org/shlevy/node-cipher-block-size/get/0.0.0.tar.gz;
+      sha256 = "0j4i19ckb9ab9aqd4w3j0vrvcw7c6icq279x4fx8xs1h9massxng";
+      name = "${name}.tgz";
+    };
+    deps = [
+      self."bindings-1"
+    ];
+    buildInputs = [
+      pkgs.openssl
+    ];
+  };
+
+  "coffee-script" = self."coffee-script-1.3.3";
+  "coffee-script-~1" = self."coffee-script-1.3.3";
+
+  "coffee-script-~1.1.2" = self.buildNodePackage rec {
+    name = "coffee-script-1.1.3";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/coffee-script/-/${name}.tgz";
+      sha256 = "3b431da901f753bde0ab26245c7111e1e4b8be1bba0086cf4a7470d739acae87";
+    };
+    deps = [
+
+    ];
+  };
+
+  "coffee-script-1.3.3" = self.buildNodePackage rec {
+    name = "coffee-script-1.3.3";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/coffee-script/-/${name}.tgz";
+      sha256 = "deedd2cf9d5abe2bad724e6809bec40efa07215dae85f44d78cd37736bb50bc5";
+    };
+    deps = [
+
+    ];
+  };
+
+  "commander" = self."commander-~0.6.1";
+
+  "commander-~0.6.1" = self.buildNodePackage rec {
+    name = "commander-0.6.1";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/commander/-/${name}.tgz";
+      sha256 = "7b7fdd1bc4d16f6776169a64f133d629efe2e3a7cd338b1d0884ee909abbd729";
+    };
+    deps = [
+
+    ];
+  };
+
+  "connect" = self."connect-2.4.4";
+
+  "connect-~1.7" = self.buildNodePackage rec {
+    name = "connect-1.7.3";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/connect/-/${name}.tgz";
+      sha256 = "773fd6ca8c90e33cc28d012fb3d72d66eb99114b20d88228330458628f030d12";
+    };
+    deps = [
+      self."qs->= 0.3.1"
+      self."mime->= 0.0.1"
+    ];
+  };
+
+  "connect-2.4.4" = self.buildNodePackage rec {
+    name = "connect-2.4.4";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/connect/-/${name}.tgz";
+      sha256 = "1f474ca9db05b9d58f3469ad4932722e49bec1f6ec35665ddea09155382914e9";
+    };
+    deps = [
+      self."qs-0.4.2"
+      self."formidable-1.0.11"
+      self."crc-0.2.0"
+      self."cookie-0.0.4"
+      self."bytes-0.1.0"
+      self."send-0.0.4"
+      self."fresh-0.1.0"
+      self."pause-0.0.1"
+      self."debug"
+    ];
+  };
+
+  "cookie" = self."cookie-0.0.4";
+
+  "cookie-0.0.4" = self.buildNodePackage rec {
+    name = "cookie-0.0.4";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/cookie/-/${name}.tgz";
+      sha256 = "a917477c448a6a91ef73d550d8d8a6d4864e8fbd247b6f73baaca66c9bfc3b0b";
+    };
+    deps = [
+
+    ];
+  };
+
+  "crc" = self."crc-0.2.0";
+
+  "crc-0.2.0" = self.buildNodePackage rec {
+    name = "crc-0.2.0";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/crc/-/${name}.tgz";
+      sha256 = "027c180bbbddd0960e6000f7ef60623997dfa61b3c2ef141acf00c29a1763b5d";
+    };
+    deps = [
+
+    ];
+  };
+
+  "cssmin" = self."cssmin-0.3.1";
+
+  "cssmin-0.3.1" = self.buildNodePackage rec {
+    name = "cssmin-0.3.1";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/cssmin/-/${name}.tgz";
+      sha256 = "56f1854fd0c6cb4cf78cea861e7b617ccf1daf91b47fba5bc80abdf2529b3102";
+    };
+    deps = [
+
+    ];
+  };
+
+  "datetime" = self."datetime-0.0.3";
+
+  "datetime-0.0.3" = self.buildNodePackage rec {
+    name = "datetime-0.0.3";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/datetime/-/${name}.tgz";
+      sha256 = "d584a5b140ced7bd44199fc5e1b6cd55ec2d3c946dc990ced42f6ab2687747f0";
+    };
+    deps = [
+      self."vows->=0.5.4"
+    ];
+  };
+
+  "debug" = self."debug-*";
+
+  "debug-*" = self.buildNodePackage rec {
+    name = "debug-0.7.0";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/debug/-/${name}.tgz";
+      sha256 = "113c041fb01fd8db2a1b83320529849ccbb23794a4c3799a0154312de2a5d618";
+    };
+    deps = [
+
+    ];
+  };
+
+  "diff" = self."diff-~1.0.3";
+
+  "diff-~1.0.3" = self.buildNodePackage rec {
+    name = "diff-1.0.3";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/diff/-/${name}.tgz";
+      sha256 = "88e1bb04e3707c5601ec0841e170f8892a3b929bf8c4030f826cd32c1fa21472";
+    };
+    deps = [
+
+    ];
+  };
+
+  "eyes" = self."eyes->=0.1.6";
+
+  "eyes->=0.1.6" = self.buildNodePackage rec {
+    name = "eyes-0.1.8";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/eyes/-/${name}.tgz";
+      sha256 = "4fa6db8f2c9926fb39a211c622d7eb3a76efbc4878559f9bd155d647a6963735";
+    };
+    deps = [
+
+    ];
+  };
+
+  "faye-websocket" = self."faye-websocket-0.4.0";
+
+  "faye-websocket-0.4.0" = self.buildNodePackage rec {
+    name = "faye-websocket-0.4.0";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/faye-websocket/-/${name}.tgz";
+      sha256 = "853b8d2f4611013da89faf45b6c9f6e440ad6c46616e405b8cf59b4302e78e2f";
+    };
+    deps = [
+
+    ];
+  };
+
+  "formidable" = self."formidable-1.0.11";
+
+  "formidable-1.0.11" = self.buildNodePackage rec {
+    name = "formidable-1.0.11";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/formidable/-/${name}.tgz";
+      sha256 = "39b345d14d69c27fe262e12f16900cef6be220510788866e0a12c9fedd03766e";
+    };
+    deps = [
+
+    ];
+  };
+
+  "fresh" = self."fresh-0.1.0";
+
+  "fresh-0.1.0" = self.buildNodePackage rec {
+    name = "fresh-0.1.0";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/fresh/-/${name}.tgz";
+      sha256 = "c402fbd25e26c0167bf288e1ba791716808bfaa5de32b76ae68e8e8a3d7e2b33";
+    };
+    deps = [
+
+    ];
+  };
+
+  "fstream" = self."fstream-0.1.18";
+  "fstream-~0.1.8" = self."fstream-0.1.18";
+  "fstream-~0.1.13" = self."fstream-0.1.18";
+
+  "fstream-0.1.18" = self.buildNodePackage rec {
+    name = "fstream-0.1.18";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/fstream/-/${name}.tgz";
+      sha256 = "fd5791dd0ce8d7b707fa171ac5bd482e09f80cd09ec8176b45d547416893372d";
+    };
+    deps = [
+      self."rimraf-2"
+      self."mkdirp-0.3"
+      self."graceful-fs-~1.1.2"
+      self."inherits-~1.0.0"
+    ];
+  };
+
+  "glob" = self."glob-3";
+
+  "glob-3" = self.buildNodePackage rec {
+    name = "glob-3.1.12";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/glob/-/${name}.tgz";
+      sha256 = "a37c02e9a91915fe4e3232229676e842803151dde831d1046620ec96118f6036";
+    };
+    deps = [
+      self."minimatch-0.2"
+      self."graceful-fs-~1.1.2"
+      self."inherits-1"
+    ];
+  };
+
+  "graceful-fs" = self."graceful-fs-1.1.10";
+  "graceful-fs-1" = self."graceful-fs-1.1.10";
+  "graceful-fs-~1.1" = self."graceful-fs-1.1.10";
+  "graceful-fs-~1.1.2" = self."graceful-fs-1.1.10";
+
+  "graceful-fs-1.1.10" = self.buildNodePackage rec {
+    name = "graceful-fs-1.1.10";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/graceful-fs/-/${name}.tgz";
+      sha256 = "1f9b7da8b0c75db49e0e5d2aaecc6f1dd3fca2bdbb2aecf95d1dbdec7f0cee24";
+    };
+    deps = [
+
+    ];
+  };
+
+  "hat" = self."hat-0.0.3";
+
+  "hat-0.0.3" = self.buildNodePackage rec {
+    name = "hat-0.0.3";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/hat/-/${name}.tgz";
+      sha256 = "7bf52b3b020ca333a42eb67411090912b21abb6ac746d587022a0955b16e5f5c";
+    };
+    deps = [
+
+    ];
+  };
+
+  "hiredis" = self."hiredis-*";
+
+  "hiredis-*" = self.buildNodePackage rec {
+    name = "hiredis-0.1.14";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/hiredis/-/${name}.tgz";
+      sha256 = "9d7ce0a7ae81cf465a0c26c07fb618b6ffd98ca344f14369114abf548d75637a";
+    };
+    deps = [
+
+    ];
+  };
+
+  "inherits" = self."inherits-1.0.0";
+  "inherits-1" = self."inherits-1.0.0";
+  "inherits-1.x" = self."inherits-1.0.0";
+  "inherits-~1.0.0" = self."inherits-1.0.0";
+
+  "inherits-1.0.0" = self.buildNodePackage rec {
+    name = "inherits-1.0.0";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/inherits/-/${name}.tgz";
+      sha256 = "2be196fa6bc6a0c65fecd737af457589ef88b22a95d5dc31aab01d92ace48186";
+    };
+    deps = [
+
+    ];
+  };
+
+  "knox" = self."knox-*";
+
+  "knox-*" = self.buildNodePackage rec {
+    name = "knox-0.3.1";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/knox/-/${name}.tgz";
+      sha256 = "d62623482cc2f8b2fe08ff0c0cf2ed7f35a320e806ebdfa6ac36df5486018517";
+    };
+    deps = [
+      self."mime"
+    ];
+  };
+
+  "less" = self."less-1.3.0";
+
+  "less-1.3.0" = self.buildNodePackage rec {
+    name = "less-1.3.0";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/less/-/${name}.tgz";
+      sha256 = "a182824764d5feefe8a66c5f9c7fe8b92d24a7677942fd650b9092bbd3f63d1b";
+    };
+    deps = [
+
+    ];
+  };
+
+  "lru-cache" = self."lru-cache-~2.0.0";
+
+  "lru-cache-~2.0.0" = self.buildNodePackage rec {
+    name = "lru-cache-2.0.1";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/lru-cache/-/${name}.tgz";
+      sha256 = "3b4fd68f0bd75f5abf69e349b6ffa918bfe4990ff36d2d88dc74f334a9ed627e";
+    };
+    deps = [
+
+    ];
+  };
+
+  "mime" = self."mime-*";
+
+  "mime->= 0.0.1" = self."mime-*";
+
+  "mime-1.2.6" = self.buildNodePackage rec {
+    name = "mime-1.2.6";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/mime/-/${name}.tgz";
+      sha256 = "7460134d6b4686d64fd1e7b878d34e2bdd258ad29b6665cf62e6d92659e81591";
+    };
+    deps = [
+
+    ];
+  };
+
+  "mime-*" = self.buildNodePackage rec {
+    name = "mime-1.2.7";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/mime/-/${name}.tgz";
+      sha256 = "a80244918c9c75fa4d0b37f311920c7d5270aab9a05aca9a74783764ad152df6";
+    };
+    deps = [
+
+    ];
+  };
+
+  "minimatch" = self."minimatch-0.2";
+
+  "minimatch-0.2" = self.buildNodePackage rec {
+    name = "minimatch-0.2.6";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/minimatch/-/${name}.tgz";
+      sha256 = "f0030112575a815ff304fa3bc64ee7e60ab8bfddb281602bc37eca0cddd48350";
+    };
+    deps = [
+      self."lru-cache-~2.0.0"
+    ];
+  };
+
+  "mkdirp" = self."mkdirp-0.3";
+
+  "mkdirp-0.3" = self.buildNodePackage rec {
+    name = "mkdirp-0.3.4";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/mkdirp/-/${name}.tgz";
+      sha256 = "f87444f2376c56bf47846f3b885aae926c5d9504328923b166794b78c0e08425";
+    };
+    deps = [
+
+    ];
+  };
+
+  "mongodb" = self."mongodb-1.1.7";
+
+  "mongodb-1.1.7" = self.buildNodePackage rec {
+    name = "mongodb-1.1.7";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/mongodb/-/${name}.tgz";
+      sha256 = "10ed2903b839907e854a4ae4508940207f260500bfaff028497e9df865ead475";
+    };
+    deps = [
+      self."bson-0.1.3"
+    ];
+  };
+
+  "mrclean" = self."mrclean-0.1.0";
+
+  "mrclean-0.1.0" = self.buildNodePackage rec {
+    name = "mrclean-0.1.0";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/mrclean/-/${name}.tgz";
+      sha256 = "5a8921007d8d3db990d41924d220f90efc8cbeb1f425c52fe0fe28be22223705";
+    };
+    deps = [
+
+    ];
+  };
+
+  "node-expat" = self."node-expat-*";
+
+  "node-expat-*" = self.buildNodePackage rec {
+    name = "node-expat-1.6.1";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/node-expat/-/${name}.tgz";
+      sha256 = "15c0566889ef8a54b2b626956b7dfc160469eb6c0d44a582a0b1077fadf034d2";
+    };
+    deps = [
+
+    ];
+    buildInputs = [ pkgs.expat ];
+  };
+
+  "node-gyp" = self."node-gyp-*";
+
+  "node-gyp-*" = self.buildNodePackage rec {
+    name = "node-gyp-0.6.8";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/node-gyp/-/${name}.tgz";
+      sha256 = "b40064d825c492c544389812ecea2089606c31cbe4f3ee9e68048ea56a9aed4d";
+    };
+    deps = [
+      self."glob-3"
+      self."graceful-fs-1"
+      self."fstream-~0.1.13"
+      self."minimatch-0.2"
+      self."mkdirp-0.3"
+      self."nopt-2"
+      self."npmlog-0"
+      self."osenv-0"
+      self."request-2.9"
+      self."rimraf-2"
+      self."semver-1"
+      self."tar-~0.1.12"
+      self."which-1"
+    ];
+  };
+
+  "node-uuid" = self."node-uuid-1.3.3";
+
+  "node-uuid-1.3.3" = self.buildNodePackage rec {
+    name = "node-uuid-1.3.3";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/node-uuid/-/${name}.tgz";
+      sha256 = "a3fbccc904944a9c8eadc59e55aaac908cc458569f539b50077d9672a84587a8";
+    };
+    deps = [
+
+    ];
+  };
+
+  "nopt" = self."nopt-2";
+
+  "nopt-2" = self.buildNodePackage rec {
+    name = "nopt-2.0.0";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/nopt/-/${name}.tgz";
+      sha256 = "112e9bea8b745a2e5a59d239e6f6f02e720e080ab8cdca89b6b8f0143ae718b5";
+    };
+    deps = [
+      self."abbrev-1"
+    ];
+  };
+
+  "npm2nix" = self."npm2nix-0.1.3";
+
+  "npm2nix-0.1.3" = self.buildNodePackage rec {
+    name = "npm2nix-0.1.3";
+    src = fetchurl {
+      url = https://bitbucket.org/shlevy/npm2nix/get/0.1.3.tar.gz;
+      sha256 = "1728fzmixcyg4g8mqcgn5yf7d4nin9zyqv8bs8b6660swhfdn4il";
+      name = "${name}.tgz";
+    };
+    deps = [
+      self."semver-1"
+    ];
+  };
+
+  "npmlog" = self."npmlog-0";
+
+  "npmlog-0" = self.buildNodePackage rec {
+    name = "npmlog-0.0.2";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/npmlog/-/${name}.tgz";
+      sha256 = "ce98d4d3380390c0259695cce407e2e96d2970c5caee1461a62ecbd38e8caed4";
+    };
+    deps = [
+      self."ansi-~0.1.2"
+    ];
+  };
+
+  "optimist" = self."optimist-*";
+
+  "optimist-*" = self.buildNodePackage rec {
+    name = "optimist-0.3.4";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/optimist/-/${name}.tgz";
+      sha256 = "add88b473a660ad8a9ff88a3eec49a74d9c64f592acbcd219ff4c0d7249f4d60";
+    };
+    deps = [
+      self."wordwrap-~0.0.2"
+    ];
+  };
+
+  "options" = self."options-*";
+
+  "options-*" = self.buildNodePackage rec {
+    name = "options-0.0.3";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/options/-/${name}.tgz";
+      sha256 = "06cfe21b54b45f8cf7bb0a184d6ea6de3adb2dc471bf0663d06c791b4d48536d";
+    };
+    deps = [
+
+    ];
+  };
+
+  "osenv" = self."osenv-0";
+
+  "osenv-0" = self.buildNodePackage rec {
+    name = "osenv-0.0.3";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/osenv/-/${name}.tgz";
+      sha256 = "aafbb23637b7338c9025f9da336f31f96674d7926c30f209e4d93ce16d5251c4";
+    };
+    deps = [
+
+    ];
+  };
+
+  "pause" = self."pause-0.0.1";
+
+  "pause-0.0.1" = self.buildNodePackage rec {
+    name = "pause-0.0.1";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/pause/-/${name}.tgz";
+      sha256 = "d37b84046db0c28c9768be649e8f02bd991ede34b276b5dba7bade23b523235e";
+    };
+    deps = [
+
+    ];
+  };
+
+  "policyfile" = self."policyfile-0.0.4";
+
+  "policyfile-0.0.4" = self.buildNodePackage rec {
+    name = "policyfile-0.0.4";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/policyfile/-/${name}.tgz";
+      sha256 = "e19e9e57d6262ab7965212ec5456eae2c07438de3b09fd8f3cba36a61a14c43f";
+    };
+    deps = [
+
+    ];
+  };
+
+  "qs" = self."qs-0.5.0";
+  "qs->= 0.3.1" = self."qs-0.5.0";
+
+  "qs-0.4.2" = self.buildNodePackage rec {
+    name = "qs-0.4.2";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/qs/-/${name}.tgz";
+      sha256 = "c44875d3aa882693cf73185b46fed63c1a89c34dce600b191b41dd90fb019b86";
+    };
+    deps = [
+
+    ];
+  };
+
+  "qs-0.5.0" = self.buildNodePackage rec {
+    name = "qs-0.5.0";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/qs/-/${name}.tgz";
+      sha256 = "229a99fc833d50307833a13d898f3de137f2823593220273295e7e1dc81ab993";
+    };
+    deps = [
+
+    ];
+  };
+
+  "range-parser" = self."range-parser-0.0.4";
+
+  "range-parser-0.0.4" = self.buildNodePackage rec {
+    name = "range-parser-0.0.4";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/range-parser/-/${name}.tgz";
+      sha256 = "8e1bcce3544330b51644ea0cb4d25f0daa4b43008a75da27e285635f4ac4b1ce";
+    };
+    deps = [
+
+    ];
+  };
+
+  "rbytes" = self."rbytes-0.0.2";
+
+  "rbytes-0.0.2" = self.buildNodePackage rec {
+    name = "rbytes-0.0.2";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/rbytes/-/${name}.tgz";
+      sha256 = "0fd4697be996ee12c65f8fb13b2edc7a554d22c31d1a344539bc611ce73b69aa";
+    };
+    deps = [
+
+    ];
+    buildInputs = [
+      pkgs.openssl
+    ];
+  };
+
+  "redis" = self."redis-0.7.2";
+
+  "redis-0.6.7" = self.buildNodePackage rec {
+    name = "redis-0.6.7";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/redis/-/${name}.tgz";
+      sha256 = "6a65c0204a773ca4adec0635d747c80a7565ba5e2028775c7d0e95d23df088bb";
+    };
+    deps = [
+
+    ];
+  };
+
+  "redis-0.7.2" = self.buildNodePackage rec {
+    name = "redis-0.7.2";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/redis/-/${name}.tgz";
+      sha256 = "d56d99e15dd35f6fabf545d9e91545553d60eaeb32ecf5caa1f357458df161ab";
+    };
+    deps = [
+      self."hiredis"
+    ];
+  };
+
+  "request" = self."request-~2";
+
+  "request-2.9" = self.buildNodePackage rec {
+    name = "request-2.9.203";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/request/-/${name}.tgz";
+      sha256 = "2af8f83a63c7227383fbdd6114e470e0921af86a037c4e82f42883120f35f836";
+    };
+    deps = [
+
+    ];
+  };
+
+  "request-~2" = self.buildNodePackage rec {
+    name = "request-2.11.0";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/request/-/${name}.tgz";
+      sha256 = "01e5c144c755c8ee1a1ec93077b684bd63efb8df32d54675e20737e8e1c1afa6";
+    };
+    deps = [
+
+    ];
+  };
+
+  "rimraf" = self."rimraf-2";
+
+  "rimraf-2" = self.buildNodePackage rec {
+    name = "rimraf-2.0.2";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/rimraf/-/${name}.tgz";
+      sha256 = "3efcc60c9f6715a8746f3e0b82770468247f3e256778ef20733f334377392ab0";
+    };
+    deps = [
+      self."graceful-fs-~1.1"
+    ];
+  };
+
+  "semver" = self."semver-1";
+
+  "semver-1" = self.buildNodePackage rec {
+    name = "semver-1.0.14";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/semver/-/${name}.tgz";
+      sha256 = "560df522ae0e8834d8b07f6ca9c60bd8836e844642361abde108018cbe9ca82f";
+    };
+    deps = [
+
+    ];
+  };
+
+  "send" = self."send-0.0.4";
+
+  "send-0.0.4" = self.buildNodePackage rec {
+    name = "send-0.0.4";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/send/-/${name}.tgz";
+      sha256 = "7e028fa3760884d8103414f079dc4bcc99d0b72bc21bcaa9d66a319d59010d6c";
+    };
+    deps = [
+      self."debug"
+      self."mime-1.2.6"
+      self."fresh-0.1.0"
+      self."range-parser-0.0.4"
+    ];
+  };
+
+  "showdown" = self."showdown-0.0.1";
+
+  "showdown-0.0.1" = self.buildNodePackage rec {
+    name = "showdown-0.0.1";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/showdown/-/${name}.tgz";
+      sha256 = "669a3284344a4cb51b0327af8d84b9e35c895ef1cedbafada5284a31f4d4783d";
+    };
+    deps = [
+
+    ];
+  };
+
+  "socket.io" = self."socket.io-0.9.6";
+
+  "socket.io-0.9.6" = self.buildNodePackage rec {
+    name = "socket.io-0.9.6";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/socket.io/-/${name}.tgz";
+      sha256 = "444e346e2701e2212590461a1fcf656f5d685ceb209e473517603286f09e743c";
+    };
+    deps = [
+      self."socket.io-client-0.9.6"
+      self."policyfile-0.0.4"
+      self."redis-0.6.7"
+    ];
+  };
+
+  "socket.io-client" = self."socket.io-client-0.9.6";
+
+  "socket.io-client-0.9.6" = self.buildNodePackage rec {
+    name = "socket.io-client-0.9.6";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/socket.io-client/-/${name}.tgz";
+      sha256 = "eab65186515d5206fe18b9ced75aae8c803dbcd18295a9a1cb71e5ae772ba399";
+    };
+    deps = [
+      self."uglify-js-1.2.5"
+      self."ws-0.4.x"
+      self."xmlhttprequest-1.2.2"
+      self."active-x-obfuscator-0.0.1"
+    ];
+  };
+
+  "sockjs" = self."sockjs-0.3.1";
+
+  "sockjs-0.3.1" = self.buildNodePackage rec {
+    name = "sockjs-0.3.1";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/sockjs/-/${name}.tgz";
+      sha256 = "056476f23dbe2e2182e5edea755108a8b6dbaea4b675b228172e876c8649efdf";
+    };
+    deps = [
+      self."node-uuid-1.3.3"
+      self."faye-websocket-0.4.0"
+      self."rbytes-0.0.2"
+    ];
+  };
+
+  "tar" = self."tar-~0.1.12";
+
+  "tar-~0.1.12" = self.buildNodePackage rec {
+    name = "tar-0.1.13";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/tar/-/${name}.tgz";
+      sha256 = "fdf79b5e172badf924a12b501686e5cbf33c3ec7631eccc29c0e3e9fdcbb5ffe";
+    };
+    deps = [
+      self."inherits-1.x"
+      self."block-stream"
+      self."fstream-~0.1.8"
+    ];
+  };
+
+  "temp" = self."temp-*";
+
+  "temp-*" = self.buildNodePackage rec {
+    name = "temp-0.4.0";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/temp/-/${name}.tgz";
+      sha256 = "ca8274250d36d94e670b8773bf062a28bc43eb342ae47ff629fbb627d48d710b";
+    };
+    deps = [
+
+    ];
+  };
+
+  "timerstub" = self."timerstub-*";
+
+  "timerstub-*" = self.buildNodePackage rec {
+    name = "timerstub-0.1.3";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/timerstub/-/${name}.tgz";
+      sha256 = "0ecbd05a10e0db1d628505c8a3b6ae07246bb8cf1074c435ddc26f22fcb5e153";
+    };
+    deps = [
+      self."coffee-script-~1.1.2"
+    ];
+  };
+
+  "tinycolor" = self."tinycolor-0.x";
+
+  "tinycolor-0.x" = self.buildNodePackage rec {
+    name = "tinycolor-0.0.1";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/tinycolor/-/${name}.tgz";
+      sha256 = "f5aaf5df002750c4af19181988c8789c9e230445747e511dde7c660424f286a0";
+    };
+    deps = [
+
+    ];
+  };
+
+  "uglify-js" = self."uglify-js-1.2.6";
+
+  "uglify-js-1.2.5" = self.buildNodePackage rec {
+    name = "uglify-js-1.2.5";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/uglify-js/-/${name}.tgz";
+      sha256 = "111fa1b844885b94df8cd73eb864bd96ff2e9173e8eb7045cc778fa237304a74";
+    };
+    deps = [
+
+    ];
+  };
+
+  "uglify-js-1.2.6" = self.buildNodePackage rec {
+    name = "uglify-js-1.2.6";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/uglify-js/-/${name}.tgz";
+      sha256 = "6d9202c8332e78868510a5441de4d54d8c2e08901ea7945eb332be8d7670788d";
+    };
+    deps = [
+
+    ];
+  };
+
+  "underscore" = self."underscore-1.3.3";
+  "underscore->=1.3.1" = self."underscore-1.3.3";
+
+  "underscore-1.3.3" = self.buildNodePackage rec {
+    name = "underscore-1.3.3";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/underscore/-/${name}.tgz";
+      sha256 = "e710644e53f5a6d75a41a3e19d8c35eedbce0db1e886e470daf9f909c9d1ea8a";
+    };
+    deps = [
+
+    ];
+  };
+
+  "vows" = self."vows->=0.5.4";
+
+  "vows->=0.5.4" = self.buildNodePackage rec {
+    name = "vows-0.6.4";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/vows/-/${name}.tgz";
+      sha256 = "017586c2fbdd5cd15aacdc870ea0c1b1ab60558306457ddc9b0aa4dae8290597";
+    };
+    deps = [
+      self."eyes->=0.1.6"
+      self."diff-~1.0.3"
+    ];
+  };
+
+  "which" = self."which-1";
+
+  "which-1" = self.buildNodePackage rec {
+    name = "which-1.0.5";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/which/-/${name}.tgz";
+      sha256 = "e26f39d7b152c700636472ab4da57bfb9af17972c49a9e2a06f9ff347d8fad42";
+    };
+    deps = [
+
+    ];
+  };
+
+  "wordwrap" = self."wordwrap-~0.0.2";
+
+  "wordwrap-~0.0.2" = self.buildNodePackage rec {
+    name = "wordwrap-0.0.2";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/wordwrap/-/${name}.tgz";
+      sha256 = "66a2fa688509738922c3ad62a6159fe3c93268bd3bca2bff24df4bc02cc31582";
+    };
+    deps = [
+
+    ];
+  };
+
+  "ws" = self."ws-0.4.x";
+  "ws-0.4.x" = self."ws-0.4.21";
+
+  "ws-0.4.21" = self.buildNodePackage rec {
+    name = "ws-0.4.21";
+    src = self.patchLatest {
+      url = "http://registry.npmjs.org/ws/-/${name}.tgz";
+      sha256 = "f21bc0058730355e1ff9d6ccf84a4cb56a2fc28e939edd15395770ea9e87fa0e";
+    };
+    deps = [
+      self."commander-~0.6.1"
+      self."tinycolor-0.x"
+      self."options"
+    ];
+  };
+
+  "xmlhttprequest" = self."xmlhttprequest-1.2.2";
+
+  "xmlhttprequest-1.2.2" = self.buildNodePackage rec {
+    name = "xmlhttprequest-1.2.2";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/xmlhttprequest/-/${name}.tgz";
+      sha256 = "44ce4ed6e5f7b5df84f27590fa142ecd175f53da4807b9f06c0c4733e23bd95d";
+    };
+    deps = [
+
+    ];
+  };
+
+  "zeparser" = self."zeparser-0.0.5";
+
+  "zeparser-0.0.5" = self.buildNodePackage rec {
+    name = "zeparser-0.0.5";
+    src = fetchurl {
+      url = "http://registry.npmjs.org/zeparser/-/${name}.tgz";
+      sha256 = "8b5a57ae84a7b7adf8827d1469c8f66d08d1660bd1375a07381877cd1bb9ed0b";
+    };
+    deps = [
+
+    ];
+  };
+};
+
+in self
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 9008459c63eb..eeba996990dc 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -107,6 +107,15 @@ rec {
     };
   };
 
+  AuthenDecHpwd = buildPerlPackage rec {
+    name = "Authen-DecHpwd-2.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/${name}.tar.gz";
+      sha256 = "67f45fef6a23b7548f387b675cbf7881bf9da62d7d007cbf90d3a4b851b99eb7";
+    };
+    propagatedBuildInputs = [ ScalarString DataInteger DigestCRC ];
+  };
+
   AuthenHtpasswd = buildPerlPackage rec {
     name = "Authen-Htpasswd-0.171";
     src = fetchurl {
@@ -116,6 +125,16 @@ rec {
     propagatedBuildInputs = [ ClassAccessor CryptPasswdMD5 DigestSHA1 IOLockedFile ];
   };
 
+  AuthenPassphrase = buildPerlPackage rec {
+    name = "Authen-Passphrase-0.008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/${name}.tar.gz";
+      sha256 = "55db4520617d859d88c0ee54965da815b7226d792b8cdc8debf92073559e0463";
+    };
+    propagatedBuildInputs = [ModuleRuntime ParamsClassify CryptPasswdMD5 CryptDES
+      DataEntropy CryptUnixCryptXS CryptEksblowfish CryptMySQL DigestMD4 AuthenDecHpwd];
+  };
+
   AuthenSASL = buildPerlPackage rec {
     name = "Authen-SASL-2.1401";
     src = fetchurl {
@@ -386,6 +405,7 @@ rec {
         CatalystDevel DBIxClassSchemaLoader MooseXNonMoose
         NamespaceClean HashMerge DBIxClassCursorCached
       ];
+    meta.platforms = stdenv.lib.platforms.linux;
   };
 
   CatalystRuntime = buildPerlPackage rec{
@@ -594,10 +614,10 @@ rec {
   };
 
   CGISession = buildPerlPackage rec {
-    name = "CGI-Session-4.42";
+    name = "CGI-Session-4.46";
     src = fetchurl {
       url = "mirror://cpan/authors/id/M/MA/MARKSTOS/${name}.tar.gz";
-      sha256 = "186lqqmfvisw3i74anvnsaqlbp6ww3wyhlsgdpni0mlcnh56h4gw";
+      sha256 = "c04b725be6a1b9bf22387cc6427eb951408ccba1c52471a43a80306f31e68e1b";
     };
     buildInputs = [ DBFile ];
   };
@@ -721,6 +741,15 @@ rec {
     };
   };
 
+  ClassMix = buildPerlPackage rec {
+    name = "Class-Mix-0.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/${name}.tar.gz";
+      sha256 = "054d0db62df90f22601f2a18fc84e9ca026d81601f5940b2fcc543e39d69b36b";
+    };
+    propagatedBuildInputs = [ParamsClassify];
+  };
+
   ClassMOP = Moose;
 
   ClassSingleton = buildPerlPackage rec {
@@ -798,7 +827,7 @@ rec {
   };
 
   CompressRawZlib = import ../development/perl-modules/Compress-Raw-Zlib {
-    inherit fetchurl buildPerlPackage;
+    inherit fetchurl buildPerlPackage stdenv;
     inherit (pkgs) zlib;
   };
 
@@ -907,6 +936,26 @@ rec {
     buildInputs = [CryptCBC];
   };
 
+  CryptDHGMP = buildPerlPackage rec {
+    name = "Crypt-DH-GMP-0.00010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id//D/DM/DMAKI/${name}.tar.gz";
+      sha256 = "7d947cd48a98880df4fb5b0785758bef9ae1357eba7c376ad0fca3fd262a5fe9";
+    };
+    buildInputs = [ DevelChecklib TestRequires pkgs.gmp ];
+    NIX_CFLAGS_COMPILE = "-I${pkgs.gmp}/include";
+    NIX_CFLAGS_LINK = "-L${pkgs.gmp}/lib -lgmp";
+  };
+
+  CryptEksblowfish = buildPerlPackage rec {
+    name = "Crypt-Eksblowfish-0.009";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/${name}.tar.gz";
+      sha256 = "3cc7126d5841107237a9be2dc5c7fbc167cf3c4b4ce34678a8448b850757014c";
+    };
+    propagatedBuildInputs = [ClassMix];
+  };
+
   CryptPasswdMD5 = buildPerlPackage {
     name = "Crypt-PasswdMD5-1.3";
     src = fetchurl {
@@ -931,6 +980,31 @@ rec {
     };
   };
 
+  CryptMySQL = buildPerlPackage rec {
+    name = "Crypt-MySQL-0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IK/IKEBE/${name}.tar.gz";
+      sha256 = "93ebdfaaefcfe9ab683f0121c85f24475d8197f0bcec46018219e4111434dde3";
+    };
+    propagatedBuildInputs = [DigestSHA1];
+  };
+
+  CryptRijndael = buildPerlPackage rec {
+    name = "Crypt-Rijndael-1.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BD/BDFOY/${name}.tar.gz";
+      sha256 = "8f8833bc8839e0d4aa3c26d86d2f39ceb9b13e52a9f5e4fd928da2e71989d3b4";
+    };
+  };
+
+  CryptUnixCryptXS = buildPerlPackage rec {
+    name = "Crypt-UnixCrypt_XS-0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BORISZ/${name}.tar.gz";
+      sha256 = "527c32b8b6eb50d52b081ceae4be2d748e718e40ea85940da59a3adeb3a33156";
+    };
+  };
+
   CryptSmbHash = buildPerlPackage rec {
     name = "Crypt-SmbHash-0.12";
     src = fetchurl {
@@ -994,6 +1068,23 @@ rec {
     };
   };
 
+  DataEntropy = buildPerlPackage rec {
+    name = "Data-Entropy-0.007";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/${name}.tar.gz";
+      sha256 = "2611c4a1a3038594d79ea4ed14d9e15a9af8f77105f51667795fe4f8a53427e4";
+    };
+    propagatedBuildInputs = [ParamsClassify DataFloat CryptRijndael HTTPLite];
+  };
+
+  DataFloat = buildPerlPackage rec {
+    name = "Data-Float-0.012";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/${name}.tar.gz";
+      sha256 = "698ecb092a3284e260cd3c3208408feb791d7d0f06a02673f9125ab2d51cc2d8";
+    };
+  };
+
   DataHierarchy = buildPerlPackage {
     name = "Data-Hierarchy-0.34";
     src = fetchurl {
@@ -1003,6 +1094,14 @@ rec {
     propagatedBuildInputs = [TestException];
   };
 
+  DataInteger = buildPerlPackage rec {
+    name = "Data-Integer-0.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/${name}.tar.gz";
+      sha256 = "3a52f7717d1ebda3af40036d72cbcadd1984210737743997abdad141d620f67e";
+    };
+  };
+
   DataOptList = buildPerlPackage rec {
     name = "Data-OptList-0.107";
     src = fetchurl {
@@ -1121,8 +1220,17 @@ rec {
     propagatedBuildInputs = [ ClassLoad ClassSingleton ParamsValidate TryTiny ];
   };
 
+  DevelChecklib = buildPerlPackage rec {
+    name = "Devel-CheckLib-0.98";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MATTN/${name}.tar.gz";
+      sha256 = "2b6b62665403bcdce67b53eb3bee7b57b6576026640c01aa57c7126e32ce20da";
+    };
+    propagatedBuildInputs = [ IOCaptureOutput ];
+  };
+
   DBDSQLite = import ../development/perl-modules/DBD-SQLite {
-    inherit fetchurl buildPerlPackage DBI;
+    inherit stdenv fetchurl buildPerlPackage DBI;
     inherit (pkgs) sqlite;
   };
 
@@ -1132,7 +1240,7 @@ rec {
   };
 
   DBDPg = import ../development/perl-modules/DBD-Pg {
-    inherit fetchurl buildPerlPackage DBI;
+    inherit stdenv fetchurl buildPerlPackage DBI;
     inherit (pkgs) postgresql;
   };
 
@@ -1245,6 +1353,14 @@ rec {
     ];
   };
 
+  DigestCRC = buildPerlPackage rec {
+    name = "Digest-CRC-0.18";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OL/OLIMAUL/${name}.tar.gz";
+      sha256 = "5c5329f37c46eb79835169508583da8767d9839350b69bb2b48ac6f594f70374";
+    };
+  };
+
   DigestHMAC = buildPerlPackage {
     name = "Digest-HMAC-1.01";
     src = fetchurl {
@@ -1254,6 +1370,14 @@ rec {
     propagatedBuildInputs = [DigestSHA1];
   };
 
+  DigestMD4 = buildPerlPackage rec {
+    name = "Digest-MD4-1.5";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIKEM/DigestMD4/${name}.tar.gz";
+      sha256 = "c7d7a32f5c2710c929b5688a7b057ec8ddbc51cf278f623e771fc02dcabd6a1f";
+    };
+  };
+
   DigestSHA = buildPerlPackage rec {
     name = "Digest-SHA-5.47";
     src = fetchurl {
@@ -1823,6 +1947,14 @@ rec {
     };
   };
 
+  HTTPLite = buildPerlPackage rec {
+    name = "HTTP-Lite-2.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/${name}.tar.gz";
+      sha256 = "66f4fc0f93eeb42c09737f83b21de1944212ae9b2acb784d5103e8208491477b";
+    };
+  };
+
   HTTPMessage = buildPerlPackage rec {
     name = "HTTP-Message-6.02";
     src = fetchurl {
@@ -1841,6 +1973,15 @@ rec {
     buildInputs = [ TestMore ];
   };
 
+  HTTPRequest = buildPerlPackage rec {
+    name = "HTTP-Message-6.03";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/HTTP/${name}.tar.gz";
+      sha256 = "c736e083bdf0eea1bb73e2dc3b66db0a8283942c0f69063afadb9a7cfa80011b";
+    };
+    propagatedBuildInputs = [ HTTPDate URI HTMLParser LWP ];
+  };
+
   HTTPRequestAsCGI = buildPerlPackage rec {
     name = "HTTP-Request-AsCGI-1.2";
     src = fetchurl {
@@ -1877,6 +2018,14 @@ rec {
     };
   };
 
+  IOCaptureOutput = buildPerlPackage rec {
+    name = "IO-CaptureOutput-1.1102";
+    src = fetchurl {
+      url = "mirror://cpan/modules/by-module/IO/${name}.tar.gz";
+      sha256 = "2ea16dbecb21a3c2be49a93fb1e7e51275bed3f7ef3ac30cbdbff5d0178d43c7";
+    };
+  };
+
   IOCompress = buildPerlPackage rec {
     name = "IO-Compress-2.037";
     src = fetchurl {
@@ -2070,6 +2219,14 @@ rec {
     };
   };
 
+  IPCSignal = buildPerlPackage rec {
+    name = "IPC-Signal-1.00";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROSCH/${name}.tar.gz";
+      sha256 = "1l3g0zrcwf2whwjhbpwdcridb7c77mydwxvfykqg1h6hqb4gj8bw";
+    };
+  };
+
   JSON = buildPerlPackage rec {
     name = "JSON-2.53";
     src = fetchurl {
@@ -2257,6 +2414,16 @@ rec {
     doCheck = false; # tries to connect to https://www.apache.org/.
   };
 
+  LWPxParanoidAgent = buildPerlPackage rec {
+    name = "LWPx-ParanoidAgent-1.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BR/BRADFITZ/${name}.tar.gz";
+      sha256 = "bd7ccbe6ed6b64195a967e9b2b04c185b7b97e8ec5a8835bb45dbcd42a18e76a";
+    };
+    doCheck = false; # 3 tests fail, probably because they try to connect to the network
+    propagatedBuildInputs = [ LWP NetDNS ];
+  };
+
   maatkit = import ../development/perl-modules/maatkit {
     inherit fetchurl buildPerlPackage stdenv DBDmysql;
   };
@@ -2305,6 +2472,15 @@ rec {
     };
   };
 
+  mimeConstruct = buildPerlPackage rec {
+    name = "mime-construct-1.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RO/ROSCH/${name}.tar.gz";
+      sha256 = "00wk9950i9q6qwp1vdq9xdddgk54lqd0bhcq2hnijh8xnmhvpmsc";
+    };
+    buildInputs = [ ProcWaitStat ];
+  };
+
   MIMETypes = buildPerlPackage rec {
     name = "MIME-Types-1.27";
     src = fetchurl {
@@ -2750,6 +2926,24 @@ rec {
     };
   };
 
+  NetOpenIDCommon = buildPerlPackage rec {
+    name = "Net-OpenID-Common-1.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/W/WR/WROG/${name}.tar.gz";
+      sha256 = "24ac83539b188d85bd2c7bd67e355aab0ede3f98170b23cb50bd30b11b4387ff";
+    };
+    propagatedBuildInputs = [ CryptDHGMP URI HTMLParser HTTPRequest XMLSimple ];
+  };
+
+  NetOpenIDConsumer = buildPerlPackage rec {
+    name = "Net-OpenID-Consumer-1.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/W/WR/WROG/${name}.tar.gz";
+      sha256 = "4ab927b6756366fa4cef2b54088645849f32fc7e0cd8de0a50001bbf62946fd8";
+    };
+    propagatedBuildInputs = [ NetOpenIDCommon JSON ];
+  };
+
   PackageDeprecationManager = buildPerlPackage rec {
     name = "Package-DeprecationManager-0.11";
     src = fetchurl {
@@ -2952,6 +3146,15 @@ rec {
     doCheck = false;
   };
 
+  ProcWaitStat = buildPerlPackage rec {
+    name = "Proc-WaitStat-1.00";
+    src = fetchurl {
+      url = "mirror://cpan//authors/id/R/RO/ROSCH/${name}.tar.gz";
+      sha256 = "1g3l8jzx06x4l4p0x7fyn4wvg6plfzl420irwwb9v447wzsn6xfh";
+    };
+    propagatedBuildInputs = [ IPCSignal ];
+  };
+
   PSGI = buildPerlPackage rec {
     name = "PSGI-1.03";
     src = fetchurl {
@@ -3084,6 +3287,14 @@ rec {
     };
   };
 
+  ScalarString = buildPerlPackage rec {
+    name = "Scalar-String-0.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/${name}.tar.gz";
+      sha256 = "d3a45cc137bb9f7d8848d5a10a5142d275a98f8dcfd3adb60593cee9d33fa6ae";
+    };
+  };
+
   ScopeGuard = buildPerlPackage {
     name = "Scope-Guard-0.03";
     src = fetchurl {
@@ -4009,10 +4220,10 @@ rec {
   };
 
   XMLLibXML = buildPerlPackage rec {
-    name = "XML-LibXML-1.86";
+    name = "XML-LibXML-2.0001";
     src = fetchurl {
       url = "mirror://cpan/modules/by-module/XML/${name}.tar.gz";
-      sha256 = "0wgf9898vmjac4mr2k4zvz6aw7nx0yvfv8f093y6w44vv6prxchp";
+      sha256 = "1zx4fqi531yzaf1c5cw1qwb9vy37fksz35a7pp6pic9v8jvz09x6";
     };
     SKIP_SAX_INSTALL = 1;
     buildInputs = [ pkgs.libxml2 ];
diff --git a/pkgs/top-level/platforms.nix b/pkgs/top-level/platforms.nix
index 7a45492b0323..14d4f87d2855 100644
--- a/pkgs/top-level/platforms.nix
+++ b/pkgs/top-level/platforms.nix
@@ -50,6 +50,9 @@ rec {
         EXT4_FS m
         USB_STORAGE_CYPRESS_ATACB m
 
+        # mv cesa requires this sw fallback, for mv-sha1
+        CRYPTO_SHA1 y
+
         IP_PNP y
         IP_PNP_DHCP y
         NFS_FS y
@@ -99,6 +102,18 @@ rec {
 
         # nixos mounts some cgroup
         CGROUPS y
+
+        # Latencytop 
+        LATENCYTOP y
+
+        # Ubi for the mtd
+        MTD_UBI y
+        UBIFS_FS y
+        UBIFS_FS_XATTR y
+        UBIFS_FS_ADVANCED_COMPR y
+        UBIFS_FS_LZO y
+        UBIFS_FS_ZLIB y
+        UBIFS_FS_DEBUG n
       '';
     kernelTarget = "uImage";
     uboot = "sheevaplug";
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 35c12903b2cb..a55a869f88c1 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -138,6 +138,20 @@ let pythonPackages = python.modules // rec {
   };
 
 
+  area53 = buildPythonPackage (rec {
+    name = "area53-b2c9cdcabd";
+
+    src = fetchgit {
+      url = git://github.com/mariusv/Area53.git;
+      rev = "b2c9cdcabd";
+      sha256 = "b0c12b8c48ed9180c7475fab18de50d63e1b517cfb46da4d2c66fc406fe902bc";
+    };
+    installCommand = "python setup.py install --prefix=$out";
+    doCheck = false;
+    propagatedBuildInputs = [ boto ];
+  });
+
+
   argparse = buildPythonPackage (rec {
     name = "argparse-1.1";
 
@@ -169,6 +183,7 @@ let pythonPackages = python.modules // rec {
     };
   });
 
+
   astng = buildPythonPackage rec {
     name = "logilab-astng-0.21.1";
 
@@ -179,8 +194,8 @@ let pythonPackages = python.modules // rec {
     propagatedBuildInputs = [logilabCommon];
   };
 
-  beautifulsoap = buildPythonPackage (rec {
-    name = "beautifulsoap-3.0.8";
+  beautifulsoup = buildPythonPackage (rec {
+    name = "beautifulsoup-3.0.8";
 
     src = fetchurl {
       url = "http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.0.8.tar.gz";
@@ -199,7 +214,6 @@ let pythonPackages = python.modules // rec {
     };
   });
 
-
   # euca2ools (and maybe Nova) needs boto 1.9, 2.0 doesn't work.
   boto_1_9 = buildPythonPackage (rec {
     name = "boto-1.9b";
@@ -353,8 +367,8 @@ let pythonPackages = python.modules // rec {
       md5 = "5f39727415b837abd02651eeb2721749";
     };
 
-    propagatedBuildInputs = [ stompclient distribute ]; 
-      
+    propagatedBuildInputs = [ stompclient distribute ];
+
     doCheck = false;
 
     meta = {
@@ -433,7 +447,7 @@ let pythonPackages = python.modules // rec {
     };
   });
 
-  
+
   dateutil = buildPythonPackage (rec {
     name = "dateutil-1.5";
 
@@ -469,12 +483,12 @@ let pythonPackages = python.modules // rec {
     src = fetchurl {
       url = "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.26.tar.gz";
       md5 = "841f4262a70107f85260362f5def8206"; #"ecd75ea629fee6d59d26f88c39b2d291";
-      
+
     };
 
     buildInputs = [ pkgs.unzip ];
-    
-    installCommand = 
+
+    installCommand =
       ''
         # ehm, YES, the --verbose flags needs to be there, otherwise it tries to patch setuptools!
         easy_install --verbose --prefix=$out .
@@ -488,7 +502,7 @@ let pythonPackages = python.modules // rec {
       platforms = python.meta.platforms;
     };
   });
-  
+
 
   distutils_extra = buildPythonPackage rec {
     name = "distutils-extra-2.26";
@@ -504,14 +518,14 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   django = buildPythonPackage rec {
     name = "Django-${version}";
-    version = "1.4";
+    version = "1.4.1";
 
     src = fetchurl {
-      url = "http://www.djangoproject.com/m/releases/${version}/${name}.tar.gz";
-      sha256 = "1sc8ajixaqfylb7jmmhn38hgbnqipylh1sqmpicx7rqhxbxvm5n0";
+      url = "http://www.djangoproject.com/m/releases/1.4/${name}.tar.gz";
+      sha256 = "16s0anvpaccbqmdrhl71z73k0dy2sl166nnc2fbd5lshlgmj13ad";
     };
 
     doCheck = false;
@@ -522,13 +536,13 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
-  django_1_3_1 = buildPythonPackage rec {
-    name = "Django-1.3.1";
+
+  django_1_3 = buildPythonPackage rec {
+    name = "Django-1.3.2";
 
     src = fetchurl {
       url = "http://www.djangoproject.com/m/releases/1.3/${name}.tar.gz";
-      sha256 = "0sqmvqy3y5h76pa3zjcnyiy5x01bzzy03afdp2qdwqx0x321i4dg";
+      sha256 = "0r6pdm33x96aba9x36jvqpkh2bf1zixnzvr12mcc8qq8wc7hii3j";
     };
 
     doCheck = false;
@@ -539,7 +553,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   django_evolution = buildPythonPackage rec {
     name = "django_evolution-0.6.7";
 
@@ -548,7 +562,7 @@ let pythonPackages = python.modules // rec {
       md5 = "24b8373916f53f74d701b99a6cf41409";
     };
 
-    propagatedBuildInputs = [ django_1_3_1 ];
+    propagatedBuildInputs = [ django_1_3 ];
 
     meta = {
       description = "A database schema evolution tool for the Django web framework";
@@ -556,7 +570,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   djblets = buildPythonPackage rec {
     name = "Djblets-0.6.19";
 
@@ -565,7 +579,7 @@ let pythonPackages = python.modules // rec {
       sha256 = "1hhvpi81yknvlaazq1cpgamp9vf3x1fcr0ba64q3j2yz1kgin1i8";
     };
 
-    propagatedBuildInputs = [ pkgs.pil django_1_3_1 ];
+    propagatedBuildInputs = [ pkgs.pil django_1_3 ];
 
     meta = {
       description = "A collection of useful extensions for Django";
@@ -573,7 +587,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   dulwich = buildPythonPackage rec {
     name = "dulwich-0.8.1";
 
@@ -594,7 +608,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   hggit = buildPythonPackage rec {
     name = "hg-git-0.3.1";
 
@@ -611,7 +625,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   docutils = buildPythonPackage rec {
     name = "docutils-0.8.1";
 
@@ -718,7 +732,7 @@ let pythonPackages = python.modules // rec {
     };
   });
 
-  
+
   foolscap = buildPythonPackage (rec {
     name = "foolscap-0.6.1";
 
@@ -752,6 +766,24 @@ let pythonPackages = python.modules // rec {
     };
   });
 
+  fuse = buildPythonPackage (rec {
+    baseName = "fuse";
+    version = "0.2.1";
+    name = "${baseName}-${version}";
+
+    src = fetchurl {
+      url = "http://downloads.sourceforge.net/sourceforge/fuse/fuse-python-${version}.tar.gz";
+      sha256 = "06rmp1ap6flh64m81j0n3a357ij2vj9zwcvvw0p31y6hz1id9shi";
+    };
+
+    buildInputs = [ pkgs.pkgconfig pkgs.fuse ];
+
+    meta = {
+      description = "Python bindings for FUSE.";
+      license = stdenv.lib.licenses.lgpl21;
+    };
+  });
+
   genshi = buildPythonPackage {
     name = "genshi-0.6";
 
@@ -848,6 +880,27 @@ let pythonPackages = python.modules // rec {
   };
 
 
+  gyp = buildPythonPackage rec {
+    rev = "1435";
+    name = "gyp-r${rev}";
+
+    src = fetchsvn {
+      url = "http://gyp.googlecode.com/svn/trunk";
+      inherit rev;
+      sha256 = "1wmd1svx5344alb8ff9vzdam1ccqdl0h7shp1xnsk843hqwc0fz0";
+    };
+
+    doCheck = false;
+
+    postUnpack = "find . -print0 | xargs -0 touch";
+
+    meta = {
+      homepage = http://code.google.com/p/gyp;
+      description = "Generate Your Projects";
+    };
+  };
+
+
   httplib2 = buildPythonPackage rec {
     name = "httplib2-0.6.0";
 
@@ -920,6 +973,25 @@ let pythonPackages = python.modules // rec {
   };
 
 
+  pylast = buildPythonPackage rec {
+    name = "pylast-${version}";
+    version = "0.5.11";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/p/pylast/${name}.tar.gz";
+      md5 = "506cf1b13020b3ed2f3c845ea0c9830e";
+    };
+
+    doCheck = false;
+
+    meta = {
+      homepage = http://code.google.com/p/pylast/;
+      description = "A python interface to last.fm (and compatibles)";
+      license = pkgs.lib.licenses.asl20;
+    };
+  };
+
+
   libcloud = buildPythonPackage (rec {
     name = "libcloud-0.3.1";
 
@@ -1064,7 +1136,7 @@ let pythonPackages = python.modules // rec {
     };
   });
 
-  
+
   mechanize = buildPythonPackage (rec {
     name = "mechanize-0.1.11";
 
@@ -1099,7 +1171,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   mock = buildPythonPackage (rec {
     name = "mock-0.7.0";
 
@@ -1406,7 +1478,7 @@ let pythonPackages = python.modules // rec {
     };
   });
 
-  
+
   paramiko = buildPythonPackage rec {
     name = "paramiko-1.7.7.1";
 
@@ -1478,6 +1550,23 @@ let pythonPackages = python.modules // rec {
   };
 
 
+  pep8 = buildPythonPackage rec {
+    name = "pep8-${version}";
+    version = "1.3.3";
+
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/p/pep8/${name}.tar.gz";
+      md5 = "093a99ced0cc3b58c01549d7350f5a73";
+    };
+
+    meta = {
+      homepage = http://pypi.python.org/pypi/pep8/;
+      description = "Python style guide checker";
+      license = pkgs.lib.licenses.mit;
+    };
+  };
+
+
   pexpect = buildPythonPackage {
     name = "pexpect-2.3";
 
@@ -1667,6 +1756,23 @@ let pythonPackages = python.modules // rec {
     };
   };
 
+  pyfeed = buildPythonPackage rec {
+    url = "http://www.blarg.net/%7Esteveha/pyfeed-0.7.4.tar.gz";
+    name = stdenv.lib.nameFromURL url ".tar";
+    src = fetchurl {
+      inherit url;
+      sha256 = "1h4msq573m7wm46h3cqlx4rsn99f0l11rhdqgf50lv17j8a8vvy1";
+    };
+    propagatedBuildInputs = [xe];
+
+    # tests not described in setup.py
+    doCheck = false;
+
+    meta = {
+      homepage = "http://home.blarg.net/~steveha/pyfeed.html";
+      description = "Tools for syndication feeds";
+    };
+  };
 
   pygments = buildPythonPackage rec {
     name = "Pygments-1.5";
@@ -1675,7 +1781,7 @@ let pythonPackages = python.modules // rec {
       url = "http://pypi.python.org/packages/source/P/Pygments/${name}.tar.gz";
       md5 = "ef997066cc9ee7a47d01fb4f3da0b5ff";
     };
-    
+
     meta = {
       homepage = http://pygments.org/;
       description = "A generic syntax highlighter";
@@ -1706,6 +1812,30 @@ let pythonPackages = python.modules // rec {
   };
 
 
+  pyinotify = pkgs.stdenv.mkDerivation rec {
+    name = "python-pyinotify-${version}";
+    version = "0.9.3";
+
+    src = fetchgit {
+      url = "git://github.com/seb-m/pyinotify.git";
+      rev = "refs/tags/${version}";
+      sha256 = "d38ce95e4af00391e58246a8d7fe42bdb51d63054b09809600b2faef2a803472";
+    };
+
+    buildInputs = [ python ];
+
+    installPhase = ''
+      python setup.py install --prefix=$out
+    '';
+
+    meta = {
+      homepage = https://github.com/seb-m/pyinotify/wiki;
+      description = "Monitor filesystems events on Linux platforms with inotify";
+      license = pkgs.lib.licenses.mit;
+    };
+  };
+
+
   pyparsing = buildPythonPackage rec {
     name = "pyparsing-1.5.6";
 
@@ -1720,7 +1850,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   ldap = buildPythonPackage rec {
     name = "python-ldap-2.4.3";
     namePrefix = "";
@@ -1734,7 +1864,26 @@ let pythonPackages = python.modules // rec {
     propagatedBuildInputs = [pkgs.openldap pkgs.cyrus_sasl pkgs.openssl];
   };
 
-  
+
+  pylibacl = buildPythonPackage (rec {
+    name = "pylibacl-0.5.1";
+
+    src = fetchurl {
+      url = "https://github.com/downloads/iustin/pylibacl/${name}.tar.gz";
+      sha256 = "1idks7j9bn62xzsaxkvhl7bdq6ws8kv8aa0wahfh7724qlbbcf1k";
+    };
+
+    doCheck = false;
+
+    buildInputs = [ pkgs.acl ];
+
+    meta = {
+      description = "A Python extension module for POSIX ACLs. It can be used to query, list, add, and remove ACLs from files and directories under operating systems that support them.";
+      license = stdenv.lib.licenses.lgpl21Plus;
+    };
+  });
+
+
   pylint = buildPythonPackage rec {
     name = "pylint-0.23.0";
 
@@ -1745,7 +1894,7 @@ let pythonPackages = python.modules // rec {
     propagatedBuildInputs = [astng];
   };
 
-  
+
   pymacs = pkgs.stdenv.mkDerivation rec {
     version = "v0.24-beta2";
     name = "Pymacs-${version}";
@@ -1774,7 +1923,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   pyopengl =
     let version = "3.0.0b5";
     in
@@ -1803,7 +1952,7 @@ let pythonPackages = python.modules // rec {
         };
       };
 
-      
+
   pyreport = buildPythonPackage (rec {
     name = "pyreport-0.3.4c";
 
@@ -1939,7 +2088,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   pyutil = buildPythonPackage (rec {
     name = "pyutil-1.7.9";
 
@@ -1973,7 +2122,26 @@ let pythonPackages = python.modules // rec {
     };
   });
 
-  
+
+  pyxattr = buildPythonPackage (rec {
+    name = "pyxattr-0.5.1";
+
+    src = fetchurl {
+      url = "https://github.com/downloads/iustin/pyxattr/${name}.tar.gz";
+      sha256 = "0jmkffik6hdzs7ng8c65bggss2ai40nm59jykswdf5lpd36cxddq";
+    };
+
+    doCheck = false;
+
+    buildInputs = [ pkgs.attr ];
+
+    meta = {
+      description = "A Python extension module which gives access to the extended attributes for filesystem objects available in some operating systems.";
+      license = stdenv.lib.licenses.lgpl21Plus;
+    };
+  });
+
+
   pyyaml = buildPythonPackage (rec {
     name = "PyYAML-3.09";
 
@@ -1992,7 +2160,7 @@ let pythonPackages = python.modules // rec {
     };
   });
 
-  
+
   RBTools = buildPythonPackage rec {
     name = "rbtools-0.4.1";
     namePrefix = "";
@@ -2005,7 +2173,7 @@ let pythonPackages = python.modules // rec {
     propagatedBuildInputs = [ setuptools ];
   };
 
-  
+
   recaptcha_client = buildPythonPackage rec {
     name = "recaptcha-client-1.0.6";
 
@@ -2020,7 +2188,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   reportlab =
    let freetype = pkgs.lib.overrideDerivation pkgs.freetype (args: { configureFlags = "--enable-static --enable-shared"; });
    in buildPythonPackage rec {
@@ -2040,7 +2208,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   reviewboard = buildPythonPackage rec {
     name = "ReviewBoard-1.6.9";
 
@@ -2051,12 +2219,12 @@ let pythonPackages = python.modules // rec {
 
     propagatedBuildInputs =
       [ recaptcha_client pytz memcached dateutil paramiko flup pygments
-        djblets django_1_3_1 django_evolution pkgs.pycrypto python.modules.sqlite3
+        djblets django_1_3 django_evolution pkgs.pycrypto python.modules.sqlite3
         pysvn pkgs.pil psycopg2
       ];
   };
 
-  
+
   rdflib = buildPythonPackage (rec {
     name = "rdflib-3.0.0";
 
@@ -2067,11 +2235,6 @@ let pythonPackages = python.modules // rec {
 
     doCheck = false;
 
-    postInstall = ''
-      find $out -name easy-install.pth | xargs rm -v
-      find $out -name 'site.py*' | xargs rm -v
-    '';
-
     meta = {
       description = "RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information.";
       homepage = http://www.rdflib.net/;
@@ -2185,6 +2348,34 @@ let pythonPackages = python.modules // rec {
     };
   };
 
+  selenium =
+    buildPythonPackage rec {
+      name = "selenium-2.25.0";
+      src = pkgs.fetchurl {
+        url = http://pypi.python.org/packages/source/s/selenium/selenium-2.25.0.tar.gz;
+        sha256 = "0iinpry1vr4dydh44sc0ny22sa9fqhy2302hf56pf8fakvza9m0a";
+      };
+
+      buildInputs = [pkgs.xlibs.libX11];
+
+      # Recompiling x_ignore_nofocus.so as the original one dlopen's libX11.so.6 by some
+      # absolute paths. Replaced by relative path so it is found when used in nix.
+      x_ignore_nofocus =
+        pkgs.fetchsvn {
+          url = http://selenium.googlecode.com/svn/tags/selenium-2.25.0/cpp/linux-specific;
+          rev = 17641;
+          sha256 = "1wif9r6307qhlcp2zbg6n05yvxxn9ppkxh8gpsplcbyh22zi7bcd";
+        };
+
+      preInstallPhases = "preInstall";
+      preInstall = ''
+        cp ${x_ignore_nofocus}/* .
+        sed -i 's|dlopen(library,|dlopen("libX11.so.6",|' x_ignore_nofocus.c
+        gcc -c -fPIC x_ignore_nofocus.c -o x_ignore_nofocus.o
+        gcc -shared -Wl,-soname,x_ignore_nofocus.so -o x_ignore_nofocus.so  x_ignore_nofocus.o
+        cp -v x_ignore_nofocus.so py/selenium/webdriver/firefox/${if pkgs.stdenv.is64bit then "amd64" else "x86"}/
+      '';
+    };
 
   setuptoolsDarcs = buildPythonPackage {
     name = "setuptools-darcs-1.2.9";
@@ -2207,7 +2398,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   setuptoolsTrial = buildPythonPackage {
     name = "setuptools-trial-0.5.12";
 
@@ -2227,7 +2418,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   simplejson = buildPythonPackage (rec {
     name = "simplejson-2.1.3";
 
@@ -2253,7 +2444,7 @@ let pythonPackages = python.modules // rec {
     };
   });
 
-  
+
   six = buildPythonPackage rec {
     name = "six-1.1.0";
 
@@ -2270,7 +2461,7 @@ let pythonPackages = python.modules // rec {
     };
   };
 
-  
+
   skype4py = buildPythonPackage (rec {
     name = "Skype4Py-1.0.32.0";
 
@@ -2513,6 +2704,28 @@ let pythonPackages = python.modules // rec {
     };
   };
 
+
+  urlgrabber =  buildPythonPackage rec {
+    name = "urlgrabber-3.9.1";
+
+    src = fetchurl {
+      url = "http://urlgrabber.baseurl.org/download/${name}.tar.gz";
+      sha256 = "4437076c8708e5754ea04540e46c7f4f233734ee3590bb8a96389264fb0650d0";
+    };
+
+    doCheck = false;
+
+    propagatedBuildInputs = [ pycurl ];
+
+    meta = {
+      homepage = "urlgrabber.baseurl.org";
+      license = "LGPLv2+";
+      description = "Python module for downloading files";
+      maintainers = [ stdenv.lib.maintainers.qknight ];
+    };
+  };
+
+
   urwid = buildPythonPackage (rec {
     name = "urwid-1.0.1";
 
@@ -2541,6 +2754,8 @@ let pythonPackages = python.modules // rec {
 
     patches = [ ../development/python-modules/virtualenv-change-prefix.patch ];
 
+    propagatedBuildInputs = [ python.modules.readline python.modules.sqlite3 ];
+
     doCheck = false;
 
     meta = with stdenv.lib; {
@@ -2624,6 +2839,24 @@ let pythonPackages = python.modules // rec {
   };
 
 
+  wokkel = buildPythonPackage (rec {
+    url = "http://wokkel.ik.nu/releases/0.7.0/wokkel-0.7.0.tar.gz";
+    name = pkgs.lib.nameFromURL url ".tar";
+    src = fetchurl {
+      inherit url;
+      sha256 = "0rnshrzw8605x05mpd8ndrx3ri8h6cx713mp8sl4f04f4gcrz8ml";
+    };
+
+    propagatedBuildInputs = [twisted dateutil];
+
+    meta = {
+      description = "Some (mainly XMPP-related) additions to twisted";
+      homepage = "http://wokkel.ik.nu/";
+      license = stdenv.lib.licenses.mit;
+    };
+  });
+
+
   wxPython = wxPython28;
 
 
@@ -2633,6 +2866,23 @@ let pythonPackages = python.modules // rec {
     wxGTK = pkgs.wxGTK28;
   };
 
+  xe = buildPythonPackage rec {
+    url = "http://www.blarg.net/%7Esteveha/xe-0.7.4.tar.gz";
+    name = stdenv.lib.nameFromURL url ".tar";
+    src = fetchurl {
+      inherit url;
+      sha256 = "0v9878cl0y9cczdsr6xjy8v9l139lc23h4m5f86p4kpf2wlnpi42";
+    };
+
+    # tests not described in setup.py
+    doCheck = false;
+
+    meta = {
+      homepage = "http://home.blarg.net/~steveha/xe.html";
+      description = "XML elements";
+    };
+  };
+
   xlib = buildPythonPackage (rec {
     name = "xlib-0.15rc1";
 
@@ -2800,11 +3050,11 @@ let pythonPackages = python.modules // rec {
   };
 
   larch = buildPythonPackage rec {
-    name = "larch-0.31";
+    name = "larch-1.20120527";
 
     src = fetchurl rec {
-      url = "http://code.liw.fi/debian/pool/main/p/python-larch/python-larch_0.31.orig.tar.gz";
-      sha256 = "18c243a45b35974c304c9b3d8b05718f1272f14c29cd3c9010800cf821064444";
+      url = "http://code.liw.fi/debian/pool/main/p/python-larch/python-larch_1.20120527.orig.tar.gz";
+      sha256 = "2865a1bfa6bd276bf746e8e7cb73d5199d0b6d00045d8c92e158626687d3bbe1";
     };
 
     buildInputs = [ sphinx ];
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 5391b3a51c57..3b0a015d6b47 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -104,7 +104,7 @@ with (import ./release-lib.nix);
   ghdl = linux;
   ghostscript = linux;
   ghostscriptX = linux;
-  gimp = linux;
+  gimp_2_8 = linux;
   git = linux;
   gitFull = linux;
   glibc = linux;
@@ -299,7 +299,6 @@ with (import ./release-lib.nix);
   tinycc = ["i686-linux"];
   uae = linux;
   udev = linux;
-  uml = ["i686-linux"];
   unrar = linux;
   upstart = linux;
   usbutils = linux;
@@ -361,6 +360,7 @@ with (import ./release-lib.nix);
   firefox36Pkgs.firefox = linux;
   firefox12Pkgs.firefox = linux;
   firefox13Pkgs.firefox = linux;
+  firefox15Pkgs.firefox = linux;
 
   gnome = {
     gnome_panel = linux;
@@ -448,7 +448,7 @@ with (import ./release-lib.nix);
     xlsclients = linux;
     xmessage = linux;
     xorgserver = linux;
-    xprop = linux;    
+    xprop = linux;
     xrandr = linux;
     xrdb = linux;
     xset = linux;
@@ -474,4 +474,3 @@ with (import ./release-lib.nix);
   };
 
 } ))
-