summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-06-25 18:42:56 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-06-25 18:42:56 +0200
commit552fd3d599851336aa21ef073d1f7836566e454f (patch)
treeb2ebdeaa32426d12e21020410a0eb1a12881f8f6 /pkgs
parentcc61d31902d67b94333f53a5ab5772330bbc21cc (diff)
parent9dc35999602bc3bf2d7358a9ff79b9530e8d1975 (diff)
downloadnixpkgs-552fd3d599851336aa21ef073d1f7836566e454f.tar
nixpkgs-552fd3d599851336aa21ef073d1f7836566e454f.tar.gz
nixpkgs-552fd3d599851336aa21ef073d1f7836566e454f.tar.bz2
nixpkgs-552fd3d599851336aa21ef073d1f7836566e454f.tar.lz
nixpkgs-552fd3d599851336aa21ef073d1f7836566e454f.tar.xz
nixpkgs-552fd3d599851336aa21ef073d1f7836566e454f.tar.zst
nixpkgs-552fd3d599851336aa21ef073d1f7836566e454f.zip
Merge remote-tracking branch 'origin/master' into multiple-outputs
Conflicts:
	pkgs/development/libraries/atk/default.nix
	pkgs/development/libraries/cairo/default.nix
	pkgs/development/libraries/freetype/default.nix
	pkgs/development/libraries/glib/default.nix
	pkgs/development/libraries/gmime/default.nix
	pkgs/development/libraries/pango/default.nix
	pkgs/servers/x11/xorg/default.nix
	pkgs/top-level/all-packages.nix
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/audacious/default.nix16
-rw-r--r--pkgs/applications/audio/flac/default.nix17
-rw-r--r--pkgs/applications/audio/pianobar/default.nix26
-rw-r--r--pkgs/applications/audio/spotify/default.nix10
-rw-r--r--pkgs/applications/editors/eclipse/default.nix40
-rw-r--r--pkgs/applications/editors/emacs-modes/cua/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/ess/default.nix20
-rw-r--r--pkgs/applications/editors/emacs-modes/jdee/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/quack/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix7
-rw-r--r--pkgs/applications/editors/emacs-modes/tuareg/default.nix27
-rw-r--r--pkgs/applications/editors/geany/default.nix6
-rw-r--r--pkgs/applications/editors/monodevelop/default.nix2
-rw-r--r--pkgs/applications/editors/monodoc/default.nix2
-rw-r--r--pkgs/applications/editors/vim/configurable.nix105
-rw-r--r--pkgs/applications/graphics/batik/default.nix2
-rw-r--r--pkgs/applications/graphics/f-spot/default.nix2
-rw-r--r--pkgs/applications/graphics/k3d/default.nix1
-rw-r--r--pkgs/applications/graphics/openimageio/default.nix6
-rw-r--r--pkgs/applications/graphics/rawtherapee/default.nix4
-rw-r--r--pkgs/applications/graphics/tesseract/default.nix25
-rw-r--r--pkgs/applications/misc/blender/fix-include.patch12
-rw-r--r--pkgs/applications/misc/calibre/default.nix14
-rw-r--r--pkgs/applications/misc/cgminer/default.nix44
-rw-r--r--pkgs/applications/misc/djvulibre/default.nix10
-rw-r--r--pkgs/applications/misc/djvulibre/gcc-4.6.patch658
-rw-r--r--pkgs/applications/misc/evince/default.nix59
-rw-r--r--pkgs/applications/misc/keepass/default.nix45
-rw-r--r--pkgs/applications/misc/sdcv/default.nix31
-rw-r--r--pkgs/applications/misc/sdcv/sdcv.cpp.patch12
-rw-r--r--pkgs/applications/misc/sdcv/sdcv.cpp.patch-darwin19
-rw-r--r--pkgs/applications/misc/sdcv/utils.hpp.patch10
-rw-r--r--pkgs/applications/misc/synergy/cryptopp.patch54
-rw-r--r--pkgs/applications/misc/synergy/default.nix37
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix13
-rw-r--r--pkgs/applications/networking/browsers/chromium/sandbox_userns_29.patch287
-rw-r--r--pkgs/applications/networking/browsers/chromium/sources.nix18
-rwxr-xr-xpkgs/applications/networking/browsers/chromium/update.sh64
-rw-r--r--pkgs/applications/networking/browsers/firefox/20.0.nix3
-rw-r--r--pkgs/applications/networking/browsers/firefox/21.0.nix38
-rw-r--r--pkgs/applications/networking/browsers/firefox/disable-reporter.patch20
-rw-r--r--pkgs/applications/networking/browsers/firefox/system-cairo.patch73
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix1
-rw-r--r--pkgs/applications/networking/dropbox-cli/default.nix16
-rw-r--r--pkgs/applications/networking/instant-messengers/linphone/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/skype/default.nix4
-rw-r--r--pkgs/applications/networking/irc/irssi/default.nix8
-rw-r--r--pkgs/applications/networking/irc/irssi/otr/default.nix6
-rw-r--r--pkgs/applications/networking/irc/weechat/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/sup/default.nix64
-rw-r--r--pkgs/applications/networking/mumble/default.nix6
-rw-r--r--pkgs/applications/networking/p2p/gnunet/svn.nix6
-rw-r--r--pkgs/applications/networking/umurmur/default.nix4
-rw-r--r--pkgs/applications/office/gnucash/default.nix11
-rw-r--r--pkgs/applications/office/hledger-irr/default.nix16
-rw-r--r--pkgs/applications/science/astronomy/celestia/default.nix30
-rw-r--r--pkgs/applications/science/logic/coq/default.nix6
-rw-r--r--pkgs/applications/science/math/glsurf/default.nix32
-rw-r--r--pkgs/applications/science/math/weka/default.nix32
-rw-r--r--pkgs/applications/science/misc/tulip/default.nix8
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-annex/default.nix7
-rw-r--r--pkgs/applications/version-management/git-and-tools/tig/default.nix3
-rw-r--r--pkgs/applications/version-management/kdesvn/default.nix4
-rw-r--r--pkgs/applications/version-management/subversion/default.nix4
-rw-r--r--pkgs/applications/video/gnash/default.nix4
-rw-r--r--pkgs/applications/video/mplayer/default.nix2
-rw-r--r--pkgs/applications/video/smplayer/default.nix23
-rw-r--r--pkgs/applications/video/vlc/default.nix9
-rw-r--r--pkgs/applications/video/xbmc/default.nix5
-rw-r--r--pkgs/applications/virtualization/qemu/default.nix11
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix15
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix15
-rw-r--r--pkgs/applications/window-managers/weston/default.nix31
-rw-r--r--pkgs/build-support/fetchurl/default.nix2
-rw-r--r--pkgs/build-support/fetchurl/mirrors.nix2
-rw-r--r--pkgs/data/fonts/bakoma-ttf/default.nix2
-rw-r--r--pkgs/data/misc/cacert/default.nix2
-rw-r--r--pkgs/data/misc/gsettings-desktop-schemas/default.nix17
-rw-r--r--pkgs/data/misc/poppler-data/default.nix5
-rw-r--r--pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix16
-rw-r--r--pkgs/desktops/gnome-2/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/ORBit2/default.nix4
-rw-r--r--pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/gtkglext/default.nix5
-rw-r--r--pkgs/desktops/gnome-2/platform/intltool/default.nix13
-rw-r--r--pkgs/desktops/gnome-2/platform/libbonobo/default.nix4
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnome/default.nix4
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnome/new-glib.patch65
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnomeprint/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix17
-rw-r--r--pkgs/desktops/gnome-3/core/at-spi2-core/default.nix23
-rw-r--r--pkgs/desktops/gnome-3/core/evince/default.nix62
-rw-r--r--pkgs/desktops/gnome-3/core/gconf/default.nix29
-rw-r--r--pkgs/desktops/gnome-3/core/gcr/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-keyring/default.nix26
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-terminal/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/core/gvfs/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/core/libcroco/default.nix11
-rw-r--r--pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix17
-rw-r--r--pkgs/desktops/gnome-3/core/libgweather/default.nix14
-rw-r--r--pkgs/desktops/gnome-3/core/vte/default.nix46
-rw-r--r--pkgs/desktops/gnome-3/core/zenity/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/default.nix55
-rw-r--r--pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix15
-rw-r--r--pkgs/desktops/gnome-3/desktop/rarian/default.nix11
-rw-r--r--pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix18
-rw-r--r--pkgs/desktops/kde-4.10/kdepimlibs.nix4
-rw-r--r--pkgs/desktops/xfce/4_08.nix37
-rw-r--r--pkgs/desktops/xfce/4_10.nix35
-rw-r--r--pkgs/desktops/xfce/common.nix72
-rw-r--r--pkgs/desktops/xfce/core/xfce4-dev-tools.nix24
-rw-r--r--pkgs/desktops/xfce/core/xfce4-session-systemd.patch470
-rw-r--r--pkgs/desktops/xfce/default.nix2
-rw-r--r--pkgs/development/compilers/ghc/6.4.2-binary.nix2
-rw-r--r--pkgs/development/compilers/julia/default.nix37
-rw-r--r--pkgs/development/compilers/llvm/default.nix16
-rw-r--r--pkgs/development/compilers/llvm/set_soname.patch12
-rw-r--r--pkgs/development/compilers/mono/default.nix17
-rw-r--r--pkgs/development/compilers/ocaml/3.08.0.nix2
-rw-r--r--pkgs/development/compilers/openjdk/bootstrap.nix4
-rw-r--r--pkgs/development/compilers/qcmm/default.nix2
-rw-r--r--pkgs/development/compilers/vala/default.nix21
-rw-r--r--pkgs/development/interpreters/guile/default.nix18
-rw-r--r--pkgs/development/interpreters/octave/default.nix10
-rw-r--r--pkgs/development/interpreters/perl/5.14/default.nix4
-rw-r--r--pkgs/development/interpreters/perl/5.16/default.nix4
-rw-r--r--pkgs/development/interpreters/php/5.3.nix7
-rw-r--r--pkgs/development/interpreters/php/5.4.nix7
-rw-r--r--pkgs/development/interpreters/python/2.7/default.nix8
-rw-r--r--pkgs/development/interpreters/python/2.7/deterministic-build.patch36
-rw-r--r--pkgs/development/interpreters/python/3.3/default.nix2
-rw-r--r--pkgs/development/interpreters/renpy/default.nix49
-rw-r--r--pkgs/development/interpreters/ruby/bitperfect-rdoc.patch13
-rw-r--r--pkgs/development/interpreters/ruby/gem.nix4
-rw-r--r--pkgs/development/interpreters/ruby/generated.nix114
-rw-r--r--pkgs/development/interpreters/ruby/patches.nix20
-rw-r--r--pkgs/development/interpreters/ruby/ruby-18.nix4
-rw-r--r--pkgs/development/interpreters/ruby/ruby-19.nix28
-rw-r--r--pkgs/development/interpreters/ruby/ruby19-parallel-install.patch15
-rw-r--r--pkgs/development/libraries/GConf/3.x.nix23
-rw-r--r--pkgs/development/libraries/SDL/default.nix13
-rw-r--r--pkgs/development/libraries/aspell/dictionaries.nix20
-rw-r--r--pkgs/development/libraries/atk/default.nix (renamed from pkgs/development/libraries/atk/2.6.x.nix)10
-rw-r--r--pkgs/development/libraries/cairo/1.12.2.nix4
-rw-r--r--pkgs/development/libraries/cairo/default.nix73
-rw-r--r--pkgs/development/libraries/db4/db4-4.4.nix2
-rw-r--r--pkgs/development/libraries/dbus-cplusplus/default.nix4
-rw-r--r--pkgs/development/libraries/dbus-glib/default.nix8
-rw-r--r--pkgs/development/libraries/dbus/default.nix126
-rw-r--r--pkgs/development/libraries/dbus/implement-getgrouplist.patch108
-rw-r--r--pkgs/development/libraries/dbus/no-create-dirs.patch26
-rw-r--r--pkgs/development/libraries/dbus/systemd.patch14
-rw-r--r--pkgs/development/libraries/dbus/ucred-dirty-hack.patch18
-rw-r--r--pkgs/development/libraries/expat/default.nix1
-rw-r--r--pkgs/development/libraries/fontconfig/default.nix25
-rw-r--r--pkgs/development/libraries/freeglut/default.nix8
-rw-r--r--pkgs/development/libraries/freetype/default.nix48
-rw-r--r--pkgs/development/libraries/freetype/enable-validation.patch22
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/default.nix (renamed from pkgs/development/libraries/gdk-pixbuf/2.26.x.nix)11
-rw-r--r--pkgs/development/libraries/glew/default.nix4
-rw-r--r--pkgs/development/libraries/glib/default.nix (renamed from pkgs/development/libraries/glib/2.34.x.nix)48
-rw-r--r--pkgs/development/libraries/glibc/2.17/common.nix8
-rw-r--r--pkgs/development/libraries/glibc/2.17/cve-2013-0242.patch87
-rw-r--r--pkgs/development/libraries/glibc/2.17/cve-2013-1914.patch52
-rw-r--r--pkgs/development/libraries/gmime/default.nix15
-rw-r--r--pkgs/development/libraries/gobject-introspection/default.nix8
-rw-r--r--pkgs/development/libraries/gpgme/default.nix6
-rw-r--r--pkgs/development/libraries/gstreamer/gstreamer/default.nix4
-rw-r--r--pkgs/development/libraries/gtk+/2.x.nix (renamed from pkgs/development/libraries/gtk+/2.24.x.nix)30
-rw-r--r--pkgs/development/libraries/gtk+/3.x.nix (renamed from pkgs/development/libraries/gtk+/3.2.x.nix)29
-rw-r--r--pkgs/development/libraries/gtk-sharp-1/default.nix2
-rw-r--r--pkgs/development/libraries/gtkmm/3.x.nix8
-rw-r--r--pkgs/development/libraries/gtkmozembed-sharp/default.nix2
-rw-r--r--pkgs/development/libraries/gtksourceview-sharp/default.nix2
-rw-r--r--pkgs/development/libraries/harfbuzz/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/Agda/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/Chart-gtk/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/Chart/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/JuicyPixels/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/ListLike/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/accelerate-cuda/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/accelerate-io/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/accelerate/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/acid-state/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/binary/0.6.0.0.nix13
-rw-r--r--pkgs/development/libraries/haskell/binary/0.7.1.0.nix (renamed from pkgs/development/libraries/haskell/binary/default.nix)0
-rw-r--r--pkgs/development/libraries/haskell/bytedump/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/classy-prelude/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/concurrent-extra/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/contravariant/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/entropy/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/fingertree/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/ghc-heap-view/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/ghc-vis/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/hakyll/default.nix36
-rw-r--r--pkgs/development/libraries/haskell/hashable/1.2.0.10.nix (renamed from pkgs/development/libraries/haskell/hashable/1.2.0.7.nix)4
-rw-r--r--pkgs/development/libraries/haskell/hflags/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/hit/default.nix27
-rw-r--r--pkgs/development/libraries/haskell/hsdns/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/hsshellscript/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/iteratee/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/monadcryptorandom/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/mongoDB/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/persistent-template/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/persistent/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/pipes-concurrency/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/postgresql-simple/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/regex-tdfa-text/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/shake/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/snap/core.nix16
-rw-r--r--pkgs/development/libraries/haskell/template-default/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/vector-th-unbox/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/vector/0.10.nix15
-rw-r--r--pkgs/development/libraries/haskell/vector/0.9.1.nix15
-rw-r--r--pkgs/development/libraries/haskell/xtest/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/yesod-bin/default.nix31
-rw-r--r--pkgs/development/libraries/haskell/yesod-core/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-persistent/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-platform/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod-routes/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/yesod/default.nix4
-rw-r--r--pkgs/development/libraries/iksemel/default.nix24
-rw-r--r--pkgs/development/libraries/imlib/default.nix2
-rw-r--r--pkgs/development/libraries/java/jakarta-bcel/default.nix2
-rw-r--r--pkgs/development/libraries/java/jakarta-regexp/default.nix2
-rw-r--r--pkgs/development/libraries/javascript/jquery-ui/default.nix14
-rw-r--r--pkgs/development/libraries/libcanberra/default.nix16
-rw-r--r--pkgs/development/libraries/libcroco/default.nix11
-rw-r--r--pkgs/development/libraries/libdrm/default.nix13
-rw-r--r--pkgs/development/libraries/libgcrypt/default.nix10
-rw-r--r--pkgs/development/libraries/libgnome-keyring/3.x.nix18
-rw-r--r--pkgs/development/libraries/libgpg-error/default.nix2
-rw-r--r--pkgs/development/libraries/libgphoto2/default.nix3
-rw-r--r--pkgs/development/libraries/libgphoto2/default.upstream9
-rw-r--r--pkgs/development/libraries/libgsf/default.nix23
-rw-r--r--pkgs/development/libraries/libgweather/default.nix13
-rw-r--r--pkgs/development/libraries/libjpeg-turbo/default.nix7
-rw-r--r--pkgs/development/libraries/libmtp/default.nix12
-rw-r--r--pkgs/development/libraries/libpaper/default.nix17
-rw-r--r--pkgs/development/libraries/libpng/15.nix24
-rw-r--r--pkgs/development/libraries/libpng/default.nix7
-rw-r--r--pkgs/development/libraries/libpng/libpng-apng.nix18
-rw-r--r--pkgs/development/libraries/librsvg/default.nix22
-rw-r--r--pkgs/development/libraries/libsecret/default.nix22
-rw-r--r--pkgs/development/libraries/libtiff/default.nix6
-rw-r--r--pkgs/development/libraries/libusb1/default.nix4
-rw-r--r--pkgs/development/libraries/libva/default.nix4
-rw-r--r--pkgs/development/libraries/libvdpau/default.nix12
-rw-r--r--pkgs/development/libraries/libvpx/default.nix18
-rw-r--r--pkgs/development/libraries/libxkbcommon/default.nix21
-rw-r--r--pkgs/development/libraries/libxtc_dxtn/default.nix5
-rw-r--r--pkgs/development/libraries/mesa-glu/default.nix19
-rw-r--r--pkgs/development/libraries/mesa/default.nix138
-rw-r--r--pkgs/development/libraries/mesa/dricore-gallium.patch216
-rw-r--r--pkgs/development/libraries/mesa/fix-rounding.patch357
-rw-r--r--pkgs/development/libraries/mesa/mips_wmb.patch16
-rw-r--r--pkgs/development/libraries/mesa/static-gallium.patch71
-rw-r--r--pkgs/development/libraries/mpfr/3.1.2.nix51
-rw-r--r--pkgs/development/libraries/nlopt/default.nix15
-rw-r--r--pkgs/development/libraries/openjpeg/default.nix10
-rw-r--r--pkgs/development/libraries/pango/default.nix (renamed from pkgs/development/libraries/pango/1.30.x.nix)13
-rw-r--r--pkgs/development/libraries/pangox-compat/default.nix19
-rw-r--r--pkgs/development/libraries/pdf2xml/default.nix2
-rw-r--r--pkgs/development/libraries/pixman/default.nix22
-rw-r--r--pkgs/development/libraries/poppler/0.18.nix53
-rw-r--r--pkgs/development/libraries/poppler/default.nix90
-rw-r--r--pkgs/development/libraries/qt-4.x/4.8/CVE-2013-0254.patch66
-rw-r--r--pkgs/development/libraries/qt-4.x/4.8/default.nix28
-rw-r--r--pkgs/development/libraries/ruby_gpgme/default.nix64
-rw-r--r--pkgs/development/libraries/ruby_ncursesw_sup/default.nix47
-rw-r--r--pkgs/development/libraries/smpeg/default.nix2
-rw-r--r--pkgs/development/libraries/suitesparse/default.nix4
-rw-r--r--pkgs/development/libraries/vaapi-intel/default.nix9
-rw-r--r--pkgs/development/libraries/vaapi-vdpau/default.nix2
-rw-r--r--pkgs/development/libraries/vaapi-vdpau/glext85.patch20
-rw-r--r--pkgs/development/libraries/wayland/default.nix14
-rw-r--r--pkgs/development/libraries/wxGTK-2.8/default.nix16
-rw-r--r--pkgs/development/libraries/x264/default.nix2
-rw-r--r--pkgs/development/misc/amdadl-sdk/default.nix44
-rw-r--r--pkgs/development/misc/amdapp-sdk/01-remove-aparapi-samples.patch10
-rw-r--r--pkgs/development/misc/amdapp-sdk/default.nix106
-rw-r--r--pkgs/development/mobile/titaniumenv/titaniumsdk.nix10
-rw-r--r--pkgs/development/ocaml-modules/camlimages/default.nix43
-rw-r--r--pkgs/development/ocaml-modules/camlzip/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/cryptokit/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/dypgen/default.nix33
-rw-r--r--pkgs/development/ocaml-modules/lablgl/Makefile.config.patch117
-rw-r--r--pkgs/development/ocaml-modules/lablgl/default.nix45
-rw-r--r--pkgs/development/ocaml-modules/lablgtk/default.nix13
-rw-r--r--pkgs/development/ocaml-modules/mlgmp/META7
-rw-r--r--pkgs/development/ocaml-modules/mlgmp/default.nix37
-rw-r--r--pkgs/development/ocaml-modules/mysql/default.nix13
-rw-r--r--pkgs/development/ocaml-modules/ocaml-cairo/META.patch16
-rw-r--r--pkgs/development/ocaml-modules/ocaml-cairo/default.nix44
-rw-r--r--pkgs/development/ocaml-modules/ocamlnet/configure.patch63
-rw-r--r--pkgs/development/ocaml-modules/ocamlnet/default.nix18
-rw-r--r--pkgs/development/ocaml-modules/sqlite3/default.nix13
-rw-r--r--pkgs/development/python-modules/generic/default.nix1
-rw-r--r--pkgs/development/python-modules/pygame/default.nix53
-rw-r--r--pkgs/development/python-modules/pygame/pygame-v4l.patch88
-rw-r--r--pkgs/development/python-modules/pygtk/default.nix7
-rw-r--r--pkgs/development/tools/build-managers/gnumake-3.80/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/mk/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/ninja/default.nix12
-rw-r--r--pkgs/development/tools/build-managers/remake/default.nix18
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix27
-rw-r--r--pkgs/development/tools/build-managers/simple-build-tool/default.nix108
-rw-r--r--pkgs/development/tools/documentation/haddock/2.13.2.1.nix20
-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/timeplot/default.nix4
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix9
-rw-r--r--pkgs/development/tools/misc/binutils/deterministic.patch12
-rw-r--r--pkgs/development/tools/misc/intltool/default.nix9
-rw-r--r--pkgs/development/tools/misc/intltool/default.upstream2
-rw-r--r--pkgs/development/tools/ocaml/deriving/default.nix72
-rw-r--r--pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix37
-rw-r--r--pkgs/development/tools/ocaml/omake/warn.patch10
-rw-r--r--pkgs/development/tools/selenium/chromedriver/default.nix16
-rw-r--r--pkgs/development/web/plone/4.1.6.nix12
-rw-r--r--pkgs/games/flightgear/default.nix3
-rw-r--r--pkgs/games/keen4/default.nix2
-rw-r--r--pkgs/games/quake3/demo/default.nix4
-rw-r--r--pkgs/games/sgt-puzzles/default.nix6
-rw-r--r--pkgs/lib/licenses.nix12
-rw-r--r--pkgs/lib/maintainers.nix2
-rw-r--r--pkgs/lib/misc.nix5
-rw-r--r--pkgs/lib/modules.nix23
-rw-r--r--pkgs/lib/options.nix16
-rw-r--r--pkgs/lib/strings.nix7
-rw-r--r--pkgs/misc/cups/default.nix2
-rw-r--r--pkgs/misc/emulators/wine/default.nix11
-rw-r--r--pkgs/misc/ghostscript/default.nix42
-rw-r--r--pkgs/misc/ghostscript/purity-9.05.patch27
-rw-r--r--pkgs/misc/themes/gnome-themes-standard/default.nix15
-rw-r--r--pkgs/misc/vim-plugins/default.nix170
-rw-r--r--pkgs/os-specific/linux/acpid/default.nix1
-rw-r--r--pkgs/os-specific/linux/aufs-util/2.nix2
-rw-r--r--pkgs/os-specific/linux/aufs/2.nix2
-rw-r--r--pkgs/os-specific/linux/cryptsetup/default.nix12
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.2.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.9.nix4
-rw-r--r--pkgs/os-specific/linux/libselinux/default.nix18
-rw-r--r--pkgs/os-specific/linux/psmouse-alps/default.nix38
-rw-r--r--pkgs/os-specific/linux/qemu-kvm/default.nix5
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix20
-rw-r--r--pkgs/os-specific/linux/systemd/fix-tests-1.patch68
-rw-r--r--pkgs/os-specific/linux/systemd/no-global-install.patch26
-rw-r--r--pkgs/os-specific/linux/usbutils/default.nix2
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/default.nix4
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/libnl.patch2
-rw-r--r--pkgs/os-specific/linux/xf86-input-wacom/default.nix4
-rw-r--r--pkgs/os-specific/linux/xf86-video-nouveau/default.nix20
-rw-r--r--pkgs/servers/dns/bind/default.nix18
-rw-r--r--pkgs/servers/http/apache-httpd/2.2.nix11
-rw-r--r--pkgs/servers/monitoring/zabbix/2.0.nix18
-rw-r--r--pkgs/servers/nosql/riak/1.3.1.nix64
-rw-r--r--pkgs/servers/nosql/riak/riak-1.3.1.patch64
-rw-r--r--pkgs/servers/nosql/riak/riak-admin-1.3.1.patch52
-rw-r--r--pkgs/servers/shishi/default.nix13
-rw-r--r--pkgs/servers/x11/xorg/default.nix776
-rw-r--r--pkgs/servers/x11/xorg/extra.list16
-rwxr-xr-xpkgs/servers/x11/xorg/generate-expr-from-tarballs.pl36
-rw-r--r--pkgs/servers/x11/xorg/old.list6
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix214
-rw-r--r--pkgs/servers/x11/xorg/tarballs-7.7.list95
-rw-r--r--pkgs/stdenv/generic/setup-repeatable.sh876
-rw-r--r--pkgs/stdenv/linux/bootstrap/armv5tel/default.nix2
-rw-r--r--pkgs/stdenv/linux/bootstrap/i686/default.nix2
-rw-r--r--pkgs/stdenv/linux/bootstrap/loongson2f/default.nix2
-rw-r--r--pkgs/stdenv/linux/bootstrap/powerpc/default.nix8
-rw-r--r--pkgs/stdenv/linux/bootstrap/x86_64/default.nix2
-rw-r--r--pkgs/tools/X11/winswitch/default.nix46
-rw-r--r--pkgs/tools/X11/xlaunch/default.nix3
-rw-r--r--pkgs/tools/X11/xpra/default.nix4
-rw-r--r--pkgs/tools/archivers/unzip/default.nix1
-rw-r--r--pkgs/tools/filesystems/aefs/default.nix2
-rw-r--r--pkgs/tools/filesystems/ntfs-3g/default.nix5
-rw-r--r--pkgs/tools/filesystems/unionfs-fuse/default.nix1
-rw-r--r--pkgs/tools/graphics/gnuplot/default.nix4
-rw-r--r--pkgs/tools/graphics/graphviz/default.nix4
-rw-r--r--pkgs/tools/graphics/zbar/default.nix2
-rw-r--r--pkgs/tools/misc/getopt/default.nix2
-rw-r--r--pkgs/tools/misc/hddtemp/default.nix2
-rw-r--r--pkgs/tools/misc/memtest86/default.nix6
-rw-r--r--pkgs/tools/misc/rmlint/default.nix19
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix16
-rw-r--r--pkgs/tools/networking/cjdns/default.nix31
-rw-r--r--pkgs/tools/networking/curl/default.nix1
-rw-r--r--pkgs/tools/networking/dropbear/default.nix22
-rw-r--r--pkgs/tools/networking/dropbear/proxycrash.patch17
-rw-r--r--pkgs/tools/networking/network-manager-applet/default.nix12
-rw-r--r--pkgs/tools/networking/network-manager/default.nix4
-rw-r--r--pkgs/tools/networking/network-manager/nixos-purity.patch31
-rw-r--r--pkgs/tools/networking/network-manager/openvpn.nix4
-rw-r--r--pkgs/tools/networking/network-manager/pptp.nix6
-rw-r--r--pkgs/tools/networking/openconnect.nix7
-rw-r--r--pkgs/tools/networking/openssh/default.nix2
-rw-r--r--pkgs/tools/networking/p2p/azureus/default.nix2
-rw-r--r--pkgs/tools/networking/ppp/default.nix7
-rw-r--r--pkgs/tools/package-management/nix/default.nix4
-rw-r--r--pkgs/tools/package-management/nix/unstable.nix6
-rw-r--r--pkgs/tools/package-management/nixops/default.nix37
-rw-r--r--pkgs/tools/security/gnupg/default.nix11
-rw-r--r--pkgs/tools/security/gnupg1/default.nix2
-rw-r--r--pkgs/tools/security/mkpasswd/default.nix4
-rw-r--r--pkgs/tools/system/pciutils/default.nix2
-rw-r--r--pkgs/tools/text/groff/default.nix8
-rw-r--r--pkgs/tools/text/html-tidy/default.nix2
-rw-r--r--pkgs/tools/text/xml/xpf/default.nix2
-rw-r--r--pkgs/tools/typesetting/bibtex-tools/default.nix2
-rw-r--r--pkgs/tools/typesetting/patoline/default.nix51
-rw-r--r--pkgs/tools/typesetting/pdf2djvu/default.nix5
-rw-r--r--pkgs/tools/typesetting/pdf2djvu/default.upstream10
-rw-r--r--pkgs/tools/typesetting/tex/texlive/moderncv.nix4
-rw-r--r--pkgs/tools/typesetting/tex/texlive/moderntimeline.nix26
-rw-r--r--pkgs/tools/typesetting/tex/texlive/pgf.nix7
-rw-r--r--pkgs/tools/virtualization/ec2-ami-tools/default.nix2
-rw-r--r--pkgs/tools/virtualization/ec2-api-tools/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix467
-rw-r--r--pkgs/top-level/haskell-defaults.nix18
-rw-r--r--pkgs/top-level/haskell-packages.nix114
-rw-r--r--pkgs/top-level/node-packages-generated.nix61
-rw-r--r--pkgs/top-level/perl-packages.nix1684
-rw-r--r--pkgs/top-level/python-packages.nix315
-rw-r--r--pkgs/top-level/release-haskell.nix437
-rw-r--r--pkgs/top-level/release-python.nix3
-rw-r--r--pkgs/top-level/release-small.nix1
-rw-r--r--pkgs/top-level/release.nix1
432 files changed, 11157 insertions, 3411 deletions
diff --git a/pkgs/applications/audio/audacious/default.nix b/pkgs/applications/audio/audacious/default.nix
index 9ac62f58570..9ae2fcdd20e 100644
--- a/pkgs/applications/audio/audacious/default.nix
+++ b/pkgs/applications/audio/audacious/default.nix
@@ -1,29 +1,26 @@
-{ stdenv, fetchurl, pkgconfig, glib, gtk, libmowgli, libmcs
+{ stdenv, fetchurl, pkgconfig, glib, gtk3, libmowgli, libmcs
 , gettext, dbus_glib, libxml2, libmad, xlibs, alsaLib, libogg
 , libvorbis, libcdio, libcddb, flac, ffmpeg
 }:
 
 let
-  version = "3.2.2";
+  version = "3.3.4";
 in
 stdenv.mkDerivation {
   name = "audacious-${version}";
 
   src = fetchurl {
     url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2";
-    sha256 = "1vj2f3jq67r9wc3s8p51w8338cjhidj3lpxmzyh31lrfikj21766";
+    sha256 = "19zw4yj8g4fvxkv0ql8v8vgxzldxl1fzig239zzv88mpnvwxn737";
   };
 
   pluginsSrc = fetchurl {
     url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2";
-    sha256 = "1z5p4ny0kzszaki4f1fgrvcr0q1j6i19847jhplc07nl1rvycdy6";
+    sha256 = "1l5g0zq73qp1hlrf4xsaj0n3hg0asrp7169531jgpncjn15dhvdn";
   };
 
-  # `--enable-amidiplug' is to prevent configure from looking in /proc/asound.
-  configureFlags = "--enable-amidiplug --disable-oss";
-
   buildInputs =
-    [ gettext pkgconfig glib gtk libmowgli libmcs libxml2 dbus_glib
+    [ gettext pkgconfig glib gtk3 libmowgli libmcs libxml2 dbus_glib
       libmad xlibs.libXcomposite libogg libvorbis flac alsaLib libcdio
       libcddb ffmpeg
     ];
@@ -54,6 +51,7 @@ stdenv.mkDerivation {
   meta = {
     description = "Audacious, a media player forked from the Beep Media Player, which was itself an XMMS fork";
     homepage = http://audacious-media-player.org/;
-    maintainers = [ stdenv.lib.maintainers.eelco stdenv.lib.maintainers.simons ];
+    maintainers = with stdenv.lib.maintainers; [ eelco simons ];
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/flac/default.nix b/pkgs/applications/audio/flac/default.nix
index 8b31b36858d..95ab8244478 100644
--- a/pkgs/applications/audio/flac/default.nix
+++ b/pkgs/applications/audio/flac/default.nix
@@ -1,29 +1,24 @@
 { stdenv, fetchurl, libogg }:
 
 stdenv.mkDerivation rec {
-  name = "flac-1.2.1";
+  name = "flac-1.3.0";
 
   src = fetchurl {
-    url = mirror://sourceforge/flac/flac-1.2.1.tar.gz;
-    sha256 = "1pry5lgzfg57pga1zbazzdd55fkgk3v5qy4axvrbny5lrr5s8dcn";
+    url = "http://downloads.xiph.org/releases/flac/${name}.tar.xz";
+    sha256 = "1p0hh190kqvpkbk1bbajd81jfbmkyl4fn2i7pggk2zppq6m68bgs";
   };
 
   buildInputs = [ libogg ];
 
-  patches =
-    [ # Fix for building on GCC 4.3.
-      (fetchurl {
-        url = "http://sourceforge.net/p/flac/patches/_discuss/thread/9d4c7504/d8ea/attachment/flac-1.2.1-gcc-4.3-includes.patch";
-        sha256 = "1m6ql5vyjb2jlp5qiqp6w0drq1m6x6y3i1dnl5ywywl3zd36k0mr";
-      })
-    ];
+  doCheck = true; # takes lots of time but will be run rarely (small build-time closure)
 
   enableParallelBuilding = true;
 
   outputs = [ "dev" "out" "bin" "doc" ];
 
   meta = {
-    homepage = http://flac.sourceforge.net;
+    homepage = http://xiph.org/flac/;
     description = "Library and tools for encoding and decoding the FLAC lossless audio file format";
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/applications/audio/pianobar/default.nix b/pkgs/applications/audio/pianobar/default.nix
new file mode 100644
index 00000000000..a9f4b02fa08
--- /dev/null
+++ b/pkgs/applications/audio/pianobar/default.nix
@@ -0,0 +1,26 @@
+{ fetchurl, stdenv, pkgconfig, libao, faad2, libmad, readline, json_c, libgcrypt, gnutls }:
+
+stdenv.mkDerivation rec {
+  name = "pianobar-2013.05.19";
+
+  src = fetchurl {
+    url = "http://6xq.net/projects/pianobar/${name}.tar.bz2";
+    sha256 = "cf88e82663d2b0aa4d73e761506eac4f3e7bc789b57d92377acd994d785e1046";
+  };
+
+  buildInputs = [
+    pkgconfig libao faad2 libmad json_c libgcrypt gnutls
+  ];
+
+  makeFlags="PREFIX=$(out)";
+
+  CC = "gcc";
+  CFLAGS = "-std=c99";
+
+  meta = {
+    description = "A console front-end for Pandora.com";
+    homepage = "http://6xq.net/projects/pianobar/";
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.unfree;
+  };
+}
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index 36c6c2ca9cd..ccdfcbb3d99 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -3,7 +3,7 @@
 assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
 
 let
-  version = "0.9.0.133";
+  version = "0.9.1.55";
   qt4webkit =
     if stdenv.system == "i686-linux" then
       fetchurl {
@@ -25,13 +25,13 @@ stdenv.mkDerivation {
   src =
     if stdenv.system == "i686-linux" then
       fetchurl {
-        url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}.gd18ed58.259-1_i386.deb";
-        sha256 = "15kbwll63pm99262f7xq1z0c5bwmk5cz46pkh8xd5xsqxlsvvv1n";
+        url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}.gbdd3b79.203-1_i386.deb";
+        sha256 = "1sls4gb85700126bbk4sz73ipa2rjcinmpnsi78q0bsdj365y2wc";
       }
     else if stdenv.system == "x86_64-linux" then
       fetchurl {
-        url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}.gd18ed58.259-1_amd64.deb";
-        sha256 = "0l3nikhf4hyj6z7639s668kd806730va005rwqcxvymxddcbcp03";
+        url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_${version}.gbdd3b79.203-1_amd64.deb";
+        sha256 = "10pzj3p8bjbxh9nnm4qc5s1hn9nh7hgh3vbwm0xblj9rn71wl03y";
       }
     else throw "Spotify not supported on this platform.";
 
diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix
index a11cbf349c0..21dad42ea46 100644
--- a/pkgs/applications/editors/eclipse/default.nix
+++ b/pkgs/applications/editors/eclipse/default.nix
@@ -8,7 +8,7 @@ assert stdenv ? glibc;
 let
 
   buildEclipse =
-    { name, src, description }:
+    { name, src ? builtins.getAttr stdenv.system sources, sources ? null, description }:
 
     stdenv.mkDerivation rec {
       inherit name src;
@@ -131,17 +131,16 @@ in {
   eclipse_sdk_37 = buildEclipse {
     name = "eclipse-sdk-3.7";
     description = "Eclipse Classic";
-    src =
-      if stdenv.system == "x86_64-linux" then
-        fetchurl {
-          url = http://archive.eclipse.org/eclipse/downloads/drops/R-3.7-201106131736/eclipse-SDK-3.7-linux-gtk-x86_64.tar.gz;
-          sha256 = "00ig3ww98r8imf32sx5npm6csn5nx288gvdk6w653nijni0di16j";
-        }
-      else
-        fetchurl {
-          url = http://archive.eclipse.org/eclipse/downloads/drops/R-3.7-201106131736/eclipse-SDK-3.7-linux-gtk.tar.gz;
-          sha256 = "08rgw85cam51l98mzb39fdc3ykb369v8pap93qhknbs6a3f5dnff";
+    sources = {
+      "x86_64-linux" = fetchurl {
+          url = http://archive.eclipse.org/eclipse/downloads/drops/R-3.7.2-201202080800/eclipse-SDK-3.7.2-linux-gtk-x86_64.tar.gz;
+          sha256 = "0nf4nv7awhp1k8b1hjb7chpjyjrqnyszsjbc4dlk9phpjv3j4wg5";
+        };
+      "i686-linux" = fetchurl {
+          url = http://archive.eclipse.org/eclipse/downloads/drops/R-3.7.2-201202080800/eclipse-SDK-3.7.2-linux-gtk.tar.gz;
+          sha256 = "1isn7i45l9kyn2yx6vm88jl1gnxph8ynank0aaa218cg8kdygk7j";
         };
+    };
   };
 
   eclipse_cpp_37 = buildEclipse {
@@ -176,8 +175,8 @@ in {
         };
   };
 
-  eclipse_sdk_42 = buildEclipse {
-    name = "eclipse-sdk-4.2";
+  eclipse_sdk_421 = buildEclipse {
+    name = "eclipse-sdk-4.2.1";
     description = "Eclipse Classic";
     src =
       if stdenv.system == "x86_64-linux" then
@@ -191,4 +190,19 @@ in {
           sha256 = "1av6qm9wkbyk123qqf38f0jq4jv2bj9wp6fmpnl55zg6qr463c1w";
         };
     };
+
+  eclipse_sdk_422 = buildEclipse {
+    name = "eclipse-sdk-4.2.2";
+    description = "Eclipse Classic";
+    sources = {
+      "x86_64-linux" = fetchurl {
+          url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/eclipse/downloads/drops4/R-4.2.2-201302041200/eclipse-SDK-4.2.2-linux-gtk-x86_64.tar.gz;
+          sha256 = "0ysa6ymk4h3k1vn59dc909iy197kmx132671kbzfwbim87jmgnqb";
+        };
+      "i686-linux" = fetchurl {
+          url = http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/eclipse/downloads/drops4/R-4.2.2-201302041200/eclipse-SDK-4.2.2-linux-gtk.tar.gz;
+          sha256 = "038yibbrcia38wi72qrdl03g7l35mpvl5nxdfdnvpqxrkfffb826";
+        };
+    };
+  };
 }
diff --git a/pkgs/applications/editors/emacs-modes/cua/default.nix b/pkgs/applications/editors/emacs-modes/cua/default.nix
index b5348967a3e..a03c6447622 100644
--- a/pkgs/applications/editors/emacs-modes/cua/default.nix
+++ b/pkgs/applications/editors/emacs-modes/cua/default.nix
@@ -2,7 +2,7 @@
   name = "cua-mode-2.10";
   builder = ./builder.sh;
   src = fetchurl {
-    url = http://nixos.org/tarballs/cua-mode-2.10.el;
+    url = http://tarballs.nixos.org/cua-mode-2.10.el;
     md5 = "5bf5e43f5f38c8383868c7c6c5baca09";
   };
 }
diff --git a/pkgs/applications/editors/emacs-modes/ess/default.nix b/pkgs/applications/editors/emacs-modes/ess/default.nix
new file mode 100644
index 00000000000..4bd5148b950
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/ess/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, emacs, texinfo }:
+
+stdenv.mkDerivation {
+  name = "ess-13.05";
+
+  src = fetchurl {
+    url = "http://ess.r-project.org/downloads/ess/ess-13.05.tgz";
+    sha256 = "007rd8hg1aclr2i8178ym5c4bi7vgmwkp802v1mkgr85h50zlfdk";
+  };
+
+  buildInputs = [ emacs texinfo ];
+
+  configurePhase = "makeFlags=PREFIX=$out";
+
+  meta = {
+    description = "Emacs Speaks Statistics";
+    homepage = "http://ess.r-project.org/";
+    license = stdenv.lib.licenses.gpl2Plus;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/jdee/default.nix b/pkgs/applications/editors/emacs-modes/jdee/default.nix
index 02f60d0d698..f6ff60052c9 100644
--- a/pkgs/applications/editors/emacs-modes/jdee/default.nix
+++ b/pkgs/applications/editors/emacs-modes/jdee/default.nix
@@ -11,7 +11,7 @@ in
     src = fetchsvn {
       url = "https://jdee.svn.sourceforge.net/svnroot/jdee/trunk/jdee";
       rev = revision;
-      sha256 = "1qj5cv74dp6nf6060jyvnlcbmc4sz8a09806gwa1zfiwz6mm9zrs";
+      sha256 = "1z1y957glbqm7z3dhah9h4jysw3173pq1gpx5agfwcw614n516xz";
     };
 
     patchFlags = "-p1 --ignore-whitespace";
diff --git a/pkgs/applications/editors/emacs-modes/quack/default.nix b/pkgs/applications/editors/emacs-modes/quack/default.nix
index 86371890db1..e57182b40c8 100644
--- a/pkgs/applications/editors/emacs-modes/quack/default.nix
+++ b/pkgs/applications/editors/emacs-modes/quack/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
   src = fetchurl {
     # XXX: Upstream URL is not versioned, which might eventually break this.
     url = "http://www.neilvandyke.org/quack/quack.el";
-    sha256 = "1w3p03f1f3l2nldxc7dig1kkgbbvy5j7zid0cfmkcrpp1qrcsqic";
+    sha256 = "1q5bsllxkibiddwp32306flqm8s3caffnpbqz5ka260avllp4jj5";
   };
 
   buildInputs = [ emacs ];
diff --git a/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix b/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix
index 08fb64002a0..185bc20021e 100644
--- a/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix
+++ b/pkgs/applications/editors/emacs-modes/session-management-for-emacs/default.nix
@@ -4,10 +4,11 @@ stdenv.mkDerivation rec {
   name = "session-management-for-emacs-2.2a";
   
   src = fetchurl {
-    url = "mirror://sourceforge.net/sourceforge/emacs-session/session-2.2a.tar.gz";
-    sha256 = "0i01dnkizs349ahyybzy0mjzgj52z65rxynsj2mlw5mm41sbmprp";
+    url = "http://downloads.sourceforge.net/project/emacs-session/session/2.2a/session-2.2a.tar.gz";
+#    url = "mirror://sourceforge.net/sourceforge/emacs-session/session-2.2a.tar.gz";
+    sha256 = "37dfba7420b5164eab90dafa9e8bf9a2c8f76505fe2fefa14a64e81fa76d0144";
   };
-  
+
   buildInputs = [emacs];
   
   installPhase = ''
diff --git a/pkgs/applications/editors/emacs-modes/tuareg/default.nix b/pkgs/applications/editors/emacs-modes/tuareg/default.nix
new file mode 100644
index 00000000000..17957ffc276
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/tuareg/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, emacs }:
+
+# this package installs the emacs-mode which
+# resides in the ocaml compiler sources.
+
+let version = "2.0.6";
+
+in stdenv.mkDerivation {
+  name = "tuareg-mode-${version}";
+  src = fetchurl {
+    url = https://forge.ocamlcore.org/frs/download.php/882/tuareg-2.0.6.tar.gz;
+    sha256 = "ea79ac24623b82ab8047345f8504abca557a537e639d16ce1ac3e5b27f5b1189";
+  }; 
+
+  buildInputs = [ emacs ];
+
+  installPhase = ''
+    ensureDir "$out/share/emacs/site-lisp"
+    cp *.el *.elc  "$out/share/emacs/site-lisp"
+  '';
+
+  meta = {
+    homepage = http://caml.inria.fr;
+    description = "OCaml mode package for Emacs";
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/applications/editors/geany/default.nix b/pkgs/applications/editors/geany/default.nix
index 289cf7ff8d6..6d43cc27997 100644
--- a/pkgs/applications/editors/geany/default.nix
+++ b/pkgs/applications/editors/geany/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, gtk2, which, pkgconfig, intltool }:
 
 let
-  version = "1.22";
+  version = "1.23";
 in
 
 stdenv.mkDerivation rec {
   name = "geany-${version}";
 
   src = fetchurl {
-    url = "http://download.geany.org/${name}.tar.gz";
-    md5 = "1cb7f6cea8e301c416211786cec474fa";
+    url = "http://download.geany.org/${name}.tar.bz2";
+    sha256 = "1c78rggjaz9fa8gj25wka1sa3argvixnzrarmqvwh0s8d5ragm6d";
   };
 
   buildInputs = [ gtk2 which pkgconfig intltool ];
diff --git a/pkgs/applications/editors/monodevelop/default.nix b/pkgs/applications/editors/monodevelop/default.nix
index c823ecfdf83..aad6325fa44 100644
--- a/pkgs/applications/editors/monodevelop/default.nix
+++ b/pkgs/applications/editors/monodevelop/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
   builder = ./builder.sh;
 
   src = fetchurl {
-    url = http://nixos.org/tarballs/monodevelop-0.6-pre2315.tar.bz2;
+    url = http://tarballs.nixos.org/monodevelop-0.6-pre2315.tar.bz2;
     md5 = "8c33df5629b0676b7ab552854c1de6fd";
   };
 
diff --git a/pkgs/applications/editors/monodoc/default.nix b/pkgs/applications/editors/monodoc/default.nix
index 8f6b6d6024c..0e8421646a8 100644
--- a/pkgs/applications/editors/monodoc/default.nix
+++ b/pkgs/applications/editors/monodoc/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation {
 
   builder = ./builder.sh;
   src = fetchurl {
-    url = http://nixos.org/tarballs/monodoc-1.0.6.tar.gz;
+    url = http://tarballs.nixos.org/monodoc-1.0.6.tar.gz;
     md5 = "f2fc27e8e4717d90dc7efa2450625693";
   };
 
diff --git a/pkgs/applications/editors/vim/configurable.nix b/pkgs/applications/editors/vim/configurable.nix
index 9d07121f4cb..066c8fddd96 100644
--- a/pkgs/applications/editors/vim/configurable.nix
+++ b/pkgs/applications/editors/vim/configurable.nix
@@ -1,21 +1,60 @@
 # TODO tidy up eg The patchelf code is patching gvim even if you don't build it..
 # but I have gvim with python support now :) - Marc
-args: with args;
+args@{source ? "latest", ...}: with args;
+
+
 let inherit (args.composableDerivation) composableDerivation edf; in
-composableDerivation {} {
+composableDerivation {
+  # use gccApple to compile on darwin
+  mkDerivation = ( if stdenv.isDarwin
+                   then stdenvAdapters.overrideGCC stdenv gccApple
+                   else stdenv ).mkDerivation;
+} (fix: {
 
     name = "vim_configurable-7.3";
 
-    src = args.fetchurl {
-      url = ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2;
-      sha256 = "079201qk8g9yisrrb0dn52ch96z3lzw6z473dydw9fzi0xp5spaw";
+    enableParallelBuilding = true; # test this
+
+    src = 
+      builtins.getAttr source {
+      "default" =
+        # latest release
+        args.fetchurl {
+            url = ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2;
+            sha256 = "079201qk8g9yisrrb0dn52ch96z3lzw6z473dydw9fzi0xp5spaw";
+          };
+      "vim-nox" =
+          {
+            # vim nox branch: client-server without X by uing sockets
+            # REGION AUTO UPDATE: { name="vim-nox"; type="hg"; url="https://code.google.com/r/yukihironakadaira-vim-cmdsrv-nox/"; branch="cmdsrv-nox"; }
+            src = (fetchurl { url = "http://mawercer.de/~nix/repos/vim-nox-hg-2082fc3.tar.bz2"; sha256 = "293164ca1df752b7f975fd3b44766f5a1db752de6c7385753f083499651bd13a"; });
+            name = "vim-nox-hg-2082fc3";
+            # END
+          }.src;
+      "latest" = {
+        # vim latest usually is vim + bug fixes. So it should be very stable
+         # REGION AUTO UPDATE: { name="vim"; type="hg"; url="https://vim.googlecode.com/hg"; }
+         src = (fetchurl { url = "http://mawercer.de/~nix/repos/vim-hg-7f98896.tar.bz2"; sha256 = "efcb8cc5924b530631a8e5fc2a0622045c2892210d32d300add24aded51866f1"; });
+         name = "vim-hg-7f98896";
+         # END
+      }.src;
     };
 
-    configureFlags = ["--enable-gui=auto" "--with-features=${args.features}"];
+    # if darwin support is enabled, we want to make sure we're not building with
+    # OS-installed python framework
+    preConfigure
+      = stdenv.lib.optionalString
+        (stdenv.isDarwin && (config.vim.darwin or true)) ''
+          sed -i "5387,5390d" src/auto/configure
+          sed -i "5394d" src/auto/configure
+        '';
 
-    nativeBuildInputs = [ncurses pkgconfig]
-      ++ [ gtk libX11 libXext libSM libXpm libXt libXaw libXau libXmu glib 
-           libICE ];
+    configureFlags
+      = [ "--enable-gui=${args.gui}" "--with-features=${args.features}" ];
+
+    nativeBuildInputs
+      = [ ncurses pkgconfig gtk libX11 libXext libSM libXpm libXt libXaw libXau
+          libXmu glib libICE ];
 
     # most interpreters aren't tested yet.. (see python for example how to do it)
     flags = {
@@ -28,7 +67,19 @@ composableDerivation {} {
       // edf { name = "xsmp_interact"; } #Disable XSMP interaction
       // edf { name = "mzscheme"; } #Include MzScheme interpreter.
       // edf { name = "perl"; feat = "perlinterp"; enable = { nativeBuildInputs = [perl]; };} #Include Perl interpreter.
-      // edf { name = "python"; feat = "pythoninterp"; enable = { nativeBuildInputs = [python]; }; } #Include Python interpreter.
+
+      // edf {
+        name = "python";
+        feat = "pythoninterp";
+        enable = {
+          nativeBuildInputs = [ python ];
+        } // lib.optionalAttrs stdenv.isDarwin {
+          configureFlags
+            = [ "--enable-pythoninterp=yes"
+                "--with-python-config-dir=${python}/lib" ];
+        };
+      }
+
       // edf { name = "tcl"; enable = { nativeBuildInputs = [tcl]; }; } #Include Tcl interpreter.
       // edf { name = "ruby"; feat = "rubyinterp"; enable = { nativeBuildInputs = [ruby]; };} #Include Ruby interpreter.
       // edf { name = "lua" ; feat = "luainterp"; enable = { nativeBuildInputs = [lua]; configureFlags = ["--with-lua-prefix=${args.lua}"];};}
@@ -47,11 +98,17 @@ composableDerivation {} {
 
   cfg = {
     pythonSupport    = config.vim.python or true;
-    darwinSupport    = config.vim.darwin or false;
+    rubySupport      = config.vim.ruby or true;
     nlsSupport       = config.vim.nls or false;
     tclSupport       = config.vim.tcl or false;
     multibyteSupport = config.vim.multibyte or false;
     cscopeSupport    = config.vim.cscope or false;
+    netbeansSupport  = config.netbeans or true; # eg envim is using it
+
+    # by default, compile with darwin support if we're compiling on darwin, but
+    # allow this to be disabled by setting config.vim.darwin to false
+    darwinSupport    = stdenv.isDarwin && (config.vim.darwin or true);
+
     # add .nix filetype detection and minimal syntax highlighting support
     ftNixSupport     = config.vim.ftNix or true;
   };
@@ -68,21 +125,23 @@ composableDerivation {} {
       // edf "gtktest" "gtktest" { } #Do not try to compile and run a test GTK program
     */
 
-  postInstall = "
-    rpath=`patchelf --print-rpath \$out/bin/vim`;
-    for i in \$nativeBuildInputs; do
-      echo adding \$i/lib
-      rpath=\$rpath:\$i/lib
+  postInstall = stdenv.lib.optionalString stdenv.isLinux ''
+    rpath=`patchelf --print-rpath $out/bin/vim`;
+    for i in $nativeBuildInputs; do
+      echo adding $i/lib
+      rpath=$rpath:$i/lib
     done
-    echo \$nativeBuildInputs
-    echo \$rpath
-    patchelf --set-rpath \$rpath \$out/bin/{vim,gvim}
-  ";
-  dontStrip =1;
+    echo $nativeBuildInputs
+    echo $rpath
+    patchelf --set-rpath $rpath $out/bin/{vim,gvim}
+  '';
+
+  dontStrip = 1;
 
   meta = {
     description = "The most popular clone of the VI editor";
-    homepage = "www.vim.org";
+    homepage    = "www.vim.org";
+    platforms   = lib.platforms.unix;
   };
+})
 
-}
diff --git a/pkgs/applications/graphics/batik/default.nix b/pkgs/applications/graphics/batik/default.nix
index fbe67d1600d..d776d433b37 100644
--- a/pkgs/applications/graphics/batik/default.nix
+++ b/pkgs/applications/graphics/batik/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation {
   name = "batik-1.6";
   builder = ./builder.sh;
   src = fetchurl {
-    url = http://nixos.org/tarballs/batik-1.6.zip;
+    url = http://tarballs.nixos.org/batik-1.6.zip;
     md5 = "edff288fc64f968ff96ca49763d50f3c";
   };
 
diff --git a/pkgs/applications/graphics/f-spot/default.nix b/pkgs/applications/graphics/f-spot/default.nix
index 856795ea356..8ecfc0df162 100644
--- a/pkgs/applications/graphics/f-spot/default.nix
+++ b/pkgs/applications/graphics/f-spot/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
   inherit makeWrapper;
 
   src = fetchurl {
-    url = http://nixos.org/tarballs/f-spot-0.0.10.tar.bz2;
+    url = http://tarballs.nixos.org/f-spot-0.0.10.tar.bz2;
     md5 = "19cc6e067ccc261b0502ff6189b79832";
   };
 
diff --git a/pkgs/applications/graphics/k3d/default.nix b/pkgs/applications/graphics/k3d/default.nix
index 058d0f79a2f..8920d243dbf 100644
--- a/pkgs/applications/graphics/k3d/default.nix
+++ b/pkgs/applications/graphics/k3d/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
     export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/build/lib"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$(echo ${gtkglext}/include/gtkglext-*) -I$(echo ${gtkglext}/lib/gtkglext-*/include)"
   '';
 
   buildInputs = [
diff --git a/pkgs/applications/graphics/openimageio/default.nix b/pkgs/applications/graphics/openimageio/default.nix
index fa7d16ccf0a..f8160e4d688 100644
--- a/pkgs/applications/graphics/openimageio/default.nix
+++ b/pkgs/applications/graphics/openimageio/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "oiio-${version}";
-  version = "1.1.8";
+  version = "1.1.12";
 
   src = fetchurl {
     url = "https://github.com/OpenImageIO/oiio/archive/Release-${version}.zip";
-    sha256 = "08a6qhplzs8kianqb1gjgrndg81h3il5531jn9g6i4940b1xispg";
+    sha256 = "196iq15waa2yyryiwhf6ynlpqnpknm4cc4azakg01xs70yiphsfl";
   };
 
   buildInputs = [ 
@@ -31,4 +31,4 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/applications/graphics/rawtherapee/default.nix b/pkgs/applications/graphics/rawtherapee/default.nix
index bf7e2d30420..34ad7821c87 100644
--- a/pkgs/applications/graphics/rawtherapee/default.nix
+++ b/pkgs/applications/graphics/rawtherapee/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, gtk, cmake, pixman, libpthreadstubs, gtkmm, libXau
-, libXdmcp, lcms2, libiptcdata, libcanberra, fftw
+, libXdmcp, lcms2, libiptcdata, libcanberra, fftw, expat
 , mercurial  # Not really needed for anything, but it fails if it does not find 'hg'
 }:
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
   
   buildInputs = [ pkgconfig gtk cmake pixman libpthreadstubs gtkmm libXau libXdmcp
-    lcms2 libiptcdata mercurial libcanberra fftw ];
+    lcms2 libiptcdata mercurial libcanberra fftw expat ];
 
   # Disable the use of the RAWZOR propietary libraries
   cmakeFlags = [ "-DWITH_RAWZOR=OFF" ];
diff --git a/pkgs/applications/graphics/tesseract/default.nix b/pkgs/applications/graphics/tesseract/default.nix
index da38cce1442..e67d202dcae 100644
--- a/pkgs/applications/graphics/tesseract/default.nix
+++ b/pkgs/applications/graphics/tesseract/default.nix
@@ -1,28 +1,33 @@
 { stdenv, fetchurl, autoconf, automake, libtool, leptonica, libpng, libtiff }:
 
 let
+  majVersion = "3.02";
+  version = "${majVersion}.02";
+
   f = lang : sha256 : let
       src = fetchurl {
-        url = "http://tesseract-ocr.googlecode.com/files/${lang}.traineddata.gz";
+        url = "http://tesseract-ocr.googlecode.com/files/tesseract-ocr-${majVersion}.${lang}.tar.gz";
         inherit sha256;
       };
     in 
-      "gunzip -c ${src} > $out/share/tessdata/${lang}.traineddata";
+      "tar xfvz ${src} -C $out/share/ --strip=1";
 
   extraLanguages = ''
-    ${f "cat" "1qndk8qygw9bq7nzn7kzgxkm3jhlq7jgvdqpj5id4rrcaavjvifw"}
-    ${f "rus" "0yjzks189bgcmi2vr4v0l0fla11qdrw3cb1nvpxl9mdis8qr9vcc"}
-    ${f "spa" "1q1hw3qi95q5ww3l02fbhjqacxm34cp65fkbx10wjdcg0s5p9q2x"}
-    ${f "nld" "0cbqfhl2rwb1mg4y1140nw2vhhcilc0nk7bfbnxw6bzj1y5n49i8"}
+    ${f "cat" "0d1smiv1b3k9ay2s05sl7q08mb3ln4w5iiiymv2cs8g8333z8jl9"}
+    ${f "rus" "059336mkhsj9m3hwfb818xjlxkcdpy7wfgr62qwz65cx914xl709"}
+    ${f "spa" "1c9iza5mbahd9pa7znnq8yv09v5kz3gbd2sarcgcgc1ps1jc437l"}
+    ${f "nld" "162acxp1yb6gyki2is3ay2msalmfcsnrlsd9wml2ja05k94m6bjy"}
+    ${f "eng" "1y5xf794n832s3lymzlsdm2s9nlrd2v27jjjp0fd9xp7c2ah4461"}
+    ${f "slv" "0rqng43435cly32idxm1lvxkcippvc3xpxbfizwq5j0155ym00dr"}
   '';
 in
 
-stdenv.mkDerivation {
-  name = "tesseract-3.0.1";
+stdenv.mkDerivation rec {
+  name = "tesseract-${version}";
 
   src = fetchurl {
-    url = http://tesseract-ocr.googlecode.com/files/tesseract-3.01.tar.gz;
-    sha256 = "c24b0bd278291bc93ab242f93841c1d8743689c943bd804afbc5b898dc0a1c9b";
+    url = "http://tesseract-ocr.googlecode.com/files/tesseract-ocr-${version}.tar.gz";
+    sha256 = "0g81m9y4iydp7kgr56mlkvjdwpp3mb01q385yhdnyvra7z5kkk96";
   };
 
   buildInputs = [ autoconf automake libtool leptonica libpng libtiff ];
diff --git a/pkgs/applications/misc/blender/fix-include.patch b/pkgs/applications/misc/blender/fix-include.patch
new file mode 100644
index 00000000000..44e2147d073
--- /dev/null
+++ b/pkgs/applications/misc/blender/fix-include.patch
@@ -0,0 +1,12 @@
+diff --git a/intern/smoke/intern/WAVELET_NOISE.h b/intern/smoke/intern/WAVELET_NOISE.h
+index fce901b..1f73c5e 100644
+--- a/intern/smoke/intern/WAVELET_NOISE.h
++++ b/intern/smoke/intern/WAVELET_NOISE.h
+@@ -43,6 +43,7 @@
+ #ifndef WAVELET_NOISE_H
+ #define WAVELET_NOISE_H
+ 
++#include <string.h>
+ #include <MERSENNETWISTER.h>
+ 
+ #ifdef WIN32
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 562a9dd52ad..23b5092cd4d 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -1,17 +1,15 @@
 { stdenv, fetchurl, python, pyqt4, sip, popplerQt4, pkgconfig, libpng
 , imagemagick, libjpeg, fontconfig, podofo, qt4, icu, sqlite
-, pil, makeWrapper, unrar, chmlib, pythonPackages, xz
+, pil, makeWrapper, unrar, chmlib, pythonPackages, xz, udisks, libusb1, libmtp
 }:
 
 stdenv.mkDerivation rec {
-  name = "calibre-0.8.51";
+  name = "calibre-0.8.70";
+  # 0.9.* versions won't build: https://bugs.launchpad.net/calibre/+bug/1094719
 
   src = fetchurl {
-    urls = [ 
-      "http://calibre-ebook.googlecode.com/files/${name}.tar.xz"
-      "mirror://sourceforge/calibre/${name}.tar.xz"
-    ];
-    sha256 = "1grcc0k9qpfpwp863x52rl9wj4wz61hcz67l8h2jmli0wxiq44z1";
+    url = "mirror://sourceforge/calibre/${name}.tar.xz";
+    sha256 = "12avwp8r6cnrw6c32gmd2hksa9rszdb76zs6fcmr3n8r1wkwa71g";
   };
 
   inherit python;
@@ -23,7 +21,7 @@ stdenv.mkDerivation rec {
       fontconfig podofo qt4 pil chmlib icu
       pythonPackages.mechanize pythonPackages.lxml pythonPackages.dateutil
       pythonPackages.cssutils pythonPackages.beautifulsoup
-      pythonPackages.sqlite3 sqlite
+      pythonPackages.sqlite3 sqlite udisks libusb1 libmtp
     ];
 
   installPhase = ''
diff --git a/pkgs/applications/misc/cgminer/default.nix b/pkgs/applications/misc/cgminer/default.nix
new file mode 100644
index 00000000000..4ae404a002f
--- /dev/null
+++ b/pkgs/applications/misc/cgminer/default.nix
@@ -0,0 +1,44 @@
+{ fetchgit, stdenv, pkgconfig, libtool, autoconf, automake,
+  curl, ncurses, amdappsdk, amdadlsdk, xorg }:
+
+stdenv.mkDerivation rec {
+  version = "2.11.4";
+  name = "cgminer-${version}";
+
+  src = fetchgit {
+    url = "https://github.com/ckolivas/cgminer.git";
+    rev = "96c8ff5f10f2d8f0cf4d1bd889e8eeac2e4aa715";
+    sha256  = "1vf9agy4vw50cap03qig2y65hdrsdy7cknkzyagv89w5xb230r9a";
+  };
+
+  buildInputs = [ autoconf automake pkgconfig libtool curl ncurses amdappsdk amdadlsdk xorg.libX11 xorg.libXext xorg.libXinerama ];
+  configureScript = "./autogen.sh";
+  configureFlags = "--enable-scrypt";
+  NIX_LDFLAGS = "-lgcc_s -lX11 -lXext -lXinerama";
+
+  preConfigure = ''
+    ln -s ${amdadlsdk}/include/* ADL_SDK/
+  '';
+
+  postBuild = ''
+    gcc api-example.c -I compat/jansson -o cgminer-api
+  '';
+
+  postInstall = ''
+    cp cgminer-api $out/bin/
+    chmod 444 $out/bin/*.cl
+  '';
+
+  meta = with stdenv.lib; {
+    description = "CPU/GPU miner in c for bitcoin";
+    longDescription= ''
+      This is a multi-threaded multi-pool GPU, FPGA and ASIC miner with ATI GPU
+      monitoring, (over)clocking and fanspeed support for bitcoin and derivative
+      coins. Do not use on multiple block chains at the same time!
+    '';
+    homepage = "https://github.com/ckolivas/cgminer";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.offline ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/misc/djvulibre/default.nix b/pkgs/applications/misc/djvulibre/default.nix
index e22dce72b62..4a51ec2d1ac 100644
--- a/pkgs/applications/misc/djvulibre/default.nix
+++ b/pkgs/applications/misc/djvulibre/default.nix
@@ -1,16 +1,14 @@
-{ stdenv, fetchurl, libjpeg, libtiff, libpng, ghostscript, libungif, zlib }:
+{ stdenv, fetchurl, libjpeg, libtiff, librsvg }:
 
 stdenv.mkDerivation rec {
-  name = "djvulibre-3.5.24";
+  name = "djvulibre-3.5.25.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/djvu/${name}.tar.gz";
-    sha256 = "0d1592cmc7scg2jzah47mnvbqldhxb1x9vxm7y64a3iasa0lqwy0";
+    sha256 = "1q5i5ha4zmj2ahjfhi8cv1rah80vm43m9ads46ji38rgvpb7x3c9";
   };
 
-  buildInputs = [ libjpeg libtiff libpng ghostscript zlib libungif ];
-
-  patches = [ ./gcc-4.6.patch ];
+  buildInputs = [ libjpeg libtiff librsvg ];
 
   meta = {
     description = "A library and viewer for the DJVU file format for scanned images";
diff --git a/pkgs/applications/misc/djvulibre/gcc-4.6.patch b/pkgs/applications/misc/djvulibre/gcc-4.6.patch
deleted file mode 100644
index 48fbc2bc7ac..00000000000
--- a/pkgs/applications/misc/djvulibre/gcc-4.6.patch
+++ /dev/null
@@ -1,658 +0,0 @@
-commit 3341545edba359b292a8ef6db1b7d342caf3dcf1
-Author: Leon Bottou <leon@bottou.org>
-Date:   Wed May 4 21:25:35 2011 -0700
-
-    Added include <stddef.h> for gcc-4.6
-
-diff --git a/libdjvu/BSByteStream.cpp b/libdjvu/BSByteStream.cpp
-index b762ccf..d662ab0 100644
---- a/libdjvu/BSByteStream.cpp
-+++ b/libdjvu/BSByteStream.cpp
-@@ -62,6 +62,7 @@
- 
- // - Author: Leon Bottou, 07/1998
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-diff --git a/libdjvu/BSEncodeByteStream.cpp b/libdjvu/BSEncodeByteStream.cpp
-index 5d80e51..68bc3e3 100644
---- a/libdjvu/BSEncodeByteStream.cpp
-+++ b/libdjvu/BSEncodeByteStream.cpp
-@@ -71,6 +71,7 @@
- #include "GOS.h"
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-diff --git a/libdjvu/ByteStream.cpp b/libdjvu/ByteStream.cpp
-index 158c33c..be01847 100644
---- a/libdjvu/ByteStream.cpp
-+++ b/libdjvu/ByteStream.cpp
-@@ -73,6 +73,7 @@
- #include "GOS.h"
- #include "GURL.h"
- #include "DjVuMessage.h"
-+#include <stddef.h>
- #include <fcntl.h>
- #if defined(WIN32) || defined(__CYGWIN32__)
- # include <io.h>
-diff --git a/libdjvu/DjVuFileCache.cpp b/libdjvu/DjVuFileCache.cpp
-index 6b1e85d..7d7a192 100644
---- a/libdjvu/DjVuFileCache.cpp
-+++ b/libdjvu/DjVuFileCache.cpp
-@@ -63,6 +63,7 @@
- #include "DjVuFileCache.h"
- #include "debug.h"
- 
-+#include <stddef.h>
- #include <stdlib.h>
- 
- 
-diff --git a/libdjvu/DjVuGlobal.cpp b/libdjvu/DjVuGlobal.cpp
-index e6d3cec..df9278e 100644
---- a/libdjvu/DjVuGlobal.cpp
-+++ b/libdjvu/DjVuGlobal.cpp
-@@ -76,6 +76,8 @@
- #include "GThreads.h"
- #include "GException.h"
- #include "GContainer.h"
-+
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-diff --git a/libdjvu/DjVuGlobalMemory.cpp b/libdjvu/DjVuGlobalMemory.cpp
-index 3c6012c..c8ba309 100644
---- a/libdjvu/DjVuGlobalMemory.cpp
-+++ b/libdjvu/DjVuGlobalMemory.cpp
-@@ -67,6 +67,8 @@
- 
- #include "DjVuGlobal.h"
- #include "GException.h"
-+
-+#include <stddef.h>
- #include <stdlib.h>
- #include <string.h>
- #include "debug.h"
-diff --git a/libdjvu/DjVuMessage.cpp b/libdjvu/DjVuMessage.cpp
-index 6f5a735..1726025 100644
---- a/libdjvu/DjVuMessage.cpp
-+++ b/libdjvu/DjVuMessage.cpp
-@@ -71,6 +71,7 @@
- #include "debug.h"
- #include <ctype.h>
- #include <string.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #ifdef WIN32
- # include <tchar.h>
-diff --git a/libdjvu/DjVuMessageLite.cpp b/libdjvu/DjVuMessageLite.cpp
-index b8c1010..5daa9d9 100644
---- a/libdjvu/DjVuMessageLite.cpp
-+++ b/libdjvu/DjVuMessageLite.cpp
-@@ -73,8 +73,8 @@
- #include "debug.h"
- #include <ctype.h>
- #include <string.h>
-+#include <stddef.h>
- #include <stdlib.h>
--// #include <stdio.h>
- #ifdef WIN32
- #include <tchar.h>
- #include <windows.h>
-diff --git a/libdjvu/DjVuPalette.cpp b/libdjvu/DjVuPalette.cpp
-index c489f7b..76b0bf4 100644
---- a/libdjvu/DjVuPalette.cpp
-+++ b/libdjvu/DjVuPalette.cpp
-@@ -64,6 +64,8 @@
- #include "ByteStream.h"
- #include "BSByteStream.h"
- #include "DjVuPalette.h"
-+
-+#include <stddef.h>
- #include <stdlib.h>
- #include <math.h>
- 
-diff --git a/libdjvu/DjVuPort.h b/libdjvu/DjVuPort.h
-index f6a92f6..e2b3125 100644
---- a/libdjvu/DjVuPort.h
-+++ b/libdjvu/DjVuPort.h
-@@ -65,6 +65,7 @@
- 
- #include "GThreads.h"
- #include "GURL.h"
-+#include "stddef.h"
- 
- #ifdef HAVE_NAMESPACES
- namespace DJVU {
-diff --git a/libdjvu/DjVuToPS.cpp b/libdjvu/DjVuToPS.cpp
-index 5517bf3..6914ff9 100644
---- a/libdjvu/DjVuToPS.cpp
-+++ b/libdjvu/DjVuToPS.cpp
-@@ -72,6 +72,7 @@
- #include "GPixmap.h"
- #include "debug.h"
- #include <stdarg.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <time.h>
-diff --git a/libdjvu/GBitmap.cpp b/libdjvu/GBitmap.cpp
-index ab5c0de..797edcc 100644
---- a/libdjvu/GBitmap.cpp
-+++ b/libdjvu/GBitmap.cpp
-@@ -66,6 +66,8 @@
- #include "GString.h"
- #include "GThreads.h"
- #include "GException.h"
-+#include <stddef.h>
-+#include <stdlib.h>
- #include <string.h>
- 
- // - Author: Leon Bottou, 05/1997
-diff --git a/libdjvu/GException.cpp b/libdjvu/GException.cpp
-index 2ea179a..89da70f 100644
---- a/libdjvu/GException.cpp
-+++ b/libdjvu/GException.cpp
-@@ -60,6 +60,7 @@
- # pragma implementation
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-diff --git a/libdjvu/GOS.cpp b/libdjvu/GOS.cpp
-index e784932..d2088e2 100644
---- a/libdjvu/GOS.cpp
-+++ b/libdjvu/GOS.cpp
-@@ -65,6 +65,7 @@
- #include "GOS.h"
- #include "GURL.h"
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <ctype.h>
-diff --git a/libdjvu/GPixmap.cpp b/libdjvu/GPixmap.cpp
-index 392df54..4bf6f57 100644
---- a/libdjvu/GPixmap.cpp
-+++ b/libdjvu/GPixmap.cpp
-@@ -75,6 +75,8 @@
- #include "GThreads.h"
- #include "Arrays.h"
- #include "JPEGDecoder.h"
-+
-+#include <stddef.h>
- #include <stdlib.h>
- #include <math.h>
- #include <assert.h>
-diff --git a/libdjvu/GSmartPointer.cpp b/libdjvu/GSmartPointer.cpp
-index 6e523e7..58aef5b 100644
---- a/libdjvu/GSmartPointer.cpp
-+++ b/libdjvu/GSmartPointer.cpp
-@@ -67,6 +67,7 @@
- // Our original implementation consisted of multiple classes.
- // <http://prdownloads.sourceforge.net/djvu/DjVu2_2b-src.tgz>.
- 
-+#include <stddef.h>
- #include <string.h>
- #if PARANOID_DEBUG
- # include <assert.h>
-diff --git a/libdjvu/GSmartPointer.h b/libdjvu/GSmartPointer.h
-index 82781bd..8a8bb8a 100644
---- a/libdjvu/GSmartPointer.h
-+++ b/libdjvu/GSmartPointer.h
-@@ -97,6 +97,8 @@
- #include "DjVuGlobal.h"
- #include "atomic.h"
- 
-+#include <stddef.h>
-+
- #ifdef HAVE_NAMESPACES
- namespace DJVU {
- # ifdef NOT_DEFINED // Just to fool emacs c++ mode
-diff --git a/libdjvu/GString.cpp b/libdjvu/GString.cpp
-index 03f6226..350b11b 100644
---- a/libdjvu/GString.cpp
-+++ b/libdjvu/GString.cpp
-@@ -73,6 +73,7 @@
- #include "GThreads.h"
- #include "debug.h"
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-diff --git a/libdjvu/GString.h b/libdjvu/GString.h
-index b63b753..3aa1f76 100644
---- a/libdjvu/GString.h
-+++ b/libdjvu/GString.h
-@@ -108,6 +108,7 @@
- #include "DjVuGlobal.h"
- #include "GContainer.h"
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdarg.h>
- #ifdef WIN32
-diff --git a/libdjvu/GThreads.cpp b/libdjvu/GThreads.cpp
-index d81f3c3..253fed8 100644
---- a/libdjvu/GThreads.cpp
-+++ b/libdjvu/GThreads.cpp
-@@ -71,6 +71,8 @@
- #include "GThreads.h"
- #include "GException.h"
- #include "DjVuMessageLite.h"
-+
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- 
-diff --git a/libdjvu/GURL.cpp b/libdjvu/GURL.cpp
-index c37bf52..a80078c 100644
---- a/libdjvu/GURL.cpp
-+++ b/libdjvu/GURL.cpp
-@@ -72,6 +72,7 @@
- #include "GURL.h"
- #include "debug.h"
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <ctype.h>
-diff --git a/libdjvu/GUnicode.cpp b/libdjvu/GUnicode.cpp
-index 415c081..a8b25b8 100644
---- a/libdjvu/GUnicode.cpp
-+++ b/libdjvu/GUnicode.cpp
-@@ -62,6 +62,8 @@
- 
- #include "GString.h"
- 
-+#include <stddef.h>
-+
- #if HAS_ICONV
- #include <iconv.h>
- #endif
-diff --git a/libdjvu/IFFByteStream.h b/libdjvu/IFFByteStream.h
-index a653f8c..e31b216 100644
---- a/libdjvu/IFFByteStream.h
-+++ b/libdjvu/IFFByteStream.h
-@@ -124,6 +124,7 @@
- 
- 
- #include "DjVuGlobal.h"
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-diff --git a/libdjvu/IW44EncodeCodec.cpp b/libdjvu/IW44EncodeCodec.cpp
-index 8d7b12c..49081b7 100644
---- a/libdjvu/IW44EncodeCodec.cpp
-+++ b/libdjvu/IW44EncodeCodec.cpp
-@@ -76,6 +76,7 @@
- #include "IFFByteStream.h"
- #include "GRect.h"
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
-diff --git a/libdjvu/IW44Image.cpp b/libdjvu/IW44Image.cpp
-index 9476726..4a19fb5 100644
---- a/libdjvu/IW44Image.cpp
-+++ b/libdjvu/IW44Image.cpp
-@@ -76,6 +76,7 @@
- #include "IFFByteStream.h"
- #include "GRect.h"
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
-diff --git a/libdjvu/JPEGDecoder.h b/libdjvu/JPEGDecoder.h
-index bd430a0..fad1d4c 100644
---- a/libdjvu/JPEGDecoder.h
-+++ b/libdjvu/JPEGDecoder.h
-@@ -64,6 +64,7 @@
- 
- #ifdef NEED_JPEG_DECODER
- 
-+#include <stddef.h>
- #include <string.h>
- #include <setjmp.h>
- 
-diff --git a/libdjvu/MMX.cpp b/libdjvu/MMX.cpp
-index 5ab60bb..528dab6 100644
---- a/libdjvu/MMX.cpp
-+++ b/libdjvu/MMX.cpp
-@@ -62,6 +62,7 @@
- 
- #include "MMX.h"
- #include <stdio.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- 
-diff --git a/libdjvu/UnicodeByteStream.h b/libdjvu/UnicodeByteStream.h
-index 0ae112b..9b49a17 100644
---- a/libdjvu/UnicodeByteStream.h
-+++ b/libdjvu/UnicodeByteStream.h
-@@ -88,6 +88,7 @@
- #include "GString.h"
- #include "ByteStream.h"
- 
-+#include <stddef.h>
- 
- #ifdef HAVE_NAMESPACES
- namespace DJVU {
-diff --git a/libdjvu/XMLParser.cpp b/libdjvu/XMLParser.cpp
-index 84386c5..7da923a 100644
---- a/libdjvu/XMLParser.cpp
-+++ b/libdjvu/XMLParser.cpp
-@@ -75,6 +75,7 @@
- #include "debug.h"
- #include <stdio.h>
- #include <ctype.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- 
-diff --git a/libdjvu/ZPCodec.cpp b/libdjvu/ZPCodec.cpp
-index f6e971d..ff5b9bf 100644
---- a/libdjvu/ZPCodec.cpp
-+++ b/libdjvu/ZPCodec.cpp
-@@ -66,6 +66,8 @@
- #include "ZPCodec.h"
- #include "ByteStream.h"
- #include "GException.h"
-+
-+#include <stddef.h>
- #include <stdlib.h>
- #include <assert.h>
- #include <math.h>
-diff --git a/libdjvu/atomic.cpp b/libdjvu/atomic.cpp
-index bdc193e..63fd483 100644
---- a/libdjvu/atomic.cpp
-+++ b/libdjvu/atomic.cpp
-@@ -28,6 +28,7 @@
- # include "config.h"
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <assert.h>
- #include "atomic.h"
-diff --git a/libdjvu/ddjvuapi.cpp b/libdjvu/ddjvuapi.cpp
-index b18b84b..f40f5aa 100644
---- a/libdjvu/ddjvuapi.cpp
-+++ b/libdjvu/ddjvuapi.cpp
-@@ -60,6 +60,7 @@
- # pragma implementation "ddjvuapi.h"
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-diff --git a/libdjvu/ddjvuapi.h b/libdjvu/ddjvuapi.h
-index d0ed48f..841f223 100644
---- a/libdjvu/ddjvuapi.h
-+++ b/libdjvu/ddjvuapi.h
-@@ -64,6 +64,7 @@ extern "C" {
- }
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- 
-diff --git a/libdjvu/miniexp.cpp b/libdjvu/miniexp.cpp
-index e0fb087..fc51297 100644
---- a/libdjvu/miniexp.cpp
-+++ b/libdjvu/miniexp.cpp
-@@ -23,6 +23,7 @@
- # pragma implementation "miniexp.h"
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <ctype.h>
-diff --git a/libdjvu/miniexp.h b/libdjvu/miniexp.h
-index 91e345d..993005b 100644
---- a/libdjvu/miniexp.h
-+++ b/libdjvu/miniexp.h
-@@ -38,7 +38,8 @@ extern "C" {
- #ifndef MINILISPAPI
- # define MINILISPAPI /**/
- #endif
--  
-+
-+#include <stddef.h>  
- 
- /* -------------------------------------------------- */
- /* LISP EXPRESSIONS                                   */
-diff --git a/tools/bzz.cpp b/tools/bzz.cpp
-index ca092e1..2ebc7b9 100644
---- a/tools/bzz.cpp
-+++ b/tools/bzz.cpp
-@@ -94,6 +94,7 @@
- #include "GURL.h"
- #include "DjVuMessage.h"
- #include <locale.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- static const char *program = "(unknown)";
-diff --git a/tools/c44.cpp b/tools/c44.cpp
-index 6f23b53..855504b 100644
---- a/tools/c44.cpp
-+++ b/tools/c44.cpp
-@@ -226,6 +226,7 @@
- #include <locale.h>
- #include <stdio.h>
- #include <string.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- // command line data
-diff --git a/tools/cjb2.cpp b/tools/cjb2.cpp
-index 8cf89b9..11eb662 100644
---- a/tools/cjb2.cpp
-+++ b/tools/cjb2.cpp
-@@ -120,6 +120,7 @@
- #include "jb2tune.h"
- 
- #include <locale.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #if HAVE_TIFF
- #include <tiffio.h>
-diff --git a/tools/cpaldjvu.cpp b/tools/cpaldjvu.cpp
-index 111cbd3..b640a7a 100644
---- a/tools/cpaldjvu.cpp
-+++ b/tools/cpaldjvu.cpp
-@@ -118,6 +118,7 @@
- #include "jb2tune.h"
- 
- #include <locale.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #include <math.h>
- 
-diff --git a/tools/csepdjvu.cpp b/tools/csepdjvu.cpp
-index cd721f8..d5203d5 100644
---- a/tools/csepdjvu.cpp
-+++ b/tools/csepdjvu.cpp
-@@ -162,6 +162,7 @@
- #include "jb2tune.h"
- 
- #include <locale.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- #undef MIN
-diff --git a/tools/ddjvu.cpp b/tools/ddjvu.cpp
-index 817e045..981a270 100644
---- a/tools/ddjvu.cpp
-+++ b/tools/ddjvu.cpp
-@@ -62,6 +62,7 @@
- # include "config.h"
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <stdarg.h>
-diff --git a/tools/djvm.cpp b/tools/djvm.cpp
-index 951bd66..6ea88c2 100644
---- a/tools/djvm.cpp
-+++ b/tools/djvm.cpp
-@@ -135,9 +135,9 @@
- #include "DjVuMessage.h"
- 
- #include <locale.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
--#include <stdlib.h>
- 
- static const char * progname;
- 
-diff --git a/tools/djvmcvt.cpp b/tools/djvmcvt.cpp
-index 9ca1c54..20b468a 100644
---- a/tools/djvmcvt.cpp
-+++ b/tools/djvmcvt.cpp
-@@ -144,6 +144,7 @@
- 
- #include <locale.h>
- #include <stdio.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- static const char * progname;
-diff --git a/tools/djvudump.cpp b/tools/djvudump.cpp
-index 6a0215a..2dddbdf 100644
---- a/tools/djvudump.cpp
-+++ b/tools/djvudump.cpp
-@@ -119,6 +119,7 @@ xxx
- #include <locale.h>
- #include <stdio.h>
- #include <ctype.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- void
-diff --git a/tools/djvuextract.cpp b/tools/djvuextract.cpp
-index 4a9f381..907b99c 100644
---- a/tools/djvuextract.cpp
-+++ b/tools/djvuextract.cpp
-@@ -105,6 +105,7 @@
- #include "GOS.h"
- #include "DjVuMessage.h"
- #include <locale.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- 
-diff --git a/tools/djvumake.cpp b/tools/djvumake.cpp
-index 7020484..4c5fc0f 100644
---- a/tools/djvumake.cpp
-+++ b/tools/djvumake.cpp
-@@ -153,6 +153,7 @@
- 
- #include <locale.h>
- #include <stdio.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #include <ctype.h>
- 
-diff --git a/tools/djvups.cpp b/tools/djvups.cpp
-index 51aa999..632b832 100644
---- a/tools/djvups.cpp
-+++ b/tools/djvups.cpp
-@@ -57,6 +57,7 @@
- # include "config.h"
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <stdarg.h>
-diff --git a/tools/djvused.cpp b/tools/djvused.cpp
-index de84dcd..687fdca 100644
---- a/tools/djvused.cpp
-+++ b/tools/djvused.cpp
-@@ -61,6 +61,7 @@
- #endif
- 
- #include <stdio.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdarg.h>
- #include <errno.h>
-diff --git a/tools/djvuserve.cpp b/tools/djvuserve.cpp
-index 19a17da..818fe78 100644
---- a/tools/djvuserve.cpp
-+++ b/tools/djvuserve.cpp
-@@ -73,6 +73,7 @@
- 
- #include <locale.h>
- #include <stdio.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #include <sys/stat.h>
- #include <time.h>
-diff --git a/tools/djvutxt.cpp b/tools/djvutxt.cpp
-index ba2c745..9e9124c 100644
---- a/tools/djvutxt.cpp
-+++ b/tools/djvutxt.cpp
-@@ -61,6 +61,7 @@
- # include "config.h"
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <stdarg.h>
-diff --git a/tools/tiff2pdf.h b/tools/tiff2pdf.h
-index 082f5fb..656dc43 100644
---- a/tools/tiff2pdf.h
-+++ b/tools/tiff2pdf.h
-@@ -22,6 +22,7 @@
- # endif
- # if HAVE_TIFF
- #  include <stdio.h>
-+#  include <stddef.h>
- #  include <stdlib.h>
- #  include <tiff.h>
- #  include <tiffio.h>
-diff --git a/xmltools/djvutoxml.cpp b/xmltools/djvutoxml.cpp
-index 17c769b..b40535e 100644
---- a/xmltools/djvutoxml.cpp
-+++ b/xmltools/djvutoxml.cpp
-@@ -71,6 +71,7 @@
- 
- #include <locale.h>
- #include <stdio.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #include <sys/stat.h>
- #include <assert.h>
-diff --git a/xmltools/djvuxmlparser.cpp b/xmltools/djvuxmlparser.cpp
-index bdc5768..6679a9d 100644
---- a/xmltools/djvuxmlparser.cpp
-+++ b/xmltools/djvuxmlparser.cpp
-@@ -70,6 +70,7 @@
- #include <stdio.h>
- #include <ctype.h>
- #include <locale.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- static void 
diff --git a/pkgs/applications/misc/evince/default.nix b/pkgs/applications/misc/evince/default.nix
deleted file mode 100644
index 793c7bda299..00000000000
--- a/pkgs/applications/misc/evince/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ fetchurl, stdenv, perl, perlXMLParser, gettext, intltool
-, pkgconfig, glib, gtk, gnomedocutils, gnomeicontheme
-, libgnome, libgnomeui, scrollkeeper, libxslt
-, libglade, libgnome_keyring, dbus, dbus_glib
-, poppler, libspectre, djvulibre, shared_mime_info
-, makeWrapper, which, ghostscript
-, recentListSize ? null # 5 is not enough, allow passing a different number
-}:
-
-stdenv.mkDerivation rec {
-  name = "evince-2.32.0";
-
-  src = fetchurl {
-    url = "http://ftp.gnome.org/pub/GNOME/sources/evince/2.32/${name}.tar.bz2";
-    sha256 = "2a4c91ae38f8b5028cebb91b9da9ddc50ea8ae3f3d429df89ba351da2d787ff7";
-  };
-
-  buildInputs = [
-    perl perlXMLParser gettext intltool pkgconfig glib gtk
-    gnomedocutils gnomeicontheme libgnome libgnomeui libglade
-    scrollkeeper libgnome_keyring
-    libxslt  # for `xsltproc'
-    dbus dbus_glib poppler libspectre djvulibre makeWrapper which
-    ghostscript
-  ];
-
-  configureFlags = "--with-libgnome --enable-dbus --enable-pixbuf "
-
-    # Do not use nautilus
-    + " --disable-nautilus "
-    # Do not update Scrollkeeper's database (GNOME's help system).
-    + "--disable-scrollkeeper";
-
-  postUnpack = if recentListSize != null then ''
-    sed -i 's/\(gtk_recent_chooser_set_limit .*\)5)/\1${builtins.toString recentListSize})/' */shell/ev-open-recent-action.c
-    sed -i 's/\(if (++n_items == \)5\(.*\)/\1${builtins.toString recentListSize}\2/' */shell/ev-window.c
-  '' else "";
-
-  postInstall = ''
-    # Tell Glib/GIO about the MIME info directory, which is used
-    # by `g_file_info_get_content_type ()'.
-    wrapProgram "$out/bin/evince" \
-      --prefix XDG_DATA_DIRS : "${shared_mime_info}/share:$out/share"
-  '';
-
-  meta = {
-    homepage = http://www.gnome.org/projects/evince/;
-    description = "Evince, GNOME's document viewer";
-
-    longDescription = ''
-      Evince is a document viewer for multiple document formats.  It
-      currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal
-      of Evince is to replace the multiple document viewers that exist
-      on the GNOME Desktop with a single simple application.
-    '';
-
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/applications/misc/keepass/default.nix b/pkgs/applications/misc/keepass/default.nix
new file mode 100644
index 00000000000..0098e626b42
--- /dev/null
+++ b/pkgs/applications/misc/keepass/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, unzip, makeDesktopItem, mono }:
+
+stdenv.mkDerivation rec {
+  name = "keepass-${version}";
+  version = "2.22";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/keepass/KeePass-${version}.zip";
+    sha256 = "0mman7r1jmirfwzix5qww0yn4rrgzcg7546basxjvvfc8flp43j0";
+  };
+
+  sourceRoot = ".";
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  desktopItem = makeDesktopItem {
+    name = "keepass";
+    exec = "keepass";
+    comment = "Password manager";
+    desktopName = "Keepass";
+    genericName = "Password manager";    
+    categories = "Application;Other;";
+  };
+
+
+  installPhase = ''
+    ensureDir "$out/bin"
+    echo "${mono}/bin/mono $out/KeePass.exe" > $out/bin/keepass
+    chmod +x $out/bin/keepass
+    echo $out
+    cp -r ./* $out/
+    ensureDir "$out/share/applications"
+    cp ${desktopItem}/share/applications/* $out/share/applications
+  '';
+
+  buildInputs = [ unzip ];
+
+  meta = {
+    description = "GUI password manager with strong cryptography";
+    homepage = http://www.keepass.info/;
+    maintainers = with stdenv.lib.maintainers; [amorsillo];
+    platforms = with stdenv.lib.platforms; all;
+    license = stdenv.lib.licenses.gpl2;
+  };
+}
diff --git a/pkgs/applications/misc/sdcv/default.nix b/pkgs/applications/misc/sdcv/default.nix
new file mode 100644
index 00000000000..8ac4730de9a
--- /dev/null
+++ b/pkgs/applications/misc/sdcv/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, glib, gettext }:
+
+stdenv.mkDerivation rec {
+  name= "sdcv-0.4.2";
+
+  meta = {
+    homepage = http://sdcv.sourceforge.net/;
+    description = "Console version of StarDict program";
+    maintainers = with stdenv.lib.maintainers; [ lovek323 ];
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.unix;
+  };
+
+  src = fetchurl {
+    url = "mirror://sourceforge/sdcv/${name}.tar.bz2";
+    sha256 = "1cnyv7gd1qvz8ma8545d3aq726wxrx4km7ykl97831irx5wz0r51";
+  };
+
+  patches = ( if stdenv.isDarwin
+              then [ ./sdcv.cpp.patch-darwin ./utils.hpp.patch ]
+              else [ ./sdcv.cpp.patch ] );
+
+  buildInputs = [ pkgconfig glib gettext ];
+
+  preBuild = ''
+    sed -i 's/guint32 page_size/size_t page_size/' src/lib/lib.cpp
+  '';
+
+  NIX_CFLAGS_COMPILE = "-D__GNU_LIBRARY__";
+}
+
diff --git a/pkgs/applications/misc/sdcv/sdcv.cpp.patch b/pkgs/applications/misc/sdcv/sdcv.cpp.patch
new file mode 100644
index 00000000000..6f835f16e45
--- /dev/null
+++ b/pkgs/applications/misc/sdcv/sdcv.cpp.patch
@@ -0,0 +1,12 @@
+--- a/src/utils.hpp
++++ b/src/utils.hpp
+@@ -2,6 +2,9 @@
+ #define _UTILS_HPP_
+ 
+ #include <string>
++#include <stdio.h>
++#include <cstdlib>
++
+ using std::string;
+ 
+ extern bool stdio_getline(FILE *in, string &str);
diff --git a/pkgs/applications/misc/sdcv/sdcv.cpp.patch-darwin b/pkgs/applications/misc/sdcv/sdcv.cpp.patch-darwin
new file mode 100644
index 00000000000..2ee9a24e034
--- /dev/null
+++ b/pkgs/applications/misc/sdcv/sdcv.cpp.patch-darwin
@@ -0,0 +1,19 @@
+--- a/src/sdcv.cpp
++++ b/src/sdcv.cpp
+@@ -27,13 +27,13 @@
+ #include <cstdlib>
+ #include <cstdio>
+ #include <clocale>
++#include <string>
++#include <vector>
++#include <memory>
+ #include <glib.h>
+ #include <glib/gi18n.h>
+ #include <glib/gstdio.h>
+ #include <getopt.h>
+-#include <string>
+-#include <vector>
+-#include <memory>
+ 
+ #include "libwrapper.hpp"
+ #include "readline.hpp"
diff --git a/pkgs/applications/misc/sdcv/utils.hpp.patch b/pkgs/applications/misc/sdcv/utils.hpp.patch
new file mode 100644
index 00000000000..c08641abd6b
--- /dev/null
+++ b/pkgs/applications/misc/sdcv/utils.hpp.patch
@@ -0,0 +1,10 @@
+--- a/src/utils.hpp
++++ b/src/utils.hpp
+@@ -2,6 +2,7 @@
+ #define _UTILS_HPP_
+ 
+ #include <string>
++#include <cstdlib>
+ using std::string;
+ 
+ extern bool stdio_getline(FILE *in, string &str);
diff --git a/pkgs/applications/misc/synergy/cryptopp.patch b/pkgs/applications/misc/synergy/cryptopp.patch
new file mode 100644
index 00000000000..f20ef9544a2
--- /dev/null
+++ b/pkgs/applications/misc/synergy/cryptopp.patch
@@ -0,0 +1,54 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3b61fc0..2206646 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -133,6 +133,9 @@ if (UNIX)
+ 	check_type_size(long SIZEOF_LONG)
+ 	check_type_size(short SIZEOF_SHORT)
+ 
++    # let's just assume cryptopp exists (provided by the Nix expression)
++    list(APPEND libs cryptopp)
++
+ 	# pthread is used on both Linux and Mac
+ 	check_library_exists("pthread" pthread_create "" HAVE_PTHREAD)
+ 	if (HAVE_PTHREAD)
+@@ -303,7 +306,6 @@ if (VNC_SUPPORT)
+ endif()
+ 
+ add_subdirectory(src)
+-add_subdirectory(tools)
+ 
+ if (WIN32)
+ 	# add /analyze in order to unconver potential bugs in the source code
+diff --git a/src/lib/synergy/CCryptoMode.h b/src/lib/synergy/CCryptoMode.h
+index 9b7e8ad..0d659ac 100644
+--- a/src/lib/synergy/CCryptoMode.h
++++ b/src/lib/synergy/CCryptoMode.h
+@@ -17,9 +17,9 @@
+ 
+ #pragma once
+ 
+-#include <cryptopp562/gcm.h>
+-#include <cryptopp562/modes.h>
+-#include <cryptopp562/aes.h>
++#include <cryptopp/gcm.h>
++#include <cryptopp/modes.h>
++#include <cryptopp/aes.h>
+ #include "ECryptoMode.h"
+ #include "CString.h"
+ 
+diff --git a/src/lib/synergy/CCryptoStream.h b/src/lib/synergy/CCryptoStream.h
+index 104b1f6..09c4dc4 100644
+--- a/src/lib/synergy/CCryptoStream.h
++++ b/src/lib/synergy/CCryptoStream.h
+@@ -20,8 +20,8 @@
+ #include "BasicTypes.h"
+ #include "CStreamFilter.h"
+ #include "CCryptoMode.h"
+-#include <cryptopp562/osrng.h>
+-#include <cryptopp562/sha.h>
++#include <cryptopp/osrng.h>
++#include <cryptopp/sha.h>
+ 
+ class CCryptoOptions;
+ 
diff --git a/pkgs/applications/misc/synergy/default.nix b/pkgs/applications/misc/synergy/default.nix
index 4bb3ef9e64a..0b3734ea147 100644
--- a/pkgs/applications/misc/synergy/default.nix
+++ b/pkgs/applications/misc/synergy/default.nix
@@ -1,19 +1,34 @@
-{ stdenv, fetchurl, cmake, x11, libX11, libXi, libXtst }:
+{ stdenv, fetchurl, cmake, x11, libX11, libXi, libXtst, libXrandr, xinput
+, cryptopp ? null, unzip ? null }:
+
+assert stdenv.isLinux -> cryptopp != null;
+assert !stdenv.isLinux -> unzip != null;
+
+with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "synergy-1.4.10";
+  name = "synergy-1.4.12";
 
   src = fetchurl {
   	url = "http://synergy.googlecode.com/files/${name}-Source.tar.gz";
-  	sha256 = "1ghgf96gbk4sdw8sqlc3pjschkmmqybihi12mg6hi26gnk7a5m86";
+  	sha256 = "0j884skwqy8r8ckj9a4rlwsbjwb1yrj9wqma1nwhr2inff6hrdim";
   };
 
-  buildInputs = [ cmake x11 libX11 libXi libXtst ];
-  
+  patches = optional stdenv.isLinux ./cryptopp.patch;
+
+  postPatch = if stdenv.isLinux then ''
+    sed -i -e '/HAVE_X11_EXTENSIONS_XRANDR_H/c \
+      set(HAVE_X11_EXTENSIONS_XRANDR_H true)' CMakeLists.txt
+  '' else ''
+    ${unzip}/bin/unzip -d tools/cryptopp562 tools/cryptopp562.zip
+  '';
+
+  buildInputs = [ cmake x11 libX11 libXi libXtst libXrandr xinput ]
+             ++ optional stdenv.isLinux cryptopp;
+
   # At this moment make install doesn't work for synergy
   # http://synergy-foss.org/spit/issues/details/3317/
 
-  
   installPhase = ''
     ensureDir $out/bin
     cp ../bin/synergyc $out/bin
@@ -21,10 +36,14 @@ stdenv.mkDerivation rec {
     cp ../bin/synergyd $out/bin
   '';
 
-  meta = { 
+  doCheck = true;
+  checkPhase = "../bin/unittests";
+
+  meta = {
     description = "Tool to share the mouse keyboard and the clipboard between computers";
     homepage = http://synergy-foss.org;
-    license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.all;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.aszlig ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index b0dc8721747..b5557cc1200 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -84,6 +84,11 @@ let
   buildPath = "out/${buildType}";
   libExecPath = "$out/libexec/${packageName}";
 
+  # user namespace sandbox patch
+  userns_patch = if versionOlder sourceInfo.version "29.0.0.0"
+                 then ./sandbox_userns.patch
+                 else ./sandbox_userns_29.patch;
+
 in stdenv.mkDerivation rec {
   name = "${packageName}-${version}";
   inherit packageName;
@@ -116,18 +121,14 @@ in stdenv.mkDerivation rec {
 
   prePatch = "patchShebangs .";
 
-  patches = [ ./sandbox_userns.patch ]
+  patches = [ userns_patch ]
          ++ optional cupsSupport ./cups_allow_deprecated.patch;
 
   postPatch = ''
     sed -i -r -e 's/-f(stack-protector)(-all)?/-fno-\1/' build/common.gypi
+    sed -i -e 's|/usr/bin/gcc|gcc|' third_party/WebKit/Source/core/core.gypi
   '' + optionalString useOpenSSL ''
     cat $opensslPatches | patch -p1 -d third_party/openssl/openssl
-  '' + ''
-    sed -i -e 's|/usr/bin/gcc|gcc|' \
-      third_party/WebKit/Source/${if !versionOlder sourceInfo.version "28.0.0.0"
-                                  then "core/core.gypi"
-                                  else "WebCore/WebCore.gyp/WebCore.gyp"}
   '';
 
   gypFlags = mkGypFlags (gypFlagsUseSystemLibs // {
diff --git a/pkgs/applications/networking/browsers/chromium/sandbox_userns_29.patch b/pkgs/applications/networking/browsers/chromium/sandbox_userns_29.patch
new file mode 100644
index 00000000000..c1987c43e15
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/sandbox_userns_29.patch
@@ -0,0 +1,287 @@
+commit 557daf9cc9c02b8f17e6ee84f9b1ae6e6132d478
+Author: aszlig <aszlig@redmoonstudios.org>
+Date:   Thu May 16 14:17:56 2013 +0200
+
+    zygote: Add support for user namespaces on Linux.
+    
+    The implementation is done by patching the Zygote host to execute the sandbox
+    binary with CLONE_NEWUSER and setting the uid and gid mapping so that the child
+    process is using uid 0 and gid 0 which map to the current user of the parent.
+    Afterwards, the sandbox will continue as if it was called as a setuid binary.
+    
+    In addition, this adds new_user_namespace as an option in process_util in order
+    to set the UID and GID mapping correctly. The reason for this is that just
+    passing CLONE_NEWUSER to clone_flags doesn't help in LaunchProcess(), because
+    without setting the mappings exec*() will clear the process's capability sets.
+    
+    If the kernel doesn't support unprivileged user namespaces and the sandbox
+    binary doesn't have the setuid flag, the Zygote main process will run without a
+    sandbox. This is to mimic the behaviour if no SUID sandbox binary path is set.
+    
+    Signed-off-by: aszlig <aszlig@redmoonstudios.org>
+
+diff --git a/base/process_util.h b/base/process_util.h
+index 0bec8e0..6b6f566 100644
+--- a/base/process_util.h
++++ b/base/process_util.h
+@@ -175,6 +175,7 @@ struct LaunchOptions {
+         new_process_group(false)
+ #if defined(OS_LINUX)
+         , clone_flags(0)
++        , new_user_namespace(false)
+ #endif  // OS_LINUX
+ #if defined(OS_CHROMEOS)
+         , ctrl_terminal_fd(-1)
+@@ -249,6 +250,9 @@ struct LaunchOptions {
+ #if defined(OS_LINUX)
+   // If non-zero, start the process using clone(), using flags as provided.
+   int clone_flags;
++
++  // If true, start the process in a new user namespace.
++  bool new_user_namespace;
+ #endif  // defined(OS_LINUX)
+ 
+ #if defined(OS_CHROMEOS)
+diff --git a/base/process_util_posix.cc b/base/process_util_posix.cc
+index 83afe44..e529b2b 100644
+--- a/base/process_util_posix.cc
++++ b/base/process_util_posix.cc
+@@ -34,6 +34,13 @@
+ #include "base/threading/platform_thread.h"
+ #include "base/threading/thread_restrictions.h"
+ 
++#if defined(OS_LINUX)
++#include <sched.h>
++#if !defined(CLONE_NEWUSER)
++#define CLONE_NEWUSER 0x10000000
++#endif
++#endif
++
+ #if defined(OS_CHROMEOS)
+ #include <sys/ioctl.h>
+ #endif
+@@ -621,8 +628,19 @@ bool LaunchProcess(const std::vector<std::string>& argv,
+ 
+   pid_t pid;
+ #if defined(OS_LINUX)
+-  if (options.clone_flags) {
+-    pid = syscall(__NR_clone, options.clone_flags, 0, 0, 0);
++  int map_pipe_fd[2];
++  int flags = options.clone_flags;
++
++  if (options.new_user_namespace) {
++    flags |= CLONE_NEWUSER;
++    if (pipe(map_pipe_fd) < 0) {
++      DPLOG(ERROR) << "user namespace pipe";
++      return false;
++    }
++  }
++
++  if (options.clone_flags || options.new_user_namespace) {
++    pid = syscall(__NR_clone, flags, 0, 0, 0);
+   } else
+ #endif
+   {
+@@ -635,6 +653,21 @@ bool LaunchProcess(const std::vector<std::string>& argv,
+   } else if (pid == 0) {
+     // Child process
+ 
++#if defined(OS_LINUX)
++    if (options.new_user_namespace) {
++      // Close the write end of the pipe so we get an EOF when the parent closes
++      // the FD. This is to avoid race conditions when the UID/GID mappings are
++      // written _after_ execvp().
++      close(map_pipe_fd[1]);
++
++      char dummy;
++      if (HANDLE_EINTR(read(map_pipe_fd[0], &dummy, 1)) != 0) {
++        RAW_LOG(ERROR, "Unexpected input in uid/gid mapping pipe.");
++        _exit(127);
++      }
++    }
++#endif
++
+     // DANGER: fork() rule: in the child, if you don't end up doing exec*(),
+     // you call _exit() instead of exit(). This is because _exit() does not
+     // call any previously-registered (in the parent) exit handlers, which
+@@ -749,6 +782,40 @@ bool LaunchProcess(const std::vector<std::string>& argv,
+     _exit(127);
+   } else {
+     // Parent process
++#if defined(OS_LINUX)
++    if (options.new_user_namespace) {
++      // We need to write UID/GID mapping here to map the current user outside
++      // the namespace to the root user inside the namespace in order to
++      // correctly "fool" the child process.
++      char buf[256];
++      int map_fd, map_len;
++
++      snprintf(buf, sizeof(buf), "/proc/%d/uid_map", pid);
++      map_fd = open(buf, O_RDWR);
++      DPCHECK(map_fd >= 0);
++      snprintf(buf, sizeof(buf), "0 %d 1", geteuid());
++      map_len = strlen(buf);
++      if (write(map_fd, buf, map_len) != map_len) {
++        RAW_LOG(WARNING, "Can't write to uid_map.");
++      }
++      close(map_fd);
++
++      snprintf(buf, sizeof(buf), "/proc/%d/gid_map", pid);
++      map_fd = open(buf, O_RDWR);
++      DPCHECK(map_fd >= 0);
++      snprintf(buf, sizeof(buf), "0 %d 1", getegid());
++      map_len = strlen(buf);
++      if (write(map_fd, buf, map_len) != map_len) {
++        RAW_LOG(WARNING, "Can't write to gid_map.");
++      }
++      close(map_fd);
++
++      // Close the pipe on the parent, so the child can continue doing the
++      // execvp() call.
++      close(map_pipe_fd[1]);
++    }
++#endif
++
+     if (options.wait) {
+       // While this isn't strictly disk IO, waiting for another process to
+       // finish is the sort of thing ThreadRestrictions is trying to prevent.
+diff --git a/content/browser/zygote_host/zygote_host_impl_linux.cc b/content/browser/zygote_host/zygote_host_impl_linux.cc
+index 130f44a..c1232d4 100644
+--- a/content/browser/zygote_host/zygote_host_impl_linux.cc
++++ b/content/browser/zygote_host/zygote_host_impl_linux.cc
+@@ -118,25 +118,31 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
+ 
+   sandbox_binary_ = sandbox_cmd.c_str();
+ 
+-  // A non empty sandbox_cmd means we want a SUID sandbox.
+-  using_suid_sandbox_ = !sandbox_cmd.empty();
++  bool userns_sandbox = false;
++  const std::vector<std::string> cmd_line_unwrapped(cmd_line.argv());
+ 
+-  if (using_suid_sandbox_) {
++  if (!sandbox_cmd.empty()) {
+     struct stat st;
+     if (stat(sandbox_binary_.c_str(), &st) != 0) {
+       LOG(FATAL) << "The SUID sandbox helper binary is missing: "
+                  << sandbox_binary_ << " Aborting now.";
+     }
+ 
+-    if (access(sandbox_binary_.c_str(), X_OK) == 0 &&
+-        (st.st_uid == 0) &&
+-        (st.st_mode & S_ISUID) &&
+-        (st.st_mode & S_IXOTH)) {
++    if (access(sandbox_binary_.c_str(), X_OK) == 0) {
++      using_suid_sandbox_ = true;
++
+       cmd_line.PrependWrapper(sandbox_binary_);
+ 
+       scoped_ptr<sandbox::SetuidSandboxClient>
+           sandbox_client(sandbox::SetuidSandboxClient::Create());
+       sandbox_client->SetupLaunchEnvironment();
++
++      if (!((st.st_uid == 0) &&
++            (st.st_mode & S_ISUID) &&
++            (st.st_mode & S_IXOTH))) {
++        userns_sandbox = true;
++        sandbox_client->SetNoSuid();
++      }
+     } else {
+       LOG(FATAL) << "The SUID sandbox helper binary was found, but is not "
+                     "configured correctly. Rather than run without sandboxing "
+@@ -160,7 +166,19 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
+   base::ProcessHandle process = -1;
+   base::LaunchOptions options;
+   options.fds_to_remap = &fds_to_map;
++  if (userns_sandbox)
++    options.new_user_namespace = true;
+   base::LaunchProcess(cmd_line.argv(), options, &process);
++
++  if (process == -1 && userns_sandbox) {
++    LOG(ERROR) << "User namespace sandbox failed to start, running without "
++               << "sandbox! You need at least kernel 3.8.0 with CONFIG_USER_NS "
++               << "enabled in order to use the sandbox without setuid bit.";
++    using_suid_sandbox_ = false;
++    options.new_user_namespace = false;
++    base::LaunchProcess(cmd_line_unwrapped, options, &process);
++  }
++
+   CHECK(process != -1) << "Failed to launch zygote process";
+ 
+   if (using_suid_sandbox_) {
+diff --git a/content/zygote/zygote_main_linux.cc b/content/zygote/zygote_main_linux.cc
+index 7d01722..2f445ef 100644
+--- a/content/zygote/zygote_main_linux.cc
++++ b/content/zygote/zygote_main_linux.cc
+@@ -395,6 +395,13 @@ static bool EnterSandbox(sandbox::SetuidSandboxClient* setuid_sandbox,
+       *has_started_new_init = true;
+     }
+ 
++    // Don't set non-dumpable, as it causes trouble when the host tries to find
++    // the zygote process (XXX: Not quite sure why this happens with user
++    // namespaces). Fortunately, we also have the seccomp filter sandbox which
++    // should disallow the use of ptrace.
++    if (setuid_sandbox->IsNoSuid())
++      return true;
++
+ #if !defined(OS_OPENBSD)
+     // Previously, we required that the binary be non-readable. This causes the
+     // kernel to mark the process as non-dumpable at startup. The thinking was
+diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.cc b/sandbox/linux/suid/client/setuid_sandbox_client.cc
+index 34231d4..36e3201 100644
+--- a/sandbox/linux/suid/client/setuid_sandbox_client.cc
++++ b/sandbox/linux/suid/client/setuid_sandbox_client.cc
+@@ -166,6 +166,10 @@ bool SetuidSandboxClient::IsInNewNETNamespace() const {
+   return env_->HasVar(kSandboxNETNSEnvironmentVarName);
+ }
+ 
++bool SetuidSandboxClient::IsNoSuid() const {
++  return env_->HasVar(kSandboxNoSuidVarName);
++}
++
+ bool SetuidSandboxClient::IsSandboxed() const {
+   return sandboxed_;
+ }
+@@ -175,5 +179,9 @@ void SetuidSandboxClient::SetupLaunchEnvironment() {
+   SetSandboxAPIEnvironmentVariable(env_);
+ }
+ 
++void SetuidSandboxClient::SetNoSuid() {
++  env_->SetVar(kSandboxNoSuidVarName, "1");
++}
++
+ }  // namespace sandbox
+ 
+diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.h b/sandbox/linux/suid/client/setuid_sandbox_client.h
+index a9f6536..2e8113a 100644
+--- a/sandbox/linux/suid/client/setuid_sandbox_client.h
++++ b/sandbox/linux/suid/client/setuid_sandbox_client.h
+@@ -39,6 +39,8 @@ class SetuidSandboxClient {
+   bool IsInNewPIDNamespace() const;
+   // Did the setuid helper create a new network namespace ?
+   bool IsInNewNETNamespace() const;
++  // Is sandboxed without SUID binary ?
++  bool IsNoSuid() const;
+   // Are we done and fully sandboxed ?
+   bool IsSandboxed() const;
+ 
+@@ -46,6 +48,8 @@ class SetuidSandboxClient {
+   // helper.
+   void SetupLaunchEnvironment();
+ 
++  void SetNoSuid();
++
+  private:
+   // Holds the environment. Will never be NULL.
+   base::Environment* env_;
+diff --git a/sandbox/linux/suid/common/sandbox.h b/sandbox/linux/suid/common/sandbox.h
+index aad4ff8..bd710d5 100644
+--- a/sandbox/linux/suid/common/sandbox.h
++++ b/sandbox/linux/suid/common/sandbox.h
+@@ -18,6 +18,7 @@ static const char kAdjustLowMemMarginSwitch[] = "--adjust-low-mem";
+ 
+ static const char kSandboxDescriptorEnvironmentVarName[] = "SBX_D";
+ static const char kSandboxHelperPidEnvironmentVarName[] = "SBX_HELPER_PID";
++static const char kSandboxNoSuidVarName[] = "SBX_NO_SUID";
+ 
+ static const long kSUIDSandboxApiNumber = 1;
+ static const char kSandboxEnvironmentApiRequest[] = "SBX_CHROME_API_RQ";
diff --git a/pkgs/applications/networking/browsers/chromium/sources.nix b/pkgs/applications/networking/browsers/chromium/sources.nix
index 54d9f44f7fb..dce02893a56 100644
--- a/pkgs/applications/networking/browsers/chromium/sources.nix
+++ b/pkgs/applications/networking/browsers/chromium/sources.nix
@@ -1,18 +1,18 @@
 # This file is autogenerated from update.sh in the same directory.
 {
   dev = {
-    version = "29.0.1516.3";
-    url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-29.0.1516.3.tar.xz";
-    sha256 = "0pdn9c6v0v55d7g4amivxrv132bpj9sfqywk5b8l6kqfjq28mw5k";
+    version = "29.0.1541.2";
+    url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-29.0.1541.2.tar.xz";
+    sha256 = "0i3vp2zrk1sjdhkwdhig08jh0qmzahn96pm0i22r63cp8i9vny1p";
   };
   beta = {
-    version = "28.0.1500.36";
-    url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.36.tar.xz";
-    sha256 = "1bz9w46ps8gj056hfwbcj4myyxyr7y759nagz9idraia8116m3pp";
+    version = "28.0.1500.52";
+    url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.52.tar.xz";
+    sha256 = "1d0q8lsvwqkaninmnyc8jjj0pnqxc5rr3lr3mgzj37avksxvyg3v";
   };
   stable = {
-    version = "27.0.1453.110";
-    url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-27.0.1453.110.tar.xz";
-    sha256 = "1y61shbzrkcv70x9zyj559g2yyp40hi9y59f7wwx5g076lsaxsw5";
+    version = "28.0.1500.52";
+    url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-28.0.1500.52.tar.xz";
+    sha256 = "1d0q8lsvwqkaninmnyc8jjj0pnqxc5rr3lr3mgzj37avksxvyg3v";
   };
 }
diff --git a/pkgs/applications/networking/browsers/chromium/update.sh b/pkgs/applications/networking/browsers/chromium/update.sh
index 0c21213a751..0c4881bb396 100755
--- a/pkgs/applications/networking/browsers/chromium/update.sh
+++ b/pkgs/applications/networking/browsers/chromium/update.sh
@@ -1,6 +1,7 @@
 #!/bin/sh
 
 channels_url="http://omahaproxy.appspot.com/all?csv=1";
+history_url="http://omahaproxy.appspot.com/history";
 bucket_url="http://commondatastorage.googleapis.com/chromium-browser-official/";
 output_file="$(cd "$(dirname "$0")" && pwd)/sources.nix";
 
@@ -41,6 +42,17 @@ sha_insert()
     ver_sha_table="$ver_sha_table $version:$sha256";
 }
 
+get_newest_ver()
+{
+    versions="$(for v in $@; do echo "$v"; done)";
+    if oldest="$(echo "$versions" | sort -V 2> /dev/null | tail -n1)";
+    then
+        echo "$oldest";
+    else
+        echo "$versions" | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tail -n1;
+    fi;
+}
+
 if [ -e "$output_file" ];
 then
     get_sha256()
@@ -53,38 +65,55 @@ then
 
         echo -n "Checking if $oldver ($channel) is up to date..." >&2;
 
-        if [ "x$version" != "x$oldver" ];
+        if [ "x$(get_newest_ver "$version" "$oldver")" != "x$oldver" ];
         then
             echo " no, getting sha256 for new version $version:" >&2;
-            sha256="$(nix-prefetch-url "$url")";
+            sha256="$(nix-prefetch-url "$url")" || return 1;
         else
             echo " yes, keeping old sha256." >&2;
-            sha256="$(nix_getattr "$output_file" "$channel.sha256")";
+            sha256="$(nix_getattr "$output_file" "$channel.sha256")" \
+                || return 1;
         fi;
 
         sha_insert "$version" "$sha256";
         echo "$sha256";
+        return 0;
     }
 else
     get_sha256()
     {
-        nix-prefetch-url "$url";
+        nix-prefetch-url "$3";
     }
 fi;
 
+fetch_filtered_history()
+{
+    curl -s "$history_url" | sed -nr 's/^'"linux,$1"',([^,]+).*$/\1/p';
+}
+
+get_prev_sha256()
+{
+    channel="$1";
+    current_version="$2";
+
+    for version in $(fetch_filtered_history "$channel");
+    do
+        [ "x$version" = "x$current_version" ] && continue;
+        url="${bucket_url%/}/chromium-$version.tar.xz";
+        sha256="$(get_sha256 "$channel" "$version" "$url")" || continue;
+        echo "$sha256:$version:$url";
+        return 0;
+    done;
+}
+
 get_channel_exprs()
 {
-    for chline in $(echo "$1" | cut -d, -f-2);
+    for chline in $1;
     do
         channel="${chline%%,*}";
         version="${chline##*,}";
 
-        # XXX: Remove case after version 26 is stable:
-        if [ "${version%%.*}" -ge 26 ]; then
-            url="${bucket_url%/}/chromium-$version.tar.xz";
-        else
-            url="${bucket_url%/}/chromium-$version.tar.bz2";
-        fi;
+        url="${bucket_url%/}/chromium-$version.tar.xz";
 
         echo -n "Checking if sha256 of version $version is cached..." >&2;
         if sha256="$(sha_lookup "$version")";
@@ -93,6 +122,17 @@ get_channel_exprs()
         else
             echo " no." >&2;
             sha256="$(get_sha256 "$channel" "$version" "$url")";
+            if [ $? -ne 0 ];
+            then
+                echo "Whoops, failed to fetch $version, trying previous" \
+                     "versions:" >&2;
+
+                sha_ver_url="$(get_prev_sha256 "$channel" "$version")";
+                sha256="${sha_ver_url%%:*}";
+                ver_url="${sha_ver_url#*:}";
+                version="${ver_url%%:*}";
+                url="${ver_url#*:}";
+            fi;
         fi;
 
         sha_insert "$version" "$sha256";
@@ -108,7 +148,7 @@ get_channel_exprs()
 cd "$(dirname "$0")";
 
 omaha="$(curl -s "$channels_url")";
-versions="$(echo "$omaha" | sed -n -e 's/^linux,\(\([^,]\+,\)\{2\}\).*$/\1/p')";
+versions="$(echo "$omaha" | sed -nr -e 's/^linux,([^,]+,[^,]+).*$/\1/p')";
 channel_exprs="$(get_channel_exprs "$versions")";
 
 cat > "$output_file" <<-EOF
diff --git a/pkgs/applications/networking/browsers/firefox/20.0.nix b/pkgs/applications/networking/browsers/firefox/20.0.nix
index 1480a300820..39cf69dcfb0 100644
--- a/pkgs/applications/networking/browsers/firefox/20.0.nix
+++ b/pkgs/applications/networking/browsers/firefox/20.0.nix
@@ -35,7 +35,7 @@ rec {
       #"--enable-profiling"
       "--disable-debug"
       "--enable-strip"
-      # "--with-system-jpeg" # Too old in nixpkgs
+      "--with-system-jpeg" # now we use recent libjpeg-turbo
       "--with-system-zlib"
       "--with-system-bz2"
       "--with-system-nspr"
@@ -135,7 +135,6 @@ rec {
       [ "--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";
diff --git a/pkgs/applications/networking/browsers/firefox/21.0.nix b/pkgs/applications/networking/browsers/firefox/21.0.nix
index 02766a9ccff..35ba2cad124 100644
--- a/pkgs/applications/networking/browsers/firefox/21.0.nix
+++ b/pkgs/applications/networking/browsers/firefox/21.0.nix
@@ -1,8 +1,10 @@
 { stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
-, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
+, libjpeg, libpng, zlib, dbus, dbus_glib, bzip2, xlibs
 , freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
 , yasm, mesa, sqlite, unzip, makeWrapper, pysqlite
-
+, hunspell, libevent, libstartup_notification, libvpx
+, cairo ? null
+, useSystemCairo ? false
 , # If you want the resulting program to call itself "Firefox" instead
   # of "Shiretoko" or whatever, enable this option.  However, those
   # binaries may not be distributed without permission from the
@@ -12,8 +14,10 @@
 }:
 
 assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
+assert useSystemCairo -> cairo != null;
 
-rec {
+let optional = stdenv.lib.optional;
+in rec {
 
   firefoxVersion = "21.0";
 
@@ -35,20 +39,25 @@ rec {
       #"--enable-profiling"
       "--disable-debug"
       "--enable-strip"
-      # "--with-system-jpeg" # Too old in nixpkgs
+      "--with-system-jpeg"
       "--with-system-zlib"
       "--with-system-bz2"
       "--with-system-nspr"
       "--with-system-nss"
+      "--with-system-libevent"
+      "--with-system-libvpx"
       # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
-      # "--enable-system-cairo" # <-- doesn't build
+      "--enable-startup-notification"
+      "--enable-system-ffi"
+      "--enable-system-hunspell"
+      "--enable-system-pixman"
       "--enable-system-sqlite"
       "--disable-crashreporter"
       "--disable-tests"
       "--disable-necko-wifi" # maybe we want to enable this at some point
       "--disable-installer"
       "--disable-updater"
-    ];
+    ] ++ optional useSystemCairo "--enable-system-cairo";
 
 
   xulrunner = stdenv.mkDerivation rec {
@@ -57,13 +66,14 @@ rec {
     inherit src;
 
     buildInputs =
-      [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
+      [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib bzip2
         python dbus dbus_glib pango freetype fontconfig xlibs.libXi
         xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
         alsaLib nspr nss libnotify xlibs.pixman yasm mesa
         xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite
         xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper
-      ];
+        hunspell libevent libstartup_notification libvpx
+      ] ++ optional useSystemCairo cairo;
 
     configureFlags =
       [ "--enable-application=xulrunner"
@@ -72,6 +82,8 @@ rec {
 
     enableParallelBuilding = true;
 
+    patches = optional useSystemCairo ./system-cairo.patch; # probably in 22
+
     preConfigure =
       ''
         export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}"
@@ -124,10 +136,15 @@ rec {
     enableParallelBuilding = true;
 
     buildInputs =
-      [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
+      [ pkgconfig gtk perl zip libIDL libjpeg zlib bzip2 python
         dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
         xlibs.pixman yasm mesa sqlite file unzip pysqlite
-      ];
+        hunspell libevent libstartup_notification libvpx
+      ] ++ optional useSystemCairo cairo;
+
+    patches = [
+      ./disable-reporter.patch # fixes "search box not working when built on xulrunner"
+    ];
 
     propagatedBuildInputs = [xulrunner];
 
@@ -135,7 +152,6 @@ rec {
       [ "--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";
diff --git a/pkgs/applications/networking/browsers/firefox/disable-reporter.patch b/pkgs/applications/networking/browsers/firefox/disable-reporter.patch
new file mode 100644
index 00000000000..0a71a7210f2
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/disable-reporter.patch
@@ -0,0 +1,20 @@
+# from:
+# - https://www.linuxquestions.org/questions/linux-from-scratch-13/blfs-xulrunner-firefox-21-0-and-search-4175462532/
+# - http://www.mail-archive.com/blfs-support@linuxfromscratch.org/msg17359.html
+
+--- mozilla-release/browser/base/content/browser.js.orig	2013-05-11 16:19:21.000000000 -0300
++++ mozilla-release/browser/base/content/browser.js	2013-06-07 00:39:16.114862388 -0300
+@@ -3559,10 +3559,12 @@
+    */
+   recordSearchInHealthReport: function (engine, source) {
+ #ifdef MOZ_SERVICES_HEALTHREPORT
+-    let reporter = Cc["@mozilla.org/datareporting/service;1"]
++    /*let reporter = Cc["@mozilla.org/datareporting/service;1"]
+                      .getService()
+                      .wrappedJSObject
+                      .healthReporter;
++    */
++       return;
+ 
+     // This can happen if the FHR component of the data reporting service is
+     // disabled. This is controlled by a pref that most will never use.
diff --git a/pkgs/applications/networking/browsers/firefox/system-cairo.patch b/pkgs/applications/networking/browsers/firefox/system-cairo.patch
new file mode 100644
index 00000000000..76cf4d51c9c
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/system-cairo.patch
@@ -0,0 +1,73 @@
+# HG changeset patch
+# From: https://hg.mozilla.org/mozilla-central/rev/52b02042b27f
+# User Connor Behan <connor.behan@gmail.com>
+# Date 1370038985 -7200
+# Node ID 52b02042b27f75acbcb2bd4822bedb00ab680e67
+# Parent  08ed531fed70978385cf9253bbc8389b0abe76ca
+Bug 722975: Unbreak builds using --with-system-cairo. r=bas
+
+diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp
+--- a/gfx/thebes/gfxPlatform.cpp
++++ b/gfx/thebes/gfxPlatform.cpp
+@@ -548,23 +548,31 @@ struct SourceSurfaceUserData
+   BackendType mBackendType;
+ };
+ 
+ void SourceBufferDestroy(void *srcSurfUD)
+ {
+   delete static_cast<SourceSurfaceUserData*>(srcSurfUD);
+ }
+ 
++#if MOZ_TREE_CAIRO
+ void SourceSnapshotDetached(cairo_surface_t *nullSurf)
+ {
+   gfxImageSurface* origSurf =
+     static_cast<gfxImageSurface*>(cairo_surface_get_user_data(nullSurf, &kSourceSurface));
+ 
+   origSurf->SetData(&kSourceSurface, NULL, NULL);
+ }
++#else
++void SourceSnapshotDetached(void *nullSurf)
++{
++  gfxImageSurface* origSurf = static_cast<gfxImageSurface*>(nullSurf);
++  origSurf->SetData(&kSourceSurface, NULL, NULL);
++}
++#endif
+ 
+ RefPtr<SourceSurface>
+ gfxPlatform::GetSourceSurfaceForSurface(DrawTarget *aTarget, gfxASurface *aSurface)
+ {
+   void *userData = aSurface->GetData(&kSourceSurface);
+ 
+   if (userData) {
+     SourceSurfaceUserData *surf = static_cast<SourceSurfaceUserData*>(userData);
+@@ -667,24 +675,28 @@ gfxPlatform::GetSourceSurfaceForSurface(
+       }
+ 
+       srcBuffer = Factory::CreateWrappingDataSourceSurface(imgSurface->Data(),
+                                                            imgSurface->Stride(),
+                                                            size, format);
+ 
+     }
+ 
++#if MOZ_TREE_CAIRO
+     cairo_surface_t *nullSurf =
+ 	cairo_null_surface_create(CAIRO_CONTENT_COLOR_ALPHA);
+     cairo_surface_set_user_data(nullSurf,
+                                 &kSourceSurface,
+                                 imgSurface,
+                                 NULL);
+     cairo_surface_attach_snapshot(imgSurface->CairoSurface(), nullSurf, SourceSnapshotDetached);
+     cairo_surface_destroy(nullSurf);
++#else
++    cairo_surface_set_mime_data(imgSurface->CairoSurface(), "mozilla/magic", (const unsigned char*) "data", 4, SourceSnapshotDetached, imgSurface.get());
++#endif
+   }
+ 
+   SourceSurfaceUserData *srcSurfUD = new SourceSurfaceUserData;
+   srcSurfUD->mBackendType = aTarget->GetType();
+   srcSurfUD->mSrcSurface = srcBuffer;
+   aSurface->SetData(&kSourceSurface, srcSurfUD, SourceBufferDestroy);
+ 
+   return srcBuffer;
+
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix
index 5587f3b732c..7cb1abf3153 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/nspluginwrapper/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     sed -e 's@/usr/bin/@@g' -i configure
     sed -e '/gthread[.]h/d' -i src/npw-player.c
+    export NIX_LDFLAGS="$NIX_LDFLAGS -lgthread-2.0"
     export configureFlags="$configureFlags --target-cpu=$(uname -m)"
   '';
 
diff --git a/pkgs/applications/networking/dropbox-cli/default.nix b/pkgs/applications/networking/dropbox-cli/default.nix
index b298b3c9df9..34fe6db8932 100644
--- a/pkgs/applications/networking/dropbox-cli/default.nix
+++ b/pkgs/applications/networking/dropbox-cli/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, coreutils, fetchurl, python }:
+{ stdenv, coreutils, fetchurl, python, dropbox }:
 
 stdenv.mkDerivation {
   name = "dropbox-cli";
 
   src = fetchurl {
+    # Note: dropbox doesn't version this file. Annoying.
     url = "https://linux.dropbox.com/packages/dropbox.py";
-    sha256 = "1x46i0aplah4a2nqglb8byl3c60w7h1cjja62myxj2dpxyv7fydy";
+    sha256 = "0p1pg8bw6mlhqi5k8y3pgs7byg0kfvq57s53sh188lb5sxvlg7yz";
   };
 
   buildInputs = [ coreutils python ];
 
   phases = "installPhase fixupPhase";
-  
+
   installPhase = ''
     mkdir -pv $out/bin/
     cp $src $out/bin/dropbox-cli
@@ -20,17 +21,18 @@ stdenv.mkDerivation {
   fixupPhase = ''
     substituteInPlace $out/bin/dropbox-cli \
       --replace "/usr/bin/python" ${python}/bin/python \
-      --replace "use dropbox help" "use dropbox-cli help"
-    
+      --replace "use dropbox help" "use dropbox-cli help" \
+      --replace "~/.dropbox-dist/dropboxd" ${dropbox}/bin/dropbox
+
     chmod +x $out/bin/dropbox-cli
   '';
-  
+
   meta = {
     homepage = http://dropbox.com;
     description = "Command line client for the dropbox daemon.";
     license = stdenv.lib.licenses.gpl3;
+    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
     # NOTE: Dropbox itself only works on linux, so this is ok.
     platforms = stdenv.lib.platforms.linux;
   };
 }
-
diff --git a/pkgs/applications/networking/instant-messengers/linphone/default.nix b/pkgs/applications/networking/instant-messengers/linphone/default.nix
index 7bdb6cc1452..a4a32327d0c 100644
--- a/pkgs/applications/networking/instant-messengers/linphone/default.nix
+++ b/pkgs/applications/networking/instant-messengers/linphone/default.nix
@@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
 
   configureFlags = "--enable-external-ortp --enable-external-mediastreamer";
 
+  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations"; # I'm lazy to fix these for them
+
   meta = {
     homepage = http://www.linphone.org/;
     description = "Open Source video SIP softphone";
diff --git a/pkgs/applications/networking/instant-messengers/skype/default.nix b/pkgs/applications/networking/instant-messengers/skype/default.nix
index 715f0e5c2de..aa90c8e7026 100644
--- a/pkgs/applications/networking/instant-messengers/skype/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skype/default.nix
@@ -5,11 +5,11 @@
 assert stdenv.system == "i686-linux";
 
 stdenv.mkDerivation rec {
-  name = "skype-4.1.0.20";
+  name = "skype-4.2.0.11";
 
   src = fetchurl {
     url = "http://download.skype.com/linux/${name}.tar.bz2";
-    sha256 = "1qhcxkfmlpblpy9rqimzdl79rm781swbldkzi6nyw56bbp6lf7n3";
+    sha256 = "0kh66p50m3x4ql6j8ciz73c30npcizd00ya9qrhid711rar0mlw7";
   };
 
   buildInputs =
diff --git a/pkgs/applications/networking/irc/irssi/default.nix b/pkgs/applications/networking/irc/irssi/default.nix
index 86d800e0cfe..67e06be0883 100644
--- a/pkgs/applications/networking/irc/irssi/default.nix
+++ b/pkgs/applications/networking/irc/irssi/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, pkgconfig, ncurses, glib, openssl, perl}:
+{ stdenv, fetchurl, pkgconfig, ncurses, glib, openssl, perl, libintlOrEmpty }:
 
 stdenv.mkDerivation rec {
   name = "irssi-0.8.15";
@@ -8,13 +8,15 @@ stdenv.mkDerivation rec {
     sha256 = "19m0aah9bhc70dnhh7kpydbsz5n35l0l9knxav1df0sic3xicbf1";
   };
   
-  buildInputs = [pkgconfig ncurses glib openssl perl];
+  buildInputs = [ pkgconfig ncurses glib openssl perl libintlOrEmpty ];
   
   NIX_LDFLAGS = "-lncurses";
   
   configureFlags = "--with-proxy --with-ncurses --enable-ssl --with-perl=yes";
 
   meta = {
-    homepage = http://irssi.org;
+    homepage    = http://irssi.org;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ lovek323 ];
   };
 }
diff --git a/pkgs/applications/networking/irc/irssi/otr/default.nix b/pkgs/applications/networking/irc/irssi/otr/default.nix
index ba3a56e642e..00a9aa1fc68 100644
--- a/pkgs/applications/networking/irc/irssi/otr/default.nix
+++ b/pkgs/applications/networking/irc/irssi/otr/default.nix
@@ -1,16 +1,16 @@
 { stdenv, fetchurl, libotr, automake, autoconf, libtool, glib, pkgconfig, irssi }:
 
 let
-  rev = "59ddcbe66a";
+  rev = "cab3fc915c";
 in
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  name = "irssi-otr-20130315-${rev}";
+  name = "irssi-otr-20130601-${rev}";
   
   src = fetchurl {
     url = "https://github.com/cryptodotis/irssi-otr/tarball/${rev}";
     name = "${name}.tar.gz";
-    sha256 = "095dak0d10j6cpkwlqmk967p1wypwzvqr4wdqvb30w14dbn8dy0d";
+    sha256 = "0kn9c562zfh36gpcrbpslwjjr78baagdwphczz2d608ndczm1vrk";
   };
 
   patchPhase = ''
diff --git a/pkgs/applications/networking/irc/weechat/default.nix b/pkgs/applications/networking/irc/weechat/default.nix
index e583551bcf1..a523089e0ed 100644
--- a/pkgs/applications/networking/irc/weechat/default.nix
+++ b/pkgs/applications/networking/irc/weechat/default.nix
@@ -3,12 +3,12 @@
 , pythonPackages, cacert, cmake, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.0";
+  version = "0.4.1";
   name = "weechat-${version}";
 
   src = fetchurl {
     url = "http://weechat.org/files/src/${name}.tar.gz";
-    sha256 = "17jxknam1bbakmdfqy1b2cfc8l9ag90l3z1gcxdvwg358wasv9dc";
+    sha256 = "0gsn0mp921j7jpvrxc74h0gs0bn0w808j2zqghm1w7xbjw9hl49w";
   };
 
   buildInputs = 
diff --git a/pkgs/applications/networking/mailreaders/sup/default.nix b/pkgs/applications/networking/mailreaders/sup/default.nix
new file mode 100644
index 00000000000..05833537026
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/sup/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchurl, ruby, rake, rubygems, makeWrapper, ncursesw_sup
+, xapian_ruby, gpgme, libiconvOrEmpty, rmail, mime_types, chronic, trollop
+, lockfile, gettext, iconv, locale, text, highline }:
+
+stdenv.mkDerivation {
+  name = "sup-896ab66c0263e5ce0fa45857fb08e0fb78fcb6bd";
+  
+  meta = {
+    homepage = http://supmua.org;
+    description = "A curses threads-with-tags style email client";
+    maintainers = with stdenv.lib.maintainers; [ lovek323 ];
+    license = stdenv.lib.licenses.gpl2;
+    platforms = stdenv.lib.platforms.unix;
+  };
+
+  dontStrip = true;
+
+  src = fetchurl {
+    url = "https://github.com/sup-heliotrope/sup/archive/896ab66c0263e5ce0fa45857fb08e0fb78fcb6bd.tar.gz";
+    sha256 = "0sknf4ha13m2478fa27qnm43bcn59g6qbd8f2nmv64k2zs7xnwmk";
+  };
+
+  buildInputs =
+    [ ruby rake rubygems makeWrapper gpgme ncursesw_sup xapian_ruby
+      libiconvOrEmpty ];
+
+  buildPhase = "rake gem";
+
+  # TODO: Move gem dependencies out
+
+  installPhase = ''
+    export HOME=$TMP/home; mkdir -pv "$HOME"
+
+    GEM_PATH="$GEM_PATH:$out/${ruby.gemPath}"
+    GEM_PATH="$GEM_PATH:${chronic}/${ruby.gemPath}"
+    GEM_PATH="$GEM_PATH:${gettext}/${ruby.gemPath}"
+    GEM_PATH="$GEM_PATH:${gpgme}/${ruby.gemPath}"
+    GEM_PATH="$GEM_PATH:${iconv}/${ruby.gemPath}"
+    GEM_PATH="$GEM_PATH:${locale}/${ruby.gemPath}"
+    GEM_PATH="$GEM_PATH:${lockfile}/${ruby.gemPath}"
+    GEM_PATH="$GEM_PATH:${mime_types}/${ruby.gemPath}"
+    GEM_PATH="$GEM_PATH:${ncursesw_sup}/${ruby.gemPath}"
+    GEM_PATH="$GEM_PATH:${rmail}/${ruby.gemPath}"
+    GEM_PATH="$GEM_PATH:${text}/${ruby.gemPath}"
+    GEM_PATH="$GEM_PATH:${trollop}/${ruby.gemPath}"
+    GEM_PATH="$GEM_PATH:${xapian_ruby}/${ruby.gemPath}"
+    GEM_PATH="$GEM_PATH:${highline}/${ruby.gemPath}"
+
+    # Don't install some dependencies -- we have already installed
+    # the dependencies but gem doesn't acknowledge this
+    gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \
+        --bindir "$out/bin" --no-rdoc --no-ri pkg/sup-999.gem \
+        --ignore-dependencies
+
+    for prog in $out/bin/*; do
+      wrapProgram "$prog" --prefix GEM_PATH : "$GEM_PATH"
+    done
+
+    for prog in $out/gems/*/bin/*; do
+      [[ -e "$out/bin/$(basename $prog)" ]]
+    done
+  '';
+}
+
diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix
index 9befe98399d..0981ab39449 100644
--- a/pkgs/applications/networking/mumble/default.nix
+++ b/pkgs/applications/networking/mumble/default.nix
@@ -6,16 +6,14 @@ jackaudio ? null }:
 
 stdenv.mkDerivation rec {
   name = "mumble-" + version;
-  version = "1.2.3";
+  version = "1.2.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/mumble/${name}.tar.gz";
-    sha256 = "0p4as6bcmbzkiff1gvc0f277dzbz2sfys97gcbxw7gjamqi53285";
+    sha256 = "16wwj6gwcnyjlnzh7wk0l255ldxmbwx0wi652sdp20lsv61q7kx1";
   };
 
   patchPhase = ''
-    sed -e s/qt_ja_JP.qm// -i src/mumble/mumble.pro src/mumble11x/mumble11x.pro
-    sed -e /qt_ja_JP.qm/d -i src/mumble/mumble_qt.qrc src/mumble11x/mumble_qt.qrc
     patch -p1 < ${ ./mumble-jack-support.patch }
   '';
 
diff --git a/pkgs/applications/networking/p2p/gnunet/svn.nix b/pkgs/applications/networking/p2p/gnunet/svn.nix
index 4bff8239adf..eb05461ec85 100644
--- a/pkgs/applications/networking/p2p/gnunet/svn.nix
+++ b/pkgs/applications/networking/p2p/gnunet/svn.nix
@@ -4,15 +4,15 @@
 , makeWrapper, autoconf, automake }:
 
 let
-  rev = "27317";
+  rev = "27399";
 in
 stdenv.mkDerivation rec {
   name = "gnunet-svn-${rev}";
 
   src = fetchsvn {
     url =  https://gnunet.org/svn/gnunet;
-    rev = "27317";
-    sha256 = "1l7jypm57wjhzlwdj8xzhfppjdpy6wbph4nqgwxxb9q056wwf9zy";
+    inherit rev;
+    sha256 = "0fn7ppfnc4v6lkxwww11s0h8mdvwyv7f40f6wrbfilqpn2ncrf8c";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/networking/umurmur/default.nix b/pkgs/applications/networking/umurmur/default.nix
index 715e7fa6998..1f08b9873d4 100644
--- a/pkgs/applications/networking/umurmur/default.nix
+++ b/pkgs/applications/networking/umurmur/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl, protobufc, libconfig }:
 
 stdenv.mkDerivation rec {
-  name = "umurmur-0.2.12";
+  name = "umurmur-0.2.13";
   
   src = fetchurl {
     url = "http://umurmur.googlecode.com/files/${name}.tar.gz";
-    sha1 = "5be3c765af3c5f518d1e1bbd828b3582ad4097cd";
+    sha1 = "c9345b67213f52688fef2113132c62d2edbf4bea";
   };
   
   buildInputs = [ openssl protobufc libconfig ];
diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix
index 26879a6f660..0865b12e972 100644
--- a/pkgs/applications/office/gnucash/default.nix
+++ b/pkgs/applications/office/gnucash/default.nix
@@ -1,6 +1,7 @@
 { fetchurl, stdenv, pkgconfig, libxml2, gconf, glib, gtk, libgnomeui, libofx
 , libgtkhtml, gtkhtml, libgnomeprint, goffice, enchant, gettext, libbonoboui
-, intltool, perl, guile, slibGuile, swig, isocodes, bzip2, makeWrapper
+, intltool, perl, guile, slibGuile, swig, isocodes, bzip2, makeWrapper, libglade
+, libgsf, libart_lgpl
 }:
 
 /* If you experience GConf errors when running GnuCash on NixOS, see
@@ -9,17 +10,17 @@
  */
 
 stdenv.mkDerivation rec {
-  name = "gnucash-2.4.11";
+  name = "gnucash-2.4.13";
 
   src = fetchurl {
     url = "mirror://sourceforge/gnucash/${name}.tar.bz2";
-    sha256 = "0qbpgd6spclkmwryi66cih0igi5a6pmsnk41mmnscpfpz1mddhwk";
+    sha256 = "0j4m00a3r1hcrhkfjkx3sgi2r4id4wrc639i4s00j35rx80540pn";
   };
 
   buildInputs = [
     pkgconfig libxml2 gconf glib gtk libgnomeui libgtkhtml gtkhtml
     libgnomeprint goffice enchant gettext intltool perl guile slibGuile
-    swig isocodes bzip2 makeWrapper libofx
+    swig isocodes bzip2 makeWrapper libofx libglade libgsf libart_lgpl
   ];
 
   configureFlags = "CFLAGS=-O3 CXXFLAGS=-O3 --disable-dbi --enable-ofx";
@@ -65,7 +66,7 @@ stdenv.mkDerivation rec {
 
     homepage = http://www.gnucash.org/;
 
-    maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.simons ];
+    maintainers = [ stdenv.lib.maintainers.ludo stdenv.lib.maintainers.simons stdenv.lib.maintainers.iElectric ];
     platforms = stdenv.lib.platforms.gnu;
   };
 }
diff --git a/pkgs/applications/office/hledger-irr/default.nix b/pkgs/applications/office/hledger-irr/default.nix
new file mode 100644
index 00000000000..1f4dd165c50
--- /dev/null
+++ b/pkgs/applications/office/hledger-irr/default.nix
@@ -0,0 +1,16 @@
+{ cabal, Cabal, hledgerLib, statistics, time }:
+
+cabal.mkDerivation (self: {
+  pname = "hledger-irr";
+  version = "0.1.1.2";
+  sha256 = "1mh1lzhnxc8ps8n5j37wrmbqafwdyap60j8rqr6xdfa2syfyq8i2";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ Cabal hledgerLib statistics time ];
+  meta = {
+    description = "computes the internal rate of return of an investment";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.simons ];
+  };
+})
diff --git a/pkgs/applications/science/astronomy/celestia/default.nix b/pkgs/applications/science/astronomy/celestia/default.nix
index 22180e9a3f7..d7814aa5b78 100644
--- a/pkgs/applications/science/astronomy/celestia/default.nix
+++ b/pkgs/applications/science/astronomy/celestia/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, freeglut, gtk2, gtkglext, libjpeg_turbo, libtheora, libXmu
-, lua, mesa, pkgconfig, perl, automake, autoconf, libtool, gettext
+, lua, mesa, pkgconfig, perl, automake, autoconf, libtool, gettext, glib, cairo
+, pango, gdk_pixbuf, atk
 }:
 
 let
@@ -7,25 +8,31 @@ let
 
   gcc46Patch = fetchurl {
     url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/celestia-1.6.1-gcc46.patch?h=packages/celestia";
-    sha256 = "1q840ip5h2q93r0d68jwrvf40ns5qzqss9vzd6xnwvs3wa77m5wp";
+    sha256 = "0my7dpyh5wpz5df7bjhwb4db3ci2rn8ib1nkjv15fbp1g76bxfaz";
     name = "celestia-1.6.1-gcc46.patch";
   };
 
   libpng15Patch = fetchurl {
     url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/celestia-1.6.1-libpng15.patch?h=packages/celestia";
-    sha256 = "19yqbi5k944d3jm0q2mvcfg52kicy4j347gj62dyaijzj505x4pm";
+    sha256 = "1jrmbwmvs9b6k2b2g4104q22v4vqi0wfpz6hmfhniaq34626jcms";
     name = "celestia-1.6.1-libpng15.patch";
   };
 
+  libpng16Patch = fetchurl {
+    url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/celestia-1.6.1-libpng16.patch?h=packages/celestia";
+    sha256 = "1q85prw4ci6d50lri8w1jm19pghxw96qizf5dl4g0j86rlhlkc8f";
+    name = "celestia-1.6.1-libpng16.patch";
+  };
+
   linkingPatch = fetchurl {
     url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/celestia-1.6.1-linking.patch?h=packages/celestia";
-    sha256 = "1qzv18b2prqbhy21js5bnf7vwkmrq1dmrq8r0wab7v10axjqdv35";
+    sha256 = "1m8xyq26nm352828bp12c3b8f6m9bys9fwfxbfzqppllk7il2f24";
     name = "celestia-1.6.1-linking.patch";
   };
 
   gcc47Patch = fetchurl {
     url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/gcc-4.7-fixes.diff?h=packages/celestia";
-    sha256 = "1jqkafwrg1829cwqvlxxkqbf42zqfsgpqd8a5b2qlzma5napdmg5";
+    sha256 = "1na26c7pv9qfv8a981m1zvglhv05r3h8513xqjra91qhhzx8wr8n";
     name = "gcc-4.7-fixes.diff";
   };
 in
@@ -38,15 +45,24 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ freeglut gtk2 gtkglext libjpeg_turbo libtheora libXmu mesa pkgconfig lua
-    perl automake autoconf libtool gettext  ];
+    perl automake autoconf libtool gettext ];
 
   patchPhase = ''
     patch -Np0 -i "${gcc46Patch}"
     patch -Np0 -i "${libpng15Patch}"
+    patch -Np2 -i "${libpng16Patch}"
     patch -Np1 -i "${linkingPatch}"
     patch -Np1 -i "${gcc47Patch}"
     autoreconf
-    configureFlagsArray=( --with-gtk --with-lua=${lua} CFLAGS="-O2 -fsigned-char" CXXFLAGS="-O2 -fsigned-char" )
+    configureFlagsArray=(
+      --with-gtk
+      --with-lua=${lua}
+      CPPFLAGS="-DNDEBUG"
+      CFLAGS="-O2 -fsigned-char"
+      CXXFLAGS="-O2 -fsigned-char"
+      GTK_CFLAGS="-I${gtk2}/include/gtk-2.0 -I${gtk2}/lib/gtk-2.0/include -I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include -I${cairo}/include/cairo -I${pango}/include/pango-1.0 -I${gdk_pixbuf}/include/gdk-pixbuf-2.0 -I${atk}/include/atk-1.0 -I${gtkglext}/include/gtkglext-1.0 -I${gtkglext}/lib/gtkglext-1.0/include"
+      GTK_LIBS="-lgtk-x11-2.0 -lgtkglext-x11-1.0 -lcairo -lgdk_pixbuf-2.0 -lpango-1.0 -lgobject-2.0"
+    )
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index 9596c30ee6a..85c69413bfb 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -3,7 +3,7 @@
 {stdenv, fetchurl, pkgconfig, ocaml, findlib, camlp5, ncurses, lablgtk ? null}:
 
 let 
-  version = "8.4";
+  version = "8.4pl2";
   buildIde = lablgtk != null;
   ideFlags = if buildIde then "-lablgtkdir ${lablgtk}/lib/ocaml/*/site-lib/lablgtk2 -coqide opt" else "";
   idePath = if buildIde then ''
@@ -15,8 +15,8 @@ stdenv.mkDerivation {
   name = "coq-${version}";
 
   src = fetchurl {
-    url = "http://pauillac.inria.fr/~herbelin/coq/distrib/V${version}/files/coq-${version}.tar.gz";
-    sha256 = "0ka2lak9il4hlblk461awf0hbi3mxqhc1wz6kllxradyy2vfaspl";
+    url = "http://coq.inria.fr/distrib/V${version}/files/coq-${version}.tar.gz";
+    sha256 = "1n52pky7bb45irk2jw6f4rd3kvy8lm2yfldjwdhiic0kyqw9lwgv";
   };
 
   buildInputs = [ pkgconfig ocaml findlib camlp5 ncurses lablgtk ];
diff --git a/pkgs/applications/science/math/glsurf/default.nix b/pkgs/applications/science/math/glsurf/default.nix
new file mode 100644
index 00000000000..51b2850347b
--- /dev/null
+++ b/pkgs/applications/science/math/glsurf/default.nix
@@ -0,0 +1,32 @@
+
+{ stdenv, fetchdarcs, ocaml, findlib,  lablgl, camlimages, mesa, freeglut, ocaml_mysql, mlgmp, mpfr, gmp, libtiff, libjpeg, libpng12, giflib }:
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+in
+
+stdenv.mkDerivation {
+  name = "glsurf-3.3";
+
+  src = fetchdarcs {
+    url = "http://lama.univ-savoie.fr/~raffalli/GlSurf";
+    tag = "3.3";
+    sha256 = ""; md5="";
+  };
+
+  buildInputs = [ ocaml findlib freeglut mesa
+  	          lablgl camlimages ocaml_mysql mlgmp mpfr gmp
+		  libtiff libjpeg libpng12 giflib ];
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/doc/glsurf
+    cp ./src/glsurf.opt $out/bin/glsurf
+    cp ./doc/doc.pdf $out/share/doc/glsurf
+    cp -r ./examples $out/share/doc/glsurf
+  '';
+
+  meta = {
+    homepage = http://www.lama.univ-savoie.fr/~raffalli/glsurf;
+    description = "GlSurf: a program to draw implicit surfaces and curves";
+  };
+}
diff --git a/pkgs/applications/science/math/weka/default.nix b/pkgs/applications/science/math/weka/default.nix
new file mode 100644
index 00000000000..8471c46c8d7
--- /dev/null
+++ b/pkgs/applications/science/math/weka/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, jre, unzip }:
+
+stdenv.mkDerivation {
+  name = "weka-3.6.9";
+  
+  src = fetchurl {
+    url = "mirror://sourceforge/weka/weka-3-6-9.zip";
+    sha256 = "0rnis4vvihhdcdvpp79hkmklcnn897paa0qrs95cbjnpgvxzbczs";
+  };
+
+  buildInputs = [ unzip ];
+  
+  # The -Xmx1000M comes suggested from their download page:
+  # http://www.cs.waikato.ac.nz/ml/weka/downloading.html
+  installPhase = ''
+    mkdir -pv $out/share/weka $out/bin
+    cp -Rv * $out/share/weka
+    
+    cat > $out/bin/weka << EOF
+    #!${stdenv.shell}
+    ${jre}/bin/java -Xmx1000M -jar $out/share/weka/weka.jar
+    EOF
+    
+    chmod +x $out/bin/weka
+  '';
+  
+  meta = {
+    homepage = "http://www.cs.waikato.ac.nz/ml/weka/";
+    description = "Collection of machine learning algorithms for data mining tasks";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/applications/science/misc/tulip/default.nix b/pkgs/applications/science/misc/tulip/default.nix
index 1402dc9b182..84da6039822 100644
--- a/pkgs/applications/science/misc/tulip/default.nix
+++ b/pkgs/applications/science/misc/tulip/default.nix
@@ -1,13 +1,13 @@
 { fetchurl, stdenv, libxml2, freetype, mesa, glew, qt4
 , cmake, makeWrapper, libjpeg }:
 
-let version = "3.7.0"; in
+let version = "4.1.0"; in
 stdenv.mkDerivation rec {
   name = "tulip-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/auber/tulip/tulip-3.7.0/${name}-src.tar.gz";
-    sha256 = "150fj9pdxblvl5sby61cb2kq98r6h8yljk3vq5xizn198d3fz4jq";
+    url = "mirror://sourceforge/auber/${name}_src.tar.gz";
+    sha256 = "1js1f8xdm9g2m66xbhfxa8ixzw6h4gjynxsm83p54l3i0hs3biig";
   };
 
   buildInputs = [ libxml2 freetype glew mesa qt4 libjpeg ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = {
-    description = "Tulip, a visualization framework for the analysis and visualization of relational data";
+    description = "A visualization framework for the analysis and visualization of relational data";
 
     longDescription =
       '' Tulip is an information visualization framework dedicated to the
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 5086f4f31b3..9991a506485 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
@@ -7,8 +7,8 @@
 , monadControl, mtl, network, networkInfo, networkMulticast
 , networkProtocolXmpp, openssh, QuickCheck, random, regexTdfa
 , rsync, SafeSemaphore, SHA, stm, text, time, transformers
-, unixCompat, utf8String, uuid, wai, waiLogger, warp, xmlConduit
-, xmlTypes, yesod, yesodDefault, yesodForm, yesodStatic
+, unixCompat, utf8String, uuid, wai, waiLogger, warp, which
+, xmlConduit, xmlTypes, yesod, yesodDefault, yesodForm, yesodStatic
 }:
 
 cabal.mkDerivation (self: {
@@ -28,7 +28,7 @@ cabal.mkDerivation (self: {
     uuid wai waiLogger warp xmlConduit xmlTypes yesod yesodDefault
     yesodForm yesodStatic
   ];
-  buildTools = [ bup curl git gnupg1 lsof openssh rsync ];
+  buildTools = [ bup curl git gnupg1 lsof openssh rsync which ];
   configureFlags = "-fS3
                     -fWebDAV
                     -fInotify
@@ -41,6 +41,7 @@ cabal.mkDerivation (self: {
                     -fProduction
                     -fTDFA";
   preConfigure = "patchShebangs .";
+  installPhase = "make PREFIX=$out CABAL=./Setup docs install";
   checkPhase = ''
     export HOME="$NIX_BUILD_TOP/tmp"
     mkdir "$HOME"
diff --git a/pkgs/applications/version-management/git-and-tools/tig/default.nix b/pkgs/applications/version-management/git-and-tools/tig/default.nix
index 20644d09dd7..bdd6e806fe3 100644
--- a/pkgs/applications/version-management/git-and-tools/tig/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/tig/default.nix
@@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = "http://jonas.nitro.dk/tig/";
     description = "Tig is a git repository browser that additionally can act as a pager for output from various git commands";
-    maintainers = [ maintainers.garbas maintainers.bjornfor ];
+    maintainers = [ maintainers.garbas maintainers.bjornfor maintainers.iElectric ];
     license = licenses.gpl2;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/version-management/kdesvn/default.nix b/pkgs/applications/version-management/kdesvn/default.nix
index 29b8b306fe5..59fb1f5a867 100644
--- a/pkgs/applications/version-management/kdesvn/default.nix
+++ b/pkgs/applications/version-management/kdesvn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gettext, apr, aprutil, subversion, db4, kdelibs }:
+{ stdenv, fetchurl, gettext, apr, aprutil, subversion, db4, kdelibs, expat }:
 
 stdenv.mkDerivation rec {
   name = "kdesvn-1.5.5";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   patches = [ ./docbook.patch ./virtual_inheritance.patch ];
   
 
-  buildInputs = [ apr aprutil subversion db4 kdelibs ];
+  buildInputs = [ apr aprutil subversion db4 kdelibs expat ];
 
   nativeBuildInputs = [ gettext ];
 
diff --git a/pkgs/applications/version-management/subversion/default.nix b/pkgs/applications/version-management/subversion/default.nix
index 9743b73345c..42503b97440 100644
--- a/pkgs/applications/version-management/subversion/default.nix
+++ b/pkgs/applications/version-management/subversion/default.nix
@@ -21,13 +21,13 @@ assert compressionSupport -> neon.compressionSupport;
 
 stdenv.mkDerivation rec {
 
-  version = "1.7.9";
+  version = "1.7.10";
 
   name = "subversion-${version}";
 
   src = fetchurl {
     url = "mirror://apache/subversion//${name}.tar.bz2";
-    sha1 = "453757bae78a800997559f2232483ab99238ec1e";
+    sha1 = "a4f3de0a13b034b0eab4d35512c6c91a4abcf4f5";
   };
 
   buildInputs = [ zlib apr aprutil sqlite ]
diff --git a/pkgs/applications/video/gnash/default.nix b/pkgs/applications/video/gnash/default.nix
index db6bde782b9..4f2addcc99b 100644
--- a/pkgs/applications/video/gnash/default.nix
+++ b/pkgs/applications/video/gnash/default.nix
@@ -3,7 +3,7 @@
 , gst_ffmpeg, speex
 , libogg, libxml2, libjpeg, mesa, libpng, libungif, libtool
 , boost, freetype, agg, dbus, curl, pkgconfig, gettext
-, glib, gtk, gtkglext, x11, ming, dejagnu, python, perl
+, glib, gtk, gtkglext, pangox_compat, x11, ming, dejagnu, python, perl
 , freefont_ttf, haxe, swftools
 , lib, makeWrapper
 , xulrunner }:
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     gettext x11 SDL SDL_mixer gstreamer gst_plugins_base gst_plugins_good
     gst_ffmpeg speex libtool
     libogg libxml2 libjpeg mesa libpng libungif boost freetype agg
-    dbus curl pkgconfig glib gtk gtkglext
+    dbus curl pkgconfig glib gtk gtkglext pangox_compat
     xulrunner
     makeWrapper
   ]
diff --git a/pkgs/applications/video/mplayer/default.nix b/pkgs/applications/video/mplayer/default.nix
index a1ec200aaf0..2051590a819 100644
--- a/pkgs/applications/video/mplayer/default.nix
+++ b/pkgs/applications/video/mplayer/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     # Old kind of URL:
-    # url = http://nixos.org/tarballs/mplayer-snapshot-20101227.tar.bz2;
+    # url = http://tarballs.nixos.org/mplayer-snapshot-20101227.tar.bz2;
     # Snapshot I took on 20110423
 
     #Transient
diff --git a/pkgs/applications/video/smplayer/default.nix b/pkgs/applications/video/smplayer/default.nix
new file mode 100644
index 00000000000..ab48d74c00d
--- /dev/null
+++ b/pkgs/applications/video/smplayer/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, qt4 }:
+
+stdenv.mkDerivation rec {
+  name = "smplayer-0.8.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/smplayer/${name}.tar.bz2";
+    sha256 = "0vbfvaqg5c25vabq1mf9xg6kzgvxnpd0i172y1gjznnlpcw2fxrw";
+  };
+
+  buildInputs = [ qt4 ];
+
+  preConfigure = ''
+    makeFlags="PREFIX=$out"
+  '';
+
+  meta = {
+    description = "A complete front-end for MPlayer";
+    homepage = "http://smplayer.sourceforge.net/";
+    license = stdenv.lib.licenses.gpl3Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index 3c96cd13418..7b74cfcdb11 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -10,13 +10,18 @@
 
 stdenv.mkDerivation rec {
   name = "vlc-${version}";
-  version = "2.0.6";
+  version = "2.0.7";
 
   src = fetchurl {
     url = "http://download.videolan.org/pub/videolan/vlc/${version}/${name}.tar.xz";
-    sha256 = "0qqrpry41vawihhggcx00vibbn73hxdal1gim1qnrqrcbq1rik1i";
+    sha256 = "052kfkpd0r2fwkyz97qhz2a368xqxa905qacrd1bkl2bkvahfc94";
   };
 
+  postPatch = /* flac 1.3.0 fix */ ''
+    sed -i -e 's:stream_decoder.h:FLAC/stream_decoder.h:' modules/codec/flac.c
+    sed -i -e 's:stream_encoder.h:FLAC/stream_encoder.h:' modules/codec/flac.c
+  '';
+
   buildInputs =
     [ xz bzip2 perl zlib a52dec libmad faad2 ffmpeg alsaLib libdvdnav libdvdnav.libdvdread
       libbluray dbus fribidi qt4 libvorbis libtheora speex lua5 libgcrypt
diff --git a/pkgs/applications/video/xbmc/default.nix b/pkgs/applications/video/xbmc/default.nix
index 55734e49539..d3b3556baf4 100644
--- a/pkgs/applications/video/xbmc/default.nix
+++ b/pkgs/applications/video/xbmc/default.nix
@@ -68,6 +68,11 @@ stdenv.mkDerivation rec {
 
     dontUseCmakeConfigure = true;
 
+    preConfigure = ''
+      substituteInPlace xbmc/linux/LinuxTimezone.cpp \
+        --replace 'usr/share/zoneinfo' 'etc/zoneinfo'
+    '';
+
     configureFlags = [
       "--enable-external-libraries"
       "--disable-webserver"
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index b1165b3535b..997cc8bd49d 100644
--- a/pkgs/applications/virtualization/qemu/default.nix
+++ b/pkgs/applications/virtualization/qemu/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, python, zlib, pkgconfig, glib, SDL, ncurses, perl, pixman }:
+{ stdenv, fetchurl, python, zlib, pkgconfig, glib, SDL, ncurses, perl, pixman
+, attr, libcap }:
 
 stdenv.mkDerivation rec {
   name = "qemu-1.4.0";
@@ -8,10 +9,16 @@ stdenv.mkDerivation rec {
     sha256 = "1a7d11vjs1p6i1ck2ff9annmkhpkbjl73hl9i1cbg3s0fznrfqh6";
   };
 
-  buildInputs = [ python zlib pkgconfig glib SDL ncurses perl pixman ];
+  buildInputs = [
+    python zlib pkgconfig glib SDL ncurses perl pixman attr libcap
+  ];
 
   enableParallelBuilding = true;
 
+  configureFlags = [
+    "--enable-virtfs"
+  ];
+
   meta = {
     description = "QEmu processor emulator";
     license = "GPLv2+";
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 3dd020dfa10..6ca2c66a35a 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -11,8 +11,7 @@ with stdenv.lib;
 
 let
 
-  version = "4.2.12";
-  extpackRevision = "84980";
+  version = "4.2.14"; # changes ./guest-additions as well
 
   forEachModule = action: ''
     for mod in \
@@ -31,12 +30,10 @@ let
     done
   '';
 
-  extensionPack = requireFile {
-    name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}"
-         + ".vbox-extpack";
+  extensionPack = fetchurl {
+    url = "http://download.virtualbox.org/virtualbox/${version}/Oracle_VM_VirtualBox_Extension_Pack-${version}.vbox-extpack";
     # Has to be base16 because it's used as an input to VBoxExtPackHelperApp!
-    sha256 = "ad15a92e49095c2115bd1793b3b957d3eaf44af0f5d24bb53d6b4fc81c3e2fc4";
-    url = "https://www.virtualbox.org/wiki/Downloads";
+    sha256 = "5813cae72790de4893cadb839ffbd148290a44ec6913d901d84c9b3740ab1b1e";
   };
 
 in stdenv.mkDerivation {
@@ -44,7 +41,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
-    sha256 = "eb65ecac94f63d6292a967d39cb5e28326404c10d0e8c2c50399eedb59c17ee6";
+    sha256 = "038k65cdvr80da5nfan5r3rjrnxqab2fbf2pr2jq8g1gc4cxrxpq";
   };
 
   buildInputs =
@@ -137,6 +134,8 @@ in stdenv.mkDerivation {
     done
   '';
 
+  passthru = { inherit version; /* for guest additions */ };
+
   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 f3d7c18a2c6..e7843b07fc3 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -1,15 +1,18 @@
 { stdenv, fetchurl, lib, patchelf, cdrkit, kernelDev, which, makeWrapper
-, libX11, libXt, libXext, libXmu, libXcomposite, libXfixes, libXrandr, libXcursor
-, dbus }:
+, xorg, dbus, virtualbox }:
 
-let version = "4.2.12"; in
+let
+  version = virtualbox.version;
+  xserverVListFunc = builtins.elemAt (stdenv.lib.splitString "." xorg.xorgserver.version);
+  xserverABI = xserverVListFunc 0 + xserverVListFunc 1;
+in
 
 stdenv.mkDerivation {
   name = "VirtualBox-GuestAdditions-${version}-${kernelDev.version}";
 
   src = fetchurl {
     url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
-    sha256 = "aed4730b643aca8daa0829e1122b7c8d592b9f6cea902a98e390c4d22373dfb8";
+    sha256 = "9f08f13bbd818fb3ef9916658542ad0999c35e11afc1f6e8ff0b944405486e8a";
   };
 
   KERN_DIR = "${kernelDev}/lib/modules/*/build";
@@ -22,7 +25,7 @@ stdenv.mkDerivation {
 
   '';
 
-  buildCommand = ''
+  buildCommand = with xorg; ''
     ${if stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" then ''
         isoinfo -J -i $src -x /VBoxLinuxAdditions.run > ./VBoxLinuxAdditions.run
         chmod 755 ./VBoxLinuxAdditions.run
@@ -104,7 +107,7 @@ stdenv.mkDerivation {
 
     # Install Xorg drivers
     mkdir -p $out/lib/xorg/modules/{drivers,input}
-    install -m 644 lib/VBoxGuestAdditions/vboxvideo_drv_112.so $out/lib/xorg/modules/drivers/vboxvideo_drv.so
+    install -m 644 lib/VBoxGuestAdditions/vboxvideo_drv_${xserverABI}.so $out/lib/xorg/modules/drivers/vboxvideo_drv.so
 
     # Install kernel modules
     cd src
diff --git a/pkgs/applications/window-managers/weston/default.nix b/pkgs/applications/window-managers/weston/default.nix
new file mode 100644
index 00000000000..2c1044d6937
--- /dev/null
+++ b/pkgs/applications/window-managers/weston/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, wayland, mesa, libxkbcommon
+, cairo, libxcb, libXcursor, x11, udev, libdrm, mtdev
+, libjpeg, pam, autoconf, automake, libtool }:
+
+let version = "1.0.5"; in
+
+stdenv.mkDerivation rec {
+  name = "weston-${version}";
+
+  src = fetchurl {
+    url = "http://wayland.freedesktop.org/releases/${name}.tar.xz";
+    sha256 = "0g2k82pnlxl8b70ykazj7kn8xffjfsmgcgx427qdrm4083z2hgm0";
+  };
+
+  buildInputs = [ pkgconfig wayland mesa libxkbcommon
+    cairo libxcb libXcursor x11 udev libdrm mtdev
+    libjpeg pam autoconf automake libtool ];
+
+  preConfigure = "autoreconf -vfi";
+
+  # prevent install target to chown root weston-launch, which fails
+  configureFlags = ''
+    --disable-setuid-install
+  '';
+
+  meta = {
+    description = "Reference implementation of a Wayland compositor";
+    homepage = http://wayland.freedesktop.org/;
+    license = stdenv.lib.licenses.mit;
+  };
+}
diff --git a/pkgs/build-support/fetchurl/default.nix b/pkgs/build-support/fetchurl/default.nix
index 6c981229531..294d9a43ef7 100644
--- a/pkgs/build-support/fetchurl/default.nix
+++ b/pkgs/build-support/fetchurl/default.nix
@@ -91,7 +91,7 @@ stdenv.mkDerivation {
   urls = urls_;
 
   # If set, prefer the content-addressable mirrors
-  # (http://nixos.org/tarballs) over the original URLs.
+  # (http://tarballs.nixos.org) over the original URLs.
   preferHashedMirrors = true;
 
   # New-style output content requirements.
diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix
index d6ad25afbad..70a06735e68 100644
--- a/pkgs/build-support/fetchurl/mirrors.nix
+++ b/pkgs/build-support/fetchurl/mirrors.nix
@@ -2,7 +2,7 @@ rec {
 
   # Content-addressable Nix mirrors.
   hashedMirrors = [
-    http://nixos.org/tarballs
+    http://tarballs.nixos.org
   ];
 
   # Mirrors for mirror://site/filename URIs, where "site" is
diff --git a/pkgs/data/fonts/bakoma-ttf/default.nix b/pkgs/data/fonts/bakoma-ttf/default.nix
index 5f9cbec7a97..8b607adaaae 100644
--- a/pkgs/data/fonts/bakoma-ttf/default.nix
+++ b/pkgs/data/fonts/bakoma-ttf/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation {
   name = "bakoma-ttf";
   
   src = fetchurl {
-    url = http://nixos.org/tarballs/bakoma-ttf.tar.bz2;
+    url = http://tarballs.nixos.org/bakoma-ttf.tar.bz2;
     sha256 = "1j1y3cq6ys30m734axc0brdm2q9n2as4h32jws15r7w5fwr991km";
   };
   
diff --git a/pkgs/data/misc/cacert/default.nix b/pkgs/data/misc/cacert/default.nix
index 711ebc9e88f..aafb9104e22 100644
--- a/pkgs/data/misc/cacert/default.nix
+++ b/pkgs/data/misc/cacert/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   name = "cacert-20121229";
 
   src = fetchurl {
-    url = "http://nixos.org/tarballs/${name}.pem.bz2";
+    url = "http://tarballs.nixos.org/${name}.pem.bz2";
     sha256 = "031s86pqvn620zkj6w97hqgjvkp6vsvlymzz7rwvkv25zvrjsgif";
   };
 
diff --git a/pkgs/data/misc/gsettings-desktop-schemas/default.nix b/pkgs/data/misc/gsettings-desktop-schemas/default.nix
deleted file mode 100644
index c934863d75d..00000000000
--- a/pkgs/data/misc/gsettings-desktop-schemas/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, fetchurl, glib, pkgconfig, intltool }:
-
-stdenv.mkDerivation {
-  name = "gsettings-desktop-schemas-3.2.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gsettings-desktop-schemas/3.2/gsettings-desktop-schemas-3.2.0.tar.xz;
-    sha256 = "0772axkd1nlf3j1lcg0zi5x5jh4zmr25k98dhn7pzppahljaj3hi";
-  };
-
-  buildInputs = [ glib ];
-  nativeBuildInputs = [ pkgconfig intltool ];
-
-  meta = {
-    inherit (glib.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/data/misc/poppler-data/default.nix b/pkgs/data/misc/poppler-data/default.nix
index 14a41cf84fc..9e2679c0438 100644
--- a/pkgs/data/misc/poppler-data/default.nix
+++ b/pkgs/data/misc/poppler-data/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, cmake }:
 
 stdenv.mkDerivation rec {
-  name = "poppler-data-0.4.5";
+  name = "poppler-data-0.4.6";
 
   src = fetchurl {
     url = "http://poppler.freedesktop.org/${name}.tar.gz";
-    sha256 = "1zbh1zd083wfwrcw7vxc2bn32h42y6iyh24syxcb3r5ggd2vr41i";
+    sha256 = "1yhaz74b50hjkz3ii077kmq3qg3p3kdyxm33cv6r1njvz8fr01pk";
   };
 
   buildInputs = [ cmake ];
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
     homepage = http://poppler.freedesktop.org/;
     description = "Encoding files for Poppler, a PDF rendering library";
     platforms = stdenv.lib.platforms.all;
+    license = "free"; # more free licenses combined
     maintainers = [ stdenv.lib.maintainers.urkud ];
   };
 }
diff --git a/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix b/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix
index c09ed74a97c..1e2faf3af84 100644
--- a/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix
+++ b/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix
@@ -1,24 +1,26 @@
-{ stdenv, fetchurl, gnome, librsvg, pkgconfig, pygtk, python }:
+{ stdenv, fetchurl, gnome, librsvg, pkgconfig, pygtk, python, gtk }:
 
 stdenv.mkDerivation rec {
-  version = "2.32";
+  ver_maj = "2.32";
+  ver_min = "0";
+  version = "${ver_maj}.${ver_min}";
   name = "python-rsvg-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-python-desktop/${version}/gnome-python-desktop-${version}.0.tar.gz";
-    sha256 = "1xhh3h1qdnimydvv55pmqwyzjchhjwfvp951sjlq0180kskqrlj5";
+    url = "mirror://gnome/sources/gnome-python-desktop/${ver_maj}/gnome-python-desktop-${version}.tar.bz2";
+    sha256 = "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9";
   };
 
   configurePhase = ''
-    sed -e "s@{PYTHONDIR}/gtk-2.0@{PYTHONDIR}/@" -i rsvg/wscript 
-    python waf configure --enable-modules=rsvg --prefix=$out 
+    sed -e "s@{PYTHONDIR}/gtk-2.0@{PYTHONDIR}/@" -i rsvg/wscript
+    python waf configure --enable-modules=rsvg --prefix=$out
   '';
 
   buildPhase = "python waf build";
 
   installPhase = "python waf install";
 
-  buildInputs = [ gnome.gnome_python librsvg pkgconfig pygtk python ];
+  buildInputs = [ gtk gnome.gnome_python librsvg pkgconfig pygtk python ];
 
   meta = with stdenv.lib; {
     homepage = "http://www.pygtk.org";
diff --git a/pkgs/desktops/gnome-2/default.nix b/pkgs/desktops/gnome-2/default.nix
index 38ae4c01534..3d76ba72dae 100644
--- a/pkgs/desktops/gnome-2/default.nix
+++ b/pkgs/desktops/gnome-2/default.nix
@@ -29,8 +29,6 @@
 
   libgtkhtml = callPackage ./platform/libgtkhtml { };
 
-  intltool = callPackage ./platform/intltool { };
-
   GConf = callPackage ./platform/GConf { };
 
   gconfmm = callPackage ./platform/gconfmm { };
diff --git a/pkgs/desktops/gnome-2/platform/ORBit2/default.nix b/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
index ec6931724bc..22c22c6bcf5 100644
--- a/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
+++ b/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
@@ -9,6 +9,10 @@ stdenv.mkDerivation rec {
     sha256 = "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam";
   };
 
+  preBuild = ''
+    sed 's/-DG_DISABLE_DEPRECATED//' -i linc2/src/Makefile
+  '';
+
   nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ glib libIDL ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix b/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix
index 0215b341f93..55daa496afc 100644
--- a/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix
@@ -16,4 +16,6 @@ stdenv.mkDerivation rec {
     ];
 
   propagatedBuildInputs = [ GConf glib ];
+
+  postPatch = "find . -name Makefile.in | xargs sed 's/-DG_DISABLE_DEPRECATED//g' -i ";
 }
diff --git a/pkgs/desktops/gnome-2/platform/gtkglext/default.nix b/pkgs/desktops/gnome-2/platform/gtkglext/default.nix
index 4eab4b8213c..903387f50b1 100644
--- a/pkgs/desktops/gnome-2/platform/gtkglext/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gtkglext/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, gtk, mesa, pango }:
+{ stdenv, fetchurl, pkgconfig, glib, gtk, mesa, pango, pangox_compat, xlibs }:
 
 stdenv.mkDerivation rec {
   name = "gtkglext-1.2.0";
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "0lbz96jwz57hnn52b8rfj54inwpwcc9fkdq6ya043cgnfih77g8n";
   };
 
-  buildInputs = [ pkgconfig gtk mesa pango ];
+  buildInputs = with xlibs;
+    [ pkgconfig glib gtk mesa pango pangox_compat libX11 libXmu ];
 
   # The library uses `GTK_WIDGET_REALIZED', `GTK_WIDGET_TOPLEVEL', and
   # `GTK_WIDGET_NO_WINDOW', all of which appear to be deprecated nowadays.
diff --git a/pkgs/desktops/gnome-2/platform/intltool/default.nix b/pkgs/desktops/gnome-2/platform/intltool/default.nix
deleted file mode 100644
index 51eaa4a2cf4..00000000000
--- a/pkgs/desktops/gnome-2/platform/intltool/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, gettext}:
-
-stdenv.mkDerivation rec {
-  name = "intltool-0.40.6";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/intltool/0.40/intltool-0.40.6.tar.bz2;
-    sha256 = "0r1vkvy5xzqk01yl6a0xlrry39bra24alkrx6279b77hc62my7jd";
-  };
-
-  buildInputs = [ pkgconfig ];
-  propagatedBuildInputs = [ perl perlXMLParser gettext ];
-}
diff --git a/pkgs/desktops/gnome-2/platform/libbonobo/default.nix b/pkgs/desktops/gnome-2/platform/libbonobo/default.nix
index 79c41f924d3..2303fb15a6f 100644
--- a/pkgs/desktops/gnome-2/platform/libbonobo/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libbonobo/default.nix
@@ -10,7 +10,9 @@ stdenv.mkDerivation rec {
     sha256 = "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i";
   };
 
-  preConfigure = "export USER=`whoami`";
+  preConfigure = # still using stuff deprecated in new glib versions
+    "sed 's/-DG_DISABLE_DEPRECATED//g' -i configure activation-server/Makefile.in";
+
   nativeBuildInputs = [ flex bison pkgconfig intltool procps ];
   buildInputs = [ libxml2 ];
   propagatedBuildInputs = [ popt glib ORBit2 ];
diff --git a/pkgs/desktops/gnome-2/platform/libgnome/default.nix b/pkgs/desktops/gnome-2/platform/libgnome/default.nix
index 37dbfd12961..5ab6d5e813d 100644
--- a/pkgs/desktops/gnome-2/platform/libgnome/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnome/default.nix
@@ -9,7 +9,9 @@ stdenv.mkDerivation rec {
     major = "2"; minor = "32"; patchlevel = "1";
     sha256 = "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj";
   };
-  
+
+  patches = [ ./new-glib.patch ];
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ popt zlib intltool GConf gnome_vfs libcanberra libtool ];
   propagatedBuildInputs = [ glib libbonobo ];
diff --git a/pkgs/desktops/gnome-2/platform/libgnome/new-glib.patch b/pkgs/desktops/gnome-2/platform/libgnome/new-glib.patch
new file mode 100644
index 00000000000..ceabfbdd158
--- /dev/null
+++ b/pkgs/desktops/gnome-2/platform/libgnome/new-glib.patch
@@ -0,0 +1,65 @@
+Porting libgnome to newer glib:
+ * remove g_thread_init and g_thread_supported, which are longer needed
+   https://developer.gnome.org/glib/2.36/glib-Deprecated-Thread-APIs.html#g-thread-init
+ * replace GStaticRecMutex by GRecMutex
+   https://developer.gnome.org/glib/2.36/glib-Deprecated-Thread-APIs.html#GStaticRecMutex
+
+diff --git a/libgnome/gnome-i18n.c b/libgnome/gnome-i18n.c
+index 531c56c..f13d61e 100644
+--- a/libgnome/gnome-i18n.c
++++ b/libgnome/gnome-i18n.c
+@@ -55,12 +55,14 @@
+ const GList *
+ gnome_i18n_get_language_list (const gchar *ignored)
+ {
+-  static GStaticRecMutex lang_list_lock = G_STATIC_REC_MUTEX_INIT;
++  static GRecMutex lang_list_lock;
++  g_rec_mutex_init (&lang_list_lock);
++
+   static GList *list = NULL;
+   const char * const* langs;
+   int i;
+ 
+-  g_static_rec_mutex_lock (&lang_list_lock);
++  g_rec_mutex_lock (&lang_list_lock);
+ 
+   if (list == NULL) {
+     langs = g_get_language_names ();
+@@ -71,7 +73,7 @@ gnome_i18n_get_language_list (const gchar *ignored)
+     list = g_list_reverse (list);
+   }
+ 
+-  g_static_rec_mutex_unlock (&lang_list_lock);
++  g_rec_mutex_unlock (&lang_list_lock);
+ 
+   return list;
+ }
+diff --git a/libgnome/gnome-init.c b/libgnome/gnome-init.c
+index fe3efd4..c6619af 100644
+--- a/libgnome/gnome-init.c
++++ b/libgnome/gnome-init.c
+@@ -115,9 +115,6 @@ gnome_bonobo_module_info_get (void)
+ static void
+ bonobo_activation_pre_args_parse (GnomeProgram *program, GnomeModuleInfo *mod_info)
+ {
+-        if (!g_thread_supported ())
+-		g_thread_init (NULL);
+-
+ 	if (!bonobo_activation_is_initialized ())
+ 		bonobo_activation_preinit (program, mod_info);
+ }
+diff --git a/libgnome/gnome-program.c b/libgnome/gnome-program.c
+index 739765e..cd14999 100644
+--- a/libgnome/gnome-program.c
++++ b/libgnome/gnome-program.c
+@@ -1878,10 +1878,6 @@ gnome_program_init (const char *app_id, const char *app_version,
+     GnomeProgram *program;
+     va_list args;
+ 
+-    /* g_thread_init() has to be the first GLib function called ever */
+-    if (!g_threads_got_initialized)
+-        g_thread_init (NULL);
+-
+     g_type_init ();
+ 
+     va_start(args, first_property_name);
diff --git a/pkgs/desktops/gnome-2/platform/libgnomeprint/default.nix b/pkgs/desktops/gnome-2/platform/libgnomeprint/default.nix
index 0b6d3e25e2e..390059089fc 100644
--- a/pkgs/desktops/gnome-2/platform/libgnomeprint/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnomeprint/default.nix
@@ -14,4 +14,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ pkgconfig gtk gettext intltool libart_lgpl libgnomecups bison flex ];
 
   propagatedBuildInputs = [ libxml2 ];
+
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix b/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
new file mode 100644
index 00000000000..94877457267
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, python, pkgconfig, popt, atk, libX11, libICE, xlibs, libXi
+, intltool, dbus_glib, at_spi2_core, libSM }:
+
+stdenv.mkDerivation rec {
+  versionMajor = "2.8";
+  versionMinor = "0";
+  moduleName   = "at-spi2-atk";
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "085sqww174vl3i9ccb477v706rkjs2d107rl96ma1kbl2jyar226";
+  };
+
+  buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi
+                  intltool dbus_glib at_spi2_core libSM ];
+}
diff --git a/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix b/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
new file mode 100644
index 00000000000..2d433486677
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, python, pkgconfig, popt, intltool, dbus_glib
+, libX11, xextproto, libSM, libICE, libXtst, libXi }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "2.8";
+  versionMinor = "0";
+  moduleName   = "at-spi2-core";
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "0n64h6j10sn90ds9y70d9wlvvsbwnrym9fm0cyjxb0zmqw7s6q8q";
+  };
+
+  buildInputs = [
+    python pkgconfig popt  intltool dbus_glib
+    libX11 xextproto libSM libICE libXtst libXi
+  ];
+
+  # ToDo: on non-NixOS we create a symlink from there?
+  configureFlags = "--with-dbus-daemondir=/run/current-system/sw/bin/";
+}
diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
new file mode 100644
index 00000000000..de49bffc419
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -0,0 +1,62 @@
+{ fetchurl, stdenv, pkgconfig, intltool, perl, perlXMLParser, libxml2
+, glib, gtk3, pango, atk, gdk_pixbuf, shared_mime_info
+, itstool, gnome_icon_theme, libgnome_keyring, gsettings_desktop_schemas
+, poppler, ghostscriptX, djvulibre, libspectre
+, makeWrapper #, python /*just for tests*/
+, recentListSize ? null # 5 is not enough, allow passing a different number
+}:
+
+stdenv.mkDerivation rec {
+  name = "evince-3.6.1";
+
+  src = fetchurl {
+    url = "http://ftp.gnome.org/pub/GNOME/sources/evince/3.6/${name}.tar.xz";
+    sha256 = "1da1pij030dh8mb0pr0jnyszgsbjnh8lc17rj5ii52j3kmbv51qv";
+  };
+
+  buildInputs = [
+    pkgconfig intltool perl perlXMLParser libxml2
+    glib gtk3 pango atk gdk_pixbuf
+    itstool gnome_icon_theme libgnome_keyring gsettings_desktop_schemas
+    poppler ghostscriptX djvulibre libspectre
+    makeWrapper
+  ];
+
+  configureFlags = [
+    "--disable-nautilus" # Do not use nautilus
+    "--disable-dbus" # strange compilation error
+  ];
+
+  preConfigure = with stdenv.lib;
+    optionalString doCheck ''
+      for file in test/*.py; do
+        echo "patching $file"
+        sed '1s,/usr,${python},' -i "$file"
+      done
+    '' + optionalString (recentListSize != null) ''
+      sed -i 's/\(gtk_recent_chooser_set_limit .*\)5)/\1${builtins.toString recentListSize})/' shell/ev-open-recent-action.c
+      sed -i 's/\(if (++n_items == \)5\(.*\)/\1${builtins.toString recentListSize}\2/' shell/ev-window.c
+    '';
+
+  postInstall = ''
+    # Tell Glib/GIO about the MIME info directory, which is used
+    # by `g_file_info_get_content_type ()'.
+    wrapProgram "$out/bin/evince" \
+      --prefix XDG_DATA_DIRS : "${shared_mime_info}/share:$out/share"
+  '' + gsettings_desktop_schemas.doCompileSchemas;
+  doCheck = false; # would need pythonPackages.dogTail, which is missing
+
+  meta = {
+    homepage = http://www.gnome.org/projects/evince/;
+    description = "GNOME's document viewer";
+
+    longDescription = ''
+      Evince is a document viewer for multiple document formats.  It
+      currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal
+      of Evince is to replace the multiple document viewers that exist
+      on the GNOME Desktop with a single simple application.
+    '';
+
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gconf/default.nix b/pkgs/desktops/gnome-3/core/gconf/default.nix
new file mode 100644
index 00000000000..9ca9c227d58
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gconf/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, dbus_glib, gtk, glib, libxml2
+, intltool, polkit, orbit }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "3.2";
+  versionMinor = "5";
+  moduleName   = "GConf";
+
+  origName = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  name = "gconf-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${origName}.tar.xz";
+    sha256 = "1ijqks0jxc4dyfxg4vnbqds4aj6miyahlsmlqlkf2bi1798akpjd";
+  };
+
+  buildInputs = [ libxml2 polkit gtk orbit ];
+  propagatedBuildInputs = [ glib dbus_glib  ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  # ToDo: ldap reported as not found but afterwards reported as supported
+
+  meta = {
+    homepage = http://projects.gnome.org/gconf/;
+    description = "A system for storing application preferences";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gcr/default.nix b/pkgs/desktops/gnome-3/core/gcr/default.nix
new file mode 100644
index 00000000000..cf9774c5511
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gcr/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gnupg, p11_kit, glib
+, libgcrypt, libtasn1, dbus_glib, gtk, pango, gdk_pixbuf, atk }:
+
+stdenv.mkDerivation rec {
+  name = "gcr-3.6.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gcr/3.6/${name}.tar.xz";
+    sha256 = "16xyqxv2hxl3a4m8ahilqcf1ps58w1ijh8dav1l5nqz36ljdn2gp";
+  };
+
+  buildInputs = [
+    pkgconfig intltool gnupg p11_kit glib
+    libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk
+  ];
+
+  #doCheck = true;
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix b/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix
new file mode 100644
index 00000000000..303bcd2208c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix
@@ -0,0 +1,12 @@
+{ stdenv, fetchurl, pkgconfig, intltool, iconnamingutils, gtk }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-icon-theme-3.6.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-icon-theme/3.6/${name}.tar.xz";
+    sha256 = "0i8hkx2c1g5ckrvbkvs9n47i8fby8p9xs6p5l0mxdx9aq4smak9i";
+  };
+
+  nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk ];
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
new file mode 100644
index 00000000000..5983b74c0f4
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, pkgconfig, dbus, libgcrypt, libtasn1, pam, python, glib
+, gtk3, intltool, gconf, libgnome_keyring, pango, gcr, gdk_pixbuf, atk, p11_kit }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-keyring-3.6.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-keyring/3.6/${name}.tar.xz";
+    sha256 = "1mhc2c0qswfjqi2spdvh19b7npfkjf1k40q6v7fja4qpc26maq5f";
+  };
+
+  buildInputs = [
+    dbus libgcrypt pam python gtk3 gconf libgnome_keyring
+    pango gcr gdk_pixbuf atk p11_kit
+  ];
+
+  propagatedBuildInputs = [ glib libtasn1 ];
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  configureFlags = [
+    "--with-ca-certificates=/etc/ssl/certs/ca-bundle.crt" # NixOS hardcoded path
+    "--with-pkcs11-config=$$out/etc/pkcs11/" # installation directories
+    "--with-pkcs11-modules=$$out/lib/pkcs11/"
+  ];
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
new file mode 100644
index 00000000000..41fdcc8086b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango
+, gnome_doc_utils, intltool, libX11, which, gconf }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "3.4";
+  versionMinor = "1.1";
+
+  name = "gnome-terminal-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-terminal/${versionMajor}/${name}.tar.xz";
+    sha256 = "1p9zqjmkxryf2kyghhhwwpsh4kd8y1jzzwc9zxghmpxszi9a5m0l";
+  };
+
+  configureFlags = "--disable-scrollkeeper";
+  buildInputs = [ gnome3.gtk gnome3.gsettings_desktop_schemas gnome3.vte gconf ];
+
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ];
+}
diff --git a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
new file mode 100644
index 00000000000..9c13539a1cc
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig, intltool, glib
+  # just for passthru
+, gtk3, gsettings_desktop_schemas }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "3.6";
+  versionMinor = "1";
+  moduleName   = "gsettings-desktop-schemas";
+
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "1rk71q2rky9nzy0zb5jsvxa62vhg7dk65kdgdifq8s761797ga6r";
+  };
+
+  buildInputs = [ glib ];
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  passthru = {
+    doCompileSchemas = ''
+      for pkg in "${gsettings_desktop_schemas}" "${gtk3}"; do
+        cp -s $pkg/share/glib-2.0/schemas/*.gschema.xml $out/share/glib-2.0/schemas/
+      done
+      ${glib}/bin/glib-compile-schemas $out/share/glib-2.0/schemas/
+    '';
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gvfs/default.nix b/pkgs/desktops/gnome-3/core/gvfs/default.nix
new file mode 100644
index 00000000000..1eea518c4b7
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gvfs/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, dbus_libs, samba, libarchive, fuse, libgphoto2
+, libcdio, libxml2, libtool, glib, intltool, gconf, libgnome_keyring, libsoup
+, udev, avahi, libxslt, docbook_xsl }:
+
+stdenv.mkDerivation rec {
+  name = "gvfs-1.14.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gvfs/1.14/${name}.tar.xz";
+    sha256 = "1g4ghyf45jg2ajdkv2d972hbckyjh3d9jdrppai85pl9pk2dmfy3";
+  };
+
+  buildInputs =
+    [ glib dbus_libs udev samba libarchive fuse libgphoto2 libcdio libxml2 gconf
+      libgnome_keyring libsoup avahi libtool libxslt docbook_xsl
+    ];
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  enableParallelBuilding = true;
+}
diff --git a/pkgs/desktops/gnome-3/core/libcroco/default.nix b/pkgs/desktops/gnome-3/core/libcroco/default.nix
new file mode 100644
index 00000000000..70c1db8c027
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/libcroco/default.nix
@@ -0,0 +1,11 @@
+{stdenv, fetchurl, pkgconfig, libxml2, glib}:
+
+stdenv.mkDerivation rec {
+  name = "libcroco-0.6.6"; # 3.6.2 release
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libcroco/0.6/${name}.tar.xz";
+    sha256 = "1nbb12420v1zacn6jwa1x4ixikkcqw66sg4j5dgs45nhygiarv3j";
+  };
+  buildInputs = [ pkgconfig libxml2 glib ];
+}
diff --git a/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
new file mode 100644
index 00000000000..a5d196ae1e3
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, glib, dbus_libs, libgcrypt, pkgconfig, intltool }:
+
+stdenv.mkDerivation rec {
+  name = "libgnome-keyring-3.6.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgnome-keyring/3.6/${name}.tar.xz";
+    sha256 = "0c4qrjpmv1hqga3xv6wsq2z10x2n78qgw7q3k3s01y1pggxkgjkd";
+  };
+
+  propagatedBuildInputs = [ glib dbus_libs libgcrypt ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  meta = {
+    inherit (glib.meta) platforms maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/libgweather/default.nix b/pkgs/desktops/gnome-3/core/libgweather/default.nix
new file mode 100644
index 00000000000..78ae94c1a33
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/libgweather/default.nix
@@ -0,0 +1,14 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, gtk, intltool, libsoup, gconf
+, pango, gdk_pixbuf, atk }:
+
+stdenv.mkDerivation rec {
+  name = "libgweather-3.6.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgweather/3.6/${name}.tar.xz";
+    sha256 = "1c50m0zrnfh4g58rzf33dfw8ggslj38c61p8a75905bmj3rfyahg";
+  };
+  configureFlags = if stdenv ? glibc then "--with-zoneinfo-dir=${stdenv.glibc}/share/zoneinfo" else "";
+  propagatedBuildInputs = [ libxml2 gtk libsoup gconf pango gdk_pixbuf atk ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+}
diff --git a/pkgs/desktops/gnome-3/core/vte/default.nix b/pkgs/desktops/gnome-3/core/vte/default.nix
new file mode 100644
index 00000000000..ffc3aab8706
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/vte/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses
+, pythonSupport ? false, python, pygtk}:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "0.32";
+  versionMinor = "2";
+  moduleName   = "vte";
+  
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "0sj837b9ib36gx00hzdinv23f7w91fd5mcw1p6wdi053yxqw17nn";
+  };
+
+  buildInputs = [ intltool pkgconfig gnome3.glib gnome3.gtk ncurses ] ++
+                stdenv.lib.optionals pythonSupport [python pygtk];
+
+  configureFlags = ''
+    ${if pythonSupport then "--enable-python" else "--disable-python"}
+  '';
+
+  postInstall = stdenv.lib.optionalString pythonSupport ''
+    cd $(toPythonPath $out)/gtk-2.0
+    for n in *; do
+      ln -s "gtk-2.0/$n" "../$n"
+    done
+  '';
+
+  meta = {
+    homepage = http://www.gnome.org/;
+    description = "A library implementing a terminal emulator widget for GTK+";
+    longDescription = ''
+      VTE is a library (libvte) implementing a terminal emulator widget for
+      GTK+, and a minimal sample application (vte) using that.  Vte is
+      mainly used in gnome-terminal, but can also be used to embed a
+      console/terminal in games, editors, IDEs, etc. VTE supports Unicode and
+      character set conversion, as well as emulating any terminal known to
+      the system's terminfo database.
+    '';
+    license = "LGPLv2";
+    maintainers = with stdenv.lib.maintainers; [ astsmtl antono ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/zenity/default.nix b/pkgs/desktops/gnome-3/core/zenity/default.nix
new file mode 100644
index 00000000000..18b91d4f61e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/zenity/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango
+, gnome_doc_utils, intltool, libX11, which }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "3.4";
+  versionMinor = "0";
+
+  name = "zenity-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/zenity/${versionMajor}/zenity-${versionMajor}.${versionMinor}.tar.xz";
+    sha256 = "1bqbfcvd3kj2xk15fvbcdaqvyg9qvymlhn8cwvg5m6v4gicniw2w";
+  };
+
+  configureFlags = "--disable-scrollkeeper";
+  buildInputs = [ gnome3.gtk libxml2 libxslt libX11 ];
+
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ];
+}
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
new file mode 100644
index 00000000000..5d517da82b3
--- /dev/null
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -0,0 +1,55 @@
+{ callPackage, lib, self, stdenv, gettext, overrides ? {}, pkgs }:
+
+rec {
+  inherit (pkgs) fetchurl_gnome glib gtk3 atk pango;
+  gtk = gtk3;
+  orbit = pkgs.gnome2.ORBit2;
+
+  inherit (lib) lowPrio hiPrio appendToName makeOverridable;
+
+  __overrides = overrides;
+
+#### Core (http://ftp.acc.umu.se/pub/GNOME/core/)
+
+  at_spi2_atk = lib.lowPrio (callPackage ./core/at-spi2-atk { });
+
+  at_spi2_core = callPackage ./core/at-spi2-core { };
+
+  evince = callPackage ./core/evince { }; # ToDo: dbus would prevent compilation, enable tests
+
+  gconf = callPackage ./core/gconf { };
+
+  gcr = callPackage ./core/gcr { }; # ToDo: tests fail
+
+  gnome_icon_theme = callPackage ./core/gnome-icon-theme { };
+
+  gnome_keyring = callPackage ./core/gnome-keyring { };
+  libgnome_keyring = callPackage ./core/libgnome-keyring { };
+
+  gnome_terminal = callPackage ./core/gnome-terminal { };
+
+  gsettings_desktop_schemas = lib.lowPrio (callPackage ./core/gsettings-desktop-schemas { });
+
+  gvfs = callPackage ./core/gvfs { };
+
+  libcroco = callPackage ./core/libcroco {};
+
+  libgweather = callPackage ./core/libgweather { };
+
+  vte = callPackage ./core/vte { };
+
+  zenity = callPackage ./core/zenity { };
+
+#### Apps (http://ftp.acc.umu.se/pub/GNOME/apps/)
+
+  gnome_dictionary = callPackage ./desktop/gnome-dictionary { };
+
+  gnome_desktop = callPackage ./desktop/gnome-desktop { };
+
+  # Removed from recent GNOME releases, but still required
+  scrollkeeper = callPackage ./desktop/scrollkeeper { };
+
+  # scrollkeeper replacement
+  rarian = callPackage ./desktop/rarian { };
+
+}
diff --git a/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix
new file mode 100644
index 00000000000..4d22f6ad746
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, python, libxml2Python, libxslt, which, libX11, gnome3
+, intltool, gnome_doc_utils}:
+
+stdenv.mkDerivation rec {
+
+  majorVersion = "3.5";
+  minorVersion = "3";
+  name = "gnome-desktop-${majorVersion}.${minorVersion}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-desktop/${majorVersion}/${name}.tar.xz";
+    sha256 = "1nrqcp1p5cxhfjjy5hjpvkqmzsgl2353a08fg0b11c932v95bsba";
+  };
+
+  configureFlags = "--disable-scrollkeeper";
+  buildInputs = [ pkgconfig python libxml2Python libxslt which libX11
+                  gnome3.gtk gnome3.glib intltool gnome_doc_utils ];
+}
diff --git a/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix
new file mode 100644
index 00000000000..7a1ab5b1505
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix
@@ -0,0 +1,15 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gnome_doc_utils, intltool, which
+, libxml2, libxslt }:
+
+stdenv.mkDerivation rec {
+  version = "3.5.2";
+  name = "gnome-dictionary-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-dictionary/3.5/${name}.tar.xz";
+    sha256 = "1cq32csxn27vir5nlixx337ym2nal9ykq3s1j7yynh2adh4m0jil";
+  };
+
+  buildInputs = [ gnome3.gtk ];
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libxml2 libxslt gnome3.scrollkeeper ];
+}
diff --git a/pkgs/desktops/gnome-3/desktop/rarian/default.nix b/pkgs/desktops/gnome-3/desktop/rarian/default.nix
new file mode 100644
index 00000000000..77a2b710f44
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/rarian/default.nix
@@ -0,0 +1,11 @@
+{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42}:
+
+stdenv.mkDerivation rec {
+  name = "rarian-0.8.1";
+  src = fetchurl {
+    url = "mirror://gnome/sources/rarian/0.8/${name}.tar.bz2";
+    sha256 = "aafe886d46e467eb3414e91fa9e42955bd4b618c3e19c42c773026b205a84577";
+  };
+  buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt];
+  configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat";
+}
diff --git a/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix b/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix
new file mode 100644
index 00000000000..97dcbf4e004
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42, automake}:
+
+stdenv.mkDerivation {
+  name = "scrollkeeper-0.3.14";
+  src = fetchurl {
+    url = mirror://gnome/sources/scrollkeeper/0.3/scrollkeeper-0.3.14.tar.bz2;
+    sha256 = "08n1xgj1f53zahwm0wpn3jid3rfbhi3iwby0ilaaldnid5qriqgc";
+  };
+
+  # The fuloong2f is not supported by scrollkeeper-0.3.14 config.guess
+  preConfigure = "
+    substituteInPlace extract/dtds/Makefile.am --replace /usr/bin/xmlcatalog xmlcatalog
+    cp ${automake}/share/automake*/config.{sub,guess} .
+  ";
+
+  buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt];
+  configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat";
+}
diff --git a/pkgs/desktops/kde-4.10/kdepimlibs.nix b/pkgs/desktops/kde-4.10/kdepimlibs.nix
index c9813b19f52..7ec1612b1e5 100644
--- a/pkgs/desktops/kde-4.10/kdepimlibs.nix
+++ b/pkgs/desktops/kde-4.10/kdepimlibs.nix
@@ -1,8 +1,10 @@
-{ kde, boost, cyrus_sasl, gpgme, libical, openldap, shared_mime_info
+{ kde, pkgconfig, boost, cyrus_sasl, gpgme, libical, openldap, shared_mime_info
 , kdelibs, akonadi, libxslt, prison, nepomuk_core
 , shared_desktop_ontologies, qjson }:
 
 kde {
+  nativeBuildInputs = [ pkgconfig ];
+
   buildInputs =
     [ boost gpgme libical libxslt qjson
       openldap cyrus_sasl akonadi shared_desktop_ontologies
diff --git a/pkgs/desktops/xfce/4_08.nix b/pkgs/desktops/xfce/4_08.nix
new file mode 100644
index 00000000000..d29e3ac51ef
--- /dev/null
+++ b/pkgs/desktops/xfce/4_08.nix
@@ -0,0 +1,37 @@
+{ pkgs, newScope }: let
+
+common = (import ./common.nix) { inherit pkgs newScope xfce_self; };
+callPackage = common.callPackage;
+
+xfce_self = common.xfce_common // rec { # the lines are very long but it seems better than the even-odd line approach
+
+  #### CORE
+
+  exo           = callPackage ./core/exo.nix                { v= "0.6.2"; h= "0f8zh5y057l7xffskjvky6k88hrnz6jyk35mvlfpmx26anlgd77l"; };
+  libxfce4ui    = callPackage ./core/libxfce4ui.nix         { v= "4.8.1"; h= "0mlrcr8rqmv047xrb2dbh7f4knsppb1anx2b05s015h6v8lyvjrr"; };
+  libxfce4util  = callPackage ./core/libxfce4util.nix       { v= "4.8.2"; h= "05n8586h2fwkibfld5fm4ygx1w66jnbqqb3li0ardjvm2n24k885"; };
+  libxfcegui4   = callPackage ./core/libxfcegui4.nix        { v= "4.8.1"; h= "0hr4h6a9p6w3qw1976p8v9c9pwhd9zhrjlbaph0p7nyz7j1836ih"; };
+  thunar        = callPackage ./core/thunar.nix             { v= "1.2.3"; h= "19mczys6xr683r68g3s2njrrmnk1p73zypvwrhajw859c6nsjsp6"; };
+  xfce4panel    = callPackage ./core/xfce4-panel.nix        { v= "4.8.6"; h= "00zdkg1jg4n2n109nxan8ji2m06r9mc4lnlrvb55xvj229m2dwb6"; };
+  xfce4session  = callPackage ./core/xfce4-session.nix      { v= "4.8.2"; h= "1l608kik98jxbjl73waf8515hzji06lr80qmky2qlnp0b6js5g1i"; };
+  xfce4settings = callPackage ./core/xfce4-settings.nix     { v= "4.8.3"; h= "0bmw0s6jp2ws4n0f3387zwsyv46b0w89m6r70yb7wrqy9r3wqy6q"; };
+  xfceutils     = callPackage ./core/xfce-utils.nix         { v= "4.8.3"; h= "09mr0amp2f632q9i3vykaa0x5nrfihfm9v5nxsx9vch8wvbp0l03"; };
+  xfconf        = callPackage ./core/xfconf.nix             { v= "4.8.1"; h= "1jwkb73xcgqfly449jwbn2afiyx50p150z60x19bicps75sp6q4q"; };
+  xfdesktop     = callPackage ./core/xfdesktop.nix          { v= "4.8.3"; h= "097lc9djmay0jyyl42jmvcfda75ndp265nzn0aa3hv795bsn1175"; };
+  xfwm4         = callPackage ./core/xfwm4.nix              { v= "4.8.3"; h= "0zi2g1d2jdgw5armlk9xjh4ykmydy266gdba86nmhy951gm8n3hb"; };
+
+  xfce4_appfinder = callPackage ./core/xfce4-appfinder.nix  { v= "4.8.0"; h= "0zy7i9x4qjchmyb8nfpb7m2ply5n2aq35p9wrhb8lpz4am1ihx7x"; };
+
+  #### APPLICATIONS
+
+  terminal      = null; # newer versions don't build with 4.8
+
+    # versions > 0.3* don't build with xfce-4.8.*
+  ristretto     = callPackage ./applications/ristretto.nix    { v= "0.3.7"; h= "19mzy159j4qhd7pd1b83gimxfdg3mwdab9lq9kk505d21r7iqc9b"; };
+
+  xfce4mixer    = callPackage ./applications/xfce4-mixer.nix  { v= "4.8.0"; h= "1aqgjxvck6hx26sk3n4n5avhv02vs523mfclcvjb3xnks3yli7wz"; };
+
+}; # xfce_self
+
+in xfce_self
+
diff --git a/pkgs/desktops/xfce/4_10.nix b/pkgs/desktops/xfce/4_10.nix
new file mode 100644
index 00000000000..3f846198e3f
--- /dev/null
+++ b/pkgs/desktops/xfce/4_10.nix
@@ -0,0 +1,35 @@
+{ pkgs, newScope }: let
+
+common = (import ./common.nix) { inherit pkgs newScope xfce_self; };
+callPackage = common.callPackage;
+
+xfce_self = common.xfce_common // rec { # the lines are very long but it seems better than the even-odd line approach
+
+  #### CORE
+
+  exo             = callPackage ./core/exo.nix              { v= "0.10.2"; h= "1kknxiz703q4snmry65ajm26jwjslbgpzdal6bd090m3z25q51dk"; };
+  libxfce4ui      = callPackage ./core/libxfce4ui.nix       { v= "4.10.0"; h= "1qm31s6568cz4c8rl9fsfq0xmf7pldxm0ki62gx1cpybihlgmfd2"; };
+  libxfce4util    = callPackage ./core/libxfce4util.nix     { v= "4.10.0"; h= "13k0wwbbqvdmbj4xmk4nxdlgvrdgr5y6r3dk380mzfw053hzwy89"; };
+  libxfcegui4     = callPackage ./core/libxfcegui4.nix      { v= "4.10.0"; h= "0cs5im0ib0cmr1lhr5765yliqjfyxvk4kwy8h1l8bn3mj6bzk0ib"; };
+  thunar          = callPackage ./core/thunar.nix           { v= "1.6.2";  h= "11dx38rvkfbp91pxrprymxhimsm90gvizp277x9s5rwnwcm1ggbx"; };
+  xfce4panel      = callPackage ./core/xfce4-panel.nix      { v= "4.10.0"; h= "1f8903nx6ivzircl8d8s9zna4vjgfy0qhjk5d2x19g9bmycgj89k"; };
+  xfce4session    = callPackage ./core/xfce4-session.nix    { v= "4.10.0"; h= "1kj65jkjhd0ysf0yxsf88wzpyv6n8i8qgd3gb502hf1x9jksk2mv"; };
+  xfce4settings   = callPackage ./core/xfce4-settings.nix   { v= "4.10.0"; h= "0zppq747z9lrxyv5zrrvpalq7hb3gfhy9p7qbldisgv7m6dz0hq8"; };
+  xfceutils       = null; # removed in 4.10
+  xfconf          = callPackage ./core/xfconf.nix           { v= "4.10.0"; h= "0xh520z0qh0ib0ijgnyrgii9h5d4pc53n6mx1chhyzfc86j1jlhp"; };
+  xfdesktop       = callPackage ./core/xfdesktop.nix        { v= "4.10.0"; h= "0yrddj1lgk3xn4w340y89z7x2isks72ia36pka08kk2x8gpfcyl9"; };
+  xfwm4           = callPackage ./core/xfwm4.nix            { v= "4.10.0"; h= "170zzs7adj47srsi2cl723w9pl8k8awd7w1bpzxby7hj92zmf8s9"; };
+
+  xfce4_appfinder = callPackage ./core/xfce4-appfinder.nix  { v= "4.9.4";  h= "12lgrbd1n50w9n8xkpai98s2aw8vmjasrgypc57sp0x0qafsqaxq"; };
+
+  #### APPLICATIONS
+
+  ristretto     = callPackage ./applications/ristretto.nix    { v= "0.6.3";  h= "0y9d8w1plwp4vmxs44y8k8x15i0k0xln89k6jndhv6lf57g1cs1b"; };
+  terminal      = xfce4terminal; # it has changed its name
+  xfce4mixer    = callPackage ./applications/xfce4-mixer.nix  { v= "4.10.0"; h= "1pnsd00583l7p5d80rxbh58brzy3jnccwikbbbm730a33c08kid8"; };
+  xfce4terminal = callPackage ./applications/terminal.nix     { v= "0.6.1";  h= "1j6lpkq952mrl5p24y88f89wn9g0namvywhma639xxsswlkn8d31"; };
+
+};
+
+in xfce_self
+
diff --git a/pkgs/desktops/xfce/common.nix b/pkgs/desktops/xfce/common.nix
new file mode 100644
index 00000000000..8be4ac09e14
--- /dev/null
+++ b/pkgs/desktops/xfce/common.nix
@@ -0,0 +1,72 @@
+{ pkgs, newScope, xfce_self }: rec {
+
+  callPackage = newScope (deps // xfce_self);
+
+  deps = rec { # xfce-global dependency overrides should be here
+    inherit (pkgs.gnome) libglade libwnck vte gtksourceview;
+    inherit (pkgs.perlPackages) URI;
+
+    # The useful bits from ‘gnome-disk-utility’.
+    libgdu = callPackage ./support/libgdu.nix { };
+
+    # Gvfs is required by Thunar for the trash feature and for volume
+    # mounting.  Should use the one from Gnome, but I don't want to mess
+    # with the Gnome packages (or pull in a zillion Gnome dependencies).
+    gvfs = callPackage ./support/gvfs.nix { };
+
+    # intelligent fetcher for Xfce
+    fetchXfce = rec {
+      generic = prepend : name : hash :
+        let lib = pkgs.lib;
+            p = builtins.parseDrvName name;
+            versions = lib.splitString "." p.version;
+            ver_maj = lib.concatStrings (lib.intersperse "." (lib.take 2 versions));
+            name_low = lib.toLower p.name;
+        in pkgs.fetchurl {
+          url = "mirror://xfce/src/${prepend}/${name_low}/${ver_maj}/${name}.tar.bz2";
+          sha256 = hash;
+        };
+      core = generic "xfce";
+      app = generic "apps";
+      art = generic "art";
+    };
+  };
+
+  xfce_common = rec {
+
+    inherit (deps) gvfs; # used by NixOS
+
+    #### CORE
+
+    garcon  = callPackage ./core/garcon.nix { v= "0.2.0";   h= "0v7pkvxcayi86z4f173z5l7w270f3g369sa88z59w0y0p7ns7ph2"; };
+
+    # not used anymore TODO: really? Update to 2.99.2?
+    gtk_xfce_engine = callPackage ./core/gtk-xfce-engine.nix { };
+
+    # ToDo: segfaults after some work
+    tumbler = callPackage ./core/tumbler.nix  { v= "0.1.27"; h= "0s9qj99b81asmlqa823nzykq8g6p9azcp2niak67y9bp52wv6q2c"; };
+
+    xfce4_power_manager = callPackage ./core/xfce4-power-manager.nix  { v= "1.0.10"; h= "1w120k1sl4s459ijaxkqkba6g1p2sqrf9paljv05wj0wz12bpr40"; };
+
+
+    #### APPLICATIONS
+    #TODO: correct links; more stuff
+
+    xfce4notifyd      = callPackage ./applications/xfce4-notifyd.nix      { v= "0.2.2"; h= "0s4ilc36sl5k5mg5727rmqims1l3dy5pwg6dk93wyjqnqbgnhvmn"; };
+    gigolo            = callPackage ./applications/gigolo.nix             { v= "0.4.1"; h= "1y8p9bbv1a4qgbxl4vn6zbag3gb7gl8qj75cmhgrrw9zrvqbbww2"; };
+    xfce4taskmanager  = callPackage ./applications/xfce4-taskmanager.nix  { v= "1.0.0"; h= "1vm9gw7j4ngjlpdhnwdf7ifx6xrrn21011almx2vwidhk2f9zvy0"; };
+    mousepad          = callPackage ./applications/mousepad.nix           { v= "0.3.0"; h= "0v84zwhjv2xynvisn5vmp7dbxfj4l4258m82ks7hn3adk437bwhh"; };
+    thunar_volman     = callPackage ./core/thunar-volman.nix              { };
+
+    #### ART
+
+    xfce4icontheme  = callPackage ./art/xfce4-icon-theme.nix  { v= "4.4.3"; h= "1yk6rx3zr9grm4jwpjvqdkl13pisy7qn1wm5cqzmd2kbsn96cy6l"; };
+
+    #### PANEL PLUGINS
+
+    xfce4_systemload_plugin = callPackage ./panel-plugins/xfce4-systemload-plugin.nix { };
+    xfce4_cpufreq_plugin    = callPackage ./panel-plugins/xfce4-cpufreq-plugin.nix    { };
+
+  };
+}
+
diff --git a/pkgs/desktops/xfce/core/xfce4-dev-tools.nix b/pkgs/desktops/xfce/core/xfce4-dev-tools.nix
new file mode 100644
index 00000000000..e56eb3f0a71
--- /dev/null
+++ b/pkgs/desktops/xfce/core/xfce4-dev-tools.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, glib, autoconf, automake, libtool, intltool }:
+
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-dev-tools";
+  ver_maj = "4.10";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1y1byfjciqhxqfxbjfp22bn5lxk3a01ng7zfjha8h5mzzfxlk5pp";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  buildInputs = [ pkgconfig glib ];
+
+  # not needed to build it but to use it
+  propagatedBuildInputs = [ autoconf automake libtool intltool ];
+
+  meta = {
+    homepage = http://foo-projects.org/~benny/projects/xfce4-dev-tools/;
+    description = "Tools and M4 macros for Xfce4 developers";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce/core/xfce4-session-systemd.patch b/pkgs/desktops/xfce/core/xfce4-session-systemd.patch
new file mode 100644
index 00000000000..7780491a8ed
--- /dev/null
+++ b/pkgs/desktops/xfce/core/xfce4-session-systemd.patch
@@ -0,0 +1,470 @@
+From ae28aef315a7a6b90f1649ce6d1f30b842791cbf Mon Sep 17 00:00:00 2001
+From: Nick Schermer <nick@xfce.org>
+Date: Sun, 04 Nov 2012 20:23:36 +0000
+Subject: Add shutdown/reboot functionality for systemd (bug #8729).
+
+Based on patch by Christian Hesse and Evangelos Foutras.
+---
+diff --git a/configure.in.in b/configure.in.in
+index 9aa4f8f..134d0f7 100644
+--- a/configure.in
++++ b/configure.in
+@@ -96,6 +96,10 @@ XDT_CHECK_PACKAGE([DBUS], [dbus-1], [1.1.0])
+ XDT_CHECK_PACKAGE([DBUS_GLIB], [dbus-glib-1], [0.84])
+ XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.9.0])
+ 
++dnl Check for polkit / systemd integration
++XDT_CHECK_OPTIONAL_PACKAGE([SYSTEMD], [polkit-gobject-1], [0.100],
++                           [systemd], [Systemd support (through polit)])
++
+ dnl Check for debugging support
+ XDT_FEATURE_DEBUG([xfsm_debug_default])
+ 
+diff --git a/xfce4-session/Makefile.am b/xfce4-session/Makefile.am
+index c015154..f748b2b 100644
+--- a/xfce4-session/Makefile.am
++++ b/xfce4-session/Makefile.am
+@@ -38,8 +38,6 @@ xfce4_session_SOURCES =							\
+ 	xfsm-compat-gnome.h						\
+ 	xfsm-compat-kde.c						\
+ 	xfsm-compat-kde.h						\
+-	xfsm-consolekit.c						\
+-	xfsm-consolekit.h						\
+ 	xfsm-dns.c							\
+ 	xfsm-dns.h							\
+ 	xfsm-error.c							\
+@@ -65,6 +63,16 @@ xfce4_session_SOURCES =							\
+ 	xfsm-upower.c							\
+ 	xfsm-upower.h
+ 
++if HAVE_SYSTEMD
++xfce4_session_SOURCES +=						\
++	xfsm-systemd.c							\
++	xfsm-systemd.h
++else
++xfce4_session_SOURCES +=						\
++	xfsm-consolekit.c						\
++	xfsm-consolekit.h
++endif
++
+ xfce4_session_CFLAGS =							\
+ 	$(LIBSM_CFLAGS)							\
+ 	$(LIBX11_CFLAGS)						\
+@@ -72,6 +80,7 @@ xfce4_session_CFLAGS =							\
+ 	$(DBUS_CFLAGS)							\
+ 	$(DBUS_GLIB_CFLAGS)						\
+ 	$(LIBWNCK_CFLAGS)						\
++	$(SYSTEMD_CFLAGS)						\
+ 	$(XFCONF_CFLAGS)						\
+ 	$(GMODULE_CFLAGS)						\
+ 	$(PLATFORM_CFLAGS)
+@@ -91,6 +100,7 @@ xfce4_session_LDADD =							\
+ 	$(DBUS_LIBS)							\
+ 	$(DBUS_GLIB_LIBS)						\
+ 	$(LIBWNCK_LIBS)							\
++	$(SYSTEMD_LIBS)							\
+ 	$(XFCONF_LIBS)							\
+ 	-lm
+ 
+diff --git a/xfce4-session/xfsm-shutdown.c b/xfce4-session/xfsm-shutdown.c
+index d8757a8..4c483a7 100644
+--- a/xfce4-session/xfsm-shutdown.c
++++ b/xfce4-session/xfsm-shutdown.c
+@@ -66,10 +66,13 @@
+ #include <xfce4-session/xfsm-fadeout.h>
+ #include <xfce4-session/xfsm-global.h>
+ #include <xfce4-session/xfsm-legacy.h>
+-#include <xfce4-session/xfsm-consolekit.h>
+ #include <xfce4-session/xfsm-upower.h>
+ 
+-
++#ifdef HAVE_SYSTEMD
++#include <xfce4-session/xfsm-systemd.h>
++#else
++#include <xfce4-session/xfsm-consolekit.h>
++#endif
+ 
+ static void xfsm_shutdown_finalize  (GObject      *object);
+ static void xfsm_shutdown_sudo_free (XfsmShutdown *shutdown);
+@@ -93,7 +96,11 @@ struct _XfsmShutdown
+ {
+   GObject __parent__;
+ 
++#ifdef HAVE_SYSTEMD
++  XfsmSystemd    *systemd;
++#else
+   XfsmConsolekit *consolekit;
++#endif
+   XfsmUPower     *upower;
+ 
+   /* kiosk settings */
+@@ -131,7 +138,11 @@ xfsm_shutdown_init (XfsmShutdown *shutdown)
+ {
+   XfceKiosk *kiosk;
+ 
++#ifdef HAVE_SYSTEMD
++  shutdown->systemd = xfsm_systemd_get ();
++#else
+   shutdown->consolekit = xfsm_consolekit_get ();
++#endif
+   shutdown->upower = xfsm_upower_get ();
+   shutdown->helper_state = SUDO_NOT_INITIAZED;
+   shutdown->helper_require_password = FALSE;
+@@ -150,7 +161,11 @@ xfsm_shutdown_finalize (GObject *object)
+ {
+   XfsmShutdown *shutdown = XFSM_SHUTDOWN (object);
+ 
++#ifdef HAVE_SYSTEMD
++  g_object_unref (G_OBJECT (shutdown->systemd));
++#else
+   g_object_unref (G_OBJECT (shutdown->consolekit));
++#endif
+   g_object_unref (G_OBJECT (shutdown->upower));
+ 
+   /* close down helper */
+@@ -641,7 +656,11 @@ xfsm_shutdown_try_restart (XfsmShutdown  *shutdown,
+   if (shutdown->helper_state == SUDO_AVAILABLE)
+     return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_RESTART, error);
+   else
++#ifdef HAVE_SYSTEMD
++    return xfsm_systemd_try_restart (shutdown->systemd, error);
++#else
+     return xfsm_consolekit_try_restart (shutdown->consolekit, error);
++#endif
+ }
+ 
+ 
+@@ -658,7 +677,11 @@ xfsm_shutdown_try_shutdown (XfsmShutdown  *shutdown,
+   if (shutdown->helper_state == SUDO_AVAILABLE)
+     return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_SHUTDOWN, error);
+   else
++#ifdef HAVE_SYSTEMD
++    return xfsm_systemd_try_shutdown (shutdown->systemd, error);
++#else
+     return xfsm_consolekit_try_shutdown (shutdown->consolekit, error);
++#endif
+ }
+ 
+ 
+@@ -698,7 +721,11 @@ xfsm_shutdown_can_restart (XfsmShutdown  *shutdown,
+       return TRUE;
+     }
+ 
++#ifdef HAVE_SYSTEMD
++  if (xfsm_systemd_can_restart (shutdown->systemd, can_restart, error))
++#else
+   if (xfsm_consolekit_can_restart (shutdown->consolekit, can_restart, error))
++#endif
+     return TRUE;
+ 
+   if (xfsm_shutdown_sudo_init (shutdown, error))
+@@ -725,7 +752,11 @@ xfsm_shutdown_can_shutdown (XfsmShutdown  *shutdown,
+       return TRUE;
+     }
+ 
++#ifdef HAVE_SYSTEMD
++  if (xfsm_systemd_can_shutdown (shutdown->systemd, can_shutdown, error))
++#else
+   if (xfsm_consolekit_can_shutdown (shutdown->consolekit, can_shutdown, error))
++#endif
+     return TRUE;
+ 
+   if (xfsm_shutdown_sudo_init (shutdown, error))
+diff --git a/xfce4-session/xfsm-systemd.c b/xfce4-session/xfsm-systemd.c
+new file mode 100644
+index 0000000..7bdd39d
+--- /dev/null
++++ b/xfce4-session/xfsm-systemd.c
+@@ -0,0 +1,229 @@
++/*-
++ * Copyright (C) 2012 Christian Hesse
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
++ * MA 02110-1301 USA.
++ */
++
++#include <config.h>
++
++#include <gio/gio.h>
++#include <polkit/polkit.h>
++#include <dbus/dbus-glib.h>
++#include <dbus/dbus-glib-lowlevel.h>
++
++#include <xfce4-session/xfsm-systemd.h>
++
++
++
++#define SYSTEMD_DBUS_NAME               "org.freedesktop.login1"
++#define SYSTEMD_DBUS_PATH               "/org/freedesktop/login1"
++#define SYSTEMD_DBUS_INTERFACE          "org.freedesktop.login1.Manager"
++#define SYSTEMD_REBOOT_ACTION           "Reboot"
++#define SYSTEMD_POWEROFF_ACTION         "PowerOff"
++#define SYSTEMD_REBOOT_TEST             "org.freedesktop.login1.reboot"
++#define SYSTEMD_POWEROFF_TEST           "org.freedesktop.login1.power-off"
++
++
++
++static void     xfsm_systemd_finalize     (GObject         *object);
++
++
++
++struct _XfsmSystemdClass
++{
++  GObjectClass __parent__;
++};
++
++struct _XfsmSystemd
++{
++  GObject __parent__;
++
++  PolkitAuthority *authority;
++  PolkitSubject   *subject;
++};
++
++
++
++G_DEFINE_TYPE (XfsmSystemd, xfsm_systemd, G_TYPE_OBJECT)
++
++
++
++static void
++xfsm_systemd_class_init (XfsmSystemdClass *klass)
++{
++  GObjectClass *gobject_class;
++
++  gobject_class = G_OBJECT_CLASS (klass);
++  gobject_class->finalize = xfsm_systemd_finalize;
++}
++
++
++
++static void
++xfsm_systemd_init (XfsmSystemd *systemd)
++{
++  systemd->authority = polkit_authority_get_sync (NULL, NULL);
++  systemd->subject = polkit_unix_process_new (getpid());
++}
++
++
++
++static void
++xfsm_systemd_finalize (GObject *object)
++{
++  XfsmSystemd *systemd = XFSM_SYSTEMD (object);
++
++  g_object_unref (G_OBJECT (systemd->authority));
++  g_object_unref (G_OBJECT (systemd->subject));
++
++  (*G_OBJECT_CLASS (xfsm_systemd_parent_class)->finalize) (object);
++}
++
++
++static gboolean
++xfsm_systemd_can_method (XfsmSystemd  *systemd,
++                         gboolean     *can_method,
++                         const gchar  *method,
++                         GError      **error)
++{
++  PolkitAuthorizationResult *res;
++  GError                    *local_error = NULL;
++
++  *can_method = FALSE;
++
++  res = polkit_authority_check_authorization_sync (systemd->authority,
++                                                   systemd->subject,
++                                                   method,
++                                                   NULL,
++                                                   POLKIT_CHECK_AUTHORIZATION_FLAGS_NONE,
++                                                   NULL,
++                                                   &local_error);
++
++  if (res == NULL)
++    {
++      g_propagate_error (error, local_error);
++      return FALSE;
++    }
++
++  *can_method = polkit_authorization_result_get_is_authorized (res)
++                || polkit_authorization_result_get_is_challenge (res);
++
++  g_object_unref (G_OBJECT (res));
++
++  return TRUE;
++}
++
++
++
++static gboolean
++xfsm_systemd_try_method (XfsmSystemd  *systemd,
++                         const gchar  *method,
++                         GError      **error)
++{
++  GDBusConnection *bus;
++  GError          *local_error = NULL;
++
++  bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, error);
++  if (G_UNLIKELY (bus == NULL))
++    return FALSE;
++
++  g_dbus_connection_call_sync (bus,
++                               SYSTEMD_DBUS_NAME,
++                               SYSTEMD_DBUS_PATH,
++                               SYSTEMD_DBUS_INTERFACE,
++                               method,
++                               g_variant_new ("(b)", TRUE),
++                               NULL, 0, G_MAXINT, NULL,
++                               &local_error);
++
++  g_object_unref (G_OBJECT (bus));
++
++  if (local_error != NULL)
++    {
++      g_propagate_error (error, local_error);
++      return FALSE;
++    }
++
++  return TRUE;
++}
++
++
++
++XfsmSystemd *
++xfsm_systemd_get (void)
++{
++  static XfsmSystemd *object = NULL;
++
++  if (G_LIKELY (object != NULL))
++    {
++      g_object_ref (G_OBJECT (object));
++    }
++  else
++    {
++      object = g_object_new (XFSM_TYPE_SYSTEMD, NULL);
++      g_object_add_weak_pointer (G_OBJECT (object), (gpointer) &object);
++    }
++
++  return object;
++}
++
++
++
++gboolean
++xfsm_systemd_try_restart (XfsmSystemd  *systemd,
++                          GError      **error)
++{
++  return xfsm_systemd_try_method (systemd,
++                                  SYSTEMD_REBOOT_ACTION,
++                                  error);
++}
++
++
++
++gboolean
++xfsm_systemd_try_shutdown (XfsmSystemd  *systemd,
++                           GError      **error)
++{
++  return xfsm_systemd_try_method (systemd,
++                                  SYSTEMD_POWEROFF_ACTION,
++                                  error);
++}
++
++
++
++gboolean
++xfsm_systemd_can_restart (XfsmSystemd  *systemd,
++                          gboolean     *can_restart,
++                          GError      **error)
++{
++  return xfsm_systemd_can_method (systemd,
++                                  can_restart,
++                                  SYSTEMD_REBOOT_TEST,
++                                  error);
++}
++
++
++
++gboolean
++xfsm_systemd_can_shutdown (XfsmSystemd  *systemd,
++                           gboolean     *can_shutdown,
++                           GError      **error)
++{
++  return xfsm_systemd_can_method (systemd,
++                                  can_shutdown,
++                                  SYSTEMD_POWEROFF_TEST,
++                                  error);
++}
+diff --git a/xfce4-session/xfsm-systemd.h b/xfce4-session/xfsm-systemd.h
+new file mode 100644
+index 0000000..8223622
+--- /dev/null
++++ b/xfce4-session/xfsm-systemd.h
+@@ -0,0 +1,55 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2012 Christian Hesse
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ */
++
++#ifndef __XFSM_SYSTEMD_H__
++#define __XFSM_SYSTEMD_H__
++
++typedef struct _XfsmSystemdClass XfsmSystemdClass;
++typedef struct _XfsmSystemd      XfsmSystemd;
++
++#define XFSM_TYPE_SYSTEMD            (xfsm_systemd_get_type ())
++#define XFSM_SYSTEMD(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFSM_TYPE_SYSTEMD, XfsmSystemd))
++#define XFSM_SYSTEMD_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), XFSM_TYPE_SYSTEMD, XfsmSystemdClass))
++#define XFSM_IS_SYSTEMD(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFSM_TYPE_SYSTEMD))
++#define XFSM_IS_SYSTEMD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFSM_TYPE_SYSTEMD))
++#define XFSM_SYSTEMD_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), XFSM_TYPE_SYSTEMD, XfsmSystemdClass))
++
++GType           xfsm_systemd_get_type     (void) G_GNUC_CONST;
++
++XfsmSystemd *xfsm_systemd_get          (void);
++
++gboolean     xfsm_systemd_try_restart  (XfsmSystemd  *systemd,
++                                        GError      **error);
++
++gboolean     xfsm_systemd_try_shutdown (XfsmSystemd  *systemd,
++                                        GError      **error);
++
++gboolean     xfsm_systemd_can_restart  (XfsmSystemd  *systemd,
++                                        gboolean     *can_restart,
++                                        GError      **error);
++
++gboolean     xfsm_systemd_can_shutdown (XfsmSystemd  *systemd,
++                                        gboolean     *can_shutdown,
++                                        GError      **error);
++
++G_END_DECLS
++
++#endif  /* __XFSM_SYSTEMD_H__ */
+--
+cgit v0.9.1
diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix
index b63a101b84f..e5daaca9d52 100644
--- a/pkgs/desktops/xfce/default.nix
+++ b/pkgs/desktops/xfce/default.nix
@@ -35,7 +35,7 @@ xfce_self = rec { # the lines are very long but it seems better than the even-od
   xfwm4           = callPackage ./core/xfwm4.nix { };
 
   xfce4_appfinder = callPackage ./core/xfce4-appfinder.nix { };
-
+  xfce4_dev_tools = callPackage ./core/xfce4-dev-tools.nix { }; # only if autotools are needed
 
   #### APPLICATIONS         from "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2"
 
diff --git a/pkgs/development/compilers/ghc/6.4.2-binary.nix b/pkgs/development/compilers/ghc/6.4.2-binary.nix
index 8e4e6c58a3f..b42602829ac 100644
--- a/pkgs/development/compilers/ghc/6.4.2-binary.nix
+++ b/pkgs/development/compilers/ghc/6.4.2-binary.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
   src =
     if stdenv.system == "i686-linux" then
       fetchurl {
-        url = http://nixos.org/tarballs/ghc-6.4.2-i386-unknown-linux.tar.bz2;
+        url = http://tarballs.nixos.org/ghc-6.4.2-i386-unknown-linux.tar.bz2;
         md5 = "092fe2e25dab22b926babe97cc77db1f";
       }
     else if stdenv.system == "x86_64-linux" then
diff --git a/pkgs/development/compilers/julia/default.nix b/pkgs/development/compilers/julia/default.nix
index 7fa12d495aa..3e45fc6d5e3 100644
--- a/pkgs/development/compilers/julia/default.nix
+++ b/pkgs/development/compilers/julia/default.nix
@@ -1,21 +1,21 @@
 { stdenv, fetchgit, gfortran, perl, m4, llvm, gmp, pcre, zlib
  , readline, fftwSinglePrec, fftw, libunwind, suitesparse, glpk, fetchurl
  , ncurses, libunistring, lighttpd, patchelf, openblas, liblapack
- , tcl, tk, xproto, libX11, git
+ , tcl, tk, xproto, libX11, git, mpfr
  } :
 let
   realGcc = stdenv.gcc.gcc;
 in
 stdenv.mkDerivation rec {
   pname = "julia";
-  date = "20130205";
+  date = "20130611";
   name = "${pname}-git-${date}";
 
   grisu_ver = "1.1.1";
   dsfmt_ver = "2.2";
   openblas_ver = "v0.2.2";
   lapack_ver = "3.4.1";
-  arpack_ver = "3.1.2";
+  arpack_ver = "3.1.3";
   clp_ver = "1.14.5";
   lighttpd_ver = "1.4.29";
   patchelf_ver = "0.6";
@@ -36,9 +36,9 @@ stdenv.mkDerivation rec {
     sha256 = "19ffec70f9678f5c159feadc036ca47720681b782910fbaa95aa3867e7e86d8e";
   };
   arpack_src = fetchurl {
-    url = "http://forge.scilab.org/index.php/p/arpack-ng/downloads/497/get/";
-    name = "arpack-ng_${arpack_ver}.tar.gz";
-    sha256 = "1wk06bdjgap4hshx0lswzi7vxy2lrdx353y1k7yvm97mpsjvsf4k";
+    url = "http://forge.scilab.org/index.php/p/arpack-ng/downloads/607/get/";
+    name = "arpack-ng-${arpack_ver}.tar.gz";
+    sha256 = "039w7j3dr1xy35a3hp92zg2g92gmjq6xsv0g4awlb4cffy09nr2d";
   };
   lapack_src = fetchurl {
     url = "http://www.netlib.org/lapack/lapack-${lapack_ver}.tgz";
@@ -65,17 +65,17 @@ stdenv.mkDerivation rec {
 
   src = fetchgit {
     url = "git://github.com/JuliaLang/julia.git";
-    rev = "efc696bf74eec7605b4da19f6f1605ba99959ed3";
-    sha256 = "19if7aj3mrp84dg9g2d3zbhasrq0nz28djl9a01m0y4y9bfymp7s";
+    rev = "60cc4e44bf415dcda90f2bbe22300f842fe44098";
+    sha256 = "018s0zyvdkxjldbvcdv40q3v2gcjznyyql5pv3zhhy1iq11jddfz";
   };
 
   buildInputs = [ gfortran perl m4 gmp pcre llvm readline zlib
     fftw fftwSinglePrec libunwind suitesparse glpk ncurses libunistring patchelf
-    openblas liblapack tcl tk xproto libX11 git
+    openblas liblapack tcl tk xproto libX11 git mpfr
     ];
 
   configurePhase = ''
-    for i in GMP LLVM PCRE LAPACK OPENBLAS BLAS READLINE FFTW LIBUNWIND SUITESPARSE GLPK LIGHTTPD ZLIB; 
+    for i in GMP LLVM PCRE LAPACK OPENBLAS BLAS READLINE FFTW LIBUNWIND SUITESPARSE GLPK LIGHTTPD ZLIB MPFR; 
     do 
       makeFlags="$makeFlags USE_SYSTEM_$i=1 "
     done
@@ -90,7 +90,7 @@ stdenv.mkDerivation rec {
     copy_kill_hash "${dsfmt_src}" deps/random
 
     ${if realGcc ==null then "" else 
-    ''export NIX_LDFLAGS="$NIX_LDFLAGS -L${realGcc}/lib -L${realGcc}/lib64 -lpcre -llapack -lm -lfftw3f -lfftw3 -lglpk -lunistring -lz "''}
+    ''export NIX_LDFLAGS="$NIX_LDFLAGS -L${realGcc}/lib -L${realGcc}/lib64 -lpcre -llapack -lm -lfftw3f -lfftw3 -lglpk -lunistring -lz -lgmp -lmpfr"''}
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fPIC "
 
     export LDFLAGS="-L${suitesparse}/lib -L$out/lib/julia -Wl,-rpath,$out/lib/julia"
@@ -110,6 +110,21 @@ stdenv.mkDerivation rec {
 
   preBuild = ''
     mkdir -p usr/lib
+    
+    echo "$out"
+    mkdir -p "$out/lib"
+    (
+    cd "$(mktemp -d)"
+    for i in "${suitesparse}"/lib/lib*.a; do
+      ar -x $i
+    done
+    gcc *.o --shared -o "$out/lib/libsuitesparse.so"
+    )
+    cp "$out/lib/libsuitesparse.so" usr/lib
+    for i in umfpack cholmod amd camd colamd spqr; do
+      ln -s libsuitesparse.so "$out"/lib/lib$i.so;
+      ln -s libsuitesparse.so "usr"/lib/lib$i.so;
+    done
   '';
 
   preInstall = ''
diff --git a/pkgs/development/compilers/llvm/default.nix b/pkgs/development/compilers/llvm/default.nix
index 4b5bbdc5258..59e2bdc5509 100644
--- a/pkgs/development/compilers/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, groff, cmake, python }:
+{ stdenv, fetchurl, perl, groff, cmake, python, libffi }:
 
 let version = "3.2"; in
 
@@ -10,11 +10,21 @@ stdenv.mkDerivation {
     sha256 = "0hv30v5l4fkgyijs56sr1pbrlzgd674pg143x7az2h37sb290l0j";
   };
 
-  buildInputs = [ perl groff cmake python ];
+  patches = [ ./set_soname.patch ]; # http://llvm.org/bugs/show_bug.cgi?id=12334
+  patchFlags = "-p0";
 
-  cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ];
+  preConfigure = "patchShebangs .";
+
+  propagatedBuildInputs = [ libffi ];
+  buildInputs = [ perl groff cmake python ]; # ToDo: polly, libc++; enable cxx11?
+
+  # created binaries need to be run before installation... I coudn't find a better way
+  preBuild = ''export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:"`pwd`/lib'';
+
+  cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" "-DBUILD_SHARED_LIBS=ON" ];
 
   enableParallelBuilding = true;
+  #doCheck = true; # tests are broken, don't know why
 
   meta = {
     homepage = http://llvm.org/;
diff --git a/pkgs/development/compilers/llvm/set_soname.patch b/pkgs/development/compilers/llvm/set_soname.patch
new file mode 100644
index 00000000000..69ba74dddad
--- /dev/null
+++ b/pkgs/development/compilers/llvm/set_soname.patch
@@ -0,0 +1,12 @@
+https://bugs.gentoo.org/show_bug.cgi?id=409267
+http://llvm.org/bugs/show_bug.cgi?id=12334
+--- tools/llvm-shlib/Makefile.orig	2012-03-26 18:14:13.071797115 +0200
++++ tools/llvm-shlib/Makefile	2012-03-26 17:31:12.491196254 +0200
+@@ -67,6 +67,7 @@
+     # Include everything from the .a's into the shared library.
+     LLVMLibsOptions := -Wl,--whole-archive $(LLVMLibsOptions) \
+                        -Wl,--no-whole-archive
++    LLVMLibsOptions += -Wl,--soname,lib$(LIBRARYNAME)$(SHLIBEXT)
+ endif
+ 
+ ifeq ($(HOST_OS),Linux)
diff --git a/pkgs/development/compilers/mono/default.nix b/pkgs/development/compilers/mono/default.nix
index 47b13700b8a..88bef618f74 100644
--- a/pkgs/development/compilers/mono/default.nix
+++ b/pkgs/development/compilers/mono/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, bison, pkgconfig, glib, gettext, perl, libgdiplus}:
+{stdenv, fetchurl, bison, pkgconfig, glib, gettext, perl, libgdiplus, libX11}:
 
 stdenv.mkDerivation rec {
   name = "mono-2.11.4";
@@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
     sha256 = "0wv8pnj02mq012sihx2scx0avyw51b5wb976wn7x86zda0vfcsnr";
   };
 
-  buildInputs = [bison pkgconfig glib gettext perl libgdiplus];
+  buildInputs = [bison pkgconfig glib gettext perl libgdiplus libX11];
   propagatedBuildInputs = [glib];
 
   NIX_LDFLAGS = "-lgcc_s" ;
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   # In fact I think this line does not help at all to what I
   # wanted to achieve: have mono to find libgdiplus automatically
-  configureFlags = "--with-libgdiplus=${libgdiplus}/lib/libgdiplus.so";
+  configureFlags = "--x-includes=${libX11}/include --x-libraries=${libX11}/lib --with-libgdiplus=${libgdiplus}/lib/libgdiplus.so";
 
   # Attempt to fix this error when running "mcs --version":
   # The file /nix/store/xxx-mono-2.4.2.1/lib/mscorlib.dll is an invalid CIL image
@@ -31,6 +31,17 @@ stdenv.mkDerivation rec {
     patchShebangs ./
   ";
 
+  #Fix mono DLLMap so it can find libX11 and gdiplus to run winforms apps
+  #Other items in the DLLMap may need to be pointed to their store locations, I don't think this is exhaustive
+  #http://www.mono-project.com/Config_DllMap
+  postBuild = ''
+    find . -name 'config' -type f | while read i; do
+        sed -i "s@libMonoPosixHelper.so@$out/lib/libMonoPosixHelper.so@g" $i
+        sed -i "s@libX11.so.6@${libX11}/lib/libX11.so.6@g" $i
+        sed -i '2 i\<dllmap dll="gdiplus.dll" target="${libgdiplus}/lib/libgdiplus.so" os="!windows"/>' $i
+    done
+  '';
+
   meta = {
     homepage = http://mono-project.com/;
     description = "Cross platform, open source .NET development framework";
diff --git a/pkgs/development/compilers/ocaml/3.08.0.nix b/pkgs/development/compilers/ocaml/3.08.0.nix
index 4f7e9469bbf..f4640b36e67 100644
--- a/pkgs/development/compilers/ocaml/3.08.0.nix
+++ b/pkgs/development/compilers/ocaml/3.08.0.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation {
   name = "ocaml-3.08.0";
   builder = ./builder.sh;
   src = fetchurl {
-    url = http://nixos.org/tarballs/ocaml-3.08.0.tar.gz;
+    url = http://tarballs.nixos.org/ocaml-3.08.0.tar.gz;
     md5 = "c6ef478362295c150101cdd2efcd38e0";
   };
   configureScript = ./configure-3.08.0;
diff --git a/pkgs/development/compilers/openjdk/bootstrap.nix b/pkgs/development/compilers/openjdk/bootstrap.nix
index 2ac2eed117c..01ed43069b6 100644
--- a/pkgs/development/compilers/openjdk/bootstrap.nix
+++ b/pkgs/development/compilers/openjdk/bootstrap.nix
@@ -4,12 +4,12 @@ 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;
+      url = http://tarballs.nixos.org/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;
+      url = http://tarballs.nixos.org/openjdk-bootstrap-i686-linux-2012-08-24.tar.xz;
       sha256 = "184wq212bycwbbq4ix8cc6jwjxkrqw9b01zb86q95kqpa8zy5206";
     }
   else throw "No bootstrap for system";
diff --git a/pkgs/development/compilers/qcmm/default.nix b/pkgs/development/compilers/qcmm/default.nix
index b7f11866687..a221ae29f04 100644
--- a/pkgs/development/compilers/qcmm/default.nix
+++ b/pkgs/development/compilers/qcmm/default.nix
@@ -2,7 +2,7 @@
 stdenv.mkDerivation {
   name = "qcmm-2006-01-31";
   src = fetchurl {
-    url = http://nixos.org/tarballs/qc--20060131.tar.gz;
+    url = http://tarballs.nixos.org/qc--20060131.tar.gz;
     md5 = "9097830775bcf22c9bad54f389f5db23";
   };
   buildInputs = [ mk ocaml noweb groff ];
diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix
index 13a0081a257..9af30230757 100644
--- a/pkgs/development/compilers/vala/default.nix
+++ b/pkgs/development/compilers/vala/default.nix
@@ -1,18 +1,25 @@
-{ stdenv, fetchurl, yacc, flex, pkgconfig, glib, libintlOrEmpty }:
+{ stdenv, fetchurl, yacc, flex, pkgconfig, glib, dbus, dbus_tools
+, libiconvOrEmpty, libintlOrEmpty }:
 
 stdenv.mkDerivation rec {
-
-  version = "0.17.2";
-  name = "vala-${version}";
+  p_name  = "vala";
+  ver_maj = "0.19";
+  ver_min = "0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/vala/0.17/${name}.tar.xz";
-    sha256 = "09i2s0dwmrk147ind2dx7nq845g12fp6fsjqrphhrr0dbi0zzgh3";
+    url = "mirror://gnome/sources/${p_name}/${ver_maj}/${name}.tar.xz";
+    sha256 = "1vn524hcnaggz8zx49mvf7p4z1mscrlj2syg7jjhph8nak5wi0bp";
   };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  postPatch = "patchShebangs .";
 
   nativeBuildInputs = [ yacc flex pkgconfig ];
 
-  buildInputs = [ glib ] ++ libintlOrEmpty;
+  buildInputs = [ glib ] ++ libiconvOrEmpty ++ libintlOrEmpty
+    ++ stdenv.lib.optional doCheck [ dbus dbus_tools ];
+
+  doCheck = false; # problems when launching dbus tests
 
   meta = {
     description = "Compiler for the GObject type system";
diff --git a/pkgs/development/interpreters/guile/default.nix b/pkgs/development/interpreters/guile/default.nix
index 66b5b79083a..6e4051ff46e 100644
--- a/pkgs/development/interpreters/guile/default.nix
+++ b/pkgs/development/interpreters/guile/default.nix
@@ -34,7 +34,9 @@
 
   # Explicitly link against libgcc_s, to work around the infamous
   # "libgcc_s.so.1 must be installed for pthread_cancel to work".
-  LDFLAGS = "-lgcc_s";
+
+  # don't have "libgcc_s.so.1" on darwin
+  LDFLAGS = stdenv.lib.optionalString (!stdenv.isDarwin) "-lgcc_s";
 
   postInstall = ''
     wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
@@ -48,7 +50,8 @@
             s|-lltdl|-L${libtool}/lib -lltdl|g'
   '';
 
-  doCheck = true;
+  # make check doesn't work on darwin
+  doCheck = !stdenv.isDarwin;
 
   setupHook = ./setup-hook-2.0.sh;
 
@@ -63,6 +66,10 @@
 
   meta = {
     description = "GNU Guile 2.0, an embeddable Scheme implementation";
+    homepage    = http://www.gnu.org/software/guile/;
+    license     = stdenv.lib.licenses.lgpl3Plus;
+    maintainers = with stdenv.lib.maintainers; [ ludo lovek323 ];
+    platforms   = stdenv.lib.platforms.all;
 
     longDescription = ''
       GNU Guile is an implementation of the Scheme programming language, with
@@ -73,13 +80,6 @@
       linking, a foreign function call interface, and powerful string
       processing.
     '';
-
-    homepage = http://www.gnu.org/software/guile/;
-    license = "LGPLv3+";
-
-    maintainers = [ stdenv.lib.maintainers.ludo ];
-
-    platforms = stdenv.lib.platforms.all;
   };
 }
 
diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix
index 73f13c11a7d..428d97eaf79 100644
--- a/pkgs/development/interpreters/octave/default.nix
+++ b/pkgs/development/interpreters/octave/default.nix
@@ -2,8 +2,11 @@
 libX11, graphicsmagick, pcre, liblapack, texLive, pkgconfig, mesa, fltk,
 fftw, fftwSinglePrec, zlib, curl, qrupdate }:
 
+let
+  version = "3.6.4";
+in
 stdenv.mkDerivation rec {
-  name = "octave-3.6.4";
+  name = "octave-${version}";
   src = fetchurl {
     url = "mirror://gnu/octave/${name}.tar.bz2";
     sha256 = "0qn9s7jrjmrn6w3rvp8d7vfnymyv0spnxzrp9l7p8p8zb7wms67s";
@@ -27,6 +30,11 @@ stdenv.mkDerivation rec {
     cp test/fntests.log $out/share/octave/${name}-fntests.log
   '';
 
+  passthru = {
+    inherit version;
+    sitePath = "share/octave/${version}/site";
+  };
+
   meta = {
     homepage = http://octave.org/;
     license = "GPLv3+";
diff --git a/pkgs/development/interpreters/perl/5.14/default.nix b/pkgs/development/interpreters/perl/5.14/default.nix
index ac19900bcfc..08690e9507f 100644
--- a/pkgs/development/interpreters/perl/5.14/default.nix
+++ b/pkgs/development/interpreters/perl/5.14/default.nix
@@ -7,11 +7,11 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "perl-5.14.2";
+  name = "perl-5.14.4";
 
   src = fetchurl {
     url = "mirror://cpan/src/${name}.tar.gz";
-    sha256 = "1ls8cpbgnlaxfydyyqgr7pxj1hkxh9pzcdgr3dv42zdxffakb234";
+    sha256 = "1js47zzna3v38fjnirf2vq6y0rjp8m86ysj5vagzgkig956d8gw0";
   };
 
   patches = 
diff --git a/pkgs/development/interpreters/perl/5.16/default.nix b/pkgs/development/interpreters/perl/5.16/default.nix
index f53641c4137..752f0d49885 100644
--- a/pkgs/development/interpreters/perl/5.16/default.nix
+++ b/pkgs/development/interpreters/perl/5.16/default.nix
@@ -7,11 +7,11 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "perl-5.16.2";
+  name = "perl-5.16.3";
 
   src = fetchurl {
     url = "mirror://cpan/src/${name}.tar.gz";
-    sha256 = "03nh8bqnjsdd5izjv3n2yfcxw4ck0llwww36jpbjbjgixwpqpy4f";
+    sha256 = "1dpd9lhc4723wmsn4dsn4m320qlqgyw28bvcbhnfqp2nl3f0ikv9";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/development/interpreters/php/5.3.nix b/pkgs/development/interpreters/php/5.3.nix
index 35508230ebd..576c1dac7ed 100644
--- a/pkgs/development/interpreters/php/5.3.nix
+++ b/pkgs/development/interpreters/php/5.3.nix
@@ -89,7 +89,12 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
       };
 
       gd = {
-        configureFlags = ["--with-gd=${gd} --with-freetype-dir=${freetype}"];
+        configureFlags = [
+          "--with-gd=${gd}"
+          "--with-freetype-dir=${freetype}"
+          "--with-png-dir=${libpng}"
+          "--with-jpeg-dir=${libjpeg}"
+        ];
         buildInputs = [gd libpng libjpeg freetype];
       };
 
diff --git a/pkgs/development/interpreters/php/5.4.nix b/pkgs/development/interpreters/php/5.4.nix
index 3c200f9c5c1..35b1f82c246 100644
--- a/pkgs/development/interpreters/php/5.4.nix
+++ b/pkgs/development/interpreters/php/5.4.nix
@@ -90,7 +90,12 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
 
       gd = {
         # FIXME: Our own gd package doesn't work, see https://bugs.php.net/bug.php?id=60108.
-        configureFlags = ["--with-gd --with-freetype-dir=${freetype} --with-png-dir=${libpng}"];
+        configureFlags = [
+          "--with-gd"
+          "--with-freetype-dir=${freetype}"
+          "--with-png-dir=${libpng}"
+          "--with-jpeg-dir=${libjpeg}"
+        ];
         buildInputs = [ libpng libjpeg freetype ];
       };
 
diff --git a/pkgs/development/interpreters/python/2.7/default.nix b/pkgs/development/interpreters/python/2.7/default.nix
index 9fb2ab377df..ccb423ef32e 100644
--- a/pkgs/development/interpreters/python/2.7/default.nix
+++ b/pkgs/development/interpreters/python/2.7/default.nix
@@ -9,11 +9,11 @@ with stdenv.lib;
 let
 
   majorVersion = "2.7";
-  version = "${majorVersion}.3";
+  version = "${majorVersion}.5";
 
   src = fetchurl {
     url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
-    sha256 = "0g3672il41rcfjk7sphfqdsa6qf53y8g3ai8yk1sslxi3khmfr3j";
+    sha256 = "0nc091f19sllibvxm6n3qw5pflcphkwwxmz43q26lqafhra7airv";
   };
 
   patches =
@@ -25,6 +25,10 @@ let
       # doesn't work in Nix because Nix changes the mtime of files in
       # the Nix store to 1.  So treat that as a special case.
       ./nix-store-mtime.patch
+
+      # patch python to put zero timestamp into pyc
+      # if DETERMINISTIC_BUILD env var is set
+      ./deterministic-build.patch
     ];
 
   postPatch = stdenv.lib.optionalString (stdenv.gcc.libc != null) ''
diff --git a/pkgs/development/interpreters/python/2.7/deterministic-build.patch b/pkgs/development/interpreters/python/2.7/deterministic-build.patch
new file mode 100644
index 00000000000..98d9d339fa1
--- /dev/null
+++ b/pkgs/development/interpreters/python/2.7/deterministic-build.patch
@@ -0,0 +1,36 @@
+diff -ur orig/Lib/py_compile.py new/Lib/py_compile.py
+--- orig/Lib/py_compile.py
++++ new/Lib/py_compile.py
+@@ -122,7 +122,10 @@
+         cfile = file + (__debug__ and 'c' or 'o')
+     with open(cfile, 'wb') as fc:
+         fc.write('\0\0\0\0')
+-        wr_long(fc, timestamp)
++        if "DETERMINISTIC_BUILD" in os.environ:
++            fc.write('\0\0\0\0')
++        else:
++            wr_long(fc, timestamp)
+         marshal.dump(codeobject, fc)
+         fc.flush()
+         fc.seek(0, 0)
+diff -ur orig/Python/import.c new/Python/import.c
+--- orig/Python/import.c
++++ new/Python/import.c
+@@ -939,10 +939,12 @@
+         return;
+     }
+     /* Now write the true mtime (as a 32-bit field) */
+-    fseek(fp, 4L, 0);
+-    assert(mtime <= 0xFFFFFFFF);
+-    PyMarshal_WriteLongToFile((long)mtime, fp, Py_MARSHAL_VERSION);
+-    fflush(fp);
++    if (Py_GETENV("DETERMINISTIC_BUILD") == NULL) {
++        fseek(fp, 4L, 0);
++        assert(mtime <= 0xFFFFFFFF);
++        PyMarshal_WriteLongToFile((long)mtime, fp, Py_MARSHAL_VERSION);
++        fflush(fp);
++    }
+     fclose(fp);
+     if (Py_VerboseFlag)
+         PySys_WriteStderr("# wrote %s\n", cpathname);
+
diff --git a/pkgs/development/interpreters/python/3.3/default.nix b/pkgs/development/interpreters/python/3.3/default.nix
index 1471abe287a..16973c6226e 100644
--- a/pkgs/development/interpreters/python/3.3/default.nix
+++ b/pkgs/development/interpreters/python/3.3/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation {
     readlineSupport = readline != null;
     opensslSupport = openssl != null;
     tkSupport = (tk != null) && (tcl != null) && (libX11 != null) && (xproto != null);
-    libPrefix = "python${majorVersion}";
+    libPrefix = "python${majorVersion}m";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/interpreters/renpy/default.nix b/pkgs/development/interpreters/renpy/default.nix
new file mode 100644
index 00000000000..9b34f9a1fef
--- /dev/null
+++ b/pkgs/development/interpreters/renpy/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, python, pkgconfig, wrapPython
+, pygame, SDL, libpng, ffmpeg, freetype, glew, mesa, fribidi, zlib
+}:
+
+stdenv.mkDerivation {
+  name = "renpy-6.15.5";
+
+  src = fetchurl {
+    url = "http://www.renpy.org/dl/6.15.5/renpy-6.15.5-source.tar.bz2";
+    sha256 = "1k57dak1yk5iyxripqn2syhwwkh70y00pnnb9i1qf19lmiirxa60";
+  };
+
+  buildInputs = [
+    python pkgconfig wrapPython
+    SDL libpng ffmpeg freetype glew mesa fribidi zlib pygame
+  ];
+
+  pythonPath = [ pygame ];
+
+  RENPY_DEPS_INSTALL = stdenv.lib.concatStringsSep "::" (map (path: "${path}") [
+    SDL libpng ffmpeg freetype glew mesa fribidi zlib
+  ]);
+
+  buildPhase = ''
+    python module/setup.py build
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/renpy
+    cp -r renpy renpy.py $out/share/renpy
+    python module/setup.py install --prefix=$out --install-lib=$out/share/renpy/module
+
+    wrapPythonPrograms
+    makeWrapper ${python}/bin/python $out/bin/renpy \
+      --set PYTHONPATH $program_PYTHONPATH \
+      --set RENPY_BASE $out/share/renpy \
+      --set RENPY_LESS_UPDATES 1 \
+      --add-flags "-O $out/share/renpy/renpy.py"
+  '';
+
+  NIX_CFLAGS_COMPILE = "-I${pygame}/include/${python.libPrefix}";
+
+  meta = {
+    description = "Ren'Py Visual Novel Engine";
+    homepage = "http://renpy.org/";
+    licence = "MIT";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/interpreters/ruby/bitperfect-rdoc.patch b/pkgs/development/interpreters/ruby/bitperfect-rdoc.patch
new file mode 100644
index 00000000000..d5fb9e4554f
--- /dev/null
+++ b/pkgs/development/interpreters/ruby/bitperfect-rdoc.patch
@@ -0,0 +1,13 @@
+diff -r -u orig/lib/rdoc/generator/template/darkfish/filepage.rhtml new/lib/rdoc/generator/template/darkfish/filepage.rhtml
+--- orig/lib/rdoc/generator/template/darkfish/filepage.rhtml
++++ new/lib/rdoc/generator/template/darkfish/filepage.rhtml
+@@ -88,9 +88,6 @@
+ <body class="file file-popup">
+   <div id="metadata">
+     <dl>
+-      <dt class="modified-date">Last Modified</dt>
+-      <dd class="modified-date"><%= file.last_modified %></dd>
+-
+       <% if file.requires %>
+       <dt class="requires">Requires</dt>
+       <dd class="requires">
diff --git a/pkgs/development/interpreters/ruby/gem.nix b/pkgs/development/interpreters/ruby/gem.nix
index b4ddd26bb46..22801aa5b04 100644
--- a/pkgs/development/interpreters/ruby/gem.nix
+++ b/pkgs/development/interpreters/ruby/gem.nix
@@ -39,6 +39,10 @@ let
         [[ -e "$out/bin/$(basename $prog)" ]]
       done
 
+      # looks like useless files which break build repeatability and consume space
+      rm $out/${ruby.gemPath}/doc/*/*/created.rid || true
+      rm $out/${ruby.gemPath}/gems/*/ext/*/mkmf.log || true
+
       runHook postInstall
     '';
 
diff --git a/pkgs/development/interpreters/ruby/generated.nix b/pkgs/development/interpreters/ruby/generated.nix
index d4bb7fa4f2d..2e899128252 100644
--- a/pkgs/development/interpreters/ruby/generated.nix
+++ b/pkgs/development/interpreters/ruby/generated.nix
@@ -35,16 +35,20 @@ g: # Get dependencies from patched gems
     ffi = g.ffi_1_6_0;
     file_tail = g.file_tail_1_0_12;
     foreman = g.foreman_0_62_0;
+    gettext = g.gettext_2_3_9;
     highline = g.highline_1_6_16;
     hike = g.hike_1_2_1;
     hoe = g.hoe_3_1_0;
     i18n = g.i18n_0_6_4;
+    iconv = g.iconv_1_0_3;
     journey = g.journey_1_0_4;
     jruby_pageant = g.jruby_pageant_1_1_1;
     jsduck = g.jsduck_4_7_1;
     json = g.json_1_7_7;
     json_pure = g.json_pure_1_7_7;
     libv8 = g.libv8_3_3_10_4;
+    locale = g.locale_2_0_8;
+    lockfile = g.lockfile_2_1_0;
     macaddr = g.macaddr_1_6_1;
     mail = g.mail_2_5_3;
     mime_types = g.mime_types_1_21;
@@ -74,6 +78,7 @@ g: # Get dependencies from patched gems
     right_aws = g.right_aws_3_0_5;
     right_http_connection = g.right_http_connection_1_3_0;
     rjb = g.rjb_1_4_6;
+    rmail = g.rmail_1_0_0;
     rspec = g.rspec_2_11_0;
     rspec_core = g.rspec_core_2_11_1;
     rspec_expectations = g.rspec_expectations_2_11_3;
@@ -87,16 +92,20 @@ g: # Get dependencies from patched gems
     sprockets = g.sprockets_2_2_2;
     syslog_protocol = g.syslog_protocol_0_9_2;
     systemu = g.systemu_2_5_2;
+    text = g.text_1_2_1;
     therubyracer = g.therubyracer_0_10_2;
     thin = g.thin_1_5_1;
     thor = g.thor_0_18_0;
     tilt = g.tilt_1_3_6;
     tins = g.tins_0_7_2;
     treetop = g.treetop_1_4_12;
+    trollop = g.trollop_2_0;
     tzinfo = g.tzinfo_0_3_37;
     uuid = g.uuid_2_3_7;
     uuidtools = g.uuidtools_2_1_3;
     websocket = g.websocket_1_0_7;
+    xapian_full_alaveteli = g.xapian_full_alaveteli_1_2_9_5;
+    xapian_ruby = g.xapian_ruby_1_2_15_1;
     xml_simple = g.xml_simple_1_1_1;
     yajl_ruby = g.yajl_ruby_1_1_0;
   };
@@ -570,6 +579,20 @@ using TCP/IP, especially if custom protocols are required.'';
       requiredGems = [ g.thor_0_18_0 ];
       sha256 = ''08i34rgs3bydk52zwpps4p0y2fvcnibp9lvfdhr75ppin7wv7lmr'';
     };
+    gettext_2_3_9 = {
+      basename = ''gettext'';
+      meta = {
+        description = ''Gettext is a pure Ruby libary and tools to localize messages.'';
+        homepage = ''http://ruby-gettext.github.com/'';
+        longDescription = ''Gettext is a GNU gettext-like program for Ruby.
+The catalog file(po-file) is same format with GNU gettext.
+So you can use GNU gettext tools for maintaining.
+'';
+      };
+      name = ''gettext-2.3.9'';
+      requiredGems = [ g.locale_2_0_8 g.text_1_2_1 ];
+      sha256 = ''1i4kzkan7mnyr1ihphx0sqs3k4qj9i1ldg4a1cwf5h2fz657wvjj'';
+    };
     highline_1_6_16 = {
       basename = ''highline'';
       meta = {
@@ -653,6 +676,17 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
       requiredGems = [  ];
       sha256 = ''0wz1rnrs4n21j1rw9a120j2pfdkbikp1yvxaqi3mk30iw6mx4p0f'';
     };
+    iconv_1_0_3 = {
+      basename = ''iconv'';
+      meta = {
+        description = ''iconv wrapper library'';
+        homepage = ''https://github.com/nurse/iconv'';
+        longDescription = ''iconv wrapper library'';
+      };
+      name = ''iconv-1.0.3'';
+      requiredGems = [  ];
+      sha256 = ''1nhjn07h2fqivdj6xqzi2x2kzh28vigx8z3q5fv2cqn9aqmbdacl'';
+    };
     journey_1_0_4 = {
       basename = ''journey'';
       meta = {
@@ -730,6 +764,29 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
       requiredGems = [  ];
       sha256 = ''0zy585rs1ihm8nsw525wgmbkcq7aqy1k9dbkk8s6953adl0bpz42'';
     };
+    locale_2_0_8 = {
+      basename = ''locale'';
+      meta = {
+        description = ''Ruby-Locale is the pure ruby library which provides basic APIs for localization.'';
+        homepage = ''https://github.com/ruby-gettext/locale'';
+        longDescription = ''Ruby-Locale is the pure ruby library which provides basic APIs for localization.
+'';
+      };
+      name = ''locale-2.0.8'';
+      requiredGems = [  ];
+      sha256 = ''1hmixxg4aigl3h1qmz4fdsrv81p0bblcjbks32nrcvcpwmlylf12'';
+    };
+    lockfile_2_1_0 = {
+      basename = ''lockfile'';
+      meta = {
+        description = ''lockfile'';
+        homepage = ''https://github.com/ahoward/lockfile'';
+        longDescription = ''description: lockfile kicks the ass'';
+      };
+      name = ''lockfile-2.1.0'';
+      requiredGems = [  ];
+      sha256 = ''1yfpz9k0crb7q7y5bcaavf2jzbc170dj84hqz13qp75rj7bl3qhf'';
+    };
     macaddr_1_6_1 = {
       basename = ''macaddr'';
       meta = {
@@ -1199,6 +1256,17 @@ algorithm for low-level network errors.
       requiredGems = [  ];
       sha256 = ''0q2czc3ghk32hnxf76xsf0jqcfrnx60aqarvdjhgsfdc9a5pmk20'';
     };
+    rmail_1_0_0 = {
+      basename = ''rmail'';
+      meta = {
+        description = ''A MIME mail parsing and generation library.'';
+        homepage = ''http://www.rfc20.org/rubymail'';
+        longDescription = ''RMail is a lightweight mail library containing various utility classes and modules that allow ruby scripts to parse, modify, and generate MIME mail messages.'';
+      };
+      name = ''rmail-1.0.0'';
+      requiredGems = [  ];
+      sha256 = ''0nsg7yda1gdwa96j4hlrp2s0m06vrhcc4zy5mbq7gxmlmwf9yixp'';
+    };
     rspec_2_11_0 = {
       basename = ''rspec'';
       meta = {
@@ -1355,6 +1423,17 @@ interpreters.'';
       requiredGems = [  ];
       sha256 = ''0h834ajdg9w4xrijp31fn98pjfj08gi08xjvp5xh3i6hz9a25fhr'';
     };
+    text_1_2_1 = {
+      basename = ''text'';
+      meta = {
+        description = ''A collection of text algorithms'';
+        homepage = ''http://github.com/threedaymonk/text'';
+        longDescription = ''A collection of text algorithms: Levenshtein, Soundex, Metaphone, Double Metaphone, Porter Stemming'';
+      };
+      name = ''text-1.2.1'';
+      requiredGems = [  ];
+      sha256 = ''0s186kh125imdr7dahr10payc1gmxgk6wjy1v3agdyvl53yn5z3z'';
+    };
     therubyracer_0_10_2 = {
       basename = ''therubyracer'';
       meta = {
@@ -1420,6 +1499,21 @@ interpreters.'';
       requiredGems = [ g.polyglot_0_3_3 g.polyglot_0_3_3 ];
       sha256 = ''1jlfjq67n933sm0px0s2j965v1kl1rj8fbx6xk8y4yppkv6ygxc8'';
     };
+    trollop_2_0 = {
+      basename = ''trollop'';
+      meta = {
+        description = ''Trollop is a commandline option parser for Ruby that just gets out of your way.'';
+        homepage = ''http://trollop.rubyforge.org'';
+        longDescription = ''Trollop is a commandline option parser for Ruby that just
+gets out of your way. One line of code per option is all you need to write.
+For that, you get a nice automatically-generated help page, robust option
+parsing, command subcompletion, and sensible defaults for everything you don't
+specify.'';
+      };
+      name = ''trollop-2.0'';
+      requiredGems = [  ];
+      sha256 = ''0iz5k7ax7a5jm9x6p81k6f4mgp48wxxb0j55ypnwxnznih8fsghz'';
+    };
     tzinfo_0_3_37 = {
       basename = ''tzinfo'';
       meta = {
@@ -1467,6 +1561,26 @@ interpreters.'';
       requiredGems = [  ];
       sha256 = ''1jrfz4295qbnjaxv37fw9jzxyxz61izp7c0683mnscacpx262zw0'';
     };
+    xapian_full_alaveteli_1_2_9_5 = {
+      basename = ''xapian_full_alaveteli'';
+      meta = {
+        description = ''xapian-core + Ruby xapian-bindings'';
+        longDescription = ''Xapian bindings for Ruby without dependency on system Xapian library'';
+      };
+      name = ''xapian-full-alaveteli-1.2.9.5'';
+      requiredGems = [  ];
+      sha256 = ''0qg1jkx5lr4a5v7l3f9gq7f07al6qaxxzma230zrzs48bz3qnhxm'';
+    };
+    xapian_ruby_1_2_15_1 = {
+      basename = ''xapian_ruby'';
+      meta = {
+        description = ''xapian libraries and ruby bindings'';
+        homepage = ''https://github.com/garaio/xapian-ruby'';
+      };
+      name = ''xapian-ruby-1.2.15.1'';
+      requiredGems = [  ];
+      sha256 = ''02v3l931246asbcivkr4j0x99pl4i4fjvfsr8ga8v6lkvz0ls1xp'';
+    };
     xml_simple_1_1_1 = {
       basename = ''xml_simple'';
       meta = {
diff --git a/pkgs/development/interpreters/ruby/patches.nix b/pkgs/development/interpreters/ruby/patches.nix
index c4da956b57c..e236a71b554 100644
--- a/pkgs/development/interpreters/ruby/patches.nix
+++ b/pkgs/development/interpreters/ruby/patches.nix
@@ -1,5 +1,5 @@
 { fetchurl, writeScript, ruby, ncurses, sqlite, libxml2, libxslt, libffi
-, zlib, libuuid, gems, jdk, python, stdenv }:
+, zlib, libuuid, gems, jdk, python, stdenv, libiconvOrEmpty }:
 
 let
 
@@ -13,7 +13,7 @@ let
 in
 
 {
-  sup = { buildInputs = [ gems.ncursesw ]; };
+  iconv = { buildInputs = [ libiconvOrEmpty ]; };
 
   libv8 = {
     # This fix is needed to fool scons, which clears the environment by default.
@@ -35,11 +35,17 @@ in
       EOF
       chmod +x $TMPDIR/g++
       
-      
       export CXX=$TMPDIR/g++
       export AR=$(type -p ar)
     '';
     buildInputs = [ python ];
+    NIX_POST_EXTRACT_FILES_HOOK = writeScript "patch-scons" ''
+      #!/bin/sh
+      for i in `find "$1" -name scons`
+      do
+          sed -i -e "s@/usr/bin/env@$(type -p env)@g" $i
+      done
+    '';
   };
   
   sqlite3 = { propagatedBuildInputs = [ sqlite ]; };
@@ -91,6 +97,14 @@ in
     gemFlags = "--no-rdoc --no-ri";
   };
 
+  xapian_full_alaveteli = {
+    buildInputs = [ zlib libuuid ];
+  };
+
+  xapian_ruby = {
+    buildInputs = [ zlib libuuid ];
+  };
+
   rjb = {
     buildInputs = [ jdk ];
     JAVA_HOME = jdk;
diff --git a/pkgs/development/interpreters/ruby/ruby-18.nix b/pkgs/development/interpreters/ruby/ruby-18.nix
index ad89fae057b..cfb49839466 100644
--- a/pkgs/development/interpreters/ruby/ruby-18.nix
+++ b/pkgs/development/interpreters/ruby/ruby-18.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   
   src = fetchurl {
     url = "ftp://ftp.ruby-lang.org/pub/ruby/1.8/${name}.tar.gz";
-    sha256 = "0b4n9d1idmsl47cq3mw6zhi94yp048ljlfgg9qdblbkvnd7arp1g";
+    sha256 = "0g2dsn8lmiqwqsp13ryzi97qxr7742v5l7v506x6wq9aiwpk42p6";
   };
 
   # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   passthru = rec {
     majorVersion = "1.8";
     minorVersion = "7";
-    patchLevel = "357";
+    patchLevel = "371";
     libPath = "lib/ruby/${majorVersion}";
     gemPath = "lib/ruby/gems/${majorVersion}";
   };
diff --git a/pkgs/development/interpreters/ruby/ruby-19.nix b/pkgs/development/interpreters/ruby/ruby-19.nix
index b954d7e6bf0..038a160b327 100644
--- a/pkgs/development/interpreters/ruby/ruby-19.nix
+++ b/pkgs/development/interpreters/ruby/ruby-19.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   
   src = fetchurl {
     url = "ftp://ftp.ruby-lang.org/pub/ruby/1.9/${name}.tar.bz2";
-    sha256 = "1ymq5lhp3fz0j3cs65521aihcnivbfrn76in900ccxd0msgfmld9";
+    sha256 = "0w1avj8qfskvkgvrjxxc1cxjm14bf1v60ipvcl5q3zpn9k14k2cx";
   };
 
   # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
@@ -30,27 +30,39 @@ stdenv.mkDerivation rec {
     ++ (op zlibSupport zlib)
     ++ (op opensslSupport openssl)
     ++ (op gdbmSupport gdbm)
-    ++ (op yamlSupport libyaml);
+    ++ (op yamlSupport libyaml)
+    # Looks like ruby fails to build on darwin without readline even if curses
+    # support is not enabled, so add readline to the build inputs if curses
+    # support is disabled (if it's enabled, we already have it) and we're
+    # running on darwin
+    ++ (op (!cursesSupport && stdenv.isDarwin) readline);
 
   enableParallelBuilding = true;
-    
-  configureFlags = ["--enable-shared" "--enable-pthread"];
+  patches = [ ./ruby19-parallel-install.patch
+	      ./bitperfect-rdoc.patch
+  ];
+
+  configureFlags = [ "--enable-shared" "--enable-pthread" ]
+    # on darwin, we have /usr/include/tk.h -- so the configure script detects
+    # that tk is installed
+    ++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]);
 
   installFlags = stdenv.lib.optionalString docSupport "install-doc";
   # Bundler tries to create this directory
   postInstall = "mkdir -pv $out/${passthru.gemPath}";
 
   meta = {
-    license = "Ruby";
-    homepage = "http://www.ruby-lang.org/en/";
+    license     = "Ruby";
+    homepage    = "http://www.ruby-lang.org/en/";
     description = "The Ruby language";
-    platforms = stdenv.lib.platforms.all;
+    maintainers = with stdenv.lib.maintainers; [ lovek323 ];
+    platforms   = stdenv.lib.platforms.all;
   };
 
   passthru = rec {
     majorVersion = "1.9";
     minorVersion = "3";
-    patchLevel = "194";
+    patchLevel = "429";
     libPath = "lib/ruby/${majorVersion}";
     gemPath = "lib/ruby/gems/${majorVersion}";
   };
diff --git a/pkgs/development/interpreters/ruby/ruby19-parallel-install.patch b/pkgs/development/interpreters/ruby/ruby19-parallel-install.patch
new file mode 100644
index 00000000000..bb806350873
--- /dev/null
+++ b/pkgs/development/interpreters/ruby/ruby19-parallel-install.patch
@@ -0,0 +1,15 @@
+Index: ruby-1.9.3-p392/lib/mkmf.rb
+===================================================================
+--- ruby-1.9.3-p392.orig/lib/mkmf.rb
++++ ruby-1.9.3-p392/lib/mkmf.rb
+@@ -2039,8 +2039,8 @@ static: $(STATIC_LIB)#{$extout ? " insta
+       end
+       for f in files
+         dest = "#{dir}/#{File.basename(f)}"
+-        mfile.print("install-rb#{sfx}: #{dest} #{dir}\n")
+-        mfile.print("#{dest}: #{f}\n")
++        mfile.print("install-rb#{sfx}: #{dest}\n")
++        mfile.print("#{dest}: #{f} #{timestamp_file(dir)}\n")
+         mfile.print("\t$(Q) $(#{$extout ? 'COPY' : 'INSTALL_DATA'}) #{f} $(@D#{sep})\n")
+         if defined?($installed_list) and !$extout
+           mfile.print("\t@echo #{dest}>>$(INSTALLED_LIST)\n")
diff --git a/pkgs/development/libraries/GConf/3.x.nix b/pkgs/development/libraries/GConf/3.x.nix
deleted file mode 100644
index 82c0c1f2c43..00000000000
--- a/pkgs/development/libraries/GConf/3.x.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl, glib, dbus_glib, pkgconfig, libxml2, gtk3, intltool, polkit }:
-
-stdenv.mkDerivation {
-  name = "GConf-3.2.3";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/GConf/3.2/GConf-3.2.3.tar.xz;
-    sha256 = "0jd1z9gb1b7mv4g07qm554va6idasf3swgrfqflypdh9s38mvdcy";
-  };
-
-  propagatedBuildInputs = [ glib dbus_glib ];
-  buildInputs = [ polkit gtk3 libxml2 ];
-  nativeBuildInputs = [ pkgconfig intltool ];
-
-  configureFlags = "--disable-orbit";
-
-  meta = {
-    homepage = http://projects.gnome.org/gconf/;
-    description = "A system for storing application preferences";
-    maintainers = [ stdenv.lib.maintainers.urkud ];
-    inherit (gtk3.meta) platforms;
-  };
-}
diff --git a/pkgs/development/libraries/SDL/default.nix b/pkgs/development/libraries/SDL/default.nix
index 8ff643ce5b1..899c3bb5c8d 100644
--- a/pkgs/development/libraries/SDL/default.nix
+++ b/pkgs/development/libraries/SDL/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig
+{ stdenv, fetchurl, pkgconfig, audiofile
 , openglSupport ? false, mesa ? null
 , alsaSupport ? true, alsaLib ? null
 , x11Support ? true, x11 ? null, libXrandr ? null
@@ -16,25 +16,26 @@ assert pulseaudioSupport -> pulseaudio != null;
 
 let
   configureFlagsFun = attrs: ''
-        --disable-oss
+        --disable-oss --disable-video-x11-xme
         --disable-x11-shared --disable-alsa-shared --enable-rpath --disable-pulseaudio-shared
+        --disable-osmesa-shared
         ${if alsaSupport then "--with-alsa-prefix=${attrs.alsaLib}/lib" else ""}
       '';
 in
 stdenv.mkDerivation rec {
-  name = "SDL-1.2.14";
+  name = "SDL-1.2.15";
 
   src = fetchurl {
     url = "http://www.libsdl.org/release/${name}.tar.gz";
-    sha256 = "1dnrxr18cyar0xd13dca7h8wp1fin4n3iyncxfq6pjrlf0l7x4jx";
+    sha256 = "005d993xcac8236fpvd1iawkz4wqjybkpn8dbwaliqz5jfkidlyn";
   };
 
   # Since `libpulse*.la' contain `-lgdbm', PulseAudio must be propagated.
   propagatedBuildInputs = stdenv.lib.optionals x11Support [ x11 libXrandr ] ++
     stdenv.lib.optional pulseaudioSupport pulseaudio;
 
-  buildInputs = [ pkgconfig ] ++
-    stdenv.lib.optional openglSupport mesa ++
+  buildInputs = [ pkgconfig audiofile ] ++
+    stdenv.lib.optional openglSupport [ mesa ] ++
     stdenv.lib.optional alsaSupport alsaLib;
 
   # XXX: By default, SDL wants to dlopen() PulseAudio, in which case
diff --git a/pkgs/development/libraries/aspell/dictionaries.nix b/pkgs/development/libraries/aspell/dictionaries.nix
index 90a9469ee54..c2aefd64c79 100644
--- a/pkgs/development/libraries/aspell/dictionaries.nix
+++ b/pkgs/development/libraries/aspell/dictionaries.nix
@@ -29,7 +29,7 @@ let
 in {
 
   de = buildDict {
-    shortName = "de-20030222-1";
+    shortName = "de-20030222_1";
     fullName = "German";
     src = fetchurl {
       url = mirror://gnu/aspell/dict/de/aspell6-de-20030222-1.tar.bz2;
@@ -38,7 +38,7 @@ in {
   };
     
   en = buildDict {
-    shortName = "en-6.0-0";
+    shortName = "en-6.0_0";
     fullName = "English";
     src = fetchurl {
       url = mirror://gnu/aspell/dict/en/aspell6-en-6.0-0.tar.bz2;
@@ -47,7 +47,7 @@ in {
   };
     
   es = buildDict {
-    shortName = "es-0.50-2";
+    shortName = "es-0.50_2";
     fullName = "Spanish";
     src = fetchurl {
       url = mirror://gnu/aspell/dict/es/aspell-es-0.50-2.tar.bz2;
@@ -56,7 +56,7 @@ in {
   };
     
   eo = buildDict {
-    shortName = "eo-0.50-2";
+    shortName = "eo-0.50_2";
     fullName = "Esperanto";
     src = fetchurl {
       url = mirror://gnu/aspell/dict/eo/aspell-eo-0.50-2.tar.bz2;
@@ -65,7 +65,7 @@ in {
   };
 
   fr = buildDict {
-    shortName = "fr-0.50-3";
+    shortName = "fr-0.50_3";
     fullName = "French";
     src = fetchurl {
       url = mirror://gnu/aspell/dict/fr/aspell-fr-0.50-3.tar.bz2;
@@ -74,7 +74,7 @@ in {
   };
     
   it = buildDict {
-    shortName = "it-0.53-0";
+    shortName = "it-0.53_0";
     fullName = "Italian";
     src = fetchurl {
       url = mirror://gnu/aspell/dict/it/aspell-it-0.53-0.tar.bz2;
@@ -83,7 +83,7 @@ in {
   };
     
   la = buildDict {
-    shortName = "la-20020503-0";
+    shortName = "la-20020503_0";
     fullName = "Latin";
     src = fetchurl {
       url = mirror://gnu/aspell/dict/la/aspell6-la-20020503-0.tar.bz2;
@@ -92,7 +92,7 @@ in {
   };
     
   nl = buildDict {
-    shortName = "nl-0.50-2";
+    shortName = "nl-0.50_2";
     fullName = "Dutch";
     src = fetchurl {
       url = mirror://gnu/aspell/dict/nl/aspell-nl-0.50-2.tar.bz2;
@@ -105,7 +105,7 @@ in {
   };
     
   pl = buildDict {
-    shortName = "pl-6.0_20061121";
+    shortName = "pl-6.0_20061121_0";
     fullName = "Polish";
     src = fetchurl {
       url = mirror://gnu/aspell/dict/pl/aspell6-pl-6.0_20061121-0.tar.bz2;
@@ -114,7 +114,7 @@ in {
   };
      
   ru = buildDict {
-    shortName = "ru-0.99f7-1";
+    shortName = "ru-0.99f7_1";
     fullName = "Russian";
     src = fetchurl {
       url = mirror://gnu/aspell/dict/ru/aspell6-ru-0.99f7-1.tar.bz2;
diff --git a/pkgs/development/libraries/atk/2.6.x.nix b/pkgs/development/libraries/atk/default.nix
index 82b366b4013..180392cc5e0 100644
--- a/pkgs/development/libraries/atk/2.6.x.nix
+++ b/pkgs/development/libraries/atk/default.nix
@@ -1,17 +1,19 @@
-{ stdenv, fetchurl, pkgconfig, perl, glib }:
+{ stdenv, fetchurl, pkgconfig, perl, glib, libintlOrEmpty }:
 
 stdenv.mkDerivation rec {
-  name = "atk-2.6.0";
+  name = "atk-2.8.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/atk/2.6/${name}.tar.xz";
-    sha256 = "eff663f90847620bb68c9c2cbaaf7f45e2ff44163b9ab3f10d15be763680491f";
+    url = "mirror://gnome/sources/atk/2.8/${name}.tar.xz";
+    sha256 = "1x3dd3hg9l1j9dq70xwph13vxdp6a9wbfcnryryf1wr6c8bij9dj";
   };
 
   enableParallelBuilding = true;
 
   outputs = [ "dev" "out" "doc" ];
 
+  buildInputs = libintlOrEmpty;
+
   nativeBuildInputs = [ pkgconfig perl ];
 
   propagatedBuildInputs = [ glib ];
diff --git a/pkgs/development/libraries/cairo/1.12.2.nix b/pkgs/development/libraries/cairo/1.12.2.nix
index 18195017c0f..e60af3a23a8 100644
--- a/pkgs/development/libraries/cairo/1.12.2.nix
+++ b/pkgs/development/libraries/cairo/1.12.2.nix
@@ -32,6 +32,10 @@ stdenv.mkDerivation rec {
     stdenv.lib.optional postscriptSupport zlib ++
     stdenv.lib.optional pngSupport libpng;
 
+  NIX_CFLAGS_COMPILE = ( if stdenv.isDarwin
+                         then "-I${pixman}/include/pixman-1"
+                         else "" );
+
   configureFlags =
     [ "--enable-tee" ]
     ++ stdenv.lib.optional xcbSupport "--enable-xcb"
diff --git a/pkgs/development/libraries/cairo/default.nix b/pkgs/development/libraries/cairo/default.nix
index 1ac455efbd2..f971a290358 100644
--- a/pkgs/development/libraries/cairo/default.nix
+++ b/pkgs/development/libraries/cairo/default.nix
@@ -1,60 +1,59 @@
-{ postscriptSupport ? true
-, pdfSupport ? true
-, pngSupport ? true
-, xcbSupport ? false
+{ stdenv, fetchurl, pkgconfig, libiconvOrEmpty, libintlOrEmpty
+, expat, zlib, libpng, pixman, fontconfig, freetype, xlibs
 , gobjectSupport ? true, glib
-, stdenv, fetchurl, pkgconfig, x11, fontconfig, freetype, xlibs
-, zlib, libpng, pixman, libxcb ? null, xcbutil ? null
-, libiconvOrEmpty, libintlOrEmpty
+, xcbSupport ? true # no longer experimental since 1.12
+, glSupport ? true, mesa_noglu ? null # mesa is no longer a big dependency
+, pdfSupport ? true
 }:
 
-assert postscriptSupport -> zlib != null;
-assert pngSupport -> libpng != null;
-assert xcbSupport -> libxcb != null && xcbutil != null;
+assert glSupport -> mesa_noglu != null;
+
+with { inherit (stdenv.lib) optional optionals; };
 
 stdenv.mkDerivation rec {
-  name = "cairo-1.12.4";
+  name = "cairo-1.12.14";
 
   src = fetchurl {
     url = "http://cairographics.org/releases/${name}.tar.xz";
-    sha1 = "f4158981ed01e73c94fb8072074b17feee61a68b";
+    sha256 = "04xcykglff58ygs0dkrmmnqljmpjwp2qgwcz8sijqkdpz7ix3l4n";
   };
 
   outputs = [ "dev" "out" "bin" "doc" ];
 
-  buildInputs =
-    [ pkgconfig x11 fontconfig ]
-    ++ stdenv.lib.optional (!stdenv.isDarwin) xlibs.libXrender
-    ++ stdenv.lib.optionals xcbSupport [ libxcb xcbutil ]
-    ++ libintlOrEmpty
-    ++ libiconvOrEmpty;
+  nativeBuildInputs = [ pkgconfig ] ++ libintlOrEmpty ++ libiconvOrEmpty;
 
   propagatedBuildInputs =
-    [ freetype pixman ] ++
-    stdenv.lib.optional gobjectSupport glib ++
-    stdenv.lib.optional postscriptSupport zlib ++
-    stdenv.lib.optional pngSupport libpng;
-
-  configureFlags =
-    [ "--enable-tee" ]
-    ++ stdenv.lib.optional xcbSupport "--enable-xcb"
-    ++ stdenv.lib.optional pdfSupport "--enable-pdf";
-
-  preConfigure = ''
-    # Work around broken `Requires.private' that prevents Freetype
-    # `-I' flags to be propagated.
-    sed -i "src/cairo.pc.in" \
-        -es'|^Cflags:\(.*\)$|Cflags: \1 -I${freetype}/include/freetype2 -I${freetype}/include|g'
-  ''
-
+    with xlibs; [ xlibs.xlibs fontconfig expat freetype pixman zlib libpng ]
+    ++ optional (!stdenv.isDarwin) libXrender
+    ++ optionals xcbSupport [ libxcb xcbutil ]
+    ++ optional gobjectSupport glib
+    ++ optionals glSupport [ mesa_noglu ]
+    ;
+
+  configureFlags = [ "--enable-tee" ]
+    ++ optional xcbSupport "--enable-xcb"
+    ++ optional glSupport "--enable-gl"
+    ++ optional pdfSupport "--enable-pdf"
+    ;
+
+  NIX_CFLAGS_COMPILE = "-I${pixman}/include/pixman-1";
+
+  preConfigure =
   # On FreeBSD, `-ldl' doesn't exist.
-  + (stdenv.lib.optionalString stdenv.isFreeBSD
+    (stdenv.lib.optionalString stdenv.isFreeBSD
        '' for i in "util/"*"/Makefile.in" boilerplate/Makefile.in
           do
             cat "$i" | sed -es/-ldl//g > t
             mv t "$i"
           done
-       '');
+       '') 
+       +
+    ''
+    # Work around broken `Requires.private' that prevents Freetype
+    # `-I' flags to be propagated.
+    sed -i "src/cairo.pc.in" \
+        -es'|^Cflags:\(.*\)$|Cflags: \1 -I${freetype}/include/freetype2 -I${freetype}/include|g'
+    '';
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/db4/db4-4.4.nix b/pkgs/development/libraries/db4/db4-4.4.nix
index 7444439fc73..ab3ffa85cf2 100644
--- a/pkgs/development/libraries/db4/db4-4.4.nix
+++ b/pkgs/development/libraries/db4/db4-4.4.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
   src = fetchurl {
     urls = [
       http://download.oracle.com/berkeley-db/db-4.4.20.NC.tar.gz
-      http://nixos.org/tarballs/db-4.4.20.NC.tar.gz
+      http://tarballs.nixos.org/db-4.4.20.NC.tar.gz
     ];
     md5 = "afd9243ea353bbaa04421488d3b37900";
   };
diff --git a/pkgs/development/libraries/dbus-cplusplus/default.nix b/pkgs/development/libraries/dbus-cplusplus/default.nix
index 2704b9586b1..0a4b80d3f3e 100644
--- a/pkgs/development/libraries/dbus-cplusplus/default.nix
+++ b/pkgs/development/libraries/dbus-cplusplus/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, dbus, glib, gtkmm, pkgconfig }:
+{ stdenv, fetchurl, dbus, glib, gtkmm, pkgconfig, expat }:
 
 stdenv.mkDerivation rec {
   name = "dbus-cplusplus-${version}";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "0qafmy2i6dzx4n1dqp6pygyy6gjljnb7hwjcj2z11c1wgclsq4dw";
   };
 
-  buildInputs = [ dbus glib gtkmm pkgconfig ];
+  buildInputs = [ dbus glib gtkmm pkgconfig expat ];
 
   configureFlags = "--disable-ecore";
 
diff --git a/pkgs/development/libraries/dbus-glib/default.nix b/pkgs/development/libraries/dbus-glib/default.nix
index 47e83e7780c..be6cf442a49 100644
--- a/pkgs/development/libraries/dbus-glib/default.nix
+++ b/pkgs/development/libraries/dbus-glib/default.nix
@@ -1,18 +1,20 @@
 { stdenv, fetchurl, pkgconfig, expat, gettext, libiconv, dbus, glib }:
 
 stdenv.mkDerivation rec {
-  name = "dbus-glib-0.98";
+  name = "dbus-glib-0.100.2";
 
   src = fetchurl {
     url = "${meta.homepage}/releases/dbus-glib/${name}.tar.gz";
-    sha256 = "04fiwld5yaxyggxlvdmbaqkngh4fn8gfkkqckcp3274bpgb82z19";
+    sha256 = "1ibav91yg70f2l3l18cr0hf4mna1h9d4mrg0c60w4l8zjbd45fx5";
   };
 
   nativeBuildInputs = [ pkgconfig gettext ];
 
   buildInputs = [ expat ] ++ stdenv.lib.optional (!stdenv.isLinux) libiconv;
 
-  propagatedBuildInputs = [ dbus glib ];
+  propagatedBuildInputs = [ dbus.libs glib ];
+
+  doCheck = true;
 
   passthru = { inherit dbus glib; };
 
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index 5716ac6648a..d50a0076e62 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -1,71 +1,107 @@
-{ stdenv, fetchurl, pkgconfig, expat, libX11, libICE, libSM, useX11 ? true }:
+{ stdenv, fetchurl, pkgconfig, autoconf, automake, libtool
+, expat, systemd, glib, dbus_glib, python
+, libX11, libICE, libSM, useX11 ? stdenv.isLinux }:
 
 let
-  version = "1.6.4";
+  version = "1.6.12"; # 1.7.* isn't recommended, even for gnome 3.8
+  sha256 = "14pfh2ksn4srfry752kf1jy3c61hklcs9fx2xglw2ifhsszplypn";
 
-  src = fetchurl {
-    url = "http://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.gz";
-    sha256 = "1wacqyfkcpayg7f8rvx9awqg275n5pksxq5q7y21lxjx85x6pfjz";
-  };
+  inherit (stdenv) lib;
 
-  patches = [ ./ignore-missing-includedirs.patch ];
+  buildInputsX = lib.optionals useX11 [ libX11 libICE libSM ];
 
-  configureFlags = "--localstatedir=/var --sysconfdir=/etc --with-session-socket-dir=/tmp";
+  # also other parts than "libs" need this statically linked lib
+  makeInternalLib = "(cd dbus && make libdbus-internal.la)";
 
-in rec {
+  systemdOrEmpty = lib.optional stdenv.isLinux systemd;
 
-  libs = stdenv.mkDerivation {
-    name = "dbus-library-" + version;
+  # A generic builder for individual parts (subdirs) of D-Bus
+  dbus_drv = name: subdirs: merge: stdenv.mkDerivation (lib.mergeAttrsByFuncDefaultsClean [{
 
-    nativeBuildInputs = [ pkgconfig ];
+    name = "dbus-${name}-${version}";
 
-    buildInputs = [ expat ];
+    src = fetchurl {
+      url = "http://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.gz";
+      inherit sha256;
+    };
 
-    # FIXME: dbus has optional systemd integration when checking
-    # at_console policies.  How to enable this without introducing a
-    # circular dependency between dbus and systemd?
+    configureFlags = [
+      "--localstatedir=/var"
+      "--sysconfdir=/etc"
+      "--with-session-socket-dir=/tmp"
+      "--with-systemdsystemunitdir=$(out)/lib/systemd"
+    ];
 
-    inherit src patches configureFlags;
+    preConfigure = ''
+      patchShebangs .
+      substituteInPlace tools/Makefile.am --replace 'install-localstatelibDATA:' 'disabled:'
+      autoreconf -fi
+    '';
 
-    preConfigure =
-      ''
-        sed -i '/mkinstalldirs.*localstatedir/d' bus/Makefile.in
-        sed -i '/SUBDIRS/s/ tools//' Makefile.in
-      '';
+    installFlags = "sysconfdir=$(out)/etc";
 
-    # Enable X11 autolaunch support in libdbus.  This doesn't actually
-    # depend on X11 (it just execs dbus-launch in dbus.tools),
-    # contrary to what the configure script demands.
-    NIX_CFLAGS_COMPILE = "-DDBUS_ENABLE_X11_AUTOLAUNCH=1";
+    doCheck = true;
 
-    installFlags = "sysconfdir=$(out)/etc";
-  };
+    patches = [ ./ignore-missing-includedirs.patch ]
+      ++ lib.optional (stdenv.isSunOS || stdenv.isLinux/*avoid rebuilds*/) ./implement-getgrouplist.patch
+      ++ [ ./ucred-dirty-hack.patch ./no-create-dirs.patch ];
 
-  tools = stdenv.mkDerivation {
-    name = "dbus-tools-" + version;
+    nativeBuildInputs = [ pkgconfig ];
+    propagatedBuildInputs = [ expat ];
+    buildInputs = [ autoconf automake libtool ]; # ToDo: optional selinux?
+
+    # build only the specified subdirs
+    postPatch = "sed '/SUBDIRS/s/=.*/=" + subdirs + "/' -i Makefile.am\n"
+      # use already packaged libdbus instead of trying to build it again
+      + lib.optionalString (name != "libs") ''
+          for mfile in */Makefile.am; do
+            sed 's,\$(top_builddir)/dbus/\(libdbus-[0-9]\),${libs}/lib/\1,g' -i "$mfile"
+          done
+        '';
+
+  } merge ]);
+
+  libs = dbus_drv "libs" "dbus" ({
+    # Enable X11 autolaunch support in libdbus. This doesn't actually depend on X11
+    # (it just execs dbus-launch in dbus.tools), contrary to what the configure script demands.
+    NIX_CFLAGS_COMPILE = "-DDBUS_ENABLE_X11_AUTOLAUNCH=1";
+  } // stdenv.lib.optionalAttrs (systemdOrEmpty != []) {
+    buildInputs = [ systemd.headers ];
+    patches = [ ./systemd.patch ]; # bypass systemd detection
+  });
 
-    inherit src patches;
 
-    configureFlags = "${configureFlags} --with-dbus-daemondir=${daemon}/bin";
+in rec {
 
-    nativeBuildInputs = [ pkgconfig ];
+  # This package has been split because most applications only need dbus.lib
+  # which serves as an interface to a *system-wide* daemon,
+  # see e.g. http://en.wikipedia.org/wiki/D-Bus#Architecture .
+  # Also some circular dependencies get split by this (like with systemd).
 
-    buildInputs = [ expat libs ]
-      ++ stdenv.lib.optionals useX11 [ libX11 libICE libSM ];
+  inherit libs;
 
-    NIX_LDFLAGS = "-ldbus-1";
+  tools = dbus_drv "tools" "tools" {
+    configureFlags = [ "--with-dbus-daemondir=${daemon}/bin" ];
+    buildInputs = buildInputsX ++ systemdOrEmpty ++ [ libs daemon dbus_glib ];
+    NIX_CFLAGS_LINK = "-Wl,--as-needed -ldbus-1";
 
-    preConfigure =
-      ''
-        sed -i 's@$(top_builddir)/dbus/libdbus-1.la@@' tools/Makefile.in
-        substituteInPlace tools/Makefile.in --replace 'install-localstatelibDATA:' 'disabled:'
-      '';
+    meta.platforms = stdenv.lib.platforms.all;
+  };
 
-    postConfigure = "cd tools";
+  daemon = dbus_drv "daemon" "bus" {
+    preBuild = makeInternalLib;
+    buildInputs = systemdOrEmpty;
+  };
 
-    installFlags = "localstatedir=$TMPDIR/var";
+  # Some of the tests don't work yet; in fact, @vcunat tried several packages
+  # containing dbus testing, and all of them have some test failure.
+  tests = dbus_drv "tests" "test" {
+    preBuild = makeInternalLib;
+    buildInputs = buildInputsX ++ systemdOrEmpty ++ [ libs tools daemon dbus_glib python ];
+    NIX_CFLAGS_LINK = "-Wl,--as-needed -ldbus-1";
   };
 
-  # I'm too lazy to separate daemon and libs now.
-  daemon = libs;
+  docs = dbus_drv "docs" "doc" {
+    postInstall = ''rm -r "$out/lib"'';
+  };
 }
diff --git a/pkgs/development/libraries/dbus/implement-getgrouplist.patch b/pkgs/development/libraries/dbus/implement-getgrouplist.patch
new file mode 100644
index 00000000000..e3a4a25cb72
--- /dev/null
+++ b/pkgs/development/libraries/dbus/implement-getgrouplist.patch
@@ -0,0 +1,108 @@
+Compatibility patch for Illumos/Solaris and possibly other platforms.
+Implements getgrouplist when not provided by OS.
+Without it, only the user's primary group is used in authentication!
+--- 	1970-01-01 00:00:00.000000000 +0000
++++ dbus-1.6.8/dbus/getgrouplist.c	2013-02-28 13:10:51.081792722 +0000
+@@ -0,0 +1,89 @@
++/*	$OpenBSD: getgrouplist.c,v 1.12 2005/08/08 08:05:34 espie Exp $ */
++/*
++ * Copyright (c) 1991, 1993
++ *	The Regents of the University of California.  All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ *    notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ *    notice, this list of conditions and the following disclaimer in the
++ *    documentation and/or other materials provided with the distribution.
++ * 3. Neither the name of the University nor the names of its contributors
++ *    may be used to endorse or promote products derived from this software
++ *    without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ */
++
++/* OPENBSD ORIGINAL: lib/libc/gen/getgrouplist.c */
++
++/*
++ * get credential
++ */
++#include <sys/types.h>
++#include <string.h>
++#include <unistd.h>
++#include <grp.h>
++
++int
++getgrouplist(const char *uname, gid_t agroup, gid_t *groups, int *grpcnt)
++{
++	struct group *grp;
++	int i, ngroups;
++	int ret, maxgroups;
++	int bail;
++
++	ret = 0;
++	ngroups = 0;
++	maxgroups = *grpcnt;
++
++	/*
++	 * install primary group
++	 */
++	if (ngroups >= maxgroups) {
++		*grpcnt = ngroups;
++		return (-1);
++	}
++	groups[ngroups++] = agroup;
++
++	/*
++	 * Scan the group file to find additional groups.
++	 */
++	setgrent();
++	while ((grp = getgrent())) {
++		if (grp->gr_gid == agroup)
++			continue;
++		for (bail = 0, i = 0; bail == 0 && i < ngroups; i++)
++			if (groups[i] == grp->gr_gid)
++				bail = 1;
++		if (bail)
++			continue;
++		for (i = 0; grp->gr_mem[i]; i++) {
++			if (!strcmp(grp->gr_mem[i], uname)) {
++				if (ngroups >= maxgroups) {
++					ret = -1;
++					goto out;
++				}
++				groups[ngroups++] = grp->gr_gid;
++				break;
++			}
++		}
++	}
++out:
++	endgrent();
++	*grpcnt = ngroups;
++	return (ret);
++}
+--- dbus-1.6.8/dbus/dbus-sysdeps-unix.c.orig	2013-02-28 13:08:52.171215237 +0000
++++ dbus-1.6.8/dbus/dbus-sysdeps-unix.c	2013-02-28 13:13:52.224615146 +0000
+@@ -21,6 +21,10 @@
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+  *
+  */
++#ifndef HAVE_GETGROUPLIST
++#include "getgrouplist.c"
++#define HAVE_GETGROUPLIST
++#endif
+ 
+ #include <config.h>
+ 
diff --git a/pkgs/development/libraries/dbus/no-create-dirs.patch b/pkgs/development/libraries/dbus/no-create-dirs.patch
new file mode 100644
index 00000000000..cf10d977599
--- /dev/null
+++ b/pkgs/development/libraries/dbus/no-create-dirs.patch
@@ -0,0 +1,26 @@
+diff --git a/bus/Makefile.am b/bus/Makefile.am
+index 6cbc09a..be60bb8 100644
+--- a/bus/Makefile.am
++++ b/bus/Makefile.am
+@@ -212,7 +212,6 @@ clean-local:
+ 	/bin/rm *.bb *.bbg *.da *.gcov || true
+ 
+ install-data-hook:
+-	$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus
+ 	$(mkinstalldirs) $(DESTDIR)$(configdir)/system.d
+ 	$(mkinstalldirs) $(DESTDIR)$(configdir)/session.d
+ 	$(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services
+diff --git a/tools/Makefile.am b/tools/Makefile.am
+index cfd54b8..b6e28f9 100644
+--- a/tools/Makefile.am
++++ b/tools/Makefile.am
+@@ -74,7 +74,7 @@ CLEANFILES = 				\
+ 
+ # create the /var/lib/dbus directory for dbus-uuidgen
+ install-data-local:
+-	$(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/dbus
++	:
+ 
+ installcheck-local:
+-	test -d $(DESTDIR)$(localstatedir)/lib/dbus
++	:
diff --git a/pkgs/development/libraries/dbus/systemd.patch b/pkgs/development/libraries/dbus/systemd.patch
new file mode 100644
index 00000000000..7e6cb1f87d0
--- /dev/null
+++ b/pkgs/development/libraries/dbus/systemd.patch
@@ -0,0 +1,14 @@
+diff --git a/configure.ac b/configure.ac
+index 24fcc9e..98e0459 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1167,7 +1167,8 @@ else
+     PKG_CHECK_MODULES(SYSTEMD,
+         [libsystemd-login >= 32, libsystemd-daemon >= 32],
+         have_systemd=yes,
+-        have_systemd=no)
++        have_systemd=yes)
++    AC_MSG_NOTICE([NixOS: do not care whether we found systemd or not])
+ fi
+ 
+ if test x$have_systemd = xyes; then
diff --git a/pkgs/development/libraries/dbus/ucred-dirty-hack.patch b/pkgs/development/libraries/dbus/ucred-dirty-hack.patch
new file mode 100644
index 00000000000..a07abcc15fb
--- /dev/null
+++ b/pkgs/development/libraries/dbus/ucred-dirty-hack.patch
@@ -0,0 +1,18 @@
+diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c
+index b4ecc96..267984a 100644
+--- a/dbus/dbus-sysdeps-unix.c
++++ b/dbus/dbus-sysdeps-unix.c
+@@ -1635,6 +1635,13 @@ write_credentials_byte (int             server_fd,
+     }
+ }
+ 
++struct ucred
++{
++  pid_t pid;			/* PID of sending process.  */
++  uid_t uid;			/* UID of sending process.  */
++  gid_t gid;			/* GID of sending process.  */
++};
++
+ /**
+  * Reads a single byte which must be nul (an error occurs otherwise),
+  * and reads unix credentials if available. Clears the credentials
diff --git a/pkgs/development/libraries/expat/default.nix b/pkgs/development/libraries/expat/default.nix
index 6b675230119..d7915a93962 100644
--- a/pkgs/development/libraries/expat/default.nix
+++ b/pkgs/development/libraries/expat/default.nix
@@ -11,5 +11,6 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = http://www.libexpat.org/;
     description = "A stream-oriented XML parser library written in C";
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/fontconfig/default.nix b/pkgs/development/libraries/fontconfig/default.nix
index 116fe3c0c20..e3b0a54ee82 100644
--- a/pkgs/development/libraries/fontconfig/default.nix
+++ b/pkgs/development/libraries/fontconfig/default.nix
@@ -1,18 +1,24 @@
 { stdenv, fetchurl, pkgconfig, freetype, expat }:
 
 stdenv.mkDerivation rec {
-  name = "fontconfig-2.10.1";
+  name = "fontconfig-2.10.2";
 
   src = fetchurl {
-    url = "http://fontconfig.org/release/${name}.tar.gz";
-    sha256 = "08h252crb3aqciwdk81jypmz2i7618dzqn3zlr87w1f017wjp4f3";
+    url = "http://fontconfig.org/release/${name}.tar.bz2";
+    sha256 = "0llraqw86jmw4vzv7inskp3xxm2gc64my08iwq5mzncgfdbfza4f";
   };
 
-  buildInputs = [ pkgconfig freetype ];
+  infinality_patch = with freetype.infinality; if useInfinality
+    then let subvers = "1";
+      in fetchurl {
+        url = "${base_URL}/fontconfig-infinality-1-${vers}_${subvers}.tar.bz2";
+        sha256 = "1fm5xx0mx2243jrq5rxk4v0ajw2nawpj23399h710bx6hd1rviq7";
+      }
+    else null;
 
-  propagatedBuildInputs = [ expat ]; # !!! shouldn't be necessary, but otherwise pango breaks
+  buildInputs = [ pkgconfig freetype expat ];
 
-  configureFlags = "--with-confdir=/etc/fonts --with-cache-dir=/var/cache/fontconfig --disable-docs --with-default-fonts=";
+  configureFlags = "--sysconfdir=/etc --with-cache-dir=/var/cache/fontconfig --disable-docs --with-default-fonts=";
 
   # We should find a better way to access the arch reliably.
   crossArch = stdenv.cross.arch or null;
@@ -26,11 +32,16 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   # Don't try to write to /etc/fonts or /var/cache/fontconfig at install time.
-  installFlags = "CONFDIR=$(out)/etc/fonts RUN_FC_CACHE_TEST=false fc_cachedir=$(TMPDIR)/dummy";
+  installFlags = "sysconfdir=$(out)/etc RUN_FC_CACHE_TEST=false fc_cachedir=$(TMPDIR)/dummy";
+
+  postInstall = stdenv.lib.optionalString freetype.infinality.useInfinality ''
+    cd "$out/etc/fonts" && tar xvf ${infinality_patch}
+  '';
 
   meta = {
     description = "A library for font customization and configuration";
     homepage = http://fontconfig.org/;
     license = "bsd";
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/freeglut/default.nix b/pkgs/development/libraries/freeglut/default.nix
index 9d599560fc8..6e556a144ce 100644
--- a/pkgs/development/libraries/freeglut/default.nix
+++ b/pkgs/development/libraries/freeglut/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, libXi, libXrandr, libXxf86vm, mesa, x11 }:
 
 stdenv.mkDerivation {
-  name = "freeglut-2.8.0";
+  name = "freeglut-2.8.1";
 
   src = fetchurl {
-    url = mirror://sourceforge/freeglut/freeglut-2.8.0.tar.gz;
-    sha256 = "197293ff886abe613bc9eb4a762d9161b0c9e64b3e8e613ed7c5e353974fba05";
+    url = mirror://sourceforge/freeglut/freeglut-2.8.1.tar.gz;
+    sha256 = "16lrxxxd9ps9l69y3zsw6iy0drwjsp6m26d1937xj71alqk6dr6x";
   };
 
   configureFlags = "--" + (if stdenv.isDarwin then "disable" else "enable") + "-warnings";
 
   buildInputs = [ libXi libXrandr libXxf86vm mesa x11 ];
-  patches = [ ./0001-remove-typedefs-now-living-in-mesa.patch ];
+  # patches = [ ./0001-remove-typedefs-now-living-in-mesa.patch ];
 }
diff --git a/pkgs/development/libraries/freetype/default.nix b/pkgs/development/libraries/freetype/default.nix
index 4c695ab3345..b2e39e41a0b 100644
--- a/pkgs/development/libraries/freetype/default.nix
+++ b/pkgs/development/libraries/freetype/default.nix
@@ -1,24 +1,52 @@
 { stdenv, fetchurl, gnumake
-, # FreeType supports sub-pixel rendering.  This is patented by
+  # FreeType supports sub-pixel rendering.  This is patented by
   # Microsoft, so it is disabled by default.  This option allows it to
   # be enabled.  See http://www.freetype.org/patents.html.
-  useEncumberedCode ? false
+, useEncumberedCode ? false
+, useInfinality ? true
 }:
 
+assert !(useEncumberedCode && useInfinality); # probably wouldn't make sense
+
+let
+
+  version = "2.4.11";
+
+  infinality = rec {
+    inherit useInfinality;
+    vers = "20130104";
+    subvers = "04";
+    sha256 = "0dqglig34lfcw0w6sm6vmich0pcvq303vyh8jzqapvxgvrpr2156";
+
+    base_URL = "http://www.infinality.net/fedora/linux/zips";
+    url = "${base_URL}/freetype-infinality-${version}-${vers}_${subvers}-x86_64.tar.bz2";
+  };
+
+in
+
 stdenv.mkDerivation rec {
-  name = "freetype-2.4.10";
+  name = "freetype-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/freetype/${name}.tar.bz2";
-    sha256 = "0bwrkqpygayfc1rf6rr1nb8l3svgn1fmjz8davg2hnf46cn293hc";
+    sha256 = "0gxyzxqpyf8g85y6g1zc1wqrh71prbbk8xfw4m8rwzb4ck5hp7gg";
   };
 
   outputs = [ "dev" "out" ];
 
   configureFlags = "--disable-static --bindir=$(dev)/bin";
 
-  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString useEncumberedCode
-    "-DFT_CONFIG_OPTION_SUBPIXEL_RENDERING=1";
+  infinality_patch = if useInfinality
+    then fetchurl { inherit (infinality) url sha256; }
+    else null;
+
+  NIX_CFLAGS_COMPILE = with stdenv.lib;
+    " -fno-strict-aliasing" # from Gentoo, see https://bugzilla.redhat.com/show_bug.cgi?id=506840
+    + optionalString useEncumberedCode " -DFT_CONFIG_OPTION_SUBPIXEL_RENDERING=1"
+    + optionalString useInfinality " -DTT_CONFIG_OPTION_SUBPIXEL_HINTING=1";
+
+  patches = [ ./enable-validation.patch ] # from Gentoo
+    ++ stdenv.lib.optional useInfinality [ infinality_patch ];
 
   # The asm for armel is written with the 'asm' keyword.
   CFLAGS = stdenv.lib.optionalString stdenv.isArm "-std=gnu99";
@@ -28,6 +56,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  doCheck = true;
+
   postInstall =
     ''
       mkdir $dev/lib
@@ -42,9 +72,13 @@ stdenv.mkDerivation rec {
     configureFlags = "--disable-static CC_BUILD=gcc";
   };
 
+  passthru = { inherit infinality; }; # for fontconfig
+
   meta = {
     description = "A font rendering engine";
     homepage = http://www.freetype.org/;
-    license = "GPLv2+"; # or the FreeType License (BSD + advertising clause)
+    license = if useEncumberedCode then "unfree"
+      else "GPLv2+"; # or the FreeType License (BSD + advertising clause)
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/freetype/enable-validation.patch b/pkgs/development/libraries/freetype/enable-validation.patch
new file mode 100644
index 00000000000..44f3bf6e1c9
--- /dev/null
+++ b/pkgs/development/libraries/freetype/enable-validation.patch
@@ -0,0 +1,22 @@
+Enables gxvalid and otvalid modules for use with ftvalid.
+
+--- freetype-2.2.1/modules.cfg.orig	2006-07-07 21:01:09.000000000 -0400
++++ freetype-2.2.1/modules.cfg	2006-07-07 21:01:54.000000000 -0400
+@@ -110,7 +110,7 @@
+ AUX_MODULES += cache
+ 
+ # TrueType GX/AAT table validation.  Needs ftgxval.c below.
+-# AUX_MODULES += gxvalid
++AUX_MODULES += gxvalid
+ 
+ # Support for streams compressed with gzip (files with suffix .gz).
+ #
+@@ -124,7 +124,7 @@
+ 
+ # OpenType table validation.  Needs ftotval.c below.
+ #
+-# AUX_MODULES += otvalid
++AUX_MODULES += otvalid
+ 
+ # Auxiliary PostScript driver component to share common code.
+ #
diff --git a/pkgs/development/libraries/gdk-pixbuf/2.26.x.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
index b3bd378e0e9..8306f3831b1 100644
--- a/pkgs/development/libraries/gdk-pixbuf/2.26.x.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -1,11 +1,12 @@
-{ stdenv, fetchurl, pkgconfig, glib, libtiff, libjpeg, libpng, libX11, xz, jasper }:
+{ stdenv, fetchurl, pkgconfig, glib, libtiff, libjpeg, libpng, libX11, xz
+, jasper, libintlOrEmpty }:
 
 stdenv.mkDerivation rec {
-  name = "gdk-pixbuf-2.26.1";
+  name = "gdk-pixbuf-2.28.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gdk-pixbuf/2.26/${name}.tar.xz";
-    sha256 = "a60af12b58d9cc15ba4c680c6730ce5d38e8d664af1d575a379385b94b4ec7ba";
+    url = "mirror://gnome/sources/gdk-pixbuf/2.28/${name}.tar.xz";
+    sha256 = "1fy2a05xhfg7gy4l4aajsbmgj62zxhikdxqh6bicihxmzm1vg85y";
   };
 
   outputs = [ "dev" "out" "bin" "doc" ];
@@ -13,7 +14,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   # !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
-  buildInputs = [ libX11 ];
+  buildInputs = [ libX11 libintlOrEmpty ];
 
   nativeBuildInputs = [ pkgconfig ];
 
diff --git a/pkgs/development/libraries/glew/default.nix b/pkgs/development/libraries/glew/default.nix
index 77686c9a7de..ebd60f61057 100644
--- a/pkgs/development/libraries/glew/default.nix
+++ b/pkgs/development/libraries/glew/default.nix
@@ -10,6 +10,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ mesa x11 libXmu libXi ];
 
+  patchPhase = ''
+    sed -i 's|lib64|lib|' config/Makefile.linux
+  '';
+
   installPhase = ''
     GLEW_DEST=$out make install
     mkdir -pv $out/share/doc/glew
diff --git a/pkgs/development/libraries/glib/2.34.x.nix b/pkgs/development/libraries/glib/default.nix
index abc36908105..f9229793165 100644
--- a/pkgs/development/libraries/glib/2.34.x.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, gettext, perl, libiconvOrNull, zlib, libffi
-, python, pcre }:
+{ stdenv, fetchurl, pkgconfig, gettext, perl, libiconvOrEmpty, zlib, libffi
+, python, pcre, libelf }:
 
 # TODO:
 # * Add gio-module-fam
@@ -11,31 +11,56 @@
 #     Reminder: add 'sed -e 's@python2\.[0-9]@python@' -i
 #       $out/bin/gtester-report' to postInstall if this is solved
 
+let
+  # some packages don't get "Cflags" from pkgconfig correctly
+  # and then fail to build when directly including like <glib/...>
+  flattenInclude = ''
+    for dir in $out/include/*; do
+      cp -r $dir/* "$out/include/"
+      rm -r "$dir"
+      ln -s . "$dir"
+    done
+    ln -sr -t "$out/include/" $out/lib/*/include/* 2>/dev/null || true
+  '';
+in
+
 stdenv.mkDerivation (rec {
-  name = "glib-2.34.0";
+  name = "glib-2.36.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/glib/2.34/${name}.tar.xz";
-    sha256 = "f69b112f8848be35139d9099b62bc81649241f78f6a775516f0d4c9b47f65144";
+    url = "mirror://gnome/sources/glib/2.36/${name}.tar.xz";
+    sha256 = "090bw5par3dfy5m6dhq393pmy92zpw3d7rgbzqjc14jfg637bqvx";
   };
 
   outputs = [ "dev" "out" "bin" "doc" ];
 
   # configure script looks for d-bus but it is only needed for tests
-  buildInputs = [ libiconvOrNull ];
+  buildInputs = [ libelf ];
 
   nativeBuildInputs = [ perl pkgconfig gettext python ];
 
-  propagatedBuildInputs = [ pcre zlib libffi ];
+  propagatedBuildInputs = [ pcre zlib libffi ] ++ libiconvOrEmpty;
 
   configureFlags = "--with-pcre=system --disable-fam";
 
+  postConfigure = "sed '/SANE_MALLOC_PROTOS/s,^,//,' -i config.h" # https://bugzilla.gnome.org/show_bug.cgi?id=698716 :-)
+    + stdenv.lib.optionalString stdenv.isDarwin ''
+      sed '24 i #include <Foundation/Foundation.h>'
+    '';
+
   enableParallelBuilding = true;
 
-  passthru.gioModuleDir = "lib/gio/modules";
+  passthru = {
+     gioModuleDir = "lib/gio/modules";
+     inherit flattenInclude;
+  };
 
   meta = {
     description = "GLib, a C library of programming buildings blocks";
+    homepage    = http://www.gtk.org/;
+    license     = "LGPLv2+";
+    maintainers = with stdenv.lib.maintainers; [ raskin urkud lovek323 ];
+    platforms   = stdenv.lib.platforms.unix;
 
     longDescription = ''
       GLib provides the core application building blocks for libraries
@@ -43,13 +68,6 @@ stdenv.mkDerivation (rec {
       system used in GNOME, the main loop implementation, and a large
       set of utility functions for strings and common data structures.
     '';
-
-    homepage = http://www.gtk.org/;
-
-    license = "LGPLv2+";
-
-    maintainers = with stdenv.lib.maintainers; [raskin urkud];
-    platforms = stdenv.lib.platforms.linux;
   };
 }
 
diff --git a/pkgs/development/libraries/glibc/2.17/common.nix b/pkgs/development/libraries/glibc/2.17/common.nix
index 413a0d7aae8..e0588a6275d 100644
--- a/pkgs/development/libraries/glibc/2.17/common.nix
+++ b/pkgs/development/libraries/glibc/2.17/common.nix
@@ -55,6 +55,12 @@ stdenv.mkDerivation ({
          rfc3484_sort: Assertion `src->results[i].native == -1 ||
          src->results[i].native == a2_native' failed." crashes. */
       ./glibc-rh739743.patch
+
+      /* Fix buffer overrun in regexp matcher. */
+      ./cve-2013-0242.patch
+
+      /* Fix stack overflow in getaddrinfo with many results. */
+      ./cve-2013-1914.patch
     ];
 
   postPatch = ''
@@ -81,7 +87,7 @@ stdenv.mkDerivation ({
        then "--enable-profile"
        else "--disable-profile")
     ] ++ stdenv.lib.optionals (cross == null && kernelHeaders != null) [
-      "--enable-kernel=2.6.35"
+      "--enable-kernel=2.6.32"
     ] ++ stdenv.lib.optionals (cross != null) [
       (if cross.withTLS then "--with-tls" else "--without-tls")
       (if cross.float == "soft" then "--without-fp" else "--with-fp")
diff --git a/pkgs/development/libraries/glibc/2.17/cve-2013-0242.patch b/pkgs/development/libraries/glibc/2.17/cve-2013-0242.patch
new file mode 100644
index 00000000000..1d6557071e1
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.17/cve-2013-0242.patch
@@ -0,0 +1,87 @@
+When extending regex buffers, make sure we allocate enough room for the
+state log.  Merely doubling the space may not be enough if the current
+node has accepted a long run of characters.  This part of the code only
+triggers with multibyte characters.
+
+Andreas.
+
+	[BZ #15078]
+	* posix/regexec.c (extend_buffers): Add parameter min_len.
+	(check_matching): Pass minimum needed length.
+	(clean_state_log_if_needed): Likewise.
+	(get_subexp): Likewise.
+	* posix/Makefile (tests): Add bug-regex34.
+	(bug-regex34-ENV): Define.
+	* posix/bug-regex34.c: New file.
+
+diff --git a/posix/regexec.c b/posix/regexec.c
+index 7f2de85..5ca2bf6 100644
+--- a/posix/regexec.c
++++ b/posix/regexec.c
+@@ -197,7 +197,7 @@ static int group_nodes_into_DFAstates (const re_dfa_t *dfa,
+ static int check_node_accept (const re_match_context_t *mctx,
+ 			      const re_token_t *node, int idx)
+      internal_function;
+-static reg_errcode_t extend_buffers (re_match_context_t *mctx)
++static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len)
+      internal_function;
+ 
+ /* Entry point for POSIX code.  */
+@@ -1160,7 +1160,7 @@ check_matching (re_match_context_t *mctx, int fl_longest_match,
+ 	  || (BE (next_char_idx >= mctx->input.valid_len, 0)
+ 	      && mctx->input.valid_len < mctx->input.len))
+ 	{
+-	  err = extend_buffers (mctx);
++	  err = extend_buffers (mctx, next_char_idx + 1);
+ 	  if (BE (err != REG_NOERROR, 0))
+ 	    {
+ 	      assert (err == REG_ESPACE);
+@@ -1738,7 +1738,7 @@ clean_state_log_if_needed (re_match_context_t *mctx, int next_state_log_idx)
+ 	  && mctx->input.valid_len < mctx->input.len))
+     {
+       reg_errcode_t err;
+-      err = extend_buffers (mctx);
++      err = extend_buffers (mctx, next_state_log_idx + 1);
+       if (BE (err != REG_NOERROR, 0))
+ 	return err;
+     }
+@@ -2792,7 +2792,7 @@ get_subexp (re_match_context_t *mctx, int bkref_node, int bkref_str_idx)
+ 		  if (bkref_str_off >= mctx->input.len)
+ 		    break;
+ 
+-		  err = extend_buffers (mctx);
++		  err = extend_buffers (mctx, bkref_str_off + 1);
+ 		  if (BE (err != REG_NOERROR, 0))
+ 		    return err;
+ 
+@@ -4102,7 +4102,7 @@ check_node_accept (const re_match_context_t *mctx, const re_token_t *node,
+ 
+ static reg_errcode_t
+ internal_function __attribute_warn_unused_result__
+-extend_buffers (re_match_context_t *mctx)
++extend_buffers (re_match_context_t *mctx, int min_len)
+ {
+   reg_errcode_t ret;
+   re_string_t *pstr = &mctx->input;
+@@ -4111,8 +4111,10 @@ extend_buffers (re_match_context_t *mctx)
+   if (BE (INT_MAX / 2 / sizeof (re_dfastate_t *) <= pstr->bufs_len, 0))
+     return REG_ESPACE;
+ 
+-  /* Double the lengthes of the buffers.  */
+-  ret = re_string_realloc_buffers (pstr, MIN (pstr->len, pstr->bufs_len * 2));
++  /* Double the lengthes of the buffers, but allocate at least MIN_LEN.  */
++  ret = re_string_realloc_buffers (pstr,
++				   MAX (min_len,
++					MIN (pstr->len, pstr->bufs_len * 2)));
+   if (BE (ret != REG_NOERROR, 0))
+     return ret;
+ 
+-- 
+1.8.1.2
+
+
+-- 
+Andreas Schwab, SUSE Labs, schwab@suse.de
+GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
+"And now for something completely different."
+
diff --git a/pkgs/development/libraries/glibc/2.17/cve-2013-1914.patch b/pkgs/development/libraries/glibc/2.17/cve-2013-1914.patch
new file mode 100644
index 00000000000..c2963249f5e
--- /dev/null
+++ b/pkgs/development/libraries/glibc/2.17/cve-2013-1914.patch
@@ -0,0 +1,52 @@
+From: Andreas Schwab <schwab@suse.de>
+Date: Thu, 21 Mar 2013 14:50:27 +0000 (+0100)
+Subject: Fix stack overflow in getaddrinfo with many results
+X-Git-Url: http://sourceware.org/git/?p=glibc.git;a=commitdiff_plain;h=1cef1b19089528db11f221e938f60b9b048945d7
+
+Fix stack overflow in getaddrinfo with many results
+---
+
+diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
+index d95c2d1..2309281 100644
+--- a/sysdeps/posix/getaddrinfo.c
++++ b/sysdeps/posix/getaddrinfo.c
+@@ -2489,11 +2489,27 @@ getaddrinfo (const char *name, const char *service,
+       __typeof (once) old_once = once;
+       __libc_once (once, gaiconf_init);
+       /* Sort results according to RFC 3484.  */
+-      struct sort_result results[nresults];
+-      size_t order[nresults];
++      struct sort_result *results;
++      size_t *order;
+       struct addrinfo *q;
+       struct addrinfo *last = NULL;
+       char *canonname = NULL;
++      bool malloc_results;
++
++      malloc_results
++	= !__libc_use_alloca (nresults * (sizeof (*results) + sizeof (size_t)));
++      if (malloc_results)
++	{
++	  results = malloc (nresults * (sizeof (*results) + sizeof (size_t)));
++	  if (results == NULL)
++	    {
++	      __free_in6ai (in6ai);
++	      return EAI_MEMORY;
++	    }
++	}
++      else
++	results = alloca (nresults * (sizeof (*results) + sizeof (size_t)));
++      order = (size_t *) (results + nresults);
+ 
+       /* Now we definitely need the interface information.  */
+       if (! check_pf_called)
+@@ -2664,6 +2680,9 @@ getaddrinfo (const char *name, const char *service,
+ 
+       /* Fill in the canonical name into the new first entry.  */
+       p->ai_canonname = canonname;
++
++      if (malloc_results)
++	free (results);
+     }
+ 
+   __free_in6ai (in6ai);
diff --git a/pkgs/development/libraries/gmime/default.nix b/pkgs/development/libraries/gmime/default.nix
index 693a8b88340..8394f5c4e62 100644
--- a/pkgs/development/libraries/gmime/default.nix
+++ b/pkgs/development/libraries/gmime/default.nix
@@ -1,16 +1,19 @@
-{ stdenv, fetchurl, pkgconfig, glib, zlib }:
+{ stdenv, fetchurl, pkgconfig, glib, zlib, libgpgerror }:
 
 stdenv.mkDerivation rec {
-  name = "gmime-2.4.24";
+  name = "gmime-2.6.15";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gmime/2.4/${name}.tar.gz";
-    sha256 = "2f538d68e215f075d16575a6da9acb87983db9e2df0d7d403858048881a0dd15";
+    url = "mirror://gnome/sources/gmime/2.6/${name}.tar.xz";
+    sha256 = "16n9gmlwn6rphi59hrwy6dpn785s3r13h2kmrn3k61l2kfws1hml";
   };
 
-  outputs = [ "dev" "out" "bin" "doc" ];
+  outputs = [ "dev" "out" "doc" ];
 
-  buildInputs = [ pkgconfig glib zlib ];
+  nativeBuildInputs = [ pkgconfig ];
+  propagatedBuildInputs = [ glib zlib libgpgerror ];
+
+  enableParallelBuilding = true;
 
   meta = {
     homepage = http://spruce.sourceforge.net/gmime/;
diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix
index fe1d519f562..b96d5b25bb1 100644
--- a/pkgs/development/libraries/gobject-introspection/default.nix
+++ b/pkgs/development/libraries/gobject-introspection/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchurl, glib, flex, bison, pkgconfig, libffi, python }:
+{ stdenv, fetchurl, glib, flex, bison, pkgconfig, libffi, python, gdk_pixbuf }:
 
 stdenv.mkDerivation rec {
-  name = "gobject-introspection-1.34.0";
+  name = "gobject-introspection-1.34.2";
 
-  buildInputs = [ flex bison glib pkgconfig python ];
+  buildInputs = [ flex bison glib pkgconfig python gdk_pixbuf ];
   propagatedBuildInputs = [ libffi ];
 
   # Tests depend on cairo, which is undesirable (it pulls in lots of
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/gobject-introspection/1.34/${name}.tar.xz";
-    sha256 = "80e211ea95404fc7c5fa3b04ba69ee0b29af70847af315155ab06b8cff832c85";
+    sha256 = "0a9lq0y67sr3g37l1hy0biqn046jr9wnd05hvwi8j8g2bjilhydw";
   };
 
   postInstall = "rm -rf $out/share/gtk-doc";
diff --git a/pkgs/development/libraries/gpgme/default.nix b/pkgs/development/libraries/gpgme/default.nix
index 4ba4cbb3347..9b56344743d 100644
--- a/pkgs/development/libraries/gpgme/default.nix
+++ b/pkgs/development/libraries/gpgme/default.nix
@@ -11,16 +11,16 @@ let
     "${gnupg}/bin/gpg2";
 in
 stdenv.mkDerivation rec {
-  name = "gpgme-1.3.1";
+  name = "gpgme-1.4.1";
   
   src = fetchurl {
     url = "ftp://ftp.gnupg.org/gcrypt/gpgme/${name}.tar.bz2";
-    sha256 = "1m7l7nicn6gd952cgspv9xr8whqivbg33nbg8kbpj3dffnl2gvqm";
+    sha1 = "d6110763e7459214fd72705e87ebc682e3b5815e";
   };
   
   propagatedBuildInputs = [ libgpgerror glib libassuan pth ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig gnupg ];
 
   configureFlags = "--with-gpg=${gpgPath}";
 }
diff --git a/pkgs/development/libraries/gstreamer/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/gstreamer/default.nix
index 5d33e7bff03..392e8e31f43 100644
--- a/pkgs/development/libraries/gstreamer/gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/gstreamer/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, perl, bison, flex, pkgconfig, glib, libxml2 }:
+{ fetchurl, stdenv, perl, bison, flex, pkgconfig, glib, libxml2, libintlOrEmpty }:
 
 stdenv.mkDerivation rec {
   name = "gstreamer-0.10.36";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ perl bison flex pkgconfig ];
-  propagatedBuildInputs = [ glib libxml2 ];
+  propagatedBuildInputs = [ glib libxml2 ] ++ libintlOrEmpty;
 
   patchPhase = ''
     sed -i -e 's/^   /\t/' docs/gst/Makefile.in docs/libs/Makefile.in docs/plugins/Makefile.in
diff --git a/pkgs/development/libraries/gtk+/2.24.x.nix b/pkgs/development/libraries/gtk+/2.x.nix
index ed5694d1396..e5aadea9507 100644
--- a/pkgs/development/libraries/gtk+/2.24.x.nix
+++ b/pkgs/development/libraries/gtk+/2.x.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, pkgconfig, glib, atk, pango, cairo, perl, xlibs
-, gdk_pixbuf, xz
-, xineramaSupport ? true
+{ stdenv, fetchurl, pkgconfig, gettext, glib, atk, pango, cairo, perl, xlibs
+, gdk_pixbuf, libintlOrEmpty, x11
+, xineramaSupport ? stdenv.isLinux
 , cupsSupport ? true, cups ? null
 }:
 
@@ -8,25 +8,29 @@ assert xineramaSupport -> xlibs.libXinerama != null;
 assert cupsSupport -> cups != null;
 
 stdenv.mkDerivation rec {
-  name = "gtk+-2.24.14";
+  name = "gtk+-2.24.18";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtk+/2.24/${name}.tar.xz";
-    sha256 = "8bd1b8b511a3004e8972badf467ce829e6855cdff15540b9344dc934c68008ac";
+    sha256 = "1193frzg0qrwa885w77kd055zfpbdjwby88xn2skpx9g4w0k35kc";
   };
 
   outputs = [ "dev" "out" "bin" "doc" ];
 
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [ perl pkgconfig ];
+  NIX_CFLAGS_COMPILE = "-I${cairo}/include/cairo";
 
-  propagatedBuildInputs =
-    [ xlibs.xlibs glib atk pango gdk_pixbuf cairo
-      xlibs.libXrandr xlibs.libXrender xlibs.libXcomposite xlibs.libXi
-    ]
-    ++ stdenv.lib.optional xineramaSupport xlibs.libXinerama
-    ++ stdenv.lib.optionals cupsSupport [ cups ];
+  nativeBuildInputs = [ perl pkgconfig gettext ];
+
+  propagatedBuildInputs = with xlibs; with stdenv.lib;
+    [ glib cairo pango gdk_pixbuf atk ]
+    ++ optionals stdenv.isLinux
+      [ libXrandr libXrender libXcomposite libXi libXcursor ]
+    ++ optional stdenv.isDarwin x11
+    ++ libintlOrEmpty
+    ++ optional xineramaSupport libXinerama
+    ++ optionals cupsSupport [ cups ];
 
   configureFlags = "--with-xinput=yes";
 
@@ -49,6 +53,6 @@ stdenv.mkDerivation rec {
     license = "LGPLv2+";
 
     maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/gtk+/3.2.x.nix b/pkgs/development/libraries/gtk+/3.x.nix
index cace1b626f4..f89b521758c 100644
--- a/pkgs/development/libraries/gtk+/3.2.x.nix
+++ b/pkgs/development/libraries/gtk+/3.x.nix
@@ -1,29 +1,28 @@
-{ stdenv, fetchurl, pkgconfig, glib, atk, pango, cairo, perl, xlibs
-, gdk_pixbuf, xz
-, xineramaSupport ? true
-, cupsSupport ? true, cups ? null
+{ stdenv, fetchurl, pkgconfig, gettext
+, expat, glib, cairo, pango, gdk_pixbuf, atk, at_spi2_atk, xlibs, x11
+, xineramaSupport ? stdenv.isLinux
+, cupsSupport ? stdenv.isLinux, cups ? null
 }:
 
 assert xineramaSupport -> xlibs.libXinerama != null;
 assert cupsSupport -> cups != null;
 
 stdenv.mkDerivation rec {
-  name = "gtk+-3.2.4";
+  name = "gtk+-3.8.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtk+/3.2/${name}.tar.xz";
-    sha256 = "f981bf514858c00d7084bd6f6c34b3c60b8aebdb959e7aca6faa59ed67c136bd";
+    url = "mirror://gnome/sources/gtk+/3.8/${name}.tar.xz";
+    sha256 = "15zjmyky4yw70ipi12dllira4av8wjpw5f7g9kbrbpx12nf0ra0w";
   };
 
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [ perl pkgconfig ];
-
-  propagatedBuildInputs =
-    [ xlibs.xlibs glib atk pango gdk_pixbuf cairo
-      xlibs.libXrandr xlibs.libXrender xlibs.libXcomposite xlibs.libXi
-    ]
-    ++ stdenv.lib.optional xineramaSupport xlibs.libXinerama
+  nativeBuildInputs = [ pkgconfig gettext ];
+  propagatedBuildInputs = with xlibs; with stdenv.lib;
+    [ expat glib cairo pango gdk_pixbuf atk at_spi2_atk ]
+    ++ optionals stdenv.isLinux [ libXrandr libXrender libXcomposite libXi libXcursor ]
+    ++ optional stdenv.isDarwin x11
+    ++ stdenv.lib.optional xineramaSupport libXinerama
     ++ stdenv.lib.optionals cupsSupport [ cups ];
 
   postInstall = "rm -rf $out/share/gtk-doc";
@@ -47,6 +46,6 @@ stdenv.mkDerivation rec {
     license = "LGPLv2+";
 
     maintainers = with stdenv.lib.maintainers; [urkud raskin];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/gtk-sharp-1/default.nix b/pkgs/development/libraries/gtk-sharp-1/default.nix
index 2110884a022..aad440bf672 100644
--- a/pkgs/development/libraries/gtk-sharp-1/default.nix
+++ b/pkgs/development/libraries/gtk-sharp-1/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
 
   builder = ./builder.sh;
   src = fetchurl {
-    url = http://nixos.org/tarballs/gtk-sharp-1.0.6.tar.gz;
+    url = http://tarballs.nixos.org/gtk-sharp-1.0.6.tar.gz;
     md5 = "2651d14fe77174ab20b8af53d150ee11";
   };
 
diff --git a/pkgs/development/libraries/gtkmm/3.x.nix b/pkgs/development/libraries/gtkmm/3.x.nix
index d3681b4b386..5c4a13fe507 100644
--- a/pkgs/development/libraries/gtkmm/3.x.nix
+++ b/pkgs/development/libraries/gtkmm/3.x.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, gtk3, glibmm, cairomm, pangomm, atkmm }:
 
-stdenv.mkDerivation {
-  name = "gtkmm-3.2.0";
+stdenv.mkDerivation rec {
+  name = "gtkmm-3.7.12"; # gnome 3.8 release; stable 3.6 has problems with our new glibc
 
   src = fetchurl {
-    url = mirror://gnome/sources/gtkmm/3.2/gtkmm-3.2.0.tar.xz;
-    sha256 = "1wkljr2vjvjg5mggi4rvk9k4j2kzh8lc106k2yp8gqjlhk2xm5b1";
+    url = "mirror://gnome/sources/gtkmm/3.7/${name}.tar.xz";
+    sha256 = "05nrilm34gid7kqlq09hcdd7942prn2vbr1qgqvdhgy4x8pvz9p9";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/gtkmozembed-sharp/default.nix b/pkgs/development/libraries/gtkmozembed-sharp/default.nix
index 43476d6e78a..b54f3cc2f61 100644
--- a/pkgs/development/libraries/gtkmozembed-sharp/default.nix
+++ b/pkgs/development/libraries/gtkmozembed-sharp/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation {
 
   builder = ./builder.sh;
   src = fetchurl {
-    url = http://nixos.org/tarballs/gtkmozembed-sharp-0.7-pre41601.tar.bz2;
+    url = http://tarballs.nixos.org/gtkmozembed-sharp-0.7-pre41601.tar.bz2;
     md5 = "34aac139377296791acf3af9b5dc27ed";
   };
 
diff --git a/pkgs/development/libraries/gtksourceview-sharp/default.nix b/pkgs/development/libraries/gtksourceview-sharp/default.nix
index abd97ca777b..56c6e1b1ee5 100644
--- a/pkgs/development/libraries/gtksourceview-sharp/default.nix
+++ b/pkgs/development/libraries/gtksourceview-sharp/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation {
 
   builder = ./builder.sh;
   src = fetchurl {
-    url = http://nixos.org/tarballs/gtksourceview-sharp-0.6-pre40261.tar.bz2;
+    url = http://tarballs.nixos.org/gtksourceview-sharp-0.6-pre40261.tar.bz2;
     md5 = "8bc26c182bd897f50988e110a9a11f34";
   };
 
diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix
index 5755e747a6b..4fb024db0e1 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl, pkgconfig, glib, freetype }:
+{ stdenv, fetchurl, pkgconfig, glib, freetype, libintlOrEmpty }:
 
 stdenv.mkDerivation rec {
-  name = "harfbuzz-0.9.4";
+  name = "harfbuzz-0.9.12";
 
   src = fetchurl {
     url = "http://www.freedesktop.org/software/harfbuzz/release/${name}.tar.bz2";
-    sha256 = "2572f9a810d17a735ef565115463827d075af2371ee5b68e6d77231381f4bddc";
+    sha256 = "19cx5y2m20rp7z5j7mwqfb4ph2g8lrri69zim44x362y4w5gfly6";
   };
 
-  buildInputs = [ pkgconfig glib freetype ];
+  buildInputs = [ pkgconfig glib freetype ] ++ libintlOrEmpty;
 
   meta = {
     description = "An OpenType text shaping engine";
diff --git a/pkgs/development/libraries/haskell/Agda/default.nix b/pkgs/development/libraries/haskell/Agda/default.nix
index f6589dc53be..64c9d9d51e5 100644
--- a/pkgs/development/libraries/haskell/Agda/default.nix
+++ b/pkgs/development/libraries/haskell/Agda/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "Agda";
-  version = "2.3.2";
-  sha256 = "1xp0qvag6wx6zjwhmb7nm13hp63vlh8h4a2rkc85rsh610m0nynl";
+  version = "2.3.2.1";
+  sha256 = "1dlf0cs913ma8wjvra8x6p0lwi1pk7ynbdq4lxgbdfgqkbnh43kr";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/Chart-gtk/default.nix b/pkgs/development/libraries/haskell/Chart-gtk/default.nix
new file mode 100644
index 00000000000..dd6c54cf6b8
--- /dev/null
+++ b/pkgs/development/libraries/haskell/Chart-gtk/default.nix
@@ -0,0 +1,18 @@
+{ cabal, cairo, Chart, colour, dataAccessor, dataAccessorTemplate
+, gtk, mtl, time
+}:
+
+cabal.mkDerivation (self: {
+  pname = "Chart-gtk";
+  version = "0.17";
+  sha256 = "1i411kdpz75azyhfaryazr0bpij5xcl0y82m9a7k23w8mhybqwc7";
+  buildDepends = [
+    cairo Chart colour dataAccessor dataAccessorTemplate gtk mtl time
+  ];
+  meta = {
+    homepage = "https://github.com/timbod7/haskell-chart/wiki";
+    description = "Utility functions for using the chart library with GTK";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/Chart/default.nix b/pkgs/development/libraries/haskell/Chart/default.nix
index a59e4ca7f42..dafa834e4d4 100644
--- a/pkgs/development/libraries/haskell/Chart/default.nix
+++ b/pkgs/development/libraries/haskell/Chart/default.nix
@@ -4,13 +4,13 @@
 
 cabal.mkDerivation (self: {
   pname = "Chart";
-  version = "0.16";
-  sha256 = "1mb8hgxj0i5s7l061pfn49m5f6qdwvmgy6ni7jmg85vpy6b7jra3";
+  version = "0.17";
+  sha256 = "1ip1a61ryypwfzj6dc6n6pl92rflf7lqf1760ppjyg05q5pn6qxg";
   buildDepends = [
     cairo colour dataAccessor dataAccessorTemplate mtl time
   ];
   meta = {
-    homepage = "http://www.dockerz.net/software/chart.html";
+    homepage = "https://github.com/timbod7/haskell-chart/wiki";
     description = "A library for generating 2D Charts and Plots";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
diff --git a/pkgs/development/libraries/haskell/JuicyPixels/default.nix b/pkgs/development/libraries/haskell/JuicyPixels/default.nix
index c289c009256..2a7bc888c48 100644
--- a/pkgs/development/libraries/haskell/JuicyPixels/default.nix
+++ b/pkgs/development/libraries/haskell/JuicyPixels/default.nix
@@ -1,17 +1,17 @@
-{ cabal, binary, deepseq, mtl, primitive, transformers, vector
-, zlib
+{ cabal, binary, deepseq, mmap, mtl, primitive, transformers
+, vector, zlib
 }:
 
 cabal.mkDerivation (self: {
   pname = "JuicyPixels";
-  version = "3.0";
-  sha256 = "1qhhhnfs12r67nf07bx58n8a2v6wikan8cqs1wnjnaad8yk2spsg";
+  version = "3.1";
+  sha256 = "1z3adva85qgdyx85hldqi99lnb3pg7a42q44zxil4gxwi62pw4xr";
   buildDepends = [
-    binary deepseq mtl primitive transformers vector zlib
+    binary deepseq mmap mtl primitive transformers vector zlib
   ];
   meta = {
     homepage = "https://github.com/Twinside/Juicy.Pixels";
-    description = "Picture loading/serialization (in png, jpeg, bitmap, radiance and gif)";
+    description = "Picture loading/serialization (in png, jpeg, bitmap, gif, tiff and radiance)";
     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 2fa427b1f57..b24e81300b6 100644
--- a/pkgs/development/libraries/haskell/ListLike/default.nix
+++ b/pkgs/development/libraries/haskell/ListLike/default.nix
@@ -1,11 +1,11 @@
-{ cabal }:
+{ cabal, HUnit, QuickCheck, random, text, vector }:
 
 cabal.mkDerivation (self: {
   pname = "ListLike";
-  version = "3.1.7.1";
-  sha256 = "1g3i8iz71x3j41ji9xsbh84v5hj3mxls0zqnx27sb31mx6bic4w1";
-  isLibrary = true;
-  isExecutable = true;
+  version = "4.0.0";
+  sha256 = "13dw8pkj8dwxb81gbcm7gn221zyr3ck9s9s1iv7v1b69chv0zyxk";
+  buildDepends = [ text vector ];
+  testDepends = [ HUnit QuickCheck random text vector ];
   meta = {
     homepage = "http://software.complete.org/listlike";
     description = "Generic support for list-like structures";
diff --git a/pkgs/development/libraries/haskell/accelerate-cuda/default.nix b/pkgs/development/libraries/haskell/accelerate-cuda/default.nix
index aee3b666890..53f1514bcb6 100644
--- a/pkgs/development/libraries/haskell/accelerate-cuda/default.nix
+++ b/pkgs/development/libraries/haskell/accelerate-cuda/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "accelerate-cuda";
-  version = "0.13.0.1";
-  sha256 = "0nswa73ajvmh1s6n2nks4zm3ybfm8v46wd789cs09f5s90ingpsj";
+  version = "0.13.0.3";
+  sha256 = "1y0v7w08pywb8qlw0b5aw4f8pkx4bjlfwxpqq2zfqmjsclnlifkb";
   buildDepends = [
     accelerate binary cryptohash cuda fclabels filepath hashable
     hashtables languageCQuote mainlandPretty mtl SafeSemaphore srcloc
diff --git a/pkgs/development/libraries/haskell/accelerate-io/default.nix b/pkgs/development/libraries/haskell/accelerate-io/default.nix
index 3daa16d87c9..48c2ea71e17 100644
--- a/pkgs/development/libraries/haskell/accelerate-io/default.nix
+++ b/pkgs/development/libraries/haskell/accelerate-io/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "accelerate-io";
-  version = "0.13.0.1";
-  sha256 = "0wjprbhcddnjqbhmpxiwq73hazdnhafhjj7mpvpxhs9pz1dbv89h";
+  version = "0.13.0.2";
+  sha256 = "0lm1kkjs5gbd70k554vi9977v4bxxcxaw39r9wmwxf8nx2qxvshh";
   buildDepends = [ accelerate bmp repa vector ];
   meta = {
     homepage = "https://github.com/AccelerateHS/accelerate-io";
diff --git a/pkgs/development/libraries/haskell/accelerate/default.nix b/pkgs/development/libraries/haskell/accelerate/default.nix
index b91de6de44e..c2484116f46 100644
--- a/pkgs/development/libraries/haskell/accelerate/default.nix
+++ b/pkgs/development/libraries/haskell/accelerate/default.nix
@@ -2,10 +2,9 @@
 
 cabal.mkDerivation (self: {
   pname = "accelerate";
-  version = "0.13.0.1";
-  sha256 = "01vkvvvzlj023cwxz90clrcgz4xyz0nb8idm1zad21gzrij14915";
+  version = "0.13.0.5";
+  sha256 = "1vqkv3k0w1zy0111a786npf3hypbcg675lbdkv2cf3zx5hqcnn6j";
   buildDepends = [ fclabels hashable hashtables ];
-  noHaddock = true;
   meta = {
     homepage = "https://github.com/AccelerateHS/accelerate/";
     description = "An embedded language for accelerated array processing";
diff --git a/pkgs/development/libraries/haskell/acid-state/default.nix b/pkgs/development/libraries/haskell/acid-state/default.nix
index 10f222cfe10..dcd6698a5a2 100644
--- a/pkgs/development/libraries/haskell/acid-state/default.nix
+++ b/pkgs/development/libraries/haskell/acid-state/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "acid-state";
-  version = "0.8.3";
-  sha256 = "1n7vafw3jz7kmlp5jqn1wv0ip2rcbyfx0cdi2m1a2lvpi6dh97gc";
+  version = "0.10.0";
+  sha256 = "0jjjh8l6ka8kawgp1gm75is4ajavl7nd6b2l717wjs8sy93qnzsc";
   buildDepends = [
     cereal extensibleExceptions filepath mtl network safecopy stm
   ];
diff --git a/pkgs/development/libraries/haskell/binary/0.6.0.0.nix b/pkgs/development/libraries/haskell/binary/0.6.0.0.nix
new file mode 100644
index 00000000000..01e909212e8
--- /dev/null
+++ b/pkgs/development/libraries/haskell/binary/0.6.0.0.nix
@@ -0,0 +1,13 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "binary";
+  version = "0.6.0.0";
+  sha256 = "0p72w7f9nn19g2wggsh8x4z7y9s174f3drz9a5ln4x7h554swcxv";
+  meta = {
+    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/binary/default.nix b/pkgs/development/libraries/haskell/binary/0.7.1.0.nix
index 245c80ef1cc..245c80ef1cc 100644
--- a/pkgs/development/libraries/haskell/binary/default.nix
+++ b/pkgs/development/libraries/haskell/binary/0.7.1.0.nix
diff --git a/pkgs/development/libraries/haskell/bytedump/default.nix b/pkgs/development/libraries/haskell/bytedump/default.nix
new file mode 100644
index 00000000000..8290717fa4b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/bytedump/default.nix
@@ -0,0 +1,15 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "bytedump";
+  version = "1.0";
+  sha256 = "1pf01mna3isx3i7m50yz3pw5ygz5sg8i8pshjb3yw8q41w2ba5xf";
+  isLibrary = true;
+  isExecutable = true;
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-bytedump";
+    description = "Flexible byte dump helpers for human readers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/classy-prelude/default.nix b/pkgs/development/libraries/haskell/classy-prelude/default.nix
index 51a2d6c55ba..14695fd08f5 100644
--- a/pkgs/development/libraries/haskell/classy-prelude/default.nix
+++ b/pkgs/development/libraries/haskell/classy-prelude/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "classy-prelude";
-  version = "0.5.7";
-  sha256 = "1wq8la7nq3dh21yqwcjhwgy5s5mpqlvmrfma48v8ch6w4wwb0sqz";
+  version = "0.5.8";
+  sha256 = "1yq2x3mfkasprmsx1gracjhih9l9x0dsq6pdf90khlcl11qh57ir";
   buildDepends = [
     basicPrelude hashable liftedBase monadControl systemFilepath text
     transformers unorderedContainers vector
diff --git a/pkgs/development/libraries/haskell/concurrent-extra/default.nix b/pkgs/development/libraries/haskell/concurrent-extra/default.nix
index db380f03b5b..9f97f730472 100644
--- a/pkgs/development/libraries/haskell/concurrent-extra/default.nix
+++ b/pkgs/development/libraries/haskell/concurrent-extra/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "concurrent-extra";
-  version = "0.7.0.5";
-  sha256 = "0g1ckrwgdyrlp1m352ivplajqzqhw5ymlkb4miiv7c5i9xyyyqnc";
+  version = "0.7.0.6";
+  sha256 = "12wq86hkgy22qydkj4fw6vb7crzv3010c2mkhsph4rdynr0v588i";
   buildDepends = [ baseUnicodeSymbols stm unboundedDelays ];
   testDepends = [
     baseUnicodeSymbols HUnit stm testFramework testFrameworkHunit
diff --git a/pkgs/development/libraries/haskell/contravariant/default.nix b/pkgs/development/libraries/haskell/contravariant/default.nix
index 2c967d26085..e1f5e2ae567 100644
--- a/pkgs/development/libraries/haskell/contravariant/default.nix
+++ b/pkgs/development/libraries/haskell/contravariant/default.nix
@@ -2,12 +2,12 @@
 
 cabal.mkDerivation (self: {
   pname = "contravariant";
-  version = "0.4";
-  sha256 = "1nqslc9vcx6v6c33fn7mvb1xhr33yl3ja92p788zx8z1drx9cqc3";
+  version = "0.4.1";
+  sha256 = "0alzl47lqzw9fqjqxdfy40f1aynd8mc00b2h7fj2ch0zq82hm85q";
   buildDepends = [ tagged transformers transformersCompat ];
   meta = {
     homepage = "http://github.com/ekmett/contravariant/";
-    description = "Haskell 98 contravariant functors";
+    description = "Contravariant functors";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
   };
diff --git a/pkgs/development/libraries/haskell/entropy/default.nix b/pkgs/development/libraries/haskell/entropy/default.nix
index f98903d3dc1..797ce1711b2 100644
--- a/pkgs/development/libraries/haskell/entropy/default.nix
+++ b/pkgs/development/libraries/haskell/entropy/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "entropy";
-  version = "0.2.2";
-  sha256 = "1zri5qs19cbz9ydbh076q6834pspf2gqn06ssz4hsq6j65cnd9x2";
+  version = "0.2.2.1";
+  sha256 = "1yl1gmkmbalm27pjlpm9nhsbxpvxl8w7p8psq5apyrbdqnv9yhbg";
   meta = {
     homepage = "https://github.com/TomMD/entropy";
     description = "A platform independent entropy source";
diff --git a/pkgs/development/libraries/haskell/fingertree/default.nix b/pkgs/development/libraries/haskell/fingertree/default.nix
index 299b2e926db..f48e1c4002e 100644
--- a/pkgs/development/libraries/haskell/fingertree/default.nix
+++ b/pkgs/development/libraries/haskell/fingertree/default.nix
@@ -1,9 +1,15 @@
-{ cabal }:
+{ cabal, HUnit, QuickCheck, testFramework, testFrameworkHunit
+, testFrameworkQuickcheck2
+}:
 
 cabal.mkDerivation (self: {
   pname = "fingertree";
-  version = "0.0.1.1";
-  sha256 = "00llr24b2r539250fangl0jj39gf26gjwvhjpy5qg8l920hrjn78";
+  version = "0.1.0.0";
+  sha256 = "0c35sryzsijwavvw9x1pk5p99rhmp4g8pjh2ds419mlfgxc039ms";
+  testDepends = [
+    HUnit QuickCheck testFramework testFrameworkHunit
+    testFrameworkQuickcheck2
+  ];
   meta = {
     description = "Generic finger-tree structure, with example instances";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/ghc-heap-view/default.nix b/pkgs/development/libraries/haskell/ghc-heap-view/default.nix
index 342e2a7cd31..62b07030a46 100644
--- a/pkgs/development/libraries/haskell/ghc-heap-view/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-heap-view/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "ghc-heap-view";
-  version = "0.5.0.1";
-  sha256 = "1zqzv6r4nkzam51bb6pp2i1kkzhx5mnaqcn8wzr0hxbi5lc1088h";
+  version = "0.5.1";
+  sha256 = "1qi7f3phj2j63x1wd2cvk36945cxd84s12zs03hlrn49wzx2pf1n";
   buildDepends = [ binary transformers ];
   meta = {
     description = "Extract the heap representation of Haskell values and thunks";
diff --git a/pkgs/development/libraries/haskell/ghc-vis/default.nix b/pkgs/development/libraries/haskell/ghc-vis/default.nix
index 12508a09c63..856ec810463 100644
--- a/pkgs/development/libraries/haskell/ghc-vis/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-vis/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "ghc-vis";
-  version = "0.7.0.1";
-  sha256 = "0k6pm1lqmcmgdqzcdbygdyg6bgx4k0gi77k1mxwprgr9vv3ly26w";
+  version = "0.7.1";
+  sha256 = "05j3yw1276wvy4va7r7pbnvhjg1k1mxzp4baxcb9jlb5dxfh0daa";
   buildDepends = [
     cairo deepseq fgl ghcHeapView graphviz gtk mtl svgcairo text
     transformers xdot
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index 4f50ab44950..766f56ee8e3 100644
--- a/pkgs/development/libraries/haskell/hakyll/default.nix
+++ b/pkgs/development/libraries/haskell/hakyll/default.nix
@@ -1,42 +1,36 @@
 { cabal, binary, blazeHtml, blazeMarkup, citeprocHs, cmdargs
-, cryptohash, dataDefault, deepseq, filepath, httpConduit
-, httpTypes, HUnit, lrucache, mtl, pandoc, parsec, QuickCheck
-, random, regexBase, regexTdfa, snapCore, snapServer, tagsoup
-, testFramework, testFrameworkHunit, testFrameworkQuickcheck2, text
-, time
+, cryptohash, dataDefault, deepseq, filepath, fsnotify, httpConduit
+, httpTypes, HUnit, lrucache, mtl, network, pandoc, parsec
+, QuickCheck, random, regexBase, regexTdfa, snapCore, snapServer
+, systemFilepath, tagsoup, testFramework, testFrameworkHunit
+, testFrameworkQuickcheck2, text, time
 }:
 
 cabal.mkDerivation (self: {
   pname = "hakyll";
-  version = "4.2.2.0";
-  sha256 = "0kz8v2ip0hmvqnrxgv44g2863z1dql88razl7aa3fw01q56ihz0y";
+  version = "4.3.1.0";
+  sha256 = "1cx5pf0wf49cylbcgy1di218qk0fw8rgzqri9lx1v8jfl31zvsg5";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
     binary blazeHtml blazeMarkup citeprocHs cmdargs cryptohash
-    dataDefault deepseq filepath httpConduit httpTypes lrucache mtl
-    pandoc parsec random regexBase regexTdfa snapCore snapServer
-    tagsoup text time
+    dataDefault deepseq filepath fsnotify httpConduit httpTypes
+    lrucache mtl network pandoc parsec random regexBase regexTdfa
+    snapCore snapServer systemFilepath tagsoup text time
   ];
   testDepends = [
     binary blazeHtml blazeMarkup citeprocHs cmdargs cryptohash
-    dataDefault deepseq filepath httpConduit httpTypes HUnit lrucache
-    mtl pandoc parsec QuickCheck random regexBase regexTdfa snapCore
-    snapServer tagsoup testFramework testFrameworkHunit
-    testFrameworkQuickcheck2 text time
+    dataDefault deepseq filepath fsnotify httpConduit httpTypes HUnit
+    lrucache mtl network pandoc parsec QuickCheck random regexBase
+    regexTdfa snapCore snapServer systemFilepath tagsoup testFramework
+    testFrameworkHunit testFrameworkQuickcheck2 text time
   ];
   doCheck = false;
-  patchPhase = ''
-    sed -i -e 's|cryptohash .*,|cryptohash,|' hakyll.cabal
-  '';
   meta = {
     homepage = "http://jaspervdj.be/hakyll";
     description = "A static website compiler library";
     license = self.stdenv.lib.licenses.bsd3;
     platforms = self.ghc.meta.platforms;
-    maintainers = [
-      self.stdenv.lib.maintainers.andres
-      self.stdenv.lib.maintainers.simons
-    ];
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hashable/1.2.0.7.nix b/pkgs/development/libraries/haskell/hashable/1.2.0.10.nix
index e92f0c2c9d1..2bafe55f420 100644
--- a/pkgs/development/libraries/haskell/hashable/1.2.0.7.nix
+++ b/pkgs/development/libraries/haskell/hashable/1.2.0.10.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "hashable";
-  version = "1.2.0.7";
-  sha256 = "1v70b85g9kx0ikgxpiqpl8dp3w9hdxm75h73g69giyiy7swn9630";
+  version = "1.2.0.10";
+  sha256 = "155r7zqc0kisjdslr8d1c04yqwvzwqx4d99c0zla113dvsdjhp37";
   buildDepends = [ text ];
   testDepends = [
     HUnit QuickCheck random testFramework testFrameworkHunit
diff --git a/pkgs/development/libraries/haskell/hflags/default.nix b/pkgs/development/libraries/haskell/hflags/default.nix
new file mode 100644
index 00000000000..17c01f9a659
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hflags/default.nix
@@ -0,0 +1,14 @@
+{ cabal, text }:
+
+cabal.mkDerivation (self: {
+  pname = "hflags";
+  version = "0.1.3";
+  sha256 = "0nn08xqn0hvdlblnaad3nsdfkc0ssab6kvhi4qbrcq9jmjmspld3";
+  buildDepends = [ text ];
+  meta = {
+    homepage = "http://github.com/errge/hflags";
+    description = "Command line flag parser, very similar to Google's gflags";
+    license = "Apache-2.0";
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hit/default.nix b/pkgs/development/libraries/haskell/hit/default.nix
new file mode 100644
index 00000000000..9791478d3e8
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hit/default.nix
@@ -0,0 +1,27 @@
+{ cabal, attoparsec, blazeBuilder, bytedump, cryptohash, HUnit, mtl
+, parsec, QuickCheck, random, systemFileio, systemFilepath
+, testFramework, testFrameworkQuickcheck2, time, vector, zlib
+, zlibBindings
+}:
+
+cabal.mkDerivation (self: {
+  pname = "hit";
+  version = "0.5.0";
+  sha256 = "05v49l3k8gwn922d5b5xrzdrakh6bw02bp8hd8yc8163jyazk2vx";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    attoparsec blazeBuilder cryptohash mtl parsec random systemFileio
+    systemFilepath time vector zlib zlibBindings
+  ];
+  testDepends = [
+    bytedump HUnit QuickCheck testFramework testFrameworkQuickcheck2
+    time
+  ];
+  meta = {
+    homepage = "http://github.com/vincenthz/hit";
+    description = "Git operations in haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hsdns/default.nix b/pkgs/development/libraries/haskell/hsdns/default.nix
index b72f4d947c4..464047d0c61 100644
--- a/pkgs/development/libraries/haskell/hsdns/default.nix
+++ b/pkgs/development/libraries/haskell/hsdns/default.nix
@@ -2,11 +2,10 @@
 
 cabal.mkDerivation (self: {
   pname = "hsdns";
-  version = "1.6";
-  sha256 = "1vf3crkhs7z572bqdf7p2hfcqkjxvnyg0w0cf8b7kyfxzn8bj3fa";
+  version = "1.6.1";
+  sha256 = "0s63acjy1n75k7gjm4kam7v5d4a5kn0aw178mygkqwr5frflghb4";
   buildDepends = [ network ];
   extraLibraries = [ adns ];
-  noHaddock = true;
   meta = {
     homepage = "http://github.com/peti/hsdns";
     description = "Asynchronous DNS Resolver";
diff --git a/pkgs/development/libraries/haskell/hsshellscript/default.nix b/pkgs/development/libraries/haskell/hsshellscript/default.nix
new file mode 100644
index 00000000000..126a0d316bf
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hsshellscript/default.nix
@@ -0,0 +1,15 @@
+{ cabal, c2hs, parsec, random }:
+
+cabal.mkDerivation (self: {
+  pname = "hsshellscript";
+  version = "3.3.1";
+  sha256 = "0z3afp3r1j1in03fv2yb5sfbzgcrhdig6gay683bzgh85glwxhlp";
+  buildDepends = [ parsec random ];
+  buildTools = [ c2hs ];
+  meta = {
+    homepage = "http://www.volker-wysk.de/hsshellscript/";
+    description = "Haskell for Unix shell scripting tasks";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/iteratee/default.nix b/pkgs/development/libraries/haskell/iteratee/default.nix
index ee9026bae49..c4438d97364 100644
--- a/pkgs/development/libraries/haskell/iteratee/default.nix
+++ b/pkgs/development/libraries/haskell/iteratee/default.nix
@@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
     ListLike MonadCatchIOTransformers monadControl parallel
     transformers transformersBase
   ];
+  jailbreak = true;
   meta = {
     homepage = "http://www.tiresiaspress.us/haskell/iteratee";
     description = "Iteratee-based I/O";
diff --git a/pkgs/development/libraries/haskell/monadcryptorandom/default.nix b/pkgs/development/libraries/haskell/monadcryptorandom/default.nix
index df63e3ec659..e955bb14a72 100644
--- a/pkgs/development/libraries/haskell/monadcryptorandom/default.nix
+++ b/pkgs/development/libraries/haskell/monadcryptorandom/default.nix
@@ -2,8 +2,8 @@
 
 cabal.mkDerivation (self: {
   pname = "monadcryptorandom";
-  version = "0.5.1";
-  sha256 = "10waxc0i7hcqlgb9iwcdz0xqkym4ihavgwq466xlaqzzhcpp38d6";
+  version = "0.5.2";
+  sha256 = "0a0qx331c1kvhmwwam7pbbrnq8ky3spfnw6zsz6rz7g1lk1hfawn";
   buildDepends = [ cryptoApi mtl tagged transformers ];
   meta = {
     homepage = "https://github.com/TomMD/monadcryptorandom";
diff --git a/pkgs/development/libraries/haskell/mongoDB/default.nix b/pkgs/development/libraries/haskell/mongoDB/default.nix
index e730125544e..12c65deb445 100644
--- a/pkgs/development/libraries/haskell/mongoDB/default.nix
+++ b/pkgs/development/libraries/haskell/mongoDB/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "mongoDB";
-  version = "1.4.0";
-  sha256 = "1cj73k6lfpxmfaigqwwglnncfl1ikz6yjgs0d9f6k42kwysbddwz";
+  version = "1.4.1";
+  sha256 = "1r1ywqy3igcmmwxjy4fjqdnf8m4zqbc8l0nj43h2xwrl86lhfym9";
   buildDepends = [
     binary bson cryptohash liftedBase monadControl mtl network parsec
     random randomShuffle text transformersBase
diff --git a/pkgs/development/libraries/haskell/persistent-template/default.nix b/pkgs/development/libraries/haskell/persistent-template/default.nix
index f3ab1800dae..2afc416cb52 100644
--- a/pkgs/development/libraries/haskell/persistent-template/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-template/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "persistent-template";
-  version = "1.2.0.1";
-  sha256 = "1l8ws4mijl0cwcl14ms8hibfgcn3y6b1679xc0cdyz1ifiymkdns";
+  version = "1.2.0.2";
+  sha256 = "0zj35mg7fzyk4b98s3s8m5i064s0wznz9aixgxa4kzm4xps7hj4z";
   buildDepends = [
     aeson monadControl monadLogger persistent text transformers
   ];
diff --git a/pkgs/development/libraries/haskell/persistent/default.nix b/pkgs/development/libraries/haskell/persistent/default.nix
index 79fd1f6f781..57bb615800b 100644
--- a/pkgs/development/libraries/haskell/persistent/default.nix
+++ b/pkgs/development/libraries/haskell/persistent/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "persistent";
-  version = "1.2.0.1";
-  sha256 = "1bs74g1fkwq4wvz18lp0ial6z58vpslgv0rqdn91ka6gw8k4fvlb";
+  version = "1.2.0.2";
+  sha256 = "026zdfccy57dbsacg8227jzcdyq50nb1bkcr56ryxi91ymlyf50k";
   buildDepends = [
     aeson attoparsec base64Bytestring blazeHtml blazeMarkup conduit
     liftedBase monadControl monadLogger pathPieces poolConduit
diff --git a/pkgs/development/libraries/haskell/pipes-concurrency/default.nix b/pkgs/development/libraries/haskell/pipes-concurrency/default.nix
index 702853766a7..d931845f16e 100644
--- a/pkgs/development/libraries/haskell/pipes-concurrency/default.nix
+++ b/pkgs/development/libraries/haskell/pipes-concurrency/default.nix
@@ -1,10 +1,10 @@
-{ cabal, pipes, stm, transformers }:
+{ cabal, pipes, stm }:
 
 cabal.mkDerivation (self: {
   pname = "pipes-concurrency";
-  version = "1.1.0";
-  sha256 = "05xpwxhf08yf88ya89f8gcy4vphi6qxyccf2yiyi5zrf6c2pkr00";
-  buildDepends = [ pipes stm transformers ];
+  version = "1.2.0";
+  sha256 = "058v9d3wf9n1d25rhdq5vj60p8mll5yv2zn2k1092bg7qisip1fq";
+  buildDepends = [ pipes stm ];
   meta = {
     description = "Concurrency for the pipes ecosystem";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/postgresql-simple/default.nix b/pkgs/development/libraries/haskell/postgresql-simple/default.nix
index 0a40cdf7a96..888f992b159 100644
--- a/pkgs/development/libraries/haskell/postgresql-simple/default.nix
+++ b/pkgs/development/libraries/haskell/postgresql-simple/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "postgresql-simple";
-  version = "0.3.3.0";
-  sha256 = "0srkalfg41gdnzwwa2bmwwrcdqnw13f7b94wv4d5a6sg6yf1ry1l";
+  version = "0.3.3.2";
+  sha256 = "1gh2ih1n6g17jry12g7nv344sfzrhfc1assslx0cjlsryhbz25lp";
   buildDepends = [
     attoparsec blazeBuilder blazeTextual postgresqlLibpq text time
     transformers vector
diff --git a/pkgs/development/libraries/haskell/regex-tdfa-text/default.nix b/pkgs/development/libraries/haskell/regex-tdfa-text/default.nix
new file mode 100644
index 00000000000..1a329c25b2d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-tdfa-text/default.nix
@@ -0,0 +1,13 @@
+{ cabal, regexBase, regexTdfa, text }:
+
+cabal.mkDerivation (self: {
+  pname = "regex-tdfa-text";
+  version = "1.0.0.2";
+  sha256 = "1p17xv3j2xd74iilyqwlqhkmyp26asq4k1pb0h2f0wdqqfr87bfd";
+  buildDepends = [ regexBase regexTdfa text ];
+  meta = {
+    description = "Text interface for regex-tdfa";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/shake/default.nix b/pkgs/development/libraries/haskell/shake/default.nix
index c5cc24cc8da..b7f605c2b7e 100644
--- a/pkgs/development/libraries/haskell/shake/default.nix
+++ b/pkgs/development/libraries/haskell/shake/default.nix
@@ -4,8 +4,8 @@
 
 cabal.mkDerivation (self: {
   pname = "shake";
-  version = "0.10.3";
-  sha256 = "0dvpjswiiw2s4zh5sjx7qs4xp41bw2wqny0k61pkg5wvgw3b7jmh";
+  version = "0.10.5";
+  sha256 = "1abbls2rmpyxpj41c0afvfjh1bw6j6rz1n0w4jhqrmq0d32kpg7a";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/libraries/haskell/snap/core.nix b/pkgs/development/libraries/haskell/snap/core.nix
index a20ec8e7ca5..f2440ef250f 100644
--- a/pkgs/development/libraries/haskell/snap/core.nix
+++ b/pkgs/development/libraries/haskell/snap/core.nix
@@ -1,19 +1,19 @@
 { cabal, attoparsec, attoparsecEnumerator, blazeBuilder
 , blazeBuilderEnumerator, bytestringMmap, caseInsensitive, deepseq
-, enumerator, filepath, HUnit, MonadCatchIOTransformers, mtl
-, random, regexPosix, text, time, unixCompat, unorderedContainers
-, vector, zlibEnum
+, enumerator, filepath, hashable, HUnit, MonadCatchIOTransformers
+, mtl, random, regexPosix, text, time, unixCompat
+, unorderedContainers, vector, zlibEnum
 }:
 
 cabal.mkDerivation (self: {
   pname = "snap-core";
-  version = "0.9.3.1";
-  sha256 = "1q2lk70l0hk4l6ksjnal1bfkby0i08gdzvj9cscvxs4njxmgdapq";
+  version = "0.9.4.0";
+  sha256 = "08afaj4ln4nl7ymdixijzjx8hc7nnr70gz7avpzaanq5nrw0k054";
   buildDepends = [
     attoparsec attoparsecEnumerator blazeBuilder blazeBuilderEnumerator
-    bytestringMmap caseInsensitive deepseq enumerator filepath HUnit
-    MonadCatchIOTransformers mtl random regexPosix text time unixCompat
-    unorderedContainers vector zlibEnum
+    bytestringMmap caseInsensitive deepseq enumerator filepath hashable
+    HUnit MonadCatchIOTransformers mtl random regexPosix text time
+    unixCompat unorderedContainers vector zlibEnum
   ];
   meta = {
     homepage = "http://snapframework.com/";
diff --git a/pkgs/development/libraries/haskell/template-default/default.nix b/pkgs/development/libraries/haskell/template-default/default.nix
new file mode 100644
index 00000000000..a450b09b551
--- /dev/null
+++ b/pkgs/development/libraries/haskell/template-default/default.nix
@@ -0,0 +1,14 @@
+{ cabal, dataDefault }:
+
+cabal.mkDerivation (self: {
+  pname = "template-default";
+  version = "0.1.1";
+  sha256 = "07b8j11v0247fwaf3mv72m7aaq3crbsyrxmxa352vn9h2g6l1jsd";
+  buildDepends = [ dataDefault ];
+  meta = {
+    homepage = "https://github.com/haskell-pkg-janitors/template-default";
+    description = "declaring Default instances just got even easier";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/vector-th-unbox/default.nix b/pkgs/development/libraries/haskell/vector-th-unbox/default.nix
new file mode 100644
index 00000000000..8f5ec4b52bf
--- /dev/null
+++ b/pkgs/development/libraries/haskell/vector-th-unbox/default.nix
@@ -0,0 +1,13 @@
+{ cabal, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "vector-th-unbox";
+  version = "0.2.0.1";
+  sha256 = "1q01yk6cyjxbdnmq31d5mfac09hbql43d7xiw1snc96nmkklfpjv";
+  buildDepends = [ vector ];
+  meta = {
+    description = "Deriver for Data.Vector.Unboxed using Template Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/vector/0.10.nix b/pkgs/development/libraries/haskell/vector/0.10.nix
deleted file mode 100644
index 8fac71eed4b..00000000000
--- a/pkgs/development/libraries/haskell/vector/0.10.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cabal, deepseq, primitive }:
-
-cabal.mkDerivation (self: {
-  pname = "vector";
-  version = "0.10";
-  sha256 = "0lwhsdg7wv6gwjswakf2d1h9w7lp4pznab0mz6xg5q48pgknrcig";
-  buildDepends = [ deepseq primitive ];
-  meta = {
-    homepage = "http://code.haskell.org/vector";
-    description = "Efficient Arrays";
-    license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
-  };
-})
diff --git a/pkgs/development/libraries/haskell/vector/0.9.1.nix b/pkgs/development/libraries/haskell/vector/0.9.1.nix
deleted file mode 100644
index 63add64226d..00000000000
--- a/pkgs/development/libraries/haskell/vector/0.9.1.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ cabal, primitive }:
-
-cabal.mkDerivation (self: {
-  pname = "vector";
-  version = "0.9.1";
-  sha256 = "1m6p9dy48fwh2y21y7r6svhzs86a1yijkjil7ch1mdn86gv0f9as";
-  buildDepends = [ primitive ];
-  meta = {
-    homepage = "http://code.haskell.org/vector";
-    description = "Efficient Arrays";
-    license = self.stdenv.lib.licenses.bsd3;
-    platforms = self.ghc.meta.platforms;
-    maintainers = [ self.stdenv.lib.maintainers.andres ];
-  };
-})
diff --git a/pkgs/development/libraries/haskell/xtest/default.nix b/pkgs/development/libraries/haskell/xtest/default.nix
new file mode 100644
index 00000000000..d9ce47647ca
--- /dev/null
+++ b/pkgs/development/libraries/haskell/xtest/default.nix
@@ -0,0 +1,14 @@
+{ cabal, libXtst, X11 }:
+
+cabal.mkDerivation (self: {
+  pname = "xtest";
+  version = "0.2";
+  sha256 = "118xxx7sydpsvdqz0x107ngb85fggn630ysw6d2ckky75fmhmxk7";
+  buildDepends = [ X11 ];
+  extraLibraries = [ libXtst ];
+  meta = {
+    description = "Thin FFI bindings to X11 XTest library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yesod-bin/default.nix b/pkgs/development/libraries/haskell/yesod-bin/default.nix
new file mode 100644
index 00000000000..717ca54d808
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yesod-bin/default.nix
@@ -0,0 +1,31 @@
+{ cabal, attoparsec, base64Bytestring, blazeBuilder, Cabal, conduit
+, fileEmbed, filepath, fsnotify, ghcPaths, httpConduit
+, httpReverseProxy, httpTypes, liftedBase, network, networkConduit
+, optparseApplicative, parsec, projectTemplate, resourcet
+, shakespeare, shakespeareCss, shakespeareJs, shakespeareText
+, split, systemFileio, systemFilepath, tar, text, time
+, transformers, unixCompat, unorderedContainers, wai, warp, yaml
+, zlib
+}:
+
+cabal.mkDerivation (self: {
+  pname = "yesod-bin";
+  version = "1.2.0.1";
+  sha256 = "0dikjxs1wdqv87ng6iqnnc3pwi3hzgqfwnnj3bb1fpz4plv4bnbc";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [
+    attoparsec base64Bytestring blazeBuilder Cabal conduit fileEmbed
+    filepath fsnotify ghcPaths httpConduit httpReverseProxy httpTypes
+    liftedBase network networkConduit optparseApplicative parsec
+    projectTemplate resourcet shakespeare shakespeareCss shakespeareJs
+    shakespeareText split systemFileio systemFilepath tar text time
+    transformers unixCompat unorderedContainers wai warp yaml zlib
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "The yesod helper executable";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yesod-core/default.nix b/pkgs/development/libraries/haskell/yesod-core/default.nix
index 7518e6ff82a..d2188c68951 100644
--- a/pkgs/development/libraries/haskell/yesod-core/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-core/default.nix
@@ -10,8 +10,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-core";
-  version = "1.2.1";
-  sha256 = "1p9xaw0d9dx68q7i99kjcqy1lhmd164drbcw3489560wa71mwamk";
+  version = "1.2.2";
+  sha256 = "1fapqx1lrhhqjc9k9yc964sxnawj7ga62w83csbkkhwq3g5425yp";
   buildDepends = [
     aeson attoparsecConduit blazeBuilder blazeHtml blazeMarkup
     caseInsensitive cereal clientsession conduit cookie dataDefault
diff --git a/pkgs/development/libraries/haskell/yesod-persistent/default.nix b/pkgs/development/libraries/haskell/yesod-persistent/default.nix
index 1f0b330ff2c..2c6b6f96fbc 100644
--- a/pkgs/development/libraries/haskell/yesod-persistent/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-persistent/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-persistent";
-  version = "1.2.0";
-  sha256 = "1gzzs62mnx2q15sm3hvlk18qjgk3bi828klgl2ckc0462f7z8d0k";
+  version = "1.2.1";
+  sha256 = "06kzxdbg3xw128zlacsf51qi7qnccw0gjnwscxshljgipiicfhfc";
   buildDepends = [
     blazeBuilder conduit liftedBase persistent persistentTemplate
     poolConduit resourcet transformers yesodCore
diff --git a/pkgs/development/libraries/haskell/yesod-platform/default.nix b/pkgs/development/libraries/haskell/yesod-platform/default.nix
index 09514ea9316..fbec41ce124 100644
--- a/pkgs/development/libraries/haskell/yesod-platform/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-platform/default.nix
@@ -28,8 +28,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod-platform";
-  version = "1.2.0.1";
-  sha256 = "0hff8kx5d1z8xmy7fnzzhvy9774r26i4bczkb4cz30v3v5pf2g15";
+  version = "1.2.1";
+  sha256 = "1wa1g37ipigscv8xwb5zyfawjw0fxqmwr2l6wdf507r0kvclk2ap";
   buildDepends = [
     aeson ansiTerminal asn1Data asn1Types attoparsec attoparsecConduit
     authenticate base64Bytestring baseUnicodeSymbols blazeBuilder
diff --git a/pkgs/development/libraries/haskell/yesod-routes/default.nix b/pkgs/development/libraries/haskell/yesod-routes/default.nix
index 44d728ffcfd..4cbb865c906 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.2.0";
-  sha256 = "1d7z0v6jrl08w7qz3apwdjss3vq151y28l7231cpqiia46damib2";
+  version = "1.2.0.1";
+  sha256 = "0pp7g3ccd0swh1j62am1vg9r2gh65jcci5w2n4r42sqzfnql0i8z";
   buildDepends = [ pathPieces text vector ];
   testDepends = [ hspec HUnit pathPieces text ];
   meta = {
diff --git a/pkgs/development/libraries/haskell/yesod/default.nix b/pkgs/development/libraries/haskell/yesod/default.nix
index 53dc5cab87c..d2d0417da27 100644
--- a/pkgs/development/libraries/haskell/yesod/default.nix
+++ b/pkgs/development/libraries/haskell/yesod/default.nix
@@ -6,8 +6,8 @@
 
 cabal.mkDerivation (self: {
   pname = "yesod";
-  version = "1.2.0.1";
-  sha256 = "1whkw0lmkyja2j6vbfcf5rjmmhmc85r4arjwjrvdmz6jkjyqham3";
+  version = "1.2.1";
+  sha256 = "19gwhav6sr6gd2kh92ga8a09hq9grllmnacdqkgasxwjsfxqa6zg";
   buildDepends = [
     aeson blazeHtml blazeMarkup dataDefault hamlet monadControl
     networkConduit safe shakespeareCss shakespeareJs text transformers
diff --git a/pkgs/development/libraries/iksemel/default.nix b/pkgs/development/libraries/iksemel/default.nix
new file mode 100644
index 00000000000..7e8061ee8bb
--- /dev/null
+++ b/pkgs/development/libraries/iksemel/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, gnutls, zlib }:
+
+stdenv.mkDerivation rec {
+  name = "iksemel-${version}";
+  version = "1.4";
+
+  src = fetchurl {
+    url = "https://iksemel.googlecode.com/files/${name}.tar.gz";
+    sha1 = "722910b99ce794fd3f6f0e5f33fa804732cf46db";
+  };
+
+  preConfigure = ''
+    sed -i -e '/if.*gnutls_check_version/,/return 1;/c return 0;' configure
+    export LIBGNUTLS_CONFIG="${pkgconfig}/bin/pkg-config gnutls"
+  '';
+
+  buildInputs = [ pkgconfig gnutls zlib ];
+
+  meta = {
+    homepage = "https://code.google.com/p/iksemel/";
+    license = stdenv.lib.licenses.lgpl21Plus;
+    description = "Fast and portable XML parser and Jabber protocol library";
+  };
+}
diff --git a/pkgs/development/libraries/imlib/default.nix b/pkgs/development/libraries/imlib/default.nix
index 24e7d2afab5..27aaad7598a 100644
--- a/pkgs/development/libraries/imlib/default.nix
+++ b/pkgs/development/libraries/imlib/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation {
   name = "imlib-1.9.15";
   src = fetchurl {
-    url = http://nixos.org/tarballs/imlib-1.9.15.tar.gz;
+    url = http://tarballs.nixos.org/imlib-1.9.15.tar.gz;
     md5 = "2a5561457e7f8b2e04d88f73508fd13a";
   };
 
diff --git a/pkgs/development/libraries/java/jakarta-bcel/default.nix b/pkgs/development/libraries/java/jakarta-bcel/default.nix
index 3bea2a0d8f4..1ff88a36247 100644
--- a/pkgs/development/libraries/java/jakarta-bcel/default.nix
+++ b/pkgs/development/libraries/java/jakarta-bcel/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation {
   builder = ./builder.sh;
 
   src = fetchurl {
-    url = http://nixos.org/tarballs/bcel-5.1.tar.gz;
+    url = http://tarballs.nixos.org/bcel-5.1.tar.gz;
     md5 = "318f22e4f5f59b68cd004db83a7d65dc";
   };
 
diff --git a/pkgs/development/libraries/java/jakarta-regexp/default.nix b/pkgs/development/libraries/java/jakarta-regexp/default.nix
index d6c093423d8..55c3beff70a 100644
--- a/pkgs/development/libraries/java/jakarta-regexp/default.nix
+++ b/pkgs/development/libraries/java/jakarta-regexp/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
   builder = ./java-bin-builder.sh;
 
   src = fetchurl {
-    url = http://nixos.org/tarballs/jakarta-regexp-1.4.tar.gz;
+    url = http://tarballs.nixos.org/jakarta-regexp-1.4.tar.gz;
     md5 = "d903d84c949df848009f3bf205b32c97";
   };
 
diff --git a/pkgs/development/libraries/javascript/jquery-ui/default.nix b/pkgs/development/libraries/javascript/jquery-ui/default.nix
index e2d48f25bb5..24217657b10 100644
--- a/pkgs/development/libraries/javascript/jquery-ui/default.nix
+++ b/pkgs/development/libraries/javascript/jquery-ui/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, unzip }:
 
 stdenv.mkDerivation rec {
-  name = "jquery-ui-1.10.2";
+  name = "jquery-ui-1.10.3";
 
   src = fetchurl {
     url = "http://jqueryui.com/resources/download/${name}.custom.zip";
-    sha256 = "0r1fmqpym7bjqhjay9br4h3izky781bsda7v7552yjwkgiv391hl";
+    sha256 = "1nqh3fmjgy73cbwb5sj775242i6jhz3f5b9fxgrkq00dfvkls779";
   };
 
   buildInputs = [ unzip ];
@@ -17,9 +17,13 @@ stdenv.mkDerivation rec {
 
       # For convenience, provide symlinks "jquery.min.js" etc. (i.e.,
       # without the version number).
-      ln -s $out/js/jquery-ui-*.custom.min.js $out/js/jquery-ui.min.js
-      ln -s $out/js/jquery-1.*.min.js $out/js/jquery.min.js
-      ln -s $out/css/smoothness/jquery-ui-*.custom.css $out/css/smoothness/jquery-ui.css
+      pushd $out/js
+      ln -s jquery-ui-*.custom.js jquery-ui.js
+      ln -s jquery-ui-*.custom.min.js jquery-ui.min.js
+      ln -s jquery-1.*.js jquery.js
+      popd
+      pushd $out/css/smoothness
+      ln -s jquery-ui-*.custom.css jquery-ui.css
     '';
 
   meta = {
diff --git a/pkgs/development/libraries/libcanberra/default.nix b/pkgs/development/libraries/libcanberra/default.nix
index 6d56cd44633..710f6bd8700 100644
--- a/pkgs/development/libraries/libcanberra/default.nix
+++ b/pkgs/development/libraries/libcanberra/default.nix
@@ -1,25 +1,25 @@
 { stdenv, fetchurl, pkgconfig, libtool, gtk ? null
-, alsaLib, pulseaudio, gstreamer ? null, libvorbis, libcap }:
+, alsaLib, pulseaudio, gstreamer, gst_plugins_base, libvorbis }:
 
 stdenv.mkDerivation rec {
-  name = "libcanberra-0.28";
+  name = "libcanberra-0.30";
 
   src = fetchurl {
-    url = "http://0pointer.de/lennart/projects/libcanberra/${name}.tar.gz";
-    sha256 = "1346d2y24wiyanyr5bvdnjjgq7iysy8nlq2dwjv0fzxdmcn8n7zb";
+    url = "http://0pointer.de/lennart/projects/libcanberra/${name}.tar.xz";
+    sha256 = "0wps39h8rx2b00vyvkia5j40fkak3dpipp1kzilqla0cgvk73dn2";
   };
 
-  buildInputs =
-    [ pkgconfig libtool alsaLib pulseaudio gstreamer libvorbis libcap gtk ];
+  buildInputs = # ToDo: gstreamer not found (why?), add (g)udev?
+    [ pkgconfig libtool alsaLib pulseaudio /*gstreamer gst_plugins_base*/ libvorbis gtk ];
 
-  configureFlags = "--disable-oss --disable-schemas-install";
+  configureFlags = "--disable-oss";
 
   passthru = {
     gtkModule = "/lib/gtk-2.0/";
   };
 
   meta = {
-    description = "libcanberra, an implementation of the XDG Sound Theme and Name Specifications";
+    description = "An implementation of the XDG Sound Theme and Name Specifications";
 
     longDescription = ''
       libcanberra is an implementation of the XDG Sound Theme and Name
diff --git a/pkgs/development/libraries/libcroco/default.nix b/pkgs/development/libraries/libcroco/default.nix
deleted file mode 100644
index 99604475e62..00000000000
--- a/pkgs/development/libraries/libcroco/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{stdenv, fetchurl, pkgconfig, libxml2, glib}:
-
-stdenv.mkDerivation {
-  name = "libcroco-0.6.4";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/libcroco/0.6/libcroco-0.6.4.tar.xz;
-    sha256 = "1sij88na1skd4d5dx75l803fww3v9872q8m2hj6sjlkc839vl5n8";
-  };
-  buildInputs = [ pkgconfig libxml2 glib ];
-}
diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix
index a2546bf2d69..e411e599dc5 100644
--- a/pkgs/development/libraries/libdrm/default.nix
+++ b/pkgs/development/libraries/libdrm/default.nix
@@ -1,24 +1,23 @@
 { stdenv, fetchurl, pkgconfig, libpthreadstubs, libpciaccess, udev }:
 
 stdenv.mkDerivation rec {
-  name = "libdrm-2.4.33";
-  
+  name = "libdrm-2.4.42";
+
   src = fetchurl {
     url = "http://dri.freedesktop.org/libdrm/${name}.tar.bz2";
-    sha256 = "1slgi61n4dlsfli47ql354fd1ppj7n40jd94wvnsdqx0mna9syrd";
+    sha256 = "1qbnpi64hyqzd650hj6jki1d50pzypdhj3rw9m3whwbqly110rz0";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libpthreadstubs libpciaccess udev ];
+  buildInputs = [ libpthreadstubs libpciaccess ]
+    ++ stdenv.lib.optional stdenv.isLinux udev;
 
   patches = stdenv.lib.optional stdenv.isDarwin ./libdrm-apple.patch;
 
   preConfigure = stdenv.lib.optionalString stdenv.isDarwin
     "echo : \\\${ac_cv_func_clock_gettime=\'yes\'} > config.cache";
 
-  configureFlags = [ "--enable-nouveau-experimental-api"
-                     "--enable-radeon-experimental-api"
-                     "--enable-udev" ]
+  configureFlags = stdenv.lib.optional stdenv.isLinux "--enable-udev"
     ++ stdenv.lib.optional stdenv.isDarwin "-C";
 
   crossAttrs.configureFlags = configureFlags ++ [ "--disable-intel" ];
diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix
index 0438816b1b4..cb60355ef55 100644
--- a/pkgs/development/libraries/libgcrypt/default.nix
+++ b/pkgs/development/libraries/libgcrypt/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, libgpgerror }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   name = "libgcrypt-1.5.2";
 
   src = fetchurl {
     url = "mirror://gnupg/libgcrypt/${name}.tar.bz2";
-    sha1 = "c9998383532ba3e8bcaf690f2f0d65e814b48d2f";
+    sha256 = "0gwnzqd64cpwdmk93nll54nidsr74jpimxzj4p4z7502ylwl66p4";
   };
 
   propagatedBuildInputs = [ libgpgerror ];
@@ -34,4 +34,8 @@ stdenv.mkDerivation rec {
     homepage = http://gnupg.org/;
     platforms = stdenv.lib.platforms.all;
   };
-}
+} # old "as" problem, see #616 and http://gnupg.10057.n7.nabble.com/Fail-to-build-on-freebsd-7-3-td30245.html
+  // stdenv.lib.optionalAttrs (stdenv.isFreeBSD && stdenv.isi686)
+    { configureFlags = [ "--disable-aesni-support" ]; }
+)
+
diff --git a/pkgs/development/libraries/libgnome-keyring/3.x.nix b/pkgs/development/libraries/libgnome-keyring/3.x.nix
deleted file mode 100644
index 54a023a16f8..00000000000
--- a/pkgs/development/libraries/libgnome-keyring/3.x.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, glib, dbus_libs, libgcrypt, pkgconfig,
-intltool }:
-
-stdenv.mkDerivation {
-  name = "libgnome-keyring-3.2.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/libgnome-keyring/3.2/libgnome-keyring-3.2.2.tar.xz;
-    sha256 = "1cxd2vb1lzm8smq1q45dsn13s6kdqdb60lashdk7hwv035xy9jrb";
-  };
-
-  propagatedBuildInputs = [ glib dbus_libs libgcrypt ];
-  nativeBuildInputs = [ pkgconfig intltool ];
-
-  meta = {
-    inherit (glib.meta) platforms maintainers;
-  };
-}
diff --git a/pkgs/development/libraries/libgpg-error/default.nix b/pkgs/development/libraries/libgpg-error/default.nix
index eafa857598c..eb0de7aa2be 100644
--- a/pkgs/development/libraries/libgpg-error/default.nix
+++ b/pkgs/development/libraries/libgpg-error/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation (rec {
 
   src = fetchurl {
     url = "mirror://gnupg/libgpg-error/${name}.tar.bz2";
-    sha1 = "be209b013652add5c7e2c473ea114f58203cc6cd";
+    sha256 = "1h0ql8j65ns2rmhj9wnc9035026crzkg226xg8614fq71947ccxf";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/libgphoto2/default.nix b/pkgs/development/libraries/libgphoto2/default.nix
index 0c0dc5b764f..af985ac91fc 100644
--- a/pkgs/development/libraries/libgphoto2/default.nix
+++ b/pkgs/development/libraries/libgphoto2/default.nix
@@ -1,7 +1,7 @@
 {stdenv, fetchurl, pkgconfig, libusb, libtool, libexif, libjpeg, gettext}:
 
 stdenv.mkDerivation rec {
-  name = "libgphoto2-2.5.2";
+  name = "libgphoto2-${meta.version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/gphoto/${name}.tar.bz2";
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
       MTP, and other vendor specific protocols for controlling and transferring data
       from digital cameras. 
     '';
+    version = "2.5.2";
     # XXX: the homepage claims LGPL, but several src files are lgpl21Plus
     license = stdenv.lib.licenses.lgpl21Plus; 
     platforms = with stdenv.lib.platforms; unix;
diff --git a/pkgs/development/libraries/libgphoto2/default.upstream b/pkgs/development/libraries/libgphoto2/default.upstream
new file mode 100644
index 00000000000..0029e695930
--- /dev/null
+++ b/pkgs/development/libraries/libgphoto2/default.upstream
@@ -0,0 +1,9 @@
+url http://sourceforge.net/projects/gphoto/files/libgphoto/
+SF_version_dir
+version_link '[.]tar[.]bz2/download$'
+SF_redirect
+do_overwrite () {
+  ensure_hash
+  set_var_value version "$CURRENT_VERSION"
+  set_var_value sha256 "$CURRENT_HASH"
+}
diff --git a/pkgs/development/libraries/libgsf/default.nix b/pkgs/development/libraries/libgsf/default.nix
index 56f6242c09e..7f44e6b1706 100644
--- a/pkgs/development/libraries/libgsf/default.nix
+++ b/pkgs/development/libraries/libgsf/default.nix
@@ -1,26 +1,21 @@
-{ fetchurl, stdenv, perl, perlXMLParser, pkgconfig, libxml2
-, gettext, intltool, bzip2, glib, python
-, gnomeSupport ? true,  gdk_pixbuf ? null
-, gnome_vfs ? null, libbonobo ? null }:
+{ fetchurl, stdenv, pkgconfig, intltool, gettext, glib, libxml2, zlib, bzip2
+, python, gdk_pixbuf, libiconvOrEmpty
+}:
 
-assert gnomeSupport -> gdk_pixbuf != null && gnome_vfs != null && libbonobo != null
-  && glib != null;
+with { inherit (stdenv.lib) optionals; };
 
 stdenv.mkDerivation rec {
-  name = "libgsf-1.14.25";
+  name = "libgsf-1.14.26";
 
   src = fetchurl {
     url = "mirror://gnome/sources/libgsf/1.14/${name}.tar.xz";
-    sha256 = "127548f07e07951984fb139c3f89d65b9e471aefe6555387de03e1113944d1a2";
+    sha256 = "1md67l60li7rkma9m6mwchqz6b6q4xsfr38c6n056y6xm8jyf6c9";
   };
 
-  nativeBuildInputs = [ intltool pkgconfig ];
-  buildInputs =
-    [ perl perlXMLParser gettext bzip2 python ]
-    ++ stdenv.lib.optionals gnomeSupport [ gnome_vfs gdk_pixbuf ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+  buildInputs = [ gettext bzip2 zlib python ];
 
-  propagatedBuildInputs = [ libxml2 glib ]
-    ++ stdenv.lib.optionals gnomeSupport [ libbonobo ];
+  propagatedBuildInputs = [ libxml2 glib gdk_pixbuf ] ++ libiconvOrEmpty;
 
   doCheck = true;
 
diff --git a/pkgs/development/libraries/libgweather/default.nix b/pkgs/development/libraries/libgweather/default.nix
deleted file mode 100644
index 5e7a4cff741..00000000000
--- a/pkgs/development/libraries/libgweather/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, gtk3, intltool, libsoup, GConf3 }:
-
-stdenv.mkDerivation {
-  name = "libgweather-3.4.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/libgweather/3.4/libgweather-3.4.1.tar.xz;
-    sha256 = "0q0vkggrbvy2ihwcsfynlv5qk9l3wjinls8yvmkb1qisyc4lv77f";
-  };
-  configureFlags = if stdenv ? glibc then "--with-zoneinfo-dir=${stdenv.glibc}/share/zoneinfo" else "";
-  propagatedBuildInputs = [ libxml2 gtk3 libsoup GConf3 ];
-  nativeBuildInputs = [ pkgconfig intltool ];
-}
diff --git a/pkgs/development/libraries/libjpeg-turbo/default.nix b/pkgs/development/libraries/libjpeg-turbo/default.nix
index eb86a1d3ff2..a4aa1cf44b4 100644
--- a/pkgs/development/libraries/libjpeg-turbo/default.nix
+++ b/pkgs/development/libraries/libjpeg-turbo/default.nix
@@ -1,15 +1,18 @@
 { stdenv, fetchurl, nasm }:
 
 stdenv.mkDerivation rec {
-  name = "libjpeg-turbo-1.2.1";
+  name = "libjpeg-turbo-1.3.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/libjpeg-turbo/${name}.tar.gz";
-    sha256 = "0w1pj3j7hkx6irkrxlcmz53l94s6im0wml1v36nysb50akq26cyb";
+    sha256 = "0d0jwdmj3h89bxdxlwrys2mw18mqcj4rzgb5l2ndpah8zj600mr6";
   };
 
   buildInputs = [ nasm ];
 
+  doCheck = true;
+  checkTarget = "test";
+
   meta = {
     homepage = http://libjpeg-turbo.virtualgl.org/;
     description = "A faster (using SIMD) libjpeg implementation";
diff --git a/pkgs/development/libraries/libmtp/default.nix b/pkgs/development/libraries/libmtp/default.nix
index ced11c0ef4d..95d060df7f7 100644
--- a/pkgs/development/libraries/libmtp/default.nix
+++ b/pkgs/development/libraries/libmtp/default.nix
@@ -1,13 +1,17 @@
-{ stdenv, fetchurl, libusb }:
+{ stdenv, fetchurl, pkgconfig, libusb1 }:
 
 stdenv.mkDerivation rec {
-  name = "libmtp-1.0.1";
+  name = "libmtp-1.1.5";
 
-  propagatedBuildInputs = [ libusb ];
+  propagatedBuildInputs = [ libusb1 ];
+  buildInputs = [ pkgconfig ];
+
+  # tried to install files to /lib/udev, hopefully OK
+  configureFlags = [ "--with-udev=$$out/lib/udev" ];
 
   src = fetchurl {
     url = "mirror://sourceforge/libmtp/${name}.tar.gz";
-    sha256 = "19iha1yi07cdqzlba4ng1mn7h701binalwwkb71q0ld9b88mad6s";
+    sha256 = "0fn6y7kirgln6sfizmwvjsy7qkdb0p3rccf0zkr3r2xg3cbpjxkq";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/libpaper/default.nix b/pkgs/development/libraries/libpaper/default.nix
new file mode 100644
index 00000000000..9505a6cf052
--- /dev/null
+++ b/pkgs/development/libraries/libpaper/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  version = "1.1.24";
+  name = "libpaper-${version}";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/libp/libpaper/libpaper_${version}.tar.gz";
+    sha256 = "0zhcx67afb6b5r936w5jmaydj3ks8zh83n9rm5sv3m3k8q8jib1q";
+  };
+
+  meta = {
+    description = "Library for handling paper characteristics";
+    homepage = "http://packages.debian.org/unstable/source/libpaper";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/development/libraries/libpng/15.nix b/pkgs/development/libraries/libpng/15.nix
new file mode 100644
index 00000000000..8f62ef1e8dc
--- /dev/null
+++ b/pkgs/development/libraries/libpng/15.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, zlib }:
+
+assert zlib != null;
+
+stdenv.mkDerivation rec {
+  name = "libpng-1.5.15";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/libpng/${name}.tar.xz";
+    sha256 = "1iaplghmv5qhd4dgwfymhp42sh27vz6s2107jk698xm57z2v9hwm";
+  };
+
+  propagatedBuildInputs = [ zlib ];
+
+  doCheck = true;
+
+  passthru = { inherit zlib; };
+
+  meta = {
+    description = "The official reference implementation for the PNG file format";
+    homepage = http://www.libpng.org/pub/png/libpng.html;
+    license = "free-non-copyleft"; # http://www.libpng.org/pub/png/src/libpng-LICENSE.txt
+  };
+}
diff --git a/pkgs/development/libraries/libpng/default.nix b/pkgs/development/libraries/libpng/default.nix
index ce23cf48587..0a150610781 100644
--- a/pkgs/development/libraries/libpng/default.nix
+++ b/pkgs/development/libraries/libpng/default.nix
@@ -3,20 +3,23 @@
 assert zlib != null;
 
 stdenv.mkDerivation rec {
-  name = "libpng-1.5.13";
+  name = "libpng-1.6.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/libpng/${name}.tar.xz";
-    sha256 = "1vks4mqv4140b10kp53qrywsx9m4xan5ibwsrlmf42ni075zjhxq";
+    sha256 = "1pljkqjqgyz8c32w8fipd9f0v2gcyhah2ypp0h7ya1r1q85sk5qw";
   };
 
   propagatedBuildInputs = [ zlib ];
 
+  doCheck = true;
+
   passthru = { inherit zlib; };
 
   meta = {
     description = "The official reference implementation for the PNG file format";
     homepage = http://www.libpng.org/pub/png/libpng.html;
     license = "free-non-copyleft"; # http://www.libpng.org/pub/png/src/libpng-LICENSE.txt
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/libpng/libpng-apng.nix b/pkgs/development/libraries/libpng/libpng-apng.nix
index 534b0ae5a45..bc6a773dba3 100644
--- a/pkgs/development/libraries/libpng/libpng-apng.nix
+++ b/pkgs/development/libraries/libpng/libpng-apng.nix
@@ -1,29 +1,27 @@
 { stdenv, fetchurl, zlib }:
 
-assert zlib != null;
-
 stdenv.mkDerivation rec {
-  version = "1.4.4";
+  version = "1.5.14";
   name = "libpng-apng-${version}";
-  
+
   patch_src = fetchurl {
-    url = "mirror://sourceforge/project/libpng-apng/libpng-master/${version}/libpng-${version}-apng.patch.gz";
-    sha256 = "d729a2feacfd80547e06c30343d598302f4417cf2e6f649e4ee617690987bd24";
+    url = "mirror://sourceforge/libpng-apng/libpng15/${version}/libpng-${version}-apng.patch.gz";
+    sha256 = "1vcqbkdssy4srm8jqyzaipdc70xzanilqssypmwqyngp8ph0m45p";
   };
 
   src = fetchurl {
-    url = "mirror://sourceforge/libpng/libpng-${version}.tar.gz";
-    sha256 = "d07616ba1e9c161017384feb3b576d70c160b970abfd9549ad39a622284b574a";
+    url = "mirror://sourceforge/libpng/libpng-${version}.tar.xz";
+    sha256 = "0m3vz3gig7s63zanq5b1dgb5ph12qm0cylw4g4fbxlsq3f74hn8l";
   };
 
   preConfigure = ''
     gunzip < ${patch_src} | patch -Np1
   '';
-  
+
   propagatedBuildInputs = [ zlib ];
 
   passthru = { inherit zlib; };
-  
+
   meta = {
     description = "The official reference implementation for the PNG file format with animation patch";
     homepage = http://www.libpng.org/pub/png/libpng.html;
diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix
index 0da30203876..13385dfb65c 100644
--- a/pkgs/development/libraries/librsvg/default.nix
+++ b/pkgs/development/libraries/librsvg/default.nix
@@ -1,16 +1,24 @@
-{stdenv, fetchurl, pkgconfig, libxml2, libgsf, bzip2, glib, gtk, libcroco}:
+{ stdenv, fetchurl, pkgconfig, glib, gdk_pixbuf, pango, cairo
+, libxml2, libgsf, bzip2, libcroco
+, gtk2 ? null, gtk3 ? null
+, gobjectIntrospection ? null, enableIntrospection ? false }:
 
-stdenv.mkDerivation {
-  name = "librsvg-2.34.2";
+# no introspection by default, it's too big
+
+stdenv.mkDerivation rec {
+  name = "librsvg-2.36.4";
 
   src = fetchurl {
-    url = mirror://gnome/sources/librsvg/2.34/librsvg-2.34.2.tar.xz;
-    sha256 = "0r24xr10chmz4l3ka2zy9c2245s7svzljbw9nrda3h44bcr03rsx";
+    url = "mirror://gnome/sources/librsvg/2.36/${name}.tar.xz";
+    sha256 = "1hp6325gdkzx8yqn2d2r915ak3k6hfshjjh0sc54z3vr0i99688h";
   };
-  buildInputs = [ libxml2 libgsf bzip2 libcroco ];
-  propagatedBuildInputs = [ glib gtk ];
+  buildInputs = [ libxml2 libgsf bzip2 libcroco pango cairo ]
+    ++ stdenv.lib.optional enableIntrospection [ gobjectIntrospection ];
+  propagatedBuildInputs = [ glib gdk_pixbuf gtk2 gtk3 ];
   nativeBuildInputs = [ pkgconfig ];
 
+  configureFlags = ["--enable-introspection=auto"];
+
   # It wants to add loaders and update the loaders.cache in gdk-pixbuf
   # Patching the Makefiles to it creates rsvg specific loaders and the
   # relevant loader.cache here.
diff --git a/pkgs/development/libraries/libsecret/default.nix b/pkgs/development/libraries/libsecret/default.nix
new file mode 100644
index 00000000000..70c20caa88a
--- /dev/null
+++ b/pkgs/development/libraries/libsecret/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, glib, dbus_libs, unzip, automake, libtool, autoconf, m4, docbook_xsl,
+  intltool, gtk_doc, gobjectIntrospection, pkgconfig, libxslt, libgcrypt }:
+
+stdenv.mkDerivation rec {
+  version = "0.15";
+  name = "libsecret-${version}";
+
+  src = fetchurl {
+    url = "https://git.gnome.org/browse/libsecret/snapshot/libsecret-${version}.zip";
+    sha256 = "088v1z7zbdi8b0779jads7q20x1gx6c4zmrj3q0vysc7a0k16i6k";
+  };
+
+  propagatedBuildInputs = [ glib dbus_libs ];
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ gtk_doc automake libtool autoconf intltool gobjectIntrospection pkgconfig libxslt libgcrypt m4 docbook_xsl ];
+
+  configureScript = "./autogen.sh";
+
+  meta = {
+    inherit (glib.meta) platforms maintainers;
+  };
+}
diff --git a/pkgs/development/libraries/libtiff/default.nix b/pkgs/development/libraries/libtiff/default.nix
index 44b28645927..5101429a403 100644
--- a/pkgs/development/libraries/libtiff/default.nix
+++ b/pkgs/development/libraries/libtiff/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, zlib, libjpeg }:
 
-let version = "3.9.7"; in
+let version = "4.0.3"; in
 
 stdenv.mkDerivation rec {
   name = "libtiff-${version}";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       [ "ftp://ftp.remotesensing.org/pub/libtiff/tiff-${version}.tar.gz"
         "http://download.osgeo.org/libtiff/tiff-${version}.tar.gz"
       ];
-    sha256 = "0spg1hr5rsrmg88sfzb05qnf0haspq7r5hvdkxg5zib1rva4vmpm";
+    sha256 = "0wj8d1iwk9vnpax2h29xqc2hwknxg3s0ay2d5pxkg59ihbifn6pa";
   };
 
   outputs = [ "dev" "out" "bin" "doc" ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Library and utilities for working with the TIFF image file format";
-    homepage = http://www.libtiff.org/;
+    homepage = http://www.remotesensing.org/libtiff/;
     license = "bsd";
   };
 }
diff --git a/pkgs/development/libraries/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix
index 8a1580d4fbe..811909c659d 100644
--- a/pkgs/development/libraries/libusb1/default.nix
+++ b/pkgs/development/libraries/libusb1/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "libusb-1.0.9";
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "16sz34ix6hw2wwl3kqx6rf26fg210iryr68wc439dc065pffw879";
   };
 
+  buildInputs = [ pkgconfig ];
+
   meta = {
     homepage = http://www.libusb.org;
     description = "User-space USB library";
diff --git a/pkgs/development/libraries/libva/default.nix b/pkgs/development/libraries/libva/default.nix
index 5caea5ba610..5b35d2b24ad 100644
--- a/pkgs/development/libraries/libva/default.nix
+++ b/pkgs/development/libraries/libva/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libX11, pkgconfig, libXext, mesa, libdrm, libXfixes }:
 
 stdenv.mkDerivation rec {
-  name = "libva-1.1.0";
+  name = "libva-1.1.1";
   
   src = fetchurl {
     url = "http://www.freedesktop.org/software/vaapi/releases/libva/${name}.tar.bz2";
-    sha256 = "1a7g7i96ww8hmim2pq2a3xc89073lzacxn1xh9526bzhlqjdqsnv";
+    sha256 = "0kfdcrzcr82g15l0vvmm6rqr0f0604d4dgrza78gn6bfx7rppby0";
   };
 
   buildInputs = [ libX11 libXext pkgconfig mesa libdrm libXfixes ];
diff --git a/pkgs/development/libraries/libvdpau/default.nix b/pkgs/development/libraries/libvdpau/default.nix
index 92ab8d67c91..15810624705 100644
--- a/pkgs/development/libraries/libvdpau/default.nix
+++ b/pkgs/development/libraries/libvdpau/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl, pkgconfig, libX11 }:
+{ stdenv, fetchurl, pkgconfig, xlibs }:
 
 stdenv.mkDerivation rec {
-  name = "libvdpau-0.5";
-  
+  name = "libvdpau-0.6";
+
   src = fetchurl {
     url = "http://people.freedesktop.org/~aplattner/vdpau/${name}.tar.gz";
-    sha256 = "0k2ydz4yp7zynlkpd1llfwax30xndwbca36z83ah1i4ldjw2gfhx";
+    sha256 = "0x9dwxzw0ilsy88kqlih3170z1zfrrsx1dr9jbwbn0cbkpnbwmcv";
   };
 
-  buildInputs = [ pkgconfig libX11 ];
+  buildInputs = with xlibs; [ pkgconfig dri2proto libXext ];
 
-  propagatedBuildInputs = [ libX11 ];
+  propagatedBuildInputs = [ xlibs.libX11 ];
 
   meta = {
     homepage = http://people.freedesktop.org/~aplattner/vdpau/;
diff --git a/pkgs/development/libraries/libvpx/default.nix b/pkgs/development/libraries/libvpx/default.nix
index 1c225aa7853..494a5c36a3c 100644
--- a/pkgs/development/libraries/libvpx/default.nix
+++ b/pkgs/development/libraries/libvpx/default.nix
@@ -1,11 +1,13 @@
 {stdenv, fetchurl, bash, yasm, which, perl}:
 
+let version = "1.2.0";
+in
 stdenv.mkDerivation rec {
-  name = "libvpx-1.1.0";
-  
-  src = fetchurl {
-    url = http://webm.googlecode.com/files/libvpx-v1.1.0.tar.bz2;
-    sha256 = "1ibjxcdsazqfbbjhb8w56vy3n9qwny2m9q4kzx4rmk9v9g7p9q4w";
+  name = "libvpx-" + version;
+
+  src = fetchurl { # sadly, there's no official tarball for this release
+    url = "ftp://ftp.archlinux.org/other/libvpx/libvpx-${version}.tar.xz";
+    sha256 = "02k9ylswgr2hvjqmg422fa9ggym0g94gzwb14nnckly698rvjc50";
   };
 
   patchPhase = ''
@@ -14,15 +16,17 @@ stdenv.mkDerivation rec {
     sed -e '/enable linux/d' -i configure
   '';
 
-  configureScript = "../configure";
+  buildInputs = [ yasm which perl ];
 
   preConfigure = ''
     mkdir -p build
     cd build
   '';
 
+  configureScript = "../configure";
   configureFlags = [
     "--disable-install-srcs"
+    "--disable-install-docs"
     "--disable-examples"
     "--enable-vp8"
     "--enable-runtime-cpu-detect"
@@ -34,8 +38,6 @@ stdenv.mkDerivation rec {
     make quiet=false DIST_DIR=$out install
   '';
 
-  buildInputs = [ yasm which perl ];
-
   meta = {
     description = "VP8 video encoder";
     homepage = http://code.google.com/p/webm;
diff --git a/pkgs/development/libraries/libxkbcommon/default.nix b/pkgs/development/libraries/libxkbcommon/default.nix
new file mode 100644
index 00000000000..4a1327778d4
--- /dev/null
+++ b/pkgs/development/libraries/libxkbcommon/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, yacc, flex, xkeyboard_config }:
+
+stdenv.mkDerivation rec {
+  name = "libxkbcommon-0.2.0";
+
+  src = fetchurl {
+    url = "http://xkbcommon.org/download/${name}.tar.bz2";
+    sha256 = "0hpvfa8p4bhvhc1gcb578m354p5idd192xb8zlaq16d33h90msvl";
+  };
+
+  buildInputs = [ yacc flex xkeyboard_config ];
+
+  configureFlags = ''
+    --with-xkb-config-root=${xkeyboard_config}/etc/X11/xkb
+  '';
+
+  meta = {
+    description = "A library to handle keyboard descriptions";
+    homepage = http://xkbcommon.org;
+  };
+}
diff --git a/pkgs/development/libraries/libxtc_dxtn/default.nix b/pkgs/development/libraries/libxtc_dxtn/default.nix
index 0e7442633d7..a23d74a2be8 100644
--- a/pkgs/development/libraries/libxtc_dxtn/default.nix
+++ b/pkgs/development/libraries/libxtc_dxtn/default.nix
@@ -8,8 +8,5 @@ stdenv.mkDerivation rec {
     sha256 = "0q5fjaknl7s0z206dd8nzk9bdh8g4p23bz7784zrllnarl90saa5";
   };
 
-  postUnpack = ''
-    tar xf ${mesa.src} --wildcards '*/include/'
-    export NIX_CFLAGS_COMPILE="-I $NIX_BUILD_TOP/[mM]esa*/include"
-  '';
+  NIX_CFLAGS_COMPILE = "-I ${mesa}/include";
 }
diff --git a/pkgs/development/libraries/mesa-glu/default.nix b/pkgs/development/libraries/mesa-glu/default.nix
new file mode 100644
index 00000000000..502329226ff
--- /dev/null
+++ b/pkgs/development/libraries/mesa-glu/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, mesa_noglu }:
+
+stdenv.mkDerivation rec {
+  name = "glu-9.0.0";
+
+  src = fetchurl {
+    url = "ftp://ftp.freedesktop.org/pub/mesa/glu/${name}.tar.bz2";
+    sha256 = "04nzlil3a6fifcmb95iix3yl8mbxdl66b99s62yzq8m7g79x0yhz";
+  };
+
+  buildInputs = [ pkgconfig ];
+  propagatedBuildInputs = [ mesa_noglu ];
+
+  meta = {
+    description = "OpenGL utility library";
+    homepage = http://cgit.freedesktop.org/mesa/glu/;
+    license = "bsd"; # SGI-B-2.0, which seems BSD-like
+  };
+}
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index d3f7afbd308..de130d465c2 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -1,41 +1,143 @@
-{ stdenv, fetchurl, flex, bison, pkgconfig, libdrm, file, expat, makedepend
-, libXxf86vm, libXfixes, libXdamage, glproto, dri2proto, libX11, libxcb, libXext
-, libXt, udev, enableTextureFloats ? false
-, python, libxml2Python }:
+{ stdenv, fetchurl, pkgconfig, intltool, flex, bison, autoconf, automake, libtool
+, python, libxml2Python, file, expat, makedepend
+, libdrm, xorg, wayland, udev, llvm, libffi
+, libvdpau
+, enableTextureFloats ? false # Texture floats are patented, see docs/patents.txt
+, enableR600LlvmCompiler ? false # we would need currently unreleased LLVM or patches
+, enableExtraFeatures ? false # add ~15 MB to mesa_drivers
+}:
 
 if ! stdenv.lib.lists.elem stdenv.system stdenv.lib.platforms.mesaPlatforms then
   throw "unsupported platform for Mesa"
 else
 
-let version = "8.0.4"; in
+/** Packaging design:
+  - The basic mesa ($out) contains headers and libraries (GLU is in mesa_glu now).
+    This or the mesa attribute (which also contains GLU) are small (~ 2.2 MB, mostly headers)
+    and are designed to be the buildInput of other packages.
+  - DRI and EGL drivers are compiled into $drivers output,
+    which is bigger (~13 MB) and depends on LLVM (~40 MB).
+    These should be searched at runtime in /run/current-system/sw/lib/*
+    and so are kind-of impure (given by NixOS).
+    (I suppose on non-NixOS one would create the appropriate symlinks from there.)
+*/
 
+let
+  version = "9.1.3";
+  driverLink = "/run/opengl-driver" + stdenv.lib.optionalString stdenv.isi686 "-32";
+in
 stdenv.mkDerivation {
-  name = "mesa-${version}";
+  name = "mesa-noglu-${version}";
 
   src = fetchurl {
     url = "ftp://ftp.freedesktop.org/pub/mesa/${version}/MesaLib-${version}.tar.bz2";
-    md5 = "d546f988adfdf986cff45b1efa2d8a46";
+    sha256="0rnpaambxv5cd6kbfyvv4b8x2rw1xj13a67xbkzmndfh08iaqpcd";
   };
 
-  patches =
-    stdenv.lib.optional (stdenv.system == "mips64el-linux") ./mips_wmb.patch;
-
   prePatch = "patchShebangs .";
 
-  configureFlags =
-      " --enable-gles1 --enable-gles2 --enable-gallium-egl"
-    + " --with-gallium-drivers=i915,nouveau,r600,svga,swrast"
-    # Texture floats are patented, see docs/patents.txt
-    + stdenv.lib.optionalString enableTextureFloats " --enable-texture-float";
+  patches = [
+    ./static-gallium.patch
+    ./dricore-gallium.patch
+    ./fix-rounding.patch
+  ];
+
+  # Change the search path for EGL drivers from $drivers/* to driverLink
+  postPatch = ''
+    sed '/D_EGL_DRIVER_SEARCH_DIR=/s,EGL_DRIVER_INSTALL_DIR,${driverLink}/lib/egl,' \
+      -i src/egl/main/Makefile.am
+  '';
+
+  outputs = ["out" "drivers"];
+
+  preConfigure = "./autogen.sh";
+
+  configureFlags = with stdenv.lib; [
+    "--with-dri-driverdir=$(drivers)/lib/dri"
+    "--with-egl-driver-dir=$(drivers)/lib/egl"
+    "--with-dri-searchpath=${driverLink}/lib/dri"
+
+    "--enable-dri"
+    "--enable-glx-tls"
+    "--enable-shared-glapi" "--enable-shared-gallium"
+    "--enable-driglx-direct" # seems enabled anyway
+    "--enable-gallium-llvm" "--with-llvm-shared-libs"
+    "--enable-xa" # used in vmware driver
 
-  buildInputs = [ expat libdrm libXxf86vm libXfixes libXdamage glproto dri2proto
-    libxml2Python libX11 libXext libxcb libXt udev ];
+    "--with-dri-drivers=i965,r200,radeon"
+    "--with-gallium-drivers=i915,nouveau,r300,r600,svga,swrast" # radeonsi complains about R600 missing in LLVM
+    "--with-egl-platforms=x11,wayland,drm" "--enable-gbm" "--enable-shared-glapi"
+  ]
+    ++ optional enableR600LlvmCompiler "--enable-r600-llvm-compiler" # complains about R600 missing in LLVM
+    ++ optional enableTextureFloats "--enable-texture-float"
+    ++ optionals enableExtraFeatures [
+      "--enable-gles1" "--enable-gles2"
+      "--enable-osmesa"
+      "--enable-openvg" "--enable-gallium-egl" # not needed for EGL in Gallium, but OpenVG might be useful
+      #"--enable-xvmc" # tests segfault with 9.1.{1,2,3}
+      "--enable-vdpau"
+      #"--enable-opencl" # ToDo: opencl seems to need libclc for clover
+    ];
 
   nativeBuildInputs = [ pkgconfig python makedepend file flex bison ];
 
+  propagatedBuildInputs = with xorg; [ libXdamage libXxf86vm ]
+  ++
+  stdenv.lib.optionals stdenv.isLinux [libdrm]
+  ;
+  buildInputs = with xorg; [
+    autoconf automake libtool intltool expat libxml2Python llvm
+    libXfixes glproto dri2proto libX11 libXext libxcb libXt
+    libffi wayland
+  ] ++ stdenv.lib.optionals enableExtraFeatures [ /*libXvMC*/ libvdpau ]
+  ++ stdenv.lib.optional stdenv.isLinux [udev]
+  ;
+
   enableParallelBuilding = true;
+  doCheck = true;
+
+  # move gallium-related stuff to $drivers, so $out doesn't depend on LLVM
+  # ToDo: probably not all .la files are completely fixed, but it shouldn't matter
+  postInstall = with stdenv.lib; ''
+    mv -t "$drivers/lib/" \
+  '' + optionalString enableExtraFeatures ''
+      `#$out/lib/libXvMC*` \
+      $out/lib/vdpau \
+      $out/lib/libOSMesa* \
+      $out/lib/gbm $out/lib/libgbm* \
+      $out/lib/gallium-pipe \
+  '' + ''
+      $out/lib/libdricore* \
+      $out/lib/libgallium* \
+      $out/lib/libxatracker*
+
+  '' + /* now fix references in .la files */ ''
+    sed "/^libdir=/s,$out,$drivers," -i \
+  '' + optionalString enableExtraFeatures ''
+      `#$drivers/lib/libXvMC*.la` \
+      $drivers/lib/vdpau/*.la \
+      $drivers/lib/libOSMesa*.la \
+      $drivers/lib/gallium-pipe/*.la \
+  '' + ''
+      $drivers/lib/libgallium.la \
+      $drivers/lib/libdricore*.la
+
+    sed "s,$out\(/lib/\(libdricore[0-9\.]*\|libgallium\).la\),$drivers\1,g" \
+      -i $drivers/lib/*.la $drivers/lib/*/*.la
+
+  '' + /* work around bug #529, but maybe $drivers should also be patchelf-ed */ ''
+    find $drivers/ -type f -executable -print0 | xargs -0 strip -S || true
+
+  '' + /* add RPATH so the drivers can find the moved libgallium and libdricore9 */ ''
+    for lib in $drivers/lib/*.so* $drivers/lib/*/*.so*; do
+      if [[ ! -L "$lib" ]]; then
+        patchelf --set-rpath "$(patchelf --print-rpath $lib):$drivers/lib" "$lib"
+      fi
+    done
+  '';
+  #ToDo: @vcunat isn't sure if drirc will be found when in $out/etc/, but it doesn't seem important ATM
 
-  passthru = { inherit libdrm; };
+  passthru = { inherit libdrm; inherit version; };
 
   meta = {
     description = "An open source implementation of OpenGL";
diff --git a/pkgs/development/libraries/mesa/dricore-gallium.patch b/pkgs/development/libraries/mesa/dricore-gallium.patch
new file mode 100644
index 00000000000..9a8b6768277
--- /dev/null
+++ b/pkgs/development/libraries/mesa/dricore-gallium.patch
@@ -0,0 +1,216 @@
+commit 5208f187c7dade2c33385a56c1a5f1c3cedc8377 (HEAD, nix-patches)
+Author: Vladimír Čunát <vcunat@gmail.com>
+Date:   Mon May 13 11:34:59 2013 +0200
+
+    118-dricore-gallium.patch
+
+diff --git a/configure.ac b/configure.ac
+index be89843..08f6761 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -928,6 +928,8 @@ AC_SUBST([GLESv2_LIB_DEPS])
+ AC_SUBST([GLESv2_PC_LIB_PRIV])
+ 
+ DRI_LIB_DEPS="\$(top_builddir)/src/mesa/libdricore/libdricore${VERSION}.la"
++MESAGALLIUM_LIBS="${DRI_LIB_DEPS}"
++AC_SUBST([MESAGALLIUM_LIBS], ${MESAGALLIUM_LIBS})
+ 
+ AC_SUBST([HAVE_XF86VIDMODE])
+ 
+diff --git a/src/gallium/auxiliary/Makefile.am b/src/gallium/auxiliary/Makefile.am
+index 3cdec83..53ff69b 100644
+--- a/src/gallium/auxiliary/Makefile.am
++++ b/src/gallium/auxiliary/Makefile.am
+@@ -34,14 +34,14 @@ if LLVM_NEEDS_FNORTTI
+ 
+ AM_CXXFLAGS += -fno-rtti
+ 
+-libgallium_la_LIBADD = $(LLVM_LIBS)
+-
+ endif
+ 
+ libgallium_la_SOURCES += \
+ 	$(GALLIVM_SOURCES) \
+ 	$(GALLIVM_CPP_SOURCES)
+ 
++libgallium_la_LIBADD = ../../mesa/libdricore/libmesagallium.la $(LLVM_LIBS) $(GALLIUM_DRI_LIB_DEPS)
++
+ endif
+ 
+ indices/u_indices_gen.c: $(srcdir)/indices/u_indices_gen.py
+diff --git a/src/gallium/targets/dri-i915/Makefile.am b/src/gallium/targets/dri-i915/Makefile.am
+index f4f9030..e9b9462 100644
+--- a/src/gallium/targets/dri-i915/Makefile.am
++++ b/src/gallium/targets/dri-i915/Makefile.am
+@@ -49,7 +49,7 @@ i915_dri_la_SOURCES = \
+ i915_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
+ 
+ i915_dri_la_LIBADD = \
+-	$(top_builddir)/src/mesa/libmesagallium.la \
++	@MESAGALLIUM_LIBS@ \
+ 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
+ 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
+ 	$(top_builddir)/src/gallium/winsys/i915/drm/libi915drm.la \
+diff --git a/src/gallium/targets/dri-nouveau/Makefile.am b/src/gallium/targets/dri-nouveau/Makefile.am
+index 69ccf32..fef4c63 100644
+--- a/src/gallium/targets/dri-nouveau/Makefile.am
++++ b/src/gallium/targets/dri-nouveau/Makefile.am
+@@ -48,7 +48,7 @@ nouveau_dri_la_SOURCES = \
+ nouveau_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
+ 
+ nouveau_dri_la_LIBADD = \
+-	$(top_builddir)/src/mesa/libmesagallium.la \
++	@MESAGALLIUM_LIBS@ \
+ 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
+ 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
+ 	$(top_builddir)/src/gallium/winsys/nouveau/drm/libnouveaudrm.la \
+diff --git a/src/gallium/targets/dri-r300/Makefile.am b/src/gallium/targets/dri-r300/Makefile.am
+index 8c0215d..6beb536 100644
+--- a/src/gallium/targets/dri-r300/Makefile.am
++++ b/src/gallium/targets/dri-r300/Makefile.am
+@@ -49,7 +49,7 @@ r300_dri_la_SOURCES = \
+ r300_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
+ 
+ r300_dri_la_LIBADD = \
+-	$(top_builddir)/src/mesa/libmesagallium.la \
++	@MESAGALLIUM_LIBS@ \
+ 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
+ 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
+ 	$(top_builddir)/src/gallium/winsys/radeon/drm/libradeonwinsys.la \
+diff --git a/src/gallium/targets/dri-r600/Makefile.am b/src/gallium/targets/dri-r600/Makefile.am
+index 2b3524b..d40fb89 100644
+--- a/src/gallium/targets/dri-r600/Makefile.am
++++ b/src/gallium/targets/dri-r600/Makefile.am
+@@ -48,7 +48,7 @@ r600_dri_la_SOURCES = \
+ r600_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
+ 
+ r600_dri_la_LIBADD = \
+-	$(top_builddir)/src/mesa/libmesagallium.la \
++	@MESAGALLIUM_LIBS@ \
+ 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
+ 	$(top_builddir)/src/gallium/drivers/r600/libr600.la \
+ 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
+diff --git a/src/gallium/targets/dri-radeonsi/Makefile.am b/src/gallium/targets/dri-radeonsi/Makefile.am
+index f7d87a6..87ab2aa 100644
+--- a/src/gallium/targets/dri-radeonsi/Makefile.am
++++ b/src/gallium/targets/dri-radeonsi/Makefile.am
+@@ -49,7 +49,7 @@ radeonsi_dri_la_SOURCES = \
+ radeonsi_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
+ 
+ radeonsi_dri_la_LIBADD = \
+-	$(top_builddir)/src/mesa/libmesagallium.la \
++	@MESAGALLIUM_LIBS@ \
+ 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
+ 	$(top_builddir)/src/gallium/drivers/radeonsi/libradeonsi.la \
+ 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
+diff --git a/src/gallium/targets/dri-swrast/Makefile.am b/src/gallium/targets/dri-swrast/Makefile.am
+index 1104379..72d2401 100644
+--- a/src/gallium/targets/dri-swrast/Makefile.am
++++ b/src/gallium/targets/dri-swrast/Makefile.am
+@@ -49,7 +49,7 @@ swrast_dri_la_SOURCES = \
+ swrast_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
+ 
+ swrast_dri_la_LIBADD = \
+-	$(top_builddir)/src/mesa/libmesagallium.la \
++	@MESAGALLIUM_LIBS@ \
+ 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
+ 	$(top_builddir)/src/gallium/state_trackers/dri/sw/libdrisw.la \
+ 	$(top_builddir)/src/gallium/winsys/sw/dri/libswdri.la \
+diff --git a/src/gallium/targets/dri-vmwgfx/Makefile.am b/src/gallium/targets/dri-vmwgfx/Makefile.am
+index ca7df65..4384976 100644
+--- a/src/gallium/targets/dri-vmwgfx/Makefile.am
++++ b/src/gallium/targets/dri-vmwgfx/Makefile.am
+@@ -48,7 +48,7 @@ vmwgfx_dri_la_SOURCES = \
+ vmwgfx_dri_la_LDFLAGS = -module -avoid-version -shared -no-undefined
+ 
+ vmwgfx_dri_la_LIBADD = \
+-	$(top_builddir)/src/mesa/libmesagallium.la \
++	@MESAGALLIUM_LIBS@ \
+ 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
+ 	$(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
+ 	$(top_builddir)/src/gallium/winsys/svga/drm/libsvgadrm.la \
+diff --git a/src/gallium/targets/egl-static/Makefile.am b/src/gallium/targets/egl-static/Makefile.am
+index 5c40ae8..6922ab2 100644
+--- a/src/gallium/targets/egl-static/Makefile.am
++++ b/src/gallium/targets/egl-static/Makefile.am
+@@ -104,7 +104,7 @@ AM_CPPFLAGS += \
+ 	$(API_DEFINES)
+ 
+ egl_gallium_la_LIBADD += \
+-	$(top_builddir)/src/mesa/libmesagallium.la
++	@MESAGALLIUM_LIBS@
+ # make st/mesa built-in when there is a single glapi provider
+ if HAVE_SHARED_GLAPI
+ egl_gallium_la_LIBADD += \
+diff --git a/src/mesa/Makefile.am b/src/mesa/Makefile.am
+index 41483dd..0045a673 100644
+--- a/src/mesa/Makefile.am
++++ b/src/mesa/Makefile.am
+@@ -75,9 +75,6 @@ noinst_LTLIBRARIES += libmesa.la
+ else
+ check_LTLIBRARIES = libmesa.la
+ endif
+-if HAVE_GALLIUM
+-noinst_LTLIBRARIES += libmesagallium.la
+-endif
+ 
+ SRCDIR = $(top_srcdir)/src/mesa/
+ BUILDDIR = $(top_builddir)/src/mesa/
+@@ -119,15 +116,6 @@ libmesa_la_LIBADD = \
+         $()
+ libmesa_la_LDFLAGS =
+ 
+-libmesagallium_la_SOURCES = \
+-	$(MESA_GALLIUM_FILES) \
+-        $(MESA_ASM_FILES_FOR_ARCH)
+-
+-libmesagallium_la_LIBADD = \
+-        $(top_builddir)/src/glsl/libglsl.la \
+-        $(top_builddir)/src/mesa/program/libprogram.la \
+-        $()
+-
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = gl.pc
+ 
+diff --git a/src/mesa/libdricore/Makefile.am b/src/mesa/libdricore/Makefile.am
+index 753548e..8761418 100644
+--- a/src/mesa/libdricore/Makefile.am
++++ b/src/mesa/libdricore/Makefile.am
+@@ -42,6 +42,7 @@ libdricore@VERSION@_la_SOURCES = \
+ libdricore@VERSION@_la_LDFLAGS = -version-number 1:0
+ libdricore@VERSION@_la_LIBADD = \
+         ../program/libdricore_program.la \
++        $(top_builddir)/src/mapi/shared-glapi/libglapi.la
+         $()
+ 
+ if HAVE_X86_ASM
+@@ -65,8 +66,10 @@ AM_CPPFLAGS += \
+         -I$(top_srcdir)/src/mesa/sparc
+ endif
+ 
++lib_LTLIBRARIES =
++
+ if HAVE_DRI
+-lib_LTLIBRARIES = libdricore@VERSION@.la
++lib_LTLIBRARIES += libdricore@VERSION@.la
+ 
+ # Provide compatibility with scripts for the old Mesa build system for
+ # a while by putting a link to the driver into /lib of the build tree.
+@@ -76,6 +79,17 @@ all-local: libdricore@VERSION@.la
+ 	ln -sf libdricore@VERSION@.so.1 $(top_builddir)/$(LIB_DIR)/libdricore@VERSION@.so
+ endif
+ 
++libmesagallium_la_SOURCES = \
++	$(STATETRACKER_FILES)
++libmesagallium_la_CFLAGS = @LLVM_CFLAGS@
++libmesagallium_la_CXXFLAGS = @LLVM_CXXFLAGS@
++libmesagallium_la_LIBADD = libdricore@VERSION@.la $(LLVM_LIBS)
++
++if HAVE_GALLIUM
++noinst_LTLIBRARIES = libmesagallium.la
++endif
++
++
+ CLEANFILES = \
+ 	$(top_builddir)/$(LIB_DIR)/libdricore@VERSION@.so.1 \
+ 	$(top_builddir)/$(LIB_DIR)/libdricore@VERSION@.so
diff --git a/pkgs/development/libraries/mesa/fix-rounding.patch b/pkgs/development/libraries/mesa/fix-rounding.patch
new file mode 100644
index 00000000000..f81760a6708
--- /dev/null
+++ b/pkgs/development/libraries/mesa/fix-rounding.patch
@@ -0,0 +1,357 @@
+From c25ae5d27b114e23d5734f846002df1a05759658 Mon Sep 17 00:00:00 2001
+From: Roland Scheidegger <sroland@vmware.com>
+Date: Thu, 31 Jan 2013 19:27:49 +0000
+Subject: gallivm: fix issues with trunc/round/floor/ceil with no arch rounding
+
+The emulation of these if there's no rounding instruction available
+is a bit more complicated than what the code did.
+In particular, doing fp-to-int/int-to-fp will not work if the exponent
+is large enough (and with NaNs, Infs). Hence such values need to be filtered
+out and the original value returned in this case (which fortunately should
+always be exact). This comes at the expense of performance (if your cpu
+doesn't support rounding instructions).
+Furthermore, floor/ifloor/ceil/iceil were affected by precision issues for
+values near negative (for floor) or positive (for ceil) zero, fix that as well
+(fixing this issue might not actually be slower except for ceil/iceil if the
+type is not signed which is probably rare - note iceil has no callers left
+in any case).
+
+Also add some new rounding test values in lp_test_arit to actually test
+for that stuff (which previously would have failed without sse41).
+
+This fixes https://bugs.freedesktop.org/show_bug.cgi?id=59701.
+---
+diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
+index b4e9f23..ec05026 100644
+--- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c
++++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
+@@ -1590,12 +1590,37 @@ lp_build_trunc(struct lp_build_context *bld,
+       return lp_build_round_arch(bld, a, LP_BUILD_ROUND_TRUNCATE);
+    }
+    else {
+-      LLVMTypeRef vec_type = lp_build_vec_type(bld->gallivm, type);
+-      LLVMTypeRef int_vec_type = lp_build_int_vec_type(bld->gallivm, type);
+-      LLVMValueRef res;
+-      res = LLVMBuildFPToSI(builder, a, int_vec_type, "");
+-      res = LLVMBuildSIToFP(builder, res, vec_type, "");
+-      return res;
++      const struct lp_type type = bld->type;
++      struct lp_type inttype;
++      struct lp_build_context intbld;
++      LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 2^24);
++      LLVMValueRef trunc, res, anosign, mask;
++      LLVMTypeRef int_vec_type = bld->int_vec_type;
++      LLVMTypeRef vec_type = bld->vec_type;
++
++      assert(type.width == 32); /* might want to handle doubles at some point */
++
++      inttype = type;
++      inttype.floating = 0;
++      lp_build_context_init(&intbld, bld->gallivm, inttype);
++
++      /* round by truncation */
++      trunc = LLVMBuildFPToSI(builder, a, int_vec_type, "");
++      res = LLVMBuildSIToFP(builder, trunc, vec_type, "floor.trunc");
++
++      /* mask out sign bit */
++      anosign = lp_build_abs(bld, a);
++      /*
++       * mask out all values if anosign > 2^24
++       * This should work both for large ints (all rounding is no-op for them
++       * because such floats are always exact) as well as special cases like
++       * NaNs, Infs (taking advantage of the fact they use max exponent).
++       * (2^24 is arbitrary anything between 2^24 and 2^31 should work.)
++       */
++      anosign = LLVMBuildBitCast(builder, anosign, int_vec_type, "");
++      cmpval = LLVMBuildBitCast(builder, cmpval, int_vec_type, "");
++      mask = lp_build_cmp(&intbld, PIPE_FUNC_GREATER, anosign, cmpval);
++      return lp_build_select(bld, mask, a, res);
+    }
+ }
+ 
+@@ -1620,11 +1645,36 @@ lp_build_round(struct lp_build_context *bld,
+       return lp_build_round_arch(bld, a, LP_BUILD_ROUND_NEAREST);
+    }
+    else {
+-      LLVMTypeRef vec_type = lp_build_vec_type(bld->gallivm, type);
+-      LLVMValueRef res;
++      const struct lp_type type = bld->type;
++      struct lp_type inttype;
++      struct lp_build_context intbld;
++      LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 2^24);
++      LLVMValueRef res, anosign, mask;
++      LLVMTypeRef int_vec_type = bld->int_vec_type;
++      LLVMTypeRef vec_type = bld->vec_type;
++
++      assert(type.width == 32); /* might want to handle doubles at some point */
++
++      inttype = type;
++      inttype.floating = 0;
++      lp_build_context_init(&intbld, bld->gallivm, inttype);
++
+       res = lp_build_iround(bld, a);
+       res = LLVMBuildSIToFP(builder, res, vec_type, "");
+-      return res;
++
++      /* mask out sign bit */
++      anosign = lp_build_abs(bld, a);
++      /*
++       * mask out all values if anosign > 2^24
++       * This should work both for large ints (all rounding is no-op for them
++       * because such floats are always exact) as well as special cases like
++       * NaNs, Infs (taking advantage of the fact they use max exponent).
++       * (2^24 is arbitrary anything between 2^24 and 2^31 should work.)
++       */
++      anosign = LLVMBuildBitCast(builder, anosign, int_vec_type, "");
++      cmpval = LLVMBuildBitCast(builder, cmpval, int_vec_type, "");
++      mask = lp_build_cmp(&intbld, PIPE_FUNC_GREATER, anosign, cmpval);
++      return lp_build_select(bld, mask, a, res);
+    }
+ }
+ 
+@@ -1648,11 +1698,52 @@ lp_build_floor(struct lp_build_context *bld,
+       return lp_build_round_arch(bld, a, LP_BUILD_ROUND_FLOOR);
+    }
+    else {
+-      LLVMTypeRef vec_type = lp_build_vec_type(bld->gallivm, type);
+-      LLVMValueRef res;
+-      res = lp_build_ifloor(bld, a);
+-      res = LLVMBuildSIToFP(builder, res, vec_type, "");
+-      return res;
++      const struct lp_type type = bld->type;
++      struct lp_type inttype;
++      struct lp_build_context intbld;
++      LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 2^24);
++      LLVMValueRef trunc, res, anosign, mask;
++      LLVMTypeRef int_vec_type = bld->int_vec_type;
++      LLVMTypeRef vec_type = bld->vec_type;
++
++      assert(type.width == 32); /* might want to handle doubles at some point */
++
++      inttype = type;
++      inttype.floating = 0;
++      lp_build_context_init(&intbld, bld->gallivm, inttype);
++
++      /* round by truncation */
++      trunc = LLVMBuildFPToSI(builder, a, int_vec_type, "");
++      res = LLVMBuildSIToFP(builder, trunc, vec_type, "floor.trunc");
++
++      if (type.sign) {
++         LLVMValueRef tmp;
++
++         /*
++          * fix values if rounding is wrong (for non-special cases)
++          * - this is the case if trunc > a
++          */
++         mask = lp_build_cmp(bld, PIPE_FUNC_GREATER, res, a);
++         /* tmp = trunc > a ? 1.0 : 0.0 */
++         tmp = LLVMBuildBitCast(builder, bld->one, int_vec_type, "");
++         tmp = lp_build_and(&intbld, mask, tmp);
++         tmp = LLVMBuildBitCast(builder, tmp, vec_type, "");
++         res = lp_build_sub(bld, res, tmp);
++      }
++
++      /* mask out sign bit */
++      anosign = lp_build_abs(bld, a);
++      /*
++       * mask out all values if anosign > 2^24
++       * This should work both for large ints (all rounding is no-op for them
++       * because such floats are always exact) as well as special cases like
++       * NaNs, Infs (taking advantage of the fact they use max exponent).
++       * (2^24 is arbitrary anything between 2^24 and 2^31 should work.)
++       */
++      anosign = LLVMBuildBitCast(builder, anosign, int_vec_type, "");
++      cmpval = LLVMBuildBitCast(builder, cmpval, int_vec_type, "");
++      mask = lp_build_cmp(&intbld, PIPE_FUNC_GREATER, anosign, cmpval);
++      return lp_build_select(bld, mask, a, res);
+    }
+ }
+ 
+@@ -1676,11 +1767,48 @@ lp_build_ceil(struct lp_build_context *bld,
+       return lp_build_round_arch(bld, a, LP_BUILD_ROUND_CEIL);
+    }
+    else {
+-      LLVMTypeRef vec_type = lp_build_vec_type(bld->gallivm, type);
+-      LLVMValueRef res;
+-      res = lp_build_iceil(bld, a);
+-      res = LLVMBuildSIToFP(builder, res, vec_type, "");
+-      return res;
++      const struct lp_type type = bld->type;
++      struct lp_type inttype;
++      struct lp_build_context intbld;
++      LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 2^24);
++      LLVMValueRef trunc, res, anosign, mask, tmp;
++      LLVMTypeRef int_vec_type = bld->int_vec_type;
++      LLVMTypeRef vec_type = bld->vec_type;
++
++      assert(type.width == 32); /* might want to handle doubles at some point */
++
++      inttype = type;
++      inttype.floating = 0;
++      lp_build_context_init(&intbld, bld->gallivm, inttype);
++
++      /* round by truncation */
++      trunc = LLVMBuildFPToSI(builder, a, int_vec_type, "");
++      trunc = LLVMBuildSIToFP(builder, trunc, vec_type, "ceil.trunc");
++
++      /*
++       * fix values if rounding is wrong (for non-special cases)
++       * - this is the case if trunc < a
++       */
++      mask = lp_build_cmp(bld, PIPE_FUNC_LESS, trunc, a);
++      /* tmp = trunc < a ? 1.0 : 0.0 */
++      tmp = LLVMBuildBitCast(builder, bld->one, int_vec_type, "");
++      tmp = lp_build_and(&intbld, mask, tmp);
++      tmp = LLVMBuildBitCast(builder, tmp, vec_type, "");
++      res = lp_build_add(bld, trunc, tmp);
++
++      /* mask out sign bit */
++      anosign = lp_build_abs(bld, a);
++      /*
++       * mask out all values if anosign > 2^24
++       * This should work both for large ints (all rounding is no-op for them
++       * because such floats are always exact) as well as special cases like
++       * NaNs, Infs (taking advantage of the fact they use max exponent).
++       * (2^24 is arbitrary anything between 2^24 and 2^31 should work.)
++       */
++      anosign = LLVMBuildBitCast(builder, anosign, int_vec_type, "");
++      cmpval = LLVMBuildBitCast(builder, cmpval, int_vec_type, "");
++      mask = lp_build_cmp(&intbld, PIPE_FUNC_GREATER, anosign, cmpval);
++      return lp_build_select(bld, mask, a, res);
+    }
+ }
+ 
+@@ -1826,32 +1954,30 @@ lp_build_ifloor(struct lp_build_context *bld,
+          res = lp_build_round_arch(bld, a, LP_BUILD_ROUND_FLOOR);
+       }
+       else {
+-         /* Take the sign bit and add it to 1 constant */
+-         LLVMTypeRef vec_type = bld->vec_type;
+-         unsigned mantissa = lp_mantissa(type);
+-         LLVMValueRef mask = lp_build_const_int_vec(bld->gallivm, type,
+-                                  (unsigned long long)1 << (type.width - 1));
+-         LLVMValueRef sign;
+-         LLVMValueRef offset;
++         struct lp_type inttype;
++         struct lp_build_context intbld;
++         LLVMValueRef trunc, itrunc, mask;
+ 
+-         /* sign = a < 0 ? ~0 : 0 */
+-         sign = LLVMBuildBitCast(builder, a, int_vec_type, "");
+-         sign = LLVMBuildAnd(builder, sign, mask, "");
+-         sign = LLVMBuildAShr(builder, sign,
+-                              lp_build_const_int_vec(bld->gallivm, type,
+-                                                     type.width - 1),
+-                              "ifloor.sign");
++         assert(type.floating);
++         assert(lp_check_value(type, a));
+ 
+-         /* offset = -0.99999(9)f */
+-         offset = lp_build_const_vec(bld->gallivm, type,
+-                                     -(double)(((unsigned long long)1 << mantissa) - 10)/((unsigned long long)1 << mantissa));
+-         offset = LLVMConstBitCast(offset, int_vec_type);
++         inttype = type;
++         inttype.floating = 0;
++         lp_build_context_init(&intbld, bld->gallivm, inttype);
+ 
+-         /* offset = a < 0 ? offset : 0.0f */
+-         offset = LLVMBuildAnd(builder, offset, sign, "");
+-         offset = LLVMBuildBitCast(builder, offset, vec_type, "ifloor.offset");
++         /* round by truncation */
++         itrunc = LLVMBuildFPToSI(builder, a, int_vec_type, "");
++         trunc = LLVMBuildSIToFP(builder, itrunc, bld->vec_type, "ifloor.trunc");
+ 
+-         res = LLVMBuildFAdd(builder, res, offset, "ifloor.res");
++         /*
++          * fix values if rounding is wrong (for non-special cases)
++          * - this is the case if trunc > a
++          * The results of doing this with NaNs, very large values etc.
++          * are undefined but this seems to be the case anyway.
++          */
++         mask = lp_build_cmp(bld, PIPE_FUNC_GREATER, trunc, a);
++         /* cheapie minus one with mask since the mask is minus one / zero */
++         return lp_build_add(&intbld, itrunc, mask);
+       }
+    }
+ 
+@@ -1883,35 +2009,30 @@ lp_build_iceil(struct lp_build_context *bld,
+       res = lp_build_round_arch(bld, a, LP_BUILD_ROUND_CEIL);
+    }
+    else {
+-      LLVMTypeRef vec_type = bld->vec_type;
+-      unsigned mantissa = lp_mantissa(type);
+-      LLVMValueRef offset;
++      struct lp_type inttype;
++      struct lp_build_context intbld;
++      LLVMValueRef trunc, itrunc, mask;
+ 
+-      /* offset = 0.99999(9)f */
+-      offset = lp_build_const_vec(bld->gallivm, type,
+-                                  (double)(((unsigned long long)1 << mantissa) - 10)/((unsigned long long)1 << mantissa));
++      assert(type.floating);
++      assert(lp_check_value(type, a));
+ 
+-      if (type.sign) {
+-         LLVMValueRef mask = lp_build_const_int_vec(bld->gallivm, type,
+-                                (unsigned long long)1 << (type.width - 1));
+-         LLVMValueRef sign;
++      inttype = type;
++      inttype.floating = 0;
++      lp_build_context_init(&intbld, bld->gallivm, inttype);
+ 
+-         /* sign = a < 0 ? 0 : ~0 */
+-         sign = LLVMBuildBitCast(builder, a, int_vec_type, "");
+-         sign = LLVMBuildAnd(builder, sign, mask, "");
+-         sign = LLVMBuildAShr(builder, sign,
+-                              lp_build_const_int_vec(bld->gallivm, type,
+-                                                     type.width - 1),
+-                              "iceil.sign");
+-         sign = LLVMBuildNot(builder, sign, "iceil.not");
+-
+-         /* offset = a < 0 ? 0.0 : offset */
+-         offset = LLVMConstBitCast(offset, int_vec_type);
+-         offset = LLVMBuildAnd(builder, offset, sign, "");
+-         offset = LLVMBuildBitCast(builder, offset, vec_type, "iceil.offset");
+-      }
++      /* round by truncation */
++      itrunc = LLVMBuildFPToSI(builder, a, int_vec_type, "");
++      trunc = LLVMBuildSIToFP(builder, itrunc, bld->vec_type, "iceil.trunc");
+ 
+-      res = LLVMBuildFAdd(builder, a, offset, "iceil.res");
++      /*
++       * fix values if rounding is wrong (for non-special cases)
++       * - this is the case if trunc < a
++       * The results of doing this with NaNs, very large values etc.
++       * are undefined but this seems to be the case anyway.
++       */
++      mask = lp_build_cmp(bld, PIPE_FUNC_LESS, trunc, a);
++      /* cheapie plus one with mask since the mask is minus one / zero */
++      return lp_build_sub(&intbld, itrunc, mask);
+    }
+ 
+    /* round to nearest (toward zero) */
+diff --git a/src/gallium/drivers/llvmpipe/lp_test_arit.c b/src/gallium/drivers/llvmpipe/lp_test_arit.c
+index 99928b8..f14e4b3 100644
+--- a/src/gallium/drivers/llvmpipe/lp_test_arit.c
++++ b/src/gallium/drivers/llvmpipe/lp_test_arit.c
+@@ -207,6 +207,18 @@ const float round_values[] = {
+       -10.0, -1, 0.0, 12.0,
+       -1.49, -0.25, 1.25, 2.51,
+       -0.99, -0.01, 0.01, 0.99,
++      1.401298464324817e-45f, // smallest denormal
++      -1.401298464324817e-45f,
++      1.62981451e-08f,
++      -1.62981451e-08f,
++      1.62981451e15f, // large number not representable as 32bit int
++      -1.62981451e15f,
++      FLT_EPSILON,
++      -FLT_EPSILON,
++      1.0f - 0.5f*FLT_EPSILON,
++      -1.0f + FLT_EPSILON,
++      FLT_MAX,
++      -FLT_MAX
+ };
+ 
+ static float fractf(float x)
+--
+cgit v0.9.0.2-2-gbebe
diff --git a/pkgs/development/libraries/mesa/mips_wmb.patch b/pkgs/development/libraries/mesa/mips_wmb.patch
deleted file mode 100644
index 1ffa1bdd8df..00000000000
--- a/pkgs/development/libraries/mesa/mips_wmb.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-rixed told me (viric) it's the patch to apply for mesa.
-I adapted his patch for mesa 7.5 to this 7.10
-
-diff --git a/src/mesa/drivers/dri/sis/sis_context.h b/src/mesa/drivers/dri/sis/sis_context.h
-index a82a659..d8d8d9a 100644
---- a/src/mesa/drivers/dri/sis/sis_context.h
-+++ b/src/mesa/drivers/dri/sis/sis_context.h
-@@ -404,6 +404,8 @@ struct sis_context
- #define MMIO_WMB()	__asm __volatile("" : : : "memory")
- #elif defined(__ia64__)
- #define MMIO_WMB()	__asm __volatile("mf" : : : "memory")
-+#elif defined(__mips__)
-+#define MMIO_WMB()     __asm __volatile("" : : : "memory")
- #else
- #error platform needs WMB
- #endif
diff --git a/pkgs/development/libraries/mesa/static-gallium.patch b/pkgs/development/libraries/mesa/static-gallium.patch
new file mode 100644
index 00000000000..755682d9f1e
--- /dev/null
+++ b/pkgs/development/libraries/mesa/static-gallium.patch
@@ -0,0 +1,71 @@
+commit 2c910b6f186616cac8134e2a2cbe239c8351ed99
+Author: Vladimír Čunát <vcunat@gmail.com>
+Date:   Mon May 13 11:34:34 2013 +0200
+
+    117-static-gallium.patch
+    
+    Conflicts (moving of VISIBILITY_ confused the merge):
+    	src/gallium/auxiliary/Makefile.am
+
+diff --git a/configure.ac b/configure.ac
+index b9fcb0b..be89843 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -747,6 +747,19 @@ if test "x$enable_shared_glapi" = xyes; then
+ fi
+ AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes)
+ 
++AC_ARG_ENABLE([shared-gallium],
++    [AS_HELP_STRING([--enable-shared-gallium],
++        [Enable shared gallium core @<:@default=yes@:>@])],
++    [enable_shared_gallium="$enableval"],
++    [enable_shared_gallium=yes])
++
++SHARED_GALLIUM="0"
++if test "x$enable_shared_gallium" = xyes; then
++    SHARED_GALLIUM="1"
++fi
++AC_SUBST([SHARED_GALLIUM])
++AM_CONDITIONAL(HAVE_SHARED_GALLIUM, test $SHARED_GALLIUM = 1)
++
+ dnl
+ dnl Driver specific build directories
+ dnl
+diff --git a/src/gallium/auxiliary/Makefile.am b/src/gallium/auxiliary/Makefile.am
+index f14279b..3cdec83 100644
+--- a/src/gallium/auxiliary/Makefile.am
++++ b/src/gallium/auxiliary/Makefile.am
+@@ -3,14 +3,19 @@ AUTOMAKE_OPTIONS = subdir-objects
+ include Makefile.sources
+ include $(top_srcdir)/src/gallium/Automake.inc
+ 
+-noinst_LTLIBRARIES = libgallium.la
+-
+ AM_CFLAGS = \
+ 	-I$(top_srcdir)/src/gallium/auxiliary/util \
+-	$(GALLIUM_CFLAGS) \
+-	$(VISIBILITY_CFLAGS)
++	$(GALLIUM_CFLAGS)
+ 
+-AM_CXXFLAGS = $(VISIBILITY_CXXFLAGS)
++AM_CXXFLAGS =
++
++if HAVE_SHARED_GALLIUM
++lib_LTLIBRARIES = libgallium.la
++else
++noinst_LTLIBRARIES = libgallium.la
++AM_CFLAGS += $(VISIBILITY_CFLAGS)
++AM_CXXFLAGS += $(VISIBILITY_CXXFLAGS)
++endif
+ 
+ libgallium_la_SOURCES = \
+ 	$(C_SOURCES) \
+@@ -29,6 +34,8 @@ if LLVM_NEEDS_FNORTTI
+ 
+ AM_CXXFLAGS += -fno-rtti
+ 
++libgallium_la_LIBADD = $(LLVM_LIBS)
++
+ endif
+ 
+ libgallium_la_SOURCES += \
diff --git a/pkgs/development/libraries/mpfr/3.1.2.nix b/pkgs/development/libraries/mpfr/3.1.2.nix
new file mode 100644
index 00000000000..fd164cf9105
--- /dev/null
+++ b/pkgs/development/libraries/mpfr/3.1.2.nix
@@ -0,0 +1,51 @@
+
+{stdenv, fetchurl, gmp}:
+
+stdenv.mkDerivation (rec {
+  name = "mpfr-3.1.2";
+
+  src = fetchurl {
+    url = "mirror://gnu/mpfr/${name}.tar.bz2";
+    sha256 = "0sqvpfkzamxdr87anzakf9dhkfh15lfmm5bsqajk02h1mxh3zivr";
+  };
+
+  buildInputs = [ gmp ];
+
+  doCheck = true;
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://www.mpfr.org/;
+    description = "GNU MPFR, a library for multiple-precision floating-point arithmetic";
+
+    longDescription = ''
+      The GNU MPFR library is a C library for multiple-precision
+      floating-point computations with correct rounding.  MPFR is
+      based on the GMP multiple-precision library.
+
+      The main goal of MPFR is to provide a library for
+      multiple-precision floating-point computation which is both
+      efficient and has a well-defined semantics.  It copies the good
+      ideas from the ANSI/IEEE-754 standard for double-precision
+      floating-point arithmetic (53-bit mantissa).
+    '';
+
+    license = "LGPLv2+";
+
+    maintainers = [ stdenv.lib.maintainers.ludo ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
+
+//
+
+(stdenv.lib.optionalAttrs stdenv.isFreeBSD {
+   /* Work around a FreeBSD bug that otherwise leads to segfaults in
+      the test suite:
+        http://hydra.bordeaux.inria.fr/build/34862
+        http://websympa.loria.fr/wwsympa/arc/mpfr/2011-10/msg00015.html
+        http://www.freebsd.org/cgi/query-pr.cgi?pr=161344
+    */
+   configureFlags = [ "--disable-thread-safe" ];
+ }))
diff --git a/pkgs/development/libraries/nlopt/default.nix b/pkgs/development/libraries/nlopt/default.nix
index 0936332cd48..cc216a59d75 100644
--- a/pkgs/development/libraries/nlopt/default.nix
+++ b/pkgs/development/libraries/nlopt/default.nix
@@ -1,12 +1,19 @@
-{ fetchurl, stdenv }:
+{ fetchurl, stdenv
+, withOctave ? true, octave ? null}:
 
 stdenv.mkDerivation rec {
-  name = "nlopt-2.2.1";
+  name = "nlopt-2.3";
 
   src = fetchurl {
     url = "http://ab-initio.mit.edu/nlopt/${name}.tar.gz";
-    sha256 = "0p7ri7dcp6vga7jwng7wj9bf2ixk6p5ldxp76r93xkrdixqfngaq";
+    sha256 = "1iw2cjgypyqz779f47fz0nmifbrvk4zs4rxi1ibk36f4ly3wg6p6";
   };
 
-  configureFlags = "--with-cxx --with-pic --without-guile --without-python --without-octave --without-matlab";
+  buildInputs = stdenv.lib.optional withOctave octave;
+
+  configureFlags = "--with-cxx --enable-shared --with-pic --without-guile --without-python
+  --without-matlab " +
+    stdenv.lib.optionalString withOctave ("--with-octave " +
+        "M_INSTALL_DIR=$(out)/${octave.sitePath}/m " +
+        "OCT_INSTALL_DIR=$(out)/${octave.sitePath}/oct ");
 }
diff --git a/pkgs/development/libraries/openjpeg/default.nix b/pkgs/development/libraries/openjpeg/default.nix
index 6024456652c..7fd18af450c 100644
--- a/pkgs/development/libraries/openjpeg/default.nix
+++ b/pkgs/development/libraries/openjpeg/default.nix
@@ -1,13 +1,21 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, pkgconfig, libpng, libtiff, lcms2, glib/*passthru only*/ }:
 
 stdenv.mkDerivation rec {
   name = "openjpeg-1.5.1";
+  passthru = {
+    incDir = "openjpeg-1.5";
+  };
 
   src = fetchurl {
     url = "http://openjpeg.googlecode.com/files/${name}.tar.gz";
     sha256 = "13dbyf3jwr4h2dn1k11zph3jgx17z7d66xmi640mbsf8l6bk1yvc";
   };
 
+  nativebuildInputs = [ pkgconfig ];
+  propagatedBuildInputs = [ libpng libtiff lcms2 ]; # in closure anyway
+
+  postInstall = glib.flattenInclude;
+
   meta = {
     homepage = http://www.openjpeg.org/;
     description = "Open-source JPEG 2000 codec written in C language";
diff --git a/pkgs/development/libraries/pango/1.30.x.nix b/pkgs/development/libraries/pango/default.nix
index fa6d50d6c87..2de9d98e579 100644
--- a/pkgs/development/libraries/pango/1.30.x.nix
+++ b/pkgs/development/libraries/pango/default.nix
@@ -1,20 +1,23 @@
-{ stdenv, fetchurl, pkgconfig, gettext, x11, glib, cairo, libpng, fontconfig }:
+{ stdenv, fetchurl, pkgconfig, gettext, x11, glib, cairo, libpng, harfbuzz, fontconfig
+, libintlOrEmpty }:
 
 stdenv.mkDerivation rec {
-  name = "pango-1.30.1";
+  name = "pango-1.32.5"; #.6 needs a not-yet-stable fontconfig
 
   src = fetchurl {
-    url = "mirror://gnome/sources/pango/1.30/${name}.tar.xz";
-    sha256 = "3a8c061e143c272ddcd5467b3567e970cfbb64d1d1600a8f8e62435556220cbe";
+    url = "mirror://gnome/sources/pango/1.32/${name}.tar.xz";
+    sha256 = "08aqis6j8nd1lb4f2h4h9d9kjvp54iwf8zvqzss0qn4v7nfcjyvx";
   };
 
   outputs = [ "dev" "out" "bin" "doc" ];
 
+  NIX_CFLAGS_COMPILE = "-I${cairo}/include/cairo";
+
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ gettext fontconfig ];
 
   nativeBuildInputs = [ pkgconfig ];
 
-  propagatedBuildInputs = [ x11 glib cairo libpng ];
+  propagatedBuildInputs = [ x11 glib cairo libpng harfbuzz ] ++ libintlOrEmpty;
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/pangox-compat/default.nix b/pkgs/development/libraries/pangox-compat/default.nix
new file mode 100644
index 00000000000..8518083b4d3
--- /dev/null
+++ b/pkgs/development/libraries/pangox-compat/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, glib, pango, libX11 }:
+
+stdenv.mkDerivation rec {
+  name = "pangox-compat-0.0.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/pangox-compat/0.0/${name}.tar.xz";
+    sha256 = "0ip0ziys6mrqqmz4n71ays0kf5cs1xflj1gfpvs4fgy2nsrr482m";
+  };
+
+  buildInputs = [ pkgconfig glib pango libX11 ];
+
+  meta = {
+    description = "A compatibility library for pango>1.30.*";
+
+    homepage = http://www.pango.org/;
+    license = "LGPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/pdf2xml/default.nix b/pkgs/development/libraries/pdf2xml/default.nix
index 0f9a3dc2b2d..4f3cd931fce 100644
--- a/pkgs/development/libraries/pdf2xml/default.nix
+++ b/pkgs/development/libraries/pdf2xml/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation {
   name = "pdf2xml";
   
   src = fetchurl {
-      url = http://nixos.org/tarballs/pdf2xml.tar.gz;
+      url = http://tarballs.nixos.org/pdf2xml.tar.gz;
       sha256 = "04rl7ppxqgnvxvvws669cxp478lnrdmiqj0g3m4p69bawfjc4z3w";
   };
   sourceRoot = "pdf2xml/pdf2xml";
diff --git a/pkgs/development/libraries/pixman/default.nix b/pkgs/development/libraries/pixman/default.nix
new file mode 100644
index 00000000000..7fbcedda395
--- /dev/null
+++ b/pkgs/development/libraries/pixman/default.nix
@@ -0,0 +1,22 @@
+{ fetchurl, stdenv, pkgconfig, perl, withPNG ? true, libpng, glib /*just passthru*/ }:
+
+stdenv.mkDerivation rec {
+  name = "pixman-0.28.2";
+
+  src = fetchurl {
+    url = "http://cairographics.org/releases/${name}.tar.gz";
+    sha256 = "0mcvxd5gx3w1wzgph91l2vaiic91jmx7s01hi2igphyvd80ckyia";
+  };
+
+  nativeBuildInputs = [ pkgconfig perl ];
+
+  buildInputs = stdenv.lib.optional withPNG [ libpng ]; # NOT in closure anyway
+
+  postInstall = glib.flattenInclude;
+
+  meta = {
+    homepage = http://pixman.org;
+    description = "A low-level library for pixel manipulation";
+    license = "MIT";
+  };
+}
diff --git a/pkgs/development/libraries/poppler/0.18.nix b/pkgs/development/libraries/poppler/0.18.nix
new file mode 100644
index 00000000000..29e99b67549
--- /dev/null
+++ b/pkgs/development/libraries/poppler/0.18.nix
@@ -0,0 +1,53 @@
+{ fetchurl, stdenv, cairo, freetype, fontconfig, zlib
+, libjpeg, curl, libpthreadstubs, xorg, openjpeg
+, libxml2, pkgconfig, cmake, lcms2, libiconvOrEmpty
+, glibSupport ? false, glib, gtk3Support ? false, gtk3 # gtk2 no longer accepted
+, qt4Support ? false, qt4 ? null
+}:
+
+stdenv.mkDerivation rec {
+  name = "poppler-0.18.4";
+
+  src = fetchurl {
+    url = "${meta.homepage}${name}.tar.gz";
+    sha256 = "0bnl05al7mjndp2h0355946j59nfw76f5v0x57d47q68rm412hik";
+  };
+
+  propagatedBuildInputs = with xorg;
+    [ zlib cairo freetype fontconfig libjpeg lcms2 curl
+      libpthreadstubs libxml2 stdenv.gcc.libc
+      libXau libXdmcp libxcb libXrender libXext
+      openjpeg
+    ]
+    ++ stdenv.lib.optional glibSupport glib
+    ++ stdenv.lib.optional gtk3Support gtk3
+    ++ stdenv.lib.optional qt4Support qt4;
+
+  nativeBuildInputs = [ pkgconfig cmake ] ++ libiconvOrEmpty;
+
+  cmakeFlags = "-DENABLE_XPDF_HEADERS=ON -DENABLE_LIBCURL=ON -DENABLE_ZLIB=ON";
+
+  patches = [ ./datadir_env.patch ];
+
+  # XXX: The Poppler/Qt4 test suite refers to non-existent PDF files
+  # such as `../../../test/unittestcases/UseNone.pdf'.
+  #doCheck = !qt4Support;
+  checkTarget = "test";
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://poppler.freedesktop.org/;
+    description = "Poppler, a PDF rendering library";
+
+    longDescription = ''
+      Poppler is a PDF rendering library based on the xpdf-3.0 code base.
+    '';
+
+    platforms = if qt4Support
+      then qt4.meta.platforms
+      else stdenv.lib.platforms.all;
+
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index 1d796789210..7c392832406 100644
--- a/pkgs/development/libraries/poppler/default.nix
+++ b/pkgs/development/libraries/poppler/default.nix
@@ -1,50 +1,72 @@
-{ fetchurl, stdenv, cairo, freetype, fontconfig, zlib
-, libjpeg, pixman, curl, libpthreadstubs, libXau, libXdmcp, openjpeg
-, libxml2, pkgconfig, cmake, lcms
-, gtkSupport ? false, glib ? null, gtk ? null
+{ stdenv, fetchurl, fetchgit, pkgconfig, cmake, libiconvOrEmpty, libintlOrEmpty
+, zlib, curl, cairo, freetype, fontconfig, lcms2, libjpeg, openjpeg
 , qt4Support ? false, qt4 ? null
 }:
 
-stdenv.mkDerivation rec {
-  name = "poppler-0.22.4";
+let
+  version = "0.22.4"; # even major numbers are stable
+  sha256 = "0fz1vk0rbxvnv7ssj8l910k1rx0gjhzl5wr7hkdf4r9jwqs8yhsg";
 
-  src = fetchurl {
-    url = "${meta.homepage}${name}.tar.gz";
-    sha256 = "0fz1vk0rbxvnv7ssj8l910k1rx0gjhzl5wr7hkdf4r9jwqs8yhsg";
-  };
+  qtcairo_patches =
+    let qtcairo = fetchgit { # the version for poppler-0.22
+      url = "git://github.com/giddie/poppler-qt4-cairo-backend.git";
+      rev = "7a12c58e5cefc2b7a5179c53b387fca8963195c0";
+      sha256 = "1jg2d5y62d0bv206nijb63x426zfb2awy70505nx22d0fx1v1p9k";
+    }; in
+      [ "${qtcairo}/0001-Cairo-backend-added-to-Qt4-wrapper.patch"
+        "${qtcairo}/0002-Setting-default-Qt4-backend-to-Cairo.patch"
+        "${qtcairo}/0003-Forcing-subpixel-rendering-in-Cairo-backend.patch" ];
+
+  poppler_drv = nameSuff: merge: stdenv.mkDerivation (stdenv.lib.mergeAttrsByFuncDefaultsClean [
+  rec {
+    name = "poppler-${nameSuff}-${version}";
+
+    src = fetchurl {
+      url = "${meta.homepage}/poppler-${version}.tar.gz";
+      inherit sha256;
+    };
+
+    propagatedBuildInputs = [ zlib cairo freetype fontconfig libjpeg lcms2 curl openjpeg ];
+
+    nativeBuildInputs = [ pkgconfig cmake ] ++ libiconvOrEmpty ++ libintlOrEmpty;
 
-  propagatedBuildInputs =
-    [ zlib cairo freetype fontconfig libjpeg lcms pixman curl
-      libpthreadstubs libXau libXdmcp openjpeg libxml2 stdenv.gcc.libc
-    ]
-    ++ stdenv.lib.optionals gtkSupport [ glib gtk ]
-    ++ stdenv.lib.optional qt4Support qt4;
+    cmakeFlags = "-DENABLE_XPDF_HEADERS=ON -DENABLE_LIBCURL=ON -DENABLE_ZLIB=ON";
 
-  nativeBuildInputs = [ pkgconfig cmake ];
+    patches = [ ./datadir_env.patch ];
 
-  cmakeFlags = "-DENABLE_XPDF_HEADERS=ON -DENABLE_LIBCURL=ON -DENABLE_ZLIB=ON";
+    # XXX: The Poppler/Qt4 test suite refers to non-existent PDF files
+    # such as `../../../test/unittestcases/UseNone.pdf'.
+    #doCheck = !qt4Support;
+    checkTarget = "test";
 
-  patches = [ ./datadir_env.patch ];
+    enableParallelBuilding = true;
 
-  # XXX: The Poppler/Qt4 test suite refers to non-existent PDF files
-  # such as `../../../test/unittestcases/UseNone.pdf'.
-  #doCheck = !qt4Support;
-  checkTarget = "test";
+    meta = {
+      homepage = http://poppler.freedesktop.org/;
+      description = "A PDF rendering library";
 
-  enableParallelBuilding = true;
+      longDescription = ''
+        Poppler is a PDF rendering library based on the xpdf-3.0 code base.
+      '';
 
-  meta = {
-    homepage = http://poppler.freedesktop.org/;
-    description = "Poppler, a PDF rendering library";
+      license = "GPLv2";
+      platforms = stdenv.lib.platforms.all;
+    };
+  } merge ]); # poppler_drv
 
-    longDescription = ''
-      Poppler is a PDF rendering library based on the xpdf-3.0 code base.
-    '';
+in rec {
+  /* We always use cairo in poppler, so we always depend on glib,
+     so we always build the glib wrapper (~350kB).
+     We also always build the cpp wrapper (<100kB).
+     ToDo: around half the size could be saved by splitting out headers and tools (1.5 + 0.5 MB).
+  */
 
-    platforms = if qt4Support
-      then qt4.meta.platforms
-      else stdenv.lib.platforms.all;
+  poppler_glib = poppler_drv "glib" { };
 
-    license = "GPLv2";
+  poppler_qt4 = poppler_drv "qt4" {
+    propagatedBuildInputs = [ qt4 poppler_glib ];
+    patches = qtcairo_patches;
+    NIX_LDFLAGS = "-lpoppler";
+    postConfigure = "cd qt4";
   };
 }
diff --git a/pkgs/development/libraries/qt-4.x/4.8/CVE-2013-0254.patch b/pkgs/development/libraries/qt-4.x/4.8/CVE-2013-0254.patch
new file mode 100644
index 00000000000..48cc05f1800
--- /dev/null
+++ b/pkgs/development/libraries/qt-4.x/4.8/CVE-2013-0254.patch
@@ -0,0 +1,66 @@
+From 20b26bdb3dd5e46b01b9a7e1ce8342074df3c89c Mon Sep 17 00:00:00 2001
+From: Thiago Macieira <thiago.macieira@intel.com>
+Date: Sat, 22 Dec 2012 08:32:12 -0800
+Subject: [PATCH] Change all shmget calls to user-only memory
+
+Drop the read and write permissions for group and other users in the
+system.
+
+Change-Id: I8fc753f09126651af3fb82df3049050f0b14e876
+(cherry-picked from Qt 5 commit 856f209fb63ae336bfb389a12d2a75fa886dc1c5)
+Reviewed-by: Richard J. Moore <rich@kde.org>
+---
+ src/corelib/kernel/qsharedmemory_unix.cpp          |    6 +++---
+ src/corelib/kernel/qsystemsemaphore_unix.cpp       |    4 ++--
+
+diff --git a/src/corelib/kernel/qsharedmemory_unix.cpp b/src/corelib/kernel/qsharedmemory_unix.cpp
+index 20d76e3..4cf3acf 100644
+--- a/src/corelib/kernel/qsharedmemory_unix.cpp
++++ b/src/corelib/kernel/qsharedmemory_unix.cpp
+@@ -238,7 +238,7 @@ bool QSharedMemoryPrivate::create(int size)
+     }
+ 
+     // create
+-    if (-1 == shmget(unix_key, size, 0666 | IPC_CREAT | IPC_EXCL)) {
++    if (-1 == shmget(unix_key, size, 0600 | IPC_CREAT | IPC_EXCL)) {
+         QString function = QLatin1String("QSharedMemory::create");
+         switch (errno) {
+         case EINVAL:
+@@ -293,7 +293,7 @@ bool QSharedMemoryPrivate::attach(QSharedMemory::AccessMode mode)
+ {
+ #ifndef QT_POSIX_IPC
+     // grab the shared memory segment id
+-    int id = shmget(unix_key, 0, (mode == QSharedMemory::ReadOnly ? 0444 : 0660));
++    int id = shmget(unix_key, 0, (mode == QSharedMemory::ReadOnly ? 0400 : 0600));
+     if (-1 == id) {
+         setErrorString(QLatin1String("QSharedMemory::attach (shmget)"));
+         return false;
+@@ -381,7 +381,7 @@ bool QSharedMemoryPrivate::detach()
+     size = 0;
+ 
+     // Get the number of current attachments
+-    int id = shmget(unix_key, 0, 0444);
++    int id = shmget(unix_key, 0, 0400);
+     cleanHandle();
+ 
+     struct shmid_ds shmid_ds;
+diff --git a/src/corelib/kernel/qsystemsemaphore_unix.cpp b/src/corelib/kernel/qsystemsemaphore_unix.cpp
+index fad9acc..e77456b 100644
+--- a/src/corelib/kernel/qsystemsemaphore_unix.cpp
++++ b/src/corelib/kernel/qsystemsemaphore_unix.cpp
+@@ -153,10 +153,10 @@ key_t QSystemSemaphorePrivate::handle(QSystemSemaphore::AccessMode mode)
+     }
+ 
+     // Get semaphore
+-    semaphore = semget(unix_key, 1, 0666 | IPC_CREAT | IPC_EXCL);
++    semaphore = semget(unix_key, 1, 0600 | IPC_CREAT | IPC_EXCL);
+     if (-1 == semaphore) {
+         if (errno == EEXIST)
+-            semaphore = semget(unix_key, 1, 0666 | IPC_CREAT);
++            semaphore = semget(unix_key, 1, 0600 | IPC_CREAT);
+         if (-1 == semaphore) {
+             setErrorString(QLatin1String("QSystemSemaphore::handle"));
+             cleanHandle();
+-- 
+1.7.1
+
diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix
index ade9a67cbcc..b797f631b8e 100644
--- a/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -5,8 +5,8 @@
 , libtiff, glib, icu
 , mysql, postgresql, sqlite
 , perl, coreutils, libXi
-, buildMultimedia ? true, alsaLib, gstreamer, gst_plugins_base
-, buildWebkit ? true
+, buildMultimedia ? stdenv.isLinux, alsaLib, gstreamer, gst_plugins_base
+, buildWebkit ? stdenv.isLinux
 , flashplayerFix ? false, gdk_pixbuf
 , gtkStyle ? false, libgnomeui, gtk, GConf, gnome_vfs
 , developerBuild ? false
@@ -31,8 +31,15 @@ stdenv.mkDerivation rec {
     sha256 = "0w1j16q6glniv4hppdgcvw52w72gb2jab35ylkw0qjn5lj5y7c1k";
   };
 
+  prePatch = ''
+    substituteInPlace configure --replace /bin/pwd pwd
+    substituteInPlace src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls
+    sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i config.tests/*/*.test -i mkspecs/*/*.conf
+  '';
+
   patches =
     [ ./glib-2.32.patch
+      ./CVE-2013-0254.patch
       (substituteAll {
         src = ./dlopen-absolute-paths.diff;
         inherit cups icu libXfixes;
@@ -63,6 +70,7 @@ stdenv.mkDerivation rec {
       "
     '';
 
+  prefixKey = "-prefix ";
   configureFlags =
     ''
       -v -no-separate-debug-info -release -no-fast -confirm-license -opensource
@@ -88,7 +96,7 @@ stdenv.mkDerivation rec {
       libXv libXi libSM
     ]
     ++ optional (stdenv.lib.lists.elem stdenv.system stdenv.lib.platforms.mesaPlatforms) mesa
-    ++ optional (buildWebkit || buildMultimedia) alsaLib
+    ++ optional ((buildWebkit || buildMultimedia) && stdenv.isLinux ) alsaLib
     ++ [ zlib libpng openssl dbus.libs freetype fontconfig glib ]
     ++ optionals (buildWebkit || buildMultimedia) [ gstreamer gst_plugins_base ];
 
@@ -100,15 +108,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ perl pkgconfig which ];
 
-  prefixKey = "-prefix ";
-
-  prePatch = ''
-    substituteInPlace configure --replace /bin/pwd pwd
-    substituteInPlace src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls
-    sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i config.tests/*/*.test -i mkspecs/*/*.conf
-  '';
-
-  enableParallelBuilding = true;
+  # occasional build problems if one has too many cores (like on Hydra)
+  # @vcunat has been unable to find a *reliable* fix
+  enableParallelBuilding = false;
 
   crossAttrs = let
     isMingw = stdenv.cross.config == "i686-pc-mingw32" ||
@@ -149,6 +151,6 @@ stdenv.mkDerivation rec {
     description = "A cross-platform application framework for C++";
     license = "GPL/LGPL";
     maintainers = with maintainers; [ urkud sander phreedom ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/ruby_gpgme/default.nix b/pkgs/development/libraries/ruby_gpgme/default.nix
new file mode 100644
index 00000000000..c5f2366bfa1
--- /dev/null
+++ b/pkgs/development/libraries/ruby_gpgme/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchurl, gpgme, ruby, rubygems, hoe }:
+
+stdenv.mkDerivation {
+  name = "ruby-gpgme-1.0.8";
+
+  src = fetchurl {
+    url = "https://github.com/ueno/ruby-gpgme/archive/1.0.8.tar.gz";
+    sha256 = "1j7jkl9s8iqcmxf3x6c9kljm19hw1jg6yvwbndmkw43qacdr9nxb";
+  };
+
+  meta = {
+    description = ''
+      Ruby-GPGME is a Ruby language binding of GPGME (GnuPG Made
+      Easy)
+    '';
+    homepage = "http://rubyforge.org/projects/ruby-gpgme/";
+    longDescription = ''
+      Ruby-GPGME is a Ruby language binding of GPGME (GnuPG Made Easy).
+
+      GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG
+      easier for applications. It provides a High-Level Crypto API for
+      encryption, decryption, signing, signature verification and key
+      management.
+    '';
+  };
+
+  buildInputs = [ gpgme rubygems hoe ruby ];
+
+  buildPhase = ''
+    ${ruby}/bin/ruby extconf.rb
+    rake gem
+  '';
+
+  installPhase = ''
+    export HOME=$TMP/home; mkdir -pv "$HOME"
+
+    # For some reason, the installation phase doesn't work with the default
+    # make install command run by gem (we'll fix it and do it ourselves later)
+    gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \
+        --bindir "$out/bin" --no-rdoc --no-ri pkg/gpgme-1.0.8.gem || true
+
+    # Create a bare-bones gemspec file so that ruby will recognise the gem
+    cat <<EOF >"$out/${ruby.gemPath}/specifications/gpgme.gemspec"
+    Gem::Specification.new do |s|
+      s.name              = 'gpgme'
+      s.version           = '1.0.8'
+      s.files             = Dir['{lib,examples}/**/*']
+      s.rubyforge_project = 'ruby-gpgme'
+      s.require_paths     = ['lib']
+    end
+    EOF
+
+    cd "$out/${ruby.gemPath}/gems/gpgme-1.0.8"
+    mkdir src
+    mv lib src
+    sed -i "s/srcdir = ./srcdir = src/" Makefile
+    make install
+
+    mv lib lib.bak
+    mv src/lib lib
+    rmdir src
+  '';
+}
+
diff --git a/pkgs/development/libraries/ruby_ncursesw_sup/default.nix b/pkgs/development/libraries/ruby_ncursesw_sup/default.nix
new file mode 100644
index 00000000000..67041ad0607
--- /dev/null
+++ b/pkgs/development/libraries/ruby_ncursesw_sup/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, ncurses, ruby, rubygems }:
+
+stdenv.mkDerivation rec {
+  name = ''ncursesw-sup-afd962b9c06108ff0643e98593c5605314d76917'';
+
+  src = fetchurl {
+    url = "https://github.com/sup-heliotrope/ncursesw-ruby/archive/afd962b9c06108ff0643e98593c5605314d76917.tar.gz";
+    sha256 = "13i286p4bm8zqg9xh96a1dg7wkywj9m6975gbh3w43d3rmfc1h6a";
+  };
+
+  meta = {
+    description = ''
+      Hacked up version of ncurses gem that supports wide characters for
+      supmua.org
+    '';
+    homepage = ''http://github.com/sup-heliotrope/ncursesw-ruby'';
+    longDescription = ''
+      This wrapper provides access to the functions, macros, global variables
+      and constants of the ncurses library.  These are mapped to a Ruby Module
+      named "Ncurses":  Functions and external variables are implemented as
+      singleton functions of the Module Ncurses.
+    '';
+  };
+
+  buildInputs = [ ncurses rubygems ];
+
+  buildPhase = "gem build ncursesw.gemspec";
+
+  installPhase = ''
+    export HOME=$TMP/home; mkdir -pv "$HOME"
+
+    # For some reason, the installation phase doesn't work with the default
+    # make install command run by gem (we'll fix it and do it ourselves later)
+    gem install --no-verbose --install-dir "$out/${ruby.gemPath}" \
+        --bindir "$out/bin" --no-rdoc --no-ri ncursesw-sup-1.3.1.2.gem || true
+
+    # Needed for ruby to recognise the gem
+    cp ncursesw.gemspec "$out/${ruby.gemPath}/specifications"
+
+    cd "$out/${ruby.gemPath}/gems/ncursesw-sup-1.3.1.2"
+    mkdir src
+    mv lib src
+    sed -i "s/srcdir = ./srcdir = src/" Makefile
+    make install
+  '';
+}
+
diff --git a/pkgs/development/libraries/smpeg/default.nix b/pkgs/development/libraries/smpeg/default.nix
index e259e22ff01..41a6b8501ec 100644
--- a/pkgs/development/libraries/smpeg/default.nix
+++ b/pkgs/development/libraries/smpeg/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchsvn, SDL, autoconf, automake, libtool, gtk, m4, pkgconfig, mesa }:
 
 stdenv.mkDerivation rec {
-  name = "smpeg-svn-${version}";
+  name = "smpeg-svn${version}";
   version = "390";
 
   src = fetchsvn {
diff --git a/pkgs/development/libraries/suitesparse/default.nix b/pkgs/development/libraries/suitesparse/default.nix
index e3a7fbb5a08..01762083934 100644
--- a/pkgs/development/libraries/suitesparse/default.nix
+++ b/pkgs/development/libraries/suitesparse/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, blas, liblapack, gfortran } :
 stdenv.mkDerivation rec {
-  version = "4.0.0";
+  version = "4.2.0";
   name = "suitesparse-${version}";
   src = fetchurl {
     url = "http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-${version}.tar.gz" ;
-    sha256 = "1nvbdw10wa6654k8sa2vhr607q6fflcywyji5xd767cqpwag4v5j";  			
+    sha256 = "0i0ivsc5sr3jdz6nqq4wz5lwxc8rpnkqgddyhqqgfhwzgrcqh9v6";  			
   };
   buildInputs = [blas liblapack gfortran] ;
   patches = [./disable-metis.patch];
diff --git a/pkgs/development/libraries/vaapi-intel/default.nix b/pkgs/development/libraries/vaapi-intel/default.nix
index 548aeb8a2de..f05c01bf58d 100644
--- a/pkgs/development/libraries/vaapi-intel/default.nix
+++ b/pkgs/development/libraries/vaapi-intel/default.nix
@@ -2,17 +2,16 @@
 , intelgen4asm }:
 
 stdenv.mkDerivation rec {
-  name = "libva-intel-driver-1.0.19";
-  
+  name = "libva-intel-driver-1.0.20";
+
   src = fetchurl {
     url = "http://www.freedesktop.org/software/vaapi/releases/libva-intel-driver/${name}.tar.bz2";
-    sha256 = "14m7krah3ajkwj190q431lqqa84hdljcdmrcrqkbgaffyjlqvdid";
+    sha256 = "1jfl8909j3a3in6m8b5bx3dn7pzr8a1sw3sk4vzm7h3j2dkgpzhj";
   };
 
-  buildInputs = [ autoconf automake libtool mesa libva pkgconfig libdrm libX11 intelgen4asm ];
+  buildInputs = [ pkgconfig libdrm libva libX11 ];
 
   preConfigure = ''
-    sh autogen.sh
     sed -i -e "s,LIBVA_DRIVERS_PATH=.*,LIBVA_DRIVERS_PATH=$out/lib/dri," configure
   '';
 
diff --git a/pkgs/development/libraries/vaapi-vdpau/default.nix b/pkgs/development/libraries/vaapi-vdpau/default.nix
index a3d51217ead..fb24ba98b45 100644
--- a/pkgs/development/libraries/vaapi-vdpau/default.nix
+++ b/pkgs/development/libraries/vaapi-vdpau/default.nix
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
     sed -i -e "s,LIBVA_DRIVERS_PATH=.*,LIBVA_DRIVERS_PATH=$out/lib/dri," configure
   '';
 
+  patches = [ ./glext85.patch ];
+
   meta = {
     homepage = http://cgit.freedesktop.org/vaapi/vdpau-driver/;
     license = "GPLv2+";
diff --git a/pkgs/development/libraries/vaapi-vdpau/glext85.patch b/pkgs/development/libraries/vaapi-vdpau/glext85.patch
new file mode 100644
index 00000000000..073b8cf1190
--- /dev/null
+++ b/pkgs/development/libraries/vaapi-vdpau/glext85.patch
@@ -0,0 +1,20 @@
+http://www.mail-archive.com/libva@lists.freedesktop.org/msg01457.html
+
+diff --git a/src/utils_glx.h b/src/utils_glx.h
+index 19d03e4..f270fba 100644
+--- a/src/utils_glx.h
++++ b/src/utils_glx.h
+@@ -42,6 +42,13 @@ typedef void (*PFNGLVDPAUMAPSURFACESNVPROC)(GLsizei numSurfaces, const GLvdpauSu
+ typedef void (*PFNGLVDPAUUNMAPSURFACESNVPROC)(GLsizei numSurface, const GLvdpauSurfaceNV *surfaces);
+ #endif
+ 
++#if GL_GLEXT_VERSION >= 85
++/* XXX: PFNGLMULTITEXCOORD2FPROC got out of the GL_VERSION_1_3_DEPRECATED
++   block and is not defined if GL_VERSION_1_3 is defined in <GL/gl.h>
++   Redefine the type here as an interim solution */
++typedef void (*PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t);
++#endif
++
+ /* GLX_EXT_texture_from_pixmap */
+ #if GLX_GLXEXT_VERSION < 18
+ typedef void (*PFNGLXBINDTEXIMAGEEXTPROC)(Display *, GLXDrawable, int, const int *);
diff --git a/pkgs/development/libraries/wayland/default.nix b/pkgs/development/libraries/wayland/default.nix
index 9e00b0d8bcf..8854a41210b 100644
--- a/pkgs/development/libraries/wayland/default.nix
+++ b/pkgs/development/libraries/wayland/default.nix
@@ -1,23 +1,21 @@
 { stdenv, fetchurl, libffi, expat, pkgconfig, libxslt, docbook_xsl, doxygen }:
 
+let version = "1.0.5"; in
+
 stdenv.mkDerivation rec {
-  name = "wayland-1.0.5";
+  name = "wayland-${version}";
 
   src = fetchurl {
     url = "http://wayland.freedesktop.org/releases/${name}.tar.xz";
-
     sha256 = "130n7v5i7rfsrli2n8vdzfychlgd8v7by7sfgp8vfqdlss5km34w";
   };
 
   buildInputs = [ pkgconfig libffi expat libxslt docbook_xsl doxygen ];
 
   meta = {
-    description = "The reference implementation of the Wayland protocol";
-
-    homepage = http://wayland.freedesktop.org;
-
-    license = stdenv.lib.licenses.bsd3;
-
+    description = "Reference implementation of the wayland protocol";
+    homepage = http://wayland.freedesktop.org/;
+    license = stdenv.lib.licenses.mit;
     platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/wxGTK-2.8/default.nix b/pkgs/development/libraries/wxGTK-2.8/default.nix
index 10907726954..e11de87415d 100644
--- a/pkgs/development/libraries/wxGTK-2.8/default.nix
+++ b/pkgs/development/libraries/wxGTK-2.8/default.nix
@@ -7,12 +7,13 @@ assert withMesa -> mesa != null;
 
 with stdenv.lib;
 
-stdenv.mkDerivation {
-  name = "wxGTK-2.8.12";
+stdenv.mkDerivation rec {
+  version = "2.8.12.1";
+  name = "wxGTK-${version}";
 
   src = fetchurl {
-    url = mirror://sourceforge/wxwindows/wxGTK-2.8.12.tar.gz;
-    sha256 = "1gjs9vfga60mk4j4ngiwsk9h6c7j22pw26m3asxr1jwvqbr8kkqk";
+    url = "mirror://sourceforge/wxpython/wxPython-src-${version}.tar.bz2";
+    sha256 = "1l1w4i113csv3bd5r8ybyj0qpxdq83lj6jrc5p7cc10mkwyiagqz";
   };
 
   buildInputs = [ gtk libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer gst_plugins_base GConf ]
@@ -29,11 +30,12 @@ stdenv.mkDerivation {
     "--enable-mediactrl"
   ] ++ optional withMesa "--with-opengl";
 
-  # This variable is used by configure to find some dependencies.
+  # These variables are used by configure to find some dependencies.
   SEARCH_INCLUDE =
     "${libXinerama}/include ${libSM}/include ${libXxf86vm}/include";
-
-  SEARCH_LIB = optionalString withMesa "${mesa}/lib";
+  SEARCH_LIB =
+    "${libXinerama}/lib ${libSM}/lib ${libXxf86vm}/lib "
+    + optionalString withMesa "${mesa}/lib ";
 
   # Work around a bug in configure.
   NIX_CFLAGS_COMPILE = "-DHAVE_X11_XLIB_H=1";
diff --git a/pkgs/development/libraries/x264/default.nix b/pkgs/development/libraries/x264/default.nix
index 9f53d36bb63..51666e3ba6d 100644
--- a/pkgs/development/libraries/x264/default.nix
+++ b/pkgs/development/libraries/x264/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   version = "snapshot-20130424-2245-stable";
-  name = "x264-${version}";
+  name = "x264-20130424_2245";
 
   src = fetchurl {
     url = "ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-${version}.tar.bz2";
diff --git a/pkgs/development/misc/amdadl-sdk/default.nix b/pkgs/development/misc/amdadl-sdk/default.nix
new file mode 100644
index 00000000000..d311b6b722a
--- /dev/null
+++ b/pkgs/development/misc/amdadl-sdk/default.nix
@@ -0,0 +1,44 @@
+{ fetchurl, stdenv, unzip }:
+
+stdenv.mkDerivation rec {
+  version = "4.0";
+  name = "amdadl-sdk-${version}";
+
+  src = fetchurl {
+    url = "http://download2-developer.amd.com/amd/GPU/zip/ADL_SDK_${version}.zip";
+    sha256 = "4265ee2f265b69cc39b61e10f79741c1d799f4edb71dce14a7d88509fbec0efa";
+  };
+
+  buildInputs = [ unzip ];
+
+  doCheck = false;
+
+  unpackPhase = ''
+    unzip $src
+  '';
+
+  buildPhase = ''
+    #Build adlutil
+    cd adlutil
+    gcc main.c -o adlutil -DLINUX -ldl -I ../include/ 
+    cd ..
+  '';
+
+  installPhase = ''
+    #Install SDK
+    mkdir -p $out/bin
+    cp -r include "$out/"
+    cp "adlutil/adlutil" "$out/bin/adlutil"
+
+    #Fix modes
+    chmod -R 755 "$out/bin/"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "API to access display driver functionality for ATI graphics cards";
+    homepage = http://developer.amd.com/tools/graphics-development/display-library-adl-sdk/;
+    license = licenses.amdadl;
+    maintainers = [ maintainers.offline ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/misc/amdapp-sdk/01-remove-aparapi-samples.patch b/pkgs/development/misc/amdapp-sdk/01-remove-aparapi-samples.patch
new file mode 100644
index 00000000000..f474f76f01e
--- /dev/null
+++ b/pkgs/development/misc/amdapp-sdk/01-remove-aparapi-samples.patch
@@ -0,0 +1,10 @@
+--- samples/Makefile	2012-11-29 05:58:48.000000000 +0100
++++ samples/Makefile	2012-12-30 20:13:30.926576277 +0100
+@@ -3,7 +3,6 @@
+ include $(DEPTH)/make/openclsdkdefs.mk 
+ 
+ SUBDIRS = opencl 
+-SUBDIRS += aparapi 
+ ifneq ($(OS), lnx)
+ SUBDIRS += C++Amp
+ ifeq ($(BITS), 64)
diff --git a/pkgs/development/misc/amdapp-sdk/default.nix b/pkgs/development/misc/amdapp-sdk/default.nix
new file mode 100644
index 00000000000..021c84fee0f
--- /dev/null
+++ b/pkgs/development/misc/amdapp-sdk/default.nix
@@ -0,0 +1,106 @@
+{ stdenv, fetchurl, makeWrapper, perl, mesa, xorg,
+  version? "2.8", # What version
+  samples? false # Should samples be installed
+}:
+
+let
+
+  bits = if stdenv.system == "x86_64-linux" then "64"
+         else "32";
+
+  arch = if stdenv.system == "x86_64-linux" then "x86_64"
+         else "x86";
+
+  src_info = {
+    "2.6" = {
+      url = "http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.6-lnx${bits}.tgz";
+      x86 = "03vyvqp44f96036zsyy8n21ymbzy2bx09hlbd6ci3ikj8g7ic1dm";
+      x86_64 = "1fj55358s4blxq9bp77k07gqi22n5nfkzwjkbdc62gmy1zxxlhih";
+   };
+
+    "2.7" = {
+      url = "http://download2-developer.amd.com/amd/APPSDK/AMD-APP-SDK-v2.7-lnx${bits}.tgz";
+      x86 = "1v26n7g1xvlg5ralbfk3qiy34gj8fascpnjzm3120b6sgykfp16b";
+      x86_64 = "08bi43bgnsxb47vbirh09qy02w7zxymqlqr8iikk9aavfxjlmch1";
+    };
+
+    "2.8" = {
+      url = "http://developer.amd.com/wordpress/media/2012/11/AMD-APP-SDK-v2.8-lnx${bits}.tgz";
+      x86 = "99610737f21b2f035e0eac4c9e776446cc4378a614c7667de03a82904ab2d356";
+      x86_64 = "d9c120367225bb1cd21abbcf77cb0a69cfb4bb6932d0572990104c566aab9681";
+
+      # TODO: Add support for aparapi, java parallel api
+      patches = [ ./01-remove-aparapi-samples.patch ];
+    };
+  };
+
+in stdenv.mkDerivation rec {
+  name = "amdapp-sdk-${version}";
+
+  src = fetchurl {
+    url = stdenv.lib.getAttrFromPath [version "url"] src_info;
+    sha256 = stdenv.lib.getAttrFromPath [version arch] src_info;
+  };
+
+  patches = stdenv.lib.attrByPath [version "patches"] [] src_info;
+
+  patchFlags = "-p0";
+  buildInputs = [ makeWrapper perl mesa xorg.libX11 xorg.libXext xorg.libXaw xorg.libXi xorg.libXxf86vm ];
+  propagatedBuildInputs = [ stdenv.gcc ];
+  NIX_LDFLAGS = "-lX11 -lXext -lXmu -lXi -lXxf86vm";
+  doCheck = false;
+
+  unpackPhase = ''
+    tar xvzf $src
+    tar xf AMD-APP-SDK-v${version}-*-lnx${bits}.tgz
+    cd AMD-APP-SDK-v${version}-*-lnx${bits}
+  '';
+
+  buildPhase = if !samples then ''echo "nothing to build"'' else null;
+
+  installPhase = ''
+    # Install SDK
+    mkdir -p $out
+    cp -r {docs,include} "$out/"
+    mkdir -p "$out/"{bin,lib,samples/opencl/bin}
+    cp -r "./bin/${arch}/clinfo" "$out/bin/clinfo"
+    cp -r "./lib/${arch}/"* "$out/lib/"
+
+    # Register ICD
+    mkdir -p "$out/etc/OpenCL/vendors"
+    echo "$out/lib/libamdocl${bits}.so" > "$out/etc/OpenCL/vendors/amd.icd"
+    # The OpenCL ICD specifications: http://www.khronos.org/registry/cl/extensions/khr/cl_khr_icd.txt
+
+    # Install includes
+    mkdir -p "$out/usr/include/"{CAL,OpenVideo}
+    install -m644 './include/OpenVideo/'{OVDecode.h,OVDecodeTypes.h} "$out/usr/include/OpenVideo/"
+
+    ${ if samples then ''
+      # Install samples
+      find ./samples/opencl/ -mindepth 1 -maxdepth 1 -type d -not -name bin -exec cp -r {} "$out/samples/opencl" \;
+      cp -r "./samples/opencl/bin/${arch}/"* "$out/samples/opencl/bin"
+      for f in $(find "$out/samples/opencl/bin/" -type f -not -name "*.*");
+      do
+        wrapProgram "$f" --prefix PATH ":" "${stdenv.gcc}/bin"
+      done'' else ""
+    }
+
+    # Create wrappers
+    patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" $out/bin/clinfo
+    patchelf --set-rpath ${stdenv.gcc.gcc}/lib64:${stdenv.gcc.gcc}/lib $out/bin/clinfo
+
+    # Fix modes
+    find "$out/" -type f -exec chmod 644 {} \;
+    chmod -R 755 "$out/bin/"
+    find "$out/samples/opencl/bin/" -type f -name ".*" -exec chmod 755 {} \;
+    find "$out/samples/opencl/bin/" -type f -not -name "*.*" -exec chmod 755 {} \;
+  '';
+
+  meta = with stdenv.lib; {
+    description = "AMD Accelerated Parallel Processing (APP) SDK, with OpenCL 1.2 support";
+    homepage = http://developer.amd.com/tools/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/;
+    license = licenses.amd;
+    maintainers = [ maintainers.offline ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/development/mobile/titaniumenv/titaniumsdk.nix b/pkgs/development/mobile/titaniumenv/titaniumsdk.nix
index edae828bd08..46227e5f14d 100644
--- a/pkgs/development/mobile/titaniumenv/titaniumsdk.nix
+++ b/pkgs/development/mobile/titaniumenv/titaniumsdk.nix
@@ -1,14 +1,14 @@
 {stdenv, fetchurl, unzip, makeWrapper, python, jdk}:
 
 stdenv.mkDerivation {
-  name = "titanium-mobilesdk-3.1.0.v20130415184552";
+  name = "titanium-mobilesdk-3.1.1.v20130612114553";
   src = if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") then fetchurl {
-    url = http://builds.appcelerator.com.s3.amazonaws.com/mobile/3_1_X/mobilesdk-3.1.0.v20130415184552-linux.zip;
-    sha1 = "7a8b34b92f6c3eff33eefb9a1b6b0d2e3670001d";
+    url = http://builds.appcelerator.com.s3.amazonaws.com/mobile/3_1_X/mobilesdk-3.1.1.v20130612114553-linux.zip;
+    sha1 = "410ba7e8171a887b6a4b3173116430657c3d84aa";
   }
   else if stdenv.system == "x86_64-darwin" then fetchurl {
-    url = http://builds.appcelerator.com.s3.amazonaws.com/mobile/3_1_X/mobilesdk-3.1.0.v20130415184552-osx.zip;
-    sha1 = "e0ed7e399a104e0838e245550197bf787a66bf98";
+    url = http://builds.appcelerator.com.s3.amazonaws.com/mobile/3_1_X/mobilesdk-3.1.1.v20130612114553-osx.zip;
+    sha1 = "0893a1560ac6fb63369fc9f6ea9550b6649438fa";
   }
   else throw "Platform: ${stdenv.system} not supported!";
   
diff --git a/pkgs/development/ocaml-modules/camlimages/default.nix b/pkgs/development/ocaml-modules/camlimages/default.nix
new file mode 100644
index 00000000000..037ebdea6b6
--- /dev/null
+++ b/pkgs/development/ocaml-modules/camlimages/default.nix
@@ -0,0 +1,43 @@
+{stdenv, fetchurl, omake, ocaml, omake_rc1, libtiff, libjpeg, libpng12, giflib, findlib, libXpm, freetype, graphicsmagick, ghostscript }:
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+  pname = "camlimages";
+  version = "4.0.1";
+in
+
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl { 
+    url = "https://bitbucket.org/camlspotter/camlimages/get/v4.0.1.tar.gz";
+    sha256 = "b40237c1505487049799a7af296eb3996b3fa08eab94415546f46d61355747c4";
+  };
+
+  buildInputs = [ocaml omake_rc1 findlib graphicsmagick ghostscript libtiff libjpeg libpng12 giflib freetype libXpm ];
+ 
+  propagatedbuildInputs = [libtiff libjpeg libpng12 giflib freetype libXpm ];
+
+  createFindlibDestdir = true;
+
+  preConfigure = ''
+    rm ./configure
+  '';
+
+  buildPhase = ''
+    omake
+  '';
+
+  installPhase = ''
+    omake install
+  '';
+
+  #makeFlags = "BINDIR=$(out)/bin  MANDIR=$(out)/usr/share/man/man1 DYPGENLIBDIR=$(out)/lib/ocaml/${ocaml_version}/site-lib";
+
+  meta = {
+    homepage = http://cristal.inria.fr/camlimages;
+    description = "Image manipulation library";
+    license = "GnuGPLV2";
+#    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/camlzip/default.nix b/pkgs/development/ocaml-modules/camlzip/default.nix
index 03a6dbef23e..2024f5a5ab8 100644
--- a/pkgs/development/ocaml-modules/camlzip/default.nix
+++ b/pkgs/development/ocaml-modules/camlzip/default.nix
@@ -2,16 +2,16 @@
 
 let
   ocaml_version = (builtins.parseDrvName ocaml.name).version;
-  version = "1.04";
+  version = "1.05";
 in
 
 stdenv.mkDerivation {
   name = "camlzip-${version}";
 
   src = fetchurl {
-    url = "http://forge.ocamlcore.org/frs/download.php/328/" +
+    url = "http://forge.ocamlcore.org/frs/download.php/1037/" +
           "camlzip-${version}.tar.gz";
-    sha256 = "1zpchmp199x7f4mzmapvfywgy7f6wy9yynd9nd8yh8l78s5gixbn";
+    sha256 = "930b70c736ab5a7ed1b05220102310a0a2241564786657abe418e834a538d06b";
   };
 
   buildInputs = [zlib ocaml findlib];
diff --git a/pkgs/development/ocaml-modules/cryptokit/default.nix b/pkgs/development/ocaml-modules/cryptokit/default.nix
index 48e86ed9a68..94b36fb6651 100644
--- a/pkgs/development/ocaml-modules/cryptokit/default.nix
+++ b/pkgs/development/ocaml-modules/cryptokit/default.nix
@@ -2,16 +2,16 @@
 
 let
   ocaml_version = (builtins.parseDrvName ocaml.name).version;
-  version = "1.5";
+  version = "1.7";
 in
 
 stdenv.mkDerivation {
   name = "cryptokit-${version}";
 
   src = fetchurl {
-    url = "http://forge.ocamlcore.org/frs/download.php/639/" +
+    url = "http://forge.ocamlcore.org/frs/download.php/1166/" +
           "cryptokit-${version}.tar.gz";
-    sha256 = "1r5kbsbsicrbpdrdim7h8xg2b1a8qg8sxig9q6cywzm57r33lj72";
+    sha256 = "56a8c0339c47ca3cf43c8881d5b519d3bff68bc8a53267e9c5c9cbc9239600ca";
   };
 
   buildInputs = [zlib ocaml findlib ncurses];
diff --git a/pkgs/development/ocaml-modules/dypgen/default.nix b/pkgs/development/ocaml-modules/dypgen/default.nix
new file mode 100644
index 00000000000..73f543f5b62
--- /dev/null
+++ b/pkgs/development/ocaml-modules/dypgen/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl, ocaml, findlib}:
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+  pname = "dypgen";
+  version = "20120619-1";
+in
+
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://dypgen.free.fr/dypgen-20120619-1.tar.bz2";
+    sha256 = "ecb53d6e469e9ec4d57ee6323ff498d45b78883ae13618492488e7c5151fdd97";
+  };
+
+  buildInputs = [ocaml findlib];
+
+  createFindlibDestdir = true;
+
+  buildPhase = ''
+    make
+  '';
+
+  makeFlags = "BINDIR=$(out)/bin  MANDIR=$(out)/usr/share/man/man1 DYPGENLIBDIR=$(out)/lib/ocaml/${ocaml_version}/site-lib";
+
+  meta = {
+    homepage = http://dypgen.free.fr;
+    description = "Dypgen GLR self extensible parser generator";
+    license = "CeCILL-B_V1";
+#    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/lablgl/Makefile.config.patch b/pkgs/development/ocaml-modules/lablgl/Makefile.config.patch
new file mode 100644
index 00000000000..c896978f57e
--- /dev/null
+++ b/pkgs/development/ocaml-modules/lablgl/Makefile.config.patch
@@ -0,0 +1,117 @@
+diff -Naur lablGL.ori/Makefile.config lablGL/Makefile.config
+--- lablGL.ori/Makefile.config	1970-01-01 01:00:00.000000000 +0100
++++ lablGL/Makefile.config	2013-06-02 08:13:10.000000000 +0200
+@@ -0,0 +1,63 @@
++#	LablGL and Togl configuration file
++#
++# Please have a look at the config/Makefile in the Objective Caml distribution,
++# or at the labltklink script to get the information needed here
++#
++
++##### Adjust these always
++
++# Uncomment if you have the fast ".opt" compilers
++#CAMLC = ocamlc.opt
++#CAMLOPT = ocamlopt.opt
++
++# Where to put the lablgl script
++BINDIR = @BINDIR@
++
++# Where to find X headers
++XINCLUDES = @XINCLUDES@
++# X libs (for broken RTLD_GLOBAL: e.g. FreeBSD 4.0)
++#XLIBS = -L/usr/X11R6/lib -lXext -lXmu -lX11 -lXi
++
++# Where to find Tcl/Tk headers
++# This must the same version as for LablTk
++TKINCLUDES = @TKINCLUDES@
++# Tcl/Tk libs (for broken RTLD_GLOBAL: e.g. FreeBSD 4.0)
++#TKLIBS = -L/usr/local/lib -ltk84 -ltcl84
++
++# Where to find OpenGL/Mesa/Glut headers and libraries
++GLINCLUDES =
++GLLIBS = -lGL -lGLU
++GLUTLIBS = -lglut
++# The following libraries may be required (try to add them one at a time)
++#GLLIBS = -lGL -lGLU -lXmu -lXext -lXi -lcipher -lpthread
++
++# How to index a library after installing (ranlib required on MacOSX)
++RANLIB = :
++#RANLIB = ranlib
++
++##### Uncomment these for windows
++#TKLIBS = tk83.lib tcl83.lib gdi32.lib user32.lib
++#GLLIBS = opengl32.lib glu32.lib 
++#TOOLCHAIN = msvc
++#XA = .lib
++#XB = .bat
++#XE = .exe
++#XO = .obj
++#XS = .dll
++
++##### Adjust these if non standard
++
++# The Objective Caml library directory
++#LIBDIR = `ocamlc -where`
++
++# Where to put dlls (if dynamic loading available)
++DLLDIR = @DLLDIR@
++
++# Where to put LablGL (standard)
++INSTALLDIR = @INSTALLDIR@
++
++# Where is Togl (default)
++#TOGLDIR = Togl
++
++# C Compiler options
++#COPTS = -c -O
+diff -Naur lablGL.ori/META lablGL/META
+--- lablGL.ori/META	1970-01-01 01:00:00.000000000 +0100
++++ lablGL/META	2013-06-02 22:00:59.000000000 +0200
+@@ -0,0 +1,21 @@
++description = "Bindings for OpenGL graphics engines"
++version = "1.04-1"
++archive(byte) = "lablgl.cma"
++archive(native) = "lablgl.cmxa"
++
++#package "togl" (
++#	description = "OpenGL widget for labltk"
++#	version = "1.01"
++#	requires = "lablgl, labltk"
++#	archive(byte) = "togl.cma"
++#	archive(native) = "togl.cmxa"
++#)
++
++package "glut" (
++	description = "Platform-independent OpenGL window"
++	version = "1.01"
++	requires = "lablgl"
++	archive(byte) = "lablglut.cma"
++	archive(native) = "lablglut.cmxa"
++)
++
+diff -Naur lablGL.ori/META~ lablGL/META~
+--- lablGL.ori/META~	1970-01-01 01:00:00.000000000 +0100
++++ lablGL/META~	2013-06-02 21:59:17.000000000 +0200
+@@ -0,0 +1,21 @@
++description = "Bindings for OpenGL graphics engines"
++version = "1.04-1"
++archive(byte) = "lablgl.cma"
++archive(native) = "lablgl.cmxa"
++
++#package "togl" (
++#	description = "OpenGL widget for labltk"
++#	version = "1.01"
++#	requires = "lablGL, labltk"
++#	archive(byte) = "togl.cma"
++#	archive(native) = "togl.cmxa"
++#)
++
++package "glut" (
++	description = "Platform-independent OpenGL window"
++	version = "1.01"
++	requires = "lablGL"
++	archive(byte) = "lablglut.cma"
++	archive(native) = "lablglut.cmxa"
++)
++
diff --git a/pkgs/development/ocaml-modules/lablgl/default.nix b/pkgs/development/ocaml-modules/lablgl/default.nix
new file mode 100644
index 00000000000..a739e4a7146
--- /dev/null
+++ b/pkgs/development/ocaml-modules/lablgl/default.nix
@@ -0,0 +1,45 @@
+{stdenv, fetchurl, ocaml, lablgtk, findlib, mesa, freeglut } :
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+  pname = "lablgl";
+  version = "1.04-1";
+in
+
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl { 
+    url = "http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/dist/lablgl-20120306.tar.gz";
+    sha256 = "1w5di2n38h7fkrf668zphnramygwl7ybjhrmww3pi9jcf9apa09r";
+  };
+
+  buildInputs = [ocaml findlib lablgtk mesa freeglut ];
+
+  patches = [ ./Makefile.config.patch ];
+
+  preConfigure = ''
+    substituteInPlace Makefile.config \
+      --subst-var-by BINDIR $out/bin \
+      --subst-var-by INSTALLDIR $out/lib/ocaml/${ocaml_version}/site-lib/lablgl \
+      --subst-var-by DLLDIR $out/lib/ocaml/${ocaml_version}/site-lib/lablgl/stublibs \
+      --subst-var-by TKINCLUDES "" \
+      --subst-var-by XINCLUDES ""
+  '';
+
+  createFindlibDestdir = true;
+
+  #makeFlags = "BINDIR=$(out)/bin  MANDIR=$(out)/usr/share/man/man1 DYPGENLIBDIR=$(out)/lib/ocaml/${ocaml_version}/site-lib";
+  buildFlags = "lib libopt glut glutopt";
+
+  postInstall = ''
+    cp ./META $out/lib/ocaml/${ocaml_version}/site-lib/lablgl
+  '';
+
+  meta = {
+    homepage = http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/lablgl.html;
+    description = "OpenGL bindings for ocaml";
+    license = "GnuGPLV2";
+#    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/lablgtk/default.nix b/pkgs/development/ocaml-modules/lablgtk/default.nix
index 8a51c216ab4..a62f4ab9ae9 100644
--- a/pkgs/development/ocaml-modules/lablgtk/default.nix
+++ b/pkgs/development/ocaml-modules/lablgtk/default.nix
@@ -3,25 +3,26 @@
 let
   ocaml_version = (builtins.parseDrvName ocaml.name).version;
   pname = "lablgtk";
-  version = "2.14.2";
+  version = "2.16.0";
 in
 
 stdenv.mkDerivation (rec {
   name = "${pname}-${version}";
   src = fetchurl {
-    url = "http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/dist/${name}.tar.gz";
-    sha256 = "1fnh0amm7lwgyjdhmlqgsp62gwlar1140425yc1j6inwmgnsp0a9";
+    url = "https://forge.ocamlcore.org/frs/download.php/979/${name}.tar.gz";
+    sha256 = "a0ea9752eb257dadcfc2914408fff339d4c34357802f02c63329dd41b777de2f";
   };
 
   buildInputs = [ocaml findlib pkgconfig gtk libgnomecanvas libglade gtksourceview];
 
-  patches = [ ./META.patch ];
+  # patches = [ ./META.patch ];
 
   configureFlags = "--with-libdir=$(out)/lib/ocaml/${ocaml_version}/site-lib";
   buildFlags = "world";
 
-  postInstall = ''
-    ocamlfind install lablgtk2 META
+  preInstall = ''
+    mkdir -p $out/lib/ocaml/${ocaml_version}/site-lib
+    export OCAMLPATH=$out/lib/ocaml/${ocaml_version}/site-lib/:$OCAMLPATH
   '';
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/mlgmp/META b/pkgs/development/ocaml-modules/mlgmp/META
new file mode 100644
index 00000000000..e132e179b33
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mlgmp/META
@@ -0,0 +1,7 @@
+name="gmp"
+version="@VERSION@"
+description="bindings to GNU MP library"
+archive(byte)="gmp.cma"
+archive(native)="gmp.cmxa"
+requires=""
+
diff --git a/pkgs/development/ocaml-modules/mlgmp/default.nix b/pkgs/development/ocaml-modules/mlgmp/default.nix
new file mode 100644
index 00000000000..78447796025
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mlgmp/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, ocaml, findlib, gmp, mpfr, ncurses }:
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+  pname = "mlgmp";
+  version = "20120224";
+in
+
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://www-verimag.imag.fr/~monniaux/download/${pname}_${version}.tar.gz";
+    sha256 = "3ce1a53fa452ff5a9ba618864d3bc46ef32190b57202d1e996ca7df837ad4f24";
+  };
+
+  makeFlags = [ 
+    "DESTDIR=$(out)/lib/ocaml/${ocaml_version}/site-lib/gmp"
+  ];
+
+  preConfigure = "make clean";
+  buildInputs = [ocaml findlib gmp mpfr ncurses];
+
+  createFindlibDestdir = true;
+
+  propagatedbuildInputs = [gmp mpfr ncurses];
+
+  postInstall  = ''
+     cp ${./META} $out/lib/ocaml/${ocaml_version}/site-lib/gmp/META
+  '';
+
+  meta = {
+    homepage = http://opam.ocamlpro.com/pkg/mlgmp.20120224.html;
+    description = "OCaml bindings to GNU MP library";
+    license = "Free software ?";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/mysql/default.nix b/pkgs/development/ocaml-modules/mysql/default.nix
index 32455fb4310..ed70d1b9c3e 100644
--- a/pkgs/development/ocaml-modules/mysql/default.nix
+++ b/pkgs/development/ocaml-modules/mysql/default.nix
@@ -7,17 +7,22 @@
 let
   ocaml_version = (builtins.parseDrvName ocaml.name).version;
   pname = "ocaml-mysql";
-  version = "1.0.4";
+  version = "1.1.1";
 in
 
 stdenv.mkDerivation {
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "http://raevnos.pennmush.org/code/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "17i5almar8qrhc9drq0cvlprxf9wi9szj5kh4gnz11l9al8i3lar";
+    url = "https://forge.ocamlcore.org/frs/download.php/870/${pname}-${version}.tar.gz";
+    sha256 = "f896fa101a05d81b85af8122fe1c2809008a5e5fdca00f9ceeb7eec356369e3a";
   };
 
+  configureFlags = [ 
+     "--prefix=$out" 
+     "--libdir=$out/lib/ocaml/${ocaml_version}/site-lib/mysql"
+  ];
+
   buildInputs = [ocaml findlib mysql];
 
   createFindlibDestdir = true;
@@ -34,7 +39,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    homepage = http://raevnos.pennmush.org/code/ocaml-mysql/;
+    homepage = http://ocaml-mysql.forge.ocamlcore.org;
     description = "Bindings for interacting with MySQL databases from ocaml";
     license = "LGPLv2.1+";
     maintainers = [ stdenv.lib.maintainers.roconnor ];
diff --git a/pkgs/development/ocaml-modules/ocaml-cairo/META.patch b/pkgs/development/ocaml-modules/ocaml-cairo/META.patch
new file mode 100644
index 00000000000..ba6e5927b00
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocaml-cairo/META.patch
@@ -0,0 +1,16 @@
+diff -Naur cairo-ocaml-1.2.0.ori/META cairo-ocaml-1.2.0/META
+--- cairo-ocaml-1.2.0.ori/META	1970-01-01 01:00:00.000000000 +0100
++++ cairo-ocaml-1.2.0/META	2013-06-04 03:31:32.000000000 +0200
+@@ -0,0 +1,12 @@
++name = "cairo-ocaml"
++description = "Bindings to the cairo library."
++version = "@VERSION@"
++archive(byte) = "cairo.cma"
++archive(native) = "cairo.cmxa"
++requires = "bigarray"
++
++package "lablgtk2" (
++        requires = "cairo lablgtk2"
++        archive(byte) = "cairo_lablgtk.cma"
++        archive(native) = "cairo_lablgtk.cmxa"
++)
diff --git a/pkgs/development/ocaml-modules/ocaml-cairo/default.nix b/pkgs/development/ocaml-modules/ocaml-cairo/default.nix
new file mode 100644
index 00000000000..8f19847680b
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocaml-cairo/default.nix
@@ -0,0 +1,44 @@
+{stdenv, fetchurl, automake, ocaml, autoconf, gnum4, pkgconfig, freetype, lablgtk, unzip, cairo, findlib, gdk_pixbuf, glib, gtk, pango }: 
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+  pname = "ocaml-cairo";
+  version = "1.2.0";
+in
+
+stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  src = fetchurl { 
+    url = "http://cgit.freedesktop.org/cairo-ocaml/snapshot/cairo-ocaml-${version}.zip";
+    sha256 = "2d59678e322c331e3f4bc02a77240fce4a0917acb0d3ae75953a6ac62d70a125";
+  };
+
+  patches = [ ./META.patch ];
+
+  buildInputs = [ocaml automake gnum4 autoconf unzip pkgconfig findlib freetype lablgtk cairo gdk_pixbuf gtk pango ];
+
+  createFindlibDestdir = true;
+
+ preConfigure = ''
+   aclocal -I support
+   autoconf
+   export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE `pkg-config --cflags cairo gdk-pixbuf glib  gtk+ pango`" 
+   export LABLGTKDIR=${lablgtk}/lib/ocaml/${ocaml_version}/site-lib/lablgtk2
+   cp ${lablgtk}/lib/ocaml/${ocaml_version}/site-lib/lablgtk2/pango.ml ./src
+   cp ${lablgtk}/lib/ocaml/${ocaml_version}/site-lib/lablgtk2/gaux.ml ./src
+  '';
+
+  postInstall = ''
+    cp META $out/lib/ocaml/${ocaml_version}/site-lib/cairo/
+  '';
+
+  makeFlags = "INSTALLDIR=$(out)/lib/ocaml/${ocaml_version}/site-lib/cairo";
+
+  meta = {
+    homepage = http://cairographics.org/cairo-ocaml;
+    description = "ocaml bindings for cairo library";
+    license = "GnuGPLV2";
+#    maintainers = [ stdenv.lib.maintainers.roconnor ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ocamlnet/configure.patch b/pkgs/development/ocaml-modules/ocamlnet/configure.patch
new file mode 100644
index 00000000000..38b240f3c2c
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocamlnet/configure.patch
@@ -0,0 +1,63 @@
+diff -Naur ocamlnet-3.6.3.ori/configure ocamlnet-3.6.3/configure
+--- ocamlnet-3.6.3.ori/configure	2013-01-14 00:04:59.000000000 +0000
++++ ocamlnet-3.6.3/configure	2013-06-02 21:33:08.000000000 +0000
+@@ -642,59 +642,6 @@
+ 	exit 1
+     fi
+ 
+-    printf "%s" "Checking whether lablgtk2 has GMain.Io.remove... "
+-    mkdir -p tmp
+-    cat <<EOF >tmp/gtk.ml
+-let _ = GMain.Io.remove;;
+-EOF
+-
+-    if ocamlfind ocamlc -package lablgtk2 -c tmp/gtk.ml >/dev/null 2>/dev/null;
+-    then
+-        echo "yes"
+-    else
+-        echo "no"
+-        echo "Your version of lablgtk2 is too old!"
+-	exit 1
+-    fi
+-    
+-    printf "%s" "Checking whether lablgtk2 has GMain.Io.add_watch with list support... "
+-    mkdir -p tmp
+-    cat <<'EOF' >tmp/gtk.ml
+-open GMain.Io
+-let _ = (add_watch : cond:condition list -> callback:(condition list -> bool) -> ?prio:int -> channel -> id);;
+-exit 0
+-EOF
+-    # Note: this newer API is never broken in the sense checked below, i.e.
+-    # such lablgtk2 versions do not exist.
+-    if ocamlfind ocamlc -package unix,lablgtk2 -linkpkg -o tmp/gtk tmp/gtk.ml >/dev/null 2>/dev/null && tmp/gtk; then
+-        echo "yes"
+-        gtk2_io_add_watch_supports_lists="-ppopt -DGTK2_IO_ADD_WATCH_SUPPORTS_LISTS"
+-    else
+-        echo "no"
+-        printf "%s" "Checking whether lablgtk2's GMain.Io.add_watch is broken... "
+-        mkdir -p tmp
+-        cat <<'EOF' >tmp/gtk.ml
+-GMain.Main.init();;
+-let ch = GMain.Io.channel_of_descr (Unix.stdout) in
+-let w = GMain.Io.add_watch
+-          ~cond:`OUT ~callback:(fun () -> true) ch in
+-(* add_watch is broken when it just returns Val_unit, and ok when it
+- * returns a positive int
+- *)
+-if (Obj.magic w : int) > 0 then
+-  exit 0
+-else
+-  exit 1
+-EOF
+-	if ocamlfind ocamlc -package unix,lablgtk2 -linkpkg -o tmp/gtk tmp/gtk.ml >/dev/null 2>/dev/null && tmp/gtk; then
+-            echo "no"
+-        else
+-            echo "yes"
+-            echo "You should apply the patch-ab-ml_glib.c to lablgtk2 to fix this!"
+-	    exit 1
+-        fi
+-    fi
+-
+     for f in Makefile uq_gtk.ml uq_gtk.mli uq_gtk_helper.ml; do
+ 	rm -f src/equeue-gtk2/$f
+ 	ln -s ../equeue-gtk1/$f src/equeue-gtk2
diff --git a/pkgs/development/ocaml-modules/ocamlnet/default.nix b/pkgs/development/ocaml-modules/ocamlnet/default.nix
index 4d9e934b628..c1960d4706e 100644
--- a/pkgs/development/ocaml-modules/ocamlnet/default.nix
+++ b/pkgs/development/ocaml-modules/ocamlnet/default.nix
@@ -1,18 +1,22 @@
-{stdenv, fetchurl, ncurses, ocaml, findlib, ocaml_pcre, camlzip, openssl, ocaml_ssl}:
+{stdenv, fetchurl, ncurses, ocaml, findlib, ocaml_pcre, camlzip, openssl, ocaml_ssl, lablgtk, cryptokit }:
 
 let
   ocaml_version = (builtins.parseDrvName ocaml.name).version;
 in
 
 stdenv.mkDerivation {
-  name = "ocamlnet-3.6";
+  name = "ocamlnet-3.6.3";
 
   src = fetchurl {
-    url = http://download.camlcity.org/download/ocamlnet-3.6.tar.gz;
-    sha256 = "306c20aee6512be3564c0f39872b70f929c06e1e893cfcf528ac47ae35cf7a69";
+    url = http://download.camlcity.org/download/ocamlnet-3.6.3.tar.gz;
+    sha256 = "c62fe0a4db6c63c04e24c8d76bcb504054f0b59a7a41c1abcbb8dd504afc9f29";
   };
 
-  buildInputs = [ncurses ocaml findlib ocaml_pcre camlzip openssl ocaml_ssl];
+  buildInputs = [ncurses ocaml findlib ocaml_pcre camlzip openssl ocaml_ssl lablgtk cryptokit];
+
+  propagatedbuildInputs = [ncurses ocaml_pcre camlzip openssl ocaml_ssl lablgtk cryptokit];
+
+  patches = [ ./configure.patch ];
 
   createFindlibDestdir = true;
 
@@ -23,6 +27,10 @@ stdenv.mkDerivation {
       -bindir $out/bin
       -enable-ssl
       -enable-zip
+      -enable-pcre
+      -enable-crypto
+      -disable-gtk2
+      -with-nethttpd
       -datadir $out/lib/ocaml/${ocaml_version}/ocamlnet
     )
   '';
diff --git a/pkgs/development/ocaml-modules/sqlite3/default.nix b/pkgs/development/ocaml-modules/sqlite3/default.nix
index a01660216bb..63dc06634d7 100644
--- a/pkgs/development/ocaml-modules/sqlite3/default.nix
+++ b/pkgs/development/ocaml-modules/sqlite3/default.nix
@@ -1,18 +1,19 @@
-{stdenv, fetchurl, sqlite, ocaml, findlib}:
+{stdenv, fetchurl, sqlite, ocaml, findlib, pkgconfig}:
 
 stdenv.mkDerivation {
-  name = "ocaml-sqlite3-1.6.3";
+  name = "ocaml-sqlite3-2.0.4";
 
   src = fetchurl {
-    url = https://bitbucket.org/mmottl/sqlite3-ocaml/downloads/sqlite3-ocaml-1.6.3.tar.gz;
-    sha256 = "004wysf80bmb8r4yaa648v0bqrh2ry3kzy763gdksw4n15blghv5";
+    url = https://bitbucket.org/mmottl/sqlite3-ocaml/downloads/sqlite3-ocaml-2.0.4.tar.gz;
+    sha256 = "51ccb4c7a240eb40652c59e1770cfe1827dfa1eb926c969d19ff414aef4e80a1";
   };
 
-  buildInputs = [ocaml findlib];
+  buildInputs = [ocaml findlib pkgconfig ];
 
-  configureFlags = "--with-sqlite3=${sqlite}";
+  #configureFlags = "--with-sqlite3=${sqlite}";
 
   preConfigure = ''
+    export PKG_CONFIG_PATH=${sqlite}/lib/pkgconfig/
     export OCAMLPATH=$OCAMLPATH:$OCAMLFIND_DESTDIR
     mkdir -p $out/bin
   '';
diff --git a/pkgs/development/python-modules/generic/default.nix b/pkgs/development/python-modules/generic/default.nix
index f72fbff1806..d32c6818bb2 100644
--- a/pkgs/development/python-modules/generic/default.nix
+++ b/pkgs/development/python-modules/generic/default.nix
@@ -68,6 +68,7 @@ python.stdenv.mkDerivation (attrs // {
   pythonPath = [ setuptools ] ++ pythonPath;
 
   preConfigure = ''
+    export DETERMINISTIC_BUILD=1
     PYTHONPATH="${offlineDistutils}/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
     ${preConfigure}
   '';
diff --git a/pkgs/development/python-modules/pygame/default.nix b/pkgs/development/python-modules/pygame/default.nix
index 347501f8a5b..912642e3ea9 100644
--- a/pkgs/development/python-modules/pygame/default.nix
+++ b/pkgs/development/python-modules/pygame/default.nix
@@ -1,46 +1,37 @@
-{ fetchurl, stdenv, python, pkgconfig, SDL, SDL_image, SDL_mixer, SDL_ttf
-, numeric }:
+{ stdenv, fetchurl, python, pkgconfig
+, SDL, SDL_image, SDL_mixer, SDL_ttf, libpng, libjpeg
+}:
 
 stdenv.mkDerivation {
-  name = "pygame-1.7";
+  name = "pygame-1.9.1";
 
   src = fetchurl {
-    url = http://www.pygame.org/ftp/pygame-1.7.1release.tar.gz ;
-    sha256 = "0hl0rmgjcqj217fibwyilz7w9jpg0kh7hsa7vyzd4cgqyliskpqi";
+    url = "http://www.pygame.org/ftp/pygame-1.9.1release.tar.gz";
+    sha256 = "0cyl0ww4fjlf289pjxa53q4klyn55ajvkgymw0qrdgp4593raq52";
   };
 
-  buildInputs = [python pkgconfig SDL SDL_image SDL_ttf numeric];
- 
+  buildInputs = [
+    python pkgconfig SDL SDL_image SDL_mixer SDL_ttf libpng libjpeg
+  ];
+
+  patches = [ ./pygame-v4l.patch ];
+
   configurePhase = ''
-    export LOCALBASE=///
-    sed -e "/origincdirs =/a'${SDL_image}/include/SDL','${SDL_image}/include'," -i config_unix.py
-    sed -e "/origlibdirs =/aoriglibdirs += '${SDL_image}/lib'," -i config_unix.py
-    sed -e "/origincdirs =/a'${SDL_mixer}/include/SDL','${SDL_mixer}/include'," -i config_unix.py
-    sed -e "/origlibdirs =/aoriglibdirs += '${SDL_mixer}/lib'," -i config_unix.py
-    sed -e "/origincdirs =/a'${SDL_ttf}/include/SDL','${SDL_ttf}/include'," -i config_unix.py
-    sed -e "/origlibdirs =/aoriglibdirs += '${SDL_ttf}/lib'," -i config_unix.py
-    sed -e "/origincdirs =/a'${numeric}/include/python2.5'," -i config_unix.py
-
-    sed -e "s|get_python_inc(0)|\"${numeric}/include/python2.5\"|g" -i config_unix.py
-
-    # XXX: `Numeric.pth' should be found by Python but it's not, hence the
-    # $PYTHONPATH setting below.  Gobolinux has the same problem:
-    # http://bugs.python.org/issue1431 .
-    yes Y | \
-      PYTHONPATH="${numeric}/lib/python2.5/site-packages/Numeric:$PYTHONPATH" \
-      python config.py
-
-    # That `config.py' is really deeply broken.
-    sed -i Setup \
-        -e "s|^NUMERIC *=.*$|NUMERIC = -I${numeric}/include/python2.5|g ;
-            s|^MIXER *=.*$|MIXER = -I${SDL_mixer}/include -L${SDL_mixer}/lib -lSDL_mixer|g"
+    for i in ${SDL_image} ${SDL_mixer} ${SDL_ttf} ${libpng} ${libjpeg}; do
+      sed -e "/origincdirs =/a'$i/include'," -i config_unix.py
+      sed -e "/origlibdirs =/aoriglibdirs += '$i/lib'," -i config_unix.py
+    done
+
+    yes Y | LOCALBASE=/ python config.py
   '';
 
-  buildPhase = "yes Y | python setup.py build";	
+  buildPhase = "python setup.py build"; 
 
-  installPhase = "yes Y | python setup.py install --prefix=\${out} ";
+  installPhase = "python setup.py install --prefix=$out";
 
   meta = {
     description = "Python library for games";
+    homepage = "http://www.pygame.org/";
+    licences = "LGPLv2.1+";
   };
 }
diff --git a/pkgs/development/python-modules/pygame/pygame-v4l.patch b/pkgs/development/python-modules/pygame/pygame-v4l.patch
new file mode 100644
index 00000000000..3b5a2b9d2bf
--- /dev/null
+++ b/pkgs/development/python-modules/pygame/pygame-v4l.patch
@@ -0,0 +1,88 @@
+diff -crB pygame-1.9.1release/Setup.in pygame-1.9.1release-v4lpatch//Setup.in
+*** pygame-1.9.1release/Setup.in	Thu Jul  2 06:41:56 2009
+--- pygame-1.9.1release-v4lpatch//Setup.in	Thu Mar 24 17:31:22 2011
+***************
+*** 34,40 ****
+  _numericsndarray src/_numericsndarray.c $(SDL) $(MIXER) $(DEBUG)
+  movie src/movie.c $(SDL) $(SMPEG) $(DEBUG)
+  scrap src/scrap.c $(SDL) $(SCRAP) $(DEBUG)
+! _camera src/_camera.c src/camera_v4l2.c src/camera_v4l.c $(SDL) $(DEBUG)
+  pypm src/pypm.c $(SDL) $(PORTMIDI) $(PORTTIME) $(DEBUG)
+  
+  GFX = src/SDL_gfx/SDL_gfxPrimitives.c 
+--- 34,40 ----
+  _numericsndarray src/_numericsndarray.c $(SDL) $(MIXER) $(DEBUG)
+  movie src/movie.c $(SDL) $(SMPEG) $(DEBUG)
+  scrap src/scrap.c $(SDL) $(SCRAP) $(DEBUG)
+! _camera src/_camera.c src/camera_v4l2.c $(SDL) $(DEBUG)
+  pypm src/pypm.c $(SDL) $(PORTMIDI) $(PORTTIME) $(DEBUG)
+  
+  GFX = src/SDL_gfx/SDL_gfxPrimitives.c 
+diff -crB pygame-1.9.1release/src/_camera.c pygame-1.9.1release-v4lpatch//src/_camera.c
+*** pygame-1.9.1release/src/_camera.c	Sun Mar 15 20:30:41 2009
+--- pygame-1.9.1release-v4lpatch//src/_camera.c	Thu Mar 24 16:58:18 2011
+***************
+*** 160,179 ****
+  {
+  #if defined(__unix__)
+      if (v4l2_open_device(self) == 0) {
+!         if (v4l_open_device(self) == 0) {
+!             v4l2_close_device(self);
+!             return NULL;
+!         } else {
+!             self->camera_type = CAM_V4L;
+!             if (v4l_init_device(self) == 0) {
+!                 v4l2_close_device(self);
+!                 return NULL;
+!             }
+!             if (v4l_start_capturing(self) == 0) {
+!                 v4l2_close_device(self);
+!                 return NULL;
+!             }
+!         }
+      } else {
+          self->camera_type = CAM_V4L2;
+          if (v4l2_init_device(self) == 0) {
+--- 160,167 ----
+  {
+  #if defined(__unix__)
+      if (v4l2_open_device(self) == 0) {
+! 	v4l2_close_device(self);
+!         return NULL;
+      } else {
+          self->camera_type = CAM_V4L2;
+          if (v4l2_init_device(self) == 0) {
+diff -crB pygame-1.9.1release/src/camera.h pygame-1.9.1release-v4lpatch//src/camera.h
+*** pygame-1.9.1release/src/camera.h	Fri Oct 10 04:37:10 2008
+--- pygame-1.9.1release-v4lpatch//src/camera.h	Thu Mar 24 16:44:32 2011
+***************
+*** 39,45 ****
+  
+      #include <asm/types.h>          /* for videodev2.h */
+  
+-     #include <linux/videodev.h>
+      #include <linux/videodev2.h>
+  #endif
+  
+--- 39,44 ----
+***************
+*** 51,57 ****
+  #define RGB_OUT 1
+  #define YUV_OUT 2
+  #define HSV_OUT 4
+- #define CAM_V4L 1
+  #define CAM_V4L2 2
+  
+  struct buffer 
+--- 50,55 ----
+***************
+*** 111,118 ****
+  int v4l2_close_device (PyCameraObject* self);
+  int v4l2_open_device (PyCameraObject* self);
+  
+- /* internal functions specific to v4l */
+- int v4l_open_device (PyCameraObject* self);
+- int v4l_init_device(PyCameraObject* self);
+- int v4l_start_capturing(PyCameraObject* self);
+  #endif
+--- 109,112 ----
diff --git a/pkgs/development/python-modules/pygtk/default.nix b/pkgs/development/python-modules/pygtk/default.nix
index 07d57591f1a..940ba18f2a2 100644
--- a/pkgs/development/python-modules/pygtk/default.nix
+++ b/pkgs/development/python-modules/pygtk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, python, pkgconfig, glib, gtk, pygobject, pycairo
+{ stdenv, fetchurl, python, pkgconfig, gtk, pygobject, pycairo
 , buildPythonPackage, libglade ? null }:
 
 buildPythonPackage rec {
@@ -9,11 +9,10 @@ buildPythonPackage rec {
     sha256 = "4acf0ef2bde8574913c40ee4a43d9c4f43bb77b577b67147271b534501a54cc8";
   };
 
-  buildInputs =
-    [ pkgconfig glib gtk ]
+  buildInputs = [ pkgconfig ]
     ++ stdenv.lib.optional (libglade != null) libglade;
 
-  propagatedBuildInputs = [ pygobject pycairo ];
+  propagatedBuildInputs = [ gtk pygobject pycairo ];
 
   installCommand = "make install";
   checkPhase = stdenv.lib.optionalString (libglade == null)
diff --git a/pkgs/development/tools/build-managers/gnumake-3.80/default.nix b/pkgs/development/tools/build-managers/gnumake-3.80/default.nix
index dbc68e1d90c..b0926a7f531 100644
--- a/pkgs/development/tools/build-managers/gnumake-3.80/default.nix
+++ b/pkgs/development/tools/build-managers/gnumake-3.80/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation {
   name = "gnumake-3.80";
   src = fetchurl {
-    url = http://nixos.org/tarballs/make-3.80.tar.bz2;
+    url = http://tarballs.nixos.org/make-3.80.tar.bz2;
     md5 = "0bbd1df101bc0294d440471e50feca71";
   };
   patches = [./log.patch];
diff --git a/pkgs/development/tools/build-managers/mk/default.nix b/pkgs/development/tools/build-managers/mk/default.nix
index 9cd208f5a81..6e40e4653ac 100644
--- a/pkgs/development/tools/build-managers/mk/default.nix
+++ b/pkgs/development/tools/build-managers/mk/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation {
   name = "mk-2006-01-31";
   src = fetchurl {
-    url = http://nixos.org/tarballs/mk-20060131.tar.gz;
+    url = http://tarballs.nixos.org/mk-20060131.tar.gz;
     md5 = "167fd4e0eea4f49def01984ec203289b";
   };
   builder = ./builder.sh;
diff --git a/pkgs/development/tools/build-managers/ninja/default.nix b/pkgs/development/tools/build-managers/ninja/default.nix
index c4a8b83a7cf..68a6640951b 100644
--- a/pkgs/development/tools/build-managers/ninja/default.nix
+++ b/pkgs/development/tools/build-managers/ninja/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl, unzip, python, asciidoc, re2c }:
+{ stdenv, fetchurl, python, asciidoc, re2c }:
 
 stdenv.mkDerivation rec {
   name = "ninja-${version}";
-  version = "1.2.0";
+  version = "1.3.4";
 
   src = fetchurl {
-    name = "${name}.zip";
-    url = "https://github.com/martine/ninja/archive/v${version}.zip";
-    sha256 = "15ynh806ah37bqb57hcs3mj2g82900sncp6n3bssfggb4azgjlh3";
+    name = "${name}.tar.gz";
+    url = "https://github.com/martine/ninja/archive/v${version}.tar.gz";
+    sha256 = "16b0dxq3v19qjchcmfqq3m4l8s4qx2d674vfvamg0s3vvfqnc477";
   };
 
-  buildInputs = [ python asciidoc unzip re2c ];
+  buildInputs = [ python asciidoc re2c ];
 
   buildPhase = ''
     python bootstrap.py
diff --git a/pkgs/development/tools/build-managers/remake/default.nix b/pkgs/development/tools/build-managers/remake/default.nix
index af2465c208c..676354a6e8d 100644
--- a/pkgs/development/tools/build-managers/remake/default.nix
+++ b/pkgs/development/tools/build-managers/remake/default.nix
@@ -1,15 +1,21 @@
-{stdenv, fetchurl}:
+{ stdenv, fetchurl, readline }:
+
+stdenv.mkDerivation rec {
+  name = "remake-${version}";
+  version = "3.82+dbg-0.6";
 
-stdenv.mkDerivation {
-  name = "remake-3.81-dbg-0.2";
   src = fetchurl {
-    url = mirror://sourceforge/bashdb/remake-3.81+dbg-0.2.tar.gz;
-    sha256 = "0mhc06zgd39dl8rk16ii0m2x22b9zi67d48km7rn0fzzv519lmwc";
+    url = "mirror://sourceforge/project/bashdb/remake/${version}/${name}.tar.bz2";
+    sha256 = "0i2g6vi9zya78d9zpigfnmzg2qcl93myjfibh3kfmjk7b9lajfyz";
   };
 
+  buildInputs = [ readline ];
+
   meta = {
     homepage = http://bashdb.sourceforge.net/remake/;
-    license = "GPL";
+    license = stdenv.lib.licenses.gpl3;
     description = "GNU Make with comprehensible tracing and a debugger";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ bjornfor ];
   };
 }
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
deleted file mode 100644
index 90045b97352..00000000000
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, fetchurl, writeScript, bash, jre }:
-
-let 
-
-  sbt = writeScript "sbt.sh" ''
-    #!${bash}/bin/bash
-    ${jre}/bin/java -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled \
-      -XX:MaxPermSize=384M -jar @out@/lib/sbt-launch.jar "$@"
-  '';
-
-in stdenv.mkDerivation rec {
-  name = "sbt-${version}";
-
-  version = "0.12.3";
-
-  src = fetchurl {
-    url = "http://scalasbt.artifactoryonline.com/scalasbt/sbt-native-packages/org/scala-sbt/sbt/${version}/sbt.tgz";
-    sha256 = "154ydaxd6ink5sy4flzpyh47nnhgkxwpzmml8q16am7655fpib08";
-  };
-
-  installPhase = ''
-    mkdir -p $out/lib $out/bin
-    mv bin/sbt-launch.jar $out/lib/
-    cp ${sbt} $out/bin/sbt
-    substituteInPlace $out/bin/sbt --replace @out@ $out
-  '';
-}
diff --git a/pkgs/development/tools/build-managers/simple-build-tool/default.nix b/pkgs/development/tools/build-managers/simple-build-tool/default.nix
index 218957ae360..e446bf1c1eb 100644
--- a/pkgs/development/tools/build-managers/simple-build-tool/default.nix
+++ b/pkgs/development/tools/build-managers/simple-build-tool/default.nix
@@ -1,41 +1,93 @@
-{ stdenv, fetchurl }:
-
-# Depends on a JRE at runtime.
+{ stdenv, versionedDerivation, fetchurl, version ? "xsbt-0.12.3" }:
 
 let
-  version = "0.7.3";
+
+      description = "A build tool for Scala";
+      longDescription = name: ''
+        ${name} is a simple build tool for Scala projects that aims to do the
+        basics well.
+
+        This package is the sbt launcher which automatically manages
+        and downloads dependencies, including the SBT package and the
+        Scala compiler.
+      '';
+
+      metaSBT = {
+        inherit description;
+        longDescription = longDescription "sbt";
+        homepage = http://code.google.com/p/simple-build-tool/;
+        license = "bsd";
+      };
+
+      metaXSBT = {
+        inherit description;
+        longDescription = longDescription "xsbt";
+        homepage = https://github.com/harrah/xsbt;
+        license = "bsd";
+      };
+
 in
-  stdenv.mkDerivation rec {
+
+# Depends on a JRE at runtime.
+
+versionedDerivation "simple-build-tool" version {
+  "0.7.3" = let version = "0.7.3"; in {
     name = "simple-build-tool-${version}";
     src = fetchurl {
       url = "http://simple-build-tool.googlecode.com/files/sbt-launch-${version}.jar";
       sha256 = "1nciifzf00cs54a4h57a7v1hyklm5vgln0sscmz5kzv96ggphs6k";
     };
+    meta = metaSBT;
+  };
 
-    installPhase = ''
-      mkdir -pv "$out/lib/java"
-      cp $src "$out/lib/java/sbt-launch-${version}.jar"
-      mkdir -p "$out/bin"
-      cat > "$out/bin/sbt" <<EOF
-      #! /bin/sh
-      exec java -jar $out/lib/java/sbt-launch-${version}.jar "\$@"
-      EOF
-      chmod u+x "$out/bin/sbt"
-    '';
+  "0.7.7" = let version = "0.7.7"; in {
+    name = "simple-build-tool-${version}";
+    src = fetchurl {
+      url = "http://simple-build-tool.googlecode.com/files/sbt-launch-${version}.jar";
+      # sha256 = "1nciifzf00cs54a4h57a7v1hyklm5vgln0sscmz5kzv96ggphs6j";
+      sha256 = "2720b033012a7509f7fbdfddfa69c07b105452a6f95bc410cb7dc34c1594ab3d";
+    };
+    meta = metaSBT;
+  };
 
-    phases = "installPhase";
+  "xsbt-0.11.2" = let version = "0.11.2"; in { # scala 2.9
+    name = "xsbt-${version}";
 
-    meta = {
-      description = "A build tool for Scala";
-      longDescription = ''
-        sbt is a simple build tool for Scala projects that aims to do the
-        basics well.
+    # scala needs much more PermGen space
+    javaArgs = "-Xmx1024M";
+    # from https://github.com/harrah/xsbt/wiki/Getting-Started-Setup
+    src = fetchurl {
+      url = http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-tools.sbt/sbt-launch/0.11.2/sbt-launch.jar;
+      sha256 = "14fbzvb1s66wpbqznw65a7nn27qrq1i9pd7wlbydv8ffl49d262n";
+    };
+    meta = metaXSBT;
+  };
 
-	This package is the sbt launcher which automatically manages
-	and downloads dependencies, including the SBT package and the
-	Scala compiler.
-      '';
-      homepage = http://code.google.com/p/simple-build-tool/;
-      license = "bsd";
+  "xsbt-0.12.3" = let version = "0.12.3"; in {
+    name = "xsbt-${version}";
+
+    # Recommended java options from sbt Getting started guide
+    javaArgs = "-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M";
+    # from https://github.com/harrah/xsbt/wiki/Getting-Started-Setup
+    src = fetchurl {
+      url = http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.12.3/sbt-launch.jar;
+      sha256 = "11r26abjzmnmpn65ndbq60qg31s3ichkvzpmxyrq941s1n1dbxgh";
     };
-  }
+    meta = metaXSBT;
+  };
+}
+{
+
+  installPhase = ''
+    mkdir -pv "$out/lib/java"
+    cp $src "$out/lib/java/sbt-launch-${version}.jar"
+    mkdir -p "$out/bin"
+    cat > "$out/bin/sbt" <<EOF
+    #! /bin/sh
+    exec java $javaArgs -jar $out/lib/java/sbt-launch-${version}.jar "\$@"
+    EOF
+    chmod u+x "$out/bin/sbt"
+  '';
+
+  phases = "installPhase";
+}
diff --git a/pkgs/development/tools/documentation/haddock/2.13.2.1.nix b/pkgs/development/tools/documentation/haddock/2.13.2.1.nix
new file mode 100644
index 00000000000..3cac6e13323
--- /dev/null
+++ b/pkgs/development/tools/documentation/haddock/2.13.2.1.nix
@@ -0,0 +1,20 @@
+{ cabal, alex, Cabal, deepseq, filepath, ghcPaths, happy, xhtml }:
+
+cabal.mkDerivation (self: {
+  pname = "haddock";
+  version = "2.13.2.1";
+  sha256 = "0kpk3bmlyd7cb6s39ix8s0ak65xhrln9mg481y3h24lf5syy5ky9";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ Cabal deepseq filepath ghcPaths xhtml ];
+  testDepends = [ Cabal deepseq filepath ];
+  buildTools = [ alex happy ];
+  doCheck = false;
+  meta = {
+    homepage = "http://www.haskell.org/haddock/";
+    description = "A documentation-generation tool for Haskell libraries";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [ self.stdenv.lib.maintainers.andres ];
+  };
+})
diff --git a/pkgs/development/tools/haskell/cabal2nix/default.nix b/pkgs/development/tools/haskell/cabal2nix/default.nix
index 96803e139ba..05dcb2aa119 100644
--- a/pkgs/development/tools/haskell/cabal2nix/default.nix
+++ b/pkgs/development/tools/haskell/cabal2nix/default.nix
@@ -3,8 +3,8 @@
 
 cabal.mkDerivation (self: {
   pname = "cabal2nix";
-  version = "1.51";
-  sha256 = "0la1bhdxrzn1phjyca7h54vimwf4jy5ryclwrnivbcxkncrk9lig";
+  version = "1.52";
+  sha256 = "1w38qxwbwaq37c7vypydwjjhgrn9vbaqnnk7b2y0pm8n2fh78z1s";
   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 7b3953b0716..99b4ff3d1bc 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.45";
-  sha256 = "14j77bjmdsxz5z0ka6mhnr2j29kpr5a39kbdq8ziga668wihdrz9";
+  version = "1.8.46";
+  sha256 = "0mq25xv0lmxfp9099pj7akmmw5pi0adq2w286wb4lpli82v8nfzf";
   isLibrary = true;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/haskell/timeplot/default.nix b/pkgs/development/tools/haskell/timeplot/default.nix
index 62a03cae14e..b2f6316dd99 100644
--- a/pkgs/development/tools/haskell/timeplot/default.nix
+++ b/pkgs/development/tools/haskell/timeplot/default.nix
@@ -5,8 +5,8 @@
 
 cabal.mkDerivation (self: {
   pname = "timeplot";
-  version = "1.0.20";
-  sha256 = "0zlpqfd1l1ss9jjjb967a7jnn1h560ygv8zfiikcx6iagsjmysh2";
+  version = "1.0.21";
+  sha256 = "0x9f95w235yijp98xx9nry0ibsxr0iyshk6cd89n51xrk1zpk41l";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index e1afceebaa2..ca763a5e1fb 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, noSysDirs, zlib, cross ? null, gold ? false, bison ? null, flex2535 ? null, bc ? null, dejagnu ? null }:
+{ stdenv, fetchurl, noSysDirs, zlib
+, cross ? null, gold ? false, bison ? null, flex2535 ? null, bc ? null, dejagnu ? null
+, deterministic ? false }:
 
 let basename = "binutils-2.23.1"; in
 stdenv.mkDerivation rec {
@@ -19,7 +21,7 @@ stdenv.mkDerivation rec {
     # That requires upstream changes for things to work. So we can patch it to
     # get the old behaviour by now.
     ./dtneeded.patch
-  ];
+  ] ++ (stdenv.lib.optional deterministic ./deterministic.patch);
 
   buildInputs =
     [ zlib ]
@@ -48,7 +50,8 @@ stdenv.mkDerivation rec {
       + stdenv.lib.optionalString (stdenv.system == "mips64el-linux")
         " --enable-fix-loongson2f-nop"
       + stdenv.lib.optionalString (cross != null) " --target=${cross.config}"
-      + stdenv.lib.optionalString gold " --enable-gold";
+      + stdenv.lib.optionalString gold " --enable-gold"
+      + stdenv.lib.optionalString deterministic " --enable-deterministic-archives";
 
   enableParallelBuilding = true;
       
diff --git a/pkgs/development/tools/misc/binutils/deterministic.patch b/pkgs/development/tools/misc/binutils/deterministic.patch
new file mode 100644
index 00000000000..736e0aca6ce
--- /dev/null
+++ b/pkgs/development/tools/misc/binutils/deterministic.patch
@@ -0,0 +1,12 @@
+diff -ur orig/binutils-2.23.1/ld/ldlang.c binutils-2.23.1/ld/ldlang.c
+--- orig/ld/ldlang.c
++++ new/ld/ldlang.c
+@@ -3095,6 +3095,8 @@
+                           ldfile_output_machine))
+     einfo (_("%P%F:%s: can not set architecture: %E\n"), name);
+ 
++  link_info.output_bfd->flags |= BFD_DETERMINISTIC_OUTPUT;
++
+   link_info.hash = bfd_link_hash_table_create (link_info.output_bfd);
+   if (link_info.hash == NULL)
+     einfo (_("%P%F: can not create hash table: %E\n"));
diff --git a/pkgs/development/tools/misc/intltool/default.nix b/pkgs/development/tools/misc/intltool/default.nix
index 0ca8b6eb071..b2a400a6189 100644
--- a/pkgs/development/tools/misc/intltool/default.nix
+++ b/pkgs/development/tools/misc/intltool/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, perl, perlXMLParser}:
+{ stdenv, fetchurl, perl, perlXMLParser, gettext }:
 let
   s = # Generated upstream information
   rec {
@@ -12,12 +12,15 @@ let
   propagatedBuildInputs = [perl perlXMLParser];
   buildInputs = [];
   in
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   inherit (s) name version;
   src = fetchurl {
     inherit (s) url sha256;
   };
-  inherit propagatedBuildInputs buildInputs;
+  inherit buildInputs;
+
+  # not needed by intltool itself but (probably) needed for its usage
+  propagatedBuildInputs = propagatedBuildInputs ++ [ gettext ];
 
   meta = {
     description = "Translation helper tool";
diff --git a/pkgs/development/tools/misc/intltool/default.upstream b/pkgs/development/tools/misc/intltool/default.upstream
index 4a2965b036a..323bf21f45a 100644
--- a/pkgs/development/tools/misc/intltool/default.upstream
+++ b/pkgs/development/tools/misc/intltool/default.upstream
@@ -1,2 +1,2 @@
-attribute_name intltool_standalone
+attribute_name intltool
 url https://launchpad.net/intltool/+download
diff --git a/pkgs/development/tools/ocaml/deriving/default.nix b/pkgs/development/tools/ocaml/deriving/default.nix
new file mode 100644
index 00000000000..d53f41b5da5
--- /dev/null
+++ b/pkgs/development/tools/ocaml/deriving/default.nix
@@ -0,0 +1,72 @@
+{stdenv, fetchurl, zlib, ocaml, findlib, ncurses
+, versionedDerivation, unzip
+, version ?
+    let match = {
+      "ocaml-3.10.0" = "for-3.10.0";
+      "ocaml-3.12.1" = "for-3.12.1";
+    }; in stdenv.lib.maybeAttr ocaml.name (throw "no matching source of ocaml-deriving for ocaml version: ${ocaml.name}") match
+}:
+
+/*
+Usage example:
+
+== main.ml ==
+type t = | A | B
+  deriving (Show)
+
+print_string (Show.show<t> (A));;
+==
+
+ocamlopt -pp $out/bin/deriving -I $d/lib -I $d/syntax nums.cmxa show.cmx main.ml
+*/
+
+versionedDerivation "ocaml-deriving" version {
+
+  "for-3.10.0" = {
+    name = "deriving-0.1.1a";
+      # ocaml: 3.10.0
+    src = fetchurl {
+      url = https://deriving.googlecode.com/files/deriving-0.1.1a.tar.gz;
+      sha256 = "0ppmqhc23kccfjn3cnd9n205ky627ni8f5djf8sppmc3lc1m97mb";
+    };
+  };
+
+  "for-3.12.1" = {
+    name = "deriving-git20100903";
+
+    # https://github.com/jaked/deriving
+    src = fetchurl {
+      name = "for-3.12.0.zip";
+      url = https://codeload.github.com/jaked/deriving/zip/c7b9cea3eb4bbfb9e09673faf725f70247c9df78;
+      sha256 = "1zrmpqb5lsjmizqs68czmfpsbz9hz30pf97w11kkby175hhj84gi";
+    };
+
+    buildInputs = [ unzip ];
+  };
+
+}
+{
+  buildInputs = [ocaml findlib];
+
+  installPhase = ''
+    # not all tests compile !?
+    # (cd tests; make)
+
+    ensureDir $out/bin
+    cp -a lib $out/
+    cp -a syntax $out
+
+    # this allows -pp deriving
+    ln -s $out/syntax/deriving $out/bin/deriving
+  '';
+
+  meta = {
+    homepage = "https://code.google.com/p/deriving/source/checkout";
+    description = "A library of cryptographic primitives for OCaml";
+    license = stdenv.lib.licenses.mit;
+    platforms = ocaml.meta.platforms;
+    maintainers = [
+      stdenv.lib.maintainers.z77z
+    ];
+  };
+}
diff --git a/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix b/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix
new file mode 100644
index 00000000000..48a6b3c1f64
--- /dev/null
+++ b/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, makeWrapper, ocaml, ncurses}:
+let
+  pname = "omake";
+  version = "0.9.8.6-0.rc1";
+  webpage = "http://omake.metaprl.org";
+in
+stdenv.mkDerivation {
+
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "${webpage}/downloads/${pname}-${version}.tar.gz";
+    sha256 = "1sas02pbj56m7wi5vf3vqrrpr4ynxymw2a8ybvfj2dkjf7q9ii13";
+  };
+  patchFlags = "-p0";
+  patches = [ ./warn.patch ];
+
+  buildInputs = [ ocaml makeWrapper ncurses ];
+
+  phases = "unpackPhase patchPhase buildPhase";
+  buildPhase = ''
+    make bootstrap
+    make PREFIX=$out all
+    make PREFIX=$out install
+  '';
+#  prefixKey = "-prefix ";
+#
+#  configureFlags = if transitional then "--transitional" else "--strict";
+#
+#  buildFlags = "world.opt";		
+
+  meta = {
+    description = "Omake build system";
+    homepage = "${webpage}";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/development/tools/ocaml/omake/warn.patch b/pkgs/development/tools/ocaml/omake/warn.patch
new file mode 100644
index 00000000000..4459e89d7f9
--- /dev/null
+++ b/pkgs/development/tools/ocaml/omake/warn.patch
@@ -0,0 +1,10 @@
+diff -p1 -aur ../omake-0.9.8.6.ori/lib/build/OCaml.om ./lib/build/OCaml.om
+--- ../omake-0.9.8.6.ori/lib/build/OCaml.om	2008-03-05 01:07:25.000000000 +0000
++++ ./lib/build/OCaml.om	2013-06-01 15:52:37.000000000 +0000
+@@ -178,3 +178,3 @@ declare OCAMLDEPFLAGS
+ public.OCAMLPPFLAGS  =
+-public.OCAMLFLAGS    = -warn-error A
++public.OCAMLFLAGS    =
+ public.OCAMLCFLAGS   = -g
+Seulement dans ./lib/build: OCaml.om~
+Seulement dans .: warn.patch
diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix
index 063af69a7f3..bccaa70ead7 100644
--- a/pkgs/development/tools/selenium/chromedriver/default.nix
+++ b/pkgs/development/tools/selenium/chromedriver/default.nix
@@ -1,22 +1,20 @@
 { stdenv, fetchurl, cairo, fontconfig, freetype, gdk_pixbuf, glib
-, glibc, gtk, libX11, makeWrapper, nspr, nss, pango, unzip
+, glibc, gtk, libX11, makeWrapper, nspr, nss, pango, unzip, gconf
+, libXrender, libXext
 }:
 
 # note: there is a i686 version available as well
 assert stdenv.system == "x86_64-linux";
 
 stdenv.mkDerivation rec {
-  name = "chromedriver_linux64_26.0.1383.0";
+  name = "chromedriver_linux64_2.0";
 
   src = fetchurl {
     url = "http://chromedriver.googlecode.com/files/${name}.zip";
-    sha256 = "0fh4r2rcpjc3nfrdyj256kjlyc0b6mhxqwxcah73q4vm1kjax8rs";
+    sha256 = "165dq5550fs6262qa2jnjvm9smwjvws2zkkz7z5v4ibfg2j3409m";
   };
 
-  buildInputs = [
-    cairo fontconfig freetype gdk_pixbuf glib gtk libX11 makeWrapper
-    nspr nss pango unzip
-  ];
+  buildInputs = [ unzip makeWrapper ];
 
   unpackPhase = "unzip $src";
 
@@ -25,7 +23,7 @@ stdenv.mkDerivation rec {
     mv chromedriver $out/bin
     patchelf --set-interpreter ${glibc}/lib/ld-linux-x86-64.so.2 $out/bin/chromedriver
     wrapProgram "$out/bin/chromedriver" \
-      --prefix LD_LIBRARY_PATH : "$(cat ${stdenv.gcc}/nix-support/orig-gcc)/lib64:${cairo}/lib:${fontconfig}/lib:${freetype}/lib:${gdk_pixbuf}/lib:${glib}/lib:${gtk}/lib:${libX11}/lib:${nspr}/lib:${nss}/lib:${pango}/lib:\$LD_LIBRARY_PATH"
+      --prefix LD_LIBRARY_PATH : "$(cat ${stdenv.gcc}/nix-support/orig-gcc)/lib64:${cairo}/lib:${fontconfig}/lib:${freetype}/lib:${gdk_pixbuf}/lib:${glib}/lib:${gtk}/lib:${libX11}/lib:${nspr}/lib:${nss}/lib:${pango}/lib:${libXrender}/lib:${gconf}/lib:${libXext}/lib:\$LD_LIBRARY_PATH"
   '';
 
   meta = with stdenv.lib; {
@@ -34,4 +32,4 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = [ maintainers.goibhniu ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/web/plone/4.1.6.nix b/pkgs/development/web/plone/4.1.6.nix
index 23a0cc34f90..47bd00b80cb 100644
--- a/pkgs/development/web/plone/4.1.6.nix
+++ b/pkgs/development/web/plone/4.1.6.nix
@@ -1,11 +1,11 @@
 # DO NOT EDIT THIS FILE!
 #
 # Nix expressions autogenerated with:
-#   bin/pypi2nix -n plone43Packages -d Plone -d mailinglogger -d zc.recipe.egg -d plone.recipe.zope2instance -d Pillow -i setuptools -i zc_buildout -i pillow -e plone/4.1.6.json -p plone/4.1.6.txt -o plone/4.1.6.nix
+#   bin/pypi2nix -n plone41Packages -d Plone -d mailinglogger -d zc.recipe.egg -d plone.recipe.zope2instance -d Pillow -i setuptools -i zc_buildout -i pillow -e plone/4.1.6.json -p plone/4.1.6.txt -o plone/4.1.6.nix
 
 { pkgs, pythonPackages }:
 
-let plone43Packages = pythonPackages.python.modules // rec {
+let plone41Packages = pythonPackages.python.modules // rec {
   inherit (pythonPackages) buildPythonPackage setuptools zc_buildout pillow;
   inherit (pkgs) fetchurl stdenv;
 
@@ -3092,10 +3092,10 @@ let plone43Packages = pythonPackages.python.modules // rec {
   };
 
   plone_recipe_zope2instance = buildPythonPackage rec {
-    name = "plone.recipe.zope2instance-4.1.9";
+    name = "plone.recipe.zope2instance-4.1.10";
     src = fetchurl {
-      url = "http://pypi.python.org/packages/source/p/plone.recipe.zope2instance/plone.recipe.zope2instance-4.1.9.zip";
-      md5 = "ad90efc7948107ab63efac46ab589569";
+      url = "http://pypi.python.org/packages/source/p/plone.recipe.zope2instance/plone.recipe.zope2instance-4.1.10.zip";
+      md5 = "787fad7fa44757de74a50a91e9bcfcb5";
     };
     buildInputs = [ pkgs.unzip ];
     propagatedBuildInputs = [ zc_buildout zc_recipe_egg mailinglogger setuptools zope2 ];
@@ -5138,4 +5138,4 @@ let plone43Packages = pythonPackages.python.modules // rec {
     };
   };
 
-}; in plone43Packages
+}; in plone41Packages
diff --git a/pkgs/games/flightgear/default.nix b/pkgs/games/flightgear/default.nix
index fa0bb9bb4f7..9b9e7ab9680 100644
--- a/pkgs/games/flightgear/default.nix
+++ b/pkgs/games/flightgear/default.nix
@@ -49,8 +49,7 @@ rec {
     [
       raskin
     ];
-    platforms = with a.lib.platforms;
-      linux;
+    #platforms = a.lib.platforms.linux;
     license = a.lib.licenses.gpl2;
   };
   passthru = {
diff --git a/pkgs/games/keen4/default.nix b/pkgs/games/keen4/default.nix
index 745d9f6b38c..4d6189603a9 100644
--- a/pkgs/games/keen4/default.nix
+++ b/pkgs/games/keen4/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation {
   builder = ./builder.sh;
 
   dist = fetchurl {
-    url = http://nixos.org/tarballs/keen4.zip;
+    url = http://tarballs.nixos.org/keen4.zip;
     md5 = "ffcdd9e3bce224d92797166bc3f56f1c";
   };
 
diff --git a/pkgs/games/quake3/demo/default.nix b/pkgs/games/quake3/demo/default.nix
index fb6d1f0b232..99c07a9a7e0 100644
--- a/pkgs/games/quake3/demo/default.nix
+++ b/pkgs/games/quake3/demo/default.nix
@@ -6,13 +6,13 @@ stdenv.mkDerivation {
 
   # This is needed for pak0.pk3.
   demo = fetchurl {
-    url = http://nixos.org/tarballs/linuxq3ademo-1.11-6.x86.gz.sh;
+    url = http://tarballs.nixos.org/linuxq3ademo-1.11-6.x86.gz.sh;
     md5 = "484610c1ce34272223a52ec331c99d5d";
   };
 
   # This is needed for the additional pak?.pk3 files.
   update = fetchurl {
-    url = http://nixos.org/tarballs/linuxq3apoint-1.31.x86.run;
+    url = http://tarballs.nixos.org/linuxq3apoint-1.31.x86.run;
     md5 = "2620b9eefb6d0775f766b6570870157a";
   };
 
diff --git a/pkgs/games/sgt-puzzles/default.nix b/pkgs/games/sgt-puzzles/default.nix
index b8043525719..8aaf1f0865c 100644
--- a/pkgs/games/sgt-puzzles/default.nix
+++ b/pkgs/games/sgt-puzzles/default.nix
@@ -10,8 +10,8 @@ in
 rec {
   src = fetchsvn {
    url = svn://svn.tartarus.org/sgt/puzzles;
-   rev = "9689";
-   sha256 = "33285a971fee67324f8867de22582931135d8b8ee4cc2c41c46c3ba81eb99cb7";
+   rev = "9773";
+   sha256 = "1m0mmxbcj0zi44dlmhk4h30d9hdy8g9f59r7k7906pgnnyf49611";
   } + "/";
 
   inherit buildInputs;
@@ -27,7 +27,7 @@ rec {
 
   setVars = a.noDepEntry ''
     export NIX_LDFLAGS="$NIX_LDFLAGS -lX11"
-    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error=variadic-macros"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error"
   '';
 
   /* doConfigure should be removed if not needed */
diff --git a/pkgs/lib/licenses.nix b/pkgs/lib/licenses.nix
index 89edcd738f4..0669bc3f5c3 100644
--- a/pkgs/lib/licenses.nix
+++ b/pkgs/lib/licenses.nix
@@ -16,6 +16,18 @@
     url = https://www.gnu.org/licenses/agpl.html;
   };
 
+  amd = {
+    shortName = "amd";
+    fullName = "AMD License Agreement";
+    url = "http://developer.amd.com/amd-license-agreement/";
+  };
+
+  amdadl = {
+    shortName = "amd-adl";
+    fullName = "amd-adl license";
+    url = "http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/licenses/AMD-ADL?revision=1.1";
+  };
+
   asl20 = {
     shortName = "ASL2.0";
     fullName = "Apache Software License 2.0";
diff --git a/pkgs/lib/maintainers.nix b/pkgs/lib/maintainers.nix
index e861203fb15..5e506ce25c2 100644
--- a/pkgs/lib/maintainers.nix
+++ b/pkgs/lib/maintainers.nix
@@ -8,6 +8,7 @@
   all = "Nix Committers <nix-commits@lists.science.uu.nl>";
   amiddelk = "Arie Middelkoop <amiddelk@gmail.com>";
   andres = "Andres Loeh <ksnixos@andres-loeh.de>";
+  amorsillo = "Andrew Morsillo <andrew.morsillo@gmail.com>";
   antono = "Antono Vasiljev <self@antono.info>";
   astsmtl = "Alexander Tsamutali <astsmtl@yandex.ru>";
   aszlig = "aszlig <aszlig@redmoonstudios.org>";
@@ -22,6 +23,7 @@
   goibhniu = "Cillian de Róiste <cillian.deroiste@gmail.com>";
   guibert = "David Guibert <david.guibert@gmail.com>";
   iElectric = "Domen Kozar <domen@dev.si>";
+  lovek323 = "Jason O'Conal <jason@oconal.id.au>";
   jcumming = "Jack Cummings <jack@mudshark.org>";
   kkallio = "Karn Kallio <tierpluspluslists@gmail.com>";
   ludo = "Ludovic Courtès <ludo@gnu.org>";
diff --git a/pkgs/lib/misc.nix b/pkgs/lib/misc.nix
index 0f4c0d0de95..19e5081009d 100644
--- a/pkgs/lib/misc.nix
+++ b/pkgs/lib/misc.nix
@@ -315,6 +315,8 @@ rec {
       )
     ];
   mergeAttrsByFuncDefaults = foldl mergeAttrByFunc { inherit mergeAttrBy; };
+  mergeAttrsByFuncDefaultsClean = list: removeAttrs (mergeAttrsByFuncDefaults list) ["mergeAttrBy"];
+
   # merge attrs based on version key into mkDerivation args, see mergeAttrBy to learn about smart merge defaults
   #
   # This function is best explained by an example:
@@ -356,7 +358,8 @@ rec {
 
   # sane defaults (same name as attr name so that inherit can be used)
   mergeAttrBy = # { buildInputs = concatList; [...]; passthru = mergeAttr; [..]; }
-    listToAttrs (map (n : nameValuePair n lib.concat) [ "nativeBuildInputs" "buildInputs" "propagatedBuildInputs" "configureFlags" "prePhases" "postAll" ])
+    listToAttrs (map (n : nameValuePair n lib.concat)
+      [ "nativeBuildInputs" "buildInputs" "propagatedBuildInputs" "configureFlags" "prePhases" "postAll" "patches" ])
     // listToAttrs (map (n : nameValuePair n lib.mergeAttrs) [ "passthru" "meta" "cfg" "flags" ])
     // listToAttrs (map (n : nameValuePair n (a: b: "${a}\n${b}") ) [ "preConfigure" "postInstall" ])
   ;
diff --git a/pkgs/lib/modules.nix b/pkgs/lib/modules.nix
index 286178a0fa7..ea38010cecc 100644
--- a/pkgs/lib/modules.nix
+++ b/pkgs/lib/modules.nix
@@ -75,12 +75,19 @@ rec {
         );
 
 
-  unifyOptionModule = {key ? "<unknown location>"}: m: (args:
-    let module = lib.applyIfFunction m args; in
-    if lib.isModule module then
-      { inherit key; } // module
+  unifyOptionModule = {key ? "<unknown location>"}: name: index: m: (args:
+    let
+      module = lib.applyIfFunction m args;
+      key_ = rec {
+        file = key;
+        option = name;
+        number = index;
+        outPath = key;
+      };
+    in if lib.isModule module then
+      { key = key_; } // module
     else
-      { inherit key; options = module; }
+      { key = key_; options = module; }
   );
 
 
@@ -197,9 +204,9 @@ rec {
       recurseInto = name:
         moduleMerge (addName name) (modulesOf name);
 
-      recurseForOption = name: modules:
+      recurseForOption = name: modules: args:
         moduleMerge name (
-          map unifyModuleSyntax modules
+          moduleClosure modules args
         );
 
       errorSource = modules:
@@ -240,7 +247,7 @@ rec {
           decls = # add location to sub-module options.
             map (m:
               mapSubOptions
-                (unifyOptionModule {inherit (m) key;})
+                (unifyOptionModule {inherit (m) key;} name)
                 m.options
             ) declarations;
 
diff --git a/pkgs/lib/options.nix b/pkgs/lib/options.nix
index 3a8cc0006ef..1fdf9ad8088 100644
--- a/pkgs/lib/options.nix
+++ b/pkgs/lib/options.nix
@@ -31,7 +31,7 @@ rec {
   mapSubOptions = f: opt:
     if opt ? options then
       opt // {
-        options = map f (toList opt.options);
+        options = imap f (toList opt.options);
       }
     else
       opt;
@@ -82,16 +82,18 @@ rec {
       handleOptionSets = opt:
         if opt ? type && opt.type.hasOptions then
           let
-            
-            optionConfig = vals: args:
-              map (f: lib.applyIfFunction f args)
-                (opt.options ++ toList vals);
-
             # Evaluate sub-modules.
             subModuleMerge = path: vals:
               lib.fix (args:
                 let
-                  result = recurseInto path (optionConfig vals args);
+                  result = recurseInto path (opt.options ++ imap (index: v: args: {
+                    key = rec {
+                      #!!! Would be nice if we had the file the val was from
+                      option = path;
+                      number = index;
+                      outPath = "option ${option} config number ${toString number}";
+                    };
+                  } // (lib.applyIfFunction v args)) (toList vals)) args;
                   name = lib.removePrefix (opt.name + ".") path;
                   extraArgs = opt.extraArgs or {};
                   individualExtraArgs = opt.individualExtraArgs or {};
diff --git a/pkgs/lib/strings.nix b/pkgs/lib/strings.nix
index 6c4adfaa1a7..ed668e2b927 100644
--- a/pkgs/lib/strings.nix
+++ b/pkgs/lib/strings.nix
@@ -109,6 +109,13 @@ rec {
       stringAsChars subst s;
 
 
+  # Case conversion utilities
+  lowerChars = stringToCharacters "abcdefghijklmnopqrstuvwxyz";
+  upperChars = stringToCharacters "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+  toLower = replaceChars upperChars lowerChars;
+  toUpper = replaceChars lowerChars upperChars;
+
+
   # Compares strings not requiring context equality
   # Obviously, a workaround but works on all Nix versions
   eqStrings = a: b: (a+(substring 0 0 b)) == ((substring 0 0 a)+b);
diff --git a/pkgs/misc/cups/default.nix b/pkgs/misc/cups/default.nix
index be442fd22a6..471fbcdc464 100644
--- a/pkgs/misc/cups/default.nix
+++ b/pkgs/misc/cups/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
   outputs = [ "dev" "out" "doc" "man" ];
 
   buildInputs = [ pkgconfig zlib libjpeg libpng libtiff libusb1 ]
-    ++ stdenv.lib.optionals stdenv.isLinux [ pam dbus acl ] ;
+    ++ stdenv.lib.optionals stdenv.isLinux [ pam dbus.libs acl ] ;
 
   propagatedBuildInputs = [ openssl ];
 
diff --git a/pkgs/misc/emulators/wine/default.nix b/pkgs/misc/emulators/wine/default.nix
index 31ed420fe56..69bcea87f6a 100644
--- a/pkgs/misc/emulators/wine/default.nix
+++ b/pkgs/misc/emulators/wine/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, xlibs, flex, bison, mesa, alsaLib
 , ncurses, libpng, libjpeg, lcms, freetype, fontconfig, fontforge
-, libxml2, libxslt, openssl, gnutls, cups
+, libxml2, libxslt, openssl, gnutls, cups, libdrm, makeWrapper
 }:
 
 assert stdenv.isLinux;
@@ -25,14 +25,14 @@ stdenv.mkDerivation rec {
     xlibs.libXcursor xlibs.libXinerama xlibs.libXrandr
     xlibs.libXrender xlibs.libXxf86vm xlibs.libXcomposite
     alsaLib ncurses libpng libjpeg lcms fontforge
-    libxml2 libxslt openssl gnutls cups
+    libxml2 libxslt openssl gnutls cups makeWrapper
   ];
 
   # Wine locates a lot of libraries dynamically through dlopen().  Add
   # them to the RPATH so that the user doesn't have to set them in
   # LD_LIBRARY_PATH.
   NIX_LDFLAGS = map (path: "-rpath ${path}/lib ") [
-    freetype fontconfig stdenv.gcc.gcc mesa mesa.libdrm
+    freetype fontconfig stdenv.gcc.gcc mesa libdrm
     xlibs.libXinerama xlibs.libXrender xlibs.libXrandr
     xlibs.libXcursor xlibs.libXcomposite libpng libjpeg
     openssl gnutls cups
@@ -42,7 +42,10 @@ stdenv.mkDerivation rec {
   # elements specified above.
   dontPatchELF = true;
 
-  postInstall = "install -D ${gecko} $out/share/wine/gecko/${gecko.name}";
+  postInstall = ''
+    install -D ${gecko} $out/share/wine/gecko/${gecko.name}
+    wrapProgram $out/bin/wine --prefix LD_LIBRARY_PATH : ${stdenv.gcc.gcc}/lib
+  '';
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index ac171b2ff81..79f36744603 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, libjpeg, libpng, libtiff, zlib, pkgconfig, fontconfig, openssl, lcms, freetype
+{ stdenv, fetchurl, libjpeg, libpng, libtiff, zlib, pkgconfig, fontconfig, openssl
+, lcms2, freetype, libpaper, jbig2dec, expat, libiconvOrEmpty
 , x11Support, x11 ? null
 , cupsSupport ? false, cups ? null
 , gnuFork ? true
@@ -8,7 +9,7 @@ assert x11Support -> x11 != null;
 assert cupsSupport -> cups != null;
 
 let
-  meta = {
+  meta_common = {
     homepage = "http://www.gnu.org/software/ghostscript/";
     description = "GNU Ghostscript, a PostScript interpreter";
 
@@ -34,25 +35,28 @@ let
       sha256 = "0zqa6ggbkdqiszsywgrra4ij0sddlmrfa50bx2mh568qid4ga0a2";
     };
 
-    inherit meta;
+    meta = meta_common;
     patches = [ ./purity.patch ];
   };
 
-  mainlineSrc = {
-    name = "ghostscript-9.05";
+  mainlineSrc = rec {
+    name = "ghostscript-9.06";
     src = fetchurl {
-      url = "http://downloads.ghostscript.com/public/ghostscript-9.05.tar.bz2";
-      sha256 = "1b6fi76x6pn9dmr9k9lh8kimn968dmh91k824fmm59d5ycm22h8g";
+      url = "http://downloads.ghostscript.com/public/${name}.tar.bz2";
+      sha256 = "014f10rxn4ihvcr1frby4szd1jvkrwvmdhnbivpp55c9fssx3b05";
     };
-    meta = meta // {
+    meta = meta_common // {
       homepage = "http://www.ghostscript.com/";
       description = "GPL Ghostscript, a PostScript interpreter";
     };
 
     preConfigure = ''
-      rm -R libpng jpeg lcms tiff freetype
+      rm -R libpng jpeg lcms{,2} tiff freetype jbig2dec expat jasper openjpeg
+
+      substituteInPlace base/unix-aux.mak --replace "INCLUDE=/usr/include" "INCLUDE=/no-such-path"
+      sed "s@if ( test -f \$(INCLUDE)[^ ]* )@if ( true )@" -i base/unix-aux.mak
     '';
-    patches = [ ./purity-9.05.patch ];
+    patches = [];
   };
 
   variant = if gnuFork then gnuForkSrc else mainlineSrc;
@@ -64,8 +68,8 @@ stdenv.mkDerivation rec {
 
   fonts = [
     (fetchurl {
-      url = "mirror://gnu/ghostscript/gnu-gs-fonts-std-6.0.tar.gz";
-      sha256 = "1lxr1y52r26qjif8kdqkfhsb5llakdcx3f5b9ppdyn59bb83ivsc";
+      url = "mirror://sourceforge/gs-fonts/ghostscript-fonts-std-8.11.tar.gz";
+      sha256 = "00f4l10xd826kak51wsmaz69szzm2wp8a41jasr4jblz25bg7dhf";
     })
     (fetchurl {
       url = "mirror://gnu/ghostscript/gnu-gs-fonts-other-6.0.tar.gz";
@@ -74,9 +78,14 @@ stdenv.mkDerivation rec {
     # ... add other fonts here
   ];
 
-  buildInputs = [libjpeg libpng libtiff zlib pkgconfig fontconfig openssl lcms]
-    ++ stdenv.lib.optionals x11Support [x11 freetype]
-    ++ stdenv.lib.optional cupsSupport cups;
+  buildInputs = [
+    libjpeg libpng libtiff zlib pkgconfig fontconfig openssl lcms2
+    libpaper jbig2dec expat
+  ] ++ stdenv.lib.optionals x11Support [x11 freetype]
+    ++ stdenv.lib.optional cupsSupport cups
+    ++ libiconvOrEmpty
+    # [] # maybe sometimes jpeg2000 support
+    ;
 
   CFLAGS = "-fPIC";
   NIX_LDFLAGS =
@@ -92,7 +101,7 @@ stdenv.mkDerivation rec {
     makeFlagsArray=(CUPSSERVERBIN=$out/lib/cups CUPSSERVERROOT=$out/etc/cups CUPSDATA=$out/share/cups)
   '' + stdenv.lib.optionalString (variant ? preConfigure) variant.preConfigure;
 
-  configureFlags =
+  configureFlags = [ "--with-system-libtiff" ] ++
     (if x11Support then [ "--with-x" ] else [ "--without-x" ]) ++
     (if cupsSupport then [ "--enable-cups" "--with-install-cups" ] else [ "--disable-cups" ]);
 
@@ -100,6 +109,7 @@ stdenv.mkDerivation rec {
 
   installTargets="install soinstall";
 
+  # ToDo: web says the fonts should be already included
   postInstall = ''
     for i in $fonts; do
       (cd $out/share/ghostscript && tar xvfz $i)
diff --git a/pkgs/misc/ghostscript/purity-9.05.patch b/pkgs/misc/ghostscript/purity-9.05.patch
deleted file mode 100644
index cae9df7110b..00000000000
--- a/pkgs/misc/ghostscript/purity-9.05.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git a/base/unix-aux.mak b/base/unix-aux.mak
-index 18745bc..0a67942 100644
---- a/base/unix-aux.mak
-+++ b/base/unix-aux.mak
-@@ -111,15 +111,15 @@ $(MKROMFS_XE): $(MKROMFS_XE)_$(SHARE_ZLIB) $(MAKEDIRS)
- # The "else true;" is required because Ultrix's implementation of sh -e
- # terminates execution of a command if any error occurs, even if the command
- # traps the error with ||.
--INCLUDE=/usr/include
-+INCLUDE=/no-such-path
- $(gconfig__h): $(UNIX_AUX_MAK) $(ECHOGS_XE)
- 	$(ECHOGS_XE) -w $(gconfig__h) -x 2f2a -s This file was generated automatically by unix-aux.mak. -s -x 2a2f
--	if ( test -f $(INCLUDE)/dirent.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_DIRENT_H; else true; fi
--	if ( test -f $(INCLUDE)/ndir.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_NDIR_H; else true; fi
--	if ( test -f $(INCLUDE)/sys/dir.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_DIR_H; else true; fi
--	if ( test -f $(INCLUDE)/sys/ndir.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_NDIR_H; else true; fi
--	if ( test -f $(INCLUDE)/sys/time.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 ifndef HAVE_SYS_TIME_H ; \
-+	if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_DIRENT_H; else true; fi
-+	if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_NDIR_H; else true; fi
-+	if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_DIR_H; else true; fi
-+	if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_NDIR_H; else true; fi
-+	if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 ifndef HAVE_SYS_TIME_H ; \
-              $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_TIME_H ; \
-              $(ECHOGS_XE) -a $(gconfig__h) -x 23 endif; else true; fi
--	if ( test -f $(INCLUDE)/sys/times.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_TIMES_H; else true; fi
-+	if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_TIMES_H; else true; fi
- 	if ( test -f $(JSRCDIR)/jmemsys.h); then true; else $(ECHOGS_XE) -a $(gconfig__h) -x 23 define DONT_HAVE_JMEMSYS_H; fi
diff --git a/pkgs/misc/themes/gnome-themes-standard/default.nix b/pkgs/misc/themes/gnome-themes-standard/default.nix
new file mode 100644
index 00000000000..f52b94138a4
--- /dev/null
+++ b/pkgs/misc/themes/gnome-themes-standard/default.nix
@@ -0,0 +1,15 @@
+{ stdenv, fetchurl, intltool, gtk3, librsvg, pkgconfig, pango, atk, gtk2, gdk_pixbuf }:
+stdenv.mkDerivation {
+  name = "gnome-themes-standard";
+  src = fetchurl {
+    url = "http://ftp.gnome.org/pub/GNOME/sources/gnome-themes-standard/3.7/gnome-themes-standard-3.7.92.tar.xz";
+    sha256 = "0a1ed83c07f57b5b45b8f3817ca0ca14feecb56de505243c086fb306c88da8de";
+  };
+  
+  buildInputs = [ intltool gtk3 librsvg pkgconfig pango atk gtk2 gdk_pixbuf ];
+
+  preConfigure = ''
+    cat ${gdk_pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache ${librsvg}/lib/gdk-pixbuf/loaders.cache > loaders.cache
+    export GDK_PIXBUF_MODULE_FILE=`readlink -e loaders.cache`
+  '';
+}
\ No newline at end of file
diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix
new file mode 100644
index 00000000000..da06eaec35c
--- /dev/null
+++ b/pkgs/misc/vim-plugins/default.nix
@@ -0,0 +1,170 @@
+{fetchurl, stdenv, python, cmake, vim}:
+
+/*
+About Vim and plugins
+=====================
+Let me tell you how Vim plugins work, so that you can decide on how to orginize
+your setup.
+
+typical plugin files:
+
+  plugin/P1.vim
+  autoload/P1.vim
+  ftplugin/xyz.vim
+  doc/plugin-documentation.txt
+  README(.md) (nowadays thanks to github)
+
+Traditionally plugins were installed into ~/.vim/* so it was your task to keep track
+of which files belong to what plugin. Now this problem is "fixed" by nix which
+assembles your profile for you.
+
+
+Vim offers the :h rtp setting which works for most plugins. Thus adding adding
+this to your .vimrc should make most plugins work:
+
+  set rtp+=~/.nix-profile/vim-plugins/YouCompleteMe
+  " or for p in ["YouCompleteMe"] | exec 'set rtp+=~/.nix-profile/vim-plugins/'.p | endfor
+
+Its what
+pathogen, vundle, vim-addon-manager (VAM) use.
+
+VAM's benefits:
+- works around after/* directories if they are used in non ~/.vim locations
+- allows activating plugins at runtime, eg when you need them. (works around
+  some au command hooks, eg required for TheNerdTree plugin)
+- VAM checkous out all sources (vim.sf.net, git, mercurial, ...)
+- runs :helptags on update/installation only. Obviously it cannot do that on
+  store paths.
+
+VAM is made up of
+- the code loading plugins
+- an optional pool (github.com/MarcWeber/vim-addon-manager-known-repositories)
+
+That pool probably is the best source to automatically derive plugin
+information from or to lookup about how to get data from www.vim.org.
+
+I'm not sure we should package them all. Most of them are not used much.
+You need your .vimrc anyway, and then VAM gets the job done ?
+
+How to install VAM? eg provide such a bash function:
+
+    vim-install-vam () {
+    mkdir -p ~/.vim/vim-addons && git clone --depth=1 git://github.com/MarcWeber/vim-addon-manager.git ~/.vim/vim-addons/vim-addon-manager && cat >> ~/.vimrc <<EOF
+    set nocompatible
+    set hidden
+    filetype indent plugin on | syn on
+    fun ActivateAddons()
+      let g:vim_addon_manager = {}
+      let g:vim_addon_manager.log_to_buf =1
+      set runtimepath+=~/.vim/vim-addons/vim-addon-manager
+      call vam#ActivateAddons([])
+    endf
+    call ActivateAddons()
+    EOF
+    }
+
+IMHO having no plugins listed might be better than having outdated ones.
+
+So which plugins to add here according to what Marc Weber thinks is best?
+complicated plugins requiring dependencies, such as YouCompleteMe.
+Then its best to symlink ~/.nix-profile/vim-plugins/YouCompleteMe to
+~/.vim/{vim-addons,bundle} or whatever plugin management solution you use.
+
+If you feel differently change the comments and proceed.
+*/
+
+let vimHelptags = path: ''
+  ${vim}/bin/vim -N -u NONE -i NONE -n -e -s -c "helptags ${path}" +quit!
+'';
+
+in
+
+{
+
+  #TODO :helptags should be run
+
+  vimAddonNix = {
+    # github.com/MarcWeber/vim-addon-nix provides some additional support for
+    # editing .nix files
+
+    # This is a placeholder, because I think you always should be using latest git version
+  };
+
+  YouCompleteMe = stdenv.mkDerivation {
+    # REGION AUTO UPDATE: { name="youcompleteme"; type="git"; url="git://github.com/Valloric/YouCompleteMe"; }
+    src = (fetchurl { url = "http://mawercer.de/~nix/repos/youcompleteme-git-97306.tar.bz2"; sha256 = "b9b892f5a723370c2034491dc72a4ca722c6cf1e5de4d60501141bba151bc719"; });
+    name = "youcompleteme-git-97306";
+    # END
+    buildInputs = [ python cmake ];
+
+    configurePhase = ":";
+
+    buildPhase = ''
+      set -x
+      target=$out/vim-plugins/YouCompleteMe
+      mkdir -p $target
+      cp -a ./ $target
+
+      mkdir $target/build
+      cd $target/build
+      cmake -G "Unix Makefiles" . $target/cpp -DPYTHON_LIBRARIES:PATH=${python}/lib/libpython2.7.so -DPYTHON_INCLUDE_DIR:PATH=${python}/include/python2.7
+      make -j -j''${NIX_BUILD_CORES} -l''${NIX_BUILD_CORES}}
+
+      ${vimHelptags "$out/vim-plugins/YouCompleteMe/doc"}
+    '';
+
+    # TODO: implement proper install phase rather than keeping everything in store
+    # TODO: support llvm based C completion, See README of git repository
+    installPhase = ":";
+
+    meta = {
+      description = "fastest non utf-8 aware word and C completion engine for Vim";
+      homepage = http://github.com/Valloric/YouCompleteMe;
+      license = stdenv.lib.licenses.gpl3;
+      maintainers = [stdenv.lib.maintainers.marcweber];
+      platforms = stdenv.lib.platforms.linux;
+    };
+  };
+
+  syntastic = stdenv.mkDerivation {
+    name = "vim-syntastic-3.0.0";
+   
+    src = fetchurl {
+      url = "https://github.com/scrooloose/syntastic/archive/3.0.0.tar.gz";
+      sha256 = "0nf69wpa8qa7xcfvywy2khmazs4dn1i2nal9qwjh2bzrbwbbkdyl";
+    };
+
+    buildPhase = "";
+
+    installPhase = ''
+      mkdir -p "$out/vim-plugins"
+      cp -R autoload "$out/vim-plugins"
+      cp -R doc "$out/vim-plugins"
+      cp -R plugin "$out/vim-plugins"
+      cp -R syntax_checkers "$out/vim-plugins"
+    '';
+  };
+
+  coffeeScript = stdenv.mkDerivation {
+    name = "vim-coffee-script-v002";
+
+    src = fetchurl {
+      url = "https://github.com/vim-scripts/vim-coffee-script/archive/v002.tar.gz";
+      sha256 = "1xln6i6jbbihcyp5bsdylr2146y41hmp2xf7wi001g2ymj1zdsc0";
+    };
+
+    buildPhase = "";
+
+    installPhase = ''
+      mkdir -p "$out/vim-plugins"
+      cp -R after "$out/vim-plugins"
+      cp -R compiler "$out/vim-plugins"
+      cp -R doc "$out/vim-plugins"
+      cp -R ftdetect "$out/vim-plugins"
+      cp -R ftplugin "$out/vim-plugins"
+      cp -R indent "$out/vim-plugins"
+      cp -R syntax "$out/vim-plugins"
+    '';
+  };
+}
+
diff --git a/pkgs/os-specific/linux/acpid/default.nix b/pkgs/os-specific/linux/acpid/default.nix
index fe1792478d6..7f3440d8f59 100644
--- a/pkgs/os-specific/linux/acpid/default.nix
+++ b/pkgs/os-specific/linux/acpid/default.nix
@@ -16,5 +16,6 @@ stdenv.mkDerivation rec {
     homepage = http://tedfelix.com/linux/acpid-netlink.html;
     description = "A daemon for delivering ACPI events to userspace programs";
     license = stdenv.lib.licenses.gpl2Plus;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/aufs-util/2.nix b/pkgs/os-specific/linux/aufs-util/2.nix
index 130cfd85ee7..e4968b92048 100644
--- a/pkgs/os-specific/linux/aufs-util/2.nix
+++ b/pkgs/os-specific/linux/aufs-util/2.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
   name = "aufs2-util-${version}-${kernelDev.version}";
 
   src = fetchurl {
-    url = "http://nixos.org/tarballs/aufs2-util-git-${version}.tar.bz2";
+    url = "http://tarballs.nixos.org/aufs2-util-git-${version}.tar.bz2";
     sha256 = "0ly0c3p8fjxqbk8k5rmm1a91wg8wcrvhi1lv4aawalkkk8rqbnwk";
   };
 
diff --git a/pkgs/os-specific/linux/aufs/2.nix b/pkgs/os-specific/linux/aufs/2.nix
index 87d16c113a5..a4a40823f7a 100644
--- a/pkgs/os-specific/linux/aufs/2.nix
+++ b/pkgs/os-specific/linux/aufs/2.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
   src = 
   if (builtins.lessThan (builtins.compareVersions kernelDev.version "2.6.35") 0) then
     fetchurl {
-      url = "http://nixos.org/tarballs/aufs2-standalone-git-${version}.tar.bz2";
+      url = "http://tarballs.nixos.org/aufs2-standalone-git-${version}.tar.bz2";
       sha256 = "1g4mw4qx2xzpygdwjiw36bkhfz1hi7wxx7w79n2h0lr5grzzdnd6";
     }
   else
diff --git a/pkgs/os-specific/linux/cryptsetup/default.nix b/pkgs/os-specific/linux/cryptsetup/default.nix
index 6d612f8cdbd..0eb4be30284 100644
--- a/pkgs/os-specific/linux/cryptsetup/default.nix
+++ b/pkgs/os-specific/linux/cryptsetup/default.nix
@@ -1,4 +1,8 @@
-{ stdenv, fetchurl, devicemapper, libgcrypt, libuuid, pkgconfig, popt }:
+{ stdenv, fetchurl, devicemapper, libgcrypt, libuuid, pkgconfig, popt
+, enablePython ? false, python ? null
+}:
+
+assert enablePython -> python != null;
 
 stdenv.mkDerivation rec {
   name = "cryptsetup-1.5.1";
@@ -8,9 +12,11 @@ stdenv.mkDerivation rec {
     sha256 = "0dib3nw6ifd7d7hr9k4iyaha3hz0pkzairqa38l3fndkr9w3zlhn";
   };
 
-  configureFlags = "--enable-cryptsetup-reencrypt";
+  configureFlags = [ "--enable-cryptsetup-reencrypt" ]
+                ++ stdenv.lib.optional enablePython "--enable-python";
 
-  buildInputs = [ devicemapper libgcrypt libuuid pkgconfig popt ];
+  buildInputs = [ devicemapper libgcrypt libuuid pkgconfig popt ]
+             ++ stdenv.lib.optional enablePython python;
 
   meta = {
     homepage = http://code.google.com/p/cryptsetup/;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.2.nix b/pkgs/os-specific/linux/kernel/linux-3.2.nix
index 9f16fc78b09..c07448b43b5 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.2.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.2.nix
@@ -240,7 +240,7 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.2.46";
+    version = "3.2.47";
 
     modDirVersion = version;
 
@@ -249,8 +249,8 @@ import ./generic.nix (
     '';
 
     src = fetchurl {
-      url = "mirror://kernel/linux/kernel/v3.0/linux-${version}.tar.xz";
-      sha256 = "1yxkkiay2a84113zjxyf680fz5l0ihvjq3fcik8hfibrb5x2rhgr";
+      url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
+      sha256 = "1554c7r32q87jxkkpggpgwg4rcc4zanahmrw30sg39krxbf2s7q1";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.9.nix b/pkgs/os-specific/linux/kernel/linux-3.9.nix
index 66ef05878bc..4a2a0c1d163 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.9.nix
@@ -253,7 +253,7 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.9.4";
+    version = "3.9.7";
     testing = false;
 
     preConfigure = ''
@@ -262,7 +262,7 @@ import ./generic.nix (
 
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v3.x/${if testing then "testing/" else ""}linux-${version}.tar.xz";
-      sha256 = "121n82731il7c329psa21xzg8yci7j4w3f2px6v2gh3z82ijkc4i";
+      sha256 = "1xgk13bj33wayrs2jfgb2vf4xfys3vm28ijaavpjgs2wlsav94lx";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/libselinux/default.nix b/pkgs/os-specific/linux/libselinux/default.nix
index 873065d5424..01935e76632 100644
--- a/pkgs/os-specific/linux/libselinux/default.nix
+++ b/pkgs/os-specific/linux/libselinux/default.nix
@@ -1,4 +1,10 @@
-{ stdenv, fetchurl, pkgconfig, libsepol, pcre }:
+{ stdenv, fetchurl, pkgconfig, libsepol, pcre
+, enablePython ? false, swig ? null, python ? null
+}:
+
+assert enablePython -> swig != null && python != null;
+
+with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "libselinux-${version}";
@@ -17,7 +23,8 @@ stdenv.mkDerivation rec {
 
   patches = [ ./fPIC.patch ]; # libsemanage seems to need -fPIC everywhere
 
-  buildInputs = [ pkgconfig libsepol pcre ];
+  buildInputs = [ pkgconfig libsepol pcre ]
+             ++ optionals enablePython [ swig python ];
 
   prePatch = ''
     tar xvf ${patch_src}
@@ -26,7 +33,12 @@ stdenv.mkDerivation rec {
     done
   '';
 
-  preInstall = '' makeFlags="$makeFlags PREFIX=$out DESTDIR=$out" '';
+  postPatch = optionalString enablePython ''
+    sed -i -e 's|\$(LIBDIR)/libsepol.a|${libsepol}/lib/libsepol.a|' src/Makefile
+  '';
+
+  installFlags = [ "PREFIX=$(out)" "DESTDIR=$(out)" "LIBSEPOLDIR=${libsepol}" ];
+  installTargets = [ "install" ] ++ optional enablePython "install-pywrap";
 
   meta = {
     inherit (libsepol.meta) homepage platforms maintainers;
diff --git a/pkgs/os-specific/linux/psmouse-alps/default.nix b/pkgs/os-specific/linux/psmouse-alps/default.nix
new file mode 100644
index 00000000000..834acd72ef2
--- /dev/null
+++ b/pkgs/os-specific/linux/psmouse-alps/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, kernelDev, zlib }:
+
+/* Only useful for kernels 3.2 to 3.5.
+   Fails to build in 3.8.
+   3.9 upstream already includes a proper alps driver for this */
+
+let
+  ver = "1.3";
+  bname = "psmouse-alps-${ver}";
+in
+stdenv.mkDerivation {
+  name = "psmouse-alps-${kernelDev.version}-${ver}";
+
+  src = fetchurl {
+    url = http://www.dahetral.com/public-download/alps-psmouse-dlkm-for-3-2-and-3-5/at_download/file;
+    name = "${bname}-alt.tar.bz2";
+    sha256 = "1ghr8xcyidz31isxbwrbcr9rvxi4ad2idwmb3byar9n2ig116cxp";
+  };
+
+  buildPhase = ''
+    cd src/${bname}/src
+    make -C ${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build \
+      SUBDIRS=`pwd` INSTALL_PATH=$out
+  '';
+
+  installPhase = ''
+    make -C ${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build \
+      INSTALL_MOD_PATH=$out SUBDIRS=`pwd` modules_install
+  '';
+      
+  meta = {
+    description = "ALPS dlkm driver with all known touchpads";
+    homepage = http://www.dahetral.com/public-download/alps-psmouse-dlkm-for-3-2-and-3-5/view;
+    license = "GPLv2";
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [viric];
+  };
+}
diff --git a/pkgs/os-specific/linux/qemu-kvm/default.nix b/pkgs/os-specific/linux/qemu-kvm/default.nix
index eeaeacd4660..2f93769d280 100644
--- a/pkgs/os-specific/linux/qemu-kvm/default.nix
+++ b/pkgs/os-specific/linux/qemu-kvm/default.nix
@@ -21,7 +21,10 @@ stdenv.mkDerivation rec {
 
   patches = [ ./fix-librt-check.patch ./fix-usb-passthrough.patch ];
 
-  postPatch = "patchShebangs .;"
+  postPatch = ''
+      patchShebangs .
+      sed '/qtest_add_func.*check_time/d' -i tests/rtc-test.c
+    '' # disable tests that meddle with system time, they seem to work bad, maybe due to newer glib
     + 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>'
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index 2a34600529d..e7184aa27b9 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -3,10 +3,11 @@
 , glib, kbd, libxslt, coreutils, libgcrypt, sysvtools, docbook_xsl
 }:
 
-assert stdenv.gcc.libc or null != null;
+assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
-  name = "systemd-203";
+  version = "203";
+  name = "systemd-${version}";
 
   src = fetchurl {
     url = "http://www.freedesktop.org/software/systemd/${name}.tar.xz";
@@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
     ] ++ stdenv.lib.optional stdenv.isArm ./libc-bug-accept4-arm.patch;
 
   buildInputs =
-    [ pkgconfig intltool gperf libcap dbus kmod xz pam acl
+    [ pkgconfig intltool gperf libcap dbus.libs kmod xz pam acl
       /* cryptsetup */ libuuid m4 glib libxslt libgcrypt docbook_xsl
     ];
 
@@ -125,6 +126,19 @@ stdenv.mkDerivation rec {
   # runtime; otherwise we can't and we need to reboot.
   passthru.interfaceVersion = 2;
 
+  passthru.headers = stdenv.mkDerivation {
+    name = "systemd-headers-${version}";
+    inherit src;
+
+    phases = [ "unpackPhase" "installPhase" ];
+
+    # some are needed by dbus.libs, which is needed for systemd :-)
+    installPhase = ''
+      mkdir -p "$out/include/systemd"
+      mv src/systemd/*.h "$out/include/systemd"
+    '';
+  };
+
   meta = {
     homepage = "http://www.freedesktop.org/wiki/Software/systemd";
     description = "A system and service manager for Linux";
diff --git a/pkgs/os-specific/linux/systemd/fix-tests-1.patch b/pkgs/os-specific/linux/systemd/fix-tests-1.patch
new file mode 100644
index 00000000000..14bb0fa2708
--- /dev/null
+++ b/pkgs/os-specific/linux/systemd/fix-tests-1.patch
@@ -0,0 +1,68 @@
+Signed-off-by: Ramkumar Ramachandra <artag...@gmail.com>
+---
+ Ramkumar Ramachandra wrote:
+ > $ ./test-id128
+ > random: a08ea8ed34594d4bbd953dd182ec86f9
+ > Assertion 'sd_id128_get_machine(&id) == 0' failed at
+ > src/test/test-id128.c:41, function main(). Aborting.
+ > [1]    8017 abort (core dumped)  ./test-id128
+ 
+ Okay, this test fails because I don't have a /etc/machine-id -- I
+ thought systemd is supposed to create it?  However, from the logic in
+ src/core/machine-id-setup.c, it looks like although open() is called
+ with O_CREAT on /etc/machine-id, systemd barfs if the file isn't
+ present.  How about changing this?
+
+ src/core/machine-id-setup.c |   12 +++++-------
+ src/test/test-id128.c       |    6 ++++--
+ 2 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/src/core/machine-id-setup.c b/src/core/machine-id-setup.c
+index 7f4c23b..3f21d58 100644
+--- a/src/core/machine-id-setup.c
++++ b/src/core/machine-id-setup.c
+@@ -168,12 +168,8 @@ int machine_id_setup(void) {
+                 writable = true;
+         else {
+                 fd = open("/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
+-                if (fd < 0) {
+-                        umask(m);
+-                        log_error("Cannot open /etc/machine-id: %m");
+-                        return -errno;
+-                }
+-
++                if (fd < 0)
++                        goto generate;
+                 writable = false;
+         }
+ 
+@@ -192,7 +188,9 @@ int machine_id_setup(void) {
+                 }
+         }
+ 
+-        /* Hmm, so, the id currently stored is not useful, then let's
++generate:
++        /* Hmm, so, either /etc/machine-id doesn't exist, the id
++         * currently stored is not useful, then let's
+          * generate one */
+ 
+         r = generate(id);
+diff --git a/src/test/test-id128.c b/src/test/test-id128.c
+index bfd743e..60902d0 100644
+--- a/src/test/test-id128.c
++++ b/src/test/test-id128.c
+@@ -38,8 +38,10 @@ int main(int argc, char *argv[]) {
+         assert_se(sd_id128_from_string(t, &id2) == 0);
+         assert_se(sd_id128_equal(id, id2));
+ 
+-        assert_se(sd_id128_get_machine(&id) == 0);
+-        printf("machine: %s\n", sd_id128_to_string(id, t));
++        if (sd_id128_get_machine(&id) < 0)
++                printf("machine: run systemd-machine-id-setup first\n");
++        else
++                printf("machine: %s\n", sd_id128_to_string(id, t));
+ 
+         assert_se(sd_id128_get_boot(&id) == 0);
+         printf("boot: %s\n", sd_id128_to_string(id, t));
+-- 
+1.7.8.1.362.g5d6df.dirty
diff --git a/pkgs/os-specific/linux/systemd/no-global-install.patch b/pkgs/os-specific/linux/systemd/no-global-install.patch
new file mode 100644
index 00000000000..6567251d57a
--- /dev/null
+++ b/pkgs/os-specific/linux/systemd/no-global-install.patch
@@ -0,0 +1,26 @@
+diff --git a/Makefile.am b/Makefile.am
+index 05bf582..aa16a7c 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2568,11 +2568,6 @@ endif
+ # "adm" and "wheel".
+ libsystemd-journal-install-hook:
+ 	libname=libsystemd-journal.so && $(move-to-rootlibdir)
+-	$(MKDIR_P) $(DESTDIR)/var/log/journal
+-	-chown 0:0 $(DESTDIR)/var/log/journal
+-	-chmod 755 $(DESTDIR)/var/log/journal
+-	-setfacl -nm g:adm:rx,d:g:adm:rx $(DESTDIR)/var/log/journal/
+-	-setfacl -nm g:wheel:rx,d:g:wheel:rx $(DESTDIR)/var/log/journal/
+ 
+ libsystemd-journal-uninstall-hook:
+ 	rm -f $(DESTDIR)$(rootlibdir)/libsystemd-journal.so*
+@@ -3676,9 +3671,6 @@ if HAVE_SYSV_COMPAT
+ sysvinit_DATA = \
+ 	docs/sysvinit/README
+ 
+-varlog_DATA = \
+-	docs/var-log/README
+-
+ docs/sysvinit/README: docs/sysvinit/README.in
+ 	$(SED_PROCESS)
+ 
diff --git a/pkgs/os-specific/linux/usbutils/default.nix b/pkgs/os-specific/linux/usbutils/default.nix
index 5af28876dc1..3956b5e04d0 100644
--- a/pkgs/os-specific/linux/usbutils/default.nix
+++ b/pkgs/os-specific/linux/usbutils/default.nix
@@ -4,7 +4,7 @@ let
 
   # Obtained from http://www.linux-usb.org/usb.ids.bz2.
   usbids = fetchurl {
-    url = http://nixos.org/tarballs/usb.ids.20120920.bz2;
+    url = http://tarballs.nixos.org/usb.ids.20120920.bz2;
     sha256 = "0sz860g7grf6kx22p49s6j8h85c69ymcw16a8110klzfl9hl9hli";
   };
 
diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix
index 8f441303c25..ec2c704cfb5 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/default.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/default.nix
@@ -5,13 +5,13 @@
 assert readlineSupport -> readline != null;
 
 stdenv.mkDerivation rec {
-  version = "1.1";
+  version = "2.0";
 
   name = "wpa_supplicant-${version}";
 
   src = fetchurl {
     url = "http://hostap.epitest.fi/releases/${name}.tar.gz";
-    sha256 = "00lyifj8cz7qyal6dy1dxbpk3g3bywvdarik8gbj9ds7zmfbwkd5";
+    sha256 = "02cy6wrs4nzm7wbq9mc1vby8lnj58k4sb10h718ks8mmzc4mc49c";
   };
 
   extraConfig =
diff --git a/pkgs/os-specific/linux/wpa_supplicant/libnl.patch b/pkgs/os-specific/linux/wpa_supplicant/libnl.patch
index ede6dad721c..477f8dd55f6 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/libnl.patch
+++ b/pkgs/os-specific/linux/wpa_supplicant/libnl.patch
@@ -5,7 +5,7 @@ diff -up wpa_supplicant-1.0-rc2/src/drivers/drivers.mak.foo wpa_supplicant-1.0-r
  ifdef CONFIG_LIBNL32
    DRV_LIBS += -lnl-3
    DRV_LIBS += -lnl-genl-3
--  DRV_CFLAGS += -DCONFIG_LIBNL20
+-  DRV_CFLAGS += -DCONFIG_LIBNL20 -I/usr/include/libnl3
 +  DRV_CFLAGS += -DCONFIG_LIBNL20 `pkg-config --cflags libnl-3.0`
  else
    ifdef CONFIG_LIBNL_TINY
diff --git a/pkgs/os-specific/linux/xf86-input-wacom/default.nix b/pkgs/os-specific/linux/xf86-input-wacom/default.nix
index 63e4fb1ca73..4350694c13a 100644
--- a/pkgs/os-specific/linux/xf86-input-wacom/default.nix
+++ b/pkgs/os-specific/linux/xf86-input-wacom/default.nix
@@ -3,11 +3,11 @@
 , ncurses, pkgconfig, randrproto, xorgserver, xproto, udev, libXinerama, pixman }:
 
 stdenv.mkDerivation rec {
-  name = "xf86-input-wacom-0.19.0";
+  name = "xf86-input-wacom-0.20.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/linuxwacom/${name}.tar.bz2";
-    sha256 = "1lkvhirjysx0d2154jrwqc2i8jrqdjrlzjv7grbnm2cg5vpg7n53";
+    sha256 = "1408zjqsakcyx6v81qwh4q7m49cc6vcaad54jaw8ycw4i832jvjq";
   };
 
   buildInputs = [ inputproto libX11 libXext libXi libXrandr libXrender
diff --git a/pkgs/os-specific/linux/xf86-video-nouveau/default.nix b/pkgs/os-specific/linux/xf86-video-nouveau/default.nix
index 876daa7a1ec..8ac5cdb6969 100644
--- a/pkgs/os-specific/linux/xf86-video-nouveau/default.nix
+++ b/pkgs/os-specific/linux/xf86-video-nouveau/default.nix
@@ -1,5 +1,5 @@
 { stdenv
-, fetchgit
+, fetchurl
 , autoconf
 , automake
 , libtool
@@ -8,28 +8,22 @@
 , libdrm
 , pkgconfig }:
 
-stdenv.mkDerivation {
-  name = "xf86-video-nouveau-2012-03-05";
+stdenv.mkDerivation rec {
+  name = "xf86-video-nouveau-1.0.7";
 
-  src = fetchgit {
-    url = git://anongit.freedesktop.org/nouveau/xf86-video-nouveau;
-    rev = "f5d1cd2cb6808838ae1a188cef888eaa9582c76d";
-    sha256 = "8c20e9ce7897fbd4c5097e4738e80ecca30e6326b758a13fc97f96ccc12fd7d9"; 
+  src = fetchurl {
+    url = "mirror://xorg/individual/driver/${name}.tar.bz2";
+    sha256 = "0cg1q9dz9ksfp593x707gr10s8p7z00zdws1r4lshg42w5ccd1yi";
   };
 
+
   buildInputs = [
-    autoconf
-    automake
-    libtool
     xorgserver xproto fontsproto xf86driproto renderproto videoproto pixman
     utilmacros
     libdrm
     pkgconfig
   ];
 
-  NIX_CFLAGS_COMPILE = "-I${pixman}/include/pixman-1";
-
-  preConfigure = "autoreconf -vfi";
 
   meta = {
     homepage = http://nouveau.freedesktop.org/wiki/;
diff --git a/pkgs/servers/dns/bind/default.nix b/pkgs/servers/dns/bind/default.nix
index 1df30e25491..4d256f92626 100644
--- a/pkgs/servers/dns/bind/default.nix
+++ b/pkgs/servers/dns/bind/default.nix
@@ -17,9 +17,21 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ openssl libtool perl libxml2 ];
 
-  /* Why --with-libtool? */
-  configureFlags = [ "--with-libtool" "--with-openssl=${openssl}"
-    "--localstatedir=/var" ];
+  configureFlags = [
+    "--localstatedir=/var"
+    "--with-libtool"
+    "--with-libxml2=${libxml2}"
+    "--with-openssl=${openssl}"
+    "--without-atf"
+    "--without-dlopen"
+    "--without-docbook-xsl"
+    "--without-gssapi"
+    "--without-idn"
+    "--without-idnlib"
+    "--without-pkcs11"
+    "--without-purify"
+    "--without-python"
+  ];
 
   meta = {
     homepage = "http://www.isc.org/software/bind";
diff --git a/pkgs/servers/http/apache-httpd/2.2.nix b/pkgs/servers/http/apache-httpd/2.2.nix
index a904cae56b1..450936d343c 100644
--- a/pkgs/servers/http/apache-httpd/2.2.nix
+++ b/pkgs/servers/http/apache-httpd/2.2.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = "-iquote ${apr}/include/apr-1";
 
   # Required for ‘pthread_cancel’.
-  NIX_LDFLAGS = "-lgcc_s";
+  NIX_LDFLAGS = (if stdenv.isDarwin then "" else "-lgcc_s");
 
   configureFlags = ''
     --with-z=${zlib}
@@ -65,10 +65,9 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Apache HTTPD, the world's most popular web server";
-    homepage = http://httpd.apache.org/;
-    license = "ASL2.0";
-
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.simons ];
+    homepage    = http://httpd.apache.org/;
+    license     = stdenv.lib.licenses.asl20;
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ simons lovek323 ];
   };
 }
diff --git a/pkgs/servers/monitoring/zabbix/2.0.nix b/pkgs/servers/monitoring/zabbix/2.0.nix
index 6b0a22962a3..fef5010218c 100644
--- a/pkgs/servers/monitoring/zabbix/2.0.nix
+++ b/pkgs/servers/monitoring/zabbix/2.0.nix
@@ -1,12 +1,15 @@
-{ stdenv, fetchurl, pkgconfig, postgresql, curl, openssl, zlib, gettext }:
+{ stdenv, fetchurl, pkgconfig, postgresql, curl, openssl, zlib, gettext
+, enableJabber ? false, iksemel ? null }:
+
+assert enableJabber -> iksemel != null;
 
 let
 
-  version = "2.0.4";
+  version = "2.0.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/zabbix/zabbix-${version}.tar.gz";
-    sha256 = "0l8038j6ldsv0ywrs2j69ybjl2zv4qw42791glqvcabjj8x24m3m";
+    sha256 = "1y7dp9rqxkn8ik7bvk2qysz3zp3r07kmax5avlf9jf1x7pkagps6";
   };
 
   preConfigure =
@@ -21,13 +24,20 @@ let
 in
 
 {
+  recurseForDerivations = true;
 
   server = stdenv.mkDerivation {
     name = "zabbix-${version}";
 
     inherit src preConfigure;
 
-    configureFlags = "--enable-agent --enable-server --with-postgresql --with-libcurl --with-gettext";
+    configureFlags = [
+      "--enable-agent"
+      "--enable-server"
+      "--with-postgresql"
+      "--with-libcurl"
+      "--with-gettext"
+    ] ++ stdenv.lib.optional enableJabber "--with-jabber=${iksemel}";
 
     buildInputs = [ pkgconfig postgresql curl openssl zlib ];
 
diff --git a/pkgs/servers/nosql/riak/1.3.1.nix b/pkgs/servers/nosql/riak/1.3.1.nix
new file mode 100644
index 00000000000..c71283570e0
--- /dev/null
+++ b/pkgs/servers/nosql/riak/1.3.1.nix
@@ -0,0 +1,64 @@
+{ stdenv, fetchurl, unzip, erlang }:
+
+let
+  srcs = {
+     riak = fetchurl {
+      url = "http://s3.amazonaws.com/downloads.basho.com/riak/1.3/1.3.1/riak-1.3.1.tar.gz";
+      sha256 = "a69093fc5df1b79f58645048b9571c755e00c3ca14dfd27f9f1cae2c6e628f01";
+    };
+     leveldb = fetchurl {
+      url = "https://github.com/basho/leveldb/archive/1.3.1.zip";
+      sha256 = "dc48ba2b44fca11888ea90695d385c494e1a3abd84a6b266b07fdc160ab2ef64";
+    };
+  };
+in
+stdenv.mkDerivation rec {
+  name = "riak-1.3.1";
+
+  buildInputs = [unzip erlang];
+
+  src = srcs.riak;
+
+  patches = [ ./riak-1.3.1.patch ./riak-admin-1.3.1.patch ];
+
+  postUnpack = ''
+    ln -sv ${srcs.leveldb} $sourceRoot/deps/eleveldb/c_src/leveldb.zip
+    pushd $sourceRoot/deps/eleveldb/c_src/
+    unzip leveldb.zip
+    mv leveldb-* leveldb
+    cd ../../
+    mkdir riaknostic/deps
+    cp -R lager riaknostic/deps
+    cp -R getopt riaknostic/deps
+    cp -R meck riaknostic/deps
+    popd
+    patchShebangs .
+  '';
+
+  buildPhase = ''
+    make rel
+  '';
+
+  doCheck = false;
+
+  installPhase = ''
+    mkdir $out
+    mv rel/riak/etc rel/riak/riak-etc
+    mkdir -p rel/riak/etc
+    mv rel/riak/riak-etc rel/riak/etc/riak
+    mv rel/riak/* $out
+  '';
+
+  meta = {
+    maintainers = stdenv.lib.maintainers.orbitz;
+    description = "Dynamo inspired NoSQL DB by Basho";
+    longDescription = ''
+      This patches the riak and riak-admin scripts to work better in Nix.
+      Rather than the scripts using their own location to determine where
+      the data, log, and etc directories should live, the scripts expect
+      RIAK_DATA_DIR, RIAK_LOG_DIR, and RIAK_ETC_DIR to be defined
+      and use those.
+    '';
+    platforms   = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/servers/nosql/riak/riak-1.3.1.patch b/pkgs/servers/nosql/riak/riak-1.3.1.patch
new file mode 100644
index 00000000000..e36bd31ab88
--- /dev/null
+++ b/pkgs/servers/nosql/riak/riak-1.3.1.patch
@@ -0,0 +1,64 @@
+--- a/rel/files/riak	2013-05-22 20:45:55.613299952 +0200
++++ b/rel/files/riak	2013-06-04 03:20:47.679943612 +0200
+@@ -13,33 +13,34 @@
+ fi
+ unset POSIX_SHELL # clear it so if we invoke other scripts, they run as ksh as well
+ 
++if [ -z "$RIAK_ETC_DIR" ]; then
++    echo "Must set RIAK_ETC_DIR"
++    exit 1
++fi
++
++if [ -z "$RIAK_LOG_DIR" ]; then
++    echo "Must set RIAK_LOG_DIR"
++    exit 1
++fi
++
++if [ -z "$RIAK_DATA_DIR" ]; then
++    echo "Must set RIAK_DATA_DIR"
++    exit 1
++fi
++
+ RUNNER_SCRIPT_DIR={{runner_script_dir}}
+ RUNNER_SCRIPT=${0##*/}
+ 
+ RUNNER_BASE_DIR={{runner_base_dir}}
+-RUNNER_ETC_DIR={{runner_etc_dir}}
++RUNNER_ETC_DIR=$RIAK_ETC_DIR
+ RUNNER_LIB_DIR={{platform_lib_dir}}
+-RUNNER_LOG_DIR={{runner_log_dir}}
++RUNNER_LOG_DIR=$RIAK_LOG_DIR
+ # Note the trailing slash on $PIPE_DIR/
+ PIPE_DIR={{pipe_dir}}
+-RUNNER_USER={{runner_user}}
+-PLATFORM_DATA_DIR={{platform_data_dir}}
++PLATFORM_DATA_DIR=$RIAK_DATA_DIR
+ SSL_DIST_CONFIG=$PLATFORM_DATA_DIR/ssl_distribution.args_file
+ RIAK_VERSION="git"
+ 
+-WHOAMI=$(whoami)
+-
+-# Make sure this script is running as the appropriate user
+-if ([ "$RUNNER_USER" ] && [ "x$WHOAMI" != "x$RUNNER_USER" ]); then
+-    type sudo > /dev/null 2>&1
+-    if [ $? -ne 0 ]; then
+-        echo "sudo doesn't appear to be installed and your EUID isn't $RUNNER_USER" 1>&2
+-        exit 1
+-    fi
+-    echo "Attempting to restart script through sudo -H -u $RUNNER_USER" >&2
+-    exec sudo -H -u $RUNNER_USER -i $RUNNER_SCRIPT_DIR/$RUNNER_SCRIPT $@
+-fi
+-
+ # Warn the user if ulimit -n is less than 4096
+ ULIMIT_F=`ulimit -n`
+ if [ "$ULIMIT_F" -lt 4096 ]; then
+@@ -48,9 +49,6 @@
+     echo "!!!!"
+ fi
+ 
+-# Make sure CWD is set to runner base dir
+-cd $RUNNER_BASE_DIR
+-
+ # Make sure log directory exists
+ mkdir -p $RUNNER_LOG_DIR
+ 
diff --git a/pkgs/servers/nosql/riak/riak-admin-1.3.1.patch b/pkgs/servers/nosql/riak/riak-admin-1.3.1.patch
new file mode 100644
index 00000000000..9c87a632994
--- /dev/null
+++ b/pkgs/servers/nosql/riak/riak-admin-1.3.1.patch
@@ -0,0 +1,52 @@
+--- a/rel/files/riak-admin	2013-05-22 20:45:55.613299952 +0200
++++ b/rel/files/riak-admin	2013-06-04 03:30:00.101604175 +0200
+@@ -11,31 +11,31 @@
+ fi
+ unset POSIX_SHELL # clear it so if we invoke other scripts, they run as ksh as well
+ 
++
++if [ -z "$RIAK_ETC_DIR" ]; then
++    echo "Must set RIAK_ETC_DIR"
++    exit 1
++fi
++
++if [ -z "$RIAK_LOG_DIR" ]; then
++    echo "Must set RIAK_LOG_DIR"
++    exit 1
++fi
++
++if [ -z "$RIAK_DATA_DIR" ]; then
++    echo "Must set RIAK_DATA_DIR"
++    exit 1
++fi
++
+ RUNNER_SCRIPT_DIR={{runner_script_dir}}
+ RUNNER_SCRIPT=${0##*/}
+ 
+ RUNNER_BASE_DIR={{runner_base_dir}}
+-RUNNER_ETC_DIR={{runner_etc_dir}}
++RUNNER_ETC_DIR=$RIAK_ETC_DIR
+ RUNNER_LIB_DIR={{platform_lib_dir}}
+-RUNNER_LOG_DIR={{runner_log_dir}}
++RUNNER_LOG_DIR=$RIAK_LOG_DIR
+ RUNNER_USER={{runner_user}}
+ 
+-WHOAMI=$(whoami)
+-
+-# Make sure this script is running as the appropriate user
+-if ([ "$RUNNER_USER" ] && [ "x$WHOAMI" != "x$RUNNER_USER" ]); then
+-    type sudo > /dev/null 2>&1
+-    if [ $? -ne 0 ]; then
+-        echo "sudo doesn't appear to be installed and your EUID isn't $RUNNER_USER" 1>&2
+-        exit 1
+-    fi
+-    echo "Attempting to restart script through sudo -H -u $RUNNER_USER" >&2
+-    exec sudo -H -u $RUNNER_USER -i $RUNNER_SCRIPT_DIR/$RUNNER_SCRIPT $@
+-fi
+-
+-# Make sure CWD is set to runner base dir
+-cd $RUNNER_BASE_DIR
+-
+ # Extract the target node name from node.args
+ NAME_ARG=`egrep "^ *-s?name" $RUNNER_ETC_DIR/vm.args`
+ if [ -z "$NAME_ARG" ]; then
diff --git a/pkgs/servers/shishi/default.nix b/pkgs/servers/shishi/default.nix
index db6f94d3826..a5d31ca354d 100644
--- a/pkgs/servers/shishi/default.nix
+++ b/pkgs/servers/shishi/default.nix
@@ -12,10 +12,17 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libtasn1 libgcrypt gnutls ] ;
 
+  NIX_CFLAGS_COMPILE
+    = stdenv.lib.optionalString stdenv.isDarwin "-DBIND_8_COMPAT";
+
   doCheck = true;
 
   meta = {
     description = "GNU Shishi, free implementation of the Kerberos 5 network security system";
+    homepage    = http://www.gnu.org/software/shishi/;
+    license     = stdenv.lib.licenses.gpl3Plus;
+    maintainers = with stdenv.lib.maintainers; [ bjg lovek323 ];
+    platforms   = stdenv.lib.platforms.all;
 
     longDescription =
       '' GNU Shishi is an implementation of the Kerberos 5 network
@@ -28,11 +35,5 @@ stdenv.mkDerivation rec {
          users to acquire and manage tickets (and more).  The server
          side, a Key Distribution Center, is implemented by `shishid'.
       '';
-
-    homepage = http://www.gnu.org/software/shishi/;
-    license = "GPLv3+";
-
-    maintainers = [ stdenv.lib.maintainers.bjg ];
-    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 1d8ff6d19a8..18a24100851 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -7,6 +7,8 @@ let
 
   xorg = rec {
 
+  inherit pixman;
+
   applewmproto = (stdenv.mkDerivation ((if overrides ? applewmproto then overrides.applewmproto else x: x) {
     name = "applewmproto-1.4.2";
     builder = ./builder.sh;
@@ -16,7 +18,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   bdftopcf = (stdenv.mkDerivation ((if overrides ? bdftopcf then overrides.bdftopcf else x: x) {
     name = "bdftopcf-1.0.3";
     builder = ./builder.sh;
@@ -26,7 +28,7 @@ let
     };
     buildInputs = [pkgconfig libXfont ];
   })) // {inherit libXfont ;};
-    
+
   bigreqsproto = (stdenv.mkDerivation ((if overrides ? bigreqsproto then overrides.bigreqsproto else x: x) {
     name = "bigreqsproto-1.1.2";
     builder = ./builder.sh;
@@ -36,7 +38,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   compositeproto = (stdenv.mkDerivation ((if overrides ? compositeproto then overrides.compositeproto else x: x) {
     name = "compositeproto-0.4.2";
     builder = ./builder.sh;
@@ -46,7 +48,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   damageproto = (stdenv.mkDerivation ((if overrides ? damageproto then overrides.damageproto else x: x) {
     name = "damageproto-1.2.1";
     builder = ./builder.sh;
@@ -56,7 +58,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   dmxproto = (stdenv.mkDerivation ((if overrides ? dmxproto then overrides.dmxproto else x: x) {
     name = "dmxproto-2.3.1";
     builder = ./builder.sh;
@@ -66,7 +68,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   dri2proto = (stdenv.mkDerivation ((if overrides ? dri2proto then overrides.dri2proto else x: x) {
     name = "dri2proto-2.8";
     builder = ./builder.sh;
@@ -76,7 +78,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   encodings = (stdenv.mkDerivation ((if overrides ? encodings then overrides.encodings else x: x) {
     name = "encodings-1.0.4";
     builder = ./builder.sh;
@@ -86,7 +88,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   fixesproto = (stdenv.mkDerivation ((if overrides ? fixesproto then overrides.fixesproto else x: x) {
     name = "fixesproto-5.0";
     builder = ./builder.sh;
@@ -96,7 +98,7 @@ let
     };
     buildInputs = [pkgconfig xextproto ];
   })) // {inherit xextproto ;};
-    
+
   fontadobe100dpi = (stdenv.mkDerivation ((if overrides ? fontadobe100dpi then overrides.fontadobe100dpi else x: x) {
     name = "font-adobe-100dpi-1.0.3";
     builder = ./builder.sh;
@@ -106,7 +108,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
-    
+
   fontadobe75dpi = (stdenv.mkDerivation ((if overrides ? fontadobe75dpi then overrides.fontadobe75dpi else x: x) {
     name = "font-adobe-75dpi-1.0.3";
     builder = ./builder.sh;
@@ -116,7 +118,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
-    
+
   fontadobeutopia100dpi = (stdenv.mkDerivation ((if overrides ? fontadobeutopia100dpi then overrides.fontadobeutopia100dpi else x: x) {
     name = "font-adobe-utopia-100dpi-1.0.4";
     builder = ./builder.sh;
@@ -126,7 +128,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
-    
+
   fontadobeutopia75dpi = (stdenv.mkDerivation ((if overrides ? fontadobeutopia75dpi then overrides.fontadobeutopia75dpi else x: x) {
     name = "font-adobe-utopia-75dpi-1.0.4";
     builder = ./builder.sh;
@@ -136,7 +138,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
-    
+
   fontadobeutopiatype1 = (stdenv.mkDerivation ((if overrides ? fontadobeutopiatype1 then overrides.fontadobeutopiatype1 else x: x) {
     name = "font-adobe-utopia-type1-1.0.4";
     builder = ./builder.sh;
@@ -146,7 +148,7 @@ let
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit mkfontdir mkfontscale ;};
-    
+
   fontalias = (stdenv.mkDerivation ((if overrides ? fontalias then overrides.fontalias else x: x) {
     name = "font-alias-1.0.3";
     builder = ./builder.sh;
@@ -156,7 +158,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   fontarabicmisc = (stdenv.mkDerivation ((if overrides ? fontarabicmisc then overrides.fontarabicmisc else x: x) {
     name = "font-arabic-misc-1.0.3";
     builder = ./builder.sh;
@@ -166,7 +168,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf mkfontdir ;};
-    
+
   fontbh100dpi = (stdenv.mkDerivation ((if overrides ? fontbh100dpi then overrides.fontbh100dpi else x: x) {
     name = "font-bh-100dpi-1.0.3";
     builder = ./builder.sh;
@@ -176,7 +178,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
-    
+
   fontbh75dpi = (stdenv.mkDerivation ((if overrides ? fontbh75dpi then overrides.fontbh75dpi else x: x) {
     name = "font-bh-75dpi-1.0.3";
     builder = ./builder.sh;
@@ -186,7 +188,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
-    
+
   fontbhlucidatypewriter100dpi = (stdenv.mkDerivation ((if overrides ? fontbhlucidatypewriter100dpi then overrides.fontbhlucidatypewriter100dpi else x: x) {
     name = "font-bh-lucidatypewriter-100dpi-1.0.3";
     builder = ./builder.sh;
@@ -196,7 +198,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
-    
+
   fontbhlucidatypewriter75dpi = (stdenv.mkDerivation ((if overrides ? fontbhlucidatypewriter75dpi then overrides.fontbhlucidatypewriter75dpi else x: x) {
     name = "font-bh-lucidatypewriter-75dpi-1.0.3";
     builder = ./builder.sh;
@@ -206,7 +208,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
-    
+
   fontbhttf = (stdenv.mkDerivation ((if overrides ? fontbhttf then overrides.fontbhttf else x: x) {
     name = "font-bh-ttf-1.0.3";
     builder = ./builder.sh;
@@ -216,7 +218,7 @@ let
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit mkfontdir mkfontscale ;};
-    
+
   fontbhtype1 = (stdenv.mkDerivation ((if overrides ? fontbhtype1 then overrides.fontbhtype1 else x: x) {
     name = "font-bh-type1-1.0.3";
     builder = ./builder.sh;
@@ -226,7 +228,7 @@ let
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit mkfontdir mkfontscale ;};
-    
+
   fontbitstream100dpi = (stdenv.mkDerivation ((if overrides ? fontbitstream100dpi then overrides.fontbitstream100dpi else x: x) {
     name = "font-bitstream-100dpi-1.0.3";
     builder = ./builder.sh;
@@ -236,7 +238,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf mkfontdir ;};
-    
+
   fontbitstream75dpi = (stdenv.mkDerivation ((if overrides ? fontbitstream75dpi then overrides.fontbitstream75dpi else x: x) {
     name = "font-bitstream-75dpi-1.0.3";
     builder = ./builder.sh;
@@ -246,7 +248,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf mkfontdir ;};
-    
+
   fontbitstreamtype1 = (stdenv.mkDerivation ((if overrides ? fontbitstreamtype1 then overrides.fontbitstreamtype1 else x: x) {
     name = "font-bitstream-type1-1.0.3";
     builder = ./builder.sh;
@@ -256,7 +258,7 @@ let
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit mkfontdir mkfontscale ;};
-    
+
   fontcronyxcyrillic = (stdenv.mkDerivation ((if overrides ? fontcronyxcyrillic then overrides.fontcronyxcyrillic else x: x) {
     name = "font-cronyx-cyrillic-1.0.3";
     builder = ./builder.sh;
@@ -266,7 +268,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf mkfontdir ;};
-    
+
   fontcursormisc = (stdenv.mkDerivation ((if overrides ? fontcursormisc then overrides.fontcursormisc else x: x) {
     name = "font-cursor-misc-1.0.3";
     builder = ./builder.sh;
@@ -276,7 +278,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf mkfontdir ;};
-    
+
   fontdaewoomisc = (stdenv.mkDerivation ((if overrides ? fontdaewoomisc then overrides.fontdaewoomisc else x: x) {
     name = "font-daewoo-misc-1.0.3";
     builder = ./builder.sh;
@@ -286,7 +288,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf mkfontdir ;};
-    
+
   fontdecmisc = (stdenv.mkDerivation ((if overrides ? fontdecmisc then overrides.fontdecmisc else x: x) {
     name = "font-dec-misc-1.0.3";
     builder = ./builder.sh;
@@ -296,7 +298,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf mkfontdir ;};
-    
+
   fontibmtype1 = (stdenv.mkDerivation ((if overrides ? fontibmtype1 then overrides.fontibmtype1 else x: x) {
     name = "font-ibm-type1-1.0.3";
     builder = ./builder.sh;
@@ -306,7 +308,7 @@ let
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit mkfontdir mkfontscale ;};
-    
+
   fontisasmisc = (stdenv.mkDerivation ((if overrides ? fontisasmisc then overrides.fontisasmisc else x: x) {
     name = "font-isas-misc-1.0.3";
     builder = ./builder.sh;
@@ -316,7 +318,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf mkfontdir ;};
-    
+
   fontjismisc = (stdenv.mkDerivation ((if overrides ? fontjismisc then overrides.fontjismisc else x: x) {
     name = "font-jis-misc-1.0.3";
     builder = ./builder.sh;
@@ -326,7 +328,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf mkfontdir ;};
-    
+
   fontmicromisc = (stdenv.mkDerivation ((if overrides ? fontmicromisc then overrides.fontmicromisc else x: x) {
     name = "font-micro-misc-1.0.3";
     builder = ./builder.sh;
@@ -336,7 +338,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf mkfontdir ;};
-    
+
   fontmisccyrillic = (stdenv.mkDerivation ((if overrides ? fontmisccyrillic then overrides.fontmisccyrillic else x: x) {
     name = "font-misc-cyrillic-1.0.3";
     builder = ./builder.sh;
@@ -346,7 +348,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf mkfontdir ;};
-    
+
   fontmiscethiopic = (stdenv.mkDerivation ((if overrides ? fontmiscethiopic then overrides.fontmiscethiopic else x: x) {
     name = "font-misc-ethiopic-1.0.3";
     builder = ./builder.sh;
@@ -356,7 +358,7 @@ let
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit mkfontdir mkfontscale ;};
-    
+
   fontmiscmeltho = (stdenv.mkDerivation ((if overrides ? fontmiscmeltho then overrides.fontmiscmeltho else x: x) {
     name = "font-misc-meltho-1.0.3";
     builder = ./builder.sh;
@@ -366,7 +368,7 @@ let
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit mkfontdir mkfontscale ;};
-    
+
   fontmiscmisc = (stdenv.mkDerivation ((if overrides ? fontmiscmisc then overrides.fontmiscmisc else x: x) {
     name = "font-misc-misc-1.1.2";
     builder = ./builder.sh;
@@ -376,7 +378,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
-    
+
   fontmuttmisc = (stdenv.mkDerivation ((if overrides ? fontmuttmisc then overrides.fontmuttmisc else x: x) {
     name = "font-mutt-misc-1.0.3";
     builder = ./builder.sh;
@@ -386,7 +388,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf mkfontdir ;};
-    
+
   fontschumachermisc = (stdenv.mkDerivation ((if overrides ? fontschumachermisc then overrides.fontschumachermisc else x: x) {
     name = "font-schumacher-misc-1.1.2";
     builder = ./builder.sh;
@@ -396,7 +398,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf fontutil mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf fontutil mkfontdir mkfontscale ;};
-    
+
   fontscreencyrillic = (stdenv.mkDerivation ((if overrides ? fontscreencyrillic then overrides.fontscreencyrillic else x: x) {
     name = "font-screen-cyrillic-1.0.4";
     builder = ./builder.sh;
@@ -406,7 +408,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf mkfontdir ;};
-    
+
   fontsonymisc = (stdenv.mkDerivation ((if overrides ? fontsonymisc then overrides.fontsonymisc else x: x) {
     name = "font-sony-misc-1.0.3";
     builder = ./builder.sh;
@@ -416,7 +418,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf mkfontdir ;};
-    
+
   fontsproto = (stdenv.mkDerivation ((if overrides ? fontsproto then overrides.fontsproto else x: x) {
     name = "fontsproto-2.1.2";
     builder = ./builder.sh;
@@ -426,7 +428,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   fontsunmisc = (stdenv.mkDerivation ((if overrides ? fontsunmisc then overrides.fontsunmisc else x: x) {
     name = "font-sun-misc-1.0.3";
     builder = ./builder.sh;
@@ -436,7 +438,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf mkfontdir ;};
-    
+
   fontutil = (stdenv.mkDerivation ((if overrides ? fontutil then overrides.fontutil else x: x) {
     name = "font-util-1.3.0";
     builder = ./builder.sh;
@@ -446,7 +448,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   fontwinitzkicyrillic = (stdenv.mkDerivation ((if overrides ? fontwinitzkicyrillic then overrides.fontwinitzkicyrillic else x: x) {
     name = "font-winitzki-cyrillic-1.0.3";
     builder = ./builder.sh;
@@ -456,7 +458,7 @@ let
     };
     buildInputs = [pkgconfig bdftopcf mkfontdir ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit bdftopcf mkfontdir ;};
-    
+
   fontxfree86type1 = (stdenv.mkDerivation ((if overrides ? fontxfree86type1 then overrides.fontxfree86type1 else x: x) {
     name = "font-xfree86-type1-1.0.4";
     builder = ./builder.sh;
@@ -466,7 +468,7 @@ let
     };
     buildInputs = [pkgconfig mkfontdir mkfontscale ]; configureFlags = "--with-fontrootdir=$(out)/lib/X11/fonts"; 
   })) // {inherit mkfontdir mkfontscale ;};
-    
+
   gccmakedep = (stdenv.mkDerivation ((if overrides ? gccmakedep then overrides.gccmakedep else x: x) {
     name = "gccmakedep-1.0.2";
     builder = ./builder.sh;
@@ -476,7 +478,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   glproto = (stdenv.mkDerivation ((if overrides ? glproto then overrides.glproto else x: x) {
     name = "glproto-1.4.16";
     builder = ./builder.sh;
@@ -486,7 +488,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   iceauth = (stdenv.mkDerivation ((if overrides ? iceauth then overrides.iceauth else x: x) {
     name = "iceauth-1.0.5";
     builder = ./builder.sh;
@@ -496,7 +498,7 @@ let
     };
     buildInputs = [pkgconfig libICE xproto ];
   })) // {inherit libICE xproto ;};
-    
+
   imake = (stdenv.mkDerivation ((if overrides ? imake then overrides.imake else x: x) {
     name = "imake-1.0.5";
     builder = ./builder.sh;
@@ -506,17 +508,17 @@ let
     };
     buildInputs = [pkgconfig xproto ];
   })) // {inherit xproto ;};
-    
+
   inputproto = (stdenv.mkDerivation ((if overrides ? inputproto then overrides.inputproto else x: x) {
-    name = "inputproto-2.2";
+    name = "inputproto-2.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/inputproto-2.2.tar.bz2;
-      sha256 = "1c5wqamfsd8g5i8kya5pjfmcac8q5zq1l3vclh6p96f24nmicxfy";
+      url = mirror://xorg/individual/proto/inputproto-2.3.tar.bz2;
+      sha256 = "0by3aa8i1gki6i904i34vlrymv5p8il05gr83sf8x7v9ys9v29kx";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   kbproto = (stdenv.mkDerivation ((if overrides ? kbproto then overrides.kbproto else x: x) {
     name = "kbproto-1.0.6";
     builder = ./builder.sh;
@@ -526,7 +528,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   libAppleWM = (stdenv.mkDerivation ((if overrides ? libAppleWM then overrides.libAppleWM else x: x) {
     name = "libAppleWM-1.4.1";
     builder = ./builder.sh;
@@ -536,17 +538,17 @@ let
     };
     buildInputs = [pkgconfig applewmproto libX11 libXext xextproto ];
   })) // {inherit applewmproto libX11 libXext xextproto ;};
-    
+
   libFS = (stdenv.mkDerivation ((if overrides ? libFS then overrides.libFS else x: x) {
-    name = "libFS-1.0.4";
+    name = "libFS-1.0.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libFS-1.0.4.tar.bz2;
-      sha256 = "05c3bqgn5m7j4kx8wvy0p36faq6f9jv5yq12m6033m4lflg7cwvh";
+      url = mirror://xorg/individual/lib/libFS-1.0.5.tar.bz2;
+      sha256 = "01v1z6hy702pcxz89kqb84w9gjjrvnjqsxc2zzvswlw0vl2k1sr2";
     };
     buildInputs = [pkgconfig fontsproto xproto xtrans ];
   })) // {inherit fontsproto xproto xtrans ;};
-    
+
   libICE = (stdenv.mkDerivation ((if overrides ? libICE then overrides.libICE else x: x) {
     name = "libICE-1.0.8";
     builder = ./builder.sh;
@@ -556,7 +558,7 @@ let
     };
     buildInputs = [pkgconfig xproto xtrans ];
   })) // {inherit xproto xtrans ;};
-    
+
   libSM = (stdenv.mkDerivation ((if overrides ? libSM then overrides.libSM else x: x) {
     name = "libSM-1.2.1";
     builder = ./builder.sh;
@@ -566,7 +568,7 @@ let
     };
     buildInputs = [pkgconfig libICE libuuid xproto xtrans ];
   })) // {inherit libICE libuuid xproto xtrans ;};
-    
+
   libWindowsWM = (stdenv.mkDerivation ((if overrides ? libWindowsWM then overrides.libWindowsWM else x: x) {
     name = "libWindowsWM-1.0.1";
     builder = ./builder.sh;
@@ -576,18 +578,18 @@ let
     };
     buildInputs = [pkgconfig windowswmproto libX11 libXext xextproto ];
   })) // {inherit windowswmproto libX11 libXext xextproto ;};
-    
+
   libX11 = (stdenvMulti.mkDerivation ((if overrides ? libX11 then overrides.libX11 else x: x) {
-    name = "libX11-1.5.0";
+    name = "libX11-1.6.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libX11-1.5.0.tar.bz2;
-      sha256 = "11jdpl15bxwpwv0knpkh990s8jvlybng3dx477pkrz1bx7byz0n3";
+      url = mirror://xorg/individual/lib/libX11-1.6.0.tar.bz2;
+      sha256 = "1yhrf36is2f2h28x8wjd87wmdhslmzg06jg1gwq55hiy6h9184sk";
     };
     outputs = [ "dev" "out" "man" ];
     buildInputs = [pkgconfig inputproto kbproto libxcb xextproto xf86bigfontproto xproto xtrans ];
   })) // {inherit inputproto kbproto libxcb xextproto xf86bigfontproto xproto xtrans ;};
-    
+
   libXScrnSaver = (stdenv.mkDerivation ((if overrides ? libXScrnSaver then overrides.libXScrnSaver else x: x) {
     name = "libXScrnSaver-1.2.2";
     builder = ./builder.sh;
@@ -597,7 +599,7 @@ let
     };
     buildInputs = [pkgconfig scrnsaverproto libX11 libXext xextproto ];
   })) // {inherit scrnsaverproto libX11 libXext xextproto ;};
-    
+
   libXau = (stdenvMulti.mkDerivation ((if overrides ? libXau then overrides.libXau else x: x) {
     name = "libXau-1.0.7";
     builder = ./builder.sh;
@@ -608,7 +610,7 @@ let
     outputs = [ "dev" "out" "man" ];
     buildInputs = [pkgconfig xproto ];
   })) // {inherit xproto ;};
-    
+
   libXaw = (stdenv.mkDerivation ((if overrides ? libXaw then overrides.libXaw else x: x) {
     name = "libXaw-1.0.11";
     builder = ./builder.sh;
@@ -618,7 +620,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libXext xextproto libXmu libXpm xproto libXt ];
   })) // {inherit libX11 libXext xextproto libXmu libXpm xproto libXt ;};
-    
+
   libXcomposite = (stdenvMulti.mkDerivation ((if overrides ? libXcomposite then overrides.libXcomposite else x: x) {
     name = "libXcomposite-0.4.3";
     builder = ./builder.sh;
@@ -629,17 +631,17 @@ let
     outputs = [ "dev" "out" "man" ];
     buildInputs = [pkgconfig compositeproto libX11 libXfixes xproto ];
   })) // {inherit compositeproto libX11 libXfixes xproto ;};
-    
+
   libXcursor = (stdenv.mkDerivation ((if overrides ? libXcursor then overrides.libXcursor else x: x) {
-    name = "libXcursor-1.1.13";
+    name = "libXcursor-1.1.14";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXcursor-1.1.13.tar.bz2;
-      sha256 = "13xd1dyb06gwdwb0bxb22fkgdlmis6wrljm2xk6fhz0v9bg2g27p";
+      url = mirror://xorg/individual/lib/libXcursor-1.1.14.tar.bz2;
+      sha256 = "1prkdicl5y5yx32h1azh6gjfbijvjp415javv8dsakd13jrarilv";
     };
     buildInputs = [pkgconfig fixesproto libX11 libXfixes xproto libXrender ];
   })) // {inherit fixesproto libX11 libXfixes xproto libXrender ;};
-    
+
   libXdamage = (stdenv.mkDerivation ((if overrides ? libXdamage then overrides.libXdamage else x: x) {
     name = "libXdamage-1.1.3";
     builder = ./builder.sh;
@@ -649,7 +651,7 @@ let
     };
     buildInputs = [pkgconfig damageproto fixesproto libX11 xextproto libXfixes xproto ];
   })) // {inherit damageproto fixesproto libX11 xextproto libXfixes xproto ;};
-    
+
   libXdmcp = (stdenvMulti.mkDerivation ((if overrides ? libXdmcp then overrides.libXdmcp else x: x) {
     name = "libXdmcp-1.1.1";
     builder = ./builder.sh;
@@ -660,29 +662,29 @@ let
     outputs = [ "dev" "out" "doc" ];
     buildInputs = [pkgconfig xproto ];
   })) // {inherit xproto ;};
-    
+
   libXext = (stdenvMulti.mkDerivation ((if overrides ? libXext then overrides.libXext else x: x) {
-    name = "libXext-1.3.1";
+    name = "libXext-1.3.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXext-1.3.1.tar.bz2;
-      sha256 = "0ng8clhn7srbkadxjc7ih3z3v27v9ny0aa0dqkgddgxpgrhrq8jn";
+      url = mirror://xorg/individual/lib/libXext-1.3.2.tar.bz2;
+      sha256 = "1q1j0kjyhmy24wqr6mdkrrciffyqhmc8vn95za2w1ka6qrdhfagq";
     };
     outputs = [ "dev" "out" "man" "doc" ];
     buildInputs = [pkgconfig libX11 xextproto xproto ];
   })) // {inherit libX11 xextproto xproto ;};
-    
+
   libXfixes = (stdenvMulti.mkDerivation ((if overrides ? libXfixes then overrides.libXfixes else x: x) {
-    name = "libXfixes-5.0";
+    name = "libXfixes-5.0.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXfixes-5.0.tar.bz2;
-      sha256 = "1qx2rmwhmca2n7rgafy0arp15k5vwhdhhh6v6mx76hlj29328yjk";
+      url = mirror://xorg/individual/lib/libXfixes-5.0.1.tar.bz2;
+      sha256 = "0rs7qgzr6dpr62db7sd91c1b47hzhzfr010qwnpcm8sg122w1gk3";
     };
     outputs = [ "dev" "out" "man" ];
     buildInputs = [pkgconfig fixesproto libX11 xextproto xproto ];
   })) // {inherit fixesproto libX11 xextproto xproto ;};
-    
+
   libXfont = (stdenv.mkDerivation ((if overrides ? libXfont then overrides.libXfont else x: x) {
     name = "libXfont-1.4.5";
     builder = ./builder.sh;
@@ -692,7 +694,7 @@ let
     };
     buildInputs = [pkgconfig libfontenc fontsproto freetype xproto xtrans zlib ];
   })) // {inherit libfontenc fontsproto freetype xproto xtrans zlib ;};
-    
+
   libXft = (stdenvMulti.mkDerivation ((if overrides ? libXft then overrides.libXft else x: x) {
     name = "libXft-2.3.1";
     builder = ./builder.sh;
@@ -703,29 +705,29 @@ let
     outputs = [ "dev" "out" "man" ];
     buildInputs = [pkgconfig fontconfig freetype libX11 xproto libXrender ];
   })) // {inherit fontconfig freetype libX11 xproto libXrender ;};
-    
+
   libXi = (stdenvMulti.mkDerivation ((if overrides ? libXi then overrides.libXi else x: x) {
-    name = "libXi-1.6.1";
+    name = "libXi-1.7.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXi-1.6.1.tar.bz2;
-      sha256 = "029ihw4jq8mng8rx7a3jdvq64jm1zdkqidca93zmxv4jf9yn5qzj";
+      url = mirror://xorg/individual/lib/libXi-1.7.1.tar.bz2;
+      sha256 = "1ib6026bh4bcc2q0y04klqsvjl9pwabxnr8ybkh52g65d5mxnap9";
     };
     outputs = [ "dev" "out" "man" "doc" ];
-    buildInputs = [pkgconfig inputproto libX11 libXext xextproto xproto ];
-  })) // {inherit inputproto libX11 libXext xextproto xproto ;};
-    
+    buildInputs = [pkgconfig inputproto libX11 libXext xextproto libXfixes xproto ];
+  })) // {inherit inputproto libX11 libXext xextproto libXfixes xproto ;};
+
   libXinerama = (stdenvMulti.mkDerivation ((if overrides ? libXinerama then overrides.libXinerama else x: x) {
-    name = "libXinerama-1.1.2";
+    name = "libXinerama-1.1.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXinerama-1.1.2.tar.bz2;
-      sha256 = "1b3aq1762hxzchd9ndavdjlksq93991s0g2z6spf8wl3v0pprrx4";
+      url = mirror://xorg/individual/lib/libXinerama-1.1.3.tar.bz2;
+      sha256 = "1qlqfvzw45gdzk9xirgwlp2qgj0hbsyiqj8yh8zml2bk2ygnjibs";
     };
     outputs = [ "dev" "out" "man" ];
     buildInputs = [pkgconfig libX11 libXext xextproto xineramaproto ];
   })) // {inherit libX11 libXext xextproto xineramaproto ;};
-    
+
   libXmu = (stdenv.mkDerivation ((if overrides ? libXmu then overrides.libXmu else x: x) {
     name = "libXmu-1.1.1";
     builder = ./builder.sh;
@@ -735,17 +737,17 @@ let
     };
     buildInputs = [pkgconfig libX11 libXext xextproto xproto libXt ];
   })) // {inherit libX11 libXext xextproto xproto libXt ;};
-    
+
   libXp = (stdenv.mkDerivation ((if overrides ? libXp then overrides.libXp else x: x) {
-    name = "libXp-1.0.1";
+    name = "libXp-1.0.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libXp-1.0.1.tar.bz2;
-      sha256 = "1lj3cjg9ygbmclxvayy5v88kkndpy9jq6y68p13dc5jn01hg5lbi";
+      url = mirror://xorg/individual/lib/libXp-1.0.2.tar.bz2;
+      sha256 = "1dfh5w8sjz5b5fl6dl4y63ckq99snslz7bir8zq2rg8ax6syabwm";
     };
     buildInputs = [pkgconfig printproto libX11 libXau libXext xextproto ];
   })) // {inherit printproto libX11 libXau libXext xextproto ;};
-    
+
   libXpm = (stdenv.mkDerivation ((if overrides ? libXpm then overrides.libXpm else x: x) {
     name = "libXpm-3.5.10";
     builder = ./builder.sh;
@@ -755,49 +757,49 @@ let
     };
     buildInputs = [pkgconfig libX11 libXext xextproto xproto libXt ];
   })) // {inherit libX11 libXext xextproto xproto libXt ;};
-    
+
   libXrandr = (stdenvMulti.mkDerivation ((if overrides ? libXrandr then overrides.libXrandr else x: x) {
-    name = "libXrandr-1.4.0";
+    name = "libXrandr-1.4.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/lib/libXrandr-1.4.0.tar.bz2;
-      sha256 = "1hzm2ndra4nf8xxzm4lzd225zj05hzbzcq464q2znah15ynd0fh3";
+      url = mirror://xorg/individual/lib/libXrandr-1.4.1.tar.bz2;
+      sha256 = "01dr1wvyxq2y4yq4hilgglkjlvn551dmnl4l65nfm8nh1x4s056r";
     };
     outputs = [ "dev" "out" "man" ];
     buildInputs = [pkgconfig randrproto renderproto libX11 libXext xextproto xproto libXrender ];
   })) // {inherit randrproto renderproto libX11 libXext xextproto xproto libXrender ;};
-    
+
   libXrender = (stdenvMulti.mkDerivation ((if overrides ? libXrender then overrides.libXrender else x: x) {
-    name = "libXrender-0.9.7";
+    name = "libXrender-0.9.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXrender-0.9.7.tar.bz2;
-      sha256 = "1rmvja2gkf5v0k2n1bcghw8v98m2kfn3af0rbmsda5dwr69npd7r";
+      url = mirror://xorg/individual/lib/libXrender-0.9.8.tar.bz2;
+      sha256 = "0qpwyjhbpp734vnhca992pjh4w7ijslidkzx1pcwbbk000pv050x";
     };
     outputs = [ "dev" "out" "doc" ];
     buildInputs = [pkgconfig renderproto libX11 xproto ];
   })) // {inherit renderproto libX11 xproto ;};
-    
+
   libXres = (stdenv.mkDerivation ((if overrides ? libXres then overrides.libXres else x: x) {
-    name = "libXres-1.0.6";
+    name = "libXres-1.0.7";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXres-1.0.6.tar.bz2;
-      sha256 = "1478pm70gdi6l70r4jpkyyg2am9wv6xh53z9ibwq5cg84p4n31pz";
+      url = mirror://xorg/individual/lib/libXres-1.0.7.tar.bz2;
+      sha256 = "1rd0bzn67cpb2qkc946gch2183r4bdjfhs6cpqbipy47m9a91296";
     };
     buildInputs = [pkgconfig resourceproto libX11 libXext xextproto xproto ];
   })) // {inherit resourceproto libX11 libXext xextproto xproto ;};
-    
+
   libXt = (stdenv.mkDerivation ((if overrides ? libXt then overrides.libXt else x: x) {
-    name = "libXt-1.1.3";
+    name = "libXt-1.1.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXt-1.1.3.tar.bz2;
-      sha256 = "1g85gwnhs7lg5f01gfi1cpb916xc3spm1fjlv2f4xz2zzk1r7dcd";
+      url = mirror://xorg/individual/lib/libXt-1.1.4.tar.bz2;
+      sha256 = "0myxwbx9ylam5x3ia5b5f4x8azcqdm420h9ad1r4hrgmi2lrffl4";
     };
     buildInputs = [pkgconfig libICE kbproto libSM libX11 xproto ];
   })) // {inherit libICE kbproto libSM libX11 xproto ;};
-    
+
   libXtst = (stdenv.mkDerivation ((if overrides ? libXtst then overrides.libXtst else x: x) {
     name = "libXtst-1.2.1";
     builder = ./builder.sh;
@@ -807,37 +809,37 @@ let
     };
     buildInputs = [pkgconfig inputproto recordproto libX11 libXext xextproto libXi ];
   })) // {inherit inputproto recordproto libX11 libXext xextproto libXi ;};
-    
+
   libXv = (stdenv.mkDerivation ((if overrides ? libXv then overrides.libXv else x: x) {
-    name = "libXv-1.0.7";
+    name = "libXv-1.0.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXv-1.0.7.tar.bz2;
-      sha256 = "044hllz013afhzywwpxz007l4zjy99bv9im065rqd30zckmllrjx";
+      url = mirror://xorg/individual/lib/libXv-1.0.8.tar.bz2;
+      sha256 = "1mvkmypf9rsr3lr161hf9sjadlirb116jfp5lk70j29r8x9yn02g";
     };
     buildInputs = [pkgconfig videoproto libX11 libXext xextproto xproto ];
   })) // {inherit videoproto libX11 libXext xextproto xproto ;};
-    
+
   libXvMC = (stdenv.mkDerivation ((if overrides ? libXvMC then overrides.libXvMC else x: x) {
-    name = "libXvMC-1.0.7";
+    name = "libXvMC-1.0.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXvMC-1.0.7.tar.bz2;
-      sha256 = "18yf6ysc01pqkbk9704914ghalq1sl2hfdjmwggxm8qqhpy8bw18";
+      url = mirror://xorg/individual/lib/libXvMC-1.0.8.tar.bz2;
+      sha256 = "015jk3bxfmj6zaw99x282f9npi8qqaw34yg186frags3z8g406jy";
     };
     buildInputs = [pkgconfig videoproto libX11 libXext xextproto xproto libXv ];
   })) // {inherit videoproto libX11 libXext xextproto xproto libXv ;};
-    
+
   libXxf86dga = (stdenv.mkDerivation ((if overrides ? libXxf86dga then overrides.libXxf86dga else x: x) {
-    name = "libXxf86dga-1.1.3";
+    name = "libXxf86dga-1.1.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXxf86dga-1.1.3.tar.bz2;
-      sha256 = "15291ddhyr54sribwbg8hxx2psgzm5gh0pgkw5yrf3zgvdsa67sm";
+      url = mirror://xorg/individual/lib/libXxf86dga-1.1.4.tar.bz2;
+      sha256 = "0zn7aqj8x0951d8zb2h2andldvwkzbsc4cs7q023g6nzq6vd9v4f";
     };
     buildInputs = [pkgconfig libX11 libXext xextproto xf86dgaproto xproto ];
   })) // {inherit libX11 libXext xextproto xf86dgaproto xproto ;};
-    
+
   libXxf86misc = (stdenv.mkDerivation ((if overrides ? libXxf86misc then overrides.libXxf86misc else x: x) {
     name = "libXxf86misc-1.0.3";
     builder = ./builder.sh;
@@ -847,27 +849,27 @@ let
     };
     buildInputs = [pkgconfig libX11 libXext xextproto xf86miscproto xproto ];
   })) // {inherit libX11 libXext xextproto xf86miscproto xproto ;};
-    
+
   libXxf86vm = (stdenv.mkDerivation ((if overrides ? libXxf86vm then overrides.libXxf86vm else x: x) {
-    name = "libXxf86vm-1.1.2";
+    name = "libXxf86vm-1.1.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libXxf86vm-1.1.2.tar.bz2;
-      sha256 = "117w92xz39rcqcahspi48nc04cc9110x1dycpf3vbcb6p0pifr55";
+      url = mirror://xorg/individual/lib/libXxf86vm-1.1.3.tar.bz2;
+      sha256 = "1f1pxj018nk7ybxv58jmn5y8gm2288p4q3l2dng9n1p25v1qcpns";
     };
     buildInputs = [pkgconfig libX11 libXext xextproto xf86vidmodeproto xproto ];
   })) // {inherit libX11 libXext xextproto xf86vidmodeproto xproto ;};
-    
+
   libdmx = (stdenv.mkDerivation ((if overrides ? libdmx then overrides.libdmx else x: x) {
-    name = "libdmx-1.1.2";
+    name = "libdmx-1.1.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libdmx-1.1.2.tar.bz2;
-      sha256 = "1fiq73sfxcbyjval118ialwrzxhzb08xsxmg69adcs47i9j0p1x7";
+      url = mirror://xorg/individual/lib/libdmx-1.1.3.tar.bz2;
+      sha256 = "00djlxas38kbsrglcmwmxfbmxjdchlbj95pqwjvdg8jn5rns6zf9";
     };
     buildInputs = [pkgconfig dmxproto libX11 libXext xextproto ];
   })) // {inherit dmxproto libX11 libXext xextproto ;};
-    
+
   libfontenc = (stdenv.mkDerivation ((if overrides ? libfontenc then overrides.libfontenc else x: x) {
     name = "libfontenc-1.1.1";
     builder = ./builder.sh;
@@ -877,7 +879,7 @@ let
     };
     buildInputs = [pkgconfig xproto zlib ];
   })) // {inherit xproto zlib ;};
-    
+
   libpciaccess = (stdenv.mkDerivation ((if overrides ? libpciaccess then overrides.libpciaccess else x: x) {
     name = "libpciaccess-0.13.1";
     builder = ./builder.sh;
@@ -887,28 +889,28 @@ let
     };
     buildInputs = [pkgconfig zlib ];
   })) // {inherit zlib ;};
-    
+
   libpthreadstubs = (stdenv.mkDerivation ((if overrides ? libpthreadstubs then overrides.libpthreadstubs else x: x) {
     name = "libpthread-stubs-0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libpthread-stubs-0.3.tar.bz2;
+      url = http://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.bz2;
       sha256 = "16bjv3in19l84hbri41iayvvg4ls9gv1ma0x0qlbmwy67i7dbdim";
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   libxcb = (stdenvMulti.mkDerivation ((if overrides ? libxcb then overrides.libxcb else x: x) {
-    name = "libxcb-1.9";
+    name = "libxcb-1.9.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xcb/libxcb-1.9.tar.bz2;
-      sha256 = "15icn78x610dvvgnji6b3pyn8nd88lz68hq0w73pcadf78mycmw8";
+      url = http://xcb.freedesktop.org/dist/libxcb-1.9.1.tar.bz2;
+      sha256 = "0brn7vw66widc5mw7gynwy8dln3gmzym2fqqyzk6k58bxgs5yjnl";
     };
     outputs = [ "dev" "out" "doc" "man" ];
     buildInputs = [pkgconfig libxslt libpthreadstubs python libXau xcbproto libXdmcp ];
   })) // {inherit libxslt libpthreadstubs python libXau xcbproto libXdmcp ;};
-    
+
   libxkbfile = (stdenv.mkDerivation ((if overrides ? libxkbfile then overrides.libxkbfile else x: x) {
     name = "libxkbfile-1.0.8";
     builder = ./builder.sh;
@@ -918,7 +920,7 @@ let
     };
     buildInputs = [pkgconfig kbproto libX11 ];
   })) // {inherit kbproto libX11 ;};
-    
+
   lndir = (stdenv.mkDerivation ((if overrides ? lndir then overrides.lndir else x: x) {
     name = "lndir-1.0.3";
     builder = ./builder.sh;
@@ -928,7 +930,7 @@ let
     };
     buildInputs = [pkgconfig xproto ];
   })) // {inherit xproto ;};
-    
+
   luit = (stdenv.mkDerivation ((if overrides ? luit then overrides.luit else x: x) {
     name = "luit-1.1.1";
     builder = ./builder.sh;
@@ -938,7 +940,7 @@ let
     };
     buildInputs = [pkgconfig libfontenc ];
   })) // {inherit libfontenc ;};
-    
+
   makedepend = (stdenv.mkDerivation ((if overrides ? makedepend then overrides.makedepend else x: x) {
     name = "makedepend-1.0.4";
     builder = ./builder.sh;
@@ -948,7 +950,7 @@ let
     };
     buildInputs = [pkgconfig xproto ];
   })) // {inherit xproto ;};
-    
+
   mkfontdir = (stdenv.mkDerivation ((if overrides ? mkfontdir then overrides.mkfontdir else x: x) {
     name = "mkfontdir-1.0.7";
     builder = ./builder.sh;
@@ -958,7 +960,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   mkfontscale = (stdenv.mkDerivation ((if overrides ? mkfontscale then overrides.mkfontscale else x: x) {
     name = "mkfontscale-1.1.0";
     builder = ./builder.sh;
@@ -968,17 +970,7 @@ let
     };
     buildInputs = [pkgconfig libfontenc freetype xproto zlib ];
   })) // {inherit libfontenc freetype xproto zlib ;};
-    
-  pixman = (stdenv.mkDerivation ((if overrides ? pixman then overrides.pixman else x: x) {
-    name = "pixman-0.26.2";
-    builder = ./builder.sh;
-    src = fetchurl {
-      url = mirror://xorg/individual/lib/pixman-0.26.2.tar.bz2;
-      sha256 = "0z34jb75wpbyj3gxn34icd8j81fk5d6s6qnwp2ncz7m8icf6afqr";
-    };
-    buildInputs = [pkgconfig libpng perl ];
-  })) // {inherit libpng perl ;};
-    
+
   printproto = (stdenv.mkDerivation ((if overrides ? printproto then overrides.printproto else x: x) {
     name = "printproto-1.0.5";
     builder = ./builder.sh;
@@ -988,7 +980,7 @@ let
     };
     buildInputs = [pkgconfig libXau ];
   })) // {inherit libXau ;};
-    
+
   randrproto = (stdenv.mkDerivation ((if overrides ? randrproto then overrides.randrproto else x: x) {
     name = "randrproto-1.4.0";
     builder = ./builder.sh;
@@ -998,7 +990,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   recordproto = (stdenv.mkDerivation ((if overrides ? recordproto then overrides.recordproto else x: x) {
     name = "recordproto-1.14.2";
     builder = ./builder.sh;
@@ -1008,7 +1000,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   renderproto = (stdenv.mkDerivation ((if overrides ? renderproto then overrides.renderproto else x: x) {
     name = "renderproto-0.11.1";
     builder = ./builder.sh;
@@ -1018,7 +1010,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   resourceproto = (stdenv.mkDerivation ((if overrides ? resourceproto then overrides.resourceproto else x: x) {
     name = "resourceproto-1.2.0";
     builder = ./builder.sh;
@@ -1028,7 +1020,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   scrnsaverproto = (stdenv.mkDerivation ((if overrides ? scrnsaverproto then overrides.scrnsaverproto else x: x) {
     name = "scrnsaverproto-1.2.2";
     builder = ./builder.sh;
@@ -1038,7 +1030,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   sessreg = (stdenv.mkDerivation ((if overrides ? sessreg then overrides.sessreg else x: x) {
     name = "sessreg-1.0.7";
     builder = ./builder.sh;
@@ -1048,7 +1040,7 @@ let
     };
     buildInputs = [pkgconfig xproto ];
   })) // {inherit xproto ;};
-    
+
   setxkbmap = (stdenv.mkDerivation ((if overrides ? setxkbmap then overrides.setxkbmap else x: x) {
     name = "setxkbmap-1.3.0";
     builder = ./builder.sh;
@@ -1058,7 +1050,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libxkbfile ];
   })) // {inherit libX11 libxkbfile ;};
-    
+
   smproxy = (stdenv.mkDerivation ((if overrides ? smproxy then overrides.smproxy else x: x) {
     name = "smproxy-1.0.5";
     builder = ./builder.sh;
@@ -1068,7 +1060,7 @@ let
     };
     buildInputs = [pkgconfig libICE libSM libXmu libXt ];
   })) // {inherit libICE libSM libXmu libXt ;};
-    
+
   twm = (stdenv.mkDerivation ((if overrides ? twm then overrides.twm else x: x) {
     name = "twm-1.0.7";
     builder = ./builder.sh;
@@ -1078,7 +1070,7 @@ let
     };
     buildInputs = [pkgconfig libICE libSM libX11 libXext libXmu xproto libXt ];
   })) // {inherit libICE libSM libX11 libXext libXmu xproto libXt ;};
-    
+
   utilmacros = (stdenv.mkDerivation ((if overrides ? utilmacros then overrides.utilmacros else x: x) {
     name = "util-macros-1.17";
     builder = ./builder.sh;
@@ -1088,7 +1080,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   videoproto = (stdenv.mkDerivation ((if overrides ? videoproto then overrides.videoproto else x: x) {
     name = "videoproto-2.3.1";
     builder = ./builder.sh;
@@ -1098,7 +1090,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   windowswmproto = (stdenv.mkDerivation ((if overrides ? windowswmproto then overrides.windowswmproto else x: x) {
     name = "windowswmproto-1.0.4";
     builder = ./builder.sh;
@@ -1108,7 +1100,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   x11perf = (stdenv.mkDerivation ((if overrides ? x11perf then overrides.x11perf else x: x) {
     name = "x11perf-1.5.4";
     builder = ./builder.sh;
@@ -1118,7 +1110,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libXext libXft libXmu libXrender ];
   })) // {inherit libX11 libXext libXft libXmu libXrender ;};
-    
+
   xauth = (stdenv.mkDerivation ((if overrides ? xauth then overrides.xauth else x: x) {
     name = "xauth-1.0.7";
     builder = ./builder.sh;
@@ -1128,7 +1120,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libXau libXext libXmu ];
   })) // {inherit libX11 libXau libXext libXmu ;};
-    
+
   xbacklight = (stdenv.mkDerivation ((if overrides ? xbacklight then overrides.xbacklight else x: x) {
     name = "xbacklight-1.2.0";
     builder = ./builder.sh;
@@ -1138,7 +1130,7 @@ let
     };
     buildInputs = [pkgconfig libxcb xcbutil ];
   })) // {inherit libxcb xcbutil ;};
-    
+
   xbitmaps = (stdenv.mkDerivation ((if overrides ? xbitmaps then overrides.xbitmaps else x: x) {
     name = "xbitmaps-1.1.1";
     builder = ./builder.sh;
@@ -1148,47 +1140,47 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   xcbproto = (stdenv.mkDerivation ((if overrides ? xcbproto then overrides.xcbproto else x: x) {
     name = "xcb-proto-1.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xcb/xcb-proto-1.8.tar.bz2;
+      url = http://xcb.freedesktop.org/dist/xcb-proto-1.8.tar.bz2;
       sha256 = "1c11652h9sjynw3scm1pn5z3a6ci888pq7hij8q5n8qrl33icg93";
     };
     buildInputs = [pkgconfig python ];
   })) // {inherit python ;};
-    
+
   xcbutil = (stdenv.mkDerivation ((if overrides ? xcbutil then overrides.xcbutil else x: x) {
     name = "xcb-util-0.3.9";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xcb/xcb-util-0.3.9.tar.bz2;
+      url = http://xcb.freedesktop.org/dist/xcb-util-0.3.9.tar.bz2;
       sha256 = "1i0qbhqkcdlbbsj7ifkyjsffl61whj24d3zlg5pxf3xj1af2a4f6";
     };
     buildInputs = [pkgconfig gperf m4 libxcb xproto ];
   })) // {inherit gperf m4 libxcb xproto ;};
-    
+
   xcbutilimage = (stdenv.mkDerivation ((if overrides ? xcbutilimage then overrides.xcbutilimage else x: x) {
     name = "xcb-util-image-0.3.9";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xcb/xcb-util-image-0.3.9.tar.bz2;
+      url = http://xcb.freedesktop.org/dist/xcb-util-image-0.3.9.tar.bz2;
       sha256 = "1pr1l1nkg197gyl9d0fpwmn72jqpxjfgn9y13q4gawg1m873qnnk";
     };
     buildInputs = [pkgconfig gperf m4 libxcb xcbutil xproto ];
   })) // {inherit gperf m4 libxcb xcbutil xproto ;};
-    
+
   xcbutilkeysyms = (stdenv.mkDerivation ((if overrides ? xcbutilkeysyms then overrides.xcbutilkeysyms else x: x) {
     name = "xcb-util-keysyms-0.3.9";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xcb/xcb-util-keysyms-0.3.9.tar.bz2;
+      url = http://xcb.freedesktop.org/dist/xcb-util-keysyms-0.3.9.tar.bz2;
       sha256 = "0vjwk7vrcfnlhiadv445c6skfxmdrg5v4qf81y8s2s5xagqarqbv";
     };
     buildInputs = [pkgconfig gperf m4 libxcb xproto ];
   })) // {inherit gperf m4 libxcb xproto ;};
-    
+
   xcbutilrenderutil = (stdenv.mkDerivation ((if overrides ? xcbutilrenderutil then overrides.xcbutilrenderutil else x: x) {
     name = "xcb-util-renderutil-0.3.8";
     builder = ./builder.sh;
@@ -1198,17 +1190,17 @@ let
     };
     buildInputs = [pkgconfig gperf m4 libxcb xproto ];
   })) // {inherit gperf m4 libxcb xproto ;};
-    
+
   xcbutilwm = (stdenv.mkDerivation ((if overrides ? xcbutilwm then overrides.xcbutilwm else x: x) {
     name = "xcb-util-wm-0.3.9";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xcb/xcb-util-wm-0.3.9.tar.bz2;
+      url = http://xcb.freedesktop.org/dist/xcb-util-wm-0.3.9.tar.bz2;
       sha256 = "0c30fj33gvwzwhyz1dhsfwni0ai16bxpvxb4l6c6s7vvj7drp3q3";
     };
     buildInputs = [pkgconfig gperf m4 libxcb xproto ];
   })) // {inherit gperf m4 libxcb xproto ;};
-    
+
   xclock = (stdenv.mkDerivation ((if overrides ? xclock then overrides.xclock else x: x) {
     name = "xclock-1.0.6";
     builder = ./builder.sh;
@@ -1218,7 +1210,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libXaw libXft libxkbfile libXmu libXrender libXt ];
   })) // {inherit libX11 libXaw libXft libxkbfile libXmu libXrender libXt ;};
-    
+
   xcmiscproto = (stdenv.mkDerivation ((if overrides ? xcmiscproto then overrides.xcmiscproto else x: x) {
     name = "xcmiscproto-1.2.2";
     builder = ./builder.sh;
@@ -1228,7 +1220,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   xcmsdb = (stdenv.mkDerivation ((if overrides ? xcmsdb then overrides.xcmsdb else x: x) {
     name = "xcmsdb-1.0.4";
     builder = ./builder.sh;
@@ -1238,7 +1230,7 @@ let
     };
     buildInputs = [pkgconfig libX11 ];
   })) // {inherit libX11 ;};
-    
+
   xcursorgen = (stdenv.mkDerivation ((if overrides ? xcursorgen then overrides.xcursorgen else x: x) {
     name = "xcursorgen-1.0.5";
     builder = ./builder.sh;
@@ -1248,7 +1240,7 @@ let
     };
     buildInputs = [pkgconfig libpng libX11 libXcursor ];
   })) // {inherit libpng libX11 libXcursor ;};
-    
+
   xcursorthemes = (stdenv.mkDerivation ((if overrides ? xcursorthemes then overrides.xcursorthemes else x: x) {
     name = "xcursor-themes-1.0.3";
     builder = ./builder.sh;
@@ -1258,7 +1250,7 @@ let
     };
     buildInputs = [pkgconfig libXcursor ];
   })) // {inherit libXcursor ;};
-    
+
   xdm = (stdenv.mkDerivation ((if overrides ? xdm then overrides.xdm else x: x) {
     name = "xdm-1.1.11";
     builder = ./builder.sh;
@@ -1268,7 +1260,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libXau libXaw libXdmcp libXext libXft libXinerama libXmu libXpm libXt ];
   })) // {inherit libX11 libXau libXaw libXdmcp libXext libXft libXinerama libXmu libXpm libXt ;};
-    
+
   xdpyinfo = (stdenv.mkDerivation ((if overrides ? xdpyinfo then overrides.xdpyinfo else x: x) {
     name = "xdpyinfo-1.3.0";
     builder = ./builder.sh;
@@ -1278,7 +1270,7 @@ let
     };
     buildInputs = [pkgconfig libdmx libX11 libxcb libXcomposite libXext libXi libXinerama libXrender libXtst libXxf86dga libXxf86misc libXxf86vm ];
   })) // {inherit libdmx libX11 libxcb libXcomposite libXext libXi libXinerama libXrender libXtst libXxf86dga libXxf86misc libXxf86vm ;};
-    
+
   xdriinfo = (stdenv.mkDerivation ((if overrides ? xdriinfo then overrides.xdriinfo else x: x) {
     name = "xdriinfo-1.0.4";
     builder = ./builder.sh;
@@ -1288,7 +1280,7 @@ let
     };
     buildInputs = [pkgconfig glproto libX11 ];
   })) // {inherit glproto libX11 ;};
-    
+
   xev = (stdenv.mkDerivation ((if overrides ? xev then overrides.xev else x: x) {
     name = "xev-1.2.0";
     builder = ./builder.sh;
@@ -1298,7 +1290,7 @@ let
     };
     buildInputs = [pkgconfig libX11 xproto libXrandr ];
   })) // {inherit libX11 xproto libXrandr ;};
-    
+
   xextproto = (stdenv.mkDerivation ((if overrides ? xextproto then overrides.xextproto else x: x) {
     name = "xextproto-7.2.1";
     builder = ./builder.sh;
@@ -1308,7 +1300,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   xeyes = (stdenv.mkDerivation ((if overrides ? xeyes then overrides.xeyes else x: x) {
     name = "xeyes-1.1.1";
     builder = ./builder.sh;
@@ -1318,7 +1310,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libXext libXmu libXrender libXt ];
   })) // {inherit libX11 libXext libXmu libXrender libXt ;};
-    
+
   xf86bigfontproto = (stdenv.mkDerivation ((if overrides ? xf86bigfontproto then overrides.xf86bigfontproto else x: x) {
     name = "xf86bigfontproto-1.2.0";
     builder = ./builder.sh;
@@ -1328,7 +1320,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   xf86dgaproto = (stdenv.mkDerivation ((if overrides ? xf86dgaproto then overrides.xf86dgaproto else x: x) {
     name = "xf86dgaproto-2.1";
     builder = ./builder.sh;
@@ -1338,7 +1330,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   xf86driproto = (stdenv.mkDerivation ((if overrides ? xf86driproto then overrides.xf86driproto else x: x) {
     name = "xf86driproto-2.1.1";
     builder = ./builder.sh;
@@ -1348,7 +1340,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   xf86inputevdev = (stdenv.mkDerivation ((if overrides ? xf86inputevdev then overrides.xf86inputevdev else x: x) {
     name = "xf86-input-evdev-2.7.3";
     builder = ./builder.sh;
@@ -1358,17 +1350,17 @@ let
     };
     buildInputs = [pkgconfig inputproto udev xorgserver xproto ];
   })) // {inherit inputproto udev xorgserver xproto ;};
-    
+
   xf86inputjoystick = (stdenv.mkDerivation ((if overrides ? xf86inputjoystick then overrides.xf86inputjoystick else x: x) {
-    name = "xf86-input-joystick-1.6.1";
+    name = "xf86-input-joystick-1.6.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-input-joystick-1.6.1.tar.bz2;
-      sha256 = "1xgpkdmfw4ahjlva97gs9sllzw8nlpa8mxj59g28fxhak67mvv8x";
+      url = mirror://xorg/individual/driver/xf86-input-joystick-1.6.2.tar.bz2;
+      sha256 = "038mfqairyyqvz02rk7v3i070sab1wr0k6fkxvyvxdgkfbnqcfzf";
     };
     buildInputs = [pkgconfig inputproto kbproto xorgserver xproto ];
   })) // {inherit inputproto kbproto xorgserver xproto ;};
-    
+
   xf86inputkeyboard = (stdenv.mkDerivation ((if overrides ? xf86inputkeyboard then overrides.xf86inputkeyboard else x: x) {
     name = "xf86-input-keyboard-1.6.1";
     builder = ./builder.sh;
@@ -1378,7 +1370,7 @@ let
     };
     buildInputs = [pkgconfig inputproto xorgserver xproto ];
   })) // {inherit inputproto xorgserver xproto ;};
-    
+
   xf86inputmouse = (stdenv.mkDerivation ((if overrides ? xf86inputmouse then overrides.xf86inputmouse else x: x) {
     name = "xf86-input-mouse-1.7.2";
     builder = ./builder.sh;
@@ -1388,7 +1380,7 @@ let
     };
     buildInputs = [pkgconfig inputproto xorgserver xproto ];
   })) // {inherit inputproto xorgserver xproto ;};
-    
+
   xf86inputsynaptics = (stdenv.mkDerivation ((if overrides ? xf86inputsynaptics then overrides.xf86inputsynaptics else x: x) {
     name = "xf86-input-synaptics-1.6.2";
     builder = ./builder.sh;
@@ -1398,27 +1390,27 @@ let
     };
     buildInputs = [pkgconfig inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ];
   })) // {inherit inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ;};
-    
+
   xf86inputvmmouse = (stdenv.mkDerivation ((if overrides ? xf86inputvmmouse then overrides.xf86inputvmmouse else x: x) {
-    name = "xf86-input-vmmouse-12.9.0";
+    name = "xf86-input-vmmouse-13.0.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-input-vmmouse-12.9.0.tar.bz2;
-      sha256 = "1gwrna96f0p4gpjhin8yx01y5xvns2j15f7hw1jvqf7fpzv01kzv";
+      url = mirror://xorg/individual/driver/xf86-input-vmmouse-13.0.0.tar.bz2;
+      sha256 = "0b31ap9wp7nwpnihz8m7bz3p0hhaipxxhl652nw4v380cq1vdkq4";
     };
     buildInputs = [pkgconfig inputproto randrproto xorgserver xproto ];
   })) // {inherit inputproto randrproto xorgserver xproto ;};
-    
+
   xf86inputvoid = (stdenv.mkDerivation ((if overrides ? xf86inputvoid then overrides.xf86inputvoid else x: x) {
     name = "xf86-input-void-1.4.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-input-void-1.4.0.tar.bz2;
+      url = mirror://xorg/individual/driver/xf86-input-void-1.4.0.tar.bz2;
       sha256 = "01bmk324fq48wydvy1qrnxbw6qz0fjd0i80g0n4cqr1c4mjmif9a";
     };
     buildInputs = [pkgconfig xorgserver xproto ];
   })) // {inherit xorgserver xproto ;};
-    
+
   xf86miscproto = (stdenv.mkDerivation ((if overrides ? xf86miscproto then overrides.xf86miscproto else x: x) {
     name = "xf86miscproto-0.9.3";
     builder = ./builder.sh;
@@ -1428,37 +1420,37 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   xf86videoark = (stdenv.mkDerivation ((if overrides ? xf86videoark then overrides.xf86videoark else x: x) {
-    name = "xf86-video-ark-0.7.4";
+    name = "xf86-video-ark-0.7.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-ark-0.7.4.tar.bz2;
-      sha256 = "194zc35ivfh3vcxcilf9nbi88c2di8kbh84x535cljlpiajdnk5x";
+      url = mirror://xorg/individual/driver/xf86-video-ark-0.7.5.tar.bz2;
+      sha256 = "07p5vdsj2ckxb6wh02s61akcv4qfg6s1d5ld3jn3lfaayd3f1466";
     };
-    buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ];
-  })) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ;};
-    
+    buildInputs = [pkgconfig fontsproto libpciaccess xextproto xorgserver xproto ];
+  })) // {inherit fontsproto libpciaccess xextproto xorgserver xproto ;};
+
   xf86videoast = (stdenv.mkDerivation ((if overrides ? xf86videoast then overrides.xf86videoast else x: x) {
-    name = "xf86-video-ast-0.93.10";
+    name = "xf86-video-ast-0.97.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-ast-0.93.10.tar.bz2;
-      sha256 = "1q64z8qqa0ix3cymqiwk1s3sphd1fvvz30lvyxhgkgciygz6dm69";
+      url = mirror://xorg/individual/driver/xf86-video-ast-0.97.0.tar.bz2;
+      sha256 = "0xlfk64pa0vbg74m261fw8cn4vw6jw3nxm6wys9m4j3n2rwd9z18";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
-    
+
   xf86videoati = (stdenv.mkDerivation ((if overrides ? xf86videoati then overrides.xf86videoati else x: x) {
-    name = "xf86-video-ati-6.14.4";
+    name = "xf86-video-ati-7.1.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-ati-6.14.4.tar.bz2;
-      sha256 = "11gg6xn65vym75769hzgzpkjsyhlkrw4zw3ncngriq7vz1g47zjg";
+      url = mirror://xorg/individual/driver/xf86-video-ati-7.1.0.tar.bz2;
+      sha256 = "1k8hwszx1zj17z0657dna8q4k7x67adc163z44jiccyb3w2l9bn8";
     };
     buildInputs = [pkgconfig fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
-    
+
   xf86videocirrus = (stdenv.mkDerivation ((if overrides ? xf86videocirrus then overrides.xf86videocirrus else x: x) {
     name = "xf86-video-cirrus-1.5.1";
     builder = ./builder.sh;
@@ -1468,17 +1460,17 @@ let
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
-    
+
   xf86videodummy = (stdenv.mkDerivation ((if overrides ? xf86videodummy then overrides.xf86videodummy else x: x) {
-    name = "xf86-video-dummy-0.3.5";
+    name = "xf86-video-dummy-0.3.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-dummy-0.3.5.tar.bz2;
-      sha256 = "0pyr50kqh7g84r4p0x09ay5kxax20dip9sh8h3cbd4xv8cswdbfm";
+      url = mirror://xorg/individual/driver/xf86-video-dummy-0.3.6.tar.bz2;
+      sha256 = "16773lxa74d9v2x758bx0byrmxssplqygnjn09q3klr605j5ncs4";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ];
   })) // {inherit fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ;};
-    
+
   xf86videofbdev = (stdenv.mkDerivation ((if overrides ? xf86videofbdev then overrides.xf86videofbdev else x: x) {
     name = "xf86-video-fbdev-0.4.3";
     builder = ./builder.sh;
@@ -1488,107 +1480,87 @@ let
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ;};
-    
+
   xf86videogeode = (stdenv.mkDerivation ((if overrides ? xf86videogeode then overrides.xf86videogeode else x: x) {
-    name = "xf86-video-geode-2.11.13";
+    name = "xf86-video-geode-2.11.14";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-geode-2.11.13.tar.bz2;
-      sha256 = "09p2cjd2fb7h32k9qs4wp7qvhfn2zv454spv5mfplv7w2jis4863";
+      url = mirror://xorg/individual/driver/xf86-video-geode-2.11.14.tar.bz2;
+      sha256 = "1k6gl1kq2fr0gj6sqrg2rypp59f8b8pr46c902m4z4rjr530nxac";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
-    
+
   xf86videoglide = (stdenv.mkDerivation ((if overrides ? xf86videoglide then overrides.xf86videoglide else x: x) {
-    name = "xf86-video-glide-1.2.0";
+    name = "xf86-video-glide-1.2.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-glide-1.2.0.tar.bz2;
-      sha256 = "0byapm9mnpqk3wijfnnan3d22ii5cw6dmg4xn1625iiz89j5vs1l";
+      url = mirror://xorg/individual/driver/xf86-video-glide-1.2.1.tar.bz2;
+      sha256 = "0vp9izdy7lgx09jfwr4ra9zvrx1hg15a5v2nhx00v31ffkh2aiyp";
     };
     buildInputs = [pkgconfig xextproto xorgserver xproto ];
   })) // {inherit xextproto xorgserver xproto ;};
-    
+
   xf86videoglint = (stdenv.mkDerivation ((if overrides ? xf86videoglint then overrides.xf86videoglint else x: x) {
-    name = "xf86-video-glint-1.2.7";
+    name = "xf86-video-glint-1.2.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-glint-1.2.7.tar.bz2;
-      sha256 = "0nf36jryabpncqq4m6sfsnmzk00f7gvfmjnl8l8sfy7w6sa6iacs";
+      url = mirror://xorg/individual/driver/xf86-video-glint-1.2.8.tar.bz2;
+      sha256 = "08a2aark2yn9irws9c78d9q44dichr03i9zbk61jgr54ncxqhzv5";
     };
     buildInputs = [pkgconfig libpciaccess videoproto xextproto xf86dgaproto xorgserver xproto ];
   })) // {inherit libpciaccess videoproto xextproto xf86dgaproto xorgserver xproto ;};
-    
+
   xf86videoi128 = (stdenv.mkDerivation ((if overrides ? xf86videoi128 then overrides.xf86videoi128 else x: x) {
-    name = "xf86-video-i128-1.3.5";
+    name = "xf86-video-i128-1.3.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-i128-1.3.5.tar.bz2;
-      sha256 = "1sik8ck410hb2885vy7rlc590hw5br8lr2fzxgmv55jyawgfpv9y";
+      url = mirror://xorg/individual/driver/xf86-video-i128-1.3.6.tar.bz2;
+      sha256 = "171b8lbxr56w3isph947dnw7x87hc46v6m3mcxdcz44gk167x0pq";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
-    
+
   xf86videointel = (stdenv.mkDerivation ((if overrides ? xf86videointel then overrides.xf86videointel else x: x) {
-    name = "xf86-video-intel-2.20.19";
-    builder = ./builder.sh;
-    src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-intel-2.20.19.tar.bz2;
-      sha256 = "0k67vcf0aqhv9zmy1arxyjdl7fsrg90cjm0ryyhamghq67z0xcmr";
-    };
-    buildInputs = [pkgconfig dri2proto fontsproto libdrm udev libpciaccess pixman randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto libXfixes xorgserver xproto libXrender libXvMC ];
-  })) // {inherit dri2proto fontsproto libdrm udev libpciaccess pixman randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto libXfixes xorgserver xproto libXrender libXvMC ;};
-    
-  xf86videointel_2_14_901 = (stdenv.mkDerivation ((if overrides ? xf86videointel_2_14_901 then overrides.xf86videointel_2_14_901 else x: x) {
-    name = "xf86-video-intel-2.14.901";
-    builder = ./builder.sh;
-    src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-intel-2.14.901.tar.bz2;
-      sha256 = "1hm3zn96ahmirvx1iv87sk7fl7g8a6h1j7560gyw7y5b3l1zmg5r";
-    };
-    buildInputs = [pkgconfig dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto libXfixes xorgserver xproto libXvMC ];
-  })) // {inherit dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto libXfixes xorgserver xproto libXvMC ;};
-    
-  xf86videointel_2_17_0 = (stdenv.mkDerivation ((if overrides ? xf86videointel_2_17_0 then overrides.xf86videointel_2_17_0 else x: x) {
-    name = "xf86-video-intel-2.17.0";
+    name = "xf86-video-intel-2.21.9";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-intel-2.17.0.tar.bz2;
-      sha256 = "11s3vjp0lrfmb4bv848fd5bajj77j3rf451lm0qyylnclbr5114b";
+      url = mirror://xorg/individual/driver/xf86-video-intel-2.21.9.tar.bz2;
+      sha256 = "12gigzpgbrz6g2gf4q5nj2sqmjw8fczbh79dlpx898llwk4wnn8k";
     };
-    buildInputs = [pkgconfig dri2proto fontsproto libdrm udev libpciaccess pixman randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto libXfixes xorgserver xproto libXrender libXvMC ];
-  })) // {inherit dri2proto fontsproto libdrm udev libpciaccess pixman randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto libXfixes xorgserver xproto libXrender libXvMC ;};
-    
+    buildInputs = [pkgconfig dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto xorgserver xproto libXrender libXvMC ];
+  })) // {inherit dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto xorgserver xproto libXrender libXvMC ;};
+
   xf86videomach64 = (stdenv.mkDerivation ((if overrides ? xf86videomach64 then overrides.xf86videomach64 else x: x) {
-    name = "xf86-video-mach64-6.9.1";
+    name = "xf86-video-mach64-6.9.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-mach64-6.9.1.tar.bz2;
-      sha256 = "0kl3kvpc2ny48z89313i9fi4cxzwb2pllvxcr9j5ly680ygx8slz";
+      url = mirror://xorg/individual/driver/xf86-video-mach64-6.9.4.tar.bz2;
+      sha256 = "0pl582vnc6hdxqhf5c0qdyanjqxb4crnhqlmxxml5a60syw0iwcp";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
-    
+
   xf86videomga = (stdenv.mkDerivation ((if overrides ? xf86videomga then overrides.xf86videomga else x: x) {
-    name = "xf86-video-mga-1.5.0";
+    name = "xf86-video-mga-1.6.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-mga-1.5.0.tar.bz2;
-      sha256 = "03l3wz5kz0hmxmzqqbkgn7pf9d956jlag04rb701a0fr1mw3v66a";
+      url = mirror://xorg/individual/driver/xf86-video-mga-1.6.2.tar.bz2;
+      sha256 = "0v6agqc9lxg8jgrksc1yksmhnv70j1vnhm09i7gg14za1qjwx29z";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
-    
+
   xf86videoneomagic = (stdenv.mkDerivation ((if overrides ? xf86videoneomagic then overrides.xf86videoneomagic else x: x) {
-    name = "xf86-video-neomagic-1.2.6";
+    name = "xf86-video-neomagic-1.2.7";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-neomagic-1.2.6.tar.bz2;
-      sha256 = "124qci48xrk0w2jy91n7vqs7s6q397zyiqqszhmkx6ld7six57mi";
+      url = mirror://xorg/individual/driver/xf86-video-neomagic-1.2.7.tar.bz2;
+      sha256 = "0xnbk2y5pzs1g3w2rmjc4k3nyq6kazf67bv4q3dnbywalsgfh1lz";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;};
-    
+
   xf86videonewport = (stdenv.mkDerivation ((if overrides ? xf86videonewport then overrides.xf86videonewport else x: x) {
     name = "xf86-video-newport-0.2.4";
     builder = ./builder.sh;
@@ -1598,7 +1570,7 @@ let
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto videoproto xorgserver xproto ];
   })) // {inherit fontsproto randrproto renderproto videoproto xorgserver xproto ;};
-    
+
   xf86videonv = (stdenv.mkDerivation ((if overrides ? xf86videonv then overrides.xf86videonv else x: x) {
     name = "xf86-video-nv-2.1.20";
     builder = ./builder.sh;
@@ -1608,107 +1580,107 @@ let
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
-    
+
   xf86videoopenchrome = (stdenv.mkDerivation ((if overrides ? xf86videoopenchrome then overrides.xf86videoopenchrome else x: x) {
-    name = "xf86-video-openchrome-0.2.906";
+    name = "xf86-video-openchrome-0.3.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-openchrome-0.2.906.tar.bz2;
-      sha256 = "0hgzn1r7ig94xbr9dvq0bp1nxqlfp2ki8823jca3f22a2kf8wmg7";
+      url = mirror://xorg/individual/driver/xf86-video-openchrome-0.3.3.tar.bz2;
+      sha256 = "1v8j4i1r268n4fc5gq54zg1x50j0rhw71f3lba7411mcblg2z7p4";
     };
-    buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ];
-  })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ;};
-    
+    buildInputs = [pkgconfig fontsproto glproto libdrm udev libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ];
+  })) // {inherit fontsproto glproto libdrm udev libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ;};
+
   xf86videor128 = (stdenv.mkDerivation ((if overrides ? xf86videor128 then overrides.xf86videor128 else x: x) {
-    name = "xf86-video-r128-6.8.2";
+    name = "xf86-video-r128-6.9.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-r128-6.8.2.tar.bz2;
-      sha256 = "1c84x40k9qz9dnf5qs6nnjcgz7px6mpc3rbk8mj62zhp7mf16hbv";
+      url = mirror://xorg/individual/driver/xf86-video-r128-6.9.1.tar.bz2;
+      sha256 = "0k746kk75h3hg3wmihqlmp14s52fg0svylqay02km7misflbmqwb";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xorgserver xproto ;};
-    
+
   xf86videosavage = (stdenv.mkDerivation ((if overrides ? xf86videosavage then overrides.xf86videosavage else x: x) {
-    name = "xf86-video-savage-2.3.4";
+    name = "xf86-video-savage-2.3.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-savage-2.3.4.tar.bz2;
-      sha256 = "0jdy4wv3k3ylx3lajjcbsg37z2hf6366a1jvv16sv1ln6dk6lris";
+      url = mirror://xorg/individual/driver/xf86-video-savage-2.3.6.tar.bz2;
+      sha256 = "1mk3mpwl97clxhwzl990hj31z8qfh7fd4vs6qbl5i250ykc3x0a8";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
-    
+
   xf86videosiliconmotion = (stdenv.mkDerivation ((if overrides ? xf86videosiliconmotion then overrides.xf86videosiliconmotion else x: x) {
-    name = "xf86-video-siliconmotion-1.7.6";
+    name = "xf86-video-siliconmotion-1.7.7";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-siliconmotion-1.7.6.tar.bz2;
-      sha256 = "01sdl6ky1vmvmfgx2d44i35rqafi0z07xdy40cvindcr2k91p7x5";
+      url = mirror://xorg/individual/driver/xf86-video-siliconmotion-1.7.7.tar.bz2;
+      sha256 = "1an321kqvsxq0z35acwl99lc8hpdkayw0q180744ypcl8ffvbf47";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess videoproto xextproto xorgserver xproto ;};
-    
+
   xf86videosis = (stdenv.mkDerivation ((if overrides ? xf86videosis then overrides.xf86videosis else x: x) {
-    name = "xf86-video-sis-0.10.4";
+    name = "xf86-video-sis-0.10.7";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-sis-0.10.4.tar.bz2;
-      sha256 = "03diq0l93lfsipmwkpdb2ysgbxxryl6yakpghzc3fksjxa01112f";
+      url = mirror://xorg/individual/driver/xf86-video-sis-0.10.7.tar.bz2;
+      sha256 = "1l0w84x39gq4y9j81dny9r6rma1xkqvxpsavpkd8h7h8panbcbmy";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xf86driproto xineramaproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xf86driproto xineramaproto xorgserver xproto ;};
-    
+
   xf86videosuncg6 = (stdenv.mkDerivation ((if overrides ? xf86videosuncg6 then overrides.xf86videosuncg6 else x: x) {
-    name = "xf86-video-suncg6-1.1.1";
+    name = "xf86-video-suncg6-1.1.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-suncg6-1.1.1.tar.bz2;
-      sha256 = "07w0hm63fiy5l3cpcjsl0ig8z84z9r36xm0cmnpiv3g75dy6q8fi";
+      url = mirror://xorg/individual/driver/xf86-video-suncg6-1.1.2.tar.bz2;
+      sha256 = "04fgwgk02m4nimlv67rrg1wnyahgymrn6rb2cjj1l8bmzkii4glr";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto xorgserver xproto ];
   })) // {inherit fontsproto randrproto renderproto xorgserver xproto ;};
-    
+
   xf86videosunffb = (stdenv.mkDerivation ((if overrides ? xf86videosunffb then overrides.xf86videosunffb else x: x) {
-    name = "xf86-video-sunffb-1.2.1";
+    name = "xf86-video-sunffb-1.2.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-sunffb-1.2.1.tar.bz2;
-      sha256 = "04byax4sc1fn183vyyq0q11q730k16h2by4ggjky7s36wgv7ldzx";
+      url = mirror://xorg/individual/driver/xf86-video-sunffb-1.2.2.tar.bz2;
+      sha256 = "07z3ngifwg2d4jgq8pms47n5lr2yn0ai72g86xxjnb3k20n5ym7s";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto randrproto renderproto xextproto xorgserver xproto ;};
-    
+
   xf86videotdfx = (stdenv.mkDerivation ((if overrides ? xf86videotdfx then overrides.xf86videotdfx else x: x) {
-    name = "xf86-video-tdfx-1.4.4";
+    name = "xf86-video-tdfx-1.4.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-tdfx-1.4.4.tar.bz2;
-      sha256 = "124gsi30rj547jjd7gvv7xykfnwlyrxw0gcacamby7pvl3g33fg0";
+      url = mirror://xorg/individual/driver/xf86-video-tdfx-1.4.5.tar.bz2;
+      sha256 = "0nfqf1c8939s21ci1g7gacwzlr4g4nnilahgz7j2bz30zfnzpmbh";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
-    
+
   xf86videotga = (stdenv.mkDerivation ((if overrides ? xf86videotga then overrides.xf86videotga else x: x) {
-    name = "xf86-video-tga-1.2.1";
+    name = "xf86-video-tga-1.2.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-tga-1.2.1.tar.bz2;
-      sha256 = "0mdqrn02zzkdnmhg4vh9djaawg6b2p82g5qbj66z8b30yr77b93h";
+      url = mirror://xorg/individual/driver/xf86-video-tga-1.2.2.tar.bz2;
+      sha256 = "0cb161lvdgi6qnf1sfz722qn38q7kgakcvj7b45ba3i0020828r0";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;};
-    
+
   xf86videotrident = (stdenv.mkDerivation ((if overrides ? xf86videotrident then overrides.xf86videotrident else x: x) {
-    name = "xf86-video-trident-1.3.5";
+    name = "xf86-video-trident-1.3.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-trident-1.3.5.tar.bz2;
-      sha256 = "02y5pzdp0a1c12jr8gghbrzgbyfbgq67x7kd7n4f323pmf8x1csb";
+      url = mirror://xorg/individual/driver/xf86-video-trident-1.3.6.tar.bz2;
+      sha256 = "0141qbfsm32i0pxjyx5czpa8x8m4lvapsp4amw1qigaa0gry6n3a";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;};
-    
+
   xf86videov4l = (stdenv.mkDerivation ((if overrides ? xf86videov4l then overrides.xf86videov4l else x: x) {
     name = "xf86-video-v4l-0.2.0";
     builder = ./builder.sh;
@@ -1718,7 +1690,7 @@ let
     };
     buildInputs = [pkgconfig randrproto videoproto xorgserver xproto ];
   })) // {inherit randrproto videoproto xorgserver xproto ;};
-    
+
   xf86videovesa = (stdenv.mkDerivation ((if overrides ? xf86videovesa then overrides.xf86videovesa else x: x) {
     name = "xf86-video-vesa-2.3.2";
     builder = ./builder.sh;
@@ -1728,27 +1700,27 @@ let
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ;};
-    
+
   xf86videovmware = (stdenv.mkDerivation ((if overrides ? xf86videovmware then overrides.xf86videovmware else x: x) {
-    name = "xf86-video-vmware-12.0.2";
+    name = "xf86-video-vmware-13.0.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-vmware-12.0.2.tar.bz2;
-      sha256 = "0isiwx516gww8hfk3vy7js83yziyjym9mq2zjadyq1a8v5gqf9y8";
+      url = mirror://xorg/individual/driver/xf86-video-vmware-13.0.1.tar.bz2;
+      sha256 = "0ggyz3yl1ly0p9c9lva5z3892vm033z49py3svd2wh92bi0xlbc0";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xineramaproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xineramaproto xorgserver xproto ;};
-    
+
   xf86videovoodoo = (stdenv.mkDerivation ((if overrides ? xf86videovoodoo then overrides.xf86videovoodoo else x: x) {
-    name = "xf86-video-voodoo-1.2.4";
+    name = "xf86-video-voodoo-1.2.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-voodoo-1.2.4.tar.bz2;
-      sha256 = "0ha748yz92yzn6hp2rhin3il8f4j2rs4vkgdvqkagnv1ryxkh0ph";
+      url = mirror://xorg/individual/driver/xf86-video-voodoo-1.2.5.tar.bz2;
+      sha256 = "1s6p7yxmi12q4y05va53rljwyzd6ry492r1pgi7wwq6cznivhgly";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xf86dgaproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xf86dgaproto xorgserver xproto ;};
-    
+
   xf86videowsfb = (stdenv.mkDerivation ((if overrides ? xf86videowsfb then overrides.xf86videowsfb else x: x) {
     name = "xf86-video-wsfb-0.4.0";
     builder = ./builder.sh;
@@ -1758,7 +1730,7 @@ let
     };
     buildInputs = [pkgconfig xorgserver xproto ];
   })) // {inherit xorgserver xproto ;};
-    
+
   xf86vidmodeproto = (stdenv.mkDerivation ((if overrides ? xf86vidmodeproto then overrides.xf86vidmodeproto else x: x) {
     name = "xf86vidmodeproto-2.3.1";
     builder = ./builder.sh;
@@ -1768,17 +1740,17 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   xfs = (stdenv.mkDerivation ((if overrides ? xfs then overrides.xfs else x: x) {
-    name = "xfs-1.1.2";
+    name = "xfs-1.1.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xfs-1.1.2.tar.bz2;
-      sha256 = "17g34yq789grnic83cqj5khq0knda1w2rgabhjflsyw9wg663shd";
+      url = mirror://xorg/individual/app/xfs-1.1.3.tar.bz2;
+      sha256 = "1dwnf5gncpnjsbh9bdrc665kfnclhzzcpwpfnprvrnq4mlr4mx3v";
     };
     buildInputs = [pkgconfig libXfont xproto xtrans ];
   })) // {inherit libXfont xproto xtrans ;};
-    
+
   xgamma = (stdenv.mkDerivation ((if overrides ? xgamma then overrides.xgamma else x: x) {
     name = "xgamma-1.0.5";
     builder = ./builder.sh;
@@ -1788,7 +1760,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libXxf86vm ];
   })) // {inherit libX11 libXxf86vm ;};
-    
+
   xhost = (stdenv.mkDerivation ((if overrides ? xhost then overrides.xhost else x: x) {
     name = "xhost-1.0.5";
     builder = ./builder.sh;
@@ -1798,7 +1770,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libXau libXmu ];
   })) // {inherit libX11 libXau libXmu ;};
-    
+
   xineramaproto = (stdenv.mkDerivation ((if overrides ? xineramaproto then overrides.xineramaproto else x: x) {
     name = "xineramaproto-1.2.1";
     builder = ./builder.sh;
@@ -1808,7 +1780,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   xinit = (stdenv.mkDerivation ((if overrides ? xinit then overrides.xinit else x: x) {
     name = "xinit-1.3.2";
     builder = ./builder.sh;
@@ -1818,7 +1790,7 @@ let
     };
     buildInputs = [pkgconfig libX11 ];
   })) // {inherit libX11 ;};
-    
+
   xinput = (stdenv.mkDerivation ((if overrides ? xinput then overrides.xinput else x: x) {
     name = "xinput-1.6.0";
     builder = ./builder.sh;
@@ -1828,7 +1800,7 @@ let
     };
     buildInputs = [pkgconfig inputproto libX11 libXext libXi libXinerama libXrandr ];
   })) // {inherit inputproto libX11 libXext libXi libXinerama libXrandr ;};
-    
+
   xkbcomp = (stdenv.mkDerivation ((if overrides ? xkbcomp then overrides.xkbcomp else x: x) {
     name = "xkbcomp-1.2.4";
     builder = ./builder.sh;
@@ -1838,7 +1810,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libxkbfile xproto ];
   })) // {inherit libX11 libxkbfile xproto ;};
-    
+
   xkbevd = (stdenv.mkDerivation ((if overrides ? xkbevd then overrides.xkbevd else x: x) {
     name = "xkbevd-1.1.3";
     builder = ./builder.sh;
@@ -1848,7 +1820,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libxkbfile ];
   })) // {inherit libX11 libxkbfile ;};
-    
+
   xkbutils = (stdenv.mkDerivation ((if overrides ? xkbutils then overrides.xkbutils else x: x) {
     name = "xkbutils-1.0.3";
     builder = ./builder.sh;
@@ -1858,17 +1830,17 @@ let
     };
     buildInputs = [pkgconfig inputproto libX11 libXaw xproto libXt ];
   })) // {inherit inputproto libX11 libXaw xproto libXt ;};
-    
+
   xkeyboardconfig = (stdenv.mkDerivation ((if overrides ? xkeyboardconfig then overrides.xkeyboardconfig else x: x) {
-    name = "xkeyboard-config-2.6";
+    name = "xkeyboard-config-2.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xkeyboard-config-2.6.tar.bz2;
-      sha256 = "1nmb7ma8rqryicc5xqrn2hm5pwp5lkf7nj28bwbf63mz2r0mk892";
+      url = mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.8.tar.bz2;
+      sha256 = "1bkq415qw4r3dl139mqgal9v585x7kh3km6z1lraz2j8im3ga72f";
     };
-    buildInputs = [pkgconfig ];
-  })) // {inherit ;};
-    
+    buildInputs = [pkgconfig libX11 xproto ];
+  })) // {inherit libX11 xproto ;};
+
   xkill = (stdenv.mkDerivation ((if overrides ? xkill then overrides.xkill else x: x) {
     name = "xkill-1.0.3";
     builder = ./builder.sh;
@@ -1878,7 +1850,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libXmu ];
   })) // {inherit libX11 libXmu ;};
-    
+
   xlsatoms = (stdenv.mkDerivation ((if overrides ? xlsatoms then overrides.xlsatoms else x: x) {
     name = "xlsatoms-1.1.1";
     builder = ./builder.sh;
@@ -1888,7 +1860,7 @@ let
     };
     buildInputs = [pkgconfig libxcb ];
   })) // {inherit libxcb ;};
-    
+
   xlsclients = (stdenv.mkDerivation ((if overrides ? xlsclients then overrides.xlsclients else x: x) {
     name = "xlsclients-1.1.2";
     builder = ./builder.sh;
@@ -1898,17 +1870,17 @@ let
     };
     buildInputs = [pkgconfig libxcb ];
   })) // {inherit libxcb ;};
-    
+
   xmessage = (stdenv.mkDerivation ((if overrides ? xmessage then overrides.xmessage else x: x) {
-    name = "xmessage-1.0.3";
+    name = "xmessage-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xmessage-1.0.3.tar.bz2;
-      sha256 = "0nrxidff0pcd1ampfzj91ai74j6mx613j5kqk3j0c4xdshx5v8yg";
+      url = mirror://xorg/individual/app/xmessage-1.0.4.tar.bz2;
+      sha256 = "0s5bjlpxnmh8sxx6nfg9m0nr32r1sr3irr71wsnv76s33i34ppxw";
     };
     buildInputs = [pkgconfig libXaw libXt ];
   })) // {inherit libXaw libXt ;};
-    
+
   xmodmap = (stdenv.mkDerivation ((if overrides ? xmodmap then overrides.xmodmap else x: x) {
     name = "xmodmap-1.0.7";
     builder = ./builder.sh;
@@ -1918,7 +1890,7 @@ let
     };
     buildInputs = [pkgconfig libX11 xproto ];
   })) // {inherit libX11 xproto ;};
-    
+
   xorgcffiles = (stdenv.mkDerivation ((if overrides ? xorgcffiles then overrides.xorgcffiles else x: x) {
     name = "xorg-cf-files-1.0.4";
     builder = ./builder.sh;
@@ -1928,7 +1900,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   xorgdocs = (stdenv.mkDerivation ((if overrides ? xorgdocs then overrides.xorgdocs else x: x) {
     name = "xorg-docs-1.7";
     builder = ./builder.sh;
@@ -1938,27 +1910,17 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   xorgserver = (stdenv.mkDerivation ((if overrides ? xorgserver then overrides.xorgserver else x: x) {
-    name = "xorg-server-1.12.4";
+    name = "xorg-server-1.13.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xserver/xorg-server-1.12.4.tar.bz2;
-      sha256 = "1xscr6rf0q15hv3hmm51xhwk0c0rx7a2swkj14ygp8vb60sprh4a";
+      url = mirror://xorg/individual/xserver/xorg-server-1.13.4.tar.bz2;
+      sha256 = "1kwq5hqgl3qmm4nxh5iwpa0wwwzsj67fxqiiglzhyyrwgy46kjd2";
     };
     buildInputs = [pkgconfig renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ];
   })) // {inherit renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ;};
 
-  xorgserver_1_13_0 = (stdenv.mkDerivation ((if overrides ? xorgserver_1_13_0 then overrides.xorgserver_1_13_0 else x: x) {
-    name = "xorg-server-1.13.0";
-    builder = ./builder.sh;
-    src = fetchurl {
-      url = mirror://xorg/individual/xserver/xorg-server-1.13.0.tar.bz2;
-      sha256 = "12pjis236ss3402cg1iy749cylajjp27m3j2jbwd8yh8075r32sl";
-    };
-    buildInputs = [pkgconfig renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv pixman glproto ];
-  })) // {inherit renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv pixman glproto ;};
-    
   xorgsgmldoctools = (stdenv.mkDerivation ((if overrides ? xorgsgmldoctools then overrides.xorgsgmldoctools else x: x) {
     name = "xorg-sgml-doctools-1.11";
     builder = ./builder.sh;
@@ -1968,7 +1930,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   xpr = (stdenv.mkDerivation ((if overrides ? xpr then overrides.xpr else x: x) {
     name = "xpr-1.0.4";
     builder = ./builder.sh;
@@ -1978,7 +1940,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libXmu xproto ];
   })) // {inherit libX11 libXmu xproto ;};
-    
+
   xprop = (stdenv.mkDerivation ((if overrides ? xprop then overrides.xprop else x: x) {
     name = "xprop-1.2.1";
     builder = ./builder.sh;
@@ -1988,7 +1950,7 @@ let
     };
     buildInputs = [pkgconfig libX11 xproto ];
   })) // {inherit libX11 xproto ;};
-    
+
   xproto = (stdenv.mkDerivation ((if overrides ? xproto then overrides.xproto else x: x) {
     name = "xproto-7.0.23";
     builder = ./builder.sh;
@@ -1998,7 +1960,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   xrandr = (stdenv.mkDerivation ((if overrides ? xrandr then overrides.xrandr else x: x) {
     name = "xrandr-1.3.5";
     builder = ./builder.sh;
@@ -2008,7 +1970,7 @@ let
     };
     buildInputs = [pkgconfig libX11 xproto libXrandr libXrender ];
   })) // {inherit libX11 xproto libXrandr libXrender ;};
-    
+
   xrdb = (stdenv.mkDerivation ((if overrides ? xrdb then overrides.xrdb else x: x) {
     name = "xrdb-1.0.9";
     builder = ./builder.sh;
@@ -2018,7 +1980,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libXmu ];
   })) // {inherit libX11 libXmu ;};
-    
+
   xrefresh = (stdenv.mkDerivation ((if overrides ? xrefresh then overrides.xrefresh else x: x) {
     name = "xrefresh-1.0.4";
     builder = ./builder.sh;
@@ -2028,7 +1990,7 @@ let
     };
     buildInputs = [pkgconfig libX11 ];
   })) // {inherit libX11 ;};
-    
+
   xset = (stdenv.mkDerivation ((if overrides ? xset then overrides.xset else x: x) {
     name = "xset-1.2.2";
     builder = ./builder.sh;
@@ -2038,7 +2000,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libXext libXmu xproto libXxf86misc ];
   })) // {inherit libX11 libXext libXmu xproto libXxf86misc ;};
-    
+
   xsetroot = (stdenv.mkDerivation ((if overrides ? xsetroot then overrides.xsetroot else x: x) {
     name = "xsetroot-1.1.0";
     builder = ./builder.sh;
@@ -2048,7 +2010,7 @@ let
     };
     buildInputs = [pkgconfig libX11 xbitmaps libXcursor libXmu ];
   })) // {inherit libX11 xbitmaps libXcursor libXmu ;};
-    
+
   xtrans = (stdenv.mkDerivation ((if overrides ? xtrans then overrides.xtrans else x: x) {
     name = "xtrans-1.2.7";
     builder = ./builder.sh;
@@ -2058,7 +2020,7 @@ let
     };
     buildInputs = [pkgconfig ];
   })) // {inherit ;};
-    
+
   xvinfo = (stdenv.mkDerivation ((if overrides ? xvinfo then overrides.xvinfo else x: x) {
     name = "xvinfo-1.1.1";
     builder = ./builder.sh;
@@ -2068,7 +2030,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libXv ];
   })) // {inherit libX11 libXv ;};
-    
+
   xwd = (stdenv.mkDerivation ((if overrides ? xwd then overrides.xwd else x: x) {
     name = "xwd-1.0.5";
     builder = ./builder.sh;
@@ -2078,7 +2040,7 @@ let
     };
     buildInputs = [pkgconfig libX11 xproto ];
   })) // {inherit libX11 xproto ;};
-    
+
   xwininfo = (stdenv.mkDerivation ((if overrides ? xwininfo then overrides.xwininfo else x: x) {
     name = "xwininfo-1.1.2";
     builder = ./builder.sh;
@@ -2088,7 +2050,7 @@ let
     };
     buildInputs = [pkgconfig libX11 libxcb xproto ];
   })) // {inherit libX11 libxcb xproto ;};
-    
+
   xwud = (stdenv.mkDerivation ((if overrides ? xwud then overrides.xwud else x: x) {
     name = "xwud-1.0.4";
     builder = ./builder.sh;
@@ -2098,5 +2060,5 @@ let
     };
     buildInputs = [pkgconfig libX11 xproto ];
   })) // {inherit libX11 xproto ;};
-    
+
 }; in xorg
diff --git a/pkgs/servers/x11/xorg/extra.list b/pkgs/servers/x11/xorg/extra.list
index f7f139b19c1..2372df2701e 100644
--- a/pkgs/servers/x11/xorg/extra.list
+++ b/pkgs/servers/x11/xorg/extra.list
@@ -1,7 +1,9 @@
-mirror://xorg/individual/lib/pixman-0.26.2.tar.bz2
-mirror://xorg/individual/xcb/xcb-util-0.3.9.tar.bz2
-mirror://xorg/individual/xcb/xcb-util-image-0.3.9.tar.bz2
-mirror://xorg/individual/xcb/xcb-util-keysyms-0.3.9.tar.bz2
-mirror://xorg/individual/xcb/xcb-util-renderutil-0.3.8.tar.bz2
-mirror://xorg/individual/xcb/xcb-util-wm-0.3.9.tar.bz2
-mirror://xorg/individual/xserver/xorg-server-1.13.0.tar.bz2:xorgserver_1_13_0
+http://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.bz2
+http://xcb.freedesktop.org/dist/libxcb-1.9.1.tar.bz2
+http://xcb.freedesktop.org/dist/xcb-proto-1.8.tar.bz2
+http://xcb.freedesktop.org/dist/xcb-util-0.3.9.tar.bz2
+http://xcb.freedesktop.org/dist/xcb-util-image-0.3.9.tar.bz2
+http://xcb.freedesktop.org/dist/xcb-util-keysyms-0.3.9.tar.bz2
+http://xcb.freedesktop.org/dist/xcb-util-renderutil-0.3.8.tar.bz2
+http://xcb.freedesktop.org/dist/xcb-util-wm-0.3.9.tar.bz2
+http://xorg.freedesktop.org/releases/individual/util/util-macros-1.17.tar.bz2
diff --git a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
index 7b00e5e9043..04ee5f10961 100755
--- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
+++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
@@ -2,9 +2,9 @@
 
 # Typical command to generate the list of tarballs:
 
-# export i="mirror://xorg/X11R7.6/src/everything/"; cat $(PRINT_PATH=1 nix-prefetch-url $i | tail -n 1) | perl -e 'while (<>) { if (/(href|HREF)="([^"]*.bz2)"/) { print "$ENV{'i'}$2\n"; }; }' | sort > tarballs-7.6.list
+# export i="mirror://xorg/X11R7.7/src/everything/"; cat $(PRINT_PATH=1 nix-prefetch-url $i | tail -n 1) | perl -e 'while (<>) { if (/(href|HREF)="([^"]*.bz2)"/) { print "$ENV{'i'}$2\n"; }; }' | sort > tarballs-7.7.list
 # manually update extra.list
-# then run: cat tarballs-7.6.list extra.list old.list | perl ./generate-expr-from-tarballs.pl
+# then run: cat tarballs-7.7.list extra.list old.list | perl ./generate-expr-from-tarballs.pl
 # tarballs-x.y.list is generated + changes for individual packages
 # extra.list are packages not contained in the tarballs
 # old.list are packages that used to be part of the tarballs
@@ -65,8 +65,8 @@ while (<>) {
     print "  $pkg $pkgName\n";
 
     if (defined $pkgNames{$pkg}) {
-	print "  SKIPPING\n";
-	next;
+        print "  SKIPPING\n";
+        next;
     }
 
     $pkgURLs{$pkg} = $tarball;
@@ -90,7 +90,7 @@ while (<>) {
     my $provides = `find $pkgDir -name "*.pc.in"`;
     my @provides2 = split '\n', $provides;
     my @requires = ();
-    
+
     foreach my $pcFile (@provides2) {
         my $pc = $pcFile;
         $pc =~ s/.*\///;
@@ -111,7 +111,7 @@ while (<>) {
             }
         }
         close FOO;
-        
+
     }
 
     my $file;
@@ -129,7 +129,7 @@ while (<>) {
     if ($file =~ /zlib is required/ || $file =~ /AC_CHECK_LIB\(z\,/) {
         push @requires, "zlib";
     }
-    
+
     if ($file =~ /Perl is required/) {
         push @requires, "perl";
     }
@@ -151,9 +151,9 @@ while (<>) {
     }
 
     if ($file =~ /AC_PATH_PROG\(FCCACHE/) {
-	# Don't run fc-cache.
-	die if defined $extraAttrs{$pkg};
-	$extraAttrs{$pkg} = " preInstall = \"installFlags=(FCCACHE=true)\"; ";
+        # Don't run fc-cache.
+        die if defined $extraAttrs{$pkg};
+        $extraAttrs{$pkg} = " preInstall = \"installFlags=(FCCACHE=true)\"; ";
     }
 
     my $isFont;
@@ -179,10 +179,10 @@ while (<>) {
 
     sub process {
         my $requires = shift;
-	my $s = shift;
-	$s =~ s/\[/\ /g;
-	$s =~ s/\]/\ /g;
-	$s =~ s/\,/\ /g;
+        my $s = shift;
+        $s =~ s/\[/\ /g;
+        $s =~ s/\]/\ /g;
+        $s =~ s/\,/\ /g;
         foreach my $req (split / /, $s) {
             next if $req eq ">=";
             #next if $req =~ /^\$/;
@@ -211,7 +211,7 @@ while (<>) {
 
     push @requires, "libxslt" if $pkg =~ /libxcb/;
     push @requires, "gperf", "m4", "xproto" if $pkg =~ /xcbutil/;
-    
+
     print "REQUIRES $pkg => @requires\n";
     $pkgRequires{$pkg} = \@requires;
 
@@ -234,6 +234,8 @@ let
 
   xorg = rec {
 
+  inherit pixman;
+
 EOF
 
 
@@ -257,7 +259,7 @@ foreach my $pkg (sort (keys %pkgURLs)) {
 
     my $extraAttrs = $extraAttrs{"$pkg"};
     $extraAttrs = "" unless defined $extraAttrs;
-    
+
     print OUT <<EOF
   $pkg = (stdenv.mkDerivation ((if overrides ? $pkg then overrides.$pkg else x: x) {
     name = "$pkgNames{$pkg}";
@@ -268,7 +270,7 @@ foreach my $pkg (sort (keys %pkgURLs)) {
     };
     buildInputs = [pkgconfig $inputs];$extraAttrs
   })) // {inherit $inputs;};
-    
+
 EOF
 }
 
diff --git a/pkgs/servers/x11/xorg/old.list b/pkgs/servers/x11/xorg/old.list
index 94fae784488..68c88594932 100644
--- a/pkgs/servers/x11/xorg/old.list
+++ b/pkgs/servers/x11/xorg/old.list
@@ -2,10 +2,10 @@ mirror://xorg/individual/app/twm-1.0.7.tar.bz2
 mirror://xorg/individual/app/xclock-1.0.6.tar.bz2
 mirror://xorg/individual/app/xdm-1.1.11.tar.bz2
 mirror://xorg/individual/app/xeyes-1.1.1.tar.bz2
-mirror://xorg/individual/app/xfs-1.1.2.tar.bz2
+mirror://xorg/individual/app/xfs-1.1.3.tar.bz2
 mirror://xorg/individual/app/xinit-1.3.2.tar.bz2
-mirror://xorg/individual/app/xmessage-1.0.3.tar.bz2
-mirror://xorg/individual/lib/libXp-1.0.1.tar.bz2
+mirror://xorg/individual/app/xmessage-1.0.4.tar.bz2
+mirror://xorg/individual/lib/libXp-1.0.2.tar.bz2
 mirror://xorg/individual/lib/libXxf86misc-1.0.3.tar.bz2
 mirror://xorg/individual/proto/printproto-1.0.5.tar.bz2
 mirror://xorg/individual/proto/xf86miscproto-0.9.3.tar.bz2
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index e5b7a9a3402..22e0096ad65 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -1,12 +1,28 @@
-{args, xorg}:
+{ args, xorg }:
+
 let
-   setMalloc0ReturnsNullCrossCompiling = ''
-      if test -n "$crossConfig"; then
-        configureFlags="$configureFlags --enable-malloc0returnsnull";
-      fi
-    '';
+  setMalloc0ReturnsNullCrossCompiling = ''
+    if test -n "$crossConfig"; then
+      configureFlags="$configureFlags --enable-malloc0returnsnull";
+    fi
+  '';
+
+  gitRelease = { libName, version, rev, sha256 } : attrs : attrs // {
+    name = libName + "-" + version;
+    src = args.fetchgit {
+      url = git://anongit.freedesktop.org/xorg/lib/ + libName;
+      inherit rev sha256;
+    };
+    buildInputs = attrs.buildInputs ++ [ xorg.utilmacros  ];
+    preConfigure = (attrs.preConfigure or "") + "\n./autogen.sh";
+  };
+
+  compose = f: g: x: f (g x);
 in
 {
+  encodings = attrs: attrs // {
+    buildInputs = attrs.buildInputs ++ [ xorg.mkfontscale ];
+  };
 
   fontcursormisc = attrs: attrs // {
     buildInputs = attrs.buildInputs ++ [ xorg.mkfontscale ];
@@ -32,25 +48,13 @@ in
   };
 
   libxcb = attrs : attrs // {
-    # I only remove python from the original, and add xproto. I don't know how
-    # to achieve that referring to attrs.buildInputs.
-    # I should use: builtins.unsafeDiscardStringContext
-    buildInputs = [args.pkgconfig args.libxslt xorg.libpthreadstubs /*xorg.python*/
-        xorg.libXau xorg.xcbproto xorg.libXdmcp ] ++ [ xorg.xproto ];
     nativeBuildInputs = [ args.python ];
   };
 
   xcbproto = attrs : attrs // {
-    # I only remove python from the original.
-    buildInputs = [args.pkgconfig  /*xorg.python*/ ];
     nativeBuildInputs = [ args.python ];
   };
 
-  pixman = attrs : attrs // {
-    buildInputs = [ args.pkgconfig ];
-    nativeBuildInputs = [ args.perl ];
-  };
-
   libpciaccess = attrs : attrs // {
     patches = [ ./libpciaccess-apple.patch ];
   };
@@ -64,16 +68,13 @@ in
       '';
   };
 
-  libXrender = attrs: attrs // {
-    preConfigure = setMalloc0ReturnsNullCrossCompiling;
-  };
-
   libXxf86vm = attrs: attrs // {
     preConfigure = setMalloc0ReturnsNullCrossCompiling;
   };
 
   libXrandr = attrs: attrs // {
     preConfigure = setMalloc0ReturnsNullCrossCompiling;
+    propagatedBuildInputs = [xorg.libXrender];
   };
 
   # Propagate some build inputs because of header file dependencies.
@@ -97,18 +98,31 @@ in
   };
 
   libXft = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++
-      [ xorg.xproto xorg.libX11 xorg.renderproto ];
     propagatedBuildInputs = [ xorg.libXrender args.freetype args.fontconfig ];
     preConfigure = setMalloc0ReturnsNullCrossCompiling;
   };
 
   libXext = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++ [xorg.libXau];
-    propagatedBuildInputs = [ xorg.xproto ];
+    propagatedBuildInputs = [ xorg.xproto xorg.libXau ];
     preConfigure = setMalloc0ReturnsNullCrossCompiling;
   };
 
+  libSM = attrs: attrs
+    // { propagatedBuildInputs = [ xorg.libICE ]; };
+
+  libXi = gitRelease {
+    libName = "libXi";
+    version = "1.7.1.91";
+    rev = "661c45ca17c434dbd342a46fd3fb813852ae0ca9";
+    sha256 = "01wx8fgjjfqm0sm9anj6rmz72yvjyb4y3ifjk2q4ixd7pdp63bx6";
+  };
+
+  libXrender = attrs: attrs
+    // { preConfigure = setMalloc0ReturnsNullCrossCompiling; };
+
+  libXvMC = attrs: attrs
+    // { buildInputs = attrs.buildInputs ++ [xorg.renderproto]; };
+
   libXpm = attrs: attrs // {
     patchPhase = "sed -i '/USE_GETTEXT_TRUE/d' sxpm/Makefile.in cxpm/Makefile.in";
   };
@@ -121,94 +135,42 @@ in
       '';
   };
 
-  x11perf = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${args.freetype}/include/freetype2";
-    buildInputs = attrs.buildInputs ++ [ args.freetype args.fontconfig ];
+  utilmacros = attrs: attrs // { # not needed for releases, we propagate the needed tools
+    propagatedBuildInputs = with args; [ automake autoconf libtool ];
   };
 
-  xev = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++ [ xorg.libXrender ];
+  x11perf = attrs: attrs // {
+    buildInputs = attrs.buildInputs ++ [ args.freetype args.fontconfig ];
   };
 
   xf86inputevdev = attrs: attrs // {
     preBuild = "sed -e '/motion_history_proc/d; /history_size/d;' -i src/*.c";
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.kbproto xorg.libxkbfile xorg.randrproto xorg.pixman];
     installFlags = "sdkdir=\${out}/include/xorg";
   };
 
-  xf86inputkeyboard = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86inputmouse = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
+  xf86inputjoystick = attrs: attrs // {
+    installFlags = "sdkdir=\${out}/include/xorg";
   };
 
   xf86inputsynaptics = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [args.mtdev xorg.pixman];
+    buildInputs = attrs.buildInputs ++ [args.mtdev];
     installFlags = "sdkdir=\${out}/include/xorg configdir=\${out}/include/xorg";
   };
 
-  xf86inputvoid = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86videointel = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa];
-  };
-
-  xf86videosis = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa];
-  };
-
-  xf86videoati = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa xorg.pixman];
-  };
-
-  xf86videocirrus = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86videodummy = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86videofbdev = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86videoopenchrome = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman xorg.glproto args.mesa];
-  };
-
-  xf86videonv = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86videovesa = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
+  xf86inputvmmouse = attrs: attrs // {
+    configureFlags = [
+      "--sysconfdir=$(out)/etc"
+      "--with-xorg-conf-dir=$(out)/share/X11/xorg.conf.d"
+      "--with-udev-rules-dir=$(out)/lib/udev/rules.d"
+    ];
   };
 
   xf86videovmware = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman xorg.glproto args.mesa];
+    buildInputs =  attrs.buildInputs ++ [ args.mesa_drivers ]; # for libxatracker
   };
 
   xdriinfo = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa];
+    buildInputs = attrs.buildInputs ++ [args.mesa];
   };
 
   xvinfo = attrs: attrs // {
@@ -219,54 +181,37 @@ in
     NIX_CFLAGS_COMPILE = "-DDFLT_XKB_CONFIG_ROOT=\".\"";
   };
 
-  xorgserver = attrs: attrs // {
-    configureFlags = "--enable-xcsecurity"; # enable SECURITY extension
-    patches = [./xorgserver-dri-path.patch ./xorgserver-xkbcomp-path.patch ./xorgserver12-CVE-1940.patch];
-    buildInputs = attrs.buildInputs ++
-      [ args.zlib args.udev args.mesa args.dbus.libs
-        xorg.xf86bigfontproto xorg.glproto xorg.xf86driproto
-        xorg.compositeproto xorg.scrnsaverproto xorg.resourceproto
-        xorg.xineramaproto xorg.xf86dgaproto
-        xorg.dmxproto xorg.libdmx xorg.xf86vidmodeproto
-        xorg.recordproto xorg.libXext xorg.pixman xorg.libXfont
-        xorg.damageproto xorg.xcmiscproto xorg.xtrans xorg.bigreqsproto
-      ];
-    propagatedBuildInputs =
-      [ xorg.libpciaccess xorg.inputproto xorg.xextproto xorg.randrproto
-        xorg.dri2proto xorg.kbproto
-      ];
-    postInstall =
-      ''
-        rm -fr $out/share/X11/xkb/compiled
-        ln -s /var/tmp $out/share/X11/xkb/compiled
-      '';
+  xkeyboardconfig = attrs: attrs // {
+    buildInputs = attrs.buildInputs ++ [args.intltool];
   };
 
-  xorgserver_1_13_0 = attrs: attrs // {
-    configureFlags = "--enable-xcsecurity"; # enable SECURITY extension
+  xorgserver = with xorg; attrs: attrs // {
+    configureFlags = [
+      "--enable-xcsecurity" # enable SECURITY extension
+      "--with-default-font-path= "  # there were only paths containing "${prefix}",
+                                    # and there are no fonts in this package anyway
+    ];
     patches = [./xorgserver-dri-path.patch ./xorgserver-xkbcomp-path.patch];
-    buildInputs = attrs.buildInputs ++
-      [ args.zlib args.udev args.mesa args.dbus.libs
-        xorg.xf86bigfontproto xorg.glproto xorg.xf86driproto
-        xorg.compositeproto xorg.scrnsaverproto xorg.resourceproto
-        xorg.xineramaproto xorg.xf86dgaproto
-        xorg.dmxproto xorg.libdmx xorg.xf86vidmodeproto
-        xorg.recordproto xorg.libXext xorg.pixman xorg.libXfont
-        xorg.damageproto xorg.xcmiscproto xorg.xtrans xorg.bigreqsproto
-      ];
+    buildInputs = attrs.buildInputs ++ [ xtrans ];
     propagatedBuildInputs =
-      [ xorg.libpciaccess xorg.inputproto xorg.xextproto xorg.randrproto
-        xorg.dri2proto xorg.kbproto
+      [ args.zlib args.udev args.mesa args.dbus.libs
+        xf86bigfontproto glproto xf86driproto
+        compositeproto scrnsaverproto resourceproto
+        xf86dgaproto
+        dmxproto /*libdmx not used*/ xf86vidmodeproto
+        recordproto libXext pixman libXfont
+        damageproto xcmiscproto  bigreqsproto
+        libpciaccess inputproto xextproto randrproto renderproto
+        dri2proto kbproto xineramaproto resourceproto scrnsaverproto videoproto
       ];
     postInstall =
       ''
         rm -fr $out/share/X11/xkb/compiled
         ln -s /var/tmp $out/share/X11/xkb/compiled
       '';
+    passthru.version = (builtins.parseDrvName attrs.name).version; # needed by virtualbox guest additions
   };
 
-  libSM = attrs: attrs
-    // { propagatedBuildInputs = [ xorg.libICE ]; };
 
   lndir = attrs: attrs // {
     preConfigure = ''
@@ -279,12 +224,13 @@ in
     nativeBuildInputs = [args.bison args.flex];
   };
 
-  xbacklight = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++ [xorg.libXrender];
+  xcursorthemes = attrs: attrs // {
+    buildInputs = attrs.buildInputs ++ [xorg.xcursorgen];
+    configureFlags = "--with-cursordir=$(out)/share/icons";
   };
 
   xinput = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++ [xorg.libXrender];
+    propagatedBuildInputs = [xorg.libXfixes];
   };
 
   xinit = attrs: attrs // {
@@ -295,6 +241,10 @@ in
     '';
   };
 
+  xf86videointel = attrs: attrs // {
+    buildInputs = attrs.buildInputs ++ [xorg.libXfixes];
+  };
+
   xwd = attrs: attrs // {
     buildInputs = attrs.buildInputs ++ [xorg.libXt];
   };
diff --git a/pkgs/servers/x11/xorg/tarballs-7.7.list b/pkgs/servers/x11/xorg/tarballs-7.7.list
index 7b361636264..2517da4a20f 100644
--- a/pkgs/servers/x11/xorg/tarballs-7.7.list
+++ b/pkgs/servers/x11/xorg/tarballs-7.7.list
@@ -46,44 +46,42 @@ mirror://xorg/X11R7.7/src/everything/font-winitzki-cyrillic-1.0.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/font-xfree86-type1-1.0.4.tar.bz2
 mirror://xorg/individual/proto/glproto-1.4.16.tar.bz2
 mirror://xorg/X11R7.7/src/everything/iceauth-1.0.5.tar.bz2
-mirror://xorg/X11R7.7/src/everything/inputproto-2.2.tar.bz2
+mirror://xorg/individual/proto/inputproto-2.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/kbproto-1.0.6.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libAppleWM-1.4.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libdmx-1.1.2.tar.bz2
+mirror://xorg/individual/lib/libdmx-1.1.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libfontenc-1.1.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libFS-1.0.4.tar.bz2
+mirror://xorg/individual/lib/libFS-1.0.5.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libICE-1.0.8.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libpciaccess-0.13.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libpthread-stubs-0.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libSM-1.2.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libWindowsWM-1.0.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libX11-1.5.0.tar.bz2
+mirror://xorg/individual/lib/libX11-1.6.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXau-1.0.7.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXaw-1.0.11.tar.bz2
-mirror://xorg/individual/xcb/libxcb-1.9.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXcomposite-0.4.3.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXcursor-1.1.13.tar.bz2
+mirror://xorg/individual/lib/libXcursor-1.1.14.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXdamage-1.1.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXdmcp-1.1.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXext-1.3.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXfixes-5.0.tar.bz2
+mirror://xorg/individual/lib/libXext-1.3.2.tar.bz2
+mirror://xorg/individual/lib/libXfixes-5.0.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXfont-1.4.5.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXft-2.3.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXi-1.6.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXinerama-1.1.2.tar.bz2
+mirror://xorg/individual/lib/libXi-1.7.1.tar.bz2
+mirror://xorg/individual/lib/libXinerama-1.1.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libxkbfile-1.0.8.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXmu-1.1.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXpm-3.5.10.tar.bz2
-mirror://xorg/individual/lib/libXrandr-1.4.0.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXrender-0.9.7.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXres-1.0.6.tar.bz2
+mirror://xorg/individual/lib/libXrandr-1.4.1.tar.bz2
+mirror://xorg/individual/lib/libXrender-0.9.8.tar.bz2
+mirror://xorg/individual/lib/libXres-1.0.7.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXScrnSaver-1.2.2.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXt-1.1.3.tar.bz2
+mirror://xorg/individual/lib/libXt-1.1.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXtst-1.2.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXv-1.0.7.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXvMC-1.0.7.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXxf86dga-1.1.3.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libXxf86vm-1.1.2.tar.bz2
+mirror://xorg/individual/lib/libXv-1.0.8.tar.bz2
+mirror://xorg/individual/lib/libXvMC-1.0.8.tar.bz2
+mirror://xorg/individual/lib/libXxf86dga-1.1.4.tar.bz2
+mirror://xorg/individual/lib/libXxf86vm-1.1.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/luit-1.1.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/makedepend-1.0.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/mkfontdir-1.0.7.tar.bz2
@@ -103,7 +101,6 @@ mirror://xorg/X11R7.7/src/everything/x11perf-1.5.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xauth-1.0.7.tar.bz2
 mirror://xorg/individual/app/xbacklight-1.2.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xbitmaps-1.1.1.tar.bz2
-mirror://xorg/individual/xcb/xcb-proto-1.8.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xcmiscproto-1.2.2.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xcmsdb-1.0.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xcursorgen-1.0.5.tar.bz2
@@ -116,42 +113,42 @@ mirror://xorg/X11R7.7/src/everything/xf86bigfontproto-1.2.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86dgaproto-2.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86driproto-2.1.1.tar.bz2
 mirror://xorg/individual/driver/xf86-input-evdev-2.7.3.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-input-joystick-1.6.1.tar.bz2
+mirror://xorg/individual/driver/xf86-input-joystick-1.6.2.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86-input-keyboard-1.6.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86-input-mouse-1.7.2.tar.bz2
 mirror://xorg/individual/driver/xf86-input-synaptics-1.6.2.tar.bz2
-mirror://xorg/individual/driver/xf86-input-vmmouse-12.9.0.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-input-void-1.4.0.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-ark-0.7.4.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-ast-0.93.10.tar.bz2
-mirror://xorg/individual/driver/xf86-video-ati-6.14.4.tar.bz2
+mirror://xorg/individual/driver/xf86-input-vmmouse-13.0.0.tar.bz2
+mirror://xorg/individual/driver/xf86-input-void-1.4.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-ark-0.7.5.tar.bz2
+mirror://xorg/individual/driver/xf86-video-ast-0.97.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-ati-7.1.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-cirrus-1.5.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-dummy-0.3.5.tar.bz2
+mirror://xorg/individual/driver/xf86-video-dummy-0.3.6.tar.bz2
 mirror://xorg/individual/driver/xf86-video-fbdev-0.4.3.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-geode-2.11.13.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-glide-1.2.0.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-glint-1.2.7.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-i128-1.3.5.tar.bz2
-mirror://xorg/individual/driver/xf86-video-intel-2.20.10.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-mach64-6.9.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-mga-1.5.0.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-neomagic-1.2.6.tar.bz2
+mirror://xorg/individual/driver/xf86-video-geode-2.11.14.tar.bz2
+mirror://xorg/individual/driver/xf86-video-glide-1.2.1.tar.bz2
+mirror://xorg/individual/driver/xf86-video-glint-1.2.8.tar.bz2
+mirror://xorg/individual/driver/xf86-video-i128-1.3.6.tar.bz2
+mirror://xorg/individual/driver/xf86-video-intel-2.21.9.tar.bz2
+mirror://xorg/individual/driver/xf86-video-mach64-6.9.4.tar.bz2
+mirror://xorg/individual/driver/xf86-video-mga-1.6.2.tar.bz2
+mirror://xorg/individual/driver/xf86-video-neomagic-1.2.7.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86-video-newport-0.2.4.tar.bz2
 mirror://xorg/individual/driver/xf86-video-nv-2.1.20.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-openchrome-0.2.906.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-r128-6.8.2.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-savage-2.3.4.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-siliconmotion-1.7.6.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-sis-0.10.4.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-suncg6-1.1.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-sunffb-1.2.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-tdfx-1.4.4.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-tga-1.2.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-trident-1.3.5.tar.bz2
+mirror://xorg/individual/driver/xf86-video-openchrome-0.3.3.tar.bz2
+mirror://xorg/individual/driver/xf86-video-r128-6.9.1.tar.bz2
+mirror://xorg/individual/driver/xf86-video-savage-2.3.6.tar.bz2
+mirror://xorg/individual/driver/xf86-video-siliconmotion-1.7.7.tar.bz2
+mirror://xorg/individual/driver/xf86-video-sis-0.10.7.tar.bz2
+mirror://xorg/individual/driver/xf86-video-suncg6-1.1.2.tar.bz2
+mirror://xorg/individual/driver/xf86-video-sunffb-1.2.2.tar.bz2
+mirror://xorg/individual/driver/xf86-video-tdfx-1.4.5.tar.bz2
+mirror://xorg/individual/driver/xf86-video-tga-1.2.2.tar.bz2
+mirror://xorg/individual/driver/xf86-video-trident-1.3.6.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86-video-v4l-0.2.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-vesa-2.3.2.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-vmware-12.0.2.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-voodoo-1.2.4.tar.bz2
+mirror://xorg/individual/driver/xf86-video-vmware-13.0.1.tar.bz2
+mirror://xorg/individual/driver/xf86-video-voodoo-1.2.5.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86-video-wsfb-0.4.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86vidmodeproto-2.3.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xgamma-1.0.5.tar.bz2
@@ -161,13 +158,13 @@ mirror://xorg/X11R7.7/src/everything/xinput-1.6.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xkbcomp-1.2.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xkbevd-1.1.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xkbutils-1.0.3.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xkeyboard-config-2.6.tar.bz2
+mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.8.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xkill-1.0.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xlsatoms-1.1.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xlsclients-1.1.2.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xmodmap-1.0.7.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xorg-docs-1.7.tar.bz2
-mirror://xorg/individual/xserver/xorg-server-1.12.4.tar.bz2
+mirror://xorg/individual/xserver/xorg-server-1.13.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xorg-sgml-doctools-1.11.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xpr-1.0.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xprop-1.2.1.tar.bz2
diff --git a/pkgs/stdenv/generic/setup-repeatable.sh b/pkgs/stdenv/generic/setup-repeatable.sh
new file mode 100644
index 00000000000..3b2e0151932
--- /dev/null
+++ b/pkgs/stdenv/generic/setup-repeatable.sh
@@ -0,0 +1,876 @@
+# Run the named hook, either by calling the function with that name or
+# by evaluating the variable with that name.  This allows convenient
+# setting of hooks both from Nix expressions (as attributes /
+# environment variables) and from shell scripts (as functions).
+runHook() {
+    local hookName="$1"
+    case "$(type -t $hookName)" in
+        (function|alias|builtin) $hookName;;
+        (file) source $hookName;;
+        (keyword) :;;
+        (*) eval "${!hookName}";;
+    esac
+}
+
+
+exitHandler() {
+    exitCode=$?
+    set +e
+
+    closeNest
+
+    if [ -n "$showBuildStats" ]; then
+        times > "$NIX_BUILD_TOP/.times"
+        local -a times=($(cat "$NIX_BUILD_TOP/.times"))
+        # Print the following statistics:
+        # - user time for the shell
+        # - system time for the shell
+        # - user time for all child processes
+        # - system time for all child processes
+        echo "build time elapsed: " ${times[*]}
+    fi
+
+    if [ $exitCode != 0 ]; then
+        runHook failureHook
+
+        # If the builder had a non-zero exit code and
+        # $succeedOnFailure is set, create the file
+        # `$out/nix-support/failed' to signal failure, and exit
+        # normally.  Otherwise, return the original exit code.
+        if [ -n "$succeedOnFailure" ]; then
+            echo "build failed with exit code $exitCode (ignored)"
+            mkdir -p "$out/nix-support"
+            echo -n $exitCode > "$out/nix-support/failed"
+            exit 0
+        fi
+
+    else
+        runHook exitHook
+    fi
+
+    exit $exitCode
+}
+
+trap "exitHandler" EXIT
+
+
+######################################################################
+# Helper functions that might be useful in setup hooks.
+
+
+addToSearchPathWithCustomDelimiter() {
+    local delimiter=$1
+    local varName=$2
+    local dir=$3
+    if [ -d "$dir" ]; then
+        eval export ${varName}=${!varName}${!varName:+$delimiter}${dir}
+    fi
+}
+
+PATH_DELIMITER=':'
+
+addToSearchPath() {
+    addToSearchPathWithCustomDelimiter "${PATH_DELIMITER}" "$@"
+}
+
+
+######################################################################
+# Initialisation.
+
+set -e
+
+[ -z $NIX_GCC ] && NIX_GCC=@gcc@
+
+
+# Wildcard expansions that don't match should expand to an empty list.
+# This ensures that, for instance, "for i in *; do ...; done" does the
+# right thing.
+shopt -s nullglob
+
+
+# Set up the initial path.
+PATH=
+for i in $NIX_GCC @initialPath@; do
+    if [ "$i" = / ]; then i=; fi
+    addToSearchPath PATH $i/bin
+done
+
+if [ "$NIX_DEBUG" = 1 ]; then
+    echo "initial path: $PATH"
+fi
+
+
+# Execute the pre-hook.
+export SHELL=@shell@
+if [ -z "$shell" ]; then export shell=@shell@; fi
+runHook preHook
+
+
+# Check that the pre-hook initialised SHELL.
+if [ -z "$SHELL" ]; then echo "SHELL not set"; exit 1; fi
+
+
+# Hack: run gcc's setup hook.
+envHooks=()
+crossEnvHooks=()
+if [ -f $NIX_GCC/nix-support/setup-hook ]; then
+    source $NIX_GCC/nix-support/setup-hook
+fi
+
+
+# Ensure that the given directories exists.
+ensureDir() {
+    local dir
+    for dir in "$@"; do
+        if ! [ -x "$dir" ]; then mkdir -p "$dir"; fi
+    done
+}
+
+installBin() {
+    mkdir -p $out/bin
+    cp "$@" $out/bin
+}
+
+
+# Allow the caller to augment buildInputs (it's not always possible to
+# do this before the call to setup.sh, since the PATH is empty at that
+# point; here we have a basic Unix environment).
+runHook addInputsHook
+
+
+# Recursively find all build inputs.
+findInputs() {
+    local pkg=$1
+    local var=$2
+    local propagatedBuildInputsFile=$3
+
+    case ${!var} in
+        *\ $pkg\ *)
+            return 0
+            ;;
+    esac
+
+    eval $var="'${!var} $pkg '"
+
+    if [ -f $pkg/nix-support/setup-hook ]; then
+        source $pkg/nix-support/setup-hook
+    fi
+
+    if [ -f $pkg/nix-support/$propagatedBuildInputsFile ]; then
+        for i in $(cat $pkg/nix-support/$propagatedBuildInputsFile); do
+            findInputs $i $var $propagatedBuildInputsFile
+        done
+    fi
+}
+
+crossPkgs=""
+for i in $buildInputs $propagatedBuildInputs; do
+    findInputs $i crossPkgs propagated-build-inputs
+done
+
+nativePkgs=""
+for i in $nativeBuildInputs $propagatedNativeBuildInputs; do
+    findInputs $i nativePkgs propagated-native-build-inputs
+done
+
+
+# Set the relevant environment variables to point to the build inputs
+# found above.
+addToNativeEnv() {
+    local pkg=$1
+
+    if [ -d $1/bin ]; then
+        addToSearchPath _PATH $1/bin
+    fi
+
+    # Run the package-specific hooks set by the setup-hook scripts.
+    for i in "${envHooks[@]}"; do
+        $i $pkg
+    done
+}
+
+for i in $nativePkgs; do
+    addToNativeEnv $i
+done
+
+addToCrossEnv() {
+    local pkg=$1
+
+    # Some programs put important build scripts (freetype-config and similar)
+    # into their crossDrv bin path. Intentionally these should go after
+    # the nativePkgs in PATH.
+    if [ -d $1/bin ]; then
+        addToSearchPath _PATH $1/bin
+    fi
+
+    # Run the package-specific hooks set by the setup-hook scripts.
+    for i in "${crossEnvHooks[@]}"; do
+        $i $pkg
+    done
+}
+
+for i in $crossPkgs; do
+    addToCrossEnv $i
+done
+
+
+# Add the output as an rpath.
+if [ "$NIX_NO_SELF_RPATH" != 1 ]; then
+    export NIX_LDFLAGS="-rpath $out/lib $NIX_LDFLAGS"
+    if [ -n "$NIX_LIB64_IN_SELF_RPATH" ]; then
+        export NIX_LDFLAGS="-rpath $out/lib64 $NIX_LDFLAGS"
+    fi
+    if [ -n "$NIX_LIB32_IN_SELF_RPATH" ]; then
+        export NIX_LDFLAGS="-rpath $out/lib32 $NIX_LDFLAGS"
+    fi
+fi
+
+
+# Set the TZ (timezone) environment variable, otherwise commands like
+# `date' will complain (e.g., `Tue Mar 9 10:01:47 Local time zone must
+# be set--see zic manual page 2004').
+export TZ=UTC
+
+
+# Set the prefix.  This is generally $out, but it can be overriden,
+# for instance if we just want to perform a test build/install to a
+# temporary location and write a build report to $out.
+if [ -z "$prefix" ]; then
+    prefix="$out";
+fi
+
+if [ "$useTempPrefix" = 1 ]; then
+    prefix="$NIX_BUILD_TOP/tmp_prefix";
+fi
+
+
+PATH=$_PATH${_PATH:+:}$PATH
+if [ "$NIX_DEBUG" = 1 ]; then
+    echo "final path: $PATH"
+fi
+
+
+# Make GNU Make produce nested output.
+export NIX_INDENT_MAKE=1
+
+
+# Normalize the NIX_BUILD_CORES variable. The value might be 0, which
+# means that we're supposed to try and auto-detect the number of
+# available CPU cores at run-time.
+
+if [ -z "${NIX_BUILD_CORES:-}" ]; then
+  NIX_BUILD_CORES="1"
+elif [ "$NIX_BUILD_CORES" -le 0 ]; then
+  NIX_BUILD_CORES=$(nproc 2>/dev/null || true)
+  if expr >/dev/null 2>&1 "$NIX_BUILD_CORES" : "^[0-9][0-9]*$"; then
+    :
+  else
+    NIX_BUILD_CORES="1"
+  fi
+fi
+export NIX_BUILD_CORES
+
+
+######################################################################
+# Misc. helper functions.
+
+
+stripDirs() {
+    local dirs="$1"
+    local stripFlags="$2"
+    local dirsNew=
+
+    for d in ${dirs}; do
+        if [ -d "$prefix/$d" ]; then
+            dirsNew="${dirsNew} $prefix/$d "
+        fi
+    done
+    dirs=${dirsNew}
+
+    if [ -n "${dirs}" ]; then
+        header "stripping (with flags $stripFlags) in $dirs"
+        find $dirs -type f -print0 | xargs -0 ${xargsFlags:--r} strip $stripFlags || true
+        stopNest
+    fi
+}
+
+
+######################################################################
+# Textual substitution functions.
+
+
+substitute() {
+    local input="$1"
+    local output="$2"
+
+    local -a params=("$@")
+
+    local n p pattern replacement varName
+
+    local content="$(cat $input)"
+
+    for ((n = 2; n < ${#params[*]}; n += 1)); do
+        p=${params[$n]}
+
+        if [ "$p" = --replace ]; then
+            pattern="${params[$((n + 1))]}"
+            replacement="${params[$((n + 2))]}"
+            n=$((n + 2))
+        fi
+
+        if [ "$p" = --subst-var ]; then
+            varName="${params[$((n + 1))]}"
+            pattern="@$varName@"
+            replacement="${!varName}"
+            n=$((n + 1))
+        fi
+
+        if [ "$p" = --subst-var-by ]; then
+            pattern="@${params[$((n + 1))]}@"
+            replacement="${params[$((n + 2))]}"
+            n=$((n + 2))
+        fi
+
+        content="${content//"$pattern"/$replacement}"
+    done
+
+    # !!! This doesn't work properly if $content is "-n".
+    echo -n "$content" > "$output".tmp
+    if [ -x "$output" ]; then chmod +x "$output".tmp; fi
+    mv -f "$output".tmp "$output"
+}
+
+
+substituteInPlace() {
+    local fileName="$1"
+    shift
+    substitute "$fileName" "$fileName" "$@"
+}
+
+
+substituteAll() {
+    local input="$1"
+    local output="$2"
+
+    # Select all environment variables that start with a lowercase character.
+    for envVar in $(env | sed "s/^[^a-z].*//" | sed "s/^\([^=]*\)=.*/\1/"); do
+        if [ "$NIX_DEBUG" = "1" ]; then
+            echo "$envVar -> ${!envVar}"
+        fi
+        args="$args --subst-var $envVar"
+    done
+
+    substitute "$input" "$output" $args
+}
+
+
+substituteAllInPlace() {
+    local fileName="$1"
+    shift
+    substituteAll "$fileName" "$fileName" "$@"
+}
+
+
+######################################################################
+# What follows is the generic builder.
+
+
+nestingLevel=0
+
+startNest() {
+    nestingLevel=$(($nestingLevel + 1))
+    echo -en "\033[$1p"
+}
+
+stopNest() {
+    nestingLevel=$(($nestingLevel - 1))
+    echo -en "\033[q"
+}
+
+header() {
+    startNest "$2"
+    echo "$1"
+}
+
+# Make sure that even when we exit abnormally, the original nesting
+# level is properly restored.
+closeNest() {
+    while [ $nestingLevel -gt 0 ]; do
+        stopNest
+    done
+}
+
+
+# This function is useful for debugging broken Nix builds.  It dumps
+# all environment variables to a file `env-vars' in the build
+# directory.  If the build fails and the `-K' option is used, you can
+# then go to the build directory and source in `env-vars' to reproduce
+# the environment used for building.
+dumpVars() {
+    if [ "$noDumpEnvVars" != 1 ]; then
+        export > "$NIX_BUILD_TOP/env-vars"
+    fi
+}
+
+
+# Utility function: return the base name of the given path, with the
+# prefix `HASH-' removed, if present.
+stripHash() {
+    strippedName=$(basename $1);
+    if echo "$strippedName" | grep -q '^[a-z0-9]\{32\}-'; then
+        strippedName=$(echo "$strippedName" | cut -c34-)
+    fi
+}
+
+
+unpackFile() {
+    curSrc="$1"
+    local cmd
+
+    header "unpacking source archive $curSrc" 3
+
+    case "$curSrc" in
+        *.tar.xz | *.tar.lzma)
+            # Don't rely on tar knowing about .xz.
+            xz -d < $curSrc | tar xf -
+            ;;
+        *.tar | *.tar.* | *.tgz | *.tbz2)
+            # GNU tar can automatically select the decompression method
+            # (info "(tar) gzip").
+            tar xf $curSrc
+            ;;
+        *.zip)
+            unzip -qq $curSrc
+            ;;
+        *)
+            if [ -d "$curSrc" ]; then
+                stripHash $curSrc
+                cp -prd --no-preserve=timestamps $curSrc $strippedName
+            else
+                if [ -z "$unpackCmd" ]; then
+                    echo "source archive $curSrc has unknown type"
+                    exit 1
+                fi
+                runHook unpackCmd
+            fi
+            ;;
+    esac
+
+    stopNest
+}
+
+
+unpackPhase() {
+    runHook preUnpack
+
+    if [ -z "$srcs" ]; then
+        if [ -z "$src" ]; then
+            echo 'variable $src or $srcs should point to the source'
+            exit 1
+        fi
+        srcs="$src"
+    fi
+
+    # To determine the source directory created by unpacking the
+    # source archives, we record the contents of the current
+    # directory, then look below which directory got added.  Yeah,
+    # it's rather hacky.
+    local dirsBefore=""
+    for i in *; do
+        if [ -d "$i" ]; then
+            dirsBefore="$dirsBefore $i "
+        fi
+    done
+
+    # Unpack all source archives.
+    for i in $srcs; do
+        unpackFile $i
+    done
+
+    # Find the source directory.
+    if [ -n "$setSourceRoot" ]; then
+        runHook setSourceRoot
+    elif [ -z "$sourceRoot" ]; then
+        sourceRoot=
+        for i in *; do
+            if [ -d "$i" ]; then
+                case $dirsBefore in
+                    *\ $i\ *)
+                        ;;
+                    *)
+                        if [ -n "$sourceRoot" ]; then
+                            echo "unpacker produced multiple directories"
+                            exit 1
+                        fi
+                        sourceRoot="$i"
+                        ;;
+                esac
+            fi
+        done
+    fi
+
+    if [ -z "$sourceRoot" ]; then
+        echo "unpacker appears to have produced no directories"
+        exit 1
+    fi
+
+    echo "source root is $sourceRoot"
+
+    # By default, add write permission to the sources.  This is often
+    # necessary when sources have been copied from other store
+    # locations.
+    if [ "$dontMakeSourcesWritable" != 1 ]; then
+        chmod -R u+w "$sourceRoot"
+    fi
+
+    runHook postUnpack
+}
+
+
+patchPhase() {
+    runHook prePatch
+
+    for i in $patches; do
+        header "applying patch $i" 3
+        local uncompress=cat
+        case $i in
+            *.gz)
+                uncompress="gzip -d"
+                ;;
+            *.bz2)
+                uncompress="bzip2 -d"
+                ;;
+            *.lzma)
+                uncompress="lzma -d"
+                ;;
+        esac
+        $uncompress < $i | patch ${patchFlags:--p1}
+        stopNest
+    done
+
+    runHook postPatch
+}
+
+
+fixLibtool() {
+    sed -i -e 's^eval sys_lib_.*search_path=.*^^' "$1"
+}
+
+
+configurePhase() {
+    runHook preConfigure
+
+    if [ -z "$configureScript" ]; then
+        configureScript=./configure
+        if ! [ -x $configureScript ]; then
+            echo "no configure script, doing nothing"
+            return
+        fi
+    fi
+
+    if [ -z "$dontFixLibtool" ]; then
+        for i in $(find . -name "ltmain.sh"); do
+            echo "fixing libtool script $i"
+            fixLibtool $i
+        done
+    fi
+
+    if [ -z "$dontAddPrefix" ]; then
+        configureFlags="${prefixKey:---prefix=}$prefix $configureFlags"
+    fi
+
+    # Add --disable-dependency-tracking to speed up some builds.
+    if [ -z "$dontAddDisableDepTrack" ]; then
+        if grep -q dependency-tracking $configureScript; then
+            configureFlags="--disable-dependency-tracking $configureFlags"
+        fi
+    fi
+
+    # By default, disable static builds.
+    if [ -z "$dontDisableStatic" ]; then
+        if grep -q enable-static $configureScript; then
+            configureFlags="--disable-static $configureFlags"
+        fi
+    fi
+
+    echo "configure flags: $configureFlags ${configureFlagsArray[@]}"
+    $configureScript $configureFlags "${configureFlagsArray[@]}"
+
+    runHook postConfigure
+}
+
+
+buildPhase() {
+    runHook preBuild
+
+    if [ -z "$makeFlags" ] && ! [ -n "$makefile" -o -e "Makefile" -o -e "makefile" -o -e "GNUmakefile" ]; then
+        echo "no Makefile, doing nothing"
+        return
+    fi
+
+    echo "make flags: $makeFlags ${makeFlagsArray[@]} $buildFlags ${buildFlagsArray[@]}"
+    make ${makefile:+-f $makefile} \
+        ${enableParallelBuilding:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} \
+        $makeFlags "${makeFlagsArray[@]}" \
+        $buildFlags "${buildFlagsArray[@]}"
+
+    runHook postBuild
+}
+
+
+checkPhase() {
+    runHook preCheck
+
+    echo "check flags: $makeFlags ${makeFlagsArray[@]} $checkFlags ${checkFlagsArray[@]}"
+    make ${makefile:+-f $makefile} \
+        ${enableParallelBuilding:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} \
+        $makeFlags "${makeFlagsArray[@]}" \
+        ${checkFlags:-VERBOSE=y} "${checkFlagsArray[@]}" ${checkTarget:-check}
+
+    runHook postCheck
+}
+
+
+patchELF() {
+    # Patch all ELF executables and shared libraries.
+    header "patching ELF executables and libraries"
+    if [ -e "$prefix" ]; then
+        find "$prefix" \( \
+            \( -type f -a -name "*.so*" \) -o \
+            \( -type f -a -perm +0100 \) \
+            \) -print -exec patchelf --shrink-rpath {} \;
+    fi
+    stopNest
+}
+
+
+patchShebangs() {
+    # Rewrite all script interpreter file names (`#! /path') under the
+    # specified  directory tree to paths found in $PATH.  E.g.,
+    # /bin/sh will be rewritten to /nix/store/<hash>-some-bash/bin/sh.
+    # Interpreters that are already in the store are left untouched.
+    header "patching script interpreter paths"
+    local dir="$1"
+    local f
+    for f in $(find "$dir" -type f -perm +0100); do
+        local oldPath=$(sed -ne '1 s,^#![ ]*\([^ ]*\).*$,\1,p' "$f")
+        if [ -n "$oldPath" -a "${oldPath:0:${#NIX_STORE}}" != "$NIX_STORE" ]; then
+            local newPath=$(type -P $(basename $oldPath) || true)
+            if [ -n "$newPath" -a "$newPath" != "$oldPath" ]; then
+                echo "$f: interpreter changed from $oldPath to $newPath"
+                sed -i -e "1 s,$oldPath,$newPath," "$f"
+            fi
+        fi
+    done
+    stopNest
+}
+
+
+installPhase() {
+    runHook preInstall
+
+    mkdir -p "$prefix"
+
+    installTargets=${installTargets:-install}
+    echo "install flags: $installTargets $makeFlags ${makeFlagsArray[@]} $installFlags ${installFlagsArray[@]}"
+    make ${makefile:+-f $makefile} $installTargets \
+        $makeFlags "${makeFlagsArray[@]}" \
+        $installFlags "${installFlagsArray[@]}"
+
+    runHook postInstall
+}
+
+
+# The fixup phase performs generic, package-independent, Nix-related
+# stuff, like running patchelf and setting the
+# propagated-build-inputs.  It should rarely be overriden.
+fixupPhase() {
+    runHook preFixup
+
+    # Put man/doc/info under $out/share.
+    forceShare=${forceShare:=man doc info}
+    if [ -n "$forceShare" ]; then
+        for d in $forceShare; do
+            if [ -d "$prefix/$d" ]; then
+                if [ -d "$prefix/share/$d" ]; then
+                    echo "both $d/ and share/$d/ exists!"
+                else
+                    echo "fixing location of $d/ subdirectory"
+                    mkdir -p $prefix/share
+                    if [ -w $prefix/share ]; then
+                        mv -v $prefix/$d $prefix/share
+                        ln -sv share/$d $prefix
+                    fi
+                fi
+            fi
+        done;
+    fi
+
+    if [ -z "$dontGzipMan" ]; then
+        GLOBIGNORE=.:..:*.gz:*.bz2
+        for f in $out/share/man/*/* $out/share/man/*/*/*; do
+            if [ -f $f ]; then
+                if gzip -c -n $f > $f.gz; then
+                    rm $f
+                else
+                    rm $f.gz
+                fi
+            fi
+        done
+        unset GLOBIGNORE
+    fi
+
+    # TODO: strip _only_ ELF executables, and return || fail here...
+    if [ -z "$dontStrip" ]; then
+        stripDebugList=${stripDebugList:-lib lib32 lib64 libexec bin sbin}
+        if [ -n "$stripDebugList" ]; then
+            stripDirs "$stripDebugList" "${stripDebugFlags:--S --enable-deterministic-archives}"
+        fi
+
+        stripAllList=${stripAllList:-}
+        if [ -n "$stripAllList" ]; then
+            stripDirs "$stripAllList" "${stripAllFlags:--s --enable-deterministic-archives}"
+        fi
+    fi
+
+    if [ "$havePatchELF" = 1 -a -z "$dontPatchELF" ]; then
+        patchELF "$prefix"
+    fi
+
+    if [ -z "$dontPatchShebangs" ]; then
+        patchShebangs "$prefix"
+    fi
+
+    if [ -n "$propagatedBuildInputs" ]; then
+        mkdir -p "$out/nix-support"
+        echo "$propagatedBuildInputs" > "$out/nix-support/propagated-build-inputs"
+    fi
+
+    if [ -n "$propagatedNativeBuildInputs" ]; then
+        mkdir -p "$out/nix-support"
+        echo "$propagatedNativeBuildInputs" > "$out/nix-support/propagated-native-build-inputs"
+    fi
+
+    if [ -n "$propagatedUserEnvPkgs" ]; then
+        mkdir -p "$out/nix-support"
+        echo "$propagatedUserEnvPkgs" > "$out/nix-support/propagated-user-env-packages"
+    fi
+
+    if [ -n "$setupHook" ]; then
+        mkdir -p "$out/nix-support"
+        substituteAll "$setupHook" "$out/nix-support/setup-hook"
+    fi
+
+    runHook postFixup
+}
+
+
+installCheckPhase() {
+    runHook preInstallCheck
+
+    echo "installcheck flags: $makeFlags ${makeFlagsArray[@]} $installCheckFlags ${installCheckFlagsArray[@]}"
+    make ${makefile:+-f $makefile} \
+        ${enableParallelBuilding:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} \
+        $makeFlags "${makeFlagsArray[@]}" \
+        $installCheckFlags "${installCheckFlagsArray[@]}" ${installCheckTarget:-installcheck}
+
+    runHook postInstallCheck
+}
+
+
+distPhase() {
+    runHook preDist
+
+    echo "dist flags: $distFlags ${distFlagsArray[@]}"
+    make ${makefile:+-f $makefile} $distFlags "${distFlagsArray[@]}" ${distTarget:-dist}
+
+    if [ "$dontCopyDist" != 1 ]; then
+        mkdir -p "$out/tarballs"
+
+        # Note: don't quote $tarballs, since we explicitly permit
+        # wildcards in there.
+        cp -pvd ${tarballs:-*.tar.gz} $out/tarballs
+    fi
+
+    runHook postDist
+}
+
+
+showPhaseHeader() {
+    local phase="$1"
+    case $phase in
+        unpackPhase) header "unpacking sources";;
+        patchPhase) header "patching sources";;
+        configurePhase) header "configuring";;
+        buildPhase) header "building";;
+        checkPhase) header "running tests";;
+        installPhase) header "installing";;
+        fixupPhase) header "post-installation fixup";;
+        installCheckPhase) header "running install tests";;
+        *) header "$phase";;
+    esac
+}
+
+
+genericBuild() {
+    header "building $out"
+
+    if [ -n "$buildCommand" ]; then
+        eval "$buildCommand"
+        return
+    fi
+
+    if [ -z "$phases" ]; then
+        phases="$prePhases unpackPhase patchPhase $preConfigurePhases \
+            configurePhase $preBuildPhases buildPhase checkPhase \
+            $preInstallPhases installPhase fixupPhase installCheckPhase \
+            $preDistPhases distPhase $postPhases";
+    fi
+
+    for curPhase in $phases; do
+        if [ "$curPhase" = buildPhase -a -n "$dontBuild" ]; then continue; fi
+        if [ "$curPhase" = checkPhase -a -z "$doCheck" ]; then continue; fi
+        if [ "$curPhase" = installPhase -a -n "$dontInstall" ]; then continue; fi
+        if [ "$curPhase" = fixupPhase -a -n "$dontFixup" ]; then continue; fi
+        if [ "$curPhase" = installCheckPhase -a -z "$doInstallCheck" ]; then continue; fi
+        if [ "$curPhase" = distPhase -a -z "$doDist" ]; then continue; fi
+
+        if [ -n "$tracePhases" ]; then
+            echo
+            echo "@ phase-started $out $curPhase"
+        fi
+
+        showPhaseHeader "$curPhase"
+        dumpVars
+
+        # Evaluate the variable named $curPhase if it exists, otherwise the
+        # function named $curPhase.
+        eval "${!curPhase:-$curPhase}"
+
+        if [ "$curPhase" = unpackPhase ]; then
+            cd "${sourceRoot:-.}"
+        fi
+
+        if [ -n "$tracePhases" ]; then
+            echo
+            echo "@ phase-succeeded $out $curPhase"
+        fi
+
+        stopNest
+    done
+
+    stopNest
+}
+
+
+# Execute the post-hook.
+runHook postHook
+
+
+# Execute the global user hook (defined through the Nixpkgs
+# configuration option ‘stdenv.userHook’).  This can be used to set
+# global compiler optimisation flags, for instance.
+runHook userHook
+
+
+dumpVars
diff --git a/pkgs/stdenv/linux/bootstrap/armv5tel/default.nix b/pkgs/stdenv/linux/bootstrap/armv5tel/default.nix
index 3a8a03e5a54..1d4d53a38ee 100644
--- a/pkgs/stdenv/linux/bootstrap/armv5tel/default.nix
+++ b/pkgs/stdenv/linux/bootstrap/armv5tel/default.nix
@@ -7,7 +7,7 @@
   curl = ./curl.bz2;
 
   bootstrapTools = {
-    url = "http://nixos.org/tarballs/stdenv-linux/armv5tel/r18744/bootstrap-tools.cpio.bz2";
+    url = "http://tarballs.nixos.org/stdenv-linux/armv5tel/r18744/bootstrap-tools.cpio.bz2";
     sha256 = "1rn4n5kilqmv62dfjfcscbsm0w329k3gyb2v9155fsi1sl2cfzcb";
   };
 }
diff --git a/pkgs/stdenv/linux/bootstrap/i686/default.nix b/pkgs/stdenv/linux/bootstrap/i686/default.nix
index 1d709766bfd..dc4fee1becc 100644
--- a/pkgs/stdenv/linux/bootstrap/i686/default.nix
+++ b/pkgs/stdenv/linux/bootstrap/i686/default.nix
@@ -7,7 +7,7 @@
   curl = ./curl.bz2;
 
   bootstrapTools = {
-    url = http://nixos.org/tarballs/stdenv-linux/i686/r24519/bootstrap-tools.cpio.bz2;
+    url = http://tarballs.nixos.org/stdenv-linux/i686/r24519/bootstrap-tools.cpio.bz2;
     sha256 = "0imypaxy6piwbk8ff2y1nr7yk49pqmdgdbv6g8miq1zs5yfip6ij";
   };
 }
diff --git a/pkgs/stdenv/linux/bootstrap/loongson2f/default.nix b/pkgs/stdenv/linux/bootstrap/loongson2f/default.nix
index b0ad8d6545d..b9a294e1332 100644
--- a/pkgs/stdenv/linux/bootstrap/loongson2f/default.nix
+++ b/pkgs/stdenv/linux/bootstrap/loongson2f/default.nix
@@ -7,7 +7,7 @@
   curl = ./curl.bz2;
 
   bootstrapTools = {
-    url = "http://nixos.org/tarballs/stdenv-linux/loongson2f/r22849/cross-bootstrap-tools.cpio.bz2";
+    url = "http://tarballs.nixos.org/stdenv-linux/loongson2f/r22849/cross-bootstrap-tools.cpio.bz2";
     sha256 = "00aavbk76qjj2gdlmpaaj66r8nzl4d7pyl8cv1gigyzgpbr5vv3j";
   };
 }
diff --git a/pkgs/stdenv/linux/bootstrap/powerpc/default.nix b/pkgs/stdenv/linux/bootstrap/powerpc/default.nix
index 61f7f863512..d3569362b6c 100644
--- a/pkgs/stdenv/linux/bootstrap/powerpc/default.nix
+++ b/pkgs/stdenv/linux/bootstrap/powerpc/default.nix
@@ -6,22 +6,22 @@
   tar = ./tar.bz2;
 
   staticToolsURL = {
-    url = http://nixos.org/tarballs/stdenv-linux/powerpc/r9828/static-tools.tar.bz2;
+    url = http://tarballs.nixos.org/stdenv-linux/powerpc/r9828/static-tools.tar.bz2;
     sha1 = "e4d1680e3dfa752e49a996a31140db53b10061cb";
   };
 
   binutilsURL = {
-    url = http://nixos.org/tarballs/stdenv-linux/powerpc/r9828/binutils.tar.bz2;
+    url = http://tarballs.nixos.org/stdenv-linux/powerpc/r9828/binutils.tar.bz2;
     sha1 = "2609f4d9277a60fcd178395d3d49911190e08f36";
   };
 
   gccURL = {
-    url = http://nixos.org/tarballs/stdenv-linux/powerpc/r9828/gcc.tar.bz2;
+    url = http://tarballs.nixos.org/stdenv-linux/powerpc/r9828/gcc.tar.bz2;
     sha1 = "71d79d736bfef6252208fe6239e528a591becbed";
   };
 
   glibcURL = {
-    url = http://nixos.org/tarballs/stdenv-linux/powerpc/r9828/glibc.tar.bz2;
+    url = http://tarballs.nixos.org/stdenv-linux/powerpc/r9828/glibc.tar.bz2;
     sha1 = "bf0245e16235800c8aa9c6a5de6565583a66e46d";
   };
 }
diff --git a/pkgs/stdenv/linux/bootstrap/x86_64/default.nix b/pkgs/stdenv/linux/bootstrap/x86_64/default.nix
index d9b9b460db2..eb8c1834a3a 100644
--- a/pkgs/stdenv/linux/bootstrap/x86_64/default.nix
+++ b/pkgs/stdenv/linux/bootstrap/x86_64/default.nix
@@ -4,7 +4,7 @@
 
 {
   bootstrapTools = {
-    url = http://nixos.org/tarballs/stdenv-linux/x86_64/r23302/bootstrap-tools.cpio.bz2;
+    url = http://tarballs.nixos.org/stdenv-linux/x86_64/r23302/bootstrap-tools.cpio.bz2;
     sha256 = "0w89kqhx47yl0jifp2vffp073pyrqha5f312kp971smi4h41drna";
   };
 }
diff --git a/pkgs/tools/X11/winswitch/default.nix b/pkgs/tools/X11/winswitch/default.nix
new file mode 100644
index 00000000000..b53db509daf
--- /dev/null
+++ b/pkgs/tools/X11/winswitch/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, buildPythonPackage, pythonPackages
+, which, xpra, xmodmap }:
+
+let
+  base = buildPythonPackage rec {
+    name = "winswitch-${version}";
+    namePrefix = "";
+    version = "0.12.16";
+
+    src = fetchurl {
+      url = "http://winswitch.org/src/${name}.src.tar.bz2";
+      sha256 = "0ix122d7rgzdkk70f2q3sd7a4pvyaqsyxkw93pc4zkcg1xh9z3y8";
+    };
+
+    propagatedBuildInputs = with pythonPackages; [
+      pygtk twisted pycrypto pyasn1 which xpra xmodmap
+    ];
+
+    patchPhase = ''
+      sed -i -r -e 's|(PREFIX_DIR *= *).*|\1"'"$out"'"|'             \
+                -e 's|(PREFIX_SEARCH_ORDER *= *).*|\1["'"$out"'"]|'  \
+                -e 's|(ETC_SEARCH_ORDER *= *).*|\1["'"$out/etc"'"]|' \
+                -e 's|(BIN_SEARCH_ORDER *= *).*|\1["'"$out/bin"'"]|' \
+                winswitch/util/paths.py
+
+      sed -i -e '/elif *LINUX:/,/distro_helper/{
+        s/elif *LINUX:.*/else: name = "NixOS"/p
+        /distro_helper/!d
+      }' winswitch/util/distro_packaging_util.py
+    '';
+
+    buildPhase = ''
+      python setup.py build
+    '';
+
+    installCommand = ''
+      PREFIX="$out" python ./setup.py install --prefix="$out"
+    '';
+
+    doCheck = false;
+  };
+in stdenv.lib.overrideDerivation base (b: {
+  postFixup = b.postFixup + ''
+    sed -i -e 's/\''${PATH:+:}\$PATH//g' "$out/bin"/*
+  '';
+})
diff --git a/pkgs/tools/X11/xlaunch/default.nix b/pkgs/tools/X11/xlaunch/default.nix
index 3cab25837e6..b97c9def822 100644
--- a/pkgs/tools/X11/xlaunch/default.nix
+++ b/pkgs/tools/X11/xlaunch/default.nix
@@ -46,6 +46,9 @@ EOF
 			  RESET_OPTION=\"-noreset\"
 			fi;
 			XCMD=\"\$(egrep \"^Environment=\" /etc/systemd/system/display-manager.service | sed -e \"s/Environment=/ export /\" | sed -e '\\''s/#.*//'\\'' ; echo export _XARGS_=\\\$\\( grep xserver_arguments \\\$SLIM_CFGFILE \\| sed -e s/xserver_arguments// \\| sed -e s/:0/:\${_display}/ \\| sed -e s/vt7/vt\$((7+_display))/ \\) ; echo ${xorgserver}/bin/X \\\$_XARGS_ \$RESET_OPTION )\" 
+			PRE_XCMD=\"\$(egrep \"^ExecStartPre=\" /etc/systemd/system/display-manager.service | sed -e \"\s/ExecStartPre=//\")\"
+			echo \"\$PRE_XCMD\" 
+			echo \"\$PRE_XCMD\" | bash
 			echo \"\$XCMD\" 
 			echo \"\$XCMD\" | bash &
 			while ! test -e /tmp/.X11-unix/X\$_display &>/dev/null ; do sleep 0.5; done
diff --git a/pkgs/tools/X11/xpra/default.nix b/pkgs/tools/X11/xpra/default.nix
index e0881e5aa9b..71c5d5f3a44 100644
--- a/pkgs/tools/X11/xpra/default.nix
+++ b/pkgs/tools/X11/xpra/default.nix
@@ -4,11 +4,11 @@
 , ffmpeg_1, x264, libvpx, pil, libwebp }:
 
 buildPythonPackage rec {
-  name = "xpra-0.8.8";
+  name = "xpra-0.9.5";
   
   src = fetchurl {
     url = "http://xpra.org/src/${name}.tar.bz2";
-    sha256 = "248bac50c78eccfbc7f728667f9d0ef26b101b288193fa286881cda452e63683";
+    sha256 = "1qr9gxmfnkays9hrw2qki1jdkyxhbbkjx71gy23x423cfsxsjmiw";
   };
 
   buildInputs = [ 
diff --git a/pkgs/tools/archivers/unzip/default.nix b/pkgs/tools/archivers/unzip/default.nix
index 8309a2102ab..f939c968c44 100644
--- a/pkgs/tools/archivers/unzip/default.nix
+++ b/pkgs/tools/archivers/unzip/default.nix
@@ -9,6 +9,7 @@ stdenv.mkDerivation ({
     sha256 = "0dxx11knh3nk95p2gg2ak777dd11pr7jx5das2g49l262scrcv83";
   };
 
+  nativeBuildInputs = [ bzip2 ];
   buildInputs = [ bzip2 ] ++ stdenv.lib.optional enableNLS libnatspec;
 
   makefile = "unix/Makefile";
diff --git a/pkgs/tools/filesystems/aefs/default.nix b/pkgs/tools/filesystems/aefs/default.nix
index 7e52190d43a..d081f08ffc7 100644
--- a/pkgs/tools/filesystems/aefs/default.nix
+++ b/pkgs/tools/filesystems/aefs/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   name = "aefs-0.4pre259-8843b7c";
   
   src = fetchurl {
-    url = "http://nixos.org/tarballs/${name}.tar.bz2";
+    url = "http://tarballs.nixos.org/${name}.tar.bz2";
     sha256 = "167hp58hmgdavg2mqn5dx1xgq24v08n8d6psf33jhbdabzx6a6zq";
   };
 
diff --git a/pkgs/tools/filesystems/ntfs-3g/default.nix b/pkgs/tools/filesystems/ntfs-3g/default.nix
index a306a424ee1..f6177fd8976 100644
--- a/pkgs/tools/filesystems/ntfs-3g/default.nix
+++ b/pkgs/tools/filesystems/ntfs-3g/default.nix
@@ -2,7 +2,7 @@
 , crypto ? false, libgcrypt, gnutls, pkgconfig}:
 
 stdenv.mkDerivation rec {
-  pname = "ntfs-3g_ntfsprogs";
+  pname = "ntfs-3g";
   version = "2012.1.15";
   name = "${pname}-${version}";
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = stdenv.lib.optional crypto pkgconfig;
 
   src = fetchurl {
-    url = "http://tuxera.com/opensource/${name}.tgz";
+    url = "http://tuxera.com/opensource/ntfs-3g_ntfsprogs-${version}.tgz";
     sha256 = "09gvfgvqm4dswzxmwvg3r23bv39cp8y8b6qs2jcwmrqd032i25kg";
   };
 
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     homepage = http://www.tuxera.com/community/;
     description = "FUSE-base NTFS driver with full write support";
     maintainers = [ stdenv.lib.maintainers.urkud ];
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/filesystems/unionfs-fuse/default.nix b/pkgs/tools/filesystems/unionfs-fuse/default.nix
index 5b681ab170c..4da1a84e937 100644
--- a/pkgs/tools/filesystems/unionfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/unionfs-fuse/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     homepage = http://podgorny.cz/moin/UnionFsFuse;
     license = stdenv.lib.licenses.bsd3;
     maintainers = [ stdenv.lib.maintainers.shlevy ];
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/graphics/gnuplot/default.nix b/pkgs/tools/graphics/gnuplot/default.nix
index 3e6902a183d..485edf7335d 100644
--- a/pkgs/tools/graphics/gnuplot/default.nix
+++ b/pkgs/tools/graphics/gnuplot/default.nix
@@ -17,11 +17,11 @@
 assert libX11 != null -> (fontconfig != null && gnused != null && coreutils != null);
 
 stdenv.mkDerivation rec {
-  name = "gnuplot-4.6.0";
+  name = "gnuplot-4.6.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/gnuplot/${name}.tar.gz";
-    sha256 = "1ghp1jbcf95yy09lqhjcfmvb6y2101qfdbf20zs42dcs0fsssq3f";
+    sha256 = "1xd7gqdhlk7k1p9yyqf9vkk811nadc7m4si0q3nb6cpv4pxglpyz";
   };
 
   buildInputs =
diff --git a/pkgs/tools/graphics/graphviz/default.nix b/pkgs/tools/graphics/graphviz/default.nix
index 370ce4fc1a1..c1aebd3dfe1 100644
--- a/pkgs/tools/graphics/graphviz/default.nix
+++ b/pkgs/tools/graphics/graphviz/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, libpng, libjpeg, expat, libXaw
-, yacc, libtool, fontconfig, pango, gd, xlibs, gts, gettext
+, yacc, libtool, fontconfig, pango, gd, xlibs, gts, gettext, cairo
 }:
 
 stdenv.mkDerivation rec {
@@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
 
   patches = [ ./fix-broken-memcp-signature.patch ];
 
+  CPPFLAGS = stdenv.lib.optionalString (stdenv.system == "x86_64-darwin") "-I${cairo}/include/cairo";
+
   configureFlags =
     [ "--with-pngincludedir=${libpng}/include"
       "--with-pnglibdir=${libpng}/lib"
diff --git a/pkgs/tools/graphics/zbar/default.nix b/pkgs/tools/graphics/zbar/default.nix
index d5cea08f3df..83c9b157793 100644
--- a/pkgs/tools/graphics/zbar/default.nix
+++ b/pkgs/tools/graphics/zbar/default.nix
@@ -1,6 +1,6 @@
 x@{builderDefsPackage
   , imagemagickBig, pkgconfig, python, pygtk, perl, libX11, libv4l
-  , qt4, lzma
+  , qt4, lzma, gtk2
   , ...}:
 builderDefsPackage
 (a :  
diff --git a/pkgs/tools/misc/getopt/default.nix b/pkgs/tools/misc/getopt/default.nix
index faa4a9e8f7a..41bc2ffc99d 100644
--- a/pkgs/tools/misc/getopt/default.nix
+++ b/pkgs/tools/misc/getopt/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation {
   name = "getopt-1.1.4";
   builder = ./builder.sh;
   src = fetchurl {
-    url = http://nixos.org/tarballs/getopt-1.1.4.tar.gz;
+    url = http://tarballs.nixos.org/getopt-1.1.4.tar.gz;
     md5 = "02188ca68da27c4175d6e9f3da732101";
   };
 }
diff --git a/pkgs/tools/misc/hddtemp/default.nix b/pkgs/tools/misc/hddtemp/default.nix
index df75e7b3389..eb9aa5feaa3 100644
--- a/pkgs/tools/misc/hddtemp/default.nix
+++ b/pkgs/tools/misc/hddtemp/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation {
-  name = "hddtemp-0.3-beta15";
+  name = "hddtemp-0.3_beta15";
 
   db = fetchurl{
     url = http://download.savannah.nongnu.org/releases/hddtemp/hddtemp.db;
diff --git a/pkgs/tools/misc/memtest86/default.nix b/pkgs/tools/misc/memtest86/default.nix
index 35395fc116f..978bb2729f8 100644
--- a/pkgs/tools/misc/memtest86/default.nix
+++ b/pkgs/tools/misc/memtest86/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation {
-  name = "memtest86-4.0a";
+  name = "memtest86-4.1.0";
   
   src = fetchurl {
-    url = http://memtest86.com/memtest86-4.0a.tar.gz;
-    sha256 = "0d2n3nzyvna9k880zk6vl1z3b7wal1hrwcqay9vda8br7yp7634y";
+    url = http://www.memtest86.com/downloads/memtest86-4.1.0-src.tar.gz;
+    sha256 = "1kdvq16s8hvk7plprws33mfh7cnhmfl1m32sfgbmzygbhk5wqxxq";
   };
 
   preBuild = ''
diff --git a/pkgs/tools/misc/rmlint/default.nix b/pkgs/tools/misc/rmlint/default.nix
new file mode 100644
index 00000000000..a1cf21aa64a
--- /dev/null
+++ b/pkgs/tools/misc/rmlint/default.nix
@@ -0,0 +1,19 @@
+{ fetchurl, stdenv }:
+
+stdenv.mkDerivation rec {
+  name = "rmlint-1.0.8";
+
+  src = fetchurl {
+    url = "https://github.com/downloads/sahib/rmlint/rmlint_1.0.8.tar.gz";
+    sha256 = "bea39a5872b39d3596e756f242967bc5bde6febeb996fdcd63fbcf5bfdc75f01";
+  };
+
+  makeFlags="DESTDIR=$(out)";
+
+  meta = {
+    description = "A tool to remove duplicates and other lint";
+    homepage = "https://github.com/sahib/rmlint";
+    platforms = stdenv.lib.platforms.linux;
+    license = stdenv.lib.licenses.gpl3;
+  };
+}
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 54b3e6a4856..e4d934968b2 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -1,27 +1,25 @@
-{ stdenv, fetchurl, python, pandoc, zip }:
+{ stdenv, fetchurl, python, zip }:
 
 let
-  version = "2012.12.11";
+  version = "2013.06.21";
 in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "youtube-dl-${version}";
 
   src = fetchurl {
-    url = "https://github.com/downloads/rg3/youtube-dl/youtube-dl.${version}.tar.gz";
-    sha256 = "03zv3z8p0fi122nqj7ff8hkgqscir4s7psm03rq7dfpg1z35klmn";
+    url = "http://youtube-dl.org/downloads/${version}/${name}.tar.gz";
+    sha256 = "3d4e9cc38af3c2fccfafd83d0c6382080531fd03e9067ceccc6864dfbea92b1e";
   };
 
   buildInputs = [ python ];
-  nativeBuildInputs = [ zip ] ++
-      stdenv.lib.optional (stdenv.isi686 || stdenv.isx86_64) pandoc;
+  nativeBuildInputs = [ zip ];
 
   patchPhase = ''
     rm youtube-dl
-    substituteInPlace Makefile --replace "#!/usr/bin/env python" "#!${python}/bin/python"
   '';
 
   configurePhase = ''
-    makeFlagsArray=( PREFIX=$out SYSCONFDIR=$out/etc )
+    makeFlagsArray=( PREFIX=$out SYSCONFDIR=$out/etc PYTHON=${python}/bin/python )
   '';
 
   meta = {
diff --git a/pkgs/tools/networking/cjdns/default.nix b/pkgs/tools/networking/cjdns/default.nix
new file mode 100644
index 00000000000..a76e351efc4
--- /dev/null
+++ b/pkgs/tools/networking/cjdns/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit, cmake }:
+
+let
+  rev = "f7b02ac0cc";
+in
+stdenv.mkDerivation {
+  name = "cjdns-git-20130620-${rev}";
+
+  src = fetchgit {
+    url = "https://github.com/cjdelisle/cjdns.git";
+    inherit rev;
+    sha256 = "1580a62yhph62nv7q2jdqrbkyk9a9g5i17snibkxyykc7rili5zq";
+  };
+
+  preConfigure = ''
+    sed -i -e '/toolchain.*CACHE/d' CMakeLists.txt
+  '';
+
+  doCheck = true;
+  checkPhase = "ctest";
+
+  buildInputs = [ cmake ];
+
+  meta = {
+    homepage = https://github.com/cjdelisle/cjdns;
+    description = "Encrypted networking for regular people";
+    license = "GPLv3+";
+    maintainers = with stdenv.lib.maintainers; [viric];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index f9439f1b42a..73dcb44269c 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://curl.haxx.se/";
     description = "A command line tool for transferring files with URL syntax";
+    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/tools/networking/dropbear/default.nix b/pkgs/tools/networking/dropbear/default.nix
index f42c8f7ebe9..1d51c4864a1 100644
--- a/pkgs/tools/networking/dropbear/default.nix
+++ b/pkgs/tools/networking/dropbear/default.nix
@@ -2,11 +2,11 @@
 sftpPath ? "/var/run/current-system/sw/libexec/sftp-server" }:
 
 stdenv.mkDerivation rec {
-  name = "dropbear-0.52";
+  name = "dropbear-2013.58";
 
   src = fetchurl {
-    url = http://matt.ucc.asn.au/dropbear/releases/dropbear-0.52.tar.bz2;
-    sha256 = "1h84dwld8qm19m0a1zslm2ssz65nr93irw7p2h5fjrlh9ix74ywc";
+    url = "http://matt.ucc.asn.au/dropbear/releases/${name}.tar.bz2";
+    sha256 = "0m9fhabs78v35fhqmji5gkm66ahkyqbbdzmlmr9m7q8l3ndihrnq";
   };
 
   dontDisableStatic = enableStatic;
@@ -15,10 +15,26 @@ stdenv.mkDerivation rec {
 
   CFLAGS = "-DSFTPSERVER_PATH=\\\"${sftpPath}\\\"";
 
+  # http://www.gnu.org/software/make/manual/html_node/Libraries_002fSearch.html
+  preConfigure = ''
+    makeFlags=VPATH=`cat $NIX_GCC/nix-support/orig-libc`/lib
+  '';
+
+  crossAttrs = {
+    # This works for uclibc, at least.
+    preConfigure = ''
+      makeFlags=VPATH=`cat ${stdenv.gccCross}/nix-support/orig-libc`/lib
+    '';
+  };
+
   patches = [
     # Allow sessions to inherit the PATH from the parent dropbear.
     # Otherwise they only get the usual /bin:/usr/bin kind of PATH
     ./pass-path.patch
+
+    # Bugfix
+    # http://article.gmane.org/gmane.network.ssh.dropbear/1361
+    ./proxycrash.patch
   ];
 
   buildInputs = [ zlib ];
diff --git a/pkgs/tools/networking/dropbear/proxycrash.patch b/pkgs/tools/networking/dropbear/proxycrash.patch
new file mode 100644
index 00000000000..1a17e7e3c62
--- /dev/null
+++ b/pkgs/tools/networking/dropbear/proxycrash.patch
@@ -0,0 +1,17 @@
+diff -r 5ba19d00da08 cli-runopts.c
+--- a/cli-runopts.c	Sun May 26 18:43:00 2013 +0800
++++ b/cli-runopts.c	Mon Jun 17 19:51:08 2013 +0000
+@@ -383,6 +383,13 @@
+ 		exit(EXIT_FAILURE);
+ 	}
+
++#ifdef ENABLE_CLI_PROXYCMD
++	if (cli_opts.proxycmd) {
++		/* To match the common path of m_freeing it */
++		cli_opts.proxycmd = m_strdup(cli_opts.proxycmd);
++	}
++#endif
++
+ 	if (cli_opts.remoteport == NULL) {
+ 		cli_opts.remoteport = "22";
+ 	}
diff --git a/pkgs/tools/networking/network-manager-applet/default.nix b/pkgs/tools/networking/network-manager-applet/default.nix
index 1f874c70ddc..7e86b576967 100644
--- a/pkgs/tools/networking/network-manager-applet/default.nix
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, intltool, pkgconfig, gtk, libglade, networkmanager, GConf
-, libnotify, libgnome_keyring, dbus_glib, polkit, isocodes
+, libnotify, libsecret, dbus_glib, polkit, isocodes, libgnome_keyring
 , mobile_broadband_provider_info, glib_networking, gsettings_desktop_schemas
-, makeWrapper, networkmanager_openvpn }:
+, makeWrapper, networkmanager_openvpn, udev }:
 
 let
   pn = "network-manager-applet";
   major = "0.9";
-  version = "${major}.6.4";
+  version = "${major}.8.2";
 in
 
 stdenv.mkDerivation rec {
@@ -14,12 +14,12 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pn}/${major}/${name}.tar.xz";
-    sha256 = "0ha16wvp2jcl96849qahaagidhiyalbjzi3nxi235y7hcnqnfmmf";
+    sha256 = "1ixd19b7ap29lz9lq4mmlq9lqsmnisix1a33hrxrl68wjx1wfh55";
   };
 
   buildInputs = [
-    gtk libglade networkmanager GConf libnotify libgnome_keyring dbus_glib
-    polkit isocodes makeWrapper
+    gtk libglade networkmanager GConf libnotify libsecret dbus_glib
+    polkit isocodes makeWrapper udev libgnome_keyring
   ];
 
   nativeBuildInputs = [ intltool pkgconfig ];
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index d9e73a706db..af35e3f71da 100644
--- a/pkgs/tools/networking/network-manager/default.nix
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "network-manager-${version}";
-  version = "0.9.6.4";
+  version = "0.9.8.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/NetworkManager/0.9/NetworkManager-${version}.tar.xz";
-    sha256 = "1sx7h29j9h13qszcppja1p27zq2m7vdrylbcyb47n62x0lg426si";
+    sha256 = "0sq9yvln0yjff1sgk483m98ca2x2sqk5vh4kmn382k9msvgbqrn3";
   };
 
   preConfigure = ''
diff --git a/pkgs/tools/networking/network-manager/nixos-purity.patch b/pkgs/tools/networking/network-manager/nixos-purity.patch
index 998c2f25b2b..5736009571e 100644
--- a/pkgs/tools/networking/network-manager/nixos-purity.patch
+++ b/pkgs/tools/networking/network-manager/nixos-purity.patch
@@ -1,19 +1,3 @@
-diff --git a/src/backends/NetworkManagerExherbo.c b/src/backends/NetworkManagerExherbo.c
-index d027789..ef6b646 100644
---- a/src/backends/NetworkManagerExherbo.c
-+++ b/src/backends/NetworkManagerExherbo.c
-@@ -41,9 +41,9 @@ void nm_backend_update_dns (void)
- 	/* Make glibc/nscd aware of any changes to the resolv.conf file by
- 	 * restarting nscd. Only restart if already running.
- 	 */
--	if (g_file_test ("/usr/sbin/nscd", G_FILE_TEST_IS_EXECUTABLE)) {
-+	if (g_file_test ("@glibc@/sbin/nscd", G_FILE_TEST_IS_EXECUTABLE)) {
- 		nm_log_info (LOGD_DNS, "Clearing nscd hosts cache.");
--		nm_spawn_process ("/usr/sbin/nscd -i hosts");
-+		nm_spawn_process ("@glibc@/sbin/nscd -i hosts");
- 	}
- }
- 
 diff --git a/src/dhcp-manager/nm-dhcp-dhclient.c b/src/dhcp-manager/nm-dhcp-dhclient.c
 index 0932139..5b5aee8 100644
 --- a/src/dhcp-manager/nm-dhcp-dhclient.c
@@ -44,21 +28,6 @@ index 237661f..48bc33f 100644
  		NULL
  	};
  	const char **path = dhcpcd_paths;
-diff --git a/src/dns-manager/nm-dns-bind.c b/src/dns-manager/nm-dns-bind.c
-index 1a3243b..a47dccd 100644
---- a/src/dns-manager/nm-dns-bind.c
-+++ b/src/dns-manager/nm-dns-bind.c
-@@ -51,9 +51,7 @@ static inline const char *
- find_bind (void)
- {
- 	static const char *paths[] = {
--		"/usr/local/sbin/named",
--		"/usr/sbin/named",
--		"/sbin/named",
-+		"@bind@/sbin/named",
- 		NULL
- 	};
- 	const char **binary = paths;
 diff --git a/src/dns-manager/nm-dns-dnsmasq.c b/src/dns-manager/nm-dns-dnsmasq.c
 index 8e216f4..6e00210 100644
 --- a/src/dns-manager/nm-dns-dnsmasq.c
diff --git a/pkgs/tools/networking/network-manager/openvpn.nix b/pkgs/tools/networking/network-manager/openvpn.nix
index 15da0236172..9817a8cddd1 100644
--- a/pkgs/tools/networking/network-manager/openvpn.nix
+++ b/pkgs/tools/networking/network-manager/openvpn.nix
@@ -4,11 +4,11 @@
 stdenv.mkDerivation rec {
   name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
   pname = "NetworkManager-openvpn";
-  version = "0.9.6.0";
+  version = "0.9.8.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/0.9/${pname}-${version}.tar.xz";
-    sha256 = "18w7mlgnm7y5kg3s2jfm8biymh33ggw97bz27m5mg69kg42qgf4g";
+    sha256 = "1klmhcizp6fmbxjbyihsk2w0alnkyiw2a3ldgijq8s224k0z95j1";
   };
 
   buildInputs = [ openvpn networkmanager ]
diff --git a/pkgs/tools/networking/network-manager/pptp.nix b/pkgs/tools/networking/network-manager/pptp.nix
index b71e41c8b56..a60199aab2d 100644
--- a/pkgs/tools/networking/network-manager/pptp.nix
+++ b/pkgs/tools/networking/network-manager/pptp.nix
@@ -4,11 +4,11 @@
 stdenv.mkDerivation rec {
   name = "${pname}${if withGnome then "-gnome" else ""}-${version}";
   pname = "NetworkManager-pptp";
-  version = "0.9.4.0";
+  version = "0.9.8.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/0.9/${pname}-${version}.tar.xz";
-    sha256 = "0p93in5dn8m6dp9qs2ppfmazwqlklp5hwp9pjqr7jwvjbac75dvg";
+    sha256 = "1j4wczf0lv2c58pgdfxg2qsva5v0r1w99x6l1p78m56qc8a9il1l";
   };
 
   buildInputs = [ networkmanager pptp ppp ]
@@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
   configureFlags =
     if withGnome then "--with-gnome --with-gtkver=2" else "--without-gnome";
 
+  postConfigure = "sed 's/-Werror//g' -i Makefile */Makefile";
+
   patches =
     [ ( substituteAll {
         src = ./pptp-purity.patch;
diff --git a/pkgs/tools/networking/openconnect.nix b/pkgs/tools/networking/openconnect.nix
index d15b4cb59df..2cc52fe981b 100644
--- a/pkgs/tools/networking/openconnect.nix
+++ b/pkgs/tools/networking/openconnect.nix
@@ -1,26 +1,25 @@
 { stdenv, fetchurl, pkgconfig, vpnc, openssl, libxml2 } :
 
 stdenv.mkDerivation rec {
-  name = "openconnect-5.00";
+  name = "openconnect-5.01";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.infradead.org/pub/openconnect/${name}.tar.gz"
     ];
-    sha256 = "8bacd8d00b2c0ecf35594a8417e695b5ed3a7757467f22f980134de81ee7713a";
+    sha256 = "1l90ks87iwmy7jprav11lhjr4n18ycy0d9fndspg50p9qd3jlvwi";
   };
 
   preConfigure = ''
       export PKG_CONFIG=${pkgconfig}/bin/pkg-config
       export LIBXML2_CFLAGS="-I ${libxml2}/include/libxml2"
       export LIBXML2_LIBS="-L${libxml2}/lib -lxml2"
-      export CFLAGS="-D NO_BROKEN_DTLS_CHECK $CFLAGS"
     '';
 
   configureFlags = [
     "--with-vpnc-script=${vpnc}/etc/vpnc/vpnc-script"
     "--disable-nls"
-
+    "--without-openssl-version-check"
   ];
 
   propagatedBuildInputs = [ vpnc openssl libxml2 ];
diff --git a/pkgs/tools/networking/openssh/default.nix b/pkgs/tools/networking/openssh/default.nix
index 9de3156f2a7..8542580e431 100644
--- a/pkgs/tools/networking/openssh/default.nix
+++ b/pkgs/tools/networking/openssh/default.nix
@@ -6,7 +6,7 @@
 let
 
   hpnSrc = fetchurl {
-    url = http://nixos.org/tarballs/openssh-6.1p1-hpn13v14.diff.gz;
+    url = http://tarballs.nixos.org/openssh-6.1p1-hpn13v14.diff.gz;
     sha256 = "14das6lim6fxxnx887ssw76ywsbvx3s4q3n43afgh5rgvs4xmnnq";
   };
 
diff --git a/pkgs/tools/networking/p2p/azureus/default.nix b/pkgs/tools/networking/p2p/azureus/default.nix
index 3e613bb9a6b..ffa360f3de4 100644
--- a/pkgs/tools/networking/p2p/azureus/default.nix
+++ b/pkgs/tools/networking/p2p/azureus/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation {
   name = "azureus-2.3.0.6";
   builder = ./builder.sh;
   src = fetchurl {
-    url = http://nixos.org/tarballs/Azureus2.3.0.6.jar;
+    url = http://tarballs.nixos.org/Azureus2.3.0.6.jar;
     md5 = "84f85b144cdc574338c2c84d659ca620";
   };
 #  buildInputs = [unzip];
diff --git a/pkgs/tools/networking/ppp/default.nix b/pkgs/tools/networking/ppp/default.nix
index 2ca22fb1da7..6f6f2a0da55 100644
--- a/pkgs/tools/networking/ppp/default.nix
+++ b/pkgs/tools/networking/ppp/default.nix
@@ -18,7 +18,12 @@ stdenv.mkDerivation rec {
       ./nonpriv.patch
     ];
 
-  postPatch = "rm -v include/linux/if_pppol2tp.h";
+  postPatch = ''
+    # enable ipv6
+    substituteInPlace pppd/Makefile.linux \
+      --replace "#HAVE_INET6=y" "HAVE_INET6=y"
+    rm -v include/linux/if_pppol2tp.h
+  '';
 
   buildInputs = [ libpcap ];
 
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 55f783d792f..b6f8d5000a1 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -5,11 +5,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "nix-1.5.2";
+  name = "nix-1.5.3";
 
   src = fetchurl {
     url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz";
-    sha256 = "84880fcb94c06b11f66b28837f9c145aa3d65eb0e173fd6da195794a7b0331d1";
+    sha256 = "070e82a155851900768eb4a638aa50a6df9a8475c6dbc78a3b4a7dea75d64201";
   };
 
   nativeBuildInputs = [ perl pkgconfig ];
diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix
index d66a156c33e..73bed52654f 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.5.2pre3091_772b709";
+  name = "nix-1.5.3pre3141_1b6ee8f";
 
   src = fetchurl {
-    url = "http://hydra.nixos.org/build/4796316/download/5/${name}.tar.xz";
-    sha256 = "f1acf131842d9604d886d5f98aaa4739bea63536023d7287ce48613c38d49fbd";
+    url = "http://hydra.nixos.org/build/5305802/download/5/${name}.tar.xz";
+    sha256 = "834a0d23456331ac06b6117078f0b9bbeecbc8620d5f844b61455e3daac6ceb0";
   };
 
   nativeBuildInputs = [ perl pkgconfig ];
diff --git a/pkgs/tools/package-management/nixops/default.nix b/pkgs/tools/package-management/nixops/default.nix
new file mode 100644
index 00000000000..4e47a50078a
--- /dev/null
+++ b/pkgs/tools/package-management/nixops/default.nix
@@ -0,0 +1,37 @@
+{ lib, pythonPackages, fetchurl, libxslt, docbook5_xsl }:
+
+pythonPackages.buildPythonPackage rec {
+  name = "nixops-1.0";
+  namePrefix = "";
+
+  src = fetchurl {
+    url = "http://nixos.org/releases/nixops/${name}/${name}.tar.bz2";
+    sha256 = "9ae2dfac8e1fa895aef81323b14a3398f03a1cbd8c86ea10b6fff7312e1fadbb";
+  };
+
+  buildInputs = [ libxslt ];
+
+  pythonPath =
+    [ pythonPackages.prettytable
+      pythonPackages.boto
+      pythonPackages.sqlite3
+    ];
+
+  doCheck = false;
+
+  postInstall =
+    ''
+      make -C doc/manual install nixops.1 docbookxsl=${docbook5_xsl}/xml/xsl/docbook \
+        docdir=$out/share/doc/nixops mandir=$out/share/man
+
+      mkdir -p $out/share/nix/nixops
+      cp -av nix/* $out/share/nix/nixops
+    '';
+
+  meta = {
+    homepage = https://github.com/NixOS/nixops;
+    description = "NixOS cloud provisioning and deployment tool";
+    maintainers = [ lib.maintainers.eelco lib.maintainers.rob ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/tools/security/gnupg/default.nix b/pkgs/tools/security/gnupg/default.nix
index b94e2e50a40..2cac2819c16 100644
--- a/pkgs/tools/security/gnupg/default.nix
+++ b/pkgs/tools/security/gnupg/default.nix
@@ -2,9 +2,9 @@
 # 'echo "pinentry-program `which pinentry-gtk-2`" >> ~/.gnupg/gpg-agent.conf'.
 
 { fetchurl, stdenv, readline, zlib, libgpgerror, pth, libgcrypt, libassuan
-, libksba, coreutils, useLdap ? true, openldap ? null
-, useBzip2 ? true, bzip2 ? null, useUsb ? true, libusb ? null
-, useCurl ? true, curl ? null
+, libksba, coreutils, libiconvOrEmpty
+, useLdap ? true, openldap ? null, useBzip2 ? true, bzip2 ? null
+, useUsb ? true, libusb ? null, useCurl ? true, curl ? null
 }:
 
 assert useLdap -> (openldap != null);
@@ -20,7 +20,9 @@ stdenv.mkDerivation rec {
     sha256 = "16mp0j5inrcqcb3fxbn0b3aamascy3n923wiy0y8marc0rzrp53f";
   };
 
-  buildInputs = [ readline zlib libgpgerror libgcrypt libassuan libksba pth ]
+  buildInputs
+    = [ readline zlib libgpgerror libgcrypt libassuan libksba pth ]
+    ++ libiconvOrEmpty
     ++ stdenv.lib.optional useLdap openldap
     ++ stdenv.lib.optional useBzip2 bzip2
     ++ stdenv.lib.optional useUsb libusb
@@ -28,6 +30,7 @@ stdenv.mkDerivation rec {
 
   patchPhase = ''
     find tests -type f | xargs sed -e 's@/bin/pwd@${coreutils}&@g' -i
+    find . -name pcsc-wrapper.c | xargs sed -i 's/typedef unsinged int pcsc_dword_t/typedef unsigned int pcsc_dword_t/'
   '';
 
   checkPhase="GNUPGHOME=`pwd` ./agent/gpg-agent --daemon make check";
diff --git a/pkgs/tools/security/gnupg1/default.nix b/pkgs/tools/security/gnupg1/default.nix
index c779b979d9d..f9b959061da 100644
--- a/pkgs/tools/security/gnupg1/default.nix
+++ b/pkgs/tools/security/gnupg1/default.nix
@@ -8,7 +8,7 @@
 let
 
   idea = fetchurl {
-    url = http://nixos.org/tarballs/idea.c.gz;
+    url = http://tarballs.nixos.org/idea.c.gz;
     md5 = "9dc3bc086824a8c7a331f35e09a3e57f";
   };
 
diff --git a/pkgs/tools/security/mkpasswd/default.nix b/pkgs/tools/security/mkpasswd/default.nix
index a1982cc4e66..f131fcef4ce 100644
--- a/pkgs/tools/security/mkpasswd/default.nix
+++ b/pkgs/tools/security/mkpasswd/default.nix
@@ -4,11 +4,11 @@
 stdenv.mkDerivation rec {
   name = "mkpasswd-${version}";
 
-  version = "5.0.20";
+  version = "5.0.25";
 
   src = fetchurl {
     url = "http://ftp.debian.org/debian/pool/main/w/whois/whois_${version}.tar.xz";
-    sha256 = "1kwf5pwc7w8dw40nrd4m4637mz7pbhc4c1v78j56nqj38sak50w1";
+    sha256 = "0qb859vwd6g93cb5zbf19gpw2g2b9s1qlq4nqia1a966pjkvw1qj";
   };
 
   preConfigure = ''
diff --git a/pkgs/tools/system/pciutils/default.nix b/pkgs/tools/system/pciutils/default.nix
index 3cab8b0ef10..78ff9131fa8 100644
--- a/pkgs/tools/system/pciutils/default.nix
+++ b/pkgs/tools/system/pciutils/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   pciids = fetchurl {
     # Obtained from http://pciids.sourceforge.net/v2.2/pci.ids.bz2.
-    url = http://nixos.org/tarballs/pci.ids.20120929.bz2;
+    url = http://tarballs.nixos.org/pci.ids.20120929.bz2;
     sha256 = "1q3i479ay88wam1zz1vbgkbqb2axg8av9qjxaigrqbnw2pv0srmb";
   };
 
diff --git a/pkgs/tools/text/groff/default.nix b/pkgs/tools/text/groff/default.nix
index 90c5ef0ba81..f4d3169f2fa 100644
--- a/pkgs/tools/text/groff/default.nix
+++ b/pkgs/tools/text/groff/default.nix
@@ -11,6 +11,13 @@ stdenv.mkDerivation rec {
   buildInputs = [ ghostscript ];
   nativeBuildInputs = [ perl ];
 
+  # Builds running without a chroot environment may detect the presence
+  # of /usr/X11 in the host system, leading to an impure build of the
+  # package. To avoid this issue, X11 support is explicitly disabled.
+  # Note: If we ever want to *enable* X11 support, then we'll probably
+  # have to pass "--with-appresdir", too.
+  configureFlags = "--without-x";
+
   doCheck = true;
 
   crossAttrs = {
@@ -25,6 +32,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.gnu.org/software/groff/";
     description = "GNU Troff, a typesetting package that reads plain text and produces formatted output";
     license = "GPLv3+";
+    platforms = stdenv.lib.platforms.all;
 
     longDescription = ''
       groff is the GNU implementation of troff, a document formatting
diff --git a/pkgs/tools/text/html-tidy/default.nix b/pkgs/tools/text/html-tidy/default.nix
index 25732afa8b1..f971eb7b866 100644
--- a/pkgs/tools/text/html-tidy/default.nix
+++ b/pkgs/tools/text/html-tidy/default.nix
@@ -2,7 +2,7 @@
 
 let date = "2009-07-04"; in
   stdenv.mkDerivation rec {
-    name = "html-tidy-${date}";
+    name = "html-tidy-20090704";
 
     # According to http://tidy.sourceforge.net/, there are no new
     # release tarballs, so one has to either get the code from CVS or
diff --git a/pkgs/tools/text/xml/xpf/default.nix b/pkgs/tools/text/xml/xpf/default.nix
index fa8e8078362..3ff89294ab1 100644
--- a/pkgs/tools/text/xml/xpf/default.nix
+++ b/pkgs/tools/text/xml/xpf/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
   name = "xpf-0.2";
   
   src = fetchurl {
-    url = http://nixos.org/tarballs/xpf-0.2.tar.gz;
+    url = http://tarballs.nixos.org/xpf-0.2.tar.gz;
     md5 = "d92658828139e1495e052d0cfe25d312";
   };
   
diff --git a/pkgs/tools/typesetting/bibtex-tools/default.nix b/pkgs/tools/typesetting/bibtex-tools/default.nix
index 304f50f2906..c2c9a942845 100644
--- a/pkgs/tools/typesetting/bibtex-tools/default.nix
+++ b/pkgs/tools/typesetting/bibtex-tools/default.nix
@@ -3,7 +3,7 @@
 stdenv.mkDerivation {
   name = "bibtex-tools-0.2pre13026";
   src = fetchurl {
-    url = http://nixos.org/tarballs/bibtex-tools-0.2pre13026.tar.gz;
+    url = http://tarballs.nixos.org/bibtex-tools-0.2pre13026.tar.gz;
     md5 = "2d8a5de7c53eb670307048eb3d14cdd6";
   };
   configureFlags = "
diff --git a/pkgs/tools/typesetting/patoline/default.nix b/pkgs/tools/typesetting/patoline/default.nix
new file mode 100644
index 00000000000..a39105c8314
--- /dev/null
+++ b/pkgs/tools/typesetting/patoline/default.nix
@@ -0,0 +1,51 @@
+
+{ stdenv, fetchurl, ncurses, mesa, freeglut, libzip, 
+   ocaml, findlib, camomile, 
+   dypgen, ocaml_sqlite3, camlzip, 
+   lablgtk, camlimages, ocaml_cairo,
+   lablgl, ocamlnet, cryptokit,
+   ocaml_pcre }:
+
+let
+  ocaml_version = (builtins.parseDrvName ocaml.name).version;
+in
+
+stdenv.mkDerivation {
+  name = "patoline-0.1";
+
+  src = fetchurl {
+    url = "http://lama.univ-savoie.fr/patoline/patoline-0.1.tar.bz";
+    sha256 = "c5ac8dcb87ceecaf11876bd0dd425bd0f04d43265adc2cbcb1f1e82a78846d49";
+  };
+
+  createFindlibDestdir = true;
+   
+   buildInputs = [ ocaml findlib dypgen camomile ocaml_sqlite3 camlzip 
+   lablgtk camlimages ocaml_cairo
+   lablgl ocamlnet cryptokit
+   ocaml_pcre ncurses mesa freeglut libzip ];
+
+  propagatedbuildInputs = [ camomile 
+   dypgen ocaml_sqlite3 camlzip 
+   lablgtk camlimages ocaml_cairo
+   lablgl ocamlnet cryptokit
+   ocaml_pcre ncurses mesa freeglut libzip ];
+
+  buildPhase = ''
+    ocaml configure.ml \
+       --prefix $out \
+       --ocaml-libs $out/lib/ocaml/${ocaml_version}/site-lib \
+       --ocamlfind-dir $out/lib/ocaml/${ocaml_version}/site-lib \
+       --fonts-dir $out/share/patoline/fonts \
+       --grammars-dir $out/share/patoline/grammars \
+       --hyphen-dir $out/share/patoline/hyphen
+
+    make
+  '';
+
+  
+  meta = {
+    homepage = http://patoline.com;
+    description = "Patoline ocaml based typesetting system";
+  };
+}
diff --git a/pkgs/tools/typesetting/pdf2djvu/default.nix b/pkgs/tools/typesetting/pdf2djvu/default.nix
index aea28238665..b7204b95784 100644
--- a/pkgs/tools/typesetting/pdf2djvu/default.nix
+++ b/pkgs/tools/typesetting/pdf2djvu/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, pkgconfig, djvulibre, poppler, fontconfig, libjpeg }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.11";
+  version = "0.7.16";
   name = "pdf2djvu-${version}";
 
   src = fetchurl {
     url = "http://pdf2djvu.googlecode.com/files/pdf2djvu_${version}.tar.gz";
-    sha256 = "00gscd7l02jyr132vlj08ks0pgmh5ja785n3fdxa795cib45rbgq";
+    sha256 = "1yg4ppqxpfda89yi4c3rrq2zhar5dzyqypvqdvdd0r7is2321nnv";
   };
 
   buildInputs = [ pkgconfig djvulibre poppler fontconfig libjpeg ];
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     description = "Creates djvu files from PDF files";
     homepage = http://code.google.com/p/pdf2djvu/;
     license = stdenv.lib.licenses.gpl2;
+    inherit version;
   };
 }
diff --git a/pkgs/tools/typesetting/pdf2djvu/default.upstream b/pkgs/tools/typesetting/pdf2djvu/default.upstream
new file mode 100644
index 00000000000..1bb4aebdc61
--- /dev/null
+++ b/pkgs/tools/typesetting/pdf2djvu/default.upstream
@@ -0,0 +1,10 @@
+url http://code.google.com/p/pdf2djvu/downloads/list
+version_link '[.]tar[.][a-z0-9]+$'
+process 'code[.]google[.]com//' ''
+version '.*_([0-9.]+[0-9]).*' '\1'
+
+do_overwrite () {
+  ensure_hash
+  set_var_value version "$CURRENT_VERSION"
+  set_var_value sha256 "$CURRENT_HASH"
+}
diff --git a/pkgs/tools/typesetting/tex/texlive/moderncv.nix b/pkgs/tools/typesetting/tex/texlive/moderncv.nix
index e490d55bc5f..28329cff916 100644
--- a/pkgs/tools/typesetting/tex/texlive/moderncv.nix
+++ b/pkgs/tools/typesetting/tex/texlive/moderncv.nix
@@ -1,10 +1,10 @@
 args: with args;
 rec {
-  version = "1.3.0";
+  version = "1.5.1";
   name = "moderncv-${version}";
   src = fetchurl {
     url = "https://launchpad.net/moderncv/trunk/${version}/+download/moderncv-${version}.zip";
-    sha256 = "0wdj90shi04v97b2d6chhvm9qrp0bcvsm46441730ils1y74wisq";
+    sha256 = "0k26s0z8hmw3h09vnpndim7gigwh8q6n9nbbihb5qbrw5qg2yqck";
   };
 
   buildInputs = [texLive unzip];
diff --git a/pkgs/tools/typesetting/tex/texlive/moderntimeline.nix b/pkgs/tools/typesetting/tex/texlive/moderntimeline.nix
new file mode 100644
index 00000000000..6139911623f
--- /dev/null
+++ b/pkgs/tools/typesetting/tex/texlive/moderntimeline.nix
@@ -0,0 +1,26 @@
+args: with args;
+rec {
+  version = "0.7";
+  name = "moderntimeline-${version}";
+  src = fetchurl {
+    url = "http://www.ctan.org/tex-archive/macros/latex/contrib/moderntimeline.zip";
+    sha256 = "0dxwybanj7qvbr69wgsllha1brq6qjsnjfff6nw4r3nijzvvh876";
+  };
+
+  buildInputs = [texLive unzip];
+  phaseNames = ["doCopy"];
+  doCopy = fullDepEntry (''
+    mkdir -p $out/texmf/tex/latex/moderntimeline $out/texmf/doc/moderntimeline $out/share
+    mv *.dtx *.ins $out/texmf/tex/latex/moderntimeline/
+    mv *.pdf $out/texmf/doc/moderntimeline/
+    ln -s $out/texmf* $out/share/
+  '') ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
+
+  meta = {
+    description = "the moderntimeline extensions for moderncv";
+    maintainers = [ args.lib.maintainers.simons ];
+
+    # Actually, arch-independent..
+    platforms = [] ;
+  };
+}
diff --git a/pkgs/tools/typesetting/tex/texlive/pgf.nix b/pkgs/tools/typesetting/tex/texlive/pgf.nix
index 61e2eb26c68..1f7abc126c3 100644
--- a/pkgs/tools/typesetting/tex/texlive/pgf.nix
+++ b/pkgs/tools/typesetting/tex/texlive/pgf.nix
@@ -1,11 +1,12 @@
 args: with args;
 
+
 rec {
-  name = "texlive-pgf-2007";
+  name = "texlive-pgf-2010";
 
   src = fetchurl {
-    url = "mirror://sourceforge/pgf/pgf-2.00.tar.gz";
-    sha256 = "0j57niag4jb2k0iyrvjsannxljc3vkx0iag7zd35ilhiy4dh6264";
+    url = "mirror://debian/pool/main/p/pgf/pgf_2.10.orig.tar.gz";
+    sha256 = "642092e6b49df9e33bd901ac7eb7024ff235a29f43d27e78e5827ca3bc03f120";
   };
 
   propagatedBuildInputs = [texLiveLatexXColor texLive];
diff --git a/pkgs/tools/virtualization/ec2-ami-tools/default.nix b/pkgs/tools/virtualization/ec2-ami-tools/default.nix
index 1905166c38e..e9b62886fce 100644
--- a/pkgs/tools/virtualization/ec2-ami-tools/default.nix
+++ b/pkgs/tools/virtualization/ec2-ami-tools/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ unzip makeWrapper ];
 
   src = fetchurl {
-    url = "http://nixos.org/tarballs/${name}.zip";
+    url = "http://tarballs.nixos.org/${name}.zip";
     sha256 = "0icpjr2ipch3f6cf4rg9x5z2y9k6a4rd85npsmw3a1ambs3dwxlq";
   };
 
diff --git a/pkgs/tools/virtualization/ec2-api-tools/default.nix b/pkgs/tools/virtualization/ec2-api-tools/default.nix
index ac2902aab94..a80ad91c4c3 100644
--- a/pkgs/tools/virtualization/ec2-api-tools/default.nix
+++ b/pkgs/tools/virtualization/ec2-api-tools/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   name = "ec2-api-tools-1.6.5.1";
 
   src = fetchurl {
-    url = "http://nixos.org/tarballs/${name}.zip";
+    url = "http://tarballs.nixos.org/${name}.zip";
     sha256 = "1j2pc20vggi4hv950999mhh7dl6475yma76nyj6k0hzkd1lf5hda";
   };
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 86c5c63a0cc..da533493520 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -183,7 +183,6 @@ let
 
   ### Helper functions.
 
-
   inherit lib config stdenvAdapters;
 
   inherit (lib) lowPrio hiPrio appendToName makeOverridable;
@@ -203,6 +202,11 @@ let
   stringsWithDeps = lib.stringsWithDeps;
 
 
+  ### Nixpkgs maintainer tools
+
+  nix-generate-from-cpan = callPackage ../../maintainers/scripts/nix-generate-from-cpan.nix { };
+
+
   ### STANDARD ENVIRONMENT
 
 
@@ -593,6 +597,8 @@ let
 
   chrony = callPackage ../tools/networking/chrony { };
 
+  cjdns = callPackage ../tools/networking/cjdns { };
+
   cksfv = callPackage ../tools/networking/cksfv { };
 
   ciopfs = callPackage ../tools/filesystems/ciopfs { };
@@ -725,10 +731,7 @@ let
 
   dotnetfx40 = callPackage ../development/libraries/dotnetfx40 { };
 
-  dropbear = callPackage ../tools/networking/dropbear {
-    enableStatic = true;
-    zlib = zlibStatic;
-  };
+  dropbear = callPackage ../tools/networking/dropbear { };
 
   dtach = callPackage ../tools/misc/dtach { };
 
@@ -773,6 +776,8 @@ let
 
   expect = callPackage ../tools/misc/expect { };
 
+  fabric = pythonPackages.fabric;
+
   fail2ban = callPackage ../tools/security/fail2ban { };
 
   fakeroot = callPackage ../tools/system/fakeroot { };
@@ -1509,7 +1514,7 @@ let
 
   pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
 
-  pythonDBus = callPackage ../development/python-modules/dbus { };
+  pythonDBus = dbus_python;
 
   pythonIRClib = builderDefsPackage (import ../development/python-modules/irclib) {
     inherit python;
@@ -1563,6 +1568,8 @@ let
 
   ripmime = callPackage ../tools/networking/ripmime {};
 
+  rmlint = callPackage ../tools/misc/rmlint {};
+
   rng_tools = callPackage ../tools/security/rng-tools { };
 
   rsnapshot = callPackage ../tools/backup/rsnapshot {
@@ -1613,6 +1620,8 @@ let
 
   scrot = callPackage ../tools/graphics/scrot { };
 
+  sdcv = callPackage ../applications/misc/sdcv { };
+
   seccure = callPackage ../tools/security/seccure/0.4.nix { };
 
   setserial = builderDefsPackage (import ../tools/system/setserial) {
@@ -1812,7 +1821,7 @@ let
   tigervnc = callPackage ../tools/admin/tigervnc {
     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
       xorg.fontbhlucidatypewriter75dpi ];
-    xorgserver = xorg.xorgserver_1_13_0;
+    inherit (xorg) xorgserver;
     fltk = fltk13;
   };
 
@@ -1984,9 +1993,13 @@ let
 
   xvfb_run = callPackage ../tools/misc/xvfb-run { inherit (texFunctions) fontsConf; };
 
-  youtubeDL = callPackage ../tools/misc/youtube-dl { inherit (haskellPackages) pandoc; };
+  youtubeDL = callPackage ../tools/misc/youtube-dl { };
 
-  zbar = callPackage ../tools/graphics/zbar {};
+  zbar = callPackage ../tools/graphics/zbar {
+    pygtk = lib.overrideDerivation pygtk (x: {
+      gtk = gtk2;
+    });
+  };
 
   zdelta = callPackage ../tools/compression/zdelta { };
 
@@ -2001,7 +2014,6 @@ let
 
   ### SHELLS
 
-
   bash = lowPrio (callPackage ../shells/bash {
     texinfo = null;
   });
@@ -2025,7 +2037,6 @@ let
 
   ### DEVELOPMENT / COMPILERS
 
-
   abc =
     abcPatchable [];
 
@@ -2124,6 +2135,37 @@ let
 
   gcc45 = gcc45_real;
 
+  wrapDeterministicGCCWith = gccWrapper: glibc: baseGCC: gccWrapper {
+    nativeTools = stdenv ? gcc && stdenv.gcc.nativeTools;
+    nativeLibc = stdenv ? gcc && stdenv.gcc.nativeLibc;
+    nativePrefix = if stdenv ? gcc then stdenv.gcc.nativePrefix else "";
+    gcc = baseGCC;
+    libc = glibc;
+    shell = bash;
+    binutils = binutils_deterministic;
+    inherit stdenv coreutils zlib;
+  };
+  
+  wrapDeterministicGCC = wrapDeterministicGCCWith (import ../build-support/gcc-wrapper) glibc;
+  
+  gcc46_deterministic = lowPrio (wrapDeterministicGCC (callPackage ../development/compilers/gcc/4.6 {
+    inherit noSysDirs;
+
+    # bootstrapping a profiled compiler does not work in the sheevaplug:
+    # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43944
+    profiledCompiler = !stdenv.isArm;
+
+    # When building `gcc.crossDrv' (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;
+  }));
+
   gcc46 = gcc46_real;
 
   gcc47 = gcc47_real;
@@ -2626,6 +2668,7 @@ let
 
   julia = callPackage ../development/compilers/julia {
     liblapack = liblapack.override {shared = true;};
+    mpfr = mpfr_3_1_2;
     fftw = fftw.override {pthreads = true;};
     fftwSinglePrec = fftwSinglePrec.override {pthreads = true;};
   };
@@ -2650,7 +2693,9 @@ let
 
   mlton = callPackage ../development/compilers/mlton { };
 
-  mono = callPackage ../development/compilers/mono { };
+  mono = callPackage ../development/compilers/mono {
+    inherit (xlibs) libX11;
+  };
 
   monoDLLFixer = callPackage ../build-support/mono-dll-fixer { };
 
@@ -2704,12 +2749,24 @@ let
     camomile_0_8_2 = callPackage ../development/ocaml-modules/camomile/0.8.2.nix { };
     camomile = callPackage ../development/ocaml-modules/camomile { };
 
+    camlimages = callPackage ../development/ocaml-modules/camlimages { };
+
+    ocaml_cairo = callPackage ../development/ocaml-modules/ocaml-cairo { };
+
     cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
 
+    deriving = callPackage ../development/tools/ocaml/deriving { };
+
     findlib = callPackage ../development/tools/ocaml/findlib { };
 
+    dypgen = callPackage ../development/ocaml-modules/dypgen { };
+
+    patoline = callPackage ../tools/typesetting/patoline { };
+
     gmetadom = callPackage ../development/ocaml-modules/gmetadom { };
 
+    lablgl = callPackage ../development/ocaml-modules/lablgl { };
+
     lablgtk = callPackage ../development/ocaml-modules/lablgtk {
       inherit (gnome) libgnomecanvas libglade gtksourceview;
     };
@@ -2722,6 +2779,8 @@ let
 
     mldonkey = callPackage ../applications/networking/p2p/mldonkey { };
 
+    mlgmp =  callPackage ../development/ocaml-modules/mlgmp { };
+
     ocaml_batteries = callPackage ../development/ocaml-modules/batteries {
       camomile = camomile_0_8_2;
     };
@@ -2790,6 +2849,15 @@ let
     ocaml = ocaml_3_08_0;
   };
 
+  deterministicStdenv = lowPrio (
+    overrideInStdenv (
+      stdenvAdapters.overrideGCC
+        (stdenvAdapters.overrideSetup stdenv ../stdenv/generic/setup-repeatable.sh )
+      gcc46_deterministic
+    )
+    [ binutils_deterministic ]
+  );
+
   roadsend = callPackage ../development/compilers/roadsend { };
 
   # TODO: the corresponding nix file is missing
@@ -2831,13 +2899,13 @@ let
 
   urweb = callPackage ../development/compilers/urweb { };
 
-  vala = vala17;
+  vala = vala19;
 
   vala15 = callPackage ../development/compilers/vala/15.2.nix { };
 
   vala16 = callPackage ../development/compilers/vala/16.1.nix { };
 
-  vala17 = callPackage ../development/compilers/vala/default.nix { };
+  vala19 = callPackage ../development/compilers/vala/default.nix { };
 
   visualcpp = callPackage ../development/compilers/visual-c++ { };
 
@@ -2887,6 +2955,7 @@ let
 
   yasm = callPackage ../development/compilers/yasm { };
 
+
   ### DEVELOPMENT / INTERPRETERS
 
   acl2 = builderDefsPackage ../development/interpreters/acl2 {
@@ -2997,6 +3066,7 @@ let
   pure = callPackage ../development/interpreters/pure {};
 
   python3 = hiPrio (callPackage ../development/interpreters/python/3.3 { });
+  python33 = callPackage ../development/interpreters/python/3.3 { };
 
   python = python27;
   python26 = callPackage ../development/interpreters/python/2.6 { };
@@ -3032,6 +3102,11 @@ let
 
   regina = callPackage ../development/interpreters/regina {};
 
+  renpy = callPackage ../development/interpreters/renpy {
+    ffmpeg = ffmpeg_1;
+    wrapPython = pythonPackages.wrapPython;
+  };
+
   ruby18 = callPackage ../development/interpreters/ruby/ruby-18.nix { };
   ruby19 = callPackage ../development/interpreters/ruby/ruby-19.nix { };
   ruby2 = lowPrio (callPackage ../development/interpreters/ruby/ruby-2.0.nix { });
@@ -3075,6 +3150,27 @@ let
 
   ### DEVELOPMENT / MISC
 
+  amdadlsdk = callPackage ../development/misc/amdadl-sdk { };
+
+  amdappsdk26 = callPackage ../development/misc/amdapp-sdk {
+    version = "2.6";
+  };
+
+  amdappsdk27 = callPackage ../development/misc/amdapp-sdk {
+    version = "2.7";
+  };
+
+  amdappsdk28 = callPackage ../development/misc/amdapp-sdk {
+    version = "2.8";
+  };
+
+  amdappsdk = amdappsdk28;
+
+  amdappsdkFull = callPackage ../development/misc/amdapp-sdk {
+    version = "2.8";
+    samples = true;
+  };
+
   avrgcclibc = callPackage ../development/misc/avr-gcc-with-avr-libc {};
 
   avr8burnomat = callPackage ../development/misc/avr8-burn-omat { };
@@ -3108,7 +3204,6 @@ let
 
   ### DEVELOPMENT / TOOLS
 
-
   antlr = callPackage ../development/tools/parsing/antlr/2.7.7.nix { };
 
   antlr3 = callPackage ../development/tools/parsing/antlr { };
@@ -3155,6 +3250,8 @@ let
     inherit noSysDirs;
   };
 
+  binutils_deterministic = binutils.override { deterministic = true; };
+
   binutils_gold = lowPrio (callPackage ../development/tools/misc/binutils {
     inherit noSysDirs;
     gold = true;
@@ -3205,7 +3302,7 @@ let
 
   cgdb = callPackage ../development/tools/misc/cgdb { };
 
-  chromedriver = callPackage ../development/tools/selenium/chromedriver { };
+  chromedriver = callPackage ../development/tools/selenium/chromedriver { gconf = gnome.GConf; };
 
   complexity = callPackage ../development/tools/misc/complexity { };
 
@@ -3393,6 +3490,7 @@ let
   noweb = callPackage ../development/tools/literate-programming/noweb { };
 
   omake = callPackage ../development/tools/ocaml/omake { };
+  omake_rc1 = callPackage ../development/tools/ocaml/omake/0.9.8.6-rc1.nix { };
 
   openocd = callPackage ../development/tools/misc/openocd { };
 
@@ -3447,8 +3545,6 @@ let
     jre = jdk;
   };
 
-  sbt = callPackage ../development/tools/build-managers/sbt { };
-
   scons = callPackage ../development/tools/build-managers/scons { };
 
   simpleBuildTool = callPackage ../development/tools/build-managers/simple-build-tool { };
@@ -3518,7 +3614,6 @@ let
 
   ### DEVELOPMENT / LIBRARIES
 
-
   a52dec = callPackage ../development/libraries/a52dec { };
 
   aacskeys = callPackage ../development/libraries/aacskeys { };
@@ -3702,23 +3797,16 @@ let
 
   db48 = callPackage ../development/libraries/db4/db4-4.8.nix { };
 
-  dbus = pkgs.dbus_all.libs // { inherit (pkgs.dbus_all) libs; };
-
-  dbus_daemon = pkgs.dbus_all.daemon;
-
-  dbus_tools = pkgs.dbus_all.tools;
-
-  dbus_libs = pkgs.dbus_all.libs;
-
-  dbus_all = callPackage ../development/libraries/dbus {
-    useX11 = true;
-  };
-
-  dbus_cplusplus = callPackage ../development/libraries/dbus-cplusplus { };
-
-  dbus_glib = callPackage ../development/libraries/dbus-glib { };
-
-  dbus_java = callPackage ../development/libraries/java/dbus-java { };
+  dbus = let dbus_all = callPackage ../development/libraries/dbus { };
+    in dbus_all.libs // dbus_all; # previously dbus.libs also contained the daemon
+  dbus_cplusplus  = callPackage ../development/libraries/dbus-cplusplus { };
+  dbus_glib       = callPackage ../development/libraries/dbus-glib { };
+  dbus_java       = callPackage ../development/libraries/java/dbus-java { };
+  dbus_python     = callPackage ../development/python-modules/dbus { };
+  # Should we deprecate these? Currently there are many references.
+  dbus_tools = dbus.tools;
+  dbus_libs = dbus.libs;
+  dbus_daemon = dbus.daemon;
 
   dclib = callPackage ../development/libraries/dclib { };
 
@@ -3834,8 +3922,6 @@ let
 
   gav = callPackage ../games/gav { };
 
-  GConf3 = callPackage ../development/libraries/GConf/3.x.nix { };
-
   gdome2 = callPackage ../development/libraries/gdome2 {
     inherit (gnome) gtkdoc;
   };
@@ -3970,6 +4056,10 @@ let
 
   glpk = callPackage ../development/libraries/glpk { };
 
+  glsurf = callPackage ../applications/science/math/glsurf { 
+    inherit (ocamlPackages) lablgl findlib camlimages ocaml_mysql mlgmp;
+  };
+
   gmime = callPackage ../development/libraries/gmime {
     stdenv = stdenvMulti;
   };
@@ -4008,6 +4098,7 @@ let
 
   #GMP ex-satellite, so better keep it near gmp
   mpfr = callPackage ../development/libraries/mpfr { };
+  mpfr_3_1_2 = callPackage ../development/libraries/mpfr/3.1.2.nix { };
 
   gst_all = {
     inherit (pkgs) gstreamer gnonlin gst_python qt_gstreamer;
@@ -4080,43 +4171,53 @@ let
       gtkmm;
   };
 
-  glib = callPackage ../development/libraries/glib/2.34.x.nix {
-    stdenv = stdenvMulti;
+  glib = callPackage ../development/libraries/glib {
+    stdenv = if stdenv.isDarwin
+      then overrideGCC stdenv gccApple
+      else stdenvMulti;
   };
 
   glibmm = callPackage ../development/libraries/glibmm { };
 
   glib_networking = callPackage ../development/libraries/glib-networking {};
 
-  atk = callPackage ../development/libraries/atk/2.6.x.nix {
+  atk = callPackage ../development/libraries/atk {
     stdenv = stdenvMulti;
   };
 
   atkmm = callPackage ../development/libraries/atkmm { };
 
+  pixman = callPackage ../development/libraries/pixman { };
+
   cairo = callPackage ../development/libraries/cairo {
     stdenv = stdenvMulti;
+    glSupport = lib.elem system lib.platforms.mesaPlatforms;
   };
 
-  cairomm = callPackage ../development/libraries/cairomm { };
-
   cairo_1_12_2 = callPackage ../development/libraries/cairo/1.12.2.nix { };
 
-  pango = callPackage ../development/libraries/pango/1.30.x.nix {
+  cairomm = callPackage ../development/libraries/cairomm { };
+
+  pango = callPackage ../development/libraries/pango {
     stdenv = stdenvMulti;
   };
 
   pangomm = callPackage ../development/libraries/pangomm/2.28.x.nix { };
 
-  gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf/2.26.x.nix {
+  pangox_compat = callPackage ../development/libraries/pangox-compat { };
+
+  gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf {
     stdenv = stdenvMulti;
   };
 
-  gtk2 = callPackage ../development/libraries/gtk+/2.24.x.nix {
+  gtk2 = callPackage ../development/libraries/gtk+/2.x.nix {
     stdenv = stdenvMulti;
+    cupsSupport = config.gtk2.cups or stdenv.isLinux;
   };
 
-  gtk3 = lowPrio (callPackage ../development/libraries/gtk+/3.2.x.nix { });
+  gtk3 = lowPrio (callPackage ../development/libraries/gtk+/3.x.nix {
+    inherit (gnome3) at_spi2_atk;
+  });
 
   gtk = pkgs.gtk2;
 
@@ -4191,6 +4292,8 @@ let
 
   id3lib = callPackage ../development/libraries/id3lib { };
 
+  iksemel = callPackage ../development/libraries/iksemel { };
+
   ilbc = callPackage ../development/libraries/ilbc { };
 
   ilmbase = callPackage ../development/libraries/ilmbase { };
@@ -4209,8 +4312,7 @@ let
 
   inteltbb = callPackage ../development/libraries/intel-tbb { };
 
-  intltool = gnome.intltool;
-  intltool_standalone = callPackage ../development/tools/misc/intltool {};
+  intltool = callPackage ../development/tools/misc/intltool { };
 
   irrlicht3843 = callPackage ../development/libraries/irrlicht { };
 
@@ -4318,7 +4420,7 @@ let
 
   libcm = callPackage ../development/libraries/libcm { };
 
-  libcroco = callPackage ../development/libraries/libcroco {};
+  inherit (gnome3) libcroco;
 
   libctemplate = callPackage ../development/libraries/libctemplate { };
 
@@ -4388,11 +4490,11 @@ let
   libgig = callPackage ../development/libraries/libgig { };
 
   libgnome_keyring = callPackage ../development/libraries/libgnome-keyring { };
-  libgnome_keyring3 = callPackage ../development/libraries/libgnome-keyring/3.x.nix { };
+  libgnome_keyring3 = gnome3.libgnome_keyring;
 
-  libgtop = callPackage ../development/libraries/libgtop {};
+  libsecret = callPackage ../development/libraries/libsecret { };
 
-  libgweather = callPackage ../development/libraries/libgweather {};
+  libgtop = callPackage ../development/libraries/libgtop {};
 
   liblo = callPackage ../development/libraries/liblo { };
 
@@ -4490,9 +4592,7 @@ let
 
   libspectre = callPackage ../development/libraries/libspectre { };
 
-  libgsf = callPackage ../development/libraries/libgsf {
-    inherit (gnome) gnome_vfs libbonobo;
-  };
+  libgsf = callPackage ../development/libraries/libgsf { };
 
   libiconv = callPackage ../development/libraries/libiconv { };
 
@@ -4520,11 +4620,15 @@ let
 
   libiptcdata = callPackage ../development/libraries/libiptcdata { };
 
-  libjpeg = callPackage ../development/libraries/libjpeg {
+  libjpeg_original = callPackage ../development/libraries/libjpeg {
+    stdenv = stdenvMulti;
+  };
+
+  libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo {
     stdenv = stdenvMulti;
   };
 
-  libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { };
+  libjpeg = if stdenv.isLinux then libjpeg_turbo else libjpeg_original; # some problems, both on FreeBSD and Darwin
 
   libjpeg62 = callPackage ../development/libraries/libjpeg/62.nix {
     libtool = libtool_1_5;
@@ -4619,6 +4723,9 @@ let
   libpng = callPackage ../development/libraries/libpng { };
   libpng_apng = callPackage ../development/libraries/libpng/libpng-apng.nix { };
   libpng12 = callPackage ../development/libraries/libpng/12.nix { };
+  libpng15 = callPackage ../development/libraries/libpng/15.nix { };
+
+  libpaper = callPackage ../development/libraries/libpaper { };
 
   libproxy = callPackage ../development/libraries/libproxy { };
 
@@ -4626,7 +4733,9 @@ let
 
   libqalculate = callPackage ../development/libraries/libqalculate { };
 
-  librsvg = callPackage ../development/libraries/librsvg { };
+  librsvg = callPackage ../development/libraries/librsvg {
+    gtk2 = null; gtk3 = null; # neither gtk version by default
+  };
 
   librsync = callPackage ../development/libraries/librsync { };
 
@@ -4679,9 +4788,17 @@ let
 
   libunique = callPackage ../development/libraries/libunique/default.nix { };
 
-  libusb = callPackage ../development/libraries/libusb { };
+  libusb = callPackage ../development/libraries/libusb {
+    stdenv = if stdenv.isDarwin
+      then overrideGCC stdenv gccApple
+      else stdenv;
+  };
 
-  libusb1 = callPackage ../development/libraries/libusb1 { };
+  libusb1 = callPackage ../development/libraries/libusb1 {
+    stdenv = if stdenv.isDarwin # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50909
+      then overrideGCC stdenv gccApple
+      else stdenv;
+  };
 
   libunwind = callPackage ../development/libraries/libunwind { };
 
@@ -4691,7 +4808,7 @@ let
 
   libva = callPackage ../development/libraries/libva { };
 
-  libvdpau = callPackage ../development/libraries/libvdpau { inherit (xlibs) libX11; };
+  libvdpau = callPackage ../development/libraries/libvdpau { };
 
   libvirt = callPackage ../development/libraries/libvirt { };
 
@@ -4731,6 +4848,8 @@ let
 
   libxdg_basedir = callPackage ../development/libraries/libxdg-basedir { };
 
+  libxkbcommon = callPackage ../development/libraries/libxkbcommon { };
+
   libxklavier = callPackage ../development/libraries/libxklavier { };
 
   libxmi = callPackage ../development/libraries/libxmi { };
@@ -4768,13 +4887,14 @@ let
 
   liquidwar = builderDefsPackage ../games/liquidwar {
     inherit (xlibs) xproto libX11 libXrender;
-    inherit gmp mesa libjpeg libpng
+    inherit gmp mesa libjpeg
       expat gettext perl
       SDL SDL_image SDL_mixer SDL_ttf
       curl sqlite
       libogg libvorbis
       ;
-   guile = guile_1_8;
+    guile = guile_1_8;
+    libpng = libpng15; # 0.0.13 needs libpng 1.2--1.5
   };
 
   log4cpp = callPackage ../development/libraries/log4cpp { };
@@ -4794,11 +4914,18 @@ let
 
   mesaSupported = lib.elem system lib.platforms.mesaPlatforms;
 
+  mesa_original = callPackage ../development/libraries/mesa { };
+  mesa_noglu = if stdenv.isDarwin then darwinX11AndOpenGL
+    else mesa_original;
+  mesa_drivers = mesa_original.drivers;
+  mesa_glu = callPackage ../development/libraries/mesa-glu { };
+  mesa = if stdenv.isDarwin then darwinX11AndOpenGL
+    else buildEnv {
+      name = "mesa-${mesa_noglu.version}";
+      paths = [ mesa_glu mesa_noglu ];
+    };
   darwinX11AndOpenGL = callPackage ../os-specific/darwin/native-x11-and-opengl { };
 
-  mesa = if stdenv.isDarwin then darwinX11AndOpenGL else
-    callPackage ../development/libraries/mesa { };
-
   metaEnvironment = recurseIntoAttrs (let callPackage = newScope pkgs.metaEnvironment; in rec {
     sdfLibrary    = callPackage ../development/libraries/sdf-library { aterm = aterm28; };
     toolbuslib    = callPackage ../development/libraries/toolbuslib { aterm = aterm28; inherit (windows) w32api; };
@@ -4995,14 +5122,14 @@ let
 
   policykit = callPackage ../development/libraries/policykit { };
 
-  poppler = callPackage ../development/libraries/poppler {
-    gtkSupport = true;
-    qt4Support = false;
-  };
+  poppler = let popplers = callPackage ../development/libraries/poppler { };
+    in popplers // popplers.poppler_glib;
+  popplerQt4 = poppler.poppler_qt4;
 
-  popplerQt4 = poppler.override {
-    gtkSupport = false;
-    qt4Support = true;
+  poppler_0_18 = callPackage ../development/libraries/poppler/0.18.nix {
+    glibSupport = true;
+    gtk3Support = false;
+    qt4Support  = false;
   };
 
   popt = callPackage ../development/libraries/popt { };
@@ -5043,6 +5170,7 @@ let
   qt48 = callPackage ../development/libraries/qt-4.x/4.8 {
     # GNOME dependencies are not used unless gtkStyle == true
     inherit (pkgs.gnome) libgnomeui GConf gnome_vfs;
+    cups = if stdenv.isLinux then cups else null;
   };
 
   qt48Full = callPackage ../development/libraries/qt-4.x/4.8 {
@@ -5539,12 +5667,12 @@ let
 
   plone41Packages = recurseIntoAttrs (import ../development/web/plone/4.1.6.nix {
     inherit pkgs;
-    pythonPackages = python27Packages;
+    pythonPackages = python26Packages;
   });
 
   plone42Packages = recurseIntoAttrs (import ../development/web/plone/4.2.5.nix {
     inherit pkgs;
-    pythonPackages = python27Packages;
+    pythonPackages = python26Packages;
   });
 
   plone43Packages = recurseIntoAttrs (import ../development/web/plone/4.3.0.nix {
@@ -5631,9 +5759,7 @@ let
 
   sabnzbd = callPackage ../servers/sabnzbd { };
 
-  bind = callPackage ../servers/dns/bind {
-    inherit openssl libtool perl;
-  };
+  bind = callPackage ../servers/dns/bind { };
 
   couchdb = callPackage ../servers/http/couchdb {
     spidermonkey = spidermonkey_185;
@@ -5741,6 +5867,8 @@ let
 
   mongodb = callPackage ../servers/nosql/mongodb { };
 
+  riak = callPackage ../servers/nosql/riak/1.3.1.nix { };
+
   mysql4 = import ../servers/sql/mysql {
     inherit fetchurl stdenv ncurses zlib perl;
     ps = procps; /* !!! Linux only */
@@ -5863,11 +5991,12 @@ let
   xinetd = callPackage ../servers/xinetd { };
 
   xorg = recurseIntoAttrs (import ../servers/x11/xorg/default.nix {
-    inherit fetchurl fetchsvn stdenv stdenvMulti pkgconfig freetype fontconfig
-      libxslt expat libdrm libpng zlib perl mesa
+    inherit fetchurl fetchgit stdenv stdenvMulti pkgconfig intltool freetype fontconfig
+      libxslt expat libdrm libpng zlib perl mesa_drivers
       xkeyboard_config dbus libuuid openssl gperf m4
-      autoconf libtool xmlto asciidoc udev flex bison python mtdev;
+      autoconf libtool xmlto asciidoc udev flex bison python mtdev pixman;
     automake = automake110x;
+    mesa = mesa_noglu;
   });
 
   xorgReplacements = callPackage ../servers/x11/xorg/replacements.nix { };
@@ -5880,9 +6009,7 @@ let
     inherit fetchurl stdenv pkgconfig postgresql curl openssl zlib;
   });
 
-  zabbix20 = recurseIntoAttrs (import ../servers/monitoring/zabbix/2.0.nix {
-    inherit fetchurl stdenv pkgconfig postgresql curl openssl zlib gettext;
-  });
+  zabbix20 = callPackage ../servers/monitoring/zabbix/2.0.nix { };
 
 
   ### OS-SPECIFIC
@@ -6284,6 +6411,8 @@ let
 
     perf = callPackage ../os-specific/linux/kernel/perf.nix { };
 
+    psmouse_alps = callPackage ../os-specific/linux/psmouse-alps { };
+
     spl = callPackage ../os-specific/linux/spl/default.nix { };
 
     sysprof = callPackage ../development/tools/profiling/sysprof {
@@ -6397,7 +6526,9 @@ let
 
   nettools = callPackage ../os-specific/linux/net-tools { };
 
-  neverball = callPackage ../games/neverball { };
+  neverball = callPackage ../games/neverball {
+    libpng = libpng15;
+  };
 
   numactl = callPackage ../os-specific/linux/numactl { };
 
@@ -6667,6 +6798,7 @@ let
 
   zd1211fw = callPackage ../os-specific/linux/firmware/zd1211 { };
 
+
   ### DATA
 
   andagii = callPackage ../data/fonts/andagii {};
@@ -6730,7 +6862,7 @@ let
 
   gnome_user_docs = callPackage ../data/documentation/gnome-user-docs { };
 
-  gsettings_desktop_schemas = callPackage ../data/misc/gsettings-desktop-schemas {};
+  inherit (gnome3) gsettings_desktop_schemas;
 
   hicolor_icon_theme = callPackage ../data/misc/hicolor-icon-theme { };
 
@@ -6947,6 +7079,10 @@ let
 
   cgit = callPackage ../applications/version-management/git-and-tools/cgit { };
 
+  cgminer = callPackage ../applications/misc/cgminer {
+    amdappsdk = amdappsdk28;
+  };
+
   chatzilla = callPackage ../applications/networking/irc/chatzilla {
     xulrunner = firefox36Pkgs.xulrunner;
   };
@@ -6957,11 +7093,11 @@ let
     pulseSupport = config.pulseaudio or false;
   });
 
-  chromiumBeta = chromium.override { channel = "beta"; };
-  chromiumBetaWrapper = wrapChromium chromiumBeta;
+  chromiumBeta = lowPrio (chromium.override { channel = "beta"; });
+  chromiumBetaWrapper = lowPrio (wrapChromium chromiumBeta);
 
-  chromiumDev = chromium.override { channel = "dev"; };
-  chromiumDevWrapper = wrapChromium chromiumDev;
+  chromiumDev = lowPrio (chromium.override { channel = "dev"; });
+  chromiumDevWrapper = lowPrio (wrapChromium chromiumDev);
 
   chromiumWrapper = wrapChromium chromium;
 
@@ -6972,7 +7108,6 @@ let
   compiz = callPackage ../applications/window-managers/compiz {
     inherit (gnome) GConf ORBit2 metacity;
     boost = boost149; # https://bugs.launchpad.net/compiz/+bug/1131864
-    intltool = intltool_standalone;
   };
 
   coriander = callPackage ../applications/video/coriander {
@@ -7120,7 +7255,7 @@ let
 
     cua = callPackage ../applications/editors/emacs-modes/cua { };
 
-    ecb = callPackage ../applications/editors/emacs-modes/ecb { };
+    # ecb = callPackage ../applications/editors/emacs-modes/ecb { };
 
     jabber = callPackage ../applications/editors/emacs-modes/jabber { };
 
@@ -7132,6 +7267,8 @@ let
 
     emms = callPackage ../applications/editors/emacs-modes/emms { };
 
+    ess = callPackage ../applications/editors/emacs-modes/ess { };
+
     flymakeCursor = callPackage ../applications/editors/emacs-modes/flymake-cursor { };
 
     gh = callPackage ../applications/editors/emacs-modes/gh { };
@@ -7154,6 +7291,8 @@ let
 
     ocamlMode = callPackage ../applications/editors/emacs-modes/ocaml { };
 
+    tuaregMode = callPackage ../applications/editors/emacs-modes/tuareg { };
+
     hol_light_mode = callPackage ../applications/editors/emacs-modes/hol_light { };
 
     htmlize = callPackage ../applications/editors/emacs-modes/htmlize { };
@@ -7220,13 +7359,8 @@ let
 
   keepassx = callPackage ../applications/misc/keepassx { };
 
-  # FIXME: Evince and other GNOME/GTK+ apps (e.g., Viking) provide
-  # `share/icons/hicolor/icon-theme.cache'.  Arbitrarily give this one a
-  # higher priority.
-  evince = hiPrio (callPackage ../applications/misc/evince {
-    inherit (gnome) gnomedocutils gnomeicontheme libgnome
-      libgnomeui libglade scrollkeeper;
-  });
+  inherit (gnome3) evince;
+  keepass = callPackage ../applications/misc/keepass { };
 
   evolution_data_server = newScope (gnome) ../servers/evolution-data-server { };
 
@@ -7290,7 +7424,7 @@ let
 
   firefoxWrapper = wrapFirefox { browser = pkgs.firefox; };
 
-  firefoxPkgs = pkgs.firefox20Pkgs;
+  firefoxPkgs = pkgs.firefox21Pkgs;
 
   firefox36Pkgs = callPackage ../applications/networking/browsers/firefox/3.6.nix {
     inherit (gnome) libIDL;
@@ -7387,8 +7521,8 @@ let
   gmrun = callPackage ../applications/misc/gmrun {};
 
   gnucash = callPackage ../applications/office/gnucash {
-    inherit (gnome) libgnomeui libgtkhtml gtkhtml libbonoboui libgnomeprint;
-    gconf = gnome.GConf;
+    inherit (gnome2) libgnomeui libgtkhtml gtkhtml libbonoboui libgnomeprint libglade libart_lgpl;
+    gconf = gnome2.GConf;
     guile = guile_1_8;
     slibGuile = slibGuile.override { scheme = guile_1_8; };
   };
@@ -7583,7 +7717,12 @@ let
 
   iptraf = callPackage ../applications/networking/iptraf { };
 
-  irssi = callPackage ../applications/networking/irc/irssi { };
+  irssi = callPackage ../applications/networking/irc/irssi {
+    # compile with gccApple on darwin to support the -no-cpp-precompile flag
+    stdenv = if stdenv.isDarwin
+      then stdenvAdapters.overrideGCC stdenv gccApple
+      else stdenv;
+  };
 
   irssi_fish = callPackage ../applications/networking/irc/irssi/fish { };
 
@@ -7614,7 +7753,7 @@ let
   jwm = callPackage ../applications/window-managers/jwm { };
 
   k3d = callPackage ../applications/graphics/k3d {
-    inherit (pkgs.gnome) gtkglext;
+    inherit (pkgs.gnome2) gtkglext;
   };
 
   keepnote = callPackage ../applications/office/keepnote {
@@ -7666,6 +7805,7 @@ let
         freefont_ttf xorg.fontmiscmisc xorg.fontbhttf
       ];
     };
+    poppler = poppler_0_18;
   };
 
   lingot = callPackage ../applications/audio/lingot {
@@ -7826,6 +7966,34 @@ let
 
   mutt = callPackage ../applications/networking/mailreaders/mutt { };
 
+  ruby_gpgme = callPackage ../development/libraries/ruby_gpgme {
+    ruby = ruby19;
+    hoe = rubyLibs.hoe;
+  };
+
+  ruby_ncursesw_sup = callPackage ../development/libraries/ruby_ncursesw_sup { };
+
+  smplayer = callPackage ../applications/video/smplayer { };
+
+  sup = callPackage ../applications/networking/mailreaders/sup {
+    ruby = ruby19;
+
+    chronic = rubyLibs.chronic;
+    gettext = rubyLibs.gettext;
+    gpgme = ruby_gpgme;
+    highline = rubyLibs.highline;
+    iconv = rubyLibs.iconv;
+    locale = rubyLibs.locale;
+    lockfile = rubyLibs.lockfile;
+    mime_types = rubyLibs.mime_types;
+    ncursesw_sup = ruby_ncursesw_sup;
+    rake = rubyLibs.rake_10_0_4;
+    rmail = rubyLibs.rmail;
+    text = rubyLibs.text;
+    trollop = rubyLibs.trollop;
+    xapian_ruby = rubyLibs.xapian_ruby;
+  };
+
   msmtp = callPackage ../applications/networking/msmtp { };
 
   imapfilter = callPackage ../applications/networking/mailreaders/imapfilter.nix {
@@ -7916,6 +8084,8 @@ let
 
   pdftk = callPackage ../tools/typesetting/pdftk { };
 
+  pianobar = callPackage ../applications/audio/pianobar { };
+
   pianobooster = callPackage ../applications/audio/pianobooster { };
 
   picard = callPackage ../applications/audio/picard { };
@@ -8214,7 +8384,13 @@ let
 
   trayer = callPackage ../applications/window-managers/trayer { };
 
-  tree = callPackage ../tools/system/tree { };
+  tree = callPackage ../tools/system/tree {
+    # use gccApple to compile on darwin as the configure script adds a
+    # -no-cpp-precomp flag, which is not compatible with the default gcc
+    stdenv = if stdenv.isDarwin
+      then stdenvAdapters.overrideGCC stdenv gccApple
+      else stdenv;
+  };
 
   tribler = callPackage ../applications/networking/p2p/tribler { };
 
@@ -8261,19 +8437,24 @@ let
 
   vimHugeX = vim_configurable;
 
-  vim_configurable = import ../applications/editors/vim/configurable.nix {
-    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;
+  vim_configurable = callPackage ../applications/editors/vim/configurable.nix {
+    inherit (pkgs) fetchurl stdenv ncurses pkgconfig gettext
+      composableDerivation lib config glib gtk python perl tcl ruby;
+    inherit (pkgs.xlibs) libX11 libXext libSM libXpm libXt libXaw libXau libXmu
+      libICE;
+
     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;
+    gui = config.vim.gui or "auto";
+
     # optional features by flags
     flags = [ "python" "X11" ]; # only flag "X11" by now
+
+    # so that we can use gccApple if we're building on darwin
+    inherit stdenvAdapters gccApple;
   };
+  vimLatest = vim_configurable.override { source = "latest"; };
+  vimNox = vim_configurable.override { source = "vim-nox"; };
 
   virtviewer = callPackage ../applications/virtualization/virt-viewer {};
   virtmanager = callPackage ../applications/virtualization/virt-manager {
@@ -8308,6 +8489,14 @@ let
 
   weechat = callPackage ../applications/networking/irc/weechat { };
 
+  weston = callPackage ../applications/window-managers/weston {
+    cairo = cairo.override {
+      glSupport = true;
+    };
+  };
+
+  winswitch = callPackage ../tools/X11/winswitch { };
+
   wings = callPackage ../applications/graphics/wings {
     erlang = erlangR14B04;
     esdl = esdl.override { erlang = erlangR14B04; };
@@ -8482,6 +8671,7 @@ let
 
   zynaddsubfx = callPackage ../applications/audio/zynaddsubfx { };
 
+
   ### GAMES
 
   alienarena = callPackage ../games/alienarena { };
@@ -8777,7 +8967,6 @@ let
 
   ### DESKTOP ENVIRONMENTS
 
-
   enlightenment = callPackage ../desktops/enlightenment { };
 
   e17 = recurseIntoAttrs (
@@ -8793,6 +8982,11 @@ let
     inherit (pkgs) libsoup libwnck gtk_doc gnome_doc_utils;
   };
 
+  gnome3 = callPackage ../desktops/gnome-3 {
+    callPackage = pkgs.newScope pkgs.gnome3;
+    self = pkgs.gnome3;
+  };
+
   gnome = recurseIntoAttrs gnome2;
 
   kde4 = recurseIntoAttrs pkgs.kde48;
@@ -8940,9 +9134,12 @@ let
 
   oxygen_gtk = callPackage ../misc/themes/gtk2/oxygen-gtk { };
 
+  gnome_themes_standard = callPackage ../misc/themes/gnome-themes-standard { };
+
   xfce = xfce4_10;
   xfce4_10 = recurseIntoAttrs (import ../desktops/xfce { inherit pkgs newScope; });
 
+
   ### SCIENCE
 
   celestia = callPackage ../applications/science/astronomy/celestia {
@@ -8962,6 +9159,7 @@ let
 
   stellarium = callPackage ../applications/science/astronomy/stellarium { };
 
+
   ### SCIENCE/GEOMETRY
 
   drgeo = builderDefsPackage (import ../applications/science/geometry/drgeo) {
@@ -9044,6 +9242,7 @@ let
     cmake = cmakeCurses;
   });
 
+
   ### SCIENCE/LOGIC
 
   coq = callPackage ../applications/science/logic/coq {
@@ -9120,6 +9319,7 @@ let
 
   tptp = callPackage ../applications/science/logic/tptp {};
 
+
   ### SCIENCE / ELECTRONICS
 
   eagle = callPackage_i686 ../applications/science/electronics/eagle { };
@@ -9170,8 +9370,11 @@ let
 
   msieve = callPackage ../applications/science/math/msieve { };
 
+  weka = callPackage ../applications/science/math/weka { };
+
   yacas = callPackage ../applications/science/math/yacas { };
 
+
   ### SCIENCE / MISC
 
   boinc = callPackage ../applications/science/misc/boinc { };
@@ -9184,6 +9387,7 @@ let
 
   vite = callPackage ../applications/science/misc/vite { };
 
+
   ### MISC
 
   atari800 = callPackage ../misc/emulators/atari800 { };
@@ -9287,6 +9491,8 @@ let
   };
   */
 
+  nixops = callPackage ../tools/package-management/nixops { };
+
   nut = callPackage ../applications/misc/nut { };
 
   solfege = callPackage ../misc/solfege {
@@ -9394,7 +9600,8 @@ let
 
   texLiveFull = lib.setName "texlive-full" (texLiveAggregationFun {
     paths = [ texLive texLiveExtra lmodern texLiveCMSuper texLiveLatexXColor
-              texLivePGF texLiveBeamer texLiveModerncv tipa tex4ht texinfo5 ];
+              texLivePGF texLiveBeamer texLiveModerncv tipa tex4ht texinfo5
+              texLiveModerntimeline ];
   });
 
   /* Look in configurations/misc/raskin.nix for usage example (around revisions
@@ -9442,12 +9649,18 @@ let
     inherit texLive unzip;
   };
 
+  texLiveModerntimeline = builderDefsPackage (import ../tools/typesetting/tex/texlive/moderntimeline.nix) {
+    inherit texLive unzip;
+  };
+
   thinkfan = callPackage ../tools/system/thinkfan { };
 
   vice = callPackage ../misc/emulators/vice { };
 
   viewnior = callPackage ../applications/graphics/viewnior { };
 
+  vimPlugins = callPackage ../misc/vim-plugins { };
+
   vimprobable2 = callPackage ../applications/networking/browsers/vimprobable2 {
     inherit (gnome) libsoup;
     webkit = webkit_gtk2;
@@ -9486,6 +9699,28 @@ let
     inherit (stdenv) mkDerivation;
   };
 
+  # patoline requires a rather large ocaml compilation environment.
+  # this is why it is build as an environment and not just a normal package.
+  # remark : the emacs mode is also installed, but you have to adjust your load-path.
+  PatolineEnv = pack: myEnvFun {
+      name = "patoline";
+      buildInputs = [ stdenv ncurses mesa freeglut libzip gcc
+                                   pack.ocaml pack.findlib pack.camomile
+                                   pack.dypgen pack.ocaml_sqlite3 pack.camlzip
+                                   pack.lablgtk pack.camlimages pack.ocaml_cairo
+                                   pack.lablgl pack.ocamlnet pack.cryptokit
+                                   pack.ocaml_pcre pack.patoline
+                                   ];
+    # this is to circumvent the bug with libgcc_s.so.1 which is
+    # not found when using thread
+    extraCmds = ''
+       LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${gcc.gcc}/lib
+       export LD_LIBRARY_PATH
+    '';
+   };
+
+   patoline = PatolineEnv ocamlPackages_4_00_1;
+
   znc = callPackage ../applications/networking/znc { };
 
   zsnes = callPackage_i686 ../misc/emulators/zsnes {
diff --git a/pkgs/top-level/haskell-defaults.nix b/pkgs/top-level/haskell-defaults.nix
index 23573478e39..d2cfbf38f98 100644
--- a/pkgs/top-level/haskell-defaults.nix
+++ b/pkgs/top-level/haskell-defaults.nix
@@ -98,6 +98,11 @@
       jailbreakCabal = self.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; };
       cabal2nix = self.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; };
       bmp = self.bmp_1_2_2_1;
+      cabalInstall_1_16_0_2 = self.cabalInstall_1_16_0_2.override {
+        Cabal = self.Cabal_1_16_0_3; zlib = self.zlib_0_5_3_3;
+        mtl = self.mtl_2_1_2;
+        HTTP = self.HTTP_4000_1_1.override { mtl = self.mtl_2_1_2; };
+      };
     };
 
   ghc6121Prefs =
@@ -111,6 +116,12 @@
       jailbreakCabal = self.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; };
       cabal2nix = self.cabal2nix.override { Cabal = self.Cabal_1_16_0_3; hackageDb = self.hackageDb.override { Cabal = self.Cabal_1_16_0_3; }; };
       bmp = self.bmp_1_2_2_1;
+      cabalInstall_1_16_0_2 = self.cabalInstall_1_16_0_2.override {
+        Cabal = self.Cabal_1_16_0_3;
+        zlib = self.zlib_0_5_3_3;
+        mtl = self.mtl_2_1_2;
+        HTTP = self.HTTP_4000_1_1.override { mtl = self.mtl_2_1_2; };
+      };
     };
 
   ghc6104Prefs =
@@ -125,6 +136,13 @@
       # deviating from Haskell platform here, to make some packages (notably statistics) compile
       jailbreakCabal = self.jailbreakCabal.override { Cabal = self.disableTest self.Cabal_1_14_0; };
       bmp = self.bmp_1_2_2_1;
+      binary = self.binary_0_6_0_0;
+      cabalInstall_1_16_0_2 = self.cabalInstall_1_16_0_2.override {
+        Cabal = self.Cabal_1_16_0_3;
+        zlib = self.zlib_0_5_3_3;
+        mtl = self.mtl_2_1_2;
+        HTTP = self.HTTP_4000_1_1.override { mtl = self.mtl_2_1_2; };
+      };
     };
 
   # Abstraction for Haskell packages collections
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index e21985b5ab3..4bcce23fc3b 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -139,42 +139,42 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   haskellPlatformArgs_future = self : {
     inherit (self) cabal ghc;
-    async        = self.async_2_0_1_4;          # 7.6 ok
-    attoparsec   = self.attoparsec_0_10_4_0;    # 7.6 ok
+    async        = self.async_2_0_1_4;
+    attoparsec   = self.attoparsec_0_10_4_0;
     caseInsensitive = self.caseInsensitive_1_0_0_1;
-    cgi          = self.cgi_3001_1_7_5;         # 7.6 ok
-    fgl          = self.fgl_5_4_2_4;            # 7.6 ok
-    GLUT         = self.GLUT_2_4_0_0;           # 7.6 ok
-    GLURaw       = self.GLURaw_1_3_0_0;         # 7.6 ok
-    haskellSrc   = self.haskellSrc_1_0_1_5;     # 7.6 ok
-    hashable     = self.hashable_1_1_2_5;       # 7.6 ok
-    html         = self.html_1_0_1_2;           # 7.6 ok
-    HTTP         = self.HTTP_4000_2_8;          # 7.6 ok
-    HUnit        = self.HUnit_1_2_5_2;          # 7.6 ok
-    mtl          = self.mtl_2_1_2;              # 7.6 ok
-    network      = self.network_2_4_1_2;        # 7.6 ok
-    OpenGL       = self.OpenGL_2_8_0_0;         # 7.6 ok
-    OpenGLRaw    = self.OpenGLRaw_1_3_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_6;         # 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
-    split        = self.split_0_2_2;            # 7.6 ok
-    stm          = self.stm_2_4_2;              # 7.6 ok
-    syb          = self.syb_0_4_0;              # 7.6 ok
-    text         = self.text_0_11_3_1;          # 7.6 ok
-    transformers = self.transformers_0_3_0_0;   # 7.6 ok
+    cgi          = self.cgi_3001_1_7_5;
+    fgl          = self.fgl_5_4_2_4;
+    GLUT         = self.GLUT_2_4_0_0;
+    GLURaw       = self.GLURaw_1_3_0_0;
+    haskellSrc   = self.haskellSrc_1_0_1_5;
+    hashable     = self.hashable_1_2_0_10;
+    html         = self.html_1_0_1_2;
+    HTTP         = self.HTTP_4000_2_8;
+    HUnit        = self.HUnit_1_2_5_2;
+    mtl          = self.mtl_2_1_2;
+    network      = self.network_2_4_1_2;
+    OpenGL       = self.OpenGL_2_8_0_0;
+    OpenGLRaw    = self.OpenGLRaw_1_3_0_0;
+    parallel     = self.parallel_3_2_0_3;
+    parsec       = self.parsec_3_1_3;
+    QuickCheck   = self.QuickCheck_2_6;
+    random       = self.random_1_0_1_1;
+    regexBase    = self.regexBase_0_93_2;
+    regexCompat  = self.regexCompat_0_95_1;
+    regexPosix   = self.regexPosix_0_95_2;
+    split        = self.split_0_2_2;
+    stm          = self.stm_2_4_2;
+    syb          = self.syb_0_4_0;
+    text         = self.text_0_11_3_1;
+    transformers = self.transformers_0_3_0_0;
     unorderedContainers = self.unorderedContainers_0_2_3_0;
-    vector       = self.vector_0_10_0_1;        # 7.6 ok
-    xhtml        = self.xhtml_3000_2_1;         # 7.6 ok
-    zlib         = self.zlib_0_5_4_1;           # 7.6 ok
-    cabalInstall = self.cabalInstall_1_16_0_2;  # 7.6 ok
-    alex         = self.alex_3_0_5;             # 7.6 ok
-    haddock      = self.haddock_2_13_2;         # 7.6 ok
-    happy        = self.happy_1_18_10;          # 7.6 ok
+    vector       = self.vector_0_10_0_1;
+    xhtml        = self.xhtml_3000_2_1;
+    zlib         = self.zlib_0_5_4_1;
+    cabalInstall = self.cabalInstall_1_16_0_2;
+    alex         = self.alex_3_0_5;
+    haddock      = self.haddock_2_13_2;
+    happy        = self.happy_1_18_10;
     primitive    = self.primitive_0_5_0_1;      # semi-official, but specified
   };
 
@@ -500,11 +500,7 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   acidState = callPackage ../development/libraries/haskell/acid-state {};
 
-  Agda = callPackage ../development/libraries/haskell/Agda {
-    hashable = self.hashable_1_1_2_5;
-    hashtables = self.hashtables.override { hashable = self.hashable_1_1_2_5; };
-    unorderedContainers = self.unorderedContainers.override { hashable = self.hashable_1_1_2_5; };
-  };
+  Agda = callPackage ../development/libraries/haskell/Agda {};
 
   accelerate = callPackage ../development/libraries/haskell/accelerate {};
 
@@ -589,7 +585,9 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   bimap = callPackage ../development/libraries/haskell/bimap {};
 
-  binary = callPackage ../development/libraries/haskell/binary {};
+  binary_0_6_0_0 = callPackage ../development/libraries/haskell/binary/0.6.0.0.nix {};
+  binary_0_7_1_0 = callPackage ../development/libraries/haskell/binary/0.7.1.0.nix {};
+  binary = self.binary_0_7_1_0;
 
   binaryShared = callPackage ../development/libraries/haskell/binary-shared {};
 
@@ -629,6 +627,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   boomerang = callPackage ../development/libraries/haskell/boomerang {};
 
+  bytedump = callPackage ../development/libraries/haskell/bytedump {};
+
   byteorder = callPackage ../development/libraries/haskell/byteorder {};
 
   bytestringNums = callPackage ../development/libraries/haskell/bytestring-nums {};
@@ -682,6 +682,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   Chart = callPackage ../development/libraries/haskell/Chart {};
 
+  ChartGtk = callPackage ../development/libraries/haskell/Chart-gtk {};
+
   ChasingBottoms = callPackage ../development/libraries/haskell/ChasingBottoms {};
 
   checkers = callPackage ../development/libraries/haskell/checkers {};
@@ -1076,8 +1078,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   happstackHamlet = callPackage ../development/libraries/haskell/happstack/happstack-hamlet.nix {};
 
   hashable_1_1_2_5 = callPackage ../development/libraries/haskell/hashable/1.1.2.5.nix {};
-  hashable_1_2_0_7 = callPackage ../development/libraries/haskell/hashable/1.2.0.7.nix {};
-  hashable = self.hashable_1_2_0_7;
+  hashable_1_2_0_10 = callPackage ../development/libraries/haskell/hashable/1.2.0.10.nix {};
+  hashable = self.hashable_1_2_0_10;
 
   hashedStorage = callPackage ../development/libraries/haskell/hashed-storage {};
 
@@ -1143,6 +1145,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   heist = callPackage ../development/libraries/haskell/heist {};
 
+  hflags = callPackage ../development/libraries/haskell/hflags {};
+
   HFuse = callPackage ../development/libraries/haskell/HFuse {};
 
   highlightingKate = callPackage ../development/libraries/haskell/highlighting-kate {};
@@ -1153,11 +1157,14 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   Hipmunk = callPackage ../development/libraries/haskell/Hipmunk {};
 
+  hit = callPackage ../development/libraries/haskell/hit {};
+
   hjsmin = callPackage ../development/libraries/haskell/hjsmin {};
 
   hledger = callPackage ../development/libraries/haskell/hledger {};
   hledgerLib = callPackage ../development/libraries/haskell/hledger-lib {};
   hledgerInterest = callPackage ../applications/office/hledger-interest {};
+  hledgerIrr = callPackage ../applications/office/hledger-irr {};
   hledgerWeb = callPackage ../development/libraries/haskell/hledger-web {};
 
   HList = callPackage ../development/libraries/haskell/HList {};
@@ -1192,6 +1199,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   HsOpenSSL = callPackage ../development/libraries/haskell/HsOpenSSL {};
 
+  hsshellscript = callPackage ../development/libraries/haskell/hsshellscript {};
+
   HStringTemplate = callPackage ../development/libraries/haskell/HStringTemplate {};
 
   hspread = callPackage ../development/libraries/haskell/hspread {};
@@ -1559,11 +1568,11 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   pipes = callPackage ../development/libraries/haskell/pipes {};
 
-  pipes-concurrency = callPackage ../development/libraries/haskell/pipes-concurrency {};
+  pipesConcurrency = callPackage ../development/libraries/haskell/pipes-concurrency {};
 
-  pipes-parse = callPackage ../development/libraries/haskell/pipes-parse {};
+  pipesParse = callPackage ../development/libraries/haskell/pipes-parse {};
 
-  pipes-safe = callPackage ../development/libraries/haskell/pipes-safe {};
+  pipesSafe = callPackage ../development/libraries/haskell/pipes-safe {};
 
   polyparse = callPackage ../development/libraries/haskell/polyparse {};
 
@@ -1682,6 +1691,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   regexTDFA = callPackage ../development/libraries/haskell/regex-tdfa {};
   regexTdfa = self.regexTDFA;
 
+  regexTdfaText = callPackage ../development/libraries/haskell/regex-tdfa-text {};
+
   regexPCRE = callPackage ../development/libraries/haskell/regex-pcre {};
   regexPcre = self.regexPCRE;
 
@@ -1870,6 +1881,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   tagstreamConduit = callPackage ../development/libraries/haskell/tagstream-conduit {};
 
+  templateDefault = callPackage ../development/libraries/haskell/template-default {};
+
   temporary = callPackage ../development/libraries/haskell/temporary {};
 
   Tensor = callPackage ../development/libraries/haskell/Tensor {};
@@ -1995,8 +2008,6 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   vect = callPackage ../development/libraries/haskell/vect {};
 
-  vector_0_9_1 = callPackage ../development/libraries/haskell/vector/0.9.1.nix {};
-  vector_0_10 = callPackage ../development/libraries/haskell/vector/0.10.nix  {};
   vector_0_10_0_1  = callPackage ../development/libraries/haskell/vector/0.10.0.1.nix  {};
   vector = self.vector_0_10_0_1;
 
@@ -2008,6 +2019,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   vectorSpacePoints = callPackage ../development/libraries/haskell/vector-space-points {};
 
+  vectorThUnbox = callPackage ../development/libraries/haskell/vector-th-unbox {};
+
   void = callPackage ../development/libraries/haskell/void {};
 
   vty = callPackage ../development/libraries/haskell/vty {};
@@ -2093,6 +2106,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   xmlTypes = callPackage ../development/libraries/haskell/xml-types {};
 
+  xtest = callPackage ../development/libraries/haskell/xtest {};
+
   xssSanitize = callPackage ../development/libraries/haskell/xss-sanitize {};
 
   yaml = callPackage ../development/libraries/haskell/yaml {};
@@ -2105,6 +2120,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
 
   yesodAuth = callPackage ../development/libraries/haskell/yesod-auth {};
 
+  yesodBin = callPackage ../development/libraries/haskell/yesod-bin {};
+
   yesodCore = callPackage ../development/libraries/haskell/yesod-core {};
 
   yesodDefault = callPackage ../development/libraries/haskell/yesod-default {};
@@ -2202,7 +2219,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
   haddock_2_11_0 = callPackage ../development/tools/documentation/haddock/2.11.0.nix {};
   haddock_2_12_0 = callPackage ../development/tools/documentation/haddock/2.12.0.nix {};
   haddock_2_13_2 = callPackage ../development/tools/documentation/haddock/2.13.2.nix {};
-  haddock = self.haddock_2_13_2;
+  haddock_2_13_2_1 = callPackage ../development/tools/documentation/haddock/2.13.2.1.nix {};
+  haddock = self.haddock_2_13_2_1;
 
   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 {};
diff --git a/pkgs/top-level/node-packages-generated.nix b/pkgs/top-level/node-packages-generated.nix
index 9e1e6f5a5a5..c4a6bbb7ca6 100644
--- a/pkgs/top-level/node-packages-generated.nix
+++ b/pkgs/top-level/node-packages-generated.nix
@@ -601,19 +601,6 @@
     ];
   }
   {
-    baseName = "form-data";
-    version = "0.0.10";
-    fullName = "form-data-~0.0.3";
-    hash = "d49669b81c27dd6c7e359ee9892880c6741dae6c325b617ab3eb5a78bf103822";
-    patchLatest = false;
-    topLevel = false;
-    dependencies = [
-      { name = "combined-stream"; range = "~0.0.4"; }
-      { name = "mime"; range = "~1.2.2"; }
-      { name = "async"; range = "~0.2.7"; }
-    ];
-  }
-  {
     baseName = "formidable";
     version = "1.0.13";
     fullName = "formidable-1.0.13";
@@ -977,9 +964,9 @@
   }
   {
     baseName = "knox";
-    version = "0.8.2";
+    version = "0.8.3";
     fullName = "knox-*";
-    hash = "e4842cb834f27dc859fc6ab2389f7d0702f6cc6ecff469b89729dd33c33c0afd";
+    hash = "fe3cb0d94b3e85413626ffee386c751931afe200b170bd555173e413d7044c75";
     patchLatest = false;
     topLevel = true;
     dependencies = [
@@ -1072,16 +1059,6 @@
   {
     baseName = "mime";
     version = "1.2.9";
-    fullName = "mime-~1.2.7";
-    hash = "60120b9859a92a94480a76327a9406b4a72a34f2317bc7fa33dcb99b9c72678a";
-    patchLatest = false;
-    topLevel = false;
-    dependencies = [
-    ];
-  }
-  {
-    baseName = "mime";
-    version = "1.2.9";
     fullName = "mime-~1.2.9";
     hash = "60120b9859a92a94480a76327a9406b4a72a34f2317bc7fa33dcb99b9c72678a";
     patchLatest = false;
@@ -1235,9 +1212,9 @@
   }
   {
     baseName = "nijs";
-    version = "0.0.5";
+    version = "0.0.8";
     fullName = "nijs-*";
-    hash = "c5e9f93f240757e1ab2d0ad341384db6e0b73ab2616ae9832d1ed772eaebd408";
+    hash = "134a4f764835280487334f5cfd5a0d271cdd784fe954ad619fad250f54c3b3b9";
     patchLatest = false;
     topLevel = true;
     dependencies = [
@@ -1256,9 +1233,9 @@
   }
   {
     baseName = "node-gyp";
-    version = "0.9.6";
+    version = "0.10.0";
     fullName = "node-gyp-*";
-    hash = "937090ffd7de10079861ef562d0282dd4100873aa7bba7de9cd6ea7982b41b0b";
+    hash = "9edecaa701601f07b15da7bd6e9de4fae98ef1acdd5a1fc6cc144451a68773dd";
     patchLatest = false;
     topLevel = true;
     dependencies = [
@@ -1270,7 +1247,7 @@
       { name = "nopt"; range = "2"; }
       { name = "npmlog"; range = "0"; }
       { name = "osenv"; range = "0"; }
-      { name = "request"; range = ">= 2 && <= 2.14"; }
+      { name = "request"; range = "2"; }
       { name = "rimraf"; range = "2"; }
       { name = "semver"; range = "1"; }
       { name = "tar"; range = "0"; }
@@ -1514,14 +1491,24 @@
   }
   {
     baseName = "request";
-    version = "2.12.0";
-    fullName = "request->= 2 && <= 2.14";
-    hash = "a26790d2179da11a644d5deaa2ae5d37472bf0e73355fde02ea5923106308997";
+    version = "2.21.0";
+    fullName = "request-2";
+    hash = "fe31c3119bc4423f07aa7c9849cb642d5ad22bdf2a2700eab56fb83fa8ed429c";
     patchLatest = false;
     topLevel = false;
     dependencies = [
-      { name = "form-data"; range = "~0.0.3"; }
-      { name = "mime"; range = "~1.2.7"; }
+      { name = "qs"; range = "~0.6.0"; }
+      { name = "json-stringify-safe"; range = "~4.0.0"; }
+      { name = "forever-agent"; range = "~0.5.0"; }
+      { name = "tunnel-agent"; range = "~0.3.0"; }
+      { name = "http-signature"; range = "~0.9.11"; }
+      { name = "hawk"; range = "~0.13.0"; }
+      { name = "aws-sign"; range = "~0.3.0"; }
+      { name = "oauth-sign"; range = "~0.3.0"; }
+      { name = "cookie-jar"; range = "~0.3.0"; }
+      { name = "node-uuid"; range = "~1.4.0"; }
+      { name = "mime"; range = "~1.2.9"; }
+      { name = "form-data"; range = "0.0.8"; }
     ];
   }
   {
@@ -1796,9 +1783,9 @@
   }
   {
     baseName = "swig";
-    version = "0.13.5";
+    version = "0.14.0";
     fullName = "swig-*";
-    hash = "d1cc435c623829e5672df45c14a878304a41bec2b2c6b2a13bb956aeed22d1c9";
+    hash = "9eeafb591606008c7ab33501ebfdb6ed80830cca5736513c6c5874ded65cfb3f";
     patchLatest = false;
     topLevel = true;
     dependencies = [
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 8fe62df8220..c4fc6a1767a 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -18,7 +18,7 @@ rec {
     buildPerlPackage (args // {
       buildInputs = buildInputs ++ [ ModuleBuild ];
       preConfigure = "touch Makefile.PL";
-      buildPhase = "perl Build.PL --prefix=$out";
+      buildPhase = "perl Build.PL --prefix=$out; ./Build build";
       installPhase = "./Build install";
       checkPhase = "./Build test";
     });
@@ -72,6 +72,15 @@ rec {
     buildInputs = [ pkgs.unzip ];
   };
 
+  AlgorithmMerge = buildPerlPackage rec {
+    name = "Algorithm-Merge-0.08";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JS/JSMITH/Algorithm-Merge-0.08.tar.gz;
+      sha256 = "1kqn13wd0lfjrf6h19b9kgdqqwp7k2d9yfq5i0wvii0xi8jqh1lw";
+    };
+    propagatedBuildInputs = [ AlgorithmDiff ];
+  };
+
   aliased = buildPerlPackage rec {
     name = "aliased-0.30";
     src = fetchurl {
@@ -98,6 +107,20 @@ rec {
     propagatedBuildInputs = [Mouse];
   };
 
+  ApacheLogFormatCompiler = buildPerlModule {
+    name = "Apache-LogFormat-Compiler-0.13";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/K/KA/KAZEBURO/Apache-LogFormat-Compiler-0.13.tar.gz;
+      sha256 = "b4185125501e288efbc664da8b723ff86f0b69eb57d3c7c69c7d2069aab0efb0";
+    };
+    buildInputs = [ HTTPMessage TestRequires TryTiny URI ];
+    meta = {
+      homepage = https://github.com/kazeburo/Apache-LogFormat-Compiler;
+      description = "Compile a log format string to perl-code";
+      license = "perl";
+    };
+  };
+
   AppCLI = buildPerlPackage {
     name = "App-CLI-0.07";
     src = fetchurl {
@@ -129,7 +152,7 @@ rec {
   ArchiveZip = buildPerlPackage {
     name = "Archive-Zip-1.16";
     src = fetchurl {
-      url = http://nixos.org/tarballs/Archive-Zip-1.16.tar.gz;
+      url = http://tarballs.nixos.org/Archive-Zip-1.16.tar.gz;
       md5 = "e28dff400d07b1659d659d8dde7071f1";
     };
   };
@@ -229,11 +252,24 @@ rec {
     };
   };
 
+  BHooksOPCheck = buildPerlPackage {
+    name = "B-Hooks-OP-Check-0.19";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/Z/ZE/ZEFRAM/B-Hooks-OP-Check-0.19.tar.gz;
+      sha256 = "0pp1piv74pv9irqlvl5xcs2dvzbb74niwjhnj6dsckxf1j34mzrg";
+    };
+    buildInputs = [ ExtUtilsDepends ];
+    meta = {
+      description = "Wrap OP check callbacks";
+      license = "perl";
+    };
+  };
+
   BitVector = buildPerlPackage {
-    name = "Bit-Vector-6.4";
+    name = "Bit-Vector-7.3";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/ST/STBEY/Bit-Vector-6.4.tar.gz;
-      sha256 = "146vr78r6w3cxrm0ji491ylaa1abqh7fs81qhg15g3gzzxfg33bp";
+      url = http://cpan.metacpan.org/authors/id/S/ST/STBEY/Bit-Vector-7.3.tar.gz;
+      sha256 = "0gcg1173i1bsx2qvyw77kw90xbf03b861jc42hvq744vzc5k6xjs";
     };
     propagatedBuildInputs = [CarpClan];
   };
@@ -246,11 +282,16 @@ rec {
     };
   };
 
-  Boolean = buildPerlPackage rec {
-    name = "boolean-0.20";
+  boolean = buildPerlPackage {
+    name = "boolean-0.30";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IN/INGY/${name}.tar.gz";
-      sha256 = "1xqhzy3m2r08my13alff9bzl8b6xgd68312834x0hf33yir3l1yn";
+      url = mirror://cpan/authors/id/I/IN/INGY/boolean-0.30.tar.gz;
+      sha256 = "f46e7a6121d5728ef2ce285a82d1dde94f6dfa0b846a612db75b1dcd37b9fc7f";
+    };
+    meta = {
+      homepage = https://github.com/ingydotnet/boolean-pm/tree;
+      description = "Boolean support for Perl";
+      license = "perl";
     };
   };
 
@@ -280,6 +321,37 @@ rec {
     };
   };
 
+  CacheMemcached = buildPerlPackage rec {
+    name = "Cache-Memcached-1.30";
+    src = fetchurl {
+      url =
+      mirror://cpan/authors/id/D/DO/DORMANDO/Cache-Memcached-1.30.tar.gz;
+      sha256 = "1aa2mjn5767b13063nnsrwcikrnbspby7j1c5q007bzaq0gcbcri";
+    };
+    propagatedBuildInputs = [ StringCRC32 ];
+  };
+
+  CacheMemcachedFast = buildPerlPackage {
+    name = "Cache-Memcached-Fast-0.21";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/K/KR/KROKI/Cache-Memcached-Fast-0.21.tar.gz;
+      sha256 = "0lvwkkyazbb7i6c5ga5ms3gsvy721njpcbc2icxcsvc8bz32nz5i";
+    };
+    meta = {
+      description = "Perl client for B<memcached>, in C language";
+      license = "unknown";
+    };
+  };
+
+  CacheMemory = buildPerlPackage {
+    name = "Cache-Memory-2.04";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CL/CLEISHMAN/Cache-2.04.tar.gz;
+      sha256 = "1zykapgl9lxnlx79xfghzb26qimhry94xfxfyswwfhra1ywd9yyg";
+    };
+    propagatedBuildInputs = [ TimeDate DBFile DigestSHA1 FileNFSLock HeapFibonacci IOString ];
+  };
+
   cam_pdf = buildPerlPackage rec {
     name = "CAM-PDF-1.52";
     src = fetchurl {
@@ -291,10 +363,10 @@ rec {
   };
 
   CaptchaReCAPTCHA = buildPerlPackage rec {
-    name = "Captcha-reCAPTCHA-0.94";
+    name = "Captcha-reCAPTCHA-0.97";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AN/ANDYA/${name}.tar.gz";
-      sha256 = "01rnyqsd9b446b2wa1mycrfyiaigqdsjb3kbf7f3rrjgw3rwbf4d";
+      url = http://cpan.metacpan.org/authors/id/P/PH/PHRED/Captcha-reCAPTCHA-0.97.tar.gz;
+      sha256 = "12f2yh89aji6mnkrqxjcllws5dlg545wvz0j7wamy149xyqi12wq";
     };
     propagatedBuildInputs = [HTMLTiny LWP];
     buildInputs = [TestPod];
@@ -372,6 +444,20 @@ rec {
     };
   };
 
+  CatalystAuthenticationCredentialHTTP = buildPerlPackage {
+    name = "Catalyst-Authentication-Credential-HTTP-1.015";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Authentication-Credential-HTTP-1.015.tar.gz;
+      sha256 = "02gyq0vkhj2psd7hvw4b095mvsz7vbq8kv4k8lq748jnx5kmnfrq";
+    };
+    buildInputs = [ TestException TestMockObject ];
+    propagatedBuildInputs = [ CatalystPluginAuthentication CatalystRuntime ClassAccessorFast DataUUID StringEscape URI ];
+    meta = {
+      description = "HTTP Basic and Digest authentication";
+      license = "perl";
+    };
+  };
+
   CatalystAuthenticationStoreHtpasswd = buildPerlPackage rec {
     name = "Catalyst-Authentication-Store-Htpasswd-1.003";
     src = fetchurl {
@@ -436,6 +522,19 @@ rec {
     };
   };
 
+  CatalystDispatchTypeRegex = buildPerlModule {
+    name = "Catalyst-DispatchType-Regex-5.90032";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MG/MGRIMES/Catalyst-DispatchType-Regex-5.90032.tar.gz;
+      sha256 = "003e31fe0c1d6dfc6be4d9cd47cb058a9b53a73bb6a9f74a132a43dbfbbb5e3c";
+    };
+    propagatedBuildInputs = [ Moose TextSimpleTable ];
+    meta = {
+      description = "Regex DispatchType";
+      license = "perl";
+    };
+  };
+
   CatalystEngineHTTPPrefork = buildPerlPackage rec {
     name = "Catalyst-Engine-HTTP-Prefork-0.51";
     src = fetchurl {
@@ -482,13 +581,13 @@ rec {
   };
 
   CatalystRuntime = buildPerlPackage {
-    name = "Catalyst-Runtime-5.90019";
+    name = "Catalyst-Runtime-5.90030";
     src = fetchurl {
-      url = mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Runtime-5.90019.tar.gz;
-      sha256 = "0madnqyzhcvbv6iql6b10dzfqvajj0fyp1sla83csakkbff38mqp";
+      url = mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-Runtime-5.90030.tar.gz;
+      sha256 = "c27357f744fa0d2f9b2682c5f86723d90de43f30cd50089306dd13eb8849eb0c";
     };
     buildInputs = [ ClassDataInheritable DataDump HTTPMessage TestException ];
-    propagatedBuildInputs = [ CGISimple ClassC3AdoptNEXT ClassLoad ClassMOP DataDump DataOptList HTMLParser HTTPBody HTTPMessage HTTPRequestAsCGI ListMoreUtils LWPUserAgent Moose MooseXEmulateClassAccessorFast MooseXGetopt MooseXMethodAttributes MooseXRoleWithOverloading MROCompat namespaceautoclean namespaceclean PathClass Plack PlackMiddlewareReverseProxy PlackTestExternalServer SafeIsa StringRewritePrefix SubExporter TaskWeaken TextSimpleTable TreeSimple TreeSimpleVisitorFactory TryTiny URI ];
+    propagatedBuildInputs = [ CGISimple CatalystDispatchTypeRegex ClassC3AdoptNEXT ClassLoad DataDump DataOptList HTMLParser HTTPBody HTTPMessage HTTPRequestAsCGI LWP ListMoreUtils MROCompat Moose MooseXEmulateClassAccessorFast MooseXGetopt MooseXMethodAttributes MooseXRoleWithOverloading PathClass Plack PlackMiddlewareReverseProxy PlackTestExternalServer SafeIsa StringRewritePrefix SubExporter TaskWeaken TextSimpleTable TreeSimple TreeSimpleVisitorFactory TryTiny URI namespaceautoclean namespaceclean ];
     meta = {
       homepage = http://dev.catalyst.perl.org/;
       description = "The Catalyst Framework Runtime";
@@ -547,6 +646,34 @@ rec {
     };
   };
 
+  CatalystPluginCache = buildPerlPackage {
+    name = "Catalyst-Plugin-Cache-0.12";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Cache-0.12.tar.gz;
+      sha256 = "1q23aipvrl888h06ldr4mmjbykz0j4rqwipxg1jv094kki2fspr9";
+    };
+    buildInputs = [ TestDeep TestException ];
+    propagatedBuildInputs = [ CatalystRuntime MROCompat TaskWeaken ];
+    meta = {
+      description = "Flexible caching support for Catalyst.";
+      license = "perl";
+    };
+  };
+
+  CatalystPluginCacheHTTP = buildPerlPackage {
+    name = "Catalyst-Plugin-Cache-HTTP-0.001000";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/G/GR/GRAF/Catalyst-Plugin-Cache-HTTP-0.001000.tar.gz;
+      sha256 = "0v5iphbq4csc4r6wkvxnqlh97p8g0yhjky9qqmsdyqczn87agbba";
+    };
+    buildInputs = [ CatalystRuntime TestUseOk TestWWWMechanizeCatalyst ];
+    propagatedBuildInputs = [ ClassAccessorFast HTTPMessage MROCompat ];
+    meta = {
+      description = "HTTP/1.1 cache validators for Catalyst";
+      license = "perl";
+    };
+  };
+
   CatalystPluginCaptcha = buildPerlPackage {
     name = "Catalyst-Plugin-Captcha-0.04";
     src = fetchurl {
@@ -568,13 +695,18 @@ rec {
     propagatedBuildInputs = [CatalystRuntime DataVisitor ConfigAny MROCompat];
   };
 
-  CatalystPluginUnicodeEncoding = buildPerlPackage rec {
-    name = "Catalyst-Plugin-Unicode-Encoding-1.2";
+  CatalystPluginUnicodeEncoding = buildPerlPackage {
+    name = "Catalyst-Plugin-Unicode-Encoding-1.9";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/Catalyst/${name}.tar.gz";
-      sha256 = "0bz33xnh0wa6py6jz31wr38krad9hcv4gxdsy0lyhqn0k4v6b6dx";
+      url = mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Unicode-Encoding-1.9.tar.gz;
+      sha256 = "1glxkh79zz71bmgk44hnhsi37z2mgxcwf7bkmwlnwv3jh1iaz0ah";
+    };
+    buildInputs = [ HTTPMessage IOStringy ];
+    propagatedBuildInputs = [ CatalystRuntime ClassDataInheritable LWP TryTiny URI ];
+    meta = {
+      description = "Unicode aware Catalyst";
+      license = "perl";
     };
-    propagatedBuildInputs = [ CatalystRuntime LWP ];
   };
 
   CatalystPluginHTMLWidget = buildPerlPackage {
@@ -737,6 +869,18 @@ rec {
     };
   };
 
+  CGIExpand = buildPerlPackage {
+    name = "CGI-Expand-2.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/B/BO/BOWMANBS/CGI-Expand-2.03.tar.gz;
+      sha256 = "0p59is2mynybii8r1cpci2i17xzwhrrs4741hndhkcp4spggr0z1";
+    };
+    propagatedBuildInputs = [ TestException ];
+    meta = {
+      description = "Convert flat hash to nested data using TT2's dot convention";
+    };
+  };
+
   CGIFormBuilder = buildPerlPackage rec {
     name = "CGI-FormBuilder-3.0501";
     src = fetchurl {
@@ -787,6 +931,17 @@ rec {
     propagatedBuildInputs = [ClassAccessor];
   };
 
+  ClassAccessorFast = buildPerlPackage {
+    name = "Class-Accessor-Fast-0.34";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/K/KA/KASEI/Class-Accessor-0.34.tar.gz;
+      sha256 = "1z6fqg0yz8gay15r1iasslv8f1n1mzjkrhs47fvbj3rqz36y1cfd";
+    };
+    meta = {
+      license = "perl";
+    };
+  };
+
   ClassAccessorGrouped = buildPerlPackage {
     name = "Class-Accessor-Grouped-0.10009";
     src = fetchurl {
@@ -910,6 +1065,19 @@ rec {
     };
   };
 
+  ClassMethodMaker = buildPerlPackage {
+    name = "Class-MethodMaker-2.18";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SC/SCHWIGON/Class-MethodMaker-2.18.tar.gz;
+      sha256 = "223b7a79025e9bff984d755f9744182505e110680b13eedbac2831d45ddbeeba";
+    };
+    preConfigure = "patchShebangs .";
+    meta = {
+      description = "A module for creating generic methods";
+      license = "perl";
+    };
+  };
+
   ClassMethodModifiers = buildPerlPackage {
     name = "Class-Method-Modifiers-2.00";
     src = fetchurl {
@@ -1116,6 +1284,15 @@ rec {
     };
   };
 
+  constantboolean = buildPerlPackage {
+    name = "constant-boolean-0.02";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DE/DEXTER/constant-boolean-0.02.tar.gz;
+      sha256 = "1s8gxfg4xqp543aqanv5lbp64vqqyw6ic4x3fm4imkk1h3amjb6d";
+    };
+    propagatedBuildInputs = [ SymbolUtil ];
+  };
+
   constant-defer = buildPerlPackage rec {
     name = "constant-defer-5";
     src = fetchurl {
@@ -1244,6 +1421,21 @@ rec {
     };
   };
 
+  CryptRandomSource = buildPerlPackage {
+    name = "Crypt-Random-Source-0.07";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/N/NU/NUFFIN/Crypt-Random-Source-0.07.tar.gz;
+      sha256 = "0kxcqcpknh9hhfnpiymxrjg74yj7nfr7k4fgrfmd9s2cw9p9mqdv";
+    };
+    buildInputs = [ TestUseOk TestException ];
+    propagatedBuildInputs = [ AnyMoose CaptureTiny ModuleFind namespaceclean SubExporter ];
+    meta = {
+      homepage = http://search.cpan.org/dist/Crypt-Random-Source;
+      description = "Get weak or strong random data from pluggable sources";
+      license = "perl5";
+    };
+  };
+
   CryptRC4 = buildPerlPackage rec {
     name = "Crypt-RC4-2.02";
     src = fetchurl {
@@ -1323,6 +1515,19 @@ rec {
     makeMakerFlags = "--lib=${pkgs.openssl}/lib";
   };
 
+  DataClone = buildPerlPackage {
+    name = "Data-Clone-0.003";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/G/GF/GFUJI/Data-Clone-0.003.tar.gz;
+      sha256 = "16ldkjfag4dc3gssj051j212rzr2mawy7d001jflcab9g8hg3f1g";
+    };
+    buildInputs = [ TestRequires ];
+    meta = {
+      description = "Polymorphic data cloning";
+      license = "perl";
+    };
+  };
+
   DataCompare = buildPerlPackage rec {
     name = "Data-Compare-1.22";
     src = fetchurl {
@@ -1421,6 +1626,21 @@ rec {
     };
   };
 
+  DataStreamBulk = buildPerlPackage {
+    name = "Data-Stream-Bulk-0.11";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DO/DOY/Data-Stream-Bulk-0.11.tar.gz;
+      sha256 = "06e08432a6b97705606c925709b99129ad926516e477d58e4461e4b3d9f30917";
+    };
+    buildInputs = [ TestRequires ];
+    propagatedBuildInputs = [ Moose PathClass SubExporter namespaceclean ];
+    meta = {
+      homepage = http://metacpan.org/release/Data-Stream-Bulk;
+      description = "N at a time iteration API";
+      license = "perl";
+    };
+  };
+
   DataTaxi = buildPerlPackage {
     name = "Data-Taxi-0.96";
     propagatedBuildInputs = [DebugShowStuff];
@@ -1438,6 +1658,21 @@ rec {
     };
   };
 
+  DataUUIDMT = buildPerlPackage {
+    name = "Data-UUID-MT-1.000";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DA/DAGOLDEN/Data-UUID-MT-1.000.tar.gz;
+      sha256 = "1bwrxv8fp4arwrmslsb7jlnafs8cww1p5f409d1l5kpyfj2vpsyp";
+    };
+    buildInputs = [ ListAllUtils ];
+    propagatedBuildInputs = [ MathRandomMTAuto ];
+    meta = {
+      homepage = https://metacpan.org/release/Data-UUID-MT;
+      description = "Fast random UUID generator using the Mersenne Twister algorithm";
+      license = "apache_2_0";
+    };
+  };
+
   DataVisitor = buildPerlPackage rec {
     name = "Data-Visitor-0.28";
     src = fetchurl {
@@ -1450,10 +1685,10 @@ rec {
   };
 
   DateCalc = buildPerlPackage {
-    name = "Date-Calc-5.4";
+    name = "Date-Calc-6.3";
     src = fetchurl {
-      url = mirror://cpan/authors/id/S/ST/STBEY/Date-Calc-5.4.tar.gz;
-      sha256 = "1q7d1sy9ka1akpbysgwj673i7wiwb48yjv6wx1v5dhxllyxlxqc8";
+      url = http://cpan.metacpan.org/authors/id/S/ST/STBEY/Date-Calc-6.3.tar.gz;
+      sha256 = "14yvbgy9n8icwlm5zi86lskvxd6nsl42i1g9f5dwdaw9my463diy";
     };
     propagatedBuildInputs = [CarpClan BitVector];
   };
@@ -1467,72 +1702,199 @@ rec {
   };
 
   DateTime = buildPerlModule {
-    name = "DateTime-0.78";
+    name = "DateTime-1.03";
     src = fetchurl {
-      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-0.78.tar.gz;
-      sha256 = "0gicc3ib42jba989lxwy5i5sp4w3bmakdimgfxqbb57mbdarpxc5";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-1.03.tar.gz;
+      sha256 = "384f97c73da02492d771d6b5c3b37f6b18c2e12f4db3246b1d61ff19c6d6ad6d";
     };
     buildInputs = [ TestFatal ];
-    propagatedBuildInputs = [ DateTimeLocale DateTimeTimeZone ParamsValidate ];
+    propagatedBuildInputs = [ DateTimeLocale DateTimeTimeZone ParamsValidate TryTiny ];
     meta = {
-      homepage = http://search.cpan.org/perldoc?CPAN::Meta::Spec;
       description = "A date and time object";
       license = "artistic_2";
     };
   };
 
-  DateTimeFormatBuilder = buildPerlPackage rec {
-    name = "DateTime-Format-Builder-0.7901";
+  DateTimeEventICal = buildPerlPackage {
+    name = "DateTime-Event-ICal-0.11";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "08zl89gh5lkff8736fkdnrf6dgppsjbmymnysbc06s7igd4ig8zf";
+      url = mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Event-ICal-0.11.tar.gz;
+      sha256 = "6c3ca03c1810c996fa66943138f1f891bbc4baeb41ae2108a5f821040d78dd4c";
+    };
+    propagatedBuildInputs = [ DateTime DateTimeEventRecurrence ];
+    meta = {
+      description = "DateTime rfc2445 recurrences";
+      license = "unknown";
     };
-    propagatedBuildInputs = [
-      DateTime ParamsValidate TaskWeaken DateTimeFormatStrptime
-      ClassFactoryUtil
-    ];
-    buildInputs = [TestPod];
   };
 
-  DateTimeFormatNatural = buildPerlPackage rec {
-    name = "DateTime-Format-Natural-0.74";
+  DateTimeEventRecurrence = buildPerlPackage {
+    name = "DateTime-Event-Recurrence-0.16";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SC/SCHUBIGER/${name}.tar.gz";
-      sha256 = "0hq33s5frfa8cpj2al7qi0sbmimm5sdlxf0h3b57fjm9x5arlkcn";
+      url = mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Event-Recurrence-0.16.tar.gz;
+      sha256 = "3872e0126cd9527a918d3e537f85342d1fbb1e6a9ae5833262201b31879f8609";
     };
-    propagatedBuildInputs = [
-      DateTime ListMoreUtils ParamsValidate DateCalc
-      TestMockTime Boolean
-    ];
+    propagatedBuildInputs = [ DateTime DateTimeSet ];
   };
 
-  DateTimeFormatStrptime = buildPerlPackage rec {
-    name = "DateTime-Format-Strptime-1.5000";
+  DateTimeFormatBuilder = buildPerlPackage {
+    name = "DateTime-Format-Builder-0.81";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "0m55rqbixrsfa6g6mqs8aa0rhcxh6aj2g3n8fgl63wyz9an93w8y";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Builder-0.81.tar.gz;
+      sha256 = "7cd58a8cb53bf698407cc992f89e4d49bf3dc55baf4f3f00f1def63a0fff33ef";
+    };
+    propagatedBuildInputs = [ ClassFactoryUtil DateTime DateTimeFormatStrptime ParamsValidate ];
+    meta = {
+      description = "Create DateTime parser classes and objects";
+      license = "artistic_2";
+    };
+  };
+
+  DateTimeFormatFlexible = buildPerlPackage {
+    name = "DateTime-Format-Flexible-0.25";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TH/THINC/DateTime-Format-Flexible-0.25.tar.gz;
+      sha256 = "cd3267e68736ece386d677289b334d4ef1f33ff2524b17b9c9deb53d20420090";
+    };
+    propagatedBuildInputs = [ DateTime DateTimeFormatBuilder DateTimeTimeZone ListMoreUtils TestMockTime ];
+    meta = {
+      description = "DateTime::Format::Flexible - Flexibly parse strings and turn them into DateTime objects";
+      license = "perl";
+    };
+  };
+
+  DateTimeFormatHTTP = buildPerlPackage {
+    name = "DateTime-Format-HTTP-0.40";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CK/CKRAS/DateTime-Format-HTTP-0.40.tar.gz;
+      sha256 = "214e9e2e364090ebc5bc682b29709828944ae67f0bb4a989dd1e6d010845213f";
+    };
+    propagatedBuildInputs = [ DateTime HTTPDate ];
+    meta = {
+      description = "Date conversion routines";
+      license = "perl";
+    };
+  };
+
+  DateTimeFormatICal = buildPerlPackage {
+    name = "DateTime-Format-ICal-0.09";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-ICal-0.09.tar.gz;
+      sha256 = "8b09f6539f5e9c0df0e6135031699ed4ef9eef8165fc80aefeecc817ef997c33";
+    };
+    propagatedBuildInputs = [ DateTime DateTimeEventICal DateTimeSet DateTimeTimeZone ParamsValidate ];
+    meta = {
+      description = "Parse and format iCal datetime and duration strings";
+      license = "perl";
+    };
+  };
+
+  DateTimeFormatISO8601 = buildPerlPackage {
+    name = "DateTime-Format-ISO8601-0.08";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JH/JHOBLITT/DateTime-Format-ISO8601-0.08.tar.gz;
+      sha256 = "1syccqd5jlwms8v78ksnf68xijzl97jky5vbwhnyhxi5gvgfx8xk";
+    };
+    propagatedBuildInputs = [ DateTime DateTimeFormatBuilder ];
+    meta = {
+      description = "Parses ISO8601 formats";
+      license = "perl5";
     };
-    propagatedBuildInputs =
-      [ DateTime DateTimeLocale DateTimeTimeZone ParamsValidate ];
   };
 
-  DateTimeLocale = buildPerlPackage rec {
+  DateTimeFormatNatural = buildPerlPackage {
+    name = "DateTime-Format-Natural-1.02";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SC/SCHUBIGER/DateTime-Format-Natural-1.02.tar.gz;
+      sha256 = "5479c48ade5eca9712784afee18c58308d56742a204d5ea9040d011f705303e3";
+    };
+    buildInputs = [ ModuleUtil TestMockTime ];
+    propagatedBuildInputs = [ Clone DateTime DateTimeTimeZone ListMoreUtils ParamsValidate boolean ];
+    meta = {
+      description = "Create machine readable date/time with natural parsing logic";
+      license = "perl";
+    };
+  };
+
+  DateTimeFormatPg = buildPerlPackage {
+    name = "DateTime-Format-Pg-0.16008";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DM/DMAKI/DateTime-Format-Pg-0.16008.tar.gz;
+      sha256 = "0mvh4wp54vh7mnhfd2lndzjfikjify98vaav6vwbraxlhjvwyn3x";
+    };
+    propagatedBuildInputs = [ DateTime DateTimeFormatBuilder DateTimeTimeZone ];
+    meta = {
+      description = "Parse and format PostgreSQL dates and times";
+      license = "perl";
+    };
+  };
+
+  DateTimeFormatStrptime = buildPerlPackage {
+    name = "DateTime-Format-Strptime-1.54";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Strptime-1.54.tar.gz;
+      sha256 = "00bb61b12472fb1a637ec55bbd8878db05b3aac89a67b7991b281e32896db9de";
+    };
+    propagatedBuildInputs = [ DateTime DateTimeLocale DateTimeTimeZone ParamsValidate ];
+    meta = {
+      description = "Parse and format strp and strf time patterns";
+      license = "artistic_2";
+    };
+  };
+
+  DateTimeLocale = buildPerlPackage {
     name = "DateTime-Locale-0.45";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "175grkrxiv012n6ch3z1sip4zprcili6m5zqi3njdk5c1gdvi8ca";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Locale-0.45.tar.gz;
+      sha256 = "8aa1b8db0baccc26ed88f8976a228d2cdf4f6ed4e10fc88c1501ecd8f3ccaf9c";
+    };
+    propagatedBuildInputs = [ ListMoreUtils ParamsValidate ];
+    meta = {
+      homepage = http://datetime.perl.org/;
+      description = "Localization support for DateTime.pm";
+      license = "perl";
     };
-    propagatedBuildInputs = [ListMoreUtils ParamsValidate];
   };
 
-  DateTimeTimeZone = buildPerlPackage rec {
-    name = "DateTime-TimeZone-1.45";
+  DateTimeSet = buildPerlPackage {
+    name = "DateTime-Set-0.31";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/${name}.tar.gz";
-      sha256 = "0wnjg6mcpcy7hg79jdsg3vi8ad89rghkcgqjmqiq6pqc0k9sbq2q";
+      url = mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Set-0.31.tar.gz;
+      sha256 = "499b59e42a1129bf10fd269eb7542d337a29fbbcbf08ef8313fd465d3ae5df02";
+    };
+    propagatedBuildInputs = [ DateTime SetInfinite ];
+    meta = {
+      description = "DateTime set objects";
+      license = "unknown";
+    };
+  };
+
+  DateTimeTimeZone = buildPerlPackage {
+    name = "DateTime-TimeZone-1.59";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-TimeZone-1.59.tar.gz;
+      sha256 = "b1d50f6abde68671da1db883168ef8d6793a11ba75de02174f42e1dfd16b2522";
     };
     buildInputs = [ TestOutput ];
-    propagatedBuildInputs = [ ClassLoad ClassSingleton ParamsValidate TryTiny ];
+    propagatedBuildInputs = [ ClassLoad ClassSingleton ParamsValidate ];
+    meta = {
+      description = "Time zone object base class and factory";
+      license = "perl";
+    };
+  };
+
+  DateTimeXEasy = buildPerlPackage {
+    name = "DateTimeX-Easy-0.089";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RO/ROKR/DateTimeX-Easy-0.089.tar.gz;
+      sha256 = "17e6d202e7ac6049523048e97bb8f195e3c79208570da1504f4313584e487a79";
+    };
+    buildInputs = [ TestMost ];
+    propagatedBuildInputs = [ DateTime DateTimeFormatFlexible DateTimeFormatICal DateTimeFormatNatural TimeDate ];
+    meta = {
+      description = "Parse a date/time string using the best method available";
+      license = "perl";
+    };
   };
 
   DebugShowStuff = buildPerlPackage {
@@ -1694,6 +2056,46 @@ rec {
     };
   };
 
+  DBIxConnector = buildPerlModule {
+    name = "DBIx-Connector-0.53";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DW/DWHEELER/DBIx-Connector-0.53.tar.gz;
+      sha256 = "198qbi97rnq6zbh5vgy437vlca8hns1b995fm4w896m0v7zgjjiw";
+    };
+    buildInputs = [ TestMockModule ];
+    propagatedBuildInputs = [ DBI ];
+    meta = {
+      homepage = http://search.cpan.org/dist/DBIx-Connector/;
+      description = "Fast, safe DBI connection and transaction management";
+      license = "perl5";
+    };
+  };
+
+  DevelCycle = buildPerlPackage {
+    name = "Devel-Cycle-1.11";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/L/LD/LDS/Devel-Cycle-1.11.tar.gz;
+      sha256 = "17c73yx9r32xvrsh8y7q24y0m3b98yihjyf3q4y68j869nh2b4rs";
+    };
+    meta = {
+      description = "Find memory cycles in objects";
+    };
+  };
+
+  DevelDeclare = buildPerlPackage {
+    name = "Devel-Declare-0.006011";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/Z/ZE/ZEFRAM/Devel-Declare-0.006011.tar.gz;
+      sha256 = "0wqa9n4mdlsld4cmhy2mg8ncqr5gsra1913x0kypisgdqvviin2k";
+    };
+    buildInputs = [ BHooksOPCheck ExtUtilsDepends ];
+    propagatedBuildInputs = [ BHooksEndOfScope BHooksOPCheck SubName ];
+    meta = {
+      description = "Adding keywords to perl, in perl";
+      license = "perl";
+    };
+  };
+
   DevelGlobalDestruction = buildPerlPackage {
     name = "Devel-GlobalDestruction-0.09";
     src = fetchurl {
@@ -1715,6 +2117,15 @@ rec {
     };
   };
 
+  DevelPartialDump = buildPerlPackage {
+    name = "Devel-PartialDump-0.15";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/F/FL/FLORA/Devel-PartialDump-0.15.tar.gz;
+      sha256 = "0xm42030qlbimay5x72sjj0na43ciniai2xdcdx8zf191jw5dz7n";
+    };
+    propagatedBuildInputs = [ Moose namespaceclean SubExporter TestUseOk TestWarn ];
+  };
+
   DevelStackTrace = buildPerlPackage {
     name = "Devel-StackTrace-1.30";
     src = fetchurl {
@@ -1772,6 +2183,18 @@ rec {
     };
   };
 
+  DigestHMAC_SHA1 = buildPerlPackage {
+    name = "Digest-HMAC_SHA1-1.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/G/GA/GAAS/Digest-HMAC-1.03.tar.gz;
+      sha256 = "0naavabbm1c9zgn325ndy66da4insdw9l3mrxwxdfi7i7xnjrirv";
+    };
+    meta = {
+      description = "Keyed-Hashing for Message Authentication";
+      license = "perl";
+    };
+  };
+
   DigestMD4 = buildPerlPackage rec {
     name = "Digest-MD4-1.5";
     src = fetchurl {
@@ -1780,6 +2203,18 @@ rec {
     };
   };
 
+  DigestMD5File = buildPerlPackage {
+    name = "Digest-MD5-File-0.08";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DM/DMUEY/Digest-MD5-File-0.08.tar.gz;
+      sha256 = "060jzf45dlwysw5wsm7av1wvpl06xgk415kwwpvv89r6wda3md5d";
+    };
+    propagatedBuildInputs = [ LWP ];
+    meta = {
+      description = "Perl extension for getting MD5 sums for files and urls.";
+    };
+  };
+
   DigestSHA = null;
 
   DigestSHA1 = buildPerlPackage {
@@ -1846,6 +2281,54 @@ rec {
     };
   };
 
+  EmailMessageID = buildPerlPackage {
+    name = "Email-MessageID-1.402";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-MessageID-1.402.tar.gz;
+      sha256 = "1zzbxdygh992dn9k9jlxjzcmaniy83dqlc8lkas9w9wlhngvwni1";
+    };
+    propagatedBuildInputs = [ EmailAddress ];
+    meta = {
+      description = "Generate world unique message-ids";
+      license = "perl";
+    };
+  };
+
+  EmailMIME = buildPerlPackage {
+    name = "Email-MIME-1.911";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-1.911.tar.gz;
+      sha256 = "0nkvps2k1gkr5vh12qbl0djdnjxnp7jdi52zgda6k67wrghm5ryd";
+    };
+    propagatedBuildInputs = [ EmailMessageID EmailMIMEContentType EmailMIMEEncodings EmailSimple MIMETypes ];
+    meta = {
+      license = "perl5";
+    };
+  };
+
+  EmailMIMEContentType = buildPerlPackage {
+    name = "Email-MIME-ContentType-1.015";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-ContentType-1.015.tar.gz;
+      sha256 = "1rlk3rxlw8ri4b7c68nhg6b3ykgc97rdaqb1dyam8f8k1z8cik0g";
+    };
+    meta = {
+      description = "Parse a MIME Content-Type Header";
+      license = "perl";
+    };
+  };
+
+  EmailMIMEEncodings = buildPerlPackage {
+    name = "Email-MIME-Encodings-1.313";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-Encodings-1.313.tar.gz;
+      sha256 = "0fac34g44sn0l59wim68zrhih1mvlh1rxvyn3gc5pviaiz028lyy";
+    };
+    meta = {
+      license = "perl";
+    };
+  };
+
   EmailSend = buildPerlPackage rec {
     name = "Email-Send-2.198";
     src = fetchurl {
@@ -1908,6 +2391,14 @@ rec {
     };
   };
 
+  EnvPath = buildPerlPackage {
+    name = "Env-Path-0.19";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DS/DSB/Env-Path-0.19.tar.gz;
+      sha256 = "1qhmj15a66h90pjl2dgnxsb9jj3b1r5mpvnr87cafcl8g69z0jr4";
+    };
+  };
+
   Error = buildPerlPackage rec {
     name = "Error-0.17019";
     src = fetchurl {
@@ -1931,6 +2422,15 @@ rec {
     };
   };
 
+  ExceptionBase = buildPerlPackage {
+    name = "Exception-Base-0.25";
+    src = fetchurl {
+      url = http://cpan.metacpan.org/authors/id/D/DE/DEXTER/Exception-Base-0.25.tar.gz;
+      sha256 = "1s2is862xba2yy633wn2nklrya36yrlwxlbpqjrv8m31xj2c8khw";
+    };
+    buildInputs = [ TestUnitLite ];
+  };
+
   ExceptionClass = buildPerlPackage rec {
     name = "Exception-Class-1.30";
     src = fetchurl {
@@ -1940,6 +2440,37 @@ rec {
     propagatedBuildInputs = [ ClassDataInheritable DevelStackTrace ];
   };
 
+  ExceptionDied = buildPerlPackage {
+    name = "Exception-Died-0.06";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DE/DEXTER/Exception-Died-0.06.tar.gz;
+      sha256 = "1dcajw2m3x5m76fpi3fvy9fjkmfrd171pnx087i5fkgx5ay41i1m";
+    };
+    buildInputs = [ TestAssert TestUnitLite ];
+    propagatedBuildInputs = [ constantboolean ExceptionBase ];
+  };
+
+  ExceptionWarning = buildPerlPackage {
+    name = "Exception-Warning-0.0401";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DE/DEXTER/Exception-Warning-0.0401.tar.gz;
+      sha256 = "1a6k3sbhkxmz00wrmhv70f9kxjf7fklp1y6mnprfvcdmrsk9qdkv";
+    };
+    buildInputs = [ TestAssert TestUnitLite ];
+    propagatedBuildInputs = [ ExceptionBase ];
+  };
+
+  ExporterLite = buildPerlPackage {
+    name = "Exporter-Lite-0.02";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MS/MSCHWERN/Exporter-Lite-0.02.tar.gz;
+      sha256 = "20c1e9b7ddc017b788feb34c032fc585e2c5b46a484e93f519373fd18830ce0e";
+    };
+    meta = {
+      license = "perl";
+    };
+  };
+
   ExtUtilsCBuilder = buildPerlPackage rec {
     name = "ExtUtils-CBuilder-0.280202";
     src = fetchurl {
@@ -1948,6 +2479,17 @@ rec {
     };
   };
 
+  ExtUtilsConfig = buildPerlPackage {
+    name = "ExtUtils-Config-0.007";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Config-0.007.tar.gz;
+      sha256 = "2c1465078b876fd16a90507092805265528c2532d4937b03547a6dbdb8ac0eef";
+    };
+    meta = {
+      description = "A wrapper for perl's configuration";
+      license = "perl";
+    };
+  };
 
   ExtUtilsCppGuess = buildPerlModule rec {
     name = "ExtUtils-CppGuess-0.07";
@@ -1958,6 +2500,42 @@ rec {
     propagatedBuildInputs = [ CaptureTiny ];
   };
 
+  ExtUtilsDepends = buildPerlPackage {
+    name = "ExtUtils-Depends-0.304";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/F/FL/FLORA/ExtUtils-Depends-0.304.tar.gz;
+      sha256 = "0fjlkcz1i1j02hhwi1wjgd79qlppjkbasrj44h5ry1f238g6a1q3";
+    };
+    meta = {
+      license = "perl";
+    };
+  };
+
+  ExtUtilsHelpers = buildPerlPackage {
+    name = "ExtUtils-Helpers-0.021";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Helpers-0.021.tar.gz;
+      sha256 = "26b85077f4197b30e62ffec87d3f78111522619d62858d2ab45a64687351892a";
+    };
+    meta = {
+      description = "Various portability utilities for module builders";
+      license = "perl";
+    };
+  };
+
+  ExtUtilsInstallPaths = buildPerlPackage {
+    name = "ExtUtils-InstallPaths-0.009";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-InstallPaths-0.009.tar.gz;
+      sha256 = "1b0827a4acf40d38552c4348767000f7e2d8cf5fd0d19436bf8747d2a72d77bc";
+    };
+    propagatedBuildInputs = [ ExtUtilsConfig ];
+    meta = {
+      description = "Build.PL install path logic made easy";
+      license = "perl";
+    };
+  };
+
   ExtUtilsLibBuilder = buildPerlModule {
     name = "ExtUtils-LibBuilder-0.04";
     src = fetchurl {
@@ -2015,6 +2593,16 @@ rec {
     buildInputs = [ Spiffy TestBase TestDifferences ];
   };
 
+  FatalException = buildPerlPackage {
+    name = "Fatal-Exception-0.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DE/DEXTER/Fatal-Exception-0.05.tar.gz;
+      sha256 = "0kzfwc44vpxla3j637kfmnwmv57g6x4899ijqb4ljamk7whms298";
+    };
+    buildInputs = [ ExceptionWarning TestAssert TestUnitLite ];
+    propagatedBuildInputs = [ ExceptionBase ExceptionDied ];
+  };
+
   FCGI = buildPerlPackage rec {
     name = "FCGI-0.74";
     src = fetchurl {
@@ -2114,6 +2702,14 @@ rec {
     };
   };
 
+  FileNFSLock = buildPerlPackage {
+    name = "File-NFSLock-1.21";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/B/BB/BBB/File-NFSLock-1.21.tar.gz;
+      sha256 = "1kclhmyha2xijq49darlz82f3bn7gq3saycxpfiz3dndqhr5i9iz";
+    };
+  };
+
   FileRemove = buildPerlPackage rec {
     name = "File-Remove-1.42";
     src = fetchurl {
@@ -2135,6 +2731,18 @@ rec {
     };
   };
 
+  FileShareDirInstall = buildPerlPackage {
+    name = "File-ShareDir-Install-0.04";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/G/GW/GWYN/File-ShareDir-Install-0.04.tar.gz;
+      sha256 = "14gyl1l1crnsb7ihz6czaw7k0v2dnan0380pbxz8kmk66nnhaxzc";
+    };
+    meta = {
+      description = "Install shared files";
+      license = "perl";
+    };
+  };
+
   FilesysNotifySimple = buildPerlPackage {
     name = "Filesys-Notify-Simple-0.08";
     src = fetchurl {
@@ -2186,6 +2794,18 @@ rec {
     };
   };
 
+  ForksSuper = buildPerlPackage {
+    name = "Forks-Super-0.67";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MO/MOB/Forks-Super-0.67.tar.gz;
+      sha256 = "8831cd70e1eb3d4ab7d9a8c3692caa7b7220dc888cd1a8dc5640fb2a08379141";
+    };
+    meta = {
+      description = "Extensions and convenience methods to manage background processes";
+      license = "perl";
+    };
+  };
+
   FreezeThaw = buildPerlPackage {
     name = "FreezeThaw-0.43";
     src = fetchurl {
@@ -2350,6 +2970,23 @@ rec {
     };
   };
 
+  HashUtilFieldHashCompat = buildPerlPackage {
+    name = "Hash-Util-FieldHash-Compat-0.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/N/NU/NUFFIN/Hash-Util-FieldHash-Compat-0.03.tar.gz;
+      sha256 = "0pmai98a89j82fjksfax87brmpimjn74kr7bl874lc1k40dfhx47";
+    };
+    propagatedBuildInputs = [ TestUseOk ];
+  };  
+
+  HeapFibonacci = buildPerlPackage {
+    name = "Heap-Fibonacci-0.80";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JM/JMM/Heap-0.80.tar.gz;
+      sha256 = "1plv2djbyhvkdcw2ic54rdqb745cwksxckgzvw7ssxiir7rjknnc";
+    };
+  };
+
   HookLexWrap = buildPerlPackage rec {
     name = "Hook-LexWrap-0.22";
     src = fetchurl {
@@ -2391,6 +3028,20 @@ rec {
       ];
   };
 
+  HTMLFormHandler = buildPerlPackage {
+    name = "HTML-FormHandler-0.40025";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/G/GS/GSHANK/HTML-FormHandler-0.40025.tar.gz;
+      sha256 = "0fp8qcbkr19qn1859rpn3ca3b7w1jjyprwlj82dnvfi3b5jf8507";
+    };
+    buildInputs = [ FileShareDirInstall PadWalker TestDifferences TestException TestMemoryCycle ];
+    propagatedBuildInputs = [ aliased ClassLoad DataClone DateTime DateTimeFormatStrptime EmailValid FileShareDir JSON HTMLTree Moose MooseXGetopt MooseXTypes MooseXTypesCommon MooseXTypesLoadableClass namespaceautoclean SubExporter SubName TryTiny ];
+    meta = {
+      description = "HTML forms using Moose";
+      license = "perl5";
+    };
+  };
+
   HTMLParser = buildPerlPackage {
     name = "HTML-Parser-3.69";
     src = fetchurl {
@@ -2404,6 +3055,15 @@ rec {
     };
   };
 
+  HTMLSelectorXPath = buildPerlPackage {
+    name = "HTML-Selector-XPath-0.15";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CO/CORION/HTML-Selector-XPath-0.15.tar.gz;
+      sha256 = "0wnb561yp1r3mqw2hmd16zm45lqqm2mp823s1rx2k4qw141rmkpv";
+    };
+    buildInputs = [ TestBase ];
+  };
+
   HTMLScrubber = buildPerlPackage {
     name = "HTML-Scrubber-0.08";
     src = fetchurl {
@@ -2462,6 +3122,19 @@ rec {
     };
   };
 
+  HTMLTreeBuilderXPath = buildPerlPackage {
+    name = "HTML-TreeBuilder-XPath-0.14";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MI/MIROD/HTML-TreeBuilder-XPath-0.14.tar.gz;
+      sha256 = "1wx4i1scng20n405fp3a4vrwvvq9bvbmg977wnd5j2ja8jrbvsr5";
+    };
+    propagatedBuildInputs = [ HTMLTree XMLXPathEngine ];
+    meta = {
+      description = "Add XPath support to HTML::TreeBuilder";
+      license = "perl5";
+    };
+  };
+
   HTMLWidget = buildPerlPackage {
     name = "HTML-Widget-1.11";
     src = fetchurl {
@@ -2619,6 +3292,20 @@ rec {
     };
   };
 
+  IOAll = buildPerlPackage {
+    name = "IO-All-0.46";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/I/IN/INGY/IO-All-0.46.tar.gz;
+      sha256 = "0rqv270gi7x4sjicfwf1hiqvicwlj3s0zyi2cxqwrc8q9hs2pdya";
+    };
+    propagatedBuildInputs = [ IOString ];
+    meta = {
+      homepage = https://github.com/ingydotnet/io-all-pm/tree;
+      description = "IO::All of it to Graham and Damian!";
+      license = "perl";
+    };
+  };
+
   IOCaptureOutput = buildPerlPackage rec {
     name = "IO-CaptureOutput-1.1102";
     src = fetchurl {
@@ -2664,6 +3351,18 @@ rec {
     };
   };
 
+  IOInteractive = buildPerlPackage {
+    name = "IO-Interactive-0.0.6";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/B/BD/BDFOY/IO-Interactive-0.0.6.tar.gz;
+      sha256 = "9cc016cbd94b500027e137cb5070d19487e4431bf822f0cb534c38b6b2c1038c";
+    };
+    meta = {
+      description = "Utilities for interactive I/O";
+      license = "perl";
+    };
+  };
+
   IOLockedFile = buildPerlPackage rec {
     name = "IO-LockedFile-0.23";
     src = fetchurl {
@@ -2903,6 +3602,14 @@ rec {
     };
   };
 
+  libintl_perl = buildPerlPackage rec {
+    name = "libintl-perl-1.23";
+    src = fetchurl {
+        url = http://cpan.metacpan.org/authors/id/G/GU/GUIDO/libintl-perl-1.23.tar.gz;
+        sha256 = "1ylz6yhjifblhmnva0k05ch12a4cdii5v0icah69ma1gdhsidnk0";
+    };
+  };
+
   libxml_perl = buildPerlPackage rec {
     name = "libxml-perl-0.08";
     src = fetchurl {
@@ -2974,6 +3681,19 @@ rec {
     propagatedBuildInputs = [ CommonSense ];
   };
 
+  ListAllUtils = buildPerlPackage {
+    name = "List-AllUtils-0.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/List-AllUtils-0.03.tar.gz;
+      sha256 = "05d1q88pr4wgsqcla0g4kd45mxg7h9v3z3f4pv830xaviiqwq1j8";
+    };
+    propagatedBuildInputs = [ ListMoreUtils ];
+    meta = {
+      description = "Combines List::Util and List::MoreUtils in one bite-sized package";
+      license = "perl5";
+    };
+  };
+
   ListMoreUtils = buildPerlPackage {
     name = "List-MoreUtils-0.33";
     src = fetchurl {
@@ -2986,6 +3706,14 @@ rec {
     };
   };
 
+  ListUtilsBy = buildPerlPackage rec {
+    name = "List-UtilsBy-0.09";
+    src = fetchurl {
+        url = http://cpan.metacpan.org/authors/id/P/PE/PEVANS/List-UtilsBy-0.09.tar.gz;
+        sha256 = "1xcsgz8898h670zmwqd8azfn3a2y9nq7z8cva9dsyhzkk8ajmra1";
+    };
+  };
+
   LocaleGettext = buildPerlPackage {
     name = "LocaleGettext-1.05";
     src = fetchurl {
@@ -3028,6 +3756,19 @@ rec {
     };
   };
 
+  LogDispatch = buildPerlPackage {
+    name = "Log-Dispatch-2.39";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/Log-Dispatch-2.39.tar.gz;
+      sha256 = "1bi2nza0nc66i0ls2zkxi6bbwkh456pl0q8h57mq6skbhbmcwbb8";
+    };
+    propagatedBuildInputs = [ ClassLoad ParamsValidate ];
+    meta = {
+      description = "Dispatches messages to one or more outputs";
+      license = "artistic_2";
+    };
+  };
+
   LogTrace = buildPerlPackage rec {
     name = "Log-Trace-1.070";
     src = fetchurl {
@@ -3098,6 +3839,28 @@ rec {
     };
   };
 
+  LWPUserAgentDetermined = buildPerlPackage {
+    name = "LWP-UserAgent-Determined-1.06";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JE/JESSE/LWP-UserAgent-Determined-1.06.tar.gz;
+      sha256 = "c31d8e16dc92e2113c81cdbfb11149cfd19039e789f77cd34333ac9184346fc5";
+    };
+    propagatedBuildInputs = [ LWP ];
+    meta = {
+      description = "A virtual browser that retries errors";
+      license = "unknown";
+    };
+  };
+
+  LWPUserAgentMockable = buildPerlPackage {
+    name = "LWP-UserAgent-Mockable-1.10";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MM/MMORGAN/LWP-UserAgent-Mockable-1.10.tgz;
+      sha256 = "1z89jszgifvjb8irzd8wrzim7l5m4hypdl9mj4dpkb4jm4189kmn";
+    };
+    propagatedBuildInputs = [ LWP HookLexWrap ];
+  };
+
   LWPxParanoidAgent = buildPerlPackage rec {
     name = "LWPx-ParanoidAgent-1.07";
     src = fetchurl {
@@ -3183,6 +3946,47 @@ rec {
     propagatedBuildInputs = [ MathLibm constant-defer ];
   };
 
+  MathRandomISAAC = buildPerlPackage {
+    name = "Math-Random-ISAAC-1.004";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JA/JAWNSY/Math-Random-ISAAC-1.004.tar.gz;
+      sha256 = "0z1b3xbb3xz71h25fg6jgsccra7migq7s0vawx2rfzi0pwpz0wr7";
+    };
+    buildInputs = [ TestNoWarnings ];
+    meta = {
+      homepage = http://search.cpan.org/dist/Math-Random-ISAAC;
+      description = "Perl interface to the ISAAC PRNG algorithm";
+      license = "unrestricted";
+    };
+  };
+
+  MathRandomMTAuto = buildPerlPackage {
+    name = "Math-Random-MT-Auto-6.22";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JD/JDHEDDEN/Math-Random-MT-Auto-6.22.tar.gz;
+      sha256 = "07zha5zjxyvqwnycb1vzk4hk2m46n9yc5lrbvhkc22595dsyjahz";
+    };
+    propagatedBuildInputs = [ ExceptionClass ObjectInsideOut ];
+    meta = {
+      description = "Auto-seeded Mersenne Twister PRNGs";
+      license = "unrestricted";
+    };
+  };
+
+  MathRandomSecure = buildPerlPackage {
+    name = "Math-Random-Secure-0.06";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MK/MKANAT/Math-Random-Secure-0.06.tar.gz;
+      sha256 = "0392h78l3shkba9l2c43rgz6sm5qv7pzdylgb7gp9milprn77crc";
+    };
+    buildInputs = [ ListMoreUtils TestWarn ];
+    propagatedBuildInputs = [ AnyMoose CryptRandomSource MathRandomISAAC ];
+    meta = {
+      description = "Cryptographically-secure, cross-platform replacement for rand()";
+      license = "artistic_2";
+    };
+  };
+
   MathRound = buildPerlPackage rec {
     name = "Math-Round-0.06";
     src = fetchurl {
@@ -3191,6 +3995,19 @@ rec {
     };
   };
 
+  MethodSignaturesSimple = buildPerlPackage {
+    name = "Method-Signatures-Simple-1.07";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RH/RHESA/Method-Signatures-Simple-1.07.tar.gz;
+      sha256 = "1p6sf6iyyn73pc89mfr65bzxvbw1ibcsp4j10iv8ik3p353pvkf8";
+    };
+    propagatedBuildInputs = [ DevelDeclare ];
+    meta = {
+      description = "Basic method declarations with signatures, without source filters";
+      license = "perl";
+    };
+  };
+
   MIMEBase64 = buildPerlPackage rec {
     name = "MIME-Base64-3.09";
     src = fetchurl {
@@ -3221,15 +4038,28 @@ rec {
   };
 
   ModuleBuild = buildPerlPackage {
-    name = "Module-Build-0.4003";
+    name = "Module-Build-0.4005";
     src = fetchurl {
-      url = mirror://cpan/authors/id/L/LE/LEONT/Module-Build-0.4003.tar.gz;
-      sha256 = "1izx26gfnjffnj0j601hkc008b31y9f25hms1nzidfkb6r3110s2";
+      url = mirror://cpan/authors/id/L/LE/LEONT/Module-Build-0.4005.tar.gz;
+      sha256 = "eb2522507251550f459c11223ea6d86b34f1dee9b3e3928d0d6a0497505cb7ef";
     };
     meta = {
-      homepage = http://search.cpan.org/perldoc?CPAN::Meta::Spec;
       description = "Build and install Perl modules";
-      license = "perl5";
+      license = "perl";
+    };
+  };
+
+  ModuleBuildTiny = buildPerlModule {
+    name = "Module-Build-Tiny-0.023";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/L/LE/LEONT/Module-Build-Tiny-0.023.tar.gz;
+      sha256 = "eba7fbfea2dd84310ab00f22fd29bbf774b10a465df3f6133ca7da88c0bd6ac4";
+    };
+    buildInputs = [ ExtUtilsConfig ExtUtilsHelpers ExtUtilsInstallPaths JSONPP perl ];
+    propagatedBuildInputs = [ ExtUtilsConfig ExtUtilsHelpers ExtUtilsInstallPaths JSONPP ];
+    meta = {
+      description = "A tiny replacement for Module::Build";
+      license = "perl";
     };
   };
 
@@ -3342,6 +4172,28 @@ rec {
     };
   };
 
+  ModuleUtil = buildPerlPackage {
+    name = "Module-Util-1.09";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MA/MATTLAW/Module-Util-1.09.tar.gz;
+      sha256 = "6cfbcb6a45064446ec8aa0ee1a7dddc420b54469303344187aef84d2c7f3e2c6";
+    };
+    buildInputs = [ ModuleBuild ];
+    meta = {
+      description = "Module name tools and transformations";
+      license = "perl";
+    };
+  };
+
+  ModuleVersions = buildPerlPackage {
+    name = "Module-Versions-0.02";
+    src = fetchurl {
+      url = http://cpan.metacpan.org/authors/id/T/TH/THW/Module-Versions-0.02.zip;
+      sha256 = "0g7qs6vqg91xpwg1cdy91m3kh9m1zbkzyz1qsy453b572xdscf0d";
+    };
+    buildInputs = [ pkgs.unzip ];
+  };
+
   Moo = buildPerlPackage {
     name = "Moo-1.000007";
     src = fetchurl {
@@ -3380,6 +4232,21 @@ rec {
     propagatedBuildInputs = [Moose TestException Autobox Perl6Junction];
   };
 
+  MooseXABC = buildPerlPackage {
+    name = "MooseX-ABC-0.06";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DO/DOY/MooseX-ABC-0.06.tar.gz;
+      sha256 = "1sky0dpi22wrymmkjmqba4k966zn7vrbpx918wn2nmg48swyrgjf";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ Moose ];
+    meta = {
+      homepage = http://metacpan.org/release/MooseX-ABC;
+      description = "Abstract base classes for Moose";
+      license = "perl5";
+    };
+  };
+
   MooseXAliases = buildPerlPackage rec {
     name = "MooseX-Aliases-0.10";
     src = fetchurl {
@@ -3399,6 +4266,15 @@ rec {
     propagatedBuildInputs = [ Moose TryTiny ];
   };
 
+  MooseXClone = buildPerlPackage {
+    name = "MooseX-Clone-0.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/N/NU/NUFFIN/MooseX-Clone-0.05.tar.gz;
+      sha256 = "11pbw3zdbcn54hrj6z74qisnmj9k4qliy6yjj9d71qndq3xg3x0f";
+    };
+    propagatedBuildInputs = [ DataVisitor HashUtilFieldHashCompat Moose namespaceclean TestUseOk ];
+  };
+
   MooseXDaemonize = buildPerlPackage {
     name = "MooseX-Daemonize-0.15";
     src = fetchurl {
@@ -3540,6 +4416,16 @@ rec {
     };
   };
 
+  MooseXRunnable = buildPerlPackage {
+    name = "MooseX-Runnable-0.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JR/JROCKWAY/MooseX-Runnable-0.03.tar.gz;
+      sha256 = "1hl3pnldjlbyj6gm3bzwj827qp54di14hp4zhypmrmbg1lscfdwc";
+    };
+    buildInputs = [ TestUseOk TestTableDriven ];
+    propagatedBuildInputs = [ ListMoreUtils Moose MooseXGetopt MooseXTypes MooseXTypesPathClass namespaceautoclean ParamsUtil ];
+  };
+
   MooseXSemiAffordanceAccessor = buildPerlPackage rec {
     name = "MooseX-SemiAffordanceAccessor-0.09";
     src = fetchurl {
@@ -3559,6 +4445,29 @@ rec {
     propagatedBuildInputs = [ Moose ];
   };
 
+  MooseXSingleton = buildPerlPackage rec {
+    name = "MooseX-Singleton-0.29";
+    src = fetchurl {
+        url = http://cpan.metacpan.org/authors/id/K/KA/KAARE/MooseX-Singleton-0.29.tar.gz;
+        sha256 = "0103f0hi7fp3mc0y0ydnz4ghcnag5gwgn2160y2zp6rnydx2p2sc";
+    };
+    buildInputs = [ Moose TestFatal TestRequires ];
+  };
+
+  MooseXStrictConstructor = buildPerlPackage {
+    name = "MooseX-StrictConstructor-0.19";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-StrictConstructor-0.19.tar.gz;
+      sha256 = "486573c16901e83c081da3d90a544281af1baa40bbf036337d6fa91994e48a31";
+    };
+    buildInputs = [ Moose TestFatal ];
+    propagatedBuildInputs = [ Moose namespaceautoclean ];
+    meta = {
+      description = "Make your object constructors blow up on unknown attributes";
+      license = "artistic_2";
+    };
+  };
+
   MooseXTraits = buildPerlPackage rec {
     name = "MooseX-Traits-0.11";
     src = fetchurl {
@@ -3596,20 +4505,43 @@ rec {
   };
 
   MooseXTypesCommon = buildPerlPackage rec {
-    name = "MooseX-Types-Common-0.001002";
+    name = "MooseX-Types-Common-0.001008";
     src = fetchurl {
       url = "mirror://cpan/modules/by-module/MooseX/${name}.tar.gz";
-      sha256 = "0mddl25gkb3qggdfx9fjzs321bj89y8dr4bw307l1dr3zr082xkr";
+      sha256 = "0s0z6v32vyykni8an6jzyvl0icr5d5b8kbi4qqp4vwc5438jrpdz";
     };
-    buildInputs = [ TestException ];
+    buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ Moose MooseXTypes ];
   };
 
+  MooseXTypesDateTime = buildPerlPackage {
+    name = "MooseX-Types-DateTime-0.08";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/I/IL/ILMARI/MooseX-Types-DateTime-0.08.tar.gz;
+      sha256 = "0q0d1dd8737rc3k3jb22wvybf03hg3lp1iyda0ivkd8020cib996";
+    };
+    propagatedBuildInputs = [ DateTime DateTimeLocale DateTimeTimeZone Moose MooseXTypes namespaceclean TestException TestUseOk ];
+  };
+
+  MooseXTypesDateTimeMoreCoercions = buildPerlPackage {
+    name = "MooseX-Types-DateTime-MoreCoercions-0.11";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/I/IL/ILMARI/MooseX-Types-DateTime-MoreCoercions-0.11.tar.gz;
+      sha256 = "c746a9284b7db49ce9acb2fbce26629fa816e6636e883d2ed6c62e336cfc52cb";
+    };
+    buildInputs = [ TestException TestUseOk ];
+    propagatedBuildInputs = [ DateTime DateTimeXEasy Moose MooseXTypes MooseXTypesDateTime TimeDurationParse namespaceclean ];
+    meta = {
+      description = "Extensions to MooseX::Types::DateTime";
+      license = "perl";
+    };
+  };
+
   MooseXTypesLoadableClass = buildPerlPackage rec {
-    name = "MooseX-Types-LoadableClass-0.006";
+    name = "MooseX-Types-LoadableClass-0.008";
     src = fetchurl {
-      url = "mirror://cpan/modules/by-module/MooseX/${name}.tar.gz";
-      sha256 = "035d2gzq1j60skn39jav2jr6sbx1hq9vqmmfjfc3cvhahfzrygs4";
+      url = http://cpan.metacpan.org/authors/id/B/BO/BOBTFISH/MooseX-Types-LoadableClass-0.008.tar.gz;
+      sha256 = "0wh4zxknqv98nrmsp6yg6mazjyl3vacrgywarzjg5gks78c84i8g";
     };
     propagatedBuildInputs = [ ClassLoad Moose MooseXTypes namespaceclean ];
   };
@@ -3627,6 +4559,30 @@ rec {
     };
   };
 
+  MooseXTypesStructured = buildPerlPackage {
+    name = "MooseX-Types-Structured-0.28";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JJ/JJNAPIORK/MooseX-Types-Structured-0.28.tar.gz;
+      sha256 = "12snpf65bh3jyx9w1h1sark83l0w51s3jdcr4ygw57cxvq39yl43";
+    };
+    buildInputs = [ DateTime MooseXTypesDateTime TestFatal ];
+    propagatedBuildInputs = [ DevelPartialDump Moose MooseXTypes SubExporter ];
+    meta = {
+      homepage = http://metacpan.org/release/MooseX-Types-Structured;
+      description = "MooseX::Types::Structured - Structured Type Constraints for Moose";
+      license = "perl5";
+    };
+  };
+
+  MooseXTypesURI = buildPerlPackage {
+    name = "MooseX-Types-URI-0.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/F/FL/FLORA/MooseX-Types-URI-0.03.tar.gz;
+      sha256 = "056v08kzcd93h8l69iqdxbr05h85bgz6jvp6iwc0vv68dacr299s";
+    };
+    propagatedBuildInputs = [ Moose MooseXTypes MooseXTypesPathClass namespaceclean TestUseOk URI URIFromHash ];
+  };
+
   Mouse = buildPerlPackage rec {
     name = "Mouse-0.26";
     src = fetchurl {
@@ -3710,6 +4666,18 @@ rec {
     };
   };
 
+  NetAmazonAWSSign = buildPerlPackage {
+    name = "Net-Amazon-AWSSign-0.12";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/N/NA/NATON/Net-Amazon-AWSSign-0.12.tar.gz;
+      sha256 = "0gpdjz5095hd3y1xhnbv45m6q2shw0c9r7spj1jvb8hy7dmhq10x";
+    };
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "Perl extension to create signatures for AWS requests";
+    };
+  };
+
   NetAmazonEC2 = buildPerlPackage rec {
     name = "Net-Amazon-EC2-0.14-stanaka-bc66577e13";
     src = fetchurl {
@@ -3744,6 +4712,48 @@ rec {
     buildInputs = [ DBI DBDSQLite ];
   };
 
+  NetAmazonS3 = buildPerlPackage {
+    name = "Net-Amazon-S3-0.59";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PF/PFIG/Net-Amazon-S3-0.59.tar.gz;
+      sha256 = "94f2bd6b317a9142e400d7d17bd573dc9d22284c3ceaa4864474ba674e0e2e9f";
+    };
+    buildInputs = [ LWP TestException ];
+    propagatedBuildInputs = [ DataStreamBulk DateTimeFormatHTTP DigestHMAC DigestMD5File FileFindRule HTTPDate HTTPMessage LWPUserAgentDetermined MIMETypes Moose MooseXStrictConstructor MooseXTypesDateTimeMoreCoercions PathClass RegexpCommon TermEncoding TermProgressBarSimple URI XMLLibXML ];
+    meta = {
+      description = "Use the Amazon S3 - Simple Storage Service";
+      license = "perl";
+    };
+  };
+
+  NetAmazonS3Policy = buildPerlPackage {
+    name = "Net-Amazon-S3-Policy-0.001002";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PO/POLETTIX/Net-Amazon-S3-Policy-0.1.2.tar.gz;
+      sha256 = "1kkzimvxwxx0mypf75dalksxmvwsb8b575yx2nzmvjkvjg3j9na0";
+    };
+    propagatedBuildInputs = [ JSON ];
+    meta = {
+      description = "Manage Amazon S3 policies for HTTP POST forms";
+      license = "perl";
+    };
+  };
+
+  NetCoverArtArchive = buildPerlPackage {
+    name = "Net-CoverArtArchive-1.02";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CY/CYCLES/Net-CoverArtArchive-1.02.tar.gz;
+      sha256 = "1lfx8lrjgb3s11fcm243jp5sghngd9svkgmg7xmssmj34q4f49ap";
+    };
+    buildInputs = [ FileFindRule TryTiny ];
+    propagatedBuildInputs = [ JSONAny LWP Moose namespaceautoclean ];
+    meta = {
+      homepage = https://github.com/metabrainz/CoverArtArchive;
+      description = "Query the coverartarchive.org";
+      license = "perl";
+    };
+  };
+
   NetDBus = buildPerlPackage rec {
     name = "Net-DBus-1.0.0";
     src = fetchurl {
@@ -3903,6 +4913,19 @@ rec {
     };
   };
 
+  ObjectInsideOut = buildPerlPackage {
+    name = "Object-InsideOut-3.97";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JD/JDHEDDEN/Object-InsideOut-3.97.tar.gz;
+      sha256 = "19yr15w361lxxx2djy0ciwjpyd5bcs0skm3yw97w3xidw6r0wf0v";
+    };
+    propagatedBuildInputs = [ ExceptionClass ];
+    meta = {
+      description = "Comprehensive inside-out object support module";
+      license = "perl5";
+    };
+  };
+
   ObjectSignature = buildPerlPackage {
     name = "Object-Signature-1.05";
     src = fetchurl {
@@ -4153,20 +5176,34 @@ rec {
   };
 
   Plack = buildPerlPackage {
-    name = "Plack-1.0015";
+    name = "Plack-1.0024";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-1.0015.tar.gz;
-      sha256 = "1zg30bb55ws8fka5iawmfqnc3wg6ggigl0wljgvw0mk466sr3lxf";
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-1.0024.tar.gz;
+      sha256 = "485f69275d73401739a829cfee3bbc9bfa20a0843470791066365ac07fac04a1";
     };
-    buildInputs = [ TestRequires ];
-    propagatedBuildInputs = [ DevelStackTrace DevelStackTraceAsHTML FileShareDir FilesysNotifySimple HashMultiValue HTTPBody HTTPMessage LWPUserAgent StreamBuffered TestTCP TryTiny URI ];
+    buildInputs = [ FileShareDirInstall TestRequires ];
+    propagatedBuildInputs = [ ApacheLogFormatCompiler DevelStackTrace DevelStackTraceAsHTML FileShareDir FilesysNotifySimple HTTPBody HTTPMessage HashMultiValue LWP StreamBuffered TestTCP TryTiny URI ];
     meta = {
-      homepage = http://plackperl.org;
+      homepage = https://github.com/plack/Plack;
       description = "Perl Superglue for Web frameworks and Web Servers (PSGI toolkit)";
       license = "perl";
     };
   };
 
+  PlackMiddlewareDebug = buildPerlPackage {
+    name = "Plack-Middleware-Debug-0.14";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Debug-0.14.tar.gz;
+      sha256 = "0349563ic6fw4kwx3k3l4v9gq59b5cpymmn1k8bkxsw9n7s10rb9";
+    };
+    buildInputs = [ TestRequires ];
+    propagatedBuildInputs = [ ClassMethodModifiers DataDump FileShareDir ModuleVersions Plack TextMicroTemplate ];
+    meta = {
+      description = "Display information about the current request/response";
+      license = "perl";
+    };
+  };
+
   PlackMiddlewareReverseProxy = buildPerlPackage {
     name = "Plack-Middleware-ReverseProxy-0.15";
     src = fetchurl {
@@ -4305,6 +5342,21 @@ rec {
     };
   };
 
+  Redis = buildPerlPackage {
+    name = "Redis-1.961";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/ME/MELO/Redis-1.961.tar.gz;
+      sha256 = "029g4s1ima354yv1j26nlq4f0yahkllkibicml6p3mj5gg2ywbbq";
+    };
+    buildInputs = [ IOString TestDeep TestFatal ];
+    propagatedBuildInputs = [ TryTiny ];
+    meta = {
+      homepage = http://metacpan.org/release/Redis/;
+      description = "Perl binding for Redis database";
+      license = "artistic_2";
+    };
+  };
+
   RegexpAssemble = buildPerlPackage rec {
     name = "Regexp-Assemble-0.35";
     src = fetchurl {
@@ -4337,6 +5389,20 @@ rec {
     };
   };
 
+  RESTUtils = buildPerlPackage {
+    name = "REST-Utils-0.6";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JA/JALDHAR/REST-Utils-0.6.tar.gz;
+      sha256 = "1zdrf3315rp2b8r9dwwj5h93xky7i33iawf4hzszwcddhzflmsfl";
+    };
+    buildInputs = [ TestWWWMechanizeCGI ];
+    meta = {
+      homepage = http://jaldhar.github.com/REST-Utils;
+      description = "Utility functions for REST applications";
+      license = "perl5";
+    };
+  };
+
   RpcXML = buildPerlPackage {
     name = "RPC-XML-0.73";
     src = fetchurl {
@@ -4368,6 +5434,15 @@ rec {
     };
   };
 
+  RSSParserLite = buildPerlPackage {
+    name = "RSS-Parser-Lite-0.10";
+    src = fetchurl {
+      url = http://cpan.metacpan.org/authors/id/E/EB/EBOSRUP/RSS-Parser-Lite-0.10.tar.gz;
+      sha256 = "1spvi0z62saz2cam8kwk2k561aavw2w42g3ykj38w1kmydvsk8z6";
+    };
+    propagatedBuildInputs = [ SOAPLite ];
+  };
+
   SafeIsa = buildPerlPackage {
     name = "Safe-Isa-1.000002";
     src = fetchurl {
@@ -4414,6 +5489,17 @@ rec {
     };
   };
 
+  SetInfinite = buildPerlPackage {
+    name = "Set-Infinite-0.65";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/F/FG/FGLOCK/Set-Infinite-0.65.tar.gz;
+      sha256 = "07bc880734492de40b4a3a8b5a331762f64e69b4629029fd9a9d357b25b87e1f";
+    };
+    meta = {
+      description = "Infinite Sets math";
+    };
+  };
+
   SetObject = buildPerlPackage {
     name = "Set-Object-1.26";
     src = fetchurl {
@@ -4422,6 +5508,17 @@ rec {
     };
   };
 
+  SetScalar = buildPerlPackage {
+    name = "Set-Scalar-1.25";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JH/JHI/Set-Scalar-1.25.tar.gz;
+      sha256 = "1kbfy97j4cg0pprk8sgsh1fd505mdffn1jr9qbdmwqma8x4qvv7m";
+    };
+    meta = {
+      license = "perl";
+    };
+  };
+
   SGMLSpm = buildPerlPackage {
     name = "SGMLSpm-1.1";
     src = fetchurl {
@@ -4430,6 +5527,19 @@ rec {
     };
   };
 
+  SOAPLite = buildPerlPackage {
+    name = "SOAP-Lite-0.716";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PH/PHRED/SOAP-Lite-0.716.tar.gz;
+      sha256 = "0vhnv5bdhy3gzwiaw1ly69r7lxvahz796v210x5nyij7a04ndwbz";
+    };
+    propagatedBuildInputs = [ ClassInspector HTTPDaemon LWP TaskWeaken URI XMLParser ];
+    meta = {
+      description = "Perl's Web Services Toolkit";
+      license = "perl5";
+    };
+  };
+
   Socket6 = buildPerlPackage rec {
     name = "Socket6-0.23";
     src = fetchurl {
@@ -4523,21 +5633,34 @@ rec {
     ];
   };
 
-  Starman = buildPerlPackage {
-    name = "Starman-0.3006";
+  Starman = buildPerlModule {
+    name = "Starman-0.3011";
     src = fetchurl {
-      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Starman-0.3006.tar.gz;
-      sha256 = "0dlwrrq570v5mbpzsi4pmj6n2sjm3xpcilhh6dvpq8qbp550wixy";
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Starman-0.3011.tar.gz;
+      sha256 = "f700e1e9fa8a56609db1b75878ccfbbccfda32454c32e3c33912a1776f583cf2";
     };
-    buildInputs = [ TestRequires ];
-    propagatedBuildInputs = [ DataDump HTTPDate HTTPParserXS HTTPMessage NetServer Plack TestTCP ];
-    doCheck = false; # binds to various TCP ports1
+    buildInputs = [ ModuleBuildTiny TestRequires ];
+    propagatedBuildInputs = [ DataDump HTTPDate HTTPMessage HTTPParserXS NetServer Plack TestTCP ];
+    doCheck = false; # binds to various TCP ports
     meta = {
+      homepage = https://github.com/miyagawa/Starman;
       description = "High-performance preforking PSGI/Plack web server";
       license = "perl";
     };
   };
 
+  StatisticsBasic = buildPerlPackage {
+    name = "Statistics-Basic-1.6607";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JE/JETTERO/Statistics-Basic-1.6607.tar.gz;
+      sha256 = "105agxl2581iqmwj1crgz33l5r19snf47h91hnjgm1nf555z79r7";
+    };
+    propagatedBuildInputs = [ NumberFormat ];
+    meta = {
+      license = "open_source";
+    };
+  };
+
   StatisticsDescriptive = buildPerlPackage rec {
     name = "Statistics-Descriptive-3.0202";
     src = fetchurl {
@@ -4597,6 +5720,22 @@ rec {
     };
   };
 
+  StringCRC32 = buildPerlPackage rec {
+      name = "String-CRC32-1.4";
+      src = fetchurl {
+        url = mirror://cpan/authors/id/S/SO/SOENKE/String-CRC32-1.4.tar.gz;
+        sha256 = "0lc3d4szxagwzcw6pxq3mmkvdlrz2zkw4i13crf42nvivv7gda8l";
+      };
+  };
+
+  StringEscape = buildPerlPackage rec {
+    name = "String-Escape-2010.002";
+    src = fetchurl {
+        url = mirror://cpan/authors/id/E/EV/EVO/String-Escape-2010.002.tar.gz;
+        sha256 = "12ls7f7847i4qcikkp3skwraqvjphjiv2zxfhl5d49326f5myr7x";
+    };
+  };
+
   StringFormat = buildPerlPackage rec {
     name = "String-Format-1.16";
     src = fetchurl {
@@ -4627,6 +5766,14 @@ rec {
     };
   };
 
+  StringShellQuote = buildPerlPackage {
+    name = "String-ShellQuote-1.04";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RO/ROSCH/String-ShellQuote-1.04.tar.gz;
+      sha256 = "0dfxhr6hxc2majkkrm0qbx3qcbykzpphbj2ms93dc86f7183c1p6";
+    };
+  };
+
   StringToIdentifierEN = buildPerlPackage rec {
     name = "String-ToIdentifier-EN-0.06";
     src = fetchurl {
@@ -4637,6 +5784,20 @@ rec {
       [ LinguaENInflectPhrase TextUnidecode namespaceclean ];
   };
 
+  StringTT = buildPerlPackage {
+    name = "String-TT-0.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/B/BO/BOBTFISH/String-TT-0.03.tar.gz;
+      sha256 = "1asjr79wqcl9wk96afxrm1yhpj8lk9bk8kyz78yi5ypr0h55yq7p";
+    };
+    buildInputs = [ TestUseOk TestException TestTableDriven ];
+    propagatedBuildInputs = [ PadWalker SubExporter TemplateToolkit ];
+    meta = {
+      description = "Use TT to interpolate lexical variables";
+      license = "perl";
+    };
+  };
+
   StringUtil = buildPerlPackage {
     name = "String-Util-1.21";
     src = fetchurl {
@@ -4791,6 +5952,14 @@ rec {
     doCheck = false;                             # FIXME: 2/293 test failures
   };
 
+  SymbolUtil = buildPerlPackage {
+    name = "Symbol-Util-0.0203";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DE/DEXTER/Symbol-Util-0.0203.tar.gz;
+      sha256 = "0cnwwrd5d6i80f33s7n2ak90rh4s53ss7q57wndrpkpr4bfn3djm";
+    };
+  };
+
   SysHostnameLong = buildPerlPackage rec {
     name = "Sys-Hostname-Long-1.4";
     src = fetchurl {
@@ -4844,6 +6013,24 @@ rec {
     };
   };
 
+  TemplatePluginClass = buildPerlPackage {
+    name = "Template-Plugin-Class-0.14";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RC/RCLAMP/Template-Plugin-Class-0.14.tar.gz;
+      sha256 = "1hq7jy6zg1iaslsyi05afz0i944y9jnv3nb4krkxjfmzwy5gw106";
+    };
+    propagatedBuildInputs = [ TemplateToolkit ];
+  };
+
+  TemplatePluginJavaScript = buildPerlPackage {
+    name = "Template-Plugin-JavaScript-0.02";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Template-Plugin-JavaScript-0.02.tar.gz;
+      sha256 = "1mqqqs0dhfr6bp1305j9ns05q4pq1n3f561l6p8848k5ml3dh87a";
+    };
+    propagatedBuildInputs = [ TemplateToolkit ];
+  };
+
   TemplateTimer = buildPerlPackage {
     name = "Template-Timer-1.00";
     src = fetchurl {
@@ -4870,6 +6057,54 @@ rec {
     };
   };
 
+  TermEncoding = buildPerlPackage {
+    name = "Term-Encoding-0.02";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Term-Encoding-0.02.tar.gz;
+      sha256 = "f274e72346a0c0cfacfb53030ac1e38b57425512fc5bdc5cd9ef75ab0f26cfcc";
+    };
+    meta = {
+      description = "Detect encoding of the current terminal";
+      license = "perl";
+    };
+  };
+
+  TermProgressBar = buildPerlPackage {
+    name = "Term-ProgressBar-2.13";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SZ/SZABGAB/Term-ProgressBar-2.13.tar.gz;
+      sha256 = "95a56e1529928b7a0d7adf5bc2f54b9b9ae9da58c43b519af74a1e6596209b3c";
+    };
+    buildInputs = [ CaptureTiny TestException ];
+    propagatedBuildInputs = [ ClassMethodMaker TermReadKey ];
+    meta = {
+      description = "Provide a progress meter on a standard terminal";
+      license = "perl";
+    };
+  };
+
+  TermProgressBarQuiet = buildPerlPackage {
+    name = "Term-ProgressBar-Quiet-0.31";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/L/LB/LBROCARD/Term-ProgressBar-Quiet-0.31.tar.gz;
+      sha256 = "25675292f588bc29d32e710cf3667da9a2a1751e139801770a9fdb18cd2184a6";
+    };
+    propagatedBuildInputs = [ IOInteractive TermProgressBar TestMockObject ];
+    meta = {
+      description = "";
+      license = "perl";
+    };
+  };
+
+  TermProgressBarSimple = buildPerlPackage {
+    name = "Term-ProgressBar-Simple-0.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/E/EV/EVDB/Term-ProgressBar-Simple-0.03.tar.gz;
+      sha256 = "a20db3c67d5bdfd0c1fab392c6d1c26880a7ee843af602af4f9b53a7043579a6";
+    };
+    propagatedBuildInputs = [ TermProgressBarQuiet ];
+  };
+
   TermReadKey = buildPerlPackage {
     name = "TermReadKey-2.30";
     src = fetchurl {
@@ -4902,6 +6137,16 @@ rec {
     doCheck = false;
   };
 
+  TestAssert = buildPerlPackage {
+    name = "Test-Assert-0.0504";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DE/DEXTER/Test-Assert-0.0504.tar.gz;
+      sha256 = "194bzflmzc0cw5727kznbj1zwzj7gnj7nx1643zk2hshdjlnv8yg";
+    };
+    buildInputs = [ ClassInspector TestUnitLite ];
+    propagatedBuildInputs = [ constantboolean ExceptionBase SymbolUtil ];
+  };
+
   TestAssertions = buildPerlPackage rec {
     name = "Test-Assertions-1.054";
     src = fetchurl {
@@ -4917,7 +6162,7 @@ rec {
       url = "mirror://cpan/modules/by-module/Test/${name}.tar.gz";
       sha256 = "0yf030nay85xzas1qxn1nw6lhfsrcbgh3nq7bxbb11nxhvdaj2bx";
     };
-    buildInputs = [ Spiffy ];
+    propagatedBuildInputs = [ Spiffy ];
   };
 
   TestCheckDeps = buildPerlPackage {
@@ -4990,6 +6235,15 @@ rec {
     };
   };
 
+  TestJSON = buildPerlPackage {
+    name = "Test-JSON-0.11";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/O/OV/OVID/Test-JSON-0.11.tar.gz;
+      sha256 = "1cyp46w3q7dg89qkw31ik2h2a6mdx6pzdz2lmp8m0a61zjr8mh07";
+    };
+    propagatedBuildInputs = [ JSONAny TestDifferences TestTester ];
+  };
+
   TestLongString = buildPerlPackage rec {
     name = "Test-LongString-0.15";
     src = fetchurl {
@@ -4998,6 +6252,40 @@ rec {
     };
   };
 
+  TestMemoryCycle = buildPerlPackage {
+    name = "Test-Memory-Cycle-1.04";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PE/PETDANCE/Test-Memory-Cycle-1.04.tar.gz;
+      sha256 = "09qj48gmj25xgm0k12n1xx7chdk9gdy3sck4pabvzs0v00nmv9p5";
+    };
+    propagatedBuildInputs = [ DevelCycle PadWalker ];
+    meta = {
+      description = "Verifies code hasn't left circular references";
+    };
+  };
+
+  TestMockClass = buildPerlPackage {
+    name = "Test-Mock-Class-0.0303";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DE/DEXTER/Test-Mock-Class-0.0303.tar.gz;
+      sha256 = "00pkfqcz7b34q1mvx15k46sbxs22zcrvrbv15rnbn2na57z54bnd";
+    };
+    buildInputs = [ ClassInspector TestUnitLite ];
+    propagatedBuildInputs = [ ExceptionBase FatalException Moose namespaceclean TestAssert ];
+    meta = {
+      description = "Simulating other classes";
+      license = "lgpl";
+    };
+  };
+
+  TestMockModule = buildPerlPackage {
+    name = "Test-MockModule-0.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SI/SIMONFLK/Test-MockModule-0.05.tar.gz;
+      sha256 = "01vf75higpap5mwm5fyas08b3qcmy5bfq1c3wl4h0y3nihjibib7";
+    };
+  };
+
   TestMockObject = buildPerlPackage {
     name = "Test-MockObject-1.09";
     src = fetchurl {
@@ -5032,6 +6320,19 @@ rec {
 
   TestMore = TestSimple;
 
+  TestMost = buildPerlPackage {
+    name = "Test-Most-0.31";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/O/OV/OVID/Test-Most-0.31.tar.gz;
+      sha256 = "0ddc6034dc7cde3631dde41ecb558ed823fc07804bfd051b8ec9a70131862ab7";
+    };
+    propagatedBuildInputs = [ ExceptionClass TestDeep TestDifferences TestException TestWarn ];
+    meta = {
+      description = "Most commonly needed test functions and features";
+      license = "perl";
+    };
+  };
+
   TestNoWarnings = buildPerlPackage {
     name = "Test-NoWarnings-1.04";
     src = fetchurl {
@@ -5107,6 +6408,21 @@ rec {
     };
   };
 
+  TestRoutine = buildPerlPackage {
+    name = "Test-Routine-0.015";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Test-Routine-0.015.tar.gz;
+      sha256 = "04hm18sx90k38vxk70g8zj9wp0i7h4436cxflbc6pspvphv2fjg3";
+    };
+    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ Moose namespaceautoclean namespaceclean ParamsUtil SubExporter ];
+    meta = {
+      homepage = https://github.com/rjbs/Test-Routine;
+      description = "Composable units of assertion";
+      license = "perl5";
+    };
+  };
+
   TestScript = buildPerlPackage rec {
     name = "Test-Script-1.07";
     src = fetchurl {
@@ -5135,6 +6451,18 @@ rec {
     propagatedBuildInputs = [ HookLexWrap ];
   };
 
+  TestTableDriven = buildPerlPackage {
+    name = "Test-TableDriven-0.02";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JR/JROCKWAY/Test-TableDriven-0.02.tar.gz;
+      sha256 = "16l5n6sx3yqdir1rqq21d41znpwzbs8v34gqr93y051arypphn22";
+    };
+    meta = {
+      description = "Write tests, not scripts that run them";
+      license = "perl";
+    };
+  };
+
   TestTCP = buildPerlPackage {
     name = "Test-TCP-1.18";
     src = fetchurl {
@@ -5156,11 +6484,28 @@ rec {
     };
   };
 
-  TestUseOk = buildPerlPackage rec {
-    name = "Test-use-ok-0.02";
+  TestUnitLite = buildPerlPackage {
+    name = "Test-Unit-Lite-0.1202";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DE/DEXTER/Test-Unit-Lite-0.1202.tar.gz;
+      sha256 = "1a5jym9hjcpdf0rwyn7gwrzsx4xqzwgzx59rgspqlqiif7p2a79m";
+    };
+    meta = {
+      description = "Unit testing without external dependencies";
+      license = "perl5";
+    };
+  };
+
+  TestUseOk = buildPerlPackage {
+    name = "Test-use-ok-0.11";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AU/AUDREYT/${name}.tar.gz";
-      sha256 = "11inaxiavb35k8zwxwbfbp9wcffvfqas7k9idy822grn2sz5gyig";
+      url = mirror://cpan/authors/id/A/AU/AUDREYT/Test-use-ok-0.11.tar.gz;
+      sha256 = "8410438a2acf127bffcf1ab92205b747a615b487e80a48e8c3d0bb9fa0dbb2a8";
+    };
+    meta = {
+      homepage = http://github.com/audreyt/Test-use-ok/tree;
+      description = "Alternative to Test::More::use_ok";
+      license = "unrestricted";
     };
   };
 
@@ -5206,6 +6551,15 @@ rec {
     };
   };
 
+  TestWWWMechanizeCGI = buildPerlPackage {
+    name = "Test-WWW-Mechanize-CGI-0.1";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MR/MRAMBERG/Test-WWW-Mechanize-CGI-0.1.tar.gz;
+      sha256 = "0bwwdk0iai5dlvvfpja971qpgvmf6yq67iag4z4szl9v5sra0xm5";
+    };
+    propagatedBuildInputs = [ TestWWWMechanize WWWMechanizeCGI ];
+  };
+
   TestWWWMechanizePSGI = buildPerlPackage {
     name = "Test-WWW-Mechanize-PSGI-0.35";
     src = fetchurl {
@@ -5219,6 +6573,15 @@ rec {
     };
   };
 
+  TestXPath = buildPerlModule {
+    name = "Test-XPath-0.16";
+    src = fetchurl {
+      url = http://cpan.metacpan.org/authors/id/D/DW/DWHEELER/Test-XPath-0.16.tar.gz;
+      sha256 = "09s47d5jcrx35dz623gjiqn0qmjrv0wb54czr7h01wffw1w8akxi";
+    };
+    propagatedBuildInputs = [ XMLLibXML ];
+  };
+
   TextAligner = buildPerlPackage {
     name = "Text-Aligner-0.07";
     src = fetchurl {
@@ -5282,6 +6645,31 @@ rec {
       ExtUtilsMakeMaker TestException ];
   };
 
+  TestMagpie = buildPerlPackage {
+    name = "Test-Magpie-0.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CY/CYCLES/Test-Magpie-0.05.tar.gz;
+      sha256 = "0a0c6vcj92spy6ngfdqn9yfym37jwxlds7hlw6xphkdmcklynh0b";
+    };
+    propagatedBuildInputs = [ aliased DevelPartialDump ListAllUtils Moose MooseXParamsValidate MooseXTypes MooseXTypesStructured namespaceautoclean SetObject SubExporter TestFatal ];
+    meta = {
+      description = "Spy on objects to achieve test doubles (mock testing)";
+      license = "perl5";
+    };
+  };
+
+  TextMicroTemplate = buildPerlPackage {
+    name = "Text-MicroTemplate-0.19";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/K/KA/KAZUHO/Text-MicroTemplate-0.19.tar.gz;
+      sha256 = "0hli95kn67slr6ixffcx6qvv36hlr03hij28029k3f8d7b7f32za";
+    };
+    meta = {
+      description = "Micro template engine with Perl5 language";
+      license = "perl";
+    };
+  };
+
   TextPDF = buildPerlPackage rec {
     name = "Text-PDF-0.29a";
     src = fetchurl {
@@ -5355,6 +6743,26 @@ rec {
     };
   };
 
+  TextTrim = buildPerlPackage {
+    name = "Text-Trim-1.02";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MA/MATTLAW/Text-Trim-1.02.tar.gz;
+      sha256 = "1bnwjl5n04w8nnrzrm75ljn4pijqbijr9csfkjcs79h4gwn9lwqw";
+    };
+    meta = {
+      description = "Remove leading and/or trailing whitespace from strings";
+      license = "perl";
+    };
+  };
+
+  TextUnaccent = buildPerlPackage {
+    name = "Text-Unaccent-1.08";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/L/LD/LDACHARY/Text-Unaccent-1.08.tar.gz;
+      sha256 = "0avk50kia78kxryh2whmaj5l18q2wvmkdyqyjsf6kwr4kgy6x3i7";
+    };
+  };
+
   TextUnidecode = buildPerlPackage rec {
     name = "Text-Unidecode-0.04";
     src = fetchurl {
@@ -5363,6 +6771,19 @@ rec {
     };
   };
 
+  TextWikiFormat = buildPerlPackage {
+    name = "Text-WikiFormat-0.80";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/C/CY/CYCLES/Text-WikiFormat-0.80.tar.gz;
+      sha256 = "0i1mg3ivxhx09x0w06k15izc92bknwqwh0ghpmhlq9s9iw12mmry";
+    };
+    propagatedBuildInputs = [ URI ];
+    meta = {
+      description = "Unknown";
+      license = "unknown";
+    };
+  };
+
   Throwable = buildPerlPackage rec {
     name = "Throwable-0.102080";
     src = fetchurl {
@@ -5401,6 +6822,33 @@ rec {
     };
   };
 
+  TimeDuration = buildPerlPackage {
+    name = "Time-Duration-1.1";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/A/AV/AVIF/Time-Duration-1.1.tar.gz;
+      sha256 = "a69c419c4892f21eba10002e2ab8c55b657b6691cf6873544ef99ef5fd188f4e";
+    };
+    buildInputs = [ TestPod TestPodCoverage ];
+    meta = {
+      description = "Rounded or exact English expression of durations";
+      license = "perl";
+    };
+  };
+
+  TimeDurationParse = buildPerlPackage {
+    name = "Time-Duration-Parse-0.06";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Time-Duration-Parse-0.06.tar.gz;
+      sha256 = "e88f0e1c322b477ec98fb295324bc78657ce25aa53cb353656f01241ea7fe4db";
+    };
+    buildInputs = [ TimeDuration ];
+    propagatedBuildInputs = [ ExporterLite ];
+    meta = {
+      description = "Parse string that represents time duration";
+      license = "perl";
+    };
+  };
+
   TimeHiRes = buildPerlPackage rec {
     name = "Time-HiRes-1.9725";
     src = fetchurl {
@@ -5486,6 +6934,19 @@ rec {
     };
   };
 
+  UnicodeICUCollator = buildPerlPackage {
+    name = "Unicode-ICU-Collator-0.002";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TO/TONYC/Unicode-ICU-Collator-0.002.tar.gz;
+      sha256 = "0gimwydam0mdgm6qjzzxny4gw8zda9kc2843kcl2xrpq7z7ww3f9";
+    };
+    meta = {
+      description = "Wrapper around ICU collation services";
+      license = "perl";
+    };
+    buildInputs = [ pkgs.icu ];
+  };
+
   URI = buildPerlPackage {
     name = "URI-1.60";
     src = fetchurl {
@@ -5512,6 +6973,19 @@ rec {
     };
   };
 
+  URIFromHash = buildPerlPackage {
+    name = "URI-FromHash-0.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/URI-FromHash-0.03.tar.gz;
+      sha256 = "0yzk69mdf8rmkx1wxm5mn1a1zzd0zq4x1w83vyj9ja40v73q0k4i";
+    };
+    propagatedBuildInputs = [ ParamsValidate URI ];
+    meta = {
+      description = "Build a URI from a set of named parameters";
+      license = "perl";
+    };
+  };
+
   UriGoogleChart = buildPerlPackage rec {
     name = "URI-GoogleChart-1.02";
     src = fetchurl {
@@ -5602,6 +7076,16 @@ rec {
     };
   };
 
+  WWWMechanizeCGI = buildPerlPackage {
+    name = "WWW-Mechanize-CGI-0.3";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MR/MRAMBERG/WWW-Mechanize-CGI-0.3.tar.gz;
+      sha256 = "046jm18liq7rwkdawdh9520cnalkfrk26yqryp7xgw71y65lvq61";
+    };
+    propagatedBuildInputs = [ HTTPRequestAsCGI WWWMechanize ];
+    preConfigure = "sed -i 's|#!/usr/bin/perl|#!${perl}/bin/perl|' t/cgi-bin/script.cgi";
+  };
+
   WWWRobotRules = buildPerlPackage {
     name = "WWW-RobotRules-6.02";
     src = fetchurl {
@@ -5694,6 +7178,17 @@ rec {
     propagatedBuildInputs = [XMLParser];
   };
 
+  XMLXPathEngine = buildPerlPackage {
+    name = "XML-XPathEngine-0.14";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/M/MI/MIROD/XML-XPathEngine-0.14.tar.gz;
+      sha256 = "0r72na14bmsxfd16s9nlza155amqww0k8wsa9x2a3sqbpp5ppznj";
+    };
+    meta = {
+      description = "A re-usable XPath engine for DOM-like trees";
+    };
+  };
+
   XMLRegExp = buildPerlPackage {
     name = "XML-RegExp-0.03";
     src = fetchurl {
@@ -5711,6 +7206,15 @@ rec {
     propagatedBuildInputs = [XMLNamespaceSupport];
   };
 
+  XMLSemanticDiff = buildPerlPackage {
+    name = "XML-SemanticDiff-1.0000";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/XML-SemanticDiff-1.0000.tar.gz;
+      sha256 = "05rzm433vvndh49k8p4gqnyw4x4lxa4zr6qdlrlgplqkxvhvk6jk";
+    };
+    propagatedBuildInputs = [ XMLParser ];
+  };
+
   XMLSimple = buildPerlPackage {
     name = "XML-Simple-2.18";
     src = fetchurl {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 52da5007266..f0e74a0277f 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -97,7 +97,7 @@ pythonPackages = python.modules // rec {
   };
 
   pygtk = import ../development/python-modules/pygtk {
-    inherit (pkgs) fetchurl stdenv pkgconfig glib gtk;
+    inherit (pkgs) fetchurl stdenv pkgconfig gtk;
     inherit python buildPythonPackage pygobject pycairo;
   };
 
@@ -106,7 +106,7 @@ pythonPackages = python.modules // rec {
   #  inherit (pkgs.gnome) libglade;
   #};
   pyGtkGlade = import ../development/python-modules/pygtk {
-    inherit (pkgs) fetchurl stdenv pkgconfig glib gtk;
+    inherit (pkgs) fetchurl stdenv pkgconfig gtk;
     inherit (pkgs.gnome) libglade;
     inherit python buildPythonPackage pygobject pycairo;
   };
@@ -451,6 +451,44 @@ pythonPackages = python.modules // rec {
   };
 
 
+  blivet = buildPythonPackage rec {
+    name = "blivet-${version}";
+    version = "0.16-1";
+
+    src = fetchurl {
+      url = "https://git.fedorahosted.org/cgit/blivet.git/snapshot/"
+          + "${name}.tar.bz2";
+      sha256 = "0gfxf86sc0mkpqjcainch6gqh3r7brgma85pbl4nfpzmylhzj5sg";
+    };
+
+    postPatch = ''
+      sed -i -e '/find_library/,/find_library/ {
+        c libudev = "${pkgs.udev}/lib/libudev.so.1"
+      }' blivet/pyudev.py
+      sed -i -e 's|"multipath"|"${pkgs.multipath_tools}/sbin/multipath"|' \
+        blivet/devicelibs/mpath.py blivet/devices.py
+    '';
+
+    propagatedBuildInputs = let
+      pyenable = { enablePython = true; };
+      selinuxWithPython = pkgs.libselinux.override pyenable;
+      cryptsetupWithPython = pkgs.cryptsetup.override pyenable;
+    in [
+      pykickstart pyparted pkgs.udev pyblock
+      selinuxWithPython cryptsetupWithPython
+    ];
+
+    # tests are currently _heavily_ broken upstream
+    doCheck = false;
+
+    meta = {
+      homepage = "https://fedoraproject.org/wiki/Blivet";
+      description = "Module for management of a system's storage configuration";
+      license = [ "GPLv2+" "LGPLv2.1+" ];
+    };
+  };
+
+
   # euca2ools (and maybe Nova) needs boto 1.9, 2.0 doesn't work.
   boto_1_9 = buildPythonPackage (rec {
     name = "boto-1.9b";
@@ -975,6 +1013,25 @@ pythonPackages = python.modules // rec {
     };
   };
 
+  fabric = buildPythonPackage rec {
+    name = "fabric-1.6.1";
+    src = fetchurl {
+      url = https://pypi.python.org/packages/source/F/Fabric/Fabric-1.6.1.tar.gz;
+      sha256 = "058psbhqbfm3n214wkyfpgm069yqmdqw1hql9bac1yv9pza3bzx1";
+    };
+    propagatedBuildInputs = [ paramiko pycrypto ];
+    buildInputs = [ fudge nose ];
+  }; 
+
+  fudge = buildPythonPackage rec {
+    name = "fudge-0.9.4";
+    src = fetchurl {
+      url = https://pypi.python.org/packages/source/f/fudge/fudge-0.9.4.tar.gz;
+      sha256 = "03sj2x6mpzm48swpa4hnn1gi6yilgniyjfg1ylz95wm1ijggi33w";
+    };
+    buildInputs = [ nose nosejs ];
+    propagatedBuildInputs = [ sphinx ];
+  };
 
   logilab_astng = buildPythonPackage rec {
     name = "logilab-astng-0.24.1";
@@ -2167,6 +2224,26 @@ pythonPackages = python.modules // rec {
     propagatedBuildInputs = [ unittest2 ];
   };
 
+  "lxml-2.3.6" = buildPythonPackage rec {
+    name = "lxml-2.3.6";
+    src = fetchurl {
+      url = "http://pypi.python.org/packages/source/l/lxml/lxml-2.3.6.tar.gz";
+      md5 = "d5d886088e78b1bdbfd66d328fc2d0bc";
+    };
+    buildInputs = [ pkgs.libxml2 pkgs.libxslt ];
+    propagatedBuildInputs = [  ];
+    doCheck = false;
+    installCommand = ''
+      easy_install --always-unzip --no-deps --prefix="$out" .
+    '';
+
+    meta = {
+      description = "Pythonic binding for the libxml2 and libxslt libraries";
+      homepage = http://codespeak.net/lxml/index.html;
+      license = "BSD";
+    };
+  };
+
   lxml = buildPythonPackage ( rec {
     name = "lxml-3.0.2";
 
@@ -2362,6 +2439,24 @@ pythonPackages = python.modules // rec {
   });
 
 
+  meld3 = buildPythonPackage rec {
+    name = "meld3-0.6.10";
+
+    src = fetchurl {
+      url = https://pypi.python.org/packages/source/m/meld3/meld3-0.6.10.tar.gz;
+      md5 = "42e58624e9d427be7659d7a28e2b0b6f";
+    };
+
+    doCheck = false;
+
+    meta = {
+      description = "An HTML/XML templating engine used by supervisor";
+      homepage = https://github.com/supervisor/meld3;
+      license = "ZPL";
+    };
+  };
+
+
   memcached = buildPythonPackage rec {
     name = "memcached-1.48";
 
@@ -2718,6 +2813,15 @@ pythonPackages = python.modules // rec {
     propagatedBuildInputs = [ covCore nose2 ];
   });
 
+  nosejs = buildPythonPackage {
+    name = "nosejs-0.9.4";
+    src = fetchurl {
+      url = https://pypi.python.org/packages/source/N/NoseJS/NoseJS-0.9.4.tar.gz;
+      sha256 = "0qrhkd3sga56qf6k0sqyhwfcladwi05gl6aqmr0xriiq1sgva5dy";
+    };
+    buildInputs = [ nose ];
+  };
+
   notify = pkgs.stdenv.mkDerivation (rec {
     name = "python-notify-0.1.1";
 
@@ -2825,6 +2929,7 @@ pythonPackages = python.modules // rec {
     src = fetchgit {
       url = https://git.torproject.org/pluggable-transports/obfsproxy.git;
       rev = "3c4e843a30c430aec1de03e0e09ef654072efc03";
+      sha256 = "8fd1e63a37bc42add7609d97d50ecd81da81881bcf7015a9e2958531dbf39018";
     };
 
     propagatedBuildInputs = [ pyptlib argparse twisted pycrypto ];
@@ -2899,13 +3004,35 @@ pythonPackages = python.modules // rec {
     };
   });
 
+  pandas = buildPythonPackage rec {
+    name = "pandas-0.11.0";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/p/pandas/${name}.tar.gz";
+      sha256 = "1mwh783hcch6lywgjayj8aqmbfv6n8fd2qbf1xlwqk2913ad8x2d";
+    };
+
+    buildInputs = [ nose ];
+    propagatedBuildInputs = [ dateutil numpy pytz python.modules.sqlite3 ];
+
+    # Tests require networking to pass
+    doCheck = false;
+
+    meta = {
+      homepage = "http://pandas.pydata.org/";
+      description = "Python Data Analysis Library";
+      license = stdenv.lib.licenses.bsd3;
+      maintainers = [ stdenv.lib.maintainers.raskin ];
+      platforms = stdenv.lib.platforms.linux;
+    };
+  };
 
   paramiko = buildPythonPackage rec {
-    name = "paramiko-1.7.7.1";
+    name = "paramiko-1.10";
 
     src = fetchurl {
-      url = "http://www.lag.net/paramiko/download/${name}.tar.gz";
-      sha256 = "1bjy4jn51c50mpq51jbwk0glzd8bxz83gxdfkr9p95dmrd17c7hh";
+      url = https://pypi.python.org/packages/source/p/paramiko/paramiko-1.10.1.tar.gz;
+      sha256 = "1g5sbzfxdhps61z3vm30wa87m5xq1j9ar3qvgr5bz63l7nxhvb2z";
     };
 
     buildInputs = [ pycrypto ];
@@ -3321,6 +3448,10 @@ pythonPackages = python.modules // rec {
       md5 = "8d27f84509a96d6791a6c393ae67d7c8";
     };
 
+    preConfigure = ( if stdenv.isDarwin then ''
+      export DYLD_LIBRARY_PATH="${pkgs.libgit2}/lib"
+    '' else "" );
+
     propagatedBuildInputs = [ pkgs.libgit2 ];
 
     meta = {
@@ -3352,6 +3483,35 @@ pythonPackages = python.modules // rec {
   });
 
 
+  pyblock = stdenv.mkDerivation rec {
+    name = "python-pyblock-${version}";
+    version = "0.52-1";
+
+    src = fetchurl {
+      url = "https://git.fedorahosted.org/cgit/pyblock.git/snapshot/"
+          + "pyblock-${version}.tar.bz2";
+      sha256 = "1jj5hd1dcr8xx00rg3jynsf4ak88wwr5id3fmb0qf6zvim1whj7l";
+    };
+
+    postPatch = ''
+      sed -i -e 's|/usr/include/python|${python}/include/python|' \
+             -e 's/-Werror *//' -e 's|/usr/|'"$out"'/|' Makefile
+    '';
+
+    buildInputs = [ python pkgs.lvm2 pkgs.dmraid ];
+
+    makeFlags = [
+      "USESELINUX=0"
+      "SITELIB=$(out)/lib/${python.libPrefix}/site-packages"
+    ];
+
+    meta = {
+      description = "Interface for working with block devices";
+      license = stdenv.lib.licenses.gpl2Plus;
+    };
+  };
+
+
   pycryptopp = buildPythonPackage (rec {
     name = "pycryptopp-0.5.29";
 
@@ -3537,6 +3697,35 @@ pythonPackages = python.modules // rec {
   };
 
 
+  pykickstart = buildPythonPackage rec {
+    name = "pykickstart-${version}";
+    version = "1.99.32-1";
+
+    src = fetchurl {
+      url = "https://git.fedorahosted.org/cgit/pykickstart.git/snapshot/"
+          + "r${version}.tar.bz2";
+      sha256 = "1sq68jvc39k9wrkcc4xlabhwi8gdz019yh2k5nrl7ya35b8daqw0";
+    };
+
+    postPatch = ''
+      sed -i -e "s/for tst in tstList/for tst in sorted(tstList, \
+                 key=lambda m: m.__name__)/" tests/baseclass.py
+    '';
+
+    propagatedBuildInputs = [ urlgrabber ];
+
+    checkPhase = ''
+      python tests/baseclass.py -vv
+    '';
+
+    meta = {
+      homepage = "http://fedoraproject.org/wiki/Pykickstart";
+      description = "Read and write Fedora kickstart files";
+      license = pkgs.lib.licenses.gpl2Plus;
+    };
+  };
+
+
   pyparsing = buildPythonPackage rec {
     name = "pyparsing-1.5.6";
 
@@ -3554,6 +3743,47 @@ pythonPackages = python.modules // rec {
     };
   };
 
+
+  pyparted = buildPythonPackage rec {
+    name = "pyparted-${version}";
+    version = "3.10";
+
+    src = fetchurl {
+      url = "https://fedorahosted.org/releases/p/y/pyparted/${name}.tar.gz";
+      sha256 = "17wq4invmv1nfazaksf59ymqyvgv3i8h4q03ry2az0s9lldyg3dv";
+    };
+
+    postPatch = ''
+      sed -i -e 's|/sbin/mke2fs|${pkgs.e2fsprogs}&|' tests/baseclass.py
+      sed -i -e '
+        s|e\.path\.startswith("/tmp/temp-device-")|"temp-device-" in e.path|
+      ' tests/test__ped_ped.py
+    '' + pkgs.lib.optionalString stdenv.isi686 ''
+      # remove some integers in this test case which overflow on 32bit systems
+      sed -i -r -e '/class *UnitGetSizeTestCase/,/^$/{/[0-9]{11}/d}' \
+        tests/test__ped_ped.py
+    '';
+
+    preConfigure = ''
+      PATH="${pkgs.parted}/sbin:$PATH"
+    '';
+
+    buildInputs = [ pkgs.pkgconfig ];
+
+    propagatedBuildInputs = [ pkgs.parted ];
+
+    checkPhase = ''
+      python -m unittest discover -v
+    '';
+
+    meta = {
+      homepage = "https://fedorahosted.org/pyparted/";
+      description = "Python interface for libparted";
+      license = pkgs.lib.licenses.gpl2Plus;
+    };
+  };
+
+
   pyptlib = buildPythonPackage (rec {
     name = "pyptlib-${version}";
     version = "0.0.3";
@@ -3583,6 +3813,32 @@ pythonPackages = python.modules // rec {
     };
   });
 
+
+  pyudev = buildPythonPackage rec {
+    name = "pyudev-${version}";
+    version = "0.16.1";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/p/pyudev/${name}.tar.gz";
+      md5 = "4034de584b6d9efcbfc590a047c63285";
+    };
+
+    postPatch = ''
+      sed -i -e '/udev_library_name/,/^ *libudev/ {
+        s|CDLL([^,]*|CDLL("${pkgs.udev}/lib/libudev.so.1"|p; d
+      }' pyudev/_libudev.py
+    '';
+
+    propagatedBuildInputs = [ pkgs.udev ];
+
+    meta = {
+      homepage = "http://pyudev.readthedocs.org/";
+      description = "Pure Python libudev binding";
+      license = stdenv.lib.licenses.lgpl21Plus;
+    };
+  };
+
+
   pynzb = buildPythonPackage (rec {
     name = "pynzb-0.1.0";
 
@@ -4355,6 +4611,25 @@ pythonPackages = python.modules // rec {
     };
   };
 
+
+  supervisor = buildPythonPackage rec {
+    name = "supervisor-3.0b2";
+
+    src = fetchurl {
+      url = https://pypi.python.org/packages/source/s/supervisor/supervisor-3.0b2.tar.gz;
+      md5 = "e2557853239ee69955f993091b0eddc4";
+    };
+
+    buildInputs = [ mock ];
+    propagatedBuildInputs = [ meld3  ];
+
+    meta = {
+      description = "A system for controlling process state under UNIX";
+      homepage = http://supervisord.org/;
+    };
+  };
+
+
   sphinx = buildPythonPackage (rec {
     name = "Sphinx-1.1.3";
 
@@ -5588,6 +5863,36 @@ pythonPackages = python.modules // rec {
   };
 
 
+  tarman = buildPythonPackage rec {
+    version = "0.1.1";
+    name = "tarman-${version}";
+
+    src = fetchurl {
+      url = "https://pypi.python.org/packages/source/t/tarman/tarman-${version}.zip";
+      sha256 = "0ppd2365hf841b58fss5pgaja0y0mwx5n0gk1p3rxx9y3r0kyfas";
+    };
+
+    buildInputs = [ pkgs.unzip unittest2 nose mock ];
+    propagatedBuildInputs = [ python.modules.curses libarchive ];
+
+    # two tests fail
+    doCheck = false;
+  };
+
+
+  libarchive = buildPythonPackage rec {
+    version = "3.0.4-5";
+    name = "libarchive-${version}";
+
+    src = fetchurl {
+      url = "http://python-libarchive.googlecode.com/files/python-libarchive-${version}.tar.gz";
+      sha256 = "141yx9ym8gvybn67mw0lmgafzsd79rmd9l77lk0k6m2fzclqx1j5";
+    };
+
+    propagatedBuildInputs = [ pkgs.libarchive ];
+  };
+
+
   pyzmq = buildPythonPackage rec {
     name = "pyzmq-13.0.0";
     src = fetchurl {
diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix
deleted file mode 100644
index 218ce951f06..00000000000
--- a/pkgs/top-level/release-haskell.nix
+++ /dev/null
@@ -1,437 +0,0 @@
-/* Essential Haskell packages that must build. */
-
-{ supportedSystems ? [ "x86_64-linux" ] }:
-
-with import ./release-lib.nix { inherit supportedSystems; };
-
-let
-
-  ghc6104 = "ghc6104";
-  ghc6123 = "ghc6123";
-  ghc704  = "ghc704";
-  ghc742  = "ghc742";
-  ghc763  = "ghc763";
-  default = [ ghc763 ];
-  latest  = [ ];
-  all     = [ ghc6104 ghc6123 ghc704 ghc742 ghc763 ];
-
-  allBut = platform: pkgs.lib.filter (x: platform != x) all;
-
-  filterSupportedSystems = systems: pkgs.lib.filter (x: pkgs.lib.elem x supportedSystems) systems;
-
-  mapHaskellTestOn = attrs: pkgs.lib.mapAttrs mkJobs attrs;
-
-  mkJobs = pkg: ghcs: builtins.listToAttrs (pkgs.lib.concatMap (ghc: mkJob ghc pkg) ghcs);
-
-  mkJob = ghc: pkg:
-    let
-      pkgPath = ["haskellPackages_${ghc}" "${pkg}"];
-      systems = filterSupportedSystems (pkgs.lib.attrByPath (pkgPath ++ ["meta" "platforms"]) [] pkgs);
-    in
-      map (system: mkSystemJob system ghc pkg) systems;
-
-  mkSystemJob = system: ghc: pkg:
-    pkgs.lib.nameValuePair "${ghc}" (pkgs.lib.setAttrByPath [system] ((pkgs.lib.getAttrFromPath ["haskellPackages_${ghc}" "${pkg}"] (pkgsFor system))));
-
-in
-
-mapTestOn {
-
-  gitAndTools.gitAnnex = supportedSystems;
-  jhc = supportedSystems;
-
-}
-//
-mapHaskellTestOn {
-
-  abstractPar = default;
-  ACVector = default;
-  aeson = default;
-  AgdaExecutable = default;
-  alex = all;
-  alexMeta = default;
-  alsaCore = default;
-  alsaPcm = default;
-  alternativeIo = default;
-  ansiTerminal = default;
-  ansiWlPprint = default;
-  asn1Data = default;
-  AspectAG = default;
-  async = default ++ latest;
-  attempt = default;
-  attoparsec = default;
-  attoparsecEnumerator = default;
-  authenticate = default;
-  base64Bytestring = default;
-  baseUnicodeSymbols = default;
-  benchpress = default;
-  bimap = default;
-  binaryShared = default;
-  bitmap = default;
-  bktrees = default;
-  blazeBuilder = default;
-  blazeBuilderEnumerator = default;
-  blazeHtml = default;
-  blazeTextual = default;
-  bloomfilter = default;
-  bmp = default;
-  BNFC = default ++ latest;
-  BNFCMeta = default;
-  Boolean = default;
-  bytestringMmap = default;
-  bytestringNums = default;
-  bytestringTrie = default;
-  cabal2Ghci = default;
-  cabal2nix = allBut ghc6104;
-  cabalDev = default ++ latest;
-  cabalGhci = default ++ latest;
-  cabalInstall = all;
-  cairo = default;
-  caseInsensitive = default;
-  cautiousFile = default;
-  cereal = default;
-  certificate = default;
-  cgi = all;
-  Chart = default;
-  citeprocHs = default;
-  clientsession = default;
-  cmdargs = default;
-  cmdlib = default ++ latest;
-  colorizeHaskell = default;
-  colour = default;
-  comonadsFd = default;
-  conduit = default;
-  ConfigFile = default;
-  continuedFractions = default;
-  converge = default;
-  convertible = default;
-  cookie = default;
-  cpphs = default;
-  cprngAes = default;
-  criterion = default ++ latest;
-  cryptoApi = default;
-  cryptocipher = default;
-  Crypto = default;
-  cryptohash = default;
-  cssText = default;
-  csv = default;
-  darcs = default;
-  dataAccessor = default;
-  dataAccessorTemplate = default;
-  dataDefault = default;
-  dataenc = default;
-  dataReify = default;
-  datetime = default;
-  DAV = default;
-  dbus = default;
-  derive = default;
-  diagrams = default;
-  Diff = default;
-  digest = default;
-  digestiveFunctorsHeist = default;
-  digestiveFunctorsSnap = default;
-  dimensional = default ++ latest;
-  dimensionalTf = default ++ latest;
-  directoryTree = default;
-  dlist = default;
-  dns = default;
-  doctest = default ++ latest;
-  dotgen = default;
-  doubleConversion = default;
-  editDistance = default;
-  editline = default;
-  emailValidate = default;
-  entropy = default;
-  enumerator = default;
-  erf = default;
-  failure = default;
-  fclabels = default;
-  feed = default;
-  fgl = all;
-  fileEmbed = default;
-  filestore = default;
-  fingertree = default;
-  flexibleDefaults = default;
-  fsnotify = [ ghc704 ghc742 ghc763 ];
-  funcmp = all;
-  gamma = default;
-  gdiff = default;
-  ghc = default;
-  ghcEvents = default;
-  ghcMod = default ++ latest;
-  ghcMtl = default;
-  ghcPaths = default;
-  ghcSybUtils = default;
-  githubBackup = default;
-  github = default;
-  gitit = default;
-  glade = default;
-  glib = default;
-  Glob = default;
-  gloss = default;
-  GLUT = all;
-  gnutls = default;
-  graphviz = default ++ latest;
-  gtk = default;
-  gtksourceview2 = default;
-  hackageDb = default ++ latest;
-  haddock = all;
-  hakyll = default;
-  hamlet = default;
-  happstackHamlet = default;
-  happstackServer = default;
-  happy = all;
-  hashable = default;
-  hashedStorage = default;
-  haskeline = default;
-  haskellLexer = default;
-  haskellPlatform = all;
-  haskellSrc = all;
-  haskellSrcExts = default;
-  haskellSrcMeta = default;
-  HaXml = default;
-  haxr = default;
-  HDBC = default;
-  HDBCPostgresql = default;
-  HDBCSqlite3 = default;
-  highlightingKate = default;
-  hinotify = default;
-  hint = default;
-  hledger = default ++ latest;
-  hledgerInterest = default ++ latest;
-  hledgerLib = default ++ latest;
-  hledgerWeb = default;
-  hlint = default ++ latest;
-  HList = default ++ latest;
-  hmatrix = default;
-  hoogle = default ++ latest;
-  hopenssl = all;
-  hostname = default;
-  hp2anyCore = default;
-  hp2anyGraph = default;
-  hS3 = default;
-  hscolour = default;
-  hsdns = all;
-  hsemail = allBut ghc6104;
-  hslogger = default;
-  hsloggerTemplate = default;
-  hspec = default ++ latest;
-  HsSyck = default;
-  HStringTemplate = default ++ latest;
-  hsyslog = all;
-  html = all;
-  HTTP = all;
-  httpConduit = default;
-  httpDate = default;
-  httpdShed = default;
-  httpTypes = default;
-  HUnit = all;
-  hxt = default;
-  idris = default;
-  IfElse = default;
-  irc = default;
-  iteratee = default;
-  jailbreakCabal = all;
-  json = default;
-  jsonTypes = default;
-  keter = default;
-  lambdabot = default;
-  languageCQuote = default;
-  languageJavascript = default;
-  largeword = default;
-  lens = default;
-  libxmlSax = default;
-  liftedBase = default;
-  ListLike = default;
-  logfloat = default;
-  mainlandPretty = default;
-  maude = default;
-  MaybeT = default;
-  MemoTrie = default;
-  mersenneRandomPure64 = default;
-  mimeMail = default;
-  MissingH = default;
-  mmap = default;
-  MonadCatchIOMtl = default;
-  MonadCatchIOTransformers = default;
-  monadControl = default;
-  monadLoops = default;
-  monadPar = default ++ latest;
-  monadPeel = default;
-  MonadPrompt = default;
-  MonadRandom = default;
-  mpppc = default;
-  mtl = all;
-  mtlparse = default;
-  multiplate = default;
-  multirec = default;
-  murmurHash = default;
-  mwcRandom = default;
-  nat = default;
-  nats = default;
-  naturals = default;
-  network = all;
-  networkInfo = default;
-  networkMulticast = default;
-  networkProtocolXmpp = default;
-  nonNegative = default;
-  numericPrelude = default;
-  numtype = default;
-  numtypeTf = default;
-  ObjectName = default;
-  OneTuple = default;
-  OpenAL = all;
-  optparseApplicative = allBut ghc6104;
-  packunused = default;
-  pandoc = default ++ latest;
-  pandocTypes = default;
-  pango = default;
-  parallel = all;
-  parseargs = default;
-  parsec3 = default;
-  parsec = all;
-  parsimony = default;
-  pathPieces = default;
-  pathtype = default;
-  pcreLight = default;
-  permutation = default ++ latest;
-  persistent = default;
-  persistentPostgresql = default;
-  persistentSqlite = default;
-  persistentTemplate = default;
-  polyparse = default;
-  ppm = default;
-  prettyShow = default;
-  primitive = all;
-  PSQueue = default;
-  pureMD5 = default;
-  pwstoreFast = default;
-  QuickCheck2 = default;
-  QuickCheck = all;
-  random = default ++ latest;
-  randomFu = default;
-  randomShuffle = default;
-  randomSource = default;
-  RangedSets = default;
-  ranges = default;
-  readline = default;
-  recaptcha = default;
-  regexBase = all;
-  regexCompat = all;
-  regexPCRE = default;
-  regexPosix = all;
-  regexpr = default;
-  regexTDFA = default;
-  regular = default;
-  RSA = default;
-  rvar = default;
-  safe = default;
-  SafeSemaphore = default;
-  SDL = default;
-  SDLImage = default;
-  SDLMixer = default;
-  SDLTtf = default;
-  semigroups = default;
-  sendfile = default;
-  SHA = default;
-  shake = default;
-  Shellac = default;
-  shelly = default;
-  simpleSendfile = default;
-  smallcheck = default ++ latest;
-  SMTPClient = default;
-  snapCore = default;
-  snap = default;
-  snapLoaderStatic = default;
-  snapServer = default;
-  split = default ++ latest;
-  srcloc = default;
-  stateref = default;
-  StateVar = default;
-  statistics = default;
-  stbImage = default;
-  stm = all;
-  storableComplex = default;
-  storableRecord = default;
-  streamproc = all;
-  strict = default;
-  strptime = default;
-  svgcairo = default;
-  syb = [ ghc704 ghc742 ghc763 ];
-  sybWithClass = default;
-  sybWithClassInstancesText = default;
-  tabular = default;
-  tagged = default;
-  tagsoup = default;
-  tar = default ++ latest;
-  Tensor = default;
-  terminfo = default;
-  testFramework = default ++ latest;
-  testFrameworkHunit = default ++ latest;
-  texmath = default;
-  text = all;
-  thLift = default;
-  timeplot = default;
-  tls = default;
-  tlsExtra = default;
-  transformers = all;
-  transformersBase = default;
-  transformersCompat = default;
-  tuple = default;
-  typeLevelNaturalNumber = default;
-  uniplate = default;
-  uniqueid = default;
-  unixCompat = default;
-  unorderedContainers = default;
-  url = default;
-  utf8Light = default;
-  utf8String = default;
-  utilityHt = default;
-  uuagc = default;
-  uuid = default;
-  uulib = default ++ latest;
-  uuOptions = default;
-  uuParsinglib = default;
-  vacuum = default;
-  vcsRevision = default;
-  Vec = default;
-  vectorAlgorithms = default;
-  vector = all;
-  vectorSpace = default;
-  vty = default;
-  waiAppStatic = default;
-  wai = default;
-  waiExtra = default;
-  waiLogger = default;
-  warp = default;
-  wlPprint = default ++ latest;
-  wlPprintExtras = default;
-  wlPprintTerminfo = default;
-  X11 = default;
-  xhtml = all;
-  xmlConduit = default;
-  xml = default;
-  xmlHamlet = default;
-  xmlTypes = default;
-  xmobar = default ++ latest;
-  xmonadContrib = default ++ latest;
-  xmonad = default ++ latest;
-  xmonadExtras = default ++ latest;
-  xssSanitize = default;
-  yesodAuth = default;
-  yesodCore = default;
-  yesod = default;
-  yesodDefault = default;
-  yesodForm = default;
-  yesodJson = default;
-  yesodPersistent = default;
-  yesodStatic = default;
-  zeromq3Haskell = default;
-  zeromqHaskell = default;
-  zipArchive = default;
-  zipper = default;
-  zlib = all;
-  zlibBindings = default;
-  zlibEnum = default;
-
-}
diff --git a/pkgs/top-level/release-python.nix b/pkgs/top-level/release-python.nix
index 4b5bad0761d..ad2f8e901c1 100644
--- a/pkgs/top-level/release-python.nix
+++ b/pkgs/top-level/release-python.nix
@@ -372,7 +372,6 @@ in
   gcj44 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   gcj46 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   gcl = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
-  GConf3 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   gdb = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   gdbCross = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   gdk_pixbuf = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
@@ -1032,7 +1031,6 @@ in
   libgpod = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   libgsf = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   libgtop = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
-  libgweather = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   libimobiledevice = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   libinfinity = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   liblapack = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
@@ -1933,7 +1931,6 @@ in
     xmessage = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     xmodmap = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     xorgserver = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
-    xorgserver_1_13_0 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     xpr = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     xprop = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     xrandr = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
diff --git a/pkgs/top-level/release-small.nix b/pkgs/top-level/release-small.nix
index f22faf123cc..7743f4d0d27 100644
--- a/pkgs/top-level/release-small.nix
+++ b/pkgs/top-level/release-small.nix
@@ -201,6 +201,7 @@ with (import ./release-lib.nix);
 
   dbus_all = {
     libs = linux;
+    daemon = linux;
     tools = linux;
   };
 
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index bdc8cef87f3..ffe054ee674 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -353,7 +353,6 @@ let
       emacs23Packages = {
         bbdb = linux;
         cedet = linux;
-        ecb = linux;
         emacsw3m = linux;
         emms = linux;
         jdee = linux;